let's try gainput again

This commit is contained in:
Simone
2024-01-22 15:26:13 +01:00
parent 410f9f62fc
commit 9be2b238d2
5 changed files with 17 additions and 16 deletions

View File

@@ -208,6 +208,7 @@ void PIF::ProcessCommands(Mem &mem) {
channel++; channel++;
break; break;
case 1: case 1:
UpdateController();
if(!ReadButtons(res)) { if(!ReadButtons(res)) {
cmd[1] |= 0x80; cmd[1] |= 0x80;
} }

View File

@@ -115,7 +115,7 @@ enum Axis {
}; };
struct PIF { struct PIF {
PIF() = default; PIF() : inputMap(inputManager) {}
~PIF() = default; ~PIF() = default;
void Reset(); void Reset();
void MaybeLoadMempak(); void MaybeLoadMempak();
@@ -136,7 +136,7 @@ struct PIF {
bool gamepadConnected = false, mempakOpen = false; bool gamepadConnected = false, mempakOpen = false;
gainput::InputManager inputManager; gainput::InputManager inputManager;
gainput::InputMap inputMap{ inputManager }; gainput::InputMap inputMap;
gainput::DeviceId keyboardId, padId; gainput::DeviceId keyboardId, padId;
JoybusDevice joybusDevices[6]{}; JoybusDevice joybusDevices[6]{};
u8 bootrom[PIF_BOOTROM_SIZE]{}, ram[PIF_RAM_SIZE]{}; u8 bootrom[PIF_BOOTROM_SIZE]{}, ram[PIF_RAM_SIZE]{};

View File

@@ -7,17 +7,16 @@ EmuThread::EmuThread(std::unique_ptr<QtInstanceFactory>&& instance, std::unique_
[[noreturn]] void EmuThread::run() noexcept { [[noreturn]] void EmuThread::run() noexcept {
LoadWSIPlatform(instance.get(), std::move(wsiPlatform), std::move(windowInfo)); LoadWSIPlatform(instance.get(), std::move(wsiPlatform), std::move(windowInfo));
LoadParallelRDP(core.cpu->mem.GetRDRAM()); LoadParallelRDP(core->cpu->mem.GetRDRAM());
while (true) { while (true) {
if (!core.pause) { if (!core->pause) {
core.cpu->mem.mmio.si.pif.UpdateController(); core->Run(0.5, 0.5);
core.Run(0.5, 0.5); if(core->render) {
if(core.render) { UpdateScreenParallelRdp(*core, core->cpu->mem.mmio.vi);
UpdateScreenParallelRdp(core, core.cpu->mem.mmio.vi);
} }
} else { } else {
if(core.render) { if(core->render) {
UpdateScreenParallelRdpNoGame(core); UpdateScreenParallelRdpNoGame(*core);
} }
} }
} }

View File

@@ -19,7 +19,7 @@ public:
[[noreturn]] void run() noexcept override; [[noreturn]] void run() noexcept override;
n64::Core core; n64::Core* core;
bool running = false; bool running = false;
void TogglePause() void TogglePause()
@@ -30,15 +30,15 @@ public:
void Reset() void Reset()
{ {
running = false; running = false;
core.Stop(); core->Stop();
core.LoadROM(core.rom); core->LoadROM(core->rom);
running = true; running = true;
} }
void Stop() void Stop()
{ {
core.rom = {}; core->rom = {};
running = false; running = false;
core.Stop(); core->Stop();
} }
}; };

View File

@@ -18,6 +18,7 @@ KaizenQt::KaizenQt() noexcept : QWidget(nullptr) {
setAcceptDrops(true); setAcceptDrops(true);
mainWindow->show(); mainWindow->show();
emuThread->core = new n64::Core();
} }
void KaizenQt::ConnectMainWindowSignalsToSlots() noexcept { void KaizenQt::ConnectMainWindowSignalsToSlots() noexcept {
@@ -43,5 +44,5 @@ void KaizenQt::dropEvent(QDropEvent* event) {
void KaizenQt::LoadROM(const QString& file_name) noexcept { void KaizenQt::LoadROM(const QString& file_name) noexcept {
emuThread->start(); emuThread->start();
emuThread->core.LoadROM(file_name.toStdString()); emuThread->core->LoadROM(file_name.toStdString());
} }