Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06241 Crash/Freeze Critical (emulator) Always Jun 17, 2016, 20:13 Jun 18, 2016, 22:00
Tester rte View Status Public Platform MAME (Official Binary)
Assigned To cuavas Resolution Fixed OS Windows Vista/7/8 (64-bit)
Status [?] Resolved Driver
Version 0.174 Fixed in Version 0.175 Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 06241: Most sets in neogeo.cpp: cheats enabled cause MAME to crash
Description Some NeoGeo games won't run. MAME crashes. Other NeoGeo games are not affected.
Steps To Reproduce e.g.
D:\MAME>mame64.exe pulstar
Additional Information -----------------------------------------------------
Exception at EIP=0000000002A3E8B8 (not found): ACCESS VIOLATION
While attempting to read memory at 0000000000000030
-----------------------------------------------------
RAX=0000000000000000 RBX=00000000178E0AF0 RCX=0000000000237F20 RDX=0000000000000009
RSI=00000000002380D8 RDI=000000000000000B RBP=0000000000237FD0 RSP=0000000000237FA0
 R8=823B6AC9394CB9E7 R9=B582B8EC4FF7966D R10=C6A4A7935BD1E995 R11=0000000000237F48
R12=00000000178DD0E8 R13=00000000002380D0 R14=0000000002B8002A R15=00000000185FF020
-----------------------------------------------------
Stack crawl:
  0000000000237FA0: 0000000002A3E8B8 (not found)
  0000000000238060: 0000000002A5AB46 (not found)
  0000000000238120: 0000000002A5E562 (not found)
  00000000002381A0: 0000000002A5EDF6 (not found)
  00000000002381F0: 0000000002A5F541 (not found)
  00000000002382A0: 00000000017F4007 (not found)
  0000000000238320: 00000000017F45AC (not found)
  00000000002383F0: 00000000017F4E92 (not found)
  0000000000238620: 00000000017F9BFA (not found)
  00000000002388B0: 00000000017FA0B4 (not found)
  0000000000238960: 00000000017FA671 (not found)
  0000000000238A10: 0000000001786550 (not found)
  0000000000238AF0: 00000000029CCDD6 (not found)
  0000000000238B50: 00000000029CD32A (not found)
  000000000023F510: 0000000001787C4A (not found)
  000000000023F960: 0000000001802329 (not found)
  000000000023F9D0: 0000000001786E35 (not found)
  000000000023FDF0: 00000000016F1FA4 (not found)
  000000000023FE50: 0000000002E8FF8F (not found)
  000000000023FF20: 000000000040140C (not found)
  000000000023FF50: 000000000040153B (not found)
  000000000023FF80: 00007FF9ADD513D2 (BaseThreadInitThunk+0x0022)
  000000000023FFD0: 00007FF9AE3D54E4 (RtlUserThreadStart+0x0034)
Github Commit
Flags
Regression Version
Affected Sets / Systems Most sets in neogeo.cpp
Attached Files
 
Relationships
related to 06477Resolvedcuavas All systems: MAME should ignore problematic cheats (or at least exit gracefully) 
Notes
6
User avatar
No.12774
B2K24
Senior Tester
Jun 17, 2016, 22:00
None of these games causes MAME to crash out on my machine. Are you running with cheat enabled and if so, do you have the latest cheat.7z from Pugsy's site?
User avatar
No.12775
rte
Tester
Jun 18, 2016, 04:47
Yes, I have cheats enabled and use the latest available cheat.7z

Disabling cheats fixes the problem, no more crashes.
User avatar
No.12776
B2K24
Senior Tester
Jun 18, 2016, 06:38
Can confirm with 0.174 as well as latest GIT compile with most recent cheat.7z from 3/30/2016 XML Cheat Collection for MAME 0.172 release.
User avatar
No.12778
rte
Tester
Jun 18, 2016, 08:19
The crash is caused by all cheats that patch the ROM using "m". (maincpu.mw@[...])

Changing all "maincpu.m*" to "maincpu.o*" in the cheat xml file fixes this, but I don't know what's the difference between "m" and "o" and I don't know if the effect is the same. Probably not... Pugsy is not sure about this.

http://www.mamecheat.co.uk/forums/viewtopic.php?f=2&t=3768#p12630 says:

maincpu . p b @ FF022F = 99
maincpu = The address space that the address exists in. "maincpu" is the most commonly wanted, but as seen above, not always.
p = Type of memory. p=RAM, m=ROM, o=ROM ??? ROM cheats aren't my thing, but p is usually what you want.
b = Width of value being plugged. b=byte (0x00), w=word (0x0000), d=double (0x00000000), q=quad (0x0000000000000000)
FF022F = Address. Have fun with Midway machines. They use a very unusual system which I don't like much.
99 = The value being plugged in. (Hexidecimal)
User avatar
No.12779
AJR
Developer
Jun 18, 2016, 13:38
Two-character suffixes beginning with 'm' refer to memory regions.

One likely cause of the crashes with Neo Geo cheats is that the device/region name is no longer maincpu, but cslot1:maincpu. However, the debug module where cheat expressions are parsed has undergone major refactoring since 0.174 was released, and crashes upon referencing nonexistent memory regions may have already been fixed in commit bbb2e917b55e37642a9bef27b2676ab6b3e36fb8.
User avatar
No.12781
Tafoid
Administrator
Jun 18, 2016, 21:59
Actually, this cheat crashing should be fixed with current SVN as AJR mentioned above.
Now it does what it used to do by giving you a warning that a cheat could not be loaded correctly.

In any case, you still need to either wait for the new cheat package or you can attempt to adjust them yourself .