let's try gainput again
This commit is contained in:
@@ -208,6 +208,7 @@ void PIF::ProcessCommands(Mem &mem) {
|
||||
channel++;
|
||||
break;
|
||||
case 1:
|
||||
UpdateController();
|
||||
if(!ReadButtons(res)) {
|
||||
cmd[1] |= 0x80;
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ enum Axis {
|
||||
};
|
||||
|
||||
struct PIF {
|
||||
PIF() = default;
|
||||
PIF() : inputMap(inputManager) {}
|
||||
~PIF() = default;
|
||||
void Reset();
|
||||
void MaybeLoadMempak();
|
||||
@@ -136,7 +136,7 @@ struct PIF {
|
||||
|
||||
bool gamepadConnected = false, mempakOpen = false;
|
||||
gainput::InputManager inputManager;
|
||||
gainput::InputMap inputMap{ inputManager };
|
||||
gainput::InputMap inputMap;
|
||||
gainput::DeviceId keyboardId, padId;
|
||||
JoybusDevice joybusDevices[6]{};
|
||||
u8 bootrom[PIF_BOOTROM_SIZE]{}, ram[PIF_RAM_SIZE]{};
|
||||
|
||||
@@ -7,17 +7,16 @@ EmuThread::EmuThread(std::unique_ptr<QtInstanceFactory>&& instance, std::unique_
|
||||
|
||||
[[noreturn]] void EmuThread::run() noexcept {
|
||||
LoadWSIPlatform(instance.get(), std::move(wsiPlatform), std::move(windowInfo));
|
||||
LoadParallelRDP(core.cpu->mem.GetRDRAM());
|
||||
LoadParallelRDP(core->cpu->mem.GetRDRAM());
|
||||
while (true) {
|
||||
if (!core.pause) {
|
||||
core.cpu->mem.mmio.si.pif.UpdateController();
|
||||
core.Run(0.5, 0.5);
|
||||
if(core.render) {
|
||||
UpdateScreenParallelRdp(core, core.cpu->mem.mmio.vi);
|
||||
if (!core->pause) {
|
||||
core->Run(0.5, 0.5);
|
||||
if(core->render) {
|
||||
UpdateScreenParallelRdp(*core, core->cpu->mem.mmio.vi);
|
||||
}
|
||||
} else {
|
||||
if(core.render) {
|
||||
UpdateScreenParallelRdpNoGame(core);
|
||||
if(core->render) {
|
||||
UpdateScreenParallelRdpNoGame(*core);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
|
||||
[[noreturn]] void run() noexcept override;
|
||||
|
||||
n64::Core core;
|
||||
n64::Core* core;
|
||||
bool running = false;
|
||||
|
||||
void TogglePause()
|
||||
@@ -30,15 +30,15 @@ public:
|
||||
void Reset()
|
||||
{
|
||||
running = false;
|
||||
core.Stop();
|
||||
core.LoadROM(core.rom);
|
||||
core->Stop();
|
||||
core->LoadROM(core->rom);
|
||||
running = true;
|
||||
}
|
||||
|
||||
void Stop()
|
||||
{
|
||||
core.rom = {};
|
||||
core->rom = {};
|
||||
running = false;
|
||||
core.Stop();
|
||||
core->Stop();
|
||||
}
|
||||
};
|
||||
@@ -18,6 +18,7 @@ KaizenQt::KaizenQt() noexcept : QWidget(nullptr) {
|
||||
setAcceptDrops(true);
|
||||
|
||||
mainWindow->show();
|
||||
emuThread->core = new n64::Core();
|
||||
}
|
||||
|
||||
void KaizenQt::ConnectMainWindowSignalsToSlots() noexcept {
|
||||
@@ -43,5 +44,5 @@ void KaizenQt::dropEvent(QDropEvent* event) {
|
||||
|
||||
void KaizenQt::LoadROM(const QString& file_name) noexcept {
|
||||
emuThread->start();
|
||||
emuThread->core.LoadROM(file_name.toStdString());
|
||||
emuThread->core->LoadROM(file_name.toStdString());
|
||||
}
|
||||
Reference in New Issue
Block a user