slapfght.cpp: MT07198 (nw)

This commit is contained in:
Ivan Vangelista 2020-05-08 20:54:54 +02:00
parent 2c637cbbf4
commit dc9804f2ec
2 changed files with 22 additions and 22 deletions

View File

@ -10,7 +10,7 @@
Alcon / Slap Fight Alcon / Slap Fight
Guardian / Get Star Guardian / Get Star
Performan Performan
Tiger Heli Tiger-Heli
TODO: TODO:
- proper MCU emulation (mame/machine/slapfght.cpp) - proper MCU emulation (mame/machine/slapfght.cpp)
@ -36,7 +36,7 @@ $f000-$f7ff READ:SF_S16 WRITE:Character RAM
$f800-$ffff READ:Unknown H/W WRITE:Attribute RAM $f800-$ffff READ:Unknown H/W WRITE:Attribute RAM
$c800-$cfff Appears to be RAM BUT 1st 0x10 bytes are swapped with $c800-$cfff Appears to be RAM BUT 1st 0x10 bytes are swapped with
the sound CPU and visversa for READ OPERATIONS the sound CPU and vice versa for READ OPERATIONS
Write I/O MAP Write I/O MAP
@ -63,7 +63,7 @@ $0f
Read I/O Map Read I/O Map
------------ ------------
$00 Status regsiter - cycle 0xc7, 0x55, 0x00 (Thanks to Dave Spicer for the info) $00 Status register - cycle 0xc7, 0x55, 0x00 (Thanks to Dave Spicer for the info)
Known Info Known Info
@ -210,7 +210,7 @@ Stephh's notes (based on the games Z80 code and some tests) :
- US version, licensed to Kitkorp - name "Guardian". - US version, licensed to Kitkorp - name "Guardian".
- MCU dumped and emulated. - MCU dumped and emulated.
- Difficulty determines the number of energy bars you get. - Difficulty determines the number of energy bars you get.
- Each hit removes 1 enegy bar. - Each hit removes 1 energy bar.
- According to the manual, default difficulty shall be set to "Hard". - According to the manual, default difficulty shall be set to "Hard".
- You can only get ONE extra life. - You can only get ONE extra life.
- I don't know if it's an ingame bug, but you always have to enter - I don't know if it's an ingame bug, but you always have to enter
@ -236,7 +236,7 @@ Stephh's notes (based on the games Z80 code and some tests) :
- Bootleg based on 'getstarj' - Bootleg based on 'getstarj'
- MCU reads/writes are patched, but this hasn't been done in the "test mode". - MCU reads/writes are patched, but this hasn't been done in the "test mode".
- The game seems to have its own protection (check code at 0x0569 and 0x0ac6). - The game seems to have its own protection (check code at 0x0569 and 0x0ac6).
- Patches are coded diffrently than in 'getstarb1' and code isn't always perfect - Patches are coded differently than in 'getstarb1' and code isn't always perfect
(lazy coding ?) which causes LOTS of ingames bugs or strange behaviours : (lazy coding ?) which causes LOTS of ingames bugs or strange behaviours :
* patched command 0x20 : NO continue play * patched command 0x20 : NO continue play
* patched command 0x21 : as soon as a player loses all his lives, * patched command 0x21 : as soon as a player loses all his lives,
@ -250,7 +250,7 @@ Stephh's notes (based on the games Z80 code and some tests) :
(thus the need of a specific INPUT_PORTS definition for this game) (thus the need of a specific INPUT_PORTS definition for this game)
* patched command 0x2a : player flag (which determines if player 1 or * patched command 0x2a : player flag (which determines if player 1 or
player 2 is playing) is NOT updated, causing the following things : player 2 is playing) is NOT updated, causing the following things :
. current player score will ALWAYS be dusplayed under player 1 . current player score will ALWAYS be displayed under player 1
. when cabinet is set to "Cocktail", player 2 uses player 1 inputs . when cabinet is set to "Cocktail", player 2 uses player 1 inputs
* patched command 0x38 : laser position does NOT change according to * patched command 0x38 : laser position does NOT change according to
player position (it ALWATS starts from the middle of the screen) player position (it ALWATS starts from the middle of the screen)
@ -789,7 +789,7 @@ void slapfght_state::init_getstarb1()
init_banks(); init_banks();
/* requires this or it gets stuck with 'rom test' on screen */ /* requires this or it gets stuck with 'rom test' on screen */
/* it is possible the program roms are slighly corrupt like the gfx roms, or /* it is possible the program roms are slightly corrupt like the gfx roms, or
that the bootleg simply shouldn't execute the code due to the modified roms */ that the bootleg simply shouldn't execute the code due to the modified roms */
/* TODO: find & fix the cause of the following happening. */ /* TODO: find & fix the cause of the following happening. */
uint8_t *ROM = memregion("maincpu")->base(); uint8_t *ROM = memregion("maincpu")->base();
@ -1181,19 +1181,19 @@ ROM_END
/* /*
Tiger Heli Tiger-Heli
1985 Taito Corporation 1985 Taito Corporation
The Tiger Heli PCB is almost exactly the same PCB as Slap Fight/Alcon but a few chips The Tiger-Heli PCB is almost exactly the same PCB as Slap Fight/Alcon but a few chips
have different placings and there's more EPROM locations on one of the boards have different placings and there's more EPROM locations on one of the boards
(although they're not populated). (although they're not populated).
Also, Tiger Heli has a 22-way edge connector, while Alcon/Slap Fight is JAMMA. Also, Tiger-Heli has a 22-way edge connector, while Alcon/Slap Fight is JAMMA.
PCB Layouts - Top Board PCB Layouts - Top Board
----------------------- -----------------------
Tiger Heli - M6100111A Tiger-Heli - M6100111A
850011401 850011401
GX-511-A MADE IN JAPAN GX-511-A MADE IN JAPAN
@ -1636,7 +1636,7 @@ ROM_END
This set comes from a different type of board with unique Taito ID code of "A76" This set comes from a different type of board with unique Taito ID code of "A76"
PCBs are labeled GX-006-A & GX-006-B It has a 22pin edge connector and closely PCBs are labeled GX-006-A & GX-006-B It has a 22pin edge connector and closely
resembles the Tigher Heli PCB (shown above) with rom placement and components. resembles the Tiger-Heli PCB (shown above) with rom placement and components.
*/ */
@ -1813,7 +1813,7 @@ ROM_END
Guardian Guardian
1986 Taito Corporation 1986 Taito Corporation
The Guardian PCB is exactly the same PCB as Tiger Heli, including the The Guardian PCB is exactly the same PCB as Tiger-Heli, including the
edge connector pinout. edge connector pinout.
PCB Layout PCB Layout
@ -2049,12 +2049,12 @@ ROM_END
GAME( 1985, perfrman, 0, perfrman, perfrman, slapfght_state, empty_init, ROT270, "Toaplan / Data East Corporation", "Performan (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, perfrman, 0, perfrman, perfrman, slapfght_state, empty_init, ROT270, "Toaplan / Data East Corporation", "Performan (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, perfrmanu, perfrman, perfrman, perfrman, slapfght_state, empty_init, ROT270, "Toaplan / Data East USA", "Performan (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, perfrmanu, perfrman, perfrman, perfrman, slapfght_state, empty_init, ROT270, "Toaplan / Data East USA", "Performan (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, tigerh, 0, tigerh, tigerh, slapfght_state, empty_init, ROT270, "Toaplan / Taito America Corp.", "Tiger Heli (US)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, tigerh, 0, tigerh, tigerh, slapfght_state, empty_init, ROT270, "Toaplan / Taito America Corp.", "Tiger-Heli (US)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, tigerhj, tigerh, tigerh, tigerh, slapfght_state, empty_init, ROT270, "Toaplan / Taito", "Tiger Heli (Japan)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, tigerhj, tigerh, tigerh, tigerh, slapfght_state, empty_init, ROT270, "Toaplan / Taito", "Tiger-Heli (Japan)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, tigerhb1, tigerh, tigerhb1, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger Heli (bootleg set 1)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, tigerhb1, tigerh, tigerhb1, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger-Heli (bootleg set 1)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, tigerhb2, tigerh, tigerhb2, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger Heli (bootleg set 2)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, tigerhb2, tigerh, tigerhb2, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger-Heli (bootleg set 2)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, tigerhb3, tigerh, tigerhb2, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger Heli (bootleg set 3)", MACHINE_SUPPORTS_SAVE ) GAME( 1985, tigerhb3, tigerh, tigerhb2, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger-Heli (bootleg set 3)", MACHINE_SUPPORTS_SAVE )
GAME( 1985, tigerhb4, tigerh, tigerhb4, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger Heli (bootleg set 4)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // MCU not hooked up GAME( 1985, tigerhb4, tigerh, tigerhb4, tigerh, slapfght_state, empty_init, ROT270, "bootleg", "Tiger-Heli (bootleg set 4)", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE ) // MCU not hooked up
GAME( 1986, alcon, 0, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito America Corp.", "Alcon (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) GAME( 1986, alcon, 0, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito America Corp.", "Alcon (US)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )
GAME( 1986, slapfigh, alcon, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (A77 set, 8606M PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) GAME( 1986, slapfigh, alcon, slapfigh, slapfigh, slapfght_state, init_slapfigh, ROT270, "Toaplan / Taito", "Slap Fight (A77 set, 8606M PCB)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL )

View File

@ -46,7 +46,7 @@
DEFINE_DEVICE_TYPE(TAITO68705_MCU, taito68705_mcu_device, "taito68705", "Taito MC68705 MCU Interface") DEFINE_DEVICE_TYPE(TAITO68705_MCU, taito68705_mcu_device, "taito68705", "Taito MC68705 MCU Interface")
DEFINE_DEVICE_TYPE(TAITO68705_MCU_TIGER, taito68705_mcu_tiger_device, "taito68705tiger", "Taito MC68705 MCU Interface (Tiger Heli)") DEFINE_DEVICE_TYPE(TAITO68705_MCU_TIGER, taito68705_mcu_tiger_device, "taito68705tiger", "Taito MC68705 MCU Interface (Tiger-Heli)")
DEFINE_DEVICE_TYPE(ARKANOID_68705P3, arkanoid_68705p3_device, "arkanoid68705p3", "Arkanoid MC68705P3 Interface") DEFINE_DEVICE_TYPE(ARKANOID_68705P3, arkanoid_68705p3_device, "arkanoid68705p3", "Arkanoid MC68705P3 Interface")
DEFINE_DEVICE_TYPE(ARKANOID_68705P5, arkanoid_68705p5_device, "arkanoid68705p5", "Arkanoid MC68705P5 Interface") DEFINE_DEVICE_TYPE(ARKANOID_68705P5, arkanoid_68705p5_device, "arkanoid68705p5", "Arkanoid MC68705P5 Interface")
@ -254,7 +254,7 @@ void taito68705_mcu_device::mcu_portb_w(offs_t offset, u8 data, u8 mem_mask)
} }
/* The Tiger Heli interface has some extensions, handle them here */ /* The Tiger-Heli interface has some extensions, handle them here */
taito68705_mcu_tiger_device::taito68705_mcu_tiger_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) taito68705_mcu_tiger_device::taito68705_mcu_tiger_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: taito68705_mcu_device(mconfig, TAITO68705_MCU_TIGER, tag, owner, clock) : taito68705_mcu_device(mconfig, TAITO68705_MCU_TIGER, tag, owner, clock)
@ -263,7 +263,7 @@ taito68705_mcu_tiger_device::taito68705_mcu_tiger_device(const machine_config &m
u8 taito68705_mcu_tiger_device::mcu_portc_r() u8 taito68705_mcu_tiger_device::mcu_portc_r()
{ {
// Tiger Heli has these status bits inverted MCU-side // Tiger-Heli has these status bits inverted MCU-side
return taito68705_mcu_device::mcu_portc_r() ^ 0x03; return taito68705_mcu_device::mcu_portc_r() ^ 0x03;
} }