Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
04206 Crash/Freeze Critical (emulation) Always Jan 26, 2011, 12:09 Jul 28, 2019, 18:25
Tester Scagazza View Status Public Platform MAME (Official Binary)
Assigned To Resolution Reopened OS Windows Vista/7/8 (64-bit)
Status [?] Confirmed Driver
Version 0.141u1 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 04206: mrkickera: Game hangs
Description The game hangs after you complete a stage randomly perhaps after you choose to continue the game after you are dead, You can esc, then if you try to run the game another time it hangs during boot with a green screen and you have to delete nvram file to get it working back.

(gdb) run mrkicker -window
Starting program: C:\MAME/mame.exe mrkicker -window
[New Thread 2996.0x3a0]
warning: Can not parse XML library list; XML support was disabled at compile time
[New Thread 2996.0x20c]
[New Thread 2996.0x7b0]
[New Thread 2996.0x934]
[New Thread 2996.0x878]
[New Thread 2996.0x238]
[New Thread 2996.0x5ec]
[New Thread 2996.0x74c]
[New Thread 2996.0x930]
EXCEPTION! PPC = 00000000 PC = 0000000A

This is the only backtrace I was able to produce.
Originale note from source file vamphalf.c
Mr. Kicker game code crashes if the eeprom values are empty, because it replaces the SP register with a bogus value at PC = $18D0 before crashing.
It could be an original game bug or a hyperstone core bug
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems mrkickera
Attached Files
zip file icon mrkicker_inp.zip (92,504 bytes) Jan 27, 2011, 14:18 Uploaded by Scagazza
Relationships
There are no relationship linked to this issue.
Notes
15
User avatar
No.07127
Reip
Developer
Jan 26, 2011, 14:05
There's a problem with eeprom device and 64bit builds.
I can't test / fix that
User avatar
No.07128
Fujix
Administrator
Jan 26, 2011, 14:30
I suspect your cheat file is busted. Could you test with -nocheat?
User avatar
No.07135
Scagazza
Tester
Jan 26, 2011, 15:11
Tested with nocheat, the game still hangs
User avatar
No.07146
Scagazza
Tester
Jan 27, 2011, 13:29
I have an update, Probably the game hangs after you continue the game and complete a level only if you have reached a sufficient score to enter in the top list.
Play till level 8 or 9 (I think it's sufficient) , lose all the life and continue the game after you have finished the level game hangs.
User avatar
No.07147
Scagazza
Tester
Jan 27, 2011, 14:18
I have recorded an inp. Remenber that the bug it's probably 64-bit specific.
User avatar
No.07150
Haze
Senior Tester
Jan 27, 2011, 18:48
it hangs even on a 32-bit build.. the CPU crashes
User avatar
No.07151
Haze
Senior Tester
Jan 27, 2011, 19:08
it also has nothing to do with the speed hacks (idle skipping) because it hangs just the same without those. Could be a CPU core bug, could be that the continue feature in the game is bugged... maybe this was never really released, it's missing from many SemiCom references I've seen.
User avatar
No.07152
Scagazza
Tester
Jan 27, 2011, 19:17
edited on: Jan 27, 2011, 19:18
Haze if you die at first level and continue the game doesn't hang so it couldn't be something written in the eeprom device when you enter your name before continue at later level? Note that after the game hanged if you restart the game it doesn't boot (remain in green screen) and you have to delete nvram file.
User avatar
No.07153
Haze
Senior Tester
Jan 27, 2011, 20:56
yeah this is the theory I'm discussing with Reip..

the iniial problem was with the Eeprom, so I'm thinking that it might have something to do with you getting a high score and it attempting to save it, then ending up with an invalid eeprom and crashing just like it does at the start.

If somebody can confirm it's to do with the highscore that would be good.
User avatar
No.09726
moa
Tester
Aug 11, 2013, 14:06
Tested with SVN 24831, got a hiscore and everything is fine even after reboot
Maybe latest Aaron EEprom rewrite
Need to be confirmed for 149u2
User avatar
No.09727
Haze
Senior Tester
Aug 11, 2013, 17:40
edited on: Aug 11, 2013, 17:40
it does seem improved, but could still do with more testing due to the nature of the issue.

if you remove the default nvram the game still can't boot, possibly suggesting there still is a problem*, although yes, I was able to play it a bit, set a high score, and reset without it writing an eeprom it couldn't read back.

* they could have also done that as a security measure of course
User avatar
No.10305
Osso
Moderator
Feb 18, 2014, 06:51
Haze marked it as working as of r27750. According to his commit note, this bug was fixed by the EEPROM device rewrite, which confirms what moa wrote above.
User avatar
No.11728
Tafoid
Administrator
Jun 8, 2015, 00:39
I think this is still an issue, as mentioned in 05950. Reopening.
User avatar
No.15985
MetalGod
Senior Tester
Jan 3, 2019, 13:06
The affected rom is "mrkickera"
In mame 0.163 parent was changed to a clone that doesn't present this issue
User avatar
No.15988
Haze
Senior Tester
Jan 3, 2019, 14:35
edited on: Jan 3, 2019, 14:38
right, it applies to the clone set now.

It stopped happening for a while because the eeprom rewrite actually completely broke writing to the eeprom (as the inaccurate Hyperstone timing meant it was writing faster than the device could take it meaning it never changed the eeprom from our preprogrammed default) however with it hooked up in a way so that the eeprom could be written again (assume fastest timings, same required for all hyperstone games) it will corrupt it when it attempts to write it, meaning yes, the issue happens again.

The reason it needs a default preprogrammed eeprom in the first place is because even the code that gets excuted to write a fresh eeprom by the game ends up writing corrupt data too, which it can't boot from so with no default eeprom it's unable to create a valid one.

I'm not sure if it's some kind of security check that's been missed, or some kind of maths bug with the hyperstone CPU core causing it to calculate an invalid checksum for the EEPROM and therefore never thinking it's valid.