Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
01405 Misc. Major Have not tried Feb 22, 2008, 22:36 Feb 22, 2008, 22:36
Tester stephh View Status Public Platform
Assigned To Resolution Bugs That Aren't Bugs OS
Status [?] Resolved Driver
Version 0.118u3 Fixed in Version Build
Fixed in Git Commit Github Pull Request #
Summary 01405: dleague: About 90 seconds of inactivity will, regardless of where in the game is it, cause the "GAME OVER" to appear.
Description About 90 seconds of inactivity will, regardless of where in the game is it, cause the "GAME OVER" to appear. Here's verification by stephh - 0.118u3

The game seems to call on some undetermined reasons the "Game Over" screen, ending current game ...

This is in fact NOT a bug as the main routine checks an ingame counter which value is based on the status of joysticks and buttons of the 2 players ... Here is what the main routine does with some comments for those who aren't familiar with the M68000 assembly language and/or the taito_h.c driver :

1) Reading inputs
[code]
0015BC: 1B79 0020 0005 0528    move.b  0005.l, (8,A5)    joysticks
0015C4: 1B79 0020 0009 0529    move.b  0009.l, (9,A5)
0015CC: 1B79 0020 0007 052C    move.b  0007.l, (c,A5)    buttons
0015D4: 1B79 0020 000F 052A    move.b  000f.l, (a,A5)
0015DC: 4E75                   rts
[/code]

2) Filling memory with status of each controls
[code]
Buttons :
0015F0: 4240                   clr.w   D0
0015F2: 102D 052A              move.b  (a,A5), D0
0015F6: 322D 052E              move.w  (e,A5), D1
0015FA: 3B40 052E              move.w  D0, (e,A5)
0015FE: 4640                   not.w   D0
001600: 4641                   not.w   D1
001602: 163C 0000              move.b  #
The game seems to call on some undetermined reasons the "Game Over" screen, ending current game ...

This is in fact NOT a bug as the main routine checks an ingame counter which value is based on the status of joysticks and buttons of the 2 players ... Here is what the main routine does with some comments for those who aren't familiar with the M68000 assembly language and/or the taito_h.c driver :

1) Reading inputs
[code]
0015BC: 1B79 0020 0005 0528 move.b $200005.l, ($528,A5) joysticks
0015C4: 1B79 0020 0009 0529 move.b $200009.l, ($529,A5)
0015CC: 1B79 0020 0007 052C move.b $200007.l, ($52c,A5) buttons
0015D4: 1B79 0020 000F 052A move.b $20000f.l, ($52a,A5)
0015DC: 4E75 rts
[/code]

2) Filling memory with status of each controls
[code]
Buttons :
0015F0: 4240 clr.w D0
0015F2: 102D 052A move.b ($52a,A5), D0
0015F6: 322D 052E move.w ($52e,A5), D1
0015FA: 3B40 052E move.w D0, ($52e,A5)
0015FE: 4640 not.w D0
001600: 4641 not.w D1
001602: 163C 0000 move.b #$0, D3 bit 0 = player 1 button 1
001606: 41ED 0534 lea ($534,A5), A0
00160A: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001610: 163C 0001 move.b #$1, D3 bit 1 = player 1 button 2
001614: 41ED 0536 lea ($536,A5), A0
001618: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
00161E: 163C 0002 move.b #$2, D3 bit 2 = player 2 button 1
001622: 41ED 0538 lea ($538,A5), A0
001626: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
00162C: 163C 0003 move.b #$3, D3 bit 3 = player 2 button 2
001630: 41ED 053A lea ($53a,A5), A0
001634: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
 
Joysticks :
00163A: 4240 clr.w D0
00163C: 102D 052C move.b ($52c,A5), D0
001640: 322D 0532 move.w ($532,A5), D1
001644: 3B40 0532 move.w D0, ($532,A5)
001648: 4640 not.w D0
00164A: 4641 not.w D1
00164C: 163C 0000 move.b #$0, D3 bit 0 = player 1 up
001650: 41ED 053C lea ($53c,A5), A0
001654: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
00165A: 163C 0001 move.b #$1, D3 bit 1 = player 1 down
00165E: 41ED 053E lea ($53e,A5), A0
001662: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001668: 163C 0002 move.b #$2, D3 bit 2 = player 1 left
00166C: 41ED 0540 lea ($540,A5), A0
001670: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001676: 163C 0003 move.b #$3, D3 bit 3 = player 1 right
00167A: 41ED 0542 lea ($542,A5), A0
00167E: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001684: 163C 0004 move.b #$4, D3 bit 4 = player 2 up
001688: 41ED 0544 lea ($544,A5), A0
00168C: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001692: 163C 0005 move.b #$5, D3 bit 5 = player 2 down
001696: 41ED 0546 lea ($546,A5), A0
00169A: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
0016A0: 163C 0006 move.b #$6, D3 bit 6 = player 2 left
0016A4: 41ED 0548 lea ($548,A5), A0
0016A8: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
0016AE: 163C 0007 move.b #$7, D3 bit 7 = player 2 right
0016B2: 41ED 054A lea ($54a,A5), A0
0016B6: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
[/code]
"Fill" sub-routine :
[code]
001AF0: 48E7 C000 movem.l D0-D1, -(A7)
001AF4: 4242 clr.w D2 reset value
001AF6: 0701 btst D3, D1
001AF8: 6704 beq $1afe
001AFA: 0642 0001 addi.w #$1, D2 activated -> value += 1
001AFE: 0700 btst D3, D0
001B00: 6604 bne $1b06
001B02: 0642 0002 addi.w #$2, D2 not activated -> value += 2
001B06: 3082 move.w D2, (A0) store value
001B08: 4CDF 0003 movem.l (A7)+, D0-D1
001B0C: 4E75 rts
[/code]
This means that when a control is activated, you'll have 0x0001 in memory, and when it isn't activated, you'll have 0x0002 in memory ...

3) Checking status of each controls
[code]
0013A8: 4A2D 1207 tst.b ($1207,A5) 0x00 in "demo mode" else number of players
0013AC: 6700 0092 beq $1440 if "demo mode" go to Reset_Counter
0013B0: 4A2D 1899 tst.b ($1899,A5)
0013B4: 6600 008A bne $1440
0013B8: 4A2D 0523 tst.b ($523,A5)
0013BC: 6600 0082 bne $1440
0013C0: 0C6D 0002 0534 cmpi.w #$2, ($534,A5) check status of player 1 button 1
0013C6: 6600 0078 bne $1440 if activated go to Reset_Counter
0013CA: 0C6D 0002 0538 cmpi.w #$2, ($538,A5) check status of player 1 button 2
0013D0: 6600 006E bne $1440 if activated go to Reset_Counter
0013D4: 0C6D 0002 0536 cmpi.w #$2, ($536,A5) check status of player 2 button 1
0013DA: 6600 0064 bne $1440 if activated go to Reset_Counter
0013DE: 0C6D 0002 053A cmpi.w #$2, ($53a,A5) check status of player 2 button 2
0013E4: 6600 005A bne $1440 if activated go to Reset_Counter
0013E8: 0C6D 0002 0540 cmpi.w #$2, ($540,A5) check status of player 1 up
0013EE: 6600 0050 bne $1440 if activated go to Reset_Counter
0013F2: 0C6D 0002 0542 cmpi.w #$2, ($542,A5) check status of player 1 down
0013F8: 6600 0046 bne $1440 if activated go to Reset_Counter
0013FC: 0C6D 0002 053C cmpi.w #$2, ($53c,A5) check status of player 1 left
001402: 6600 003C bne $1440 if activated go to Reset_Counter
001406: 0C6D 0002 053E cmpi.w #$2, ($53e,A5) check status of player 1 right
00140C: 6600 0032 bne $1440 if activated go to Reset_Counter
001410: 0C6D 0002 0548 cmpi.w #$2, ($548,A5) check status of player 2 up
001416: 6600 0028 bne $1440 if activated go to Reset_Counter
00141A: 0C6D 0002 054A cmpi.w #$2, ($54a,A5) check status of player 2 down
001420: 6600 001E bne $1440 if activated go to Reset_Counter
001424: 0C6D 0002 0544 cmpi.w #$2, ($544,A5) check status of player 2 left
00142A: 6600 0014 bne $1440 if activated go to Reset_Counter
00142E: 0C6D 0002 0546 cmpi.w #$2, ($546,A5) check status of player 2 right
001434: 6600 000A bne $1440 if activated go to Reset_Counter
001438: 066D 0001 0524 addi.w #$1, ($524,A5) no controls activated, so increase counter
00143E: 4E75 rts
Reset_Counter:
001440: 426D 0524 clr.w ($524,A5) counter = 0
001444: 4E75 rts
[/code]

4) Checking counter
[code]
0012F6: 0C6D 1518 0524 cmpi.w #$1518, ($524,A5) check counter value
0012FC: 6214 bhi $1312 if > 0x1518, go to Game_Over
0012FE: 4A2D 0522 tst.b ($522,A5)
001302: 67E4 beq $12e8
001304: 4EB9 0000 1326 jsr $1326.l
00130A: 422D 0522 clr.b ($522,A5)
00130E: 6000 FF44 bra $1254 loop main routine
Game_Over :
001312: 4EB9 0000 1326 jsr $1326.l
001318: 422D 0522 clr.b ($522,A5)
00131C: 4EB9 0000 7598 jsr $7598.l call "Game Over" sub-routine
001322: 6000 FF30 bra $1254 loop main routine
[/code]
0x1518 = 5400 frames ... And as there are 60 frames per second, the game will call the "Game Over" routine after 5400 / 60 = 90 seconds of "inactivity" ...
, D3 bit 0 = player 1 button 1 001606: 41ED 0534 lea (4,A5), A0 00160A: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 001610: 163C 0001 move.b #, D3 bit 1 = player 1 button 2 001614: 41ED 0536 lea (6,A5), A0 001618: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 00161E: 163C 0002 move.b #, D3 bit 2 = player 2 button 1 001622: 41ED 0538 lea (8,A5), A0 001626: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 00162C: 163C 0003 move.b #, D3 bit 3 = player 2 button 2 001630: 41ED 053A lea (a,A5), A0 001634: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine Joysticks : 00163A: 4240 clr.w D0 00163C: 102D 052C move.b (c,A5), D0 001640: 322D 0532 move.w (2,A5), D1 001644: 3B40 0532 move.w D0, (2,A5) 001648: 4640 not.w D0 00164A: 4641 not.w D1 00164C: 163C 0000 move.b #
The game seems to call on some undetermined reasons the "Game Over" screen, ending current game ...

This is in fact NOT a bug as the main routine checks an ingame counter which value is based on the status of joysticks and buttons of the 2 players ... Here is what the main routine does with some comments for those who aren't familiar with the M68000 assembly language and/or the taito_h.c driver :

1) Reading inputs
[code]
0015BC: 1B79 0020 0005 0528 move.b $200005.l, ($528,A5) joysticks
0015C4: 1B79 0020 0009 0529 move.b $200009.l, ($529,A5)
0015CC: 1B79 0020 0007 052C move.b $200007.l, ($52c,A5) buttons
0015D4: 1B79 0020 000F 052A move.b $20000f.l, ($52a,A5)
0015DC: 4E75 rts
[/code]

2) Filling memory with status of each controls
[code]
Buttons :
0015F0: 4240 clr.w D0
0015F2: 102D 052A move.b ($52a,A5), D0
0015F6: 322D 052E move.w ($52e,A5), D1
0015FA: 3B40 052E move.w D0, ($52e,A5)
0015FE: 4640 not.w D0
001600: 4641 not.w D1
001602: 163C 0000 move.b #$0, D3 bit 0 = player 1 button 1
001606: 41ED 0534 lea ($534,A5), A0
00160A: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001610: 163C 0001 move.b #$1, D3 bit 1 = player 1 button 2
001614: 41ED 0536 lea ($536,A5), A0
001618: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
00161E: 163C 0002 move.b #$2, D3 bit 2 = player 2 button 1
001622: 41ED 0538 lea ($538,A5), A0
001626: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
00162C: 163C 0003 move.b #$3, D3 bit 3 = player 2 button 2
001630: 41ED 053A lea ($53a,A5), A0
001634: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
 
Joysticks :
00163A: 4240 clr.w D0
00163C: 102D 052C move.b ($52c,A5), D0
001640: 322D 0532 move.w ($532,A5), D1
001644: 3B40 0532 move.w D0, ($532,A5)
001648: 4640 not.w D0
00164A: 4641 not.w D1
00164C: 163C 0000 move.b #$0, D3 bit 0 = player 1 up
001650: 41ED 053C lea ($53c,A5), A0
001654: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
00165A: 163C 0001 move.b #$1, D3 bit 1 = player 1 down
00165E: 41ED 053E lea ($53e,A5), A0
001662: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001668: 163C 0002 move.b #$2, D3 bit 2 = player 1 left
00166C: 41ED 0540 lea ($540,A5), A0
001670: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001676: 163C 0003 move.b #$3, D3 bit 3 = player 1 right
00167A: 41ED 0542 lea ($542,A5), A0
00167E: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001684: 163C 0004 move.b #$4, D3 bit 4 = player 2 up
001688: 41ED 0544 lea ($544,A5), A0
00168C: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
001692: 163C 0005 move.b #$5, D3 bit 5 = player 2 down
001696: 41ED 0546 lea ($546,A5), A0
00169A: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
0016A0: 163C 0006 move.b #$6, D3 bit 6 = player 2 left
0016A4: 41ED 0548 lea ($548,A5), A0
0016A8: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
0016AE: 163C 0007 move.b #$7, D3 bit 7 = player 2 right
0016B2: 41ED 054A lea ($54a,A5), A0
0016B6: 4EB9 0000 1AF0 jsr $1af0.l call "fill" sub-routine
[/code]
"Fill" sub-routine :
[code]
001AF0: 48E7 C000 movem.l D0-D1, -(A7)
001AF4: 4242 clr.w D2 reset value
001AF6: 0701 btst D3, D1
001AF8: 6704 beq $1afe
001AFA: 0642 0001 addi.w #$1, D2 activated -> value += 1
001AFE: 0700 btst D3, D0
001B00: 6604 bne $1b06
001B02: 0642 0002 addi.w #$2, D2 not activated -> value += 2
001B06: 3082 move.w D2, (A0) store value
001B08: 4CDF 0003 movem.l (A7)+, D0-D1
001B0C: 4E75 rts
[/code]
This means that when a control is activated, you'll have 0x0001 in memory, and when it isn't activated, you'll have 0x0002 in memory ...

3) Checking status of each controls
[code]
0013A8: 4A2D 1207 tst.b ($1207,A5) 0x00 in "demo mode" else number of players
0013AC: 6700 0092 beq $1440 if "demo mode" go to Reset_Counter
0013B0: 4A2D 1899 tst.b ($1899,A5)
0013B4: 6600 008A bne $1440
0013B8: 4A2D 0523 tst.b ($523,A5)
0013BC: 6600 0082 bne $1440
0013C0: 0C6D 0002 0534 cmpi.w #$2, ($534,A5) check status of player 1 button 1
0013C6: 6600 0078 bne $1440 if activated go to Reset_Counter
0013CA: 0C6D 0002 0538 cmpi.w #$2, ($538,A5) check status of player 1 button 2
0013D0: 6600 006E bne $1440 if activated go to Reset_Counter
0013D4: 0C6D 0002 0536 cmpi.w #$2, ($536,A5) check status of player 2 button 1
0013DA: 6600 0064 bne $1440 if activated go to Reset_Counter
0013DE: 0C6D 0002 053A cmpi.w #$2, ($53a,A5) check status of player 2 button 2
0013E4: 6600 005A bne $1440 if activated go to Reset_Counter
0013E8: 0C6D 0002 0540 cmpi.w #$2, ($540,A5) check status of player 1 up
0013EE: 6600 0050 bne $1440 if activated go to Reset_Counter
0013F2: 0C6D 0002 0542 cmpi.w #$2, ($542,A5) check status of player 1 down
0013F8: 6600 0046 bne $1440 if activated go to Reset_Counter
0013FC: 0C6D 0002 053C cmpi.w #$2, ($53c,A5) check status of player 1 left
001402: 6600 003C bne $1440 if activated go to Reset_Counter
001406: 0C6D 0002 053E cmpi.w #$2, ($53e,A5) check status of player 1 right
00140C: 6600 0032 bne $1440 if activated go to Reset_Counter
001410: 0C6D 0002 0548 cmpi.w #$2, ($548,A5) check status of player 2 up
001416: 6600 0028 bne $1440 if activated go to Reset_Counter
00141A: 0C6D 0002 054A cmpi.w #$2, ($54a,A5) check status of player 2 down
001420: 6600 001E bne $1440 if activated go to Reset_Counter
001424: 0C6D 0002 0544 cmpi.w #$2, ($544,A5) check status of player 2 left
00142A: 6600 0014 bne $1440 if activated go to Reset_Counter
00142E: 0C6D 0002 0546 cmpi.w #$2, ($546,A5) check status of player 2 right
001434: 6600 000A bne $1440 if activated go to Reset_Counter
001438: 066D 0001 0524 addi.w #$1, ($524,A5) no controls activated, so increase counter
00143E: 4E75 rts
Reset_Counter:
001440: 426D 0524 clr.w ($524,A5) counter = 0
001444: 4E75 rts
[/code]

4) Checking counter
[code]
0012F6: 0C6D 1518 0524 cmpi.w #$1518, ($524,A5) check counter value
0012FC: 6214 bhi $1312 if > 0x1518, go to Game_Over
0012FE: 4A2D 0522 tst.b ($522,A5)
001302: 67E4 beq $12e8
001304: 4EB9 0000 1326 jsr $1326.l
00130A: 422D 0522 clr.b ($522,A5)
00130E: 6000 FF44 bra $1254 loop main routine
Game_Over :
001312: 4EB9 0000 1326 jsr $1326.l
001318: 422D 0522 clr.b ($522,A5)
00131C: 4EB9 0000 7598 jsr $7598.l call "Game Over" sub-routine
001322: 6000 FF30 bra $1254 loop main routine
[/code]
0x1518 = 5400 frames ... And as there are 60 frames per second, the game will call the "Game Over" routine after 5400 / 60 = 90 seconds of "inactivity" ...
, D3 bit 0 = player 1 up 001650: 41ED 053C lea (c,A5), A0 001654: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 00165A: 163C 0001 move.b #, D3 bit 1 = player 1 down 00165E: 41ED 053E lea (e,A5), A0 001662: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 001668: 163C 0002 move.b #, D3 bit 2 = player 1 left 00166C: 41ED 0540 lea (0,A5), A0 001670: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 001676: 163C 0003 move.b #, D3 bit 3 = player 1 right 00167A: 41ED 0542 lea (2,A5), A0 00167E: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 001684: 163C 0004 move.b #, D3 bit 4 = player 2 up 001688: 41ED 0544 lea (4,A5), A0 00168C: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 001692: 163C 0005 move.b #, D3 bit 5 = player 2 down 001696: 41ED 0546 lea (6,A5), A0 00169A: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 0016A0: 163C 0006 move.b #, D3 bit 6 = player 2 left 0016A4: 41ED 0548 lea (8,A5), A0 0016A8: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine 0016AE: 163C 0007 move.b #, D3 bit 7 = player 2 right 0016B2: 41ED 054A lea (a,A5), A0 0016B6: 4EB9 0000 1AF0 jsr af0.l call "fill" sub-routine [/code] "Fill" sub-routine : [code] 001AF0: 48E7 C000 movem.l D0-D1, -(A7) 001AF4: 4242 clr.w D2 reset value 001AF6: 0701 btst D3, D1 001AF8: 6704 beq afe 001AFA: 0642 0001 addi.w #, D2 activated -> value += 1 001AFE: 0700 btst D3, D0 001B00: 6604 bne b06 001B02: 0642 0002 addi.w #, D2 not activated -> value += 2 001B06: 3082 move.w D2, (A0) store value 001B08: 4CDF 0003 movem.l (A7)+, D0-D1 001B0C: 4E75 rts [/code] This means that when a control is activated, you'll have 0x0001 in memory, and when it isn't activated, you'll have 0x0002 in memory ... 3) Checking status of each controls [code] 0013A8: 4A2D 1207 tst.b (07,A5) 0x00 in "demo mode" else number of players 0013AC: 6700 0092 beq 40 if "demo mode" go to Reset_Counter 0013B0: 4A2D 1899 tst.b (99,A5) 0013B4: 6600 008A bne 40 0013B8: 4A2D 0523 tst.b (3,A5) 0013BC: 6600 0082 bne 40 0013C0: 0C6D 0002 0534 cmpi.w #, (4,A5) check status of player 1 button 1 0013C6: 6600 0078 bne 40 if activated go to Reset_Counter 0013CA: 0C6D 0002 0538 cmpi.w #, (8,A5) check status of player 1 button 2 0013D0: 6600 006E bne 40 if activated go to Reset_Counter 0013D4: 0C6D 0002 0536 cmpi.w #, (6,A5) check status of player 2 button 1 0013DA: 6600 0064 bne 40 if activated go to Reset_Counter 0013DE: 0C6D 0002 053A cmpi.w #, (a,A5) check status of player 2 button 2 0013E4: 6600 005A bne 40 if activated go to Reset_Counter 0013E8: 0C6D 0002 0540 cmpi.w #, (0,A5) check status of player 1 up 0013EE: 6600 0050 bne 40 if activated go to Reset_Counter 0013F2: 0C6D 0002 0542 cmpi.w #, (2,A5) check status of player 1 down 0013F8: 6600 0046 bne 40 if activated go to Reset_Counter 0013FC: 0C6D 0002 053C cmpi.w #, (c,A5) check status of player 1 left 001402: 6600 003C bne 40 if activated go to Reset_Counter 001406: 0C6D 0002 053E cmpi.w #, (e,A5) check status of player 1 right 00140C: 6600 0032 bne 40 if activated go to Reset_Counter 001410: 0C6D 0002 0548 cmpi.w #, (8,A5) check status of player 2 up 001416: 6600 0028 bne 40 if activated go to Reset_Counter 00141A: 0C6D 0002 054A cmpi.w #, (a,A5) check status of player 2 down 001420: 6600 001E bne 40 if activated go to Reset_Counter 001424: 0C6D 0002 0544 cmpi.w #, (4,A5) check status of player 2 left 00142A: 6600 0014 bne 40 if activated go to Reset_Counter 00142E: 0C6D 0002 0546 cmpi.w #, (6,A5) check status of player 2 right 001434: 6600 000A bne 40 if activated go to Reset_Counter 001438: 066D 0001 0524 addi.w #, (4,A5) no controls activated, so increase counter 00143E: 4E75 rts Reset_Counter: 001440: 426D 0524 clr.w (4,A5) counter = 0 001444: 4E75 rts [/code] 4) Checking counter [code] 0012F6: 0C6D 1518 0524 cmpi.w #18, (4,A5) check counter value 0012FC: 6214 bhi 12 if > 0x1518, go to Game_Over 0012FE: 4A2D 0522 tst.b (2,A5) 001302: 67E4 beq e8 001304: 4EB9 0000 1326 jsr 26.l 00130A: 422D 0522 clr.b (2,A5) 00130E: 6000 FF44 bra 54 loop main routine Game_Over : 001312: 4EB9 0000 1326 jsr 26.l 001318: 422D 0522 clr.b (2,A5) 00131C: 4EB9 0000 7598 jsr 98.l call "Game Over" sub-routine 001322: 6000 FF30 bra 54 loop main routine [/code] 0x1518 = 5400 frames ... And as there are 60 frames per second, the game will call the "Game Over" routine after 5400 / 60 = 90 seconds of "inactivity" ...
Steps To Reproduce
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems dleague
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
0
There are no notes attached to this issue.