Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
03492 Crash/Freeze Critical (emulation) Always Oct 28, 2009, 17:27 May 13, 2010, 10:56
Tester Luigi30 View Status Public Platform MAME (Self-compiled)
Assigned To couriersud Resolution Fixed OS Windows XP (32-bit)
Status [?] Resolved Driver galaxold.cpp
Version 0.134u4 Fixed in Version 0.138 Build Normal
Summary 03492: hunchbkg: Does not boot
Description hunchbkg fails to boot and makes a horrible noise out of the speakers instead.
Steps To Reproduce
Additional Information
Flags
Regression Version 0.134u1
Affected Sets / Systems hunchbkg
Attached Files
png file icon hunchbkg-s2650-0134-0134u1.png (14,386 bytes) Mar 12, 2010, 22:33
Relationships
There are no relationship linked to this issue.
Notes
4
User avatar
No.05863
M.A.S.H.
Senior Tester
Mar 12, 2010, 22:33
Couriersud improved the S2650 CPU in MAME 0.134u1. I compare the changes made
for the S2650 CPU and found that

 CHECK_IRQ_LINE changed to s2650c->icount -= check_irq_line(s2650c).

There are 3x CHECK_IRQ_LINE in MAME 0.134, but only 1x in 0.134u1 (see compare picture).
hunchbkg boot/works if you added to the last a check_irq_line (see cursor in compare pic).

Added to MAME 0.137 src\emu\cpu\s2650\s2650.c line 857:
s2650c->icount -= check_irq_line(s2650c);


The bug must be assign to Couriersud!
User avatar
No.06052
couriersud
Developer
May 7, 2010, 21:08
edited on: May 7, 2010, 21:10
The interrupt handling in the s2650 core is fine and follows the specification. The game primarily fails due to using "pulse" interrupt calls. The irq line for 2650 is a level line, i.e. an interrupt is raised when the line is asserted. This is completely different from "pulsed", i.e. state change depend lines. Your change would have caused interrupts being taken without having a valid cpu context. This is not in line with how cpu cores should handle interrupts.

There is another timing related issue to be reviewed pending right now. Once this has been done, I will submit an improved driver. Interestingly enough, hunchbkg uses the "stars enable" line of the galaxian hardware and enables the scrolling star field.
User avatar
No.06057
Haze
Senior Tester
May 8, 2010, 12:33
I think in some cases games enable that line, but it wasn't connected, or was rewired elsewhere...
User avatar
No.06058
couriersud
Developer
May 8, 2010, 14:28
The S2650 boards were plugged into the Z80 cpu socket. There are a number of those as well for dkong boards. The stars enable line is decoded on the galaxian main board. I *think* it would have been an overkill to manually cut it - and it would have rendered the conversion a one way route.
Some hires pcb pictures of hunchbkg would help here.