Viewing Issue Advanced Details Jump to Notes ] advision.cpp
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
06198 Crash/Freeze Critical (emulator) Always May 3, 2016, 12:01 May 4, 2016, 06:07
Tester Tafoid View Status Public Platform MESS (Official Binary)
Assigned To Resolution Fixed OS Windows Vista/7/8 (64-bit)
Status [?] Resolved   Driver advision.cpp
Version 0.173 Fixed in Version 0.174 Build Normal
Summary MESS-specific 06198: advision: If launched without a cartridge image, MAME crashes
Description Normally, when MAME is launched with a machine which requires some type of media to work (such a console + cartridge), MAME should prompt you to select one if none was provided.
In this case, MAME crashes out.

Exception at EIP=000000000136B3A4 (advision_state::machine_start()+0x00d4): ACCESS VIOLATION
While attempting to read memory at 0000000000000030
RAX=0000000000000000 RBX=0000000000395F50 RCX=000000000ADBE4F0 RDX=0000000000000001
RSI=0000000000228770 RDI=0000000000000001 RBP=0000000000228790 RSP=0000000000228710
 R8=000000000ADC0380 R9=0000000000000000 R10=C6A4A7935BD1E995 R11=00000000002286B0
R12=00000000003A1B40 R13=0000000000000001 R14=0000000000228E08 R15=0000000000000000
Stack crawl:
  0000000000228750: 000000000136B3A4 (advision_state::machine_start()+0x00d4)
  0000000000228840: 000000000298D094 (driver_device::device_start()+0x02e4)
  0000000000228960: 0000000002953932 (device_t::start()+0x0422)
  00000000002289C0: 00000000029CE48B (running_machine::start_all_devices()+0x006b)
  0000000000228AA0: 00000000029D2C3A (running_machine::start()+0x0b7a)
  0000000000228B00: 00000000029D2FFA (running_machine::run(bool)+0x00aa)
  000000000022F4F0: 000000000178F2FA (mame_machine_manager::execute()+0x015a)
  000000000022F960: 000000000180A9D2 (cli_frontend::execute(int, char**)+0x1092)
  000000000022F9D0: 000000000178E555 (emulator_info::start_frontend(emu_options&, osd_interface&, int, char**)+0x0035)
  000000000022FDF0: 00000000016F1834 (utf8_main(int, char**)+0x0124)
  000000000022FE50: 0000000002E9085F (wmain+0x007f)
  000000000022FF20: 000000000040140C (__tmainCRTStartup+0x025c)
  000000000022FF50: 000000000040153B (mainCRTStartup+0x001b)
  000000000022FF80: 00000000772559BD (BaseThreadInitThunk+0x000d)
  000000000022FFD0: 000000007738A2E1 (RtlUserThreadStart+0x0021)
Steps To Reproduce
Additional Information Traced to first occur January 22/23, 2016
Regression Version 0.170
Affected Sets / Systems advision
Attached Files

-  Notes
User avatar
May 3, 2016, 19:12
This is a null pointer bug, plain and simple. The bankswitch handler does check to see if the cartridge ROM has been loaded, yet the machine start method blindly assumes its presence. The fix should be obvious.
User avatar
May 4, 2016, 06:07
Fixed by AJR