- --
Viewing Issue Advanced Details
ID | Category [?] | Severity [?] | Reproducibility | Date Submitted | Last Update |
---|---|---|---|---|---|
01985 | DIP/Input | Major | Always | Jul 7, 2008, 08:34 | Jan 13, 2010, 19:30 |
Tester | stephh | View Status | Public | Platform | MAME (Official Binary) |
Assigned To | Resolution | No change required | OS | ||
Status [?] | Closed | Driver | |||
Version | 0.126 | Fixed in Version | Build | I686 | |
Fixed in Git Commit | Github Pull Request # | ||||
Summary | 01985: tigerh, tigerhj: Inputs don't respond after heliport 4 (area 35) | ||||
Description |
After heliport 4, just when big tank arrives, inputs don't respond (lose all your lives and you'll notice that you can't insert your initials). This might be the correct behaviour so people couldn't play the game endlessly. So I need a verification against a REAL machine. |
||||
Steps To Reproduce | |||||
Additional Information | This bug also exists for 'tigerhb1' bootleg but NOT for 'tigerhb2' bootleg. | ||||
Github Commit | |||||
Flags | Verified with Code | ||||
Regression Version | |||||
Affected Sets / Systems | tigerh, tigerhj | ||||
Attached Files
|
tigersta.zip (8,375 bytes) Jul 7, 2008, 16:28
| ||||
tigerh_notbug.txt (2,439 bytes) Jan 13, 2010, 19:29 [Show Content] [Hide Content]Why does input and sound is broken at specified point? ...Becauase Sound CPU is reset. Resetting Sound CPU is triggerd in the above routine which is executed when boss tank appears. 2ED1: 34 inc (hl) 2ED2: CD 87 33 call $3387 2ED5: 3A 3D C0 ld a,($C03D) 2ED8: DA CF 04 jp c,$04CF 2EDB: 11 47 00 ld de,$0047 2EDE: 21 98 C1 ld hl,$C198 2EE1: 19 add hl,de // hl = $C1DF 2EE2: 7E ld a,(hl) 2EE3: B7 or a 2EE4: CA EB 2E jp z,$2EEB // Sound CPU Reset! 2EE7: D3 00 out ($00),a 2EE9: D3 01 out ($01),a 2EEB: ... The value on $C1DF must be always 0. But if it's not 0, main CPU calls to reset sound CPU. Where does $C1DF is set? ...It's in the following routine on main CPU. 0E54: 3A E7 C1 ld a,($C1E7) 0E57: 2A E5 C1 ld hl,($C1E5) 0E5A: 95 sub l 0E5B: 86 add a,(hl) 0E5C: 32 E7 C1 ld ($C1E7),a 0E5F: 23 inc hl 0E60: 22 E5 C1 ld ($C1E5),hl 0E63: 01 01 40 ld bc,$4001 0E66: 09 add hl,bc 0E67: D0 ret nc 0E68: 22 E5 C1 ld ($C1E5),hl 0E6B: 7D ld a,l 0E6C: 21 E7 C1 ld hl,$C1E7 0E6F: AE xor (hl) 0E70: 77 ld (hl),a 0E71: C8 ret z // Write 0x37 into $C1DF 0E72: 21 A8 C1 ld hl,$C1A8 0E75: 06 00 ld b,$00 0E77: 0E 37 ld c,$37 0E79: 09 add hl,bc 0E7A: 71 ld (hl),c 0E7B: C9 ret This routine is... In-game ROM checker!! $C1E5 (2 bytes) is current address on ROM and $C1E7 is calculated value. This routine starts after player helicopter takes off and finish checking after read $BFFF (0xBFFF + 0x4001 = 0), it's around first part of Area 4. And if total calculated value is not 0, stored 0x37 into $C1A8 as ROM error. I attach 4 state save files for tigerh which are saved on 0.128u4. And I have confirmed these routine on tigerhj, tigerhb1, tigerhb3. In tigerhb2... 2EDB: 11 47 00 ld de,$0047 2EDE: 21 98 C1 ld hl,$C198 2EE1: 19 add hl,de 2EE2: 7E ld a,(hl) 2EE3: B7 or a 2EE4: CA EB 2E jp z,$2EEB 2EE7: AF xor a 2EE8: 00 nop 2EE9: 00 nop 2EEA: 00 nop 2EEB: ... Resetting sound CPU is killed so that this problem never happens. | |||||
Relationships
There are no relationship linked to this issue. |
Notes
6
No.01525
stephh Developer
Jul 7, 2008, 16:33
|
I've uploaded the save states juste before the game becomes bogus. Unzip the file with directories in your "sta" folder and load from slot 0. Note 1 : I've only put save states for 'tigerhj' (with the bug) and 'tigerhb2' (without the bug) so you can see the different behaviour. Note 2 : Do NOT catch a small heli or the game might not bug (again, I can't explain why). |
---|---|
No.01526
Tafoid Administrator
Jul 7, 2008, 16:45
edited on: Jul 7, 2008, 16:46 |
The save state is appreciated. I tested and confirmed the bug. Just note to anyone trying it you need to use "-cheat" to make the save state load correctly. This is one odd bug.. I'm leaning towards possible MCU emulation inaccuracies or unknown protection. I suppose anything is possible. |
No.01543
Kold666 Developer
Jul 8, 2008, 16:24
|
I would like to test on my pcb but I can't paly for that long ;) |
No.05506
stephh Developer
Jan 13, 2010, 08:35
|
Before it gets lost, here is the post on MAME Chat board which explains this was a false alert because I was playing with cheats (my bad) : http://www.mameworld.info/ubbthreads/showthreaded.php?Cat=&Number=172992&page=&view=&sb=5&o=&fpart=1&vc=1 ... Can someone copy/paste the explanations from the board into a text file to be attached to this report ? Anyway, I flag this bug as "resolved" and update the various flags. |
No.05507
Tafoid Administrator
Jan 13, 2010, 12:58
|
Since this is a result which was directly caused by using cheats, it's technically an invalid report. The link to MAMEWORLD should suffice for now. I'll let you, Stephh, bring over whatever relevant info you need to explain why it happens. |
No.05508
stephh Developer
Jan 13, 2010, 19:30
|
Converted link to text file which I've attached in case the message disappears from the board. |