Closed GoogleCodeExporter closed 9 years ago
I will look at it, I was sure to have verified savestates with lock-on
emulation but I might have forgotten something when reseting the memory mapping.
I don't think the version of S2K chip would make any difference, if Sonic 2 &
Knuckles played fine until you try to save/load a state.
On a side note, the S2K chip is part of the Sonic & Knuckles cartridge but you
can't "extract" it from the common Sonic & Knuckles ROM dump, it should have
been dumped separately (there are actually two ROM chips in the cartridge).
I am not sure what is the "combined" ROM you are talking about but if it is the
manually assembled Sonic 2 & Knuckles ROM (S2+SK+S2K), make sure you disable
lock-on emulation when you load it.
Original comment by ekeeke31@gmail.com
on 15 Nov 2010 at 3:27
S3&K lock-on save states work fine, I haven't tried the S1&K Blue Sphere
lock-on though.
Original comment by noddy...@hotmail.co.uk
on 15 Nov 2010 at 3:38
Yes, I know what is happening.
Internal S2K chip shares some memory range ($300000-$3fffff) with the locked
cartridge.
When S&K detects Sonic 2 is locked, it enables S2K chip in this memory range
(Sonic 2 is only 1MB and don't use this range usually) then start running Sonic
2 which can read extra data from that range. However, on reset, S2K chip is
disabled by default (Sonic 3 for example, is 2MB and uses data in this area).
This is what happen with the real cartridge and this is what the emulator is
doing.
What happen is that when I load a saved state, I always reset the hardware in
its default state first, which results in disabling the S2K chip. It is never
enabled again because this information is not saved in the state file and when
the remaining state part is loaded, something goes wrong and the game resets.
A solution would be not to reset this part of hardware and leave S2K chip
enabled when loading a state, but you would still have issues when reloading or
resetting the game manually then load the state file.
Another solution would be to expand the savestate format to include
informations about the cartridge state but it's not easy to do (this would also
be useful with some games that use extra hardware, like Super Street Fighter 2,
Virtua Racing and some unlicensed games with strange protection and memory
banking hardware)
Original comment by ekeeke31@gmail.com
on 15 Nov 2010 at 4:02
This goes for the combined rom too with the lock-on option off?
Original comment by noddy...@hotmail.co.uk
on 15 Nov 2010 at 11:36
no, this is only when lock-on emulation is enabled. the combined rom works by
recreating the memory mapping artificially so every ROM "parts" are always
activated
Original comment by ekeeke31@gmail.com
on 16 Nov 2010 at 7:39
Good :-) thanks for letting me know.
Original comment by noddy...@hotmail.co.uk
on 16 Nov 2010 at 8:51
Original comment by ekeeke31@gmail.com
on 21 Nov 2010 at 5:38
Original comment by ekeeke31@gmail.com
on 4 Dec 2010 at 5:24
Original issue reported on code.google.com by
noddy...@hotmail.co.uk
on 15 Nov 2010 at 3:13