Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06374 Crash/Freeze Critical (emulator) Always Sep 7, 2016, 11:13 Oct 5, 2016, 00:38
Tester Kale View Status Public Platform MAME (Self-compiled)
Assigned To Resolution Fixed OS Windows Vista/7/8 (64-bit)
Status [?] Resolved Driver aristmk5.cpp
Version 0.177 Fixed in Version 0.178 Build Normal
Summary 06374: adonis: Changing System Configuration to anything but game_prg causes a crash
Description Attempting to use a different ROM configuration than default game program causes MAME to crash.
Attempting to start a mk5 game with non-game_prg configuration saved in cfg file causes a startup crash as well.
Steps To Reproduce Go to System Configuration TAB, change the setting to any value other than game_prg and eventually soft reset the machine.
Additional Information This HW has some operator ROMs, that are used for resetting BIOS configuration by installing them in the sockets.
Tested adonis, assume all games do the same.
Flags
Regression Version
Affected Sets / Systems adonis
Attached Files
 
Relationships
There are no relationsihp linked to this issue.
Notes
4
User avatar
No.13129
B2K24
Moderator
Sep 7, 2016, 14:06
edited on: Oct 5, 2016, 01:26
Exception at EIP=0000000000402ca9 (aristmk5_state::machine_reset()+0x00c9): ACCESS VIOLATION
While attempting to read memory at 0000000000000028
-----------------------------------------------------
RAX=0000000000000000 RBX=00000000172ba040 RCX=0000000009118600 RDX=0000000000000005
RSI=000000000b0a2fe0 RDI=000000000b0841f0 RBP=00000000091186b0 RSP=0000000009118680
R8=0000000000019767 R9=000000000000000b R10=15595d104ebf8ac2 R11=0000000009118628
R12=0000000007c3c7f0 R13=0000000009118a20 R14=0000000007c3c7f0 R15=000000000911f148
-----------------------------------------------------
Stack crawl:
  00000000091186a0: 0000000000402ca9 (aristmk5_state::machine_reset()+0x00c9)
  0000000009118710: 0000000002b864d4 (driver_device::device_reset_after_children()+0x00b4)
  00000000091187a0: 0000000002b4c908 (device_t::reset()+0x0518)
  00000000091187d0: 0000000002bcbad5 (running_machine::reset_all_devices()+0x0015)
  0000000009118870: 0000000002bcf272 (running_machine::soft_reset(void*, int)+0x0162)
  0000000009118910: 0000000002c0e85d (device_scheduler::timeslice()+0x055d)
  0000000009118990: 0000000002bd354d (running_machine::run(bool)+0x01dd)
  000000000911f3b0: 0000000001819e0f (mame_machine_manager::execute()+0x015f)
  000000000911f8b0: 000000000187d221 (cli_frontend::execute(int, char**)+0x0fa1)
  000000000911f920: 0000000001818ae5 (emulator_info::start_frontend(emu_options&, osd_interface&, int, char**)+0x0035)
  000000000911fd60: 000000000177822b (utf8_main(int, char**)+0x012b)
  000000000911fe50: 0000000002fefeac (wmain+0x018c)
  000000000911ff20: 000000000040140c (__tmainCRTStartup+0x025c)
  000000000911ff50: 000000000040153b (mainCRTStartup+0x001b)
  000000000911ff80: 00007fff1cbf8364 (BaseThreadInitThunk+0x0014)
  000000000911ffd0: 00007fff1db25e91 (RtlUserThreadStart+0x0021)

User avatar
No.13130
Robbbert
Developer
Sep 7, 2016, 14:10
Confirmed

-----------------------------------------------------
Exception at EIP=00402DF3 (aristmk5_state::machine_reset()+0x00d3): ACCESS VIOLATION
While attempting to read memory at 0000001C
-----------------------------------------------------
EAX=00000000 EBX=10D20020 ECX=00002F8A EDX=0028C068
ESI=08C48A60 EDI=0028C178 EBP=0028C0D8 ESP=0028C0B0
-----------------------------------------------------
Stack crawl:
  0028C0D8: 00402DF3 (aristmk5_state::machine_reset()+0x00d3)
  0028C0F8: 02B36500 (driver_device::device_reset_after_children()+0x0190)
  0028C138: 02B02AE7 (device_t::reset()+0x03e7)
  0028C148: 02B772B1 (running_machine::reset_all_devices()+0x0011)
  0028C1A8: 02B7B6C5 (running_machine::soft_reset(void*, int)+0x0165)
  0028C218: 02BB5F97 (device_scheduler::timeslice()+0x0727)
  0028C288: 02B7F5C9 (running_machine::run(bool)+0x01c9)
  0028F908: 017A6F15 (mame_machine_manager::execute()+0x0175)
  0028FBE8: 01809A8E (cli_frontend::execute(int, char**)+0x0e3e)
  0028FC18: 017A5A64 (emulator_info::start_frontend(emu_options&, osd_interface&, int, char**)+0x0034)
  0028FE48: 01714C86 (utf8_main(int, char**)+0x0126)
  0028FEC8: 02F604B7 (wmain+0x00e7)
  0028FF88: 004013F0 (__tmainCRTStartup+0x0280)
  0028FF94: 756F337A (BaseThreadInitThunk+0x0012)
  0028FFD4: 77BF9882 (RtlInitializeExceptionChain+0x0063)
  0028FFEC: 77BF9855 (RtlInitializeExceptionChain+0x0036)
User avatar
No.13208
Osso
Developer
Sep 27, 2016, 10:00
Fixed by Reagan Roush.
User avatar
No.13227
Heihachi_73
Tester
Oct 5, 2016, 00:38
Will this affect the ROM loading of the non-US sets? The 'BIOS' parent itself was a dirty hack added to implement swapping in the set chips for the American machines, which are not used at all in other regions - the actual BIOS code is inside the game ROMs themselves (with the exception of casino software, where u7/u11 actually is the BIOS, and u8/u12 and beyond is the game data; when changing one game to another u7 and u11 are kept in place on the PCB). ROM swapping is not done on non-US machines at all unless upgrading from one game to another.

The peset* in peplus.cpp are other examples of set chips, however in this case, there is only one set chip per ROM set rather than being bundled together in a 'peplus' set for example, and to set up the games you swap the game's nvram data across to the peset* data and run that in MAME instead, set it up, then swap the nvram data back to the game and the game should be good to go. Maybe the BIOS loading in aristmk5.cpp should be killed entirely in place of what is done in peplus.cpp, which will also end up splitting the ROMs inside aristmk5.zip.