You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I tried to play "Escape from M.O.N.J.A.S.", but the game hangs at the very beginning, when it should show the main menu. I suspect that the problem is that it doesn't emulate the floating bus, and returns always 255 when reading a non-existent port. Although the complete floating bus can be complex to emulate, "Escape..." (and other games) only needs to detect a non-255 value when the paper is being painted, and 255 when the border is being painted.
The text was updated successfully, but these errors were encountered:
rastersoft
pushed a commit
to rastersoft/jsspeccy2
that referenced
this issue
Apr 23, 2021
When reading an inexistent I/O port in the Sinclair Spectrum,
the value read not always is 255. That only happens when the
ULA is painting the BORDER. When painting the PAPER, the bus
presents the current value being read by the ULA from the
video memory.
This effect is used by some games to synchronize with the beam.
They can use a naive way, by just waiting for a non-255 value
to appear in the bus, thus knowing that now the beam has
started painting the PAPER, or checking that value and waiting
for an specific one (usually a color attribute value), thus
being able to detect when an specific line is being painted.
This patch emulates this behavior, thus allowing these games
to run in the emulator.
Fixesgasman#14
I tried to play "Escape from M.O.N.J.A.S.", but the game hangs at the very beginning, when it should show the main menu. I suspect that the problem is that it doesn't emulate the floating bus, and returns always 255 when reading a non-existent port. Although the complete floating bus can be complex to emulate, "Escape..." (and other games) only needs to detect a non-255 value when the paper is being painted, and 255 when the border is being painted.
The text was updated successfully, but these errors were encountered: