Merge pull request #3607 from DavidHaywood/240518

new machines marked as NOT WORKING (Tom Tom Magic)
This commit is contained in:
ajrhacker 2018-05-24 20:02:49 -04:00 committed by GitHub
commit 718e3e2a0b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 189 additions and 0 deletions

View File

@ -377,6 +377,29 @@ void nmk16_state::manybloc_map(address_map &map)
map(0x0f0000, 0x0fffff).ram().share("mainram");
}
void nmk16_tomagic_state::tomagic_map(address_map &map)
{
map(0x000000, 0x07ffff).rom();
map(0x080000, 0x080001).portr("IN0");
map(0x080002, 0x080003).portr("IN1");
map(0x080008, 0x080009).portr("DSW1");
map(0x080014, 0x080015).w(this, FUNC(nmk16_state::nmk_flipscreen_w));
map(0x080018, 0x080019).w(this, FUNC(nmk16_state::nmk_tilebank_w));
map(0x088000, 0x0887ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
map(0x08c000, 0x08c1ff).writeonly().share("scrollram");
map(0x08c200, 0x08c3ff).writeonly().share("scrollramy");
map(0x090000, 0x093fff).ram().w(this, FUNC(nmk16_state::nmk_bgvideoram_w<0>)).share("nmk_bgvideoram0");
map(0x09c000, 0x09cfff).mirror(0x001000).ram().w(this, FUNC(nmk16_state::nmk_txvideoram_w)).share("nmk_txvideoram");
map(0x0f0000, 0x0fffff).ram().share("mainram");
}
void nmk16_tomagic_state::tomagic_sound_map(address_map &map)
{
map(0x0000, 0xbfff).rom();
map(0xc000, 0xdfff).ram();
}
void nmk16_state::tharrier_map(address_map &map)
{
map(0x000000, 0x03ffff).rom();
@ -1394,6 +1417,81 @@ static INPUT_PORTS_START( manybloc )
PORT_DIPSETTING( 0x8000, "Best" )
INPUT_PORTS_END
// wrong
static INPUT_PORTS_START( tomagic )
PORT_START("IN0") /* 0x080000 */
PORT_BIT( 0x7fff, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_BIT( 0x8000, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("IN1") /* 0x080002 */
PORT_BIT( 0x0001, IP_ACTIVE_HIGH, IPT_START1 )
PORT_BIT( 0x0002, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(1)
PORT_BIT( 0x0004, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1)
PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY
PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY
PORT_BIT( 0x0020, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY
PORT_BIT( 0x0040, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY
PORT_BIT( 0x0080, IP_ACTIVE_HIGH, IPT_COIN1 )
PORT_BIT( 0x0100, IP_ACTIVE_HIGH, IPT_START2 )
PORT_BIT( 0x0200, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_PLAYER(2)
PORT_BIT( 0x0400, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(2)
PORT_BIT( 0x0800, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x1000, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x2000, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x4000, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL
PORT_BIT( 0x8000, IP_ACTIVE_HIGH, IPT_COIN2 )
PORT_START("DSW1")
PORT_DIPNAME( 0x0001, 0x0001, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0001, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0002, 0x0002, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0002, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0004, 0x0004, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0004, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0008, 0x0008, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0008, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0010, 0x0010, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0010, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0020, 0x0020, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0020, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0040, 0x0040, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0040, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0080, 0x0080, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0080, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0100, 0x0100, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0100, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0200, 0x0200, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0200, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0400, 0x0400, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0400, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x0800, 0x0800, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x0800, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x1000, 0x1000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x1000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x2000, 0x2000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x2000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x4000, 0x4000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x4000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
PORT_DIPNAME( 0x8000, 0x8000, DEF_STR( Unknown ) )
PORT_DIPSETTING( 0x8000, DEF_STR( Off ) )
PORT_DIPSETTING( 0x0000, DEF_STR( On ) )
INPUT_PORTS_END
/**********************************************************
Input Ports: Task Force Harrier
@ -4684,6 +4782,43 @@ MACHINE_CONFIG_START(nmk16_state::manybloc)
MACHINE_CONFIG_END
// non-nmk board, clearly cloned hw tho, all clocks need checking.
MACHINE_CONFIG_START(nmk16_tomagic_state::tomagic)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, 12000000) /* 12? MHz */
MCFG_DEVICE_PROGRAM_MAP(tomagic_map)
NMK_HACKY_INTERRUPT_TIMING
MCFG_DEVICE_ADD("audiocpu", Z80, 12000000/4) /* 3 Mhz? */
MCFG_DEVICE_PROGRAM_MAP(tomagic_sound_map)
/* video hardware */
NMK_HACKY_SCREEN_HIRES
MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail)
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_macross)
MCFG_PALETTE_ADD("palette", 1024)
MCFG_PALETTE_FORMAT(RRRRGGGGBBBBRGBx)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,gunnail)
/* sound hardware */
SPEAKER(config, "mono").front_center();
MCFG_GENERIC_LATCH_8_ADD("soundlatch")
MCFG_GENERIC_LATCH_8_ADD("soundlatch2")
MCFG_DEVICE_ADD("ymsnd", YM3812, 12000000/8) // K-666 (YM3812) 1.5Mhz? */
//MCFG_YM3812_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_DEVICE_ADD("oki1", OKIM6295, 12000000/4, okim6295_device::PIN7_LOW)
MCFG_DEVICE_ADDRESS_MAP(0, oki1_map)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
uint8_t nmk16_state::decode_byte(uint8_t src, const uint8_t *bitp)
{
uint8_t ret, i;
@ -4934,6 +5069,15 @@ void nmk16_state::init_vandykeb()
m_maincpu->space(AS_PROGRAM).nop_write(0x08001e, 0x08001f);
}
void nmk16_tomagic_state::init_tomagic()
{
// rearrange data so that we can use standard decode
uint8_t *rom = memregion("sprites")->base();
int size = memregion("sprites")->bytes();
for (int i = 0; i < size; i++)
rom[i] = bitswap<8>(rom[i], 0,1,2,3,4,5,6,7);
}
/***************************************************************************
@ -6874,6 +7018,32 @@ ROM_START( manybloc )
ROM_LOAD( "u120.bpr", 0x0320, 0x0100, CRC(576c5984) SHA1(6e9b7f30de0d91cb766a62abc5888ec9af085a27) ) /* unknown */
ROM_END
ROM_START( tomagic )
ROM_REGION( 0x80000, "maincpu", 0 ) /* 68000 */
ROM_LOAD16_BYTE( "4.bin", 0x00000, 0x40000, CRC(5055664a) SHA1(d078bd5ab30aedb760bf0a0237484fb56a51d759) )
ROM_LOAD16_BYTE( "3.bin", 0x00001, 0x40000, CRC(3731ecbb) SHA1(25814bd78902cc341cc9d6b19d0a6f837cd802c6) )
ROM_REGION( 0x20000, "audiocpu", 0 ) /* Z80 */
ROM_LOAD( "2.bin", 0x00000, 0x20000, CRC(10359b6a) SHA1(ce59750d2fa57049c424c62e0cbefc604e224e78) )
ROM_REGION( 0x20000, "fgtile", 0 )
ROM_LOAD( "9.bin", 0x000000, 0x20000, CRC(fcceb24b) SHA1(49e3162c34dfa2ef54ffe190ba91bff73cebe12b) )
ROM_REGION( 0x40000, "bgtile", 0 )
ROM_LOAD( "10.bin", 0x000000, 0x40000, CRC(6d5ee72a) SHA1(f90746cb5bbd87213dece062b7efd59d8fd56d84) )
ROM_REGION( 0x200000, "sprites", 0 ) /* 16x16 sprite tiles */
ROM_LOAD16_BYTE( "7.bin", 0x100001, 0x80000, CRC(0a297c78) SHA1(effe1ee2ab64cb9fbeae0d168346168245942034) )
ROM_LOAD16_BYTE( "5.bin", 0x100000, 0x80000, CRC(88ef65e0) SHA1(20b50ffe6a9a3c17f7c2cbf90461fafa7a7bcf8d) )
ROM_LOAD16_BYTE( "8.bin", 0x000001, 0x80000, CRC(1708d3fb) SHA1(415b6a5079fced0306213953e6124ad4fecc680b) )
ROM_LOAD16_BYTE( "6.bin", 0x000000, 0x80000, CRC(83ae90ba) SHA1(84b0779d18dabcb6086880433b1c4620dcc722cb) )
ROM_REGION( 0x80000, "oki1", 0 ) /* OKIM6295 samples */
ROM_LOAD( "1.bin", 0x00000, 0x40000, CRC(02b042e3) SHA1(05fca0f83292be49cef457633aba36fed3dc0114) )
// & undumped PROMs?
ROM_END
/***************************************************************************
Stagger I
@ -8050,3 +8220,6 @@ GAME( 2001, firehawkv, spec2k, firehawk, firehawkv, nmk16_state, empty
// bee-oh board - different display / interrupt timing to others?
GAME( 1991, manybloc, 0, manybloc, manybloc, nmk16_state, init_tharrier, ROT270, "Bee-Oh", "Many Block", MACHINE_NO_COCKTAIL | MACHINE_IMPERFECT_SOUND )
// clone board, different sound / bg hardware, but similar memory maps, same tx layer, sprites etc.
GAME( 1997, tomagic, 0, tomagic, tomagic, nmk16_tomagic_state, init_tomagic, ROT0, "Hobbitron T.K.Trading Co. Ltd.", "Tom Tom Magic", MACHINE_NOT_WORKING | MACHINE_NO_SOUND ) // there are many gambling related strings in the ROM, and an alt version is called Lucky Ball, possibly that one is a gambling title and this isn't?

View File

@ -254,3 +254,18 @@ public:
void vandyke_map(address_map &map);
void vandykeb_map(address_map &map);
};
class nmk16_tomagic_state : public nmk16_state
{
public:
nmk16_tomagic_state(const machine_config &mconfig, device_type type, const char *tag)
: nmk16_state(mconfig, type, tag)
{}
void tomagic(machine_config &config);
void init_tomagic();
private:
void tomagic_map(address_map &map);
void tomagic_sound_map(address_map &map);
};

View File

@ -30159,6 +30159,7 @@ tdragon3h
tdragonb // bootleg
tharrier // UPL-89053 (c) 1989 UPL
tharrieru // UPL-89053 (c) 1989 UPL + American Sammy license
tomagic //
twinactn // (c) 1995 - bootleg of US AFF Mustang
vandyke // UPL-90064 (c) UPL
vandykeb // bootleg