Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06006 Crash/Freeze Critical (emulation) Always Aug 2, 2015, 16:48 Aug 18, 2015, 19:35
Tester izius View Status Public Platform MAME (Official Binary)
Assigned To Mamesick Resolution Fixed OS Windows XP
Status [?] Resolved Driver rocnrope.cpp
Version 0.164 Fixed in Version 0.165 Build Normal
Summary 06006: rocnrope, ropeman: Game resets when pressing start
Description Game resets when pressing the start button after inserting a coin.
Steps To Reproduce
Additional Information Clone rocnropek is not affected.
Regression Version 0.164
Affected Sets / Systems rocnrope, ropeman
Attached Files
There are no relationship linked to this issue.
User avatar
Aug 2, 2015, 19:57
This broke immediately after 0.163 was released when some other memory change issues cropped up:
User avatar
Senior Tester
Aug 4, 2015, 17:16
yeah, there are some nasty hacks in that driver.

first of all it patches the rom, which really shouldn't be necessary.

following that it intercepts various writes and uses them to patch the vector table in ROM...

makes me wonder if rocnropek isn't a bootleg however, the fact it doesn't need any of this stuff is suspicious.
User avatar
Aug 5, 2015, 00:19
edited on: Aug 5, 2015, 00:21
The vector patching isn't actually a hack, though it could be implemented in a more modern/savestate-friendly way. I've looked at the schematics and there really is a tiny RAM overlaying the ROM.

The patching in the DRIVER_INIT is definitely a hack, though.
User avatar
Senior Tester
Aug 5, 2015, 13:40
ok, just struck me as a bit weird writing at 0x8182 to overlay at 0xfff2, but I guess that's just how they configured it, or the read window can be moved?
User avatar
Senior Tester
Aug 5, 2015, 19:45
Hack or not hack the problem is that the opcode in the DRIVER_INIT is xored with the wrong mask. After a quick look at \machine\konami1.c, here' s what seems to be the correct hack to make the game playable again:
memregion("maincpu")->base()[0x703d] = 0x98^0x22;   /* fix one instruction */
instead of previous:
memregion("maincpu")->base()[0x703d] = 0x98^0x88;   /* fix one instruction */
I have no idea why this ROM patch is so needed. Maybe a bad dump? Or there's something unemulated in the driver when start button is pressed and cause a reset?
User avatar
Senior Tester
Aug 5, 2015, 22:10
well both rocnrope and ropeman suffer from the same issue and have different roms at that position so it seems unlikely to be a bad dump..

maybe the exact type of m6809 inside the Konami1 encrypted CPU is wrong, unfortunately the real time decryption plays hell with the debugger.