slightly better abstraction
This commit is contained in:
@@ -169,6 +169,13 @@ struct PIF {
|
||||
void EepromRead(const u8*, u8*, const Mem&) const;
|
||||
void EepromWrite(const u8*, u8*, const Mem&);
|
||||
std::vector<u8> Serialize();
|
||||
void UpdateButton(int index, Controller::Key k, bool state) {
|
||||
joybusDevices[index].controller.UpdateButton(k, state);
|
||||
}
|
||||
|
||||
void UpdateAxis(int index, Controller::Axis a, s8 state) {
|
||||
joybusDevices[index].controller.UpdateAxis(a, state);
|
||||
}
|
||||
|
||||
bool mempakOpen = false;
|
||||
JoybusDevice joybusDevices[6]{};
|
||||
|
||||
@@ -68,24 +68,24 @@ void KaizenQt::LoadTAS(const QString& fileName) noexcept {
|
||||
void KaizenQt::keyPressEvent(QKeyEvent *e) {
|
||||
emuThread->core.pause = true;
|
||||
auto k = static_cast<Qt::Key>(e->key());
|
||||
if(k == settingsWindow->keyMap[0]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::A, true);
|
||||
if(k == settingsWindow->keyMap[1]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::B, true);
|
||||
if(k == settingsWindow->keyMap[2]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::Z, true);
|
||||
if(k == settingsWindow->keyMap[3]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::Start, true);
|
||||
if(k == settingsWindow->keyMap[4]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::LT, true);
|
||||
if(k == settingsWindow->keyMap[5]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::RT, true);
|
||||
if(k == settingsWindow->keyMap[6]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DUp, true);
|
||||
if(k == settingsWindow->keyMap[7]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DDown, true);
|
||||
if(k == settingsWindow->keyMap[8]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DLeft, true);
|
||||
if(k == settingsWindow->keyMap[9]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DRight, true);
|
||||
if(k == settingsWindow->keyMap[10]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CUp, true);
|
||||
if(k == settingsWindow->keyMap[11]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CDown, true);
|
||||
if(k == settingsWindow->keyMap[12]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CLeft, true);
|
||||
if(k == settingsWindow->keyMap[13]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CRight, true);
|
||||
if(k == settingsWindow->keyMap[14]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::Y, 86);
|
||||
if(k == settingsWindow->keyMap[15]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::Y, -86);
|
||||
if(k == settingsWindow->keyMap[16]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::X, -86);
|
||||
if(k == settingsWindow->keyMap[17]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::X, 86);
|
||||
if(k == settingsWindow->keyMap[0]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::A, true);
|
||||
if(k == settingsWindow->keyMap[1]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::B, true);
|
||||
if(k == settingsWindow->keyMap[2]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::Z, true);
|
||||
if(k == settingsWindow->keyMap[3]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::Start, true);
|
||||
if(k == settingsWindow->keyMap[4]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::LT, true);
|
||||
if(k == settingsWindow->keyMap[5]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::RT, true);
|
||||
if(k == settingsWindow->keyMap[6]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DUp, true);
|
||||
if(k == settingsWindow->keyMap[7]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DDown, true);
|
||||
if(k == settingsWindow->keyMap[8]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DLeft, true);
|
||||
if(k == settingsWindow->keyMap[9]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DRight, true);
|
||||
if(k == settingsWindow->keyMap[10]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CUp, true);
|
||||
if(k == settingsWindow->keyMap[11]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CDown, true);
|
||||
if(k == settingsWindow->keyMap[12]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CLeft, true);
|
||||
if(k == settingsWindow->keyMap[13]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CRight, true);
|
||||
if(k == settingsWindow->keyMap[14]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::Y, 86);
|
||||
if(k == settingsWindow->keyMap[15]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::Y, -86);
|
||||
if(k == settingsWindow->keyMap[16]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::X, -86);
|
||||
if(k == settingsWindow->keyMap[17]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::X, 86);
|
||||
emuThread->core.pause = false;
|
||||
QWidget::keyPressEvent(e);
|
||||
}
|
||||
@@ -93,24 +93,24 @@ void KaizenQt::keyPressEvent(QKeyEvent *e) {
|
||||
void KaizenQt::keyReleaseEvent(QKeyEvent *e) {
|
||||
emuThread->core.pause = true;
|
||||
auto k = static_cast<Qt::Key>(e->key());
|
||||
if (k == settingsWindow->keyMap[0]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::A, false);
|
||||
if (k == settingsWindow->keyMap[1]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::B, false);
|
||||
if (k == settingsWindow->keyMap[2]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::Z, false);
|
||||
if (k == settingsWindow->keyMap[3]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::Start, false);
|
||||
if (k == settingsWindow->keyMap[4]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::LT, false);
|
||||
if (k == settingsWindow->keyMap[5]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::RT, false);
|
||||
if (k == settingsWindow->keyMap[6]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DUp, false);
|
||||
if (k == settingsWindow->keyMap[7]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DDown, false);
|
||||
if (k == settingsWindow->keyMap[8]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DLeft, false);
|
||||
if (k == settingsWindow->keyMap[9]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::DRight, false);
|
||||
if (k == settingsWindow->keyMap[10]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CUp, false);
|
||||
if (k == settingsWindow->keyMap[11]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CDown, false);
|
||||
if (k == settingsWindow->keyMap[12]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CLeft, false);
|
||||
if (k == settingsWindow->keyMap[13]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateButton(n64::Controller::Key::CRight, false);
|
||||
if (k == settingsWindow->keyMap[14]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::Y, 0);
|
||||
if (k == settingsWindow->keyMap[15]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::Y, 0);
|
||||
if (k == settingsWindow->keyMap[16]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::X, 0);
|
||||
if (k == settingsWindow->keyMap[17]) emuThread->core.cpu->GetMem().mmio.si.pif.joybusDevices[0].controller.UpdateAxis(n64::Controller::Axis::X, 0);
|
||||
if (k == settingsWindow->keyMap[0]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::A, false);
|
||||
if (k == settingsWindow->keyMap[1]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::B, false);
|
||||
if (k == settingsWindow->keyMap[2]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::Z, false);
|
||||
if (k == settingsWindow->keyMap[3]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::Start, false);
|
||||
if (k == settingsWindow->keyMap[4]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::LT, false);
|
||||
if (k == settingsWindow->keyMap[5]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::RT, false);
|
||||
if (k == settingsWindow->keyMap[6]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DUp, false);
|
||||
if (k == settingsWindow->keyMap[7]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DDown, false);
|
||||
if (k == settingsWindow->keyMap[8]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DLeft, false);
|
||||
if (k == settingsWindow->keyMap[9]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::DRight, false);
|
||||
if (k == settingsWindow->keyMap[10]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CUp, false);
|
||||
if (k == settingsWindow->keyMap[11]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CDown, false);
|
||||
if (k == settingsWindow->keyMap[12]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CLeft, false);
|
||||
if (k == settingsWindow->keyMap[13]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateButton(0, n64::Controller::Key::CRight, false);
|
||||
if (k == settingsWindow->keyMap[14]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::Y, 0);
|
||||
if (k == settingsWindow->keyMap[15]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::Y, 0);
|
||||
if (k == settingsWindow->keyMap[16]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::X, 0);
|
||||
if (k == settingsWindow->keyMap[17]) emuThread->core.cpu->GetMem().mmio.si.pif.UpdateAxis(0, n64::Controller::Axis::X, 0);
|
||||
emuThread->core.pause = false;
|
||||
QWidget::keyPressEvent(e);
|
||||
}
|
||||
Reference in New Issue
Block a user