Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
01327 Flip Screen/Cocktail Minor Have not tried Feb 19, 2008, 15:45 Jun 10, 2012, 03:26
Tester -Misc Reporters- View Status Public Platform
Assigned To stephh Resolution Bugs That Aren't Bugs OS
Status [?] Resolved Driver
Version N/A Fixed in Version Build
Fixed in Git Commit Github Pull Request #
Summary 01327: madcrash: The screen is never flipped for player 2 when you set the "Cabinet" Dip Switch to "Upright".
Description The screen is never flipped for player 2 when you set the "Cabinet" Dip Switch to "Upright".
Steps To Reproduce
Additional Information marvins.c merged into snk.c in 0.127u2

Read the text file for more info. - stephh

madcrash (marvins.c driver)

There is an ingame bug if you set the "Cabinet" Dip Switch (3rd Dip Switch in the list !) to "Upright" ...

According to the source file (src/vidhrdw/marvins.c), the screen is flipped when bit 7 of 0x8600 = 1 (and this true !) ...

Here is now the code to decide (or not) to flip the screen for player 2 :

[BEGIN]
0D8A: 3A 00 84    ld   a,(00)
0D8D: CB 4F       bit  1,a
0D8F: 28 0C       jr   z,
madcrash (marvins.c driver)

There is an ingame bug if you set the "Cabinet" Dip Switch (3rd Dip Switch in the list !) to "Upright" ...

According to the source file (src/vidhrdw/marvins.c), the screen is flipped when bit 7 of 0x8600 = 1 (and this true !) ...

Here is now the code to decide (or not) to flip the screen for player 2 :

[BEGIN]
0D8A: 3A 00 84 ld a,($8400)
0D8D: CB 4F bit 1,a
0D8F: 28 0C jr z,$0D9D
0D91: 3A 00 85 ld a,($8500)
0D94: CB 6F bit 5,a
0D96: 28 3C jr z,$0DD4
0D98: 3E A0 ld a,$A0
0D9A: C3 A2 0D jp $0DA2
0D9D: 3E 20 ld a,$20
0D9F: C3 17 0E jp $0E17
0DA2: 32 00 86 ld ($8600),a
0DA5: 32 04 C7 ld ($C704),a
....
0DD3: C9 ret
0DD4: 3E 20 ld a,$20
0DD6: C3 17 0E jp $0E17
....
0E17: 32 00 86 ld ($8600),a
0E1A: 32 04 C7 ld ($C704),a
....
0E48: C9 ret
[END]

When "Cabinet" Dip Switch is set to "Upright", instruction at 0x0d8f will jump to 0x0d9d, so 0x20 will be stored at 0x8600 ...

This means that the screen will NEVER be flipped for player 2, even if you set the "Flip Screen" Dip Switch to ON ...

You can easily verify that you are in "Upright" mode : you play with the SAME controls as the ones for player 1 ...

I hope I was clear enough ...
D9D 0D91: 3A 00 85 ld a,(00) 0D94: CB 6F bit 5,a 0D96: 28 3C jr z,
madcrash (marvins.c driver)

There is an ingame bug if you set the "Cabinet" Dip Switch (3rd Dip Switch in the list !) to "Upright" ...

According to the source file (src/vidhrdw/marvins.c), the screen is flipped when bit 7 of 0x8600 = 1 (and this true !) ...

Here is now the code to decide (or not) to flip the screen for player 2 :

[BEGIN]
0D8A: 3A 00 84 ld a,($8400)
0D8D: CB 4F bit 1,a
0D8F: 28 0C jr z,$0D9D
0D91: 3A 00 85 ld a,($8500)
0D94: CB 6F bit 5,a
0D96: 28 3C jr z,$0DD4
0D98: 3E A0 ld a,$A0
0D9A: C3 A2 0D jp $0DA2
0D9D: 3E 20 ld a,$20
0D9F: C3 17 0E jp $0E17
0DA2: 32 00 86 ld ($8600),a
0DA5: 32 04 C7 ld ($C704),a
....
0DD3: C9 ret
0DD4: 3E 20 ld a,$20
0DD6: C3 17 0E jp $0E17
....
0E17: 32 00 86 ld ($8600),a
0E1A: 32 04 C7 ld ($C704),a
....
0E48: C9 ret
[END]

When "Cabinet" Dip Switch is set to "Upright", instruction at 0x0d8f will jump to 0x0d9d, so 0x20 will be stored at 0x8600 ...

This means that the screen will NEVER be flipped for player 2, even if you set the "Flip Screen" Dip Switch to ON ...

You can easily verify that you are in "Upright" mode : you play with the SAME controls as the ones for player 1 ...

I hope I was clear enough ...
DD4 0D98: 3E A0 ld a,$A0 0D9A: C3 A2 0D jp
madcrash (marvins.c driver)

There is an ingame bug if you set the "Cabinet" Dip Switch (3rd Dip Switch in the list !) to "Upright" ...

According to the source file (src/vidhrdw/marvins.c), the screen is flipped when bit 7 of 0x8600 = 1 (and this true !) ...

Here is now the code to decide (or not) to flip the screen for player 2 :

[BEGIN]
0D8A: 3A 00 84 ld a,($8400)
0D8D: CB 4F bit 1,a
0D8F: 28 0C jr z,$0D9D
0D91: 3A 00 85 ld a,($8500)
0D94: CB 6F bit 5,a
0D96: 28 3C jr z,$0DD4
0D98: 3E A0 ld a,$A0
0D9A: C3 A2 0D jp $0DA2
0D9D: 3E 20 ld a,$20
0D9F: C3 17 0E jp $0E17
0DA2: 32 00 86 ld ($8600),a
0DA5: 32 04 C7 ld ($C704),a
....
0DD3: C9 ret
0DD4: 3E 20 ld a,$20
0DD6: C3 17 0E jp $0E17
....
0E17: 32 00 86 ld ($8600),a
0E1A: 32 04 C7 ld ($C704),a
....
0E48: C9 ret
[END]

When "Cabinet" Dip Switch is set to "Upright", instruction at 0x0d8f will jump to 0x0d9d, so 0x20 will be stored at 0x8600 ...

This means that the screen will NEVER be flipped for player 2, even if you set the "Flip Screen" Dip Switch to ON ...

You can easily verify that you are in "Upright" mode : you play with the SAME controls as the ones for player 1 ...

I hope I was clear enough ...
DA2 0D9D: 3E 20 ld a, 0D9F: C3 17 0E jp
madcrash (marvins.c driver)

There is an ingame bug if you set the "Cabinet" Dip Switch (3rd Dip Switch in the list !) to "Upright" ...

According to the source file (src/vidhrdw/marvins.c), the screen is flipped when bit 7 of 0x8600 = 1 (and this true !) ...

Here is now the code to decide (or not) to flip the screen for player 2 :

[BEGIN]
0D8A: 3A 00 84 ld a,($8400)
0D8D: CB 4F bit 1,a
0D8F: 28 0C jr z,$0D9D
0D91: 3A 00 85 ld a,($8500)
0D94: CB 6F bit 5,a
0D96: 28 3C jr z,$0DD4
0D98: 3E A0 ld a,$A0
0D9A: C3 A2 0D jp $0DA2
0D9D: 3E 20 ld a,$20
0D9F: C3 17 0E jp $0E17
0DA2: 32 00 86 ld ($8600),a
0DA5: 32 04 C7 ld ($C704),a
....
0DD3: C9 ret
0DD4: 3E 20 ld a,$20
0DD6: C3 17 0E jp $0E17
....
0E17: 32 00 86 ld ($8600),a
0E1A: 32 04 C7 ld ($C704),a
....
0E48: C9 ret
[END]

When "Cabinet" Dip Switch is set to "Upright", instruction at 0x0d8f will jump to 0x0d9d, so 0x20 will be stored at 0x8600 ...

This means that the screen will NEVER be flipped for player 2, even if you set the "Flip Screen" Dip Switch to ON ...

You can easily verify that you are in "Upright" mode : you play with the SAME controls as the ones for player 1 ...

I hope I was clear enough ...
E17 0DA2: 32 00 86 ld (00),a 0DA5: 32 04 C7 ld ($C704),a .... 0DD3: C9 ret 0DD4: 3E 20 ld a, 0DD6: C3 17 0E jp
madcrash (marvins.c driver)

There is an ingame bug if you set the "Cabinet" Dip Switch (3rd Dip Switch in the list !) to "Upright" ...

According to the source file (src/vidhrdw/marvins.c), the screen is flipped when bit 7 of 0x8600 = 1 (and this true !) ...

Here is now the code to decide (or not) to flip the screen for player 2 :

[BEGIN]
0D8A: 3A 00 84 ld a,($8400)
0D8D: CB 4F bit 1,a
0D8F: 28 0C jr z,$0D9D
0D91: 3A 00 85 ld a,($8500)
0D94: CB 6F bit 5,a
0D96: 28 3C jr z,$0DD4
0D98: 3E A0 ld a,$A0
0D9A: C3 A2 0D jp $0DA2
0D9D: 3E 20 ld a,$20
0D9F: C3 17 0E jp $0E17
0DA2: 32 00 86 ld ($8600),a
0DA5: 32 04 C7 ld ($C704),a
....
0DD3: C9 ret
0DD4: 3E 20 ld a,$20
0DD6: C3 17 0E jp $0E17
....
0E17: 32 00 86 ld ($8600),a
0E1A: 32 04 C7 ld ($C704),a
....
0E48: C9 ret
[END]

When "Cabinet" Dip Switch is set to "Upright", instruction at 0x0d8f will jump to 0x0d9d, so 0x20 will be stored at 0x8600 ...

This means that the screen will NEVER be flipped for player 2, even if you set the "Flip Screen" Dip Switch to ON ...

You can easily verify that you are in "Upright" mode : you play with the SAME controls as the ones for player 1 ...

I hope I was clear enough ...
E17 .... 0E17: 32 00 86 ld (00),a 0E1A: 32 04 C7 ld ($C704),a .... 0E48: C9 ret [END] When "Cabinet" Dip Switch is set to "Upright", instruction at 0x0d8f will jump to 0x0d9d, so 0x20 will be stored at 0x8600 ... This means that the screen will NEVER be flipped for player 2, even if you set the "Flip Screen" Dip Switch to ON ... You can easily verify that you are in "Upright" mode : you play with the SAME controls as the ones for player 1 ... I hope I was clear enough ...
Github Commit
Flags
Regression Version
Affected Sets / Systems madcrash
Attached Files
 
Relationships
There are no relationship linked to this issue.
Notes
0
There are no notes attached to this issue.