Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
02960 Graphics Critical (emulation) Always Feb 24, 2009, 14:13 Feb 19, 2010, 13:27
Tester incog View Status Public Platform MAME (Official Binary)
Assigned To Mamesick Resolution Fixed OS Windows XP/Vista 32-bit
Status [?] Resolved Driver
Version 0.129 Fixed in Version 0.136u4 Build Normal
Fixed in Git Commit Github Pull Request #
Summary 02960: speglsht: Regression in Super Eagle Shot, looping broken attract mode
Description Looping broken attract mode, shows checksum error and shows an error on inserting a coin.

Works in 0.128, Broken in 0.129
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version 0.128u4
Affected Sets / Systems speglsht
Attached Files
? file icon speglsht.diff (1,054 bytes) Feb 7, 2010, 14:25
[Show Content]
? file icon real_fix.diff (1,580 bytes) Feb 8, 2010, 17:05
[Show Content]
Relationships
There are no relationship linked to this issue.
Notes
5
User avatar
No.03817
Phil Bennett
Developer
Feb 24, 2009, 18:56
Reducing the MDRV_QUANTUM_TIME frequency fixes it. This suggests to me that there's a missing CPU sync mechanism.
User avatar
No.05647
M.A.S.H.
Senior Tester
Feb 7, 2010, 14:25
I fixed the regression in Super Eagle Shot.

INTERRUPT_GEN( irq4_gen ) was changed in drivers\speglsht.c from

cpunum_set_input_line(machine, 1, R3000_IRQ4, ASSERT_LINE);
to
cpu_set_input_line(device, R3000_IRQ4, ASSERT_LINE);

The same changes was also made for srmp5 and this game has the same problems
since MAME 0.129u2, in this version it was fixed. I used the fixes also for
Super Eagle Shot and it works! Use attached DIFF file.
User avatar
No.05648
Haze
Senior Tester
Feb 7, 2010, 14:35
Both those lines should do the same thing.

the R3000 is CPU1.

irq4_gen is called by CPU1 (the R3000)

so I don't understand why the behavior is different.
User avatar
No.05653
Haze
Senior Tester
Feb 7, 2010, 18:33
edited on: Feb 7, 2010, 18:36
actually, I see what's happened.

Your description doesn't match your DIFF!

The 'fix' you've posted allows it to clear the IRQ line, so that it isn't always ASSERTED. This is very different to the one line change you suggest is responsible in the report.

Your fix is hacky tho, really, there should probably be an IRQ ack, or the line should be cleared after a certain period, or possibly when the interrupt is taken, automatically.
User avatar
No.05663
Mamesick
Senior Tester
Feb 8, 2010, 17:07
Fixed. Easier than I expected. I'll submit for next release.

Note that same mechanism applies to srmp5.c too, where I removed the hack and implemented correct IRQ ack.