UIQ3 bugfixes, SVP drc indirect jumps, stuff
[picodrive.git] / platform / uiq3 / Engine.cpp
index ee9b6a5..ba93c81 100644 (file)
@@ -37,7 +37,6 @@ extern const char *actionNames[];
 RSemaphore initSemaphore;\r
 RSemaphore pauseSemaphore;\r
 RSemaphore loadWaitSemaphore;\r
-int pico_was_reset = 0;\r
 static CPicolAppView *appView = 0;\r
 \r
 \r
@@ -65,9 +64,7 @@ TInt CPicoGameSession::Do(const TPicoServRqst what, TAny *param)
 \r
                case PicoMsgReset: \r
                        if(rom_loaded) {\r
-                               PicoReset();\r
-                               pico_was_reset = 1;\r
-                               return ChangeRunState(PGS_Running);\r
+                               return ChangeRunState(PGS_Reset);\r
                        }\r
                        return 1;\r
 \r
@@ -182,13 +179,14 @@ TInt CPicoGameSession::loadROM(TPtrC16 *pptr)
        // If successful, in will enter PGS_Running state by itself.\r
        loadrom_fname = (char *)writeBuf.PtrZ();\r
        loadrom_result = 0;\r
+       loadWaitSemaphore.Wait(1); // make sure sem is not set\r
        ret = ChangeRunState(PGS_ReloadRom);\r
        if(ret) return ret;\r
 \r
-       loadWaitSemaphore.Wait(20*1000*1000);\r
+       loadWaitSemaphore.Wait(60*1000*1000);\r
 \r
        if (loadrom_result == 0)\r
-               return PicoErrNotRom;\r
+               return PicoErrRomOpenFailed;\r
 \r
        emu_getGameName(buff);\r
        TPtrC8 buff8((TUint8*) buff);\r
@@ -198,11 +196,9 @@ TInt CPicoGameSession::loadROM(TPtrC16 *pptr)
 \r
        // debug\r
        #ifdef __DEBUG_PRINT\r
-       TInt cells = User::CountAllocCells();\r
-       TInt mem;\r
+       TInt mem, cells = User::CountAllocCells();\r
        User::AllocSize(mem);\r
        DEBUGPRINT(_L("comm:   cels=%d, size=%d KB"), cells, mem/1024);\r
-       ChangeRunState(PGS_DebugHeap, PGS_Running);\r
        #endif\r
 \r
        return 0;\r