mirror of
https://github.com/holub/mame
synced 2025-05-21 05:08:54 +03:00
new clone
---------- Beast Busters (US, Version 2) [Brian Hargrove] (he hasn't confirmed if he's OK being credited with his real name yet, so if the situation changes I'll mail the list) I've also DEMOTED Beast Busters to non-working. As soon as you calibrate the guns the game fails, and without calibrated guns you can't really play. The gun reading is hacked, as are the gun interrupts. This needs fixing *properly*, at which poin I imagine it will actually work, and no just hang after calibration. From what I can tell it's never worked after calibration hence the demotion.
This commit is contained in:
parent
d3046b899f
commit
52e6f0c7d0
@ -190,8 +190,6 @@ If you calibrate the guns correctly the game runs as expected:
|
||||
#include "sound/2608intf.h"
|
||||
#include "sound/2610intf.h"
|
||||
|
||||
#define BBUSTERS_HACK 0
|
||||
#define MECHATT_HACK 0
|
||||
|
||||
VIDEO_START( bbuster );
|
||||
VIDEO_START( mechatt );
|
||||
@ -207,41 +205,32 @@ WRITE16_HANDLER( bbuster_video_w );
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
#if BBUSTERS_HACK
|
||||
static MACHINE_RESET( bbusters )
|
||||
{
|
||||
UINT16 *RAM = (UINT16 *)memory_region(machine, "main");
|
||||
int data = input_port_read(machine, "FAKE1") & 0x03;
|
||||
|
||||
/* Country/Version :
|
||||
- 0x0000 : Japan?
|
||||
- 0x0004 : US?
|
||||
- 0x0008 : World? (default)
|
||||
- 0x000c : World? (same as 0x0008)
|
||||
*/
|
||||
/* Beast Busters Region code works as follows
|
||||
|
||||
RAM[0x003954/2] = data * 4;
|
||||
ROM[0x003954/2] = data * 4;
|
||||
|
||||
// memset (eprom_data, 0xff, 0x80); // Force EEPROM reset
|
||||
}
|
||||
#endif
|
||||
Country/Version :
|
||||
|
||||
#if MECHATT_HACK
|
||||
static MACHINE_RESET( mechatt )
|
||||
{
|
||||
UINT16 *RAM = (UINT16 *)memory_region(machine, "main");
|
||||
int data = input_port_read(machine, "FAKE1") & 0x03;
|
||||
- 0x0000 : Japan?
|
||||
- 0x0004 : US?
|
||||
- 0x0008 : World? (default)
|
||||
- 0x000c : World? (same as 0x0008)
|
||||
|
||||
/* Country :
|
||||
- 0x0000 : Japan
|
||||
- 0x1111 : World (default)
|
||||
- 0x2222 : US
|
||||
- 0x3333 : Asia?
|
||||
*/
|
||||
*/
|
||||
|
||||
/* Mech Attack Region code works as follows
|
||||
|
||||
ROM[0x06a000/2] = (data << 12) | (data << 8) | (data << 4) | (data << 0);
|
||||
|
||||
Country :
|
||||
- 0x0000 : Japan
|
||||
- 0x1111 : World (default)
|
||||
- 0x2222 : US
|
||||
- 0x3333 : Asia?
|
||||
|
||||
*/
|
||||
|
||||
RAM[0x06a000/2] = (data << 12) | (data << 8) | (data << 4) | (data << 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
@ -290,12 +279,13 @@ static WRITE16_HANDLER( gun_select_w )
|
||||
|
||||
static READ16_HANDLER( kludge_r )
|
||||
{
|
||||
bbuster_ram[0xa692/2] = input_port_read(machine, "GUNX1")<<1;
|
||||
bbuster_ram[0xa694/2] = input_port_read(machine, "GUNY1")<<1;
|
||||
bbuster_ram[0xa696/2] = input_port_read(machine, "GUNX2")<<1;
|
||||
bbuster_ram[0xa698/2] = input_port_read(machine, "GUNY2")<<1;
|
||||
bbuster_ram[0xa69a/2] = input_port_read(machine, "GUNX3")<<1;
|
||||
bbuster_ram[0xa69c/2] = input_port_read(machine, "GUNY3")<<1;
|
||||
// this is a hack...
|
||||
// bbuster_ram[0xa692/2] = input_port_read(machine, "GUNX1")<<1;
|
||||
// bbuster_ram[0xa694/2] = input_port_read(machine, "GUNY1")<<1;
|
||||
// bbuster_ram[0xa696/2] = input_port_read(machine, "GUNX2")<<1;
|
||||
// bbuster_ram[0xa698/2] = input_port_read(machine, "GUNY2")<<1;
|
||||
// bbuster_ram[0xa69a/2] = input_port_read(machine, "GUNX3")<<1;
|
||||
// bbuster_ram[0xa69c/2] = input_port_read(machine, "GUNY3")<<1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -488,15 +478,6 @@ static INPUT_PORTS_START( bbusters )
|
||||
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(3)
|
||||
PORT_START("GUNY3")
|
||||
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(3)
|
||||
|
||||
#if BBUSTERS_HACK
|
||||
PORT_START("FAKE1")
|
||||
PORT_DIPNAME( 0x03, 0x02, "Country/Version" )
|
||||
PORT_DIPSETTING( 0x00, "Japan?" )
|
||||
PORT_DIPSETTING( 0x01, "US?" )
|
||||
PORT_DIPSETTING( 0x02, "World?" )
|
||||
// PORT_DIPSETTING( 0x03, "World?" ) // Same as "0008" - impossible choice ?
|
||||
#endif
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( mechatt )
|
||||
@ -564,15 +545,6 @@ static INPUT_PORTS_START( mechatt )
|
||||
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(2)
|
||||
PORT_START("GUNY2")
|
||||
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(25) PORT_KEYDELTA(10) PORT_PLAYER(2)
|
||||
|
||||
#if MECHATT_HACK
|
||||
PORT_START("FAKE1")
|
||||
PORT_DIPNAME( 0x03, 0x01, "Country" )
|
||||
PORT_DIPSETTING( 0x00, DEF_STR( Japan ) )
|
||||
PORT_DIPSETTING( 0x01, DEF_STR( World ) )
|
||||
PORT_DIPSETTING( 0x02, "US" )
|
||||
PORT_DIPSETTING( 0x03, "Asia?" )
|
||||
#endif
|
||||
INPUT_PORTS_END
|
||||
|
||||
/******************************************************************************/
|
||||
@ -704,10 +676,6 @@ static MACHINE_DRIVER_START( bbusters )
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
MDRV_CPU_IO_MAP(sound_portmap,0)
|
||||
|
||||
#if BBUSTERS_HACK
|
||||
MDRV_MACHINE_RESET(bbusters)
|
||||
#endif
|
||||
|
||||
MDRV_NVRAM_HANDLER(bbusters)
|
||||
|
||||
/* video hardware */
|
||||
@ -747,10 +715,6 @@ static MACHINE_DRIVER_START( mechatt )
|
||||
MDRV_CPU_PROGRAM_MAP(sound_map,0)
|
||||
MDRV_CPU_IO_MAP(sounda_portmap,0)
|
||||
|
||||
#if MECHATT_HACK
|
||||
MDRV_MACHINE_RESET(mechatt)
|
||||
#endif
|
||||
|
||||
/* video hardware */
|
||||
MDRV_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
|
||||
|
||||
@ -811,10 +775,11 @@ ROM_START( bbusters )
|
||||
ROM_LOAD( "bb-back2.m6", 0x000000, 0x80000, CRC(8be996f6) SHA1(1e2c56f4c24793f806d7b366b92edc03145ae94c) )
|
||||
|
||||
ROM_REGION( 0x10000, "user1", 0 ) /* Zoom table */
|
||||
/* same rom exists in 4 different locations on the board */
|
||||
ROM_LOAD( "bb-6.e7", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
/* This rom also as bb-7.h7 */
|
||||
/* This rom also as bb-8.a14 */
|
||||
/* This rom also as bb-9.c14 */
|
||||
ROM_LOAD( "bb-7.h7", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
ROM_LOAD( "bb-8.a14", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
ROM_LOAD( "bb-9.c14", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
|
||||
ROM_REGION( 0x80000, "ym", 0 )
|
||||
ROM_LOAD( "bb-pcma.l5", 0x000000, 0x80000, CRC(44cd5bfe) SHA1(26a612191a0aa614c090203485aba17c99c763ee) )
|
||||
@ -823,6 +788,52 @@ ROM_START( bbusters )
|
||||
ROM_LOAD( "bb-pcmb.l3", 0x000000, 0x80000, CRC(c8d5dd53) SHA1(0f7e94532cc14852ca12c1b792e5479667af899e) )
|
||||
ROM_END
|
||||
|
||||
ROM_START( bbusteru )
|
||||
ROM_REGION( 0x80000, "main", 0 )
|
||||
ROM_LOAD16_BYTE( "bbv2-3.k10", 0x000000, 0x20000, CRC(6930088b) SHA1(265f0b584d81b6fdcda5c3a2e0bd15d56443bb35) )
|
||||
ROM_LOAD16_BYTE( "bbv2-5.k12", 0x000001, 0x20000, CRC(cfdb2c6c) SHA1(54a837dc84b74d12e931f607f3dc9ee06a7e4d31) )
|
||||
ROM_LOAD16_BYTE( "bb-2.k8", 0x040000, 0x20000, CRC(20141805) SHA1(0958579681bda81bcf48d020a14bc147c1e575f1) )
|
||||
ROM_LOAD16_BYTE( "bb-4.k11", 0x040001, 0x20000, CRC(d482e0e9) SHA1(e56ca92965e8954b613ba4b0e3975e3a12840c30) )
|
||||
|
||||
ROM_REGION( 0x10000, "audio", 0 )
|
||||
ROM_LOAD( "bb-1.e6", 0x000000, 0x10000, CRC(4360f2ee) SHA1(4c6b212f59389bdf4388893d2030493b110ac087) )
|
||||
|
||||
ROM_REGION( 0x020000, "gfx1", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "bb-10.l9", 0x000000, 0x20000, CRC(490c0d9b) SHA1(567c25a6d96407259c64061d674305e4117d9fa4) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx2", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "bb-f11.m16", 0x000000, 0x80000, CRC(39fdf9c0) SHA1(80392947e3a1831c3ee80139f6f3bdc3bafa4f0d) )
|
||||
ROM_LOAD( "bb-f12.m13", 0x080000, 0x80000, CRC(69ee046b) SHA1(5c0435f1ce76b584fa8d154d7617d73c7ab5f62f) )
|
||||
ROM_LOAD( "bb-f13.m12", 0x100000, 0x80000, CRC(f5ef840e) SHA1(dd0f630c52076e0d330f47931e68a3ae9a401078) )
|
||||
ROM_LOAD( "bb-f14.m11", 0x180000, 0x80000, CRC(1a7df3bb) SHA1(1f27a528e6f89fe56a7342c4f1ff733da0a09327) )
|
||||
|
||||
ROM_REGION( 0x200000, "gfx3", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "bb-f21.l10", 0x000000, 0x80000, CRC(530f595b) SHA1(820898693b878c4423de9c244f943d39ea69515e) )
|
||||
ROM_LOAD( "bb-f22.l12", 0x080000, 0x80000, CRC(889c562e) SHA1(d19172d6515ab9793c98de75d6e41687e61a408d) )
|
||||
ROM_LOAD( "bb-f23.l13", 0x100000, 0x80000, CRC(c89fe0da) SHA1(92be860a7191e7473c42aa2da981eda873219d3d) )
|
||||
ROM_LOAD( "bb-f24.l15", 0x180000, 0x80000, CRC(e0d81359) SHA1(2213c17651b6c023a456447f352b0739439f913a) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx4", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "bb-back1.m4", 0x000000, 0x80000, CRC(b5445313) SHA1(3c99b557b2af30ff0fbc8a7dc6c40448c4f327db) )
|
||||
|
||||
ROM_REGION( 0x80000, "gfx5", ROMREGION_DISPOSE )
|
||||
ROM_LOAD( "bb-back2.m6", 0x000000, 0x80000, CRC(8be996f6) SHA1(1e2c56f4c24793f806d7b366b92edc03145ae94c) )
|
||||
|
||||
ROM_REGION( 0x10000, "user1", 0 ) /* Zoom table */
|
||||
/* same rom exists in 4 different locations on the board */
|
||||
ROM_LOAD( "bb-6.e7", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
ROM_LOAD( "bb-7.h7", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
ROM_LOAD( "bb-8.a14", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
ROM_LOAD( "bb-9.c14", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
|
||||
ROM_REGION( 0x80000, "ym", 0 )
|
||||
ROM_LOAD( "bb-pcma.l5", 0x000000, 0x80000, CRC(44cd5bfe) SHA1(26a612191a0aa614c090203485aba17c99c763ee) )
|
||||
|
||||
ROM_REGION( 0x80000, "ym.deltat", 0 )
|
||||
ROM_LOAD( "bb-pcmb.l3", 0x000000, 0x80000, CRC(c8d5dd53) SHA1(0f7e94532cc14852ca12c1b792e5479667af899e) )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( mechatt )
|
||||
ROM_REGION( 0x80000, "main", 0 )
|
||||
ROM_LOAD16_BYTE( "ma5-e.bin", 0x000000, 0x20000, CRC(9bbb852a) SHA1(34b696bf79cf53cac1c384a3143c0f3f243a71f3) )
|
||||
@ -856,7 +867,7 @@ ROM_START( mechatt )
|
||||
|
||||
ROM_REGION( 0x20000, "user1", 0 ) /* Zoom table */
|
||||
ROM_LOAD( "ma8.bin", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
/* ma9 is identical to ma8 */
|
||||
ROM_LOAD( "ma9.bin", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) ) /* identical to ma8 */
|
||||
ROM_END
|
||||
|
||||
|
||||
@ -893,50 +904,15 @@ ROM_START( mechattu )
|
||||
|
||||
ROM_REGION( 0x20000, "user1", 0 ) /* Zoom table */
|
||||
ROM_LOAD( "ma8.bin", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) )
|
||||
/* ma9 is identical to ma8 */
|
||||
ROM_LOAD( "ma9.bin", 0x000000, 0x10000, CRC(61f3de03) SHA1(736f9634fe054ea68a2aa90a743bd0dc320f23c9) ) /* identical to ma8 */
|
||||
ROM_END
|
||||
|
||||
|
||||
#if 0
|
||||
static void bbusters_patch_code(UINT16 offset)
|
||||
{
|
||||
/* To avoid checksum error */
|
||||
UINT16 *RAM = (UINT16 *)memory_region(machine, "main");
|
||||
RAM[(offset + 0)/2] = 0x4e71;
|
||||
RAM[(offset + 2)/2] = 0x4e71;
|
||||
RAM[(offset + 10)/2] = 0x4e71;
|
||||
RAM[(offset + 12)/2] = 0x4e71;
|
||||
RAM[(offset + 20)/2] = 0x4e71;
|
||||
RAM[(offset + 22)/2] = 0x4e71;
|
||||
RAM[(offset + 30)/2] = 0x4e71;
|
||||
RAM[(offset + 32)/2] = 0x4e71;
|
||||
}
|
||||
#endif
|
||||
|
||||
static DRIVER_INIT( bbusters )
|
||||
{
|
||||
#if BBUSTERS_HACK
|
||||
bbusters_patch_code(0x00234c);
|
||||
#endif
|
||||
}
|
||||
|
||||
static DRIVER_INIT( mechatt )
|
||||
{
|
||||
#if MECHATT_HACK
|
||||
bbusters_patch_code(0x003306);
|
||||
#endif
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
#if !MECHATT_HACK
|
||||
GAME( 1989, bbusters, 0, bbusters, bbusters, bbusters, ROT0, "SNK", "Beast Busters (World ?)", 0 )
|
||||
#else
|
||||
GAME( 1989, bbusters, 0, bbusters, bbusters, bbusters, ROT0, "SNK", "Beast Busters", 0 )
|
||||
#endif
|
||||
#if !MECHATT_HACK
|
||||
GAME( 1989, mechatt, 0, mechatt, mechatt, mechatt, ROT0, "SNK", "Mechanized Attack (World)", 0 )
|
||||
#else
|
||||
GAME( 1989, mechatt, 0, mechatt, mechatt, mechatt, ROT0, "SNK", "Mechanized Attack", 0 )
|
||||
#endif
|
||||
GAME( 1989, mechattu, mechatt, mechatt, mechatt, mechatt, ROT0, "SNK", "Mechanized Attack (US)", 0 )
|
||||
// as soon as you calibrate the guns in test mode the game refuses to boot
|
||||
GAME( 1989, bbusters, 0, bbusters, bbusters, 0, ROT0, "SNK", "Beast Busters (World)", GAME_NOT_WORKING )
|
||||
GAME( 1989, bbusteru, bbusters, bbusters, bbusters, 0, ROT0, "SNK", "Beast Busters (US, Version 2)", GAME_NOT_WORKING )
|
||||
|
||||
GAME( 1989, mechatt, 0, mechatt, mechatt, 0, ROT0, "SNK", "Mechanized Attack (World)", 0 )
|
||||
GAME( 1989, mechattu, mechatt, mechatt, mechatt, 0, ROT0, "SNK", "Mechanized Attack (US)", 0 )
|
||||
|
@ -5595,6 +5595,7 @@ BOMULEUL CHAJARA SEGA ST-V 1997/04/11
|
||||
DRIVER( mechatt ) /* A8002 'MA' (c) 1989 */
|
||||
DRIVER( mechattu ) /* A8002 'MA' (c) 1989 */
|
||||
DRIVER( bbusters ) /* A9003 'BB' (c) 1989 */
|
||||
DRIVER( bbusteru ) /* A9003 'BB' (c) 1989 */
|
||||
|
||||
/* Electrocoin on early SNK hardware - gambling game remove once it works */
|
||||
DRIVER( dmndrby ) /* G4001 'DD' (c) 1986 */
|
||||
|
Loading…
Reference in New Issue
Block a user