Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
02927 Crash/Freeze Critical (emulator) Always Feb 18, 2009, 19:30 May 22, 2009, 04:05
Tester moa View Status Public Platform MAME (Unofficial Binary)
Assigned To Atari Ace Resolution Fixed OS
Status [?] Resolved Driver segas16b.cpp
Version 0.129u4 Fixed in Version 0.129u5 Build I686
Summary 02927: Many Sets using segas16/18.c: Crash/Freeze while starting
Description In most instances with games in segas16b.c - The games freeze during the Title/Intro/Demonstration screen

tested so far:
defense
sdib
shinobi2
aliensy3
aurailj
aurail1
bayroute
bayroutj
cotton
cottonj
cottonu
dunkshot
ddux
exctleag
goldnax3
goldnaxj
mvpj
sonicbom
sjryuko
suprleag
wb32
wrestwa1
wrestwa2

segas18.c:
tested so far:
cltchitr
cltchtrj
ddcrew
ddcrew1
ddcrew2
ddcrewu
ddcrewj
desertbr
Steps To Reproduce
Additional Information Drivers possibly affected:
megadriv.c
segahang.c
segaorun.c
segas16.c
segas18.c
sega18.c
segaxbd.c
segaybd.c
Flags
Regression Version 0.129u4
Affected Sets / Systems Many Sets using segas16/18.c
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
4
User avatar
No.03759
Tafoid
Administrator
Feb 19, 2009, 22:19
Merged bug02933 to this one and expanded effected drivers list.
User avatar
No.03760
Phil Bennett
Developer
Feb 19, 2009, 23:30
This is related to the recent segaic16.c change. Where we have:

if (decrypted)
memory_configure_bank_decrypted(machine, banknum, 0, 1, decrypted + region_start, 0);
else
memory_configure_bank(machine, banknum, 0, 1, (UINT8 *)chip->cpu->region + region_start, 0);

I believe the 'else' should be removed (because FD1094 data accesses are read unencrypted IIRC).
User avatar
No.03793
Atari Ace
Senior Tester
Feb 23, 2009, 04:04
I'm looking at this now. Originally the code made both calls and I concluded the first wasn't needed based on some limited testing but I may have overlooked something.
User avatar
No.03794
Atari Ace
Senior Tester
Feb 23, 2009, 04:18
This is what I've submitted to mamedev

diff -Nru zzx/src/mame/machine/segaic16.c 5hack/src/mame/machine/segaic16.c
--- zzx/src/mame/machine/segaic16.c	2009-02-18 19:47:27.753917000 -0800
+++ 5hack/src/mame/machine/segaic16.c	2009-02-22 20:10:10.812508300 -0800
@@ -387,10 +387,10 @@
 					if (!decrypted)
 						decrypted = fd1089_get_decrypted_base();
 				}
+
+				memory_configure_bank(machine, banknum, 0, 1, (UINT8 *)chip->cpu->region + region_start, 0);
 				if (decrypted)
 					memory_configure_bank_decrypted(machine, banknum, 0, 1, decrypted + region_start, 0);
-				else
-					memory_configure_bank(machine, banknum, 0, 1, (UINT8 *)chip->cpu->region + region_start, 0);
 
 				memory_set_bank(machine, banknum, 0);
 			}