Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
02872 Multisession Major Always Jan 24, 2009, 21:22 Feb 28, 2009, 02:42
Tester john_iv View Status Public Platform MAMEUI
Assigned To Atari Ace Resolution Fixed OS Windows XP/Vista 64-bit
Status [?] Resolved Driver
Version 0.129u2 Fixed in Version 0.129u4 Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 02872: smgp, outrun: Multisession crash going from smgp to outrun
Description MameUI crashes and baseline goes to a blank screen when you launch smgp and then choose to run outrun in the same session.
Steps To Reproduce MameUI:
1. Launch Super Monaco GP
2. Quit
3. Launch Out Run
4. Crash

Baseline:
1. mame64 smgp -v
2. tab menu, select new game
3. choose outrun
4. black screen
Additional Information Doing it on baseline when you get the black screen you still have OSD control, F10 works for example.

Blacktrace:
Program received signal SIGSEGV, Segmentation fault.
0x00d10fae in memory_decrypted_read_word (space=0x3c241348, byteaddress=0)
    at src/emu/memory.h:1123
1123 return *(UINT16 *)&space->direct.decrypted[byteaddress &
 space->direct.bytemask];
(gdb) bt full
#0 0x00d10fae in memory_decrypted_read_word (space=0x3c241348, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
#1 0x00d10fae in memory_decrypted_read_word (space=0x3c241348, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
#2 0x00d10fae in memory_decrypted_read_word (space=0x3cc715a4, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
#3 0x00d10fae in memory_decrypted_read_word (space=0x32911f7c,
    byteaddress=147458) at src/emu/memory.h:1123
No locals.
#4 0x00d10fae in memory_decrypted_read_word (space=0x32911f7c,
    byteaddress=131075) at src/emu/memory.h:1123
No locals.
#5 0x00d10fae in memory_decrypted_read_word (space=0x32911f7c, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
#6 0x00d10fae in memory_decrypted_read_word (space=0x328b1efc, byteaddress=1)
    at src/emu/memory.h:1123
No locals.
#7 0x00d10fae in memory_decrypted_read_word (space=0x328b1efc, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
#8 0x00d10fae in memory_decrypted_read_word (space=0x6661e58,
    byteaddress=107290376) at src/emu/memory.h:1123
No locals.
#9 0x00d10fae in memory_decrypted_read_word (space=0x3,
    byteaddress=106897396) at src/emu/memory.h:1123
No locals.
#10 0x00d10fae in memory_decrypted_read_word (space=0x3,
    byteaddress=106897396) at src/emu/memory.h:1123
No locals.
#11 0x00d10fae in memory_decrypted_read_word (space=0x7ffdf000, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
#12 0x00d10fae in memory_decrypted_read_word (space=0x1, byteaddress=9)
    at src/emu/memory.h:1123
No locals.
#13 0x00d10fae in memory_decrypted_read_word (space=0x0, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
#14 0x00d10fae in memory_decrypted_read_word (space=0x401280, byteaddress=0)
    at src/emu/memory.h:1123
No locals.
Github Commit
Flags
Regression Version
Affected Sets / Systems smgp, outrun
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
2
User avatar
No.03641
Tafoid
Administrator
Jan 24, 2009, 21:32
For what it's worth on my build I get a crash, normal command-line.
User avatar
No.03645
Atari Ace
Senior Tester
Jan 25, 2009, 01:43
This is an order of initialization bug. segaic16_memory_mapper_init() expects fd1094_driver_init() to have already been called, but this isn't done here (or elsewhere for that matter). This is typically harmless it seems, except when the last driver had a 1094 key and the new driver does not. Moving the routines around fixes the problem, but the problem occurs elsewhere so I'll see if i can come up with a more robust fix.

diff -Nru zzs0/src/mame/drivers/segaorun.c 0hack/src/mame/drivers/segaorun.c
--- zzs0/src/mame/drivers/segaorun.c	2008-12-20 17:11:26.281250000 -0800
+++ 0hack/src/mame/drivers/segaorun.c	2009-01-24 17:11:48.890625000 -0800
@@ -148,12 +148,12 @@
 	segaic16_textram_0   = auto_malloc(0x01000);
 	workram              = auto_malloc(0x08000);
 
-	/* init the memory mapper */
-	segaic16_memory_mapper_init(cputag_get_cpu(machine, "main"), outrun_info, sound_data_w, NULL);
-
 	/* init the FD1094 */
 	fd1094_driver_init(machine, segaic16_memory_mapper_set_decrypted);
 
+	/* init the memory mapper */
+	segaic16_memory_mapper_init(cputag_get_cpu(machine, "main"), outrun_info, sound_data_w, NULL);
+
 	/* reset the custom handlers and other pointers */
 	custom_io_r = NULL;
 	custom_io_w = NULL;