Don't force users to load rom from terminal or by dragging and dropping onto executable file. Instead, open a blank window and use SDL's drag&drop feature

This commit is contained in:
SimoneN64 2023-07-10 20:48:13 +02:00 committed by wheremyfoodat
parent 008f0bfb84
commit 6ce861624d
5 changed files with 179 additions and 149 deletions

View file

@ -34,6 +34,7 @@ void GPUService::reset() {
privilegedProcess = 0xFFFFFFFF; // Set the privileged process to an invalid handle
interruptEvent = std::nullopt;
sharedMem = nullptr;
registerInterruptRelayQueueBeenHere = false;
}
void GPUService::handleSyncRequest(u32 messagePointer) {
@ -77,9 +78,8 @@ void GPUService::acquireRight(u32 messagePointer) {
// How does the shared memory handle thing work?
void GPUService::registerInterruptRelayQueue(u32 messagePointer) {
// Detect if this function is called a 2nd time because we'll likely need to impl threads properly for the GSP
static bool beenHere = false;
if (beenHere) Helpers::panic("RegisterInterruptRelayQueue called a second time. Need to implement GSP threads properly");
beenHere = true;
if (registerInterruptRelayQueueBeenHere) Helpers::panic("RegisterInterruptRelayQueue called a second time. Need to implement GSP threads properly");
registerInterruptRelayQueueBeenHere = true;
const u32 flags = mem.read32(messagePointer + 4);
const u32 eventHandle = mem.read32(messagePointer + 12);