Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
00277 Crash/Freeze Critical (emulator) Have not tried Jan 28, 2008, 02:26 May 12, 2008, 18:43
Tester ShimaPong View Status Public Platform
Assigned To Resolution Fixed OS
Status [?] Resolved Driver
Version 0.105u4 Fixed in Version 0.125u4 Build
Fixed in Git Commit Github Pull Request #
Summary 00277: groundfx.c, gunbustr.c, superchs.c, taito_f3.c, undrfire.c, psikyosh.c: Cheat search causes fatal error.
Description On 0.104u5 or later, starting the search via the cheat engine in the game based on taito_f3 triggers fatal error.

In case of undrfire on 0.105u4:

Fatal error: cpu_spinuntil_int() called with no executing cpu!
Caused by assert: src/cpuexec.c:1237: activecpu >= 0

Updated in 0.107u2: This problem doesn't happen during "pause" (P key). A search in "no-pausing" triggers Fatal Error.
Also psikyosh.c games (daraku, gunbird2, mjgtaste etc) have the same problem.

0.124u4: Only seems to happen with ADVANCED search option in cheat. Tested with daraku:
Fatal error: cpu_spinuntil_int() called with no executing cpu! (src/emu/cpuexec.
c:656)
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems groundfx.c, gunbustr.c, superchs.c, taito_f3.c, undrfire.c, psikyosh.c
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
3
User avatar
No.00835
aaron
Developer
Apr 28, 2008, 20:04
There's really no solution for this. The cheat code is going through and accessing memory. Most memory accesses in MAME happen on the assumption that you are accessing it during execution. In this case, the read/write handler is calling cpu_spinuntil_int() which is only valid when you are executing.
User avatar
No.00836
Tafoid
Administrator
Apr 28, 2008, 20:11
Would it be safe to say this bug is one that should be labeled "Not Fixable" and resolved? Just trying to clean up some of the more generic bug reports - like this one.
User avatar
No.00951
ShimaPong
Tester
May 12, 2008, 18:43
edited on: May 12, 2008, 18:44
See driver/cps3.c.
if (cpu_getexecutingcpu()>=0) // prevent cheat search crash..
		if (activecpu_get_pc()==cps3_speedup_code_address) {cpu_spinuntil_int();return cps3_mainram[cps3_speedup_ram_address/4];}
This driver goes through this problem. If you delete it, this problem happens even in this driver.
But I think it's too bad that update all drivers which use cpu_spinuntil_*().

I have added User Search Region for my WIP cheat engine.
It supports Direct Memory Access and tries to read/write a memory directly (not use core read/write function).
I have succeeds to search via this new search region system in taito_f3.c games without fatal error.
In the future, I will list the drivers used cpu_spinuntil_*() and add auto setting as default at the initialization.

NOTE : I don't know how to submit to official so check my WIP cheat engine thread (http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=147780&pag=0)