Viewing Issue Advanced Details Jump to Notes ] rocnrope.cpp
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.
Flags
Regression Version 0.164
Affected Sets / Systems rocnrope, ropeman
Attached Files
 


-  Notes
User avatar
No.11933
Tafoid
(Administrator)
Aug 2, 2015, 19:57
This broke immediately after 0.163 was released when some other memory change issues cropped up:
https://github.com/mamedev/mame/commit/88949a5b47798b3c82851c31b6f801e4fb8ca06f
User avatar
No.11936
Haze
(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
No.11937
AWJ
(Developer)
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
No.11941
Haze
(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
No.11943
Mamesick
(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
No.11944
Haze
(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.