More CPP fixes

This commit is contained in:
wheremyfoodat 2025-07-02 21:56:12 +03:00
parent a3f9ced3aa
commit 935e088ca1
5 changed files with 36 additions and 10 deletions

View file

@ -441,7 +441,7 @@ void GPU::fireDMA(u32 dest, u32 source, u32 size) {
u8* fcram = mem.getFCRAM();
std::memcpy(&vram[dest - vramStart], &fcram[source - fcramStart], size);
} else {
printf("Non-trivially optimizable GPU DMA. Falling back to byte-by-byte transfer\n");
log("Non-trivially optimizable GPU DMA. Falling back to byte-by-byte transfer\n");
for (u32 i = 0; i < size; i++) {
mem.write8(dest + i, mem.read8(source + i));

View file

@ -333,13 +333,7 @@ void IRUserService::updateCirclePadPro() {
return;
}
auto& response = cpp.state;
response.cStick.x = rand() & 0xFFF;
response.cStick.y = static_cast<u32>(CirclePadPro::ButtonState::C_STICK_CENTER);
response.buttons.zlNotPressed = 1;
response.buttons.rNotPressed = 1;
std::vector<u8> responsePayload(sizeof(response));
std::memcpy(responsePayload.data(), &response, sizeof(response));
sendPayload(responsePayload);
std::vector<u8> response(sizeof(cpp.state));
std::memcpy(response.data(), &cpp.state, sizeof(cpp.state));
sendPayload(response);
}

View file

@ -613,6 +613,27 @@ void MainWindow::pollControllers() {
} else {
hid.setCirclepadY(-(stickY / div));
}
auto& ir = emu->getServiceManager().getIRUser();
const s16 l2 = SDL_GameControllerGetAxis(gameController, SDL_CONTROLLER_AXIS_TRIGGERLEFT);
const s16 r2 = SDL_GameControllerGetAxis(gameController, SDL_CONTROLLER_AXIS_TRIGGERRIGHT);
const s16 cstickX = SDL_GameControllerGetAxis(gameController, SDL_CONTROLLER_AXIS_RIGHTX);
const s16 cstickY = SDL_GameControllerGetAxis(gameController, SDL_CONTROLLER_AXIS_RIGHTY);
ir.setZLPressed(l2 > 16000);
ir.setZRPressed(r2 > 16000);
if (std::abs(cstickX) < deadzone) {
ir.setCStickX(IR::CirclePadPro::ButtonState::C_STICK_CENTER);
} else {
ir.setCStickX(cstickX / 8);
}
if (std::abs(cstickY) < deadzone) {
ir.setCStickY(IR::CirclePadPro::ButtonState::C_STICK_CENTER);
} else {
ir.setCStickY(-(cstickY / 8));
}
}
SDL_Event event;