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 ... |