summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/bloodbro.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bloodbro.cpp')
-rw-r--r--src/mame/drivers/bloodbro.cpp161
1 files changed, 127 insertions, 34 deletions
diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp
index aec77b66985..6433aecfcbc 100644
--- a/src/mame/drivers/bloodbro.cpp
+++ b/src/mame/drivers/bloodbro.cpp
@@ -10,9 +10,10 @@ driver by Carlos A. Lozano Baides
TODO:
West Story:
-- sound (still has IRQ problems)
-- some bad sprites (2 bad sprite roms, should the actual decoded data match?)
-
+- sound (still has IRQ problems) - seems way too fast but using actual
+ measurements from a real PCB
+- some bad sprites, WS25 & WS26 appear to contain bad sprites, but verified
+ correct on 2 different PCBs. Should the actual decoded data match?
Blood Bros (c) 1990 Nihon System [Seibu hardware]
-----------
@@ -23,11 +24,6 @@ The manual states:
This works for all sets and the bootleg.
-Fabtek licensed this game for the U.S. along with other games by Seibu and TAD.
-Though no Fabtek-licensed set has been dumped yet, and the program code does
-not appear to test a region byte, the TAD strings displayed on the title screen
-are both space-justified to the same length as the unused string "U.S. LICENSEE
-FABTEK, INC."
Sky Smasher (c) 1990 Nihon System [Seibu hardware]
-----------
@@ -127,6 +123,20 @@ Stephh's notes (based on the games M68000 code and some tests) :
DIP locations verified for Blood Bros. & Sky Smasher via manual & DIP-SW setting
screens at power up.
+Actual clock measurements from the Datsu bootleg PCB:
+
+CPUs:
+ 68000 @ 10MHz (20MHz/2)
+ Z80 @ 5MHz (20MHz/4)
+
+Sound:
+ OKI MSMS6295 @ 1.250MHz (20MHz/16), PIN7 is HIGH
+ YM3812 @ ~4.9MHz (20MHz/4 or 4.7017MHz = 9.8034MHz OSC / 2)
+
+Video:
+ H-SYNC @ 15.62KHz
+ V-SYNC @ 59Hz
+
**************************************************************************/
#include "emu.h"
@@ -561,6 +571,7 @@ static MACHINE_CONFIG_DERIVED( weststry, bloodbro )
MCFG_CPU_VBLANK_INT_DRIVER("screen", bloodbro_state, irq6_line_hold)
MCFG_CPU_MODIFY("audiocpu")
+ MCFG_CPU_CLOCK(XTAL_20MHz/4) /* 5MHz - verified on PCB */
MCFG_CPU_PROGRAM_MAP(weststry_sound_map)
MCFG_GFXDECODE_MODIFY("gfxdecode", weststry)
@@ -570,12 +581,18 @@ static MACHINE_CONFIG_DERIVED( weststry, bloodbro )
// Bootleg video hardware is non-Seibu
MCFG_SCREEN_MODIFY("screen")
+ MCFG_SCREEN_REFRESH_RATE(59) /* verified on PCB */
MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_weststry)
MCFG_DEVICE_REMOVE("crtc")
// Bootleg sound hardware is close copy of Seibu, but uses different interrupts
- MCFG_SOUND_MODIFY("ymsnd")
+
+ MCFG_OKIM6295_REPLACE("oki", XTAL_20MHz/16, PIN7_HIGH) /* 1.25MHz - verified on PCB */
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
+
+ MCFG_SOUND_REPLACE("ymsnd", YM3812, XTAL_20MHz/4) /* ~4.9MHz - see notes at top */
MCFG_YM3812_IRQ_HANDLER(WRITELINE(bloodbro_state, weststry_opl_irq_w))
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_DEVICE_MODIFY("seibu_sound")
MCFG_SEIBU_SOUND_YM_WRITE_CB(WRITE8(bloodbro_state, weststry_opl_w))
@@ -595,10 +612,10 @@ MACHINE_CONFIG_END
ROM_START( bloodbro )
ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "2j.u021.7n", 0x00001, 0x20000, CRC(c0fdc3e4) SHA1(31968f693de2054a0c8ba50a8d44a371dd9c2848) )
- ROM_LOAD16_BYTE( "1j.u022.8n", 0x00000, 0x20000, CRC(2d7e0fdf) SHA1(8fe22d8a1ef7d562a475a5b6c98303b0cb1af561) )
- ROM_LOAD16_BYTE( "bb_04.u023.7l", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
- ROM_LOAD16_BYTE( "bb_03.u024.8l", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
+ ROM_LOAD16_BYTE( "2.u021.7n", 0x00001, 0x20000, CRC(204dca6e) SHA1(f04cb2116d699ac2deec2d55597beb5d7b3dc793) )
+ ROM_LOAD16_BYTE( "1.u022.8n", 0x00000, 0x20000, CRC(ac6719e7) SHA1(bcefd61ed5d2f5eeb4424243f03037c7d123b9f6) )
+ ROM_LOAD16_BYTE( "4.u023.7l", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
+ ROM_LOAD16_BYTE( "3.u024.8l", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "bb_07.u1016.6a", 0x000000, 0x08000, CRC(411b94e8) SHA1(6968441f64212c0935afeca68f07deaadf86d614) )
@@ -622,12 +639,12 @@ ROM_START( bloodbro )
ROM_LOAD( "cb006.u083.6c", 0x0000, 0x0100, CRC(b2b89a74) SHA1(1878823801048d677aef9702feedd5bf775e62d0) ) // N82S135N
ROM_END
-ROM_START( bloodbroa )
+ROM_START( bloodbroj )
ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "2j_a.u021.7n", 0x00001, 0x20000, CRC(e8ca21b8) SHA1(65330368c29ec64ca03124d28a7f8b49d7a15566) )
- ROM_LOAD16_BYTE( "1j_a.u022.8n", 0x00000, 0x20000, CRC(6b28cfc7) SHA1(dedd06cab61381f3e27dc14315f283d707d06bcb) )
- ROM_LOAD16_BYTE( "bb_04.u023.7l", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
- ROM_LOAD16_BYTE( "bb_03.u024.8l", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
+ ROM_LOAD16_BYTE( "2j_a.u021.7n", 0x00001, 0x20000, CRC(e8ca21b8) SHA1(65330368c29ec64ca03124d28a7f8b49d7a15566) )
+ ROM_LOAD16_BYTE( "1j_a.u022.8n", 0x00000, 0x20000, CRC(6b28cfc7) SHA1(dedd06cab61381f3e27dc14315f283d707d06bcb) )
+ ROM_LOAD16_BYTE( "4.u023.7l", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
+ ROM_LOAD16_BYTE( "3.u024.8l", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "bb_07.u1016.6a", 0x000000, 0x08000, CRC(411b94e8) SHA1(6968441f64212c0935afeca68f07deaadf86d614) )
@@ -651,12 +668,12 @@ ROM_START( bloodbroa )
ROM_LOAD( "cb006.u083.6c", 0x0000, 0x0100, CRC(b2b89a74) SHA1(1878823801048d677aef9702feedd5bf775e62d0) ) // N82S135N
ROM_END
-ROM_START( bloodbrob )
+ROM_START( bloodbroja )
ROM_REGION( 0x80000, "maincpu", 0 )
- ROM_LOAD16_BYTE( "bloodbros02.u021.7n", 0x00001, 0x20000, CRC(204dca6e) SHA1(f04cb2116d699ac2deec2d55597beb5d7b3dc793) )
- ROM_LOAD16_BYTE( "bloodbros01.u022.8n", 0x00000, 0x20000, CRC(ac6719e7) SHA1(bcefd61ed5d2f5eeb4424243f03037c7d123b9f6) )
- ROM_LOAD16_BYTE( "bb_04.u023.7l", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
- ROM_LOAD16_BYTE( "bb_03.u024.8l", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
+ ROM_LOAD16_BYTE( "2j.u021.7n", 0x00001, 0x20000, CRC(c0fdc3e4) SHA1(31968f693de2054a0c8ba50a8d44a371dd9c2848) )
+ ROM_LOAD16_BYTE( "1j.u022.8n", 0x00000, 0x20000, CRC(2d7e0fdf) SHA1(8fe22d8a1ef7d562a475a5b6c98303b0cb1af561) )
+ ROM_LOAD16_BYTE( "4.u023.7l", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
+ ROM_LOAD16_BYTE( "3.u024.8l", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
ROM_REGION( 0x20000, "audiocpu", 0 )
ROM_LOAD( "bb_07.u1016.6a", 0x000000, 0x08000, CRC(411b94e8) SHA1(6968441f64212c0935afeca68f07deaadf86d614) )
@@ -680,13 +697,87 @@ ROM_START( bloodbrob )
ROM_LOAD( "cb006.u083.6c", 0x0000, 0x0100, CRC(b2b89a74) SHA1(1878823801048d677aef9702feedd5bf775e62d0) ) // N82S135N
ROM_END
+ROM_START( bloodbrou )
+ ROM_REGION( 0x80000, "maincpu", 0 )
+ ROM_LOAD16_BYTE( "2u.u021.7n", 0x00001, 0x20000, CRC(45186bd3) SHA1(414e2d048b5266a932e70ec27b776833090b3cda) )
+ ROM_LOAD16_BYTE( "1u.u022.8n", 0x00000, 0x20000, CRC(f2cb95c1) SHA1(c047a6a222087bfea4229d45a115f0d89f112985) )
+ ROM_LOAD16_BYTE( "4.u023.7l", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
+ ROM_LOAD16_BYTE( "3.u024.8l", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
-ROM_START( weststry )
+ ROM_REGION( 0x20000, "audiocpu", 0 )
+ ROM_LOAD( "bb_07.u1016.6a", 0x000000, 0x08000, CRC(411b94e8) SHA1(6968441f64212c0935afeca68f07deaadf86d614) )
+ ROM_CONTINUE( 0x010000, 0x08000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
+
+ ROM_REGION( 0x20000, "gfx1", 0 )
+ ROM_LOAD( "bb_05.u061.6f", 0x00000, 0x10000, CRC(04ba6d19) SHA1(7333075c3323756d51917418b5234d785a9bee00) ) /* characters */
+ ROM_LOAD( "bb_06.u063.6d", 0x10000, 0x10000, CRC(7092e35b) SHA1(659d30b2e2fd9ffa34a47e98193c8f0a87ac1315) )
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD( "blood_bros_bk__(c)1990_tad_corp.u064.4d", 0x00000, 0x100000, CRC(1aa87ee6) SHA1(e7843c1e8a0f3a685f0b5d6e3a2eb3176c410847) ) /* Background+Foreground */
+
+ ROM_REGION( 0x100000, "gfx3", 0 )
+ ROM_LOAD( "blood_bros_obj__(c)1990_tad_corp.u078.2n", 0x00000, 0x100000, CRC(d27c3952) SHA1(de7306432b682f238b911507ad7aa2fa8acbee80) ) /* sprites */
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "bb_08.u095.5a", 0x00000, 0x20000, CRC(deb1b975) SHA1(08f2e9a0a23171201b71d381d091edcd3787c287) )
+
+ ROM_REGION( 0x0100, "proms", 0 )
+ ROM_LOAD( "cb006.u083.6c", 0x0000, 0x0100, CRC(b2b89a74) SHA1(1878823801048d677aef9702feedd5bf775e62d0) ) // N82S135N
+ROM_END
+
+ROM_START( weststory )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for cpu code; based on bloodbrob */
ROM_LOAD16_BYTE( "ws13.bin", 0x00001, 0x20000, CRC(158e302a) SHA1(52cc1bf526424ff025a6b79f3fc7bba4b9bbfcbb) )
ROM_LOAD16_BYTE( "ws15.bin", 0x00000, 0x20000, CRC(672e9027) SHA1(71cb9fcef04edb972ba88de45d605dcff539ea2d) )
- ROM_LOAD16_BYTE( "bb_04.bin", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
- ROM_LOAD16_BYTE( "bb_03.bin", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
+ ROM_LOAD16_BYTE( "ws14.bin", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
+ ROM_LOAD16_BYTE( "ws16.bin", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
+
+ ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for sound cpu code; based on different revision of original Seibu code */
+ ROM_LOAD( "ws17.bin", 0x000000, 0x08000, CRC(e00a8f09) SHA1(e7247ce0ab99d0726f31dee5de5ba33f4ebd183e) )
+ ROM_CONTINUE( 0x010000, 0x08000 )
+ ROM_COPY( "audiocpu", 0x000000, 0x018000, 0x08000 )
+
+ ROM_REGION( 0x20000, "gfx1", 0 ) // first half of these is blank
+ ROM_LOAD( "ws09.bin", 0x00000, 0x08000, CRC(f05b2b3e) SHA1(6570d795d68655ace9668f32dc0bf5c2d2372411) ) /* characters */
+ ROM_CONTINUE( 0x00000, 0x08000 )
+ ROM_LOAD( "ws11.bin", 0x08000, 0x08000, CRC(2b10e3d2) SHA1(0f5045615b44e2300745fd3afac7f1441352cca5) )
+ ROM_CONTINUE( 0x08000, 0x08000 )
+ ROM_LOAD( "ws10.bin", 0x10000, 0x08000, CRC(efdf7c82) SHA1(65392697f56473cfe90d9733b9c49f2da6f9b7e6) )
+ ROM_CONTINUE( 0x10000, 0x08000 )
+ ROM_LOAD( "ws12.bin", 0x18000, 0x08000, CRC(af993578) SHA1(b250b562deeab3bb2c79002e5e1f0b6e17986848) )
+ ROM_CONTINUE( 0x18000, 0x08000 )
+
+ ROM_REGION( 0x100000, "gfx2", 0 )
+ ROM_LOAD( "ws01.bin", 0x20000, 0x20000, CRC(32bda4bc) SHA1(ed0c0740c7af513b341b2b7ff3e0bf6045e930e9) ) /* Foreground */
+ ROM_LOAD( "ws03.bin", 0x60000, 0x20000, CRC(046b51f8) SHA1(25af752caebdec762582fc0130cf14546110bb54) )
+ ROM_LOAD( "ws02.bin", 0xa0000, 0x20000, CRC(ed9d682e) SHA1(0f79ea09a7af367d175081f72f2bc94f6caad463) )
+ ROM_LOAD( "ws04.bin", 0xe0000, 0x20000, CRC(75f082e5) SHA1(b29f09a3cc9a0ac3f982be3981f5e895050c49e8) )
+ ROM_LOAD( "ws05.bin", 0x00000, 0x20000, CRC(007c8dc0) SHA1(f44576da3b89d6a889fdb564825ac6ce3bb4cffe) ) /* Background */
+ ROM_LOAD( "ws07.bin", 0x40000, 0x20000, CRC(0f0c8d9a) SHA1(f5fe9b5ee4c8ffd7caf5313d13fb5f6e181ed9b6) )
+ ROM_LOAD( "ws06.bin", 0x80000, 0x20000, CRC(459d075e) SHA1(24cd0bffe7c5bbccf653ced0b73579059603d187) )
+ ROM_LOAD( "ws08.bin", 0xc0000, 0x20000, CRC(4d6783b3) SHA1(9870fe9570afeff179b6080581fd6bb187898ff0) )
+
+ ROM_REGION( 0x100000, "gfx3", ROMREGION_INVERT )
+ ROM_LOAD( "ws25.bin", 0x00000, 0x20000, CRC(8092e8e9) SHA1(eabe58ac0f88234b0dddf361f56aad509a83012e) ) /* sprites */
+ ROM_LOAD( "ws26.bin", 0x20000, 0x20000, CRC(f6a1f42c) SHA1(6d5503e1a9b00104970292d22301ed28893c5223) ) /* WS25 & WS26 contain bad sprites, but verified correct on 2 different PCBs */
+ ROM_LOAD( "ws23.bin", 0x40000, 0x20000, CRC(43d58e24) SHA1(99e255faa9716d9102a1223419084fc209ab4024) )
+ ROM_LOAD( "ws24.bin", 0x60000, 0x20000, CRC(20a867ea) SHA1(d3985002931fd4180fc541d61a94371871f3709d) )
+ ROM_LOAD( "ws21.bin", 0x80000, 0x20000, CRC(e23d7296) SHA1(33bbced960be22efc7d2681e06a27feba09e0fc0) )
+ ROM_LOAD( "ws22.bin", 0xa0000, 0x20000, CRC(7150a060) SHA1(73bdd7d6752f7fe9e23073d835dbc468d57865fa) )
+ ROM_LOAD( "ws19.bin", 0xc0000, 0x20000, CRC(c5dd0a96) SHA1(4696ab1b02d40c54a7dacf0bdf90b624b7d6812e) )
+ ROM_LOAD( "ws20.bin", 0xe0000, 0x20000, CRC(f1245c16) SHA1(f3941bf5830995f65a5378326fdb72687fbbddcf) )
+
+ ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
+ ROM_LOAD( "ws18.bin", 0x00000, 0x20000, CRC(deb1b975) SHA1(08f2e9a0a23171201b71d381d091edcd3787c287) )
+ROM_END
+
+ROM_START( weststorya )
+ ROM_REGION( 0x80000, "maincpu", 0 ) /* 64k for cpu code; based on bloodbrob */
+ ROM_LOAD16_BYTE( "13.bin", 0x00001, 0x20000, CRC(d50e1dfd) SHA1(b0ed90a602ae079c897de6d4cbed61f389f4b220) )
+ ROM_LOAD16_BYTE( "15.bin", 0x00000, 0x20000, CRC(fd419c7b) SHA1(f3b23a3f1d550b1739059aeb0fa92076d2b86f69) )
+ ROM_LOAD16_BYTE( "ws14.bin", 0x40001, 0x20000, CRC(fd951c2c) SHA1(f4031bf303c67c82f2f78f7456f78382d8c1ac85) )
+ ROM_LOAD16_BYTE( "ws16.bin", 0x40000, 0x20000, CRC(18d3c460) SHA1(93b86af1199f0fedeaf1fe64d27ffede4b819e42) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* 64k for sound cpu code; based on different revision of original Seibu code */
ROM_LOAD( "ws17.bin", 0x000000, 0x08000, CRC(e00a8f09) SHA1(e7247ce0ab99d0726f31dee5de5ba33f4ebd183e) )
@@ -714,8 +805,8 @@ ROM_START( weststry )
ROM_LOAD( "ws08.bin", 0xc0000, 0x20000, CRC(4d6783b3) SHA1(9870fe9570afeff179b6080581fd6bb187898ff0) )
ROM_REGION( 0x100000, "gfx3", ROMREGION_INVERT )
- ROM_LOAD( "ws25.bin", 0x00000, 0x20000, BAD_DUMP CRC(8092e8e9) SHA1(eabe58ac0f88234b0dddf361f56aad509a83012e) ) /* sprites */
- ROM_LOAD( "ws26.bin", 0x20000, 0x20000, BAD_DUMP CRC(f6a1f42c) SHA1(6d5503e1a9b00104970292d22301ed28893c5223) )
+ ROM_LOAD( "ws25.bin", 0x00000, 0x20000, CRC(8092e8e9) SHA1(eabe58ac0f88234b0dddf361f56aad509a83012e) ) /* sprites */
+ ROM_LOAD( "ws26.bin", 0x20000, 0x20000, CRC(f6a1f42c) SHA1(6d5503e1a9b00104970292d22301ed28893c5223) ) /* WS25 & WS26 contain bad sprites, but verified correct on 2 different PCBs */
ROM_LOAD( "ws23.bin", 0x40000, 0x20000, CRC(43d58e24) SHA1(99e255faa9716d9102a1223419084fc209ab4024) )
ROM_LOAD( "ws24.bin", 0x60000, 0x20000, CRC(20a867ea) SHA1(d3985002931fd4180fc541d61a94371871f3709d) )
ROM_LOAD( "ws21.bin", 0x80000, 0x20000, CRC(e23d7296) SHA1(33bbced960be22efc7d2681e06a27feba09e0fc0) )
@@ -724,7 +815,7 @@ ROM_START( weststry )
ROM_LOAD( "ws20.bin", 0xe0000, 0x20000, CRC(f1245c16) SHA1(f3941bf5830995f65a5378326fdb72687fbbddcf) )
ROM_REGION( 0x40000, "oki", 0 ) /* ADPCM samples */
- ROM_LOAD( "bb_08.bin", 0x00000, 0x20000, CRC(deb1b975) SHA1(08f2e9a0a23171201b71d381d091edcd3787c287) )
+ ROM_LOAD( "ws18.bin", 0x00000, 0x20000, CRC(deb1b975) SHA1(08f2e9a0a23171201b71d381d091edcd3787c287) )
ROM_END
ROM_START( skysmash )
@@ -774,8 +865,10 @@ DRIVER_INIT_MEMBER(bloodbro_state,weststry)
/* Game Drivers */
-GAME( 1990, bloodbro, 0, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1990, bloodbroa,bloodbro, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1990, bloodbrob,bloodbro, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (set 3)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1990, weststry, bloodbro, weststry, weststry, bloodbro_state, weststry, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros.)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
-GAME( 1990, skysmash, 0, skysmash, skysmash, bloodbro_state, 0, ROT270, "Nihon System", "Sky Smasher", MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bloodbro, 0, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (World?)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bloodbroj, bloodbro, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (Japan, rev A)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bloodbroja, bloodbro, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation", "Blood Bros. (Japan)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, bloodbrou, bloodbro, bloodbro, bloodbro, bloodbro_state, 0, ROT0, "TAD Corporation (Fabtek license)", "Blood Bros. (US)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, weststory, bloodbro, weststry, weststry, bloodbro_state, weststry, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros., set 1)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, weststorya, bloodbro, weststry, weststry, bloodbro_state, weststry, ROT0, "bootleg (Datsu)", "West Story (bootleg of Blood Bros., set 2)", MACHINE_NO_COCKTAIL | MACHINE_SUPPORTS_SAVE )
+GAME( 1990, skysmash, 0, skysmash, skysmash, bloodbro_state, 0, ROT270, "Nihon System", "Sky Smasher", MACHINE_SUPPORTS_SAVE )