Fix jittering

This commit is contained in:
meepingsnesroms
2018-08-04 13:49:58 -07:00
parent 3089a52869
commit 0703f9cd69
3 changed files with 25 additions and 15 deletions

View File

@@ -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

View File

@@ -52,6 +52,12 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>30</width>
<height>40</height>
</size>
</property>
</widget>
</item>
</layout>

View File

@@ -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;