diff --git a/missingFunctions.txt b/missingFunctions.txt index 0314506..7dde79f 100644 --- a/missingFunctions.txt +++ b/missingFunctions.txt @@ -8,6 +8,7 @@ Holding the buttons emulates pressing them like a turbo button(may be caused by Screenshots use window size and that makes them blurry from filtering Fixed: +State menu jitters when made too small(smallest size is now 30x40) Screen scales wrong when paused Memory is only 8mb(expected since only 1/2 the chipselect lines are emulated properly) RTC doesnt seem to work diff --git a/qtBuildSystem/Mu/statemanager.ui b/qtBuildSystem/Mu/statemanager.ui index c55e3e3..0829dd2 100644 --- a/qtBuildSystem/Mu/statemanager.ui +++ b/qtBuildSystem/Mu/statemanager.ui @@ -52,6 +52,12 @@ 0 + + + 30 + 40 + + diff --git a/src/debug/sandbox.c b/src/debug/sandbox.c index 83f0876..8ad91a8 100644 --- a/src/debug/sandbox.c +++ b/src/debug/sandbox.c @@ -427,22 +427,25 @@ void sandboxTest(uint32_t test){ break; case SANDBOX_SEND_OS_TOUCH:{ - //the hack only seems to work when in an interrupt, a hack for a hack :( - m68k_set_irq(5); + if(!m68k_read_memory_8(0x00000253)){ + //0x00000253 seems to be a mutex for accessing the event queue + //the hack only seems to work when in an interrupt, a hack for a hack :( + m68k_set_irq(5); - if(palmInput.touchscreenTouched){ - //press - m68k_write_memory_16(0xFFFFFFE0 - 4, palmInput.touchscreenX); - m68k_write_memory_16(0xFFFFFFE0 - 2, palmInput.touchscreenY); - callFunction(false, 0x00000000, "PenScreenToRaw", "w(p)", 0xFFFFFFE0 - 4); - callFunction(false, 0x00000000, "EvtEnqueuePenPoint", "w(p)", 0xFFFFFFE0 - 4); - } - else{ - //release - m68k_write_memory_16(0xFFFFFFE0 - 4, (uint16_t)-1); - m68k_write_memory_16(0xFFFFFFE0 - 2, (uint16_t)-1); - callFunction(false, 0x00000000, "PenScreenToRaw", "w(p)", 0xFFFFFFE0 - 4); - callFunction(false, 0x00000000, "EvtEnqueuePenPoint", "w(p)", 0xFFFFFFE0 - 4); + if(palmInput.touchscreenTouched){ + //press + m68k_write_memory_16(0xFFFFFFE0 - 4, palmInput.touchscreenX); + m68k_write_memory_16(0xFFFFFFE0 - 2, palmInput.touchscreenY); + callFunction(false, 0x00000000, "PenScreenToRaw", "w(p)", 0xFFFFFFE0 - 4); + callFunction(false, 0x00000000, "EvtEnqueuePenPoint", "w(p)", 0xFFFFFFE0 - 4); + } + else{ + //release + m68k_write_memory_16(0xFFFFFFE0 - 4, (uint16_t)-1); + m68k_write_memory_16(0xFFFFFFE0 - 2, (uint16_t)-1); + callFunction(false, 0x00000000, "PenScreenToRaw", "w(p)", 0xFFFFFFE0 - 4); + callFunction(false, 0x00000000, "EvtEnqueuePenPoint", "w(p)", 0xFFFFFFE0 - 4); + } } } break;