mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
New working machines
Power Up Baseball (prototype) [Frank Cifaldi, Rich Whitehouse, Ryan Holtz, Travis Brown, Dan Filner] * itech32: Updated NVRAM mapping on '020 machines to cover full 128k. [Travis Brown]
This commit is contained in:
parent
a59cdb3f08
commit
88339b1ac7
@ -25,6 +25,7 @@
|
||||
* Golden Tee Golf 2K (5 sets)
|
||||
* Golden Tee Classic (3 sets)
|
||||
* Must Shoot TV (prototype) (1 set)
|
||||
* Power Up Baseball (prototype) (1 set)
|
||||
|
||||
Known issues:
|
||||
* volume controls do not work in the Golden Tee games
|
||||
@ -1011,8 +1012,7 @@ void itech32_state::itech020_map(address_map &map)
|
||||
map(0x500000, 0x5000ff).rw(FUNC(itech32_state::bloodstm_video_r), FUNC(itech32_state::bloodstm_video_w));
|
||||
map(0x578000, 0x57ffff).nopr(); /* touched by protection */
|
||||
map(0x580000, 0x59ffff).ram().w(m_palette, FUNC(palette_device::write32)).share("palette");
|
||||
map(0x600000, 0x603fff).ram().share("nvram32");
|
||||
/* ? */ map(0x61ff00, 0x61ffff).nopw(); /* Unknown Writes */
|
||||
map(0x600000, 0x61ffff).ram().share("nvram32");
|
||||
map(0x680002, 0x680002).r(FUNC(itech32_state::itech020_prot_result_r));
|
||||
map(0x680000, 0x680003).nopw();
|
||||
/* ! */ map(0x680800, 0x68083f).readonly().nopw(); /* Serial DUART Channel A/B & Top LED sign - To Do! */
|
||||
@ -1040,10 +1040,16 @@ void shoottv_state::shoottv_map(address_map &map)
|
||||
map(0x280000, 0x280003).lr32(NAME([this]() { return m_dips->read() << 16; } ));
|
||||
map(0x300003, 0x300003).w(FUNC(shoottv_state::color_w<0>));
|
||||
map(0x380003, 0x380003).w(FUNC(shoottv_state::color_w<1>));
|
||||
map(0x610000, 0x61ffff).ram().share("nvram_b");
|
||||
map(0x680000, 0x680003).lr32(NAME([]() { return 0x00002000; } )); // Fake the security PIC response
|
||||
}
|
||||
|
||||
void itech32_state::pubball_map(address_map &map)
|
||||
{
|
||||
itech020_map(map);
|
||||
map(0x300000, 0x300003).w(FUNC(itech32_state::color_w<0>)).umask32(0x00ff00ff);
|
||||
map(0x380000, 0x380003).w(FUNC(itech32_state::color_w<1>)).umask32(0x00ff00ff);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -1708,6 +1714,39 @@ static INPUT_PORTS_START( aama )
|
||||
PORT_DIPSETTING( 0x00200000, DEF_STR( Cocktail ) ) /* Cocktail mode REQUIRES "Controls" to be set to "Two Trackballs" */
|
||||
INPUT_PORTS_END
|
||||
|
||||
static INPUT_PORTS_START( pubball )
|
||||
PORT_INCLUDE( itech32_base_32bit )
|
||||
|
||||
PORT_MODIFY("P1")
|
||||
PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P1 First Base") PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P1 Second Base") PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00f00000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_MODIFY("P2")
|
||||
PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_NAME("P2 First Base") PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("P2 Second Base") PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00f00000, IP_ACTIVE_LOW, IPT_UNUSED )
|
||||
|
||||
PORT_MODIFY("P3")
|
||||
PORT_BIT( 0x00010000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P1 Third Base") PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00020000, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("P2 Third Base") PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00040000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P1 Home") PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00080000, IP_ACTIVE_LOW, IPT_BUTTON4 ) PORT_NAME("P2 Home") PORT_PLAYER(2)
|
||||
PORT_BIT( 0x00100000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P1 Power Up") PORT_PLAYER(1)
|
||||
PORT_BIT( 0x00200000, IP_ACTIVE_LOW, IPT_BUTTON5 ) PORT_NAME("P2 Power Up") PORT_PLAYER(2)
|
||||
|
||||
PORT_START("TRACKX1")
|
||||
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(1)
|
||||
|
||||
PORT_START("TRACKY1")
|
||||
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(1)
|
||||
|
||||
PORT_START("TRACKX2")
|
||||
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_REVERSE PORT_PLAYER(2)
|
||||
|
||||
PORT_START("TRACKY2")
|
||||
PORT_BIT( 0xff, 0x00, IPT_TRACKBALL_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(32) PORT_PLAYER(2)
|
||||
INPUT_PORTS_END
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -1825,8 +1864,6 @@ void shoottv_state::shoottv(machine_config &config)
|
||||
{
|
||||
itech32_state::sftm(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &shoottv_state::shoottv_map);
|
||||
|
||||
NVRAM(config, "nvram_b");
|
||||
}
|
||||
|
||||
void itech32_state::sftm(machine_config &config)
|
||||
@ -1857,6 +1894,11 @@ void itech32_state::tourny(machine_config &config)
|
||||
M48T02(config, m_timekeeper);
|
||||
}
|
||||
|
||||
void itech32_state::pubball(machine_config &config)
|
||||
{
|
||||
itech32_state::sftm(config);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &itech32_state::pubball_map);
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
@ -4602,9 +4644,18 @@ ROM_START( gtclasscs ) /* Version 1.00S for the 3 tier type PCB with short ROM
|
||||
ROM_LOAD16_BYTE( "gtg3_srom2_nr+.srom2", 0x200000, 0x080000, CRC(1b3f18b6) SHA1(3b65de6a90c5ede183b5f8ca1875736bc1425772) ) /* actually labeled "GTG3 SROM2 NR*" */
|
||||
ROM_END
|
||||
|
||||
/***************************************************************************
|
||||
The ROM images for both sets below were found by analyzing the contents
|
||||
of archived source-code CDs acquired at auction. This is why the ROM
|
||||
definitions in question are not sized to a power of two, as most ROM
|
||||
dumps typically are.
|
||||
However, the provided dump of Power Up Baseball has been proven to
|
||||
work as-is on a properly-configured itech32 board, and passes all
|
||||
relevant ROM tests, and so can be considered authoritative.
|
||||
****************************************************************************/
|
||||
|
||||
ROM_START( shoottv )
|
||||
ROM_REGION32_BE( CODE_SIZE, "user1", 0 )
|
||||
ROM_REGION32_BE( CODE_SIZE, "user1", ROMREGION_ERASEFF )
|
||||
ROM_LOAD32_BYTE( "gun_0.bin", 0x00000, 0xc5f9, CRC(1086b219) SHA1(a9e9545911e427e819d4c98885cbfe871ce7e83a) ) // from GUN/roms
|
||||
ROM_LOAD32_BYTE( "gun_1.bin", 0x00001, 0xc5f9, CRC(a0f0e5ea) SHA1(39560d76759d17c34c353dbe202ec22af234238d) )
|
||||
ROM_LOAD32_BYTE( "gun_2.bin", 0x00002, 0xc5f9, CRC(1b84cf05) SHA1(8f4b816ab2808258399072545f5dda0316e554ea) )
|
||||
@ -4630,6 +4681,44 @@ ROM_START( shoottv )
|
||||
ROM_END
|
||||
|
||||
|
||||
ROM_START( pubball )
|
||||
ROM_REGION32_BE( CODE_SIZE, "user1", ROMREGION_ERASEFF )
|
||||
ROM_LOAD32_BYTE( "bb0.bin", 0x00000, 0x25a91, CRC(f9350590) SHA1(91352373fb6a41495bb04db01d097e76770c5419) ) // from SOURCE
|
||||
ROM_LOAD32_BYTE( "bb1.bin", 0x00001, 0x25a91, CRC(5711f503) SHA1(94765a5e9311fffbf0bc386c3b531c79acd7cada) )
|
||||
ROM_LOAD32_BYTE( "bb2.bin", 0x00002, 0x25a91, CRC(3e202dc6) SHA1(a1a9fdff1957a8e43f002883666f1cd489879258) )
|
||||
ROM_LOAD32_BYTE( "bb3.bin", 0x00003, 0x25a91, CRC(e6d1ba8d) SHA1(c07fe0f9093422505079785ef8e019d1ba69e2ff) )
|
||||
|
||||
ROM_REGION( 0x28000, "soundcpu", 0 )
|
||||
ROM_LOAD( "bball.bim", 0x10000, 0x18000, CRC(915a9116) SHA1(54dbb9f8eb358c5dbe2022fad86cdd411c893b83) ) // from SOUNDS
|
||||
ROM_CONTINUE( 0x08000, 0x08000 )
|
||||
|
||||
ROM_REGION( 0xE00000, "gfx1", 0 )
|
||||
ROM_LOAD32_BYTE( "grom00_0.bin", 0x000000, 0x100000, CRC(46822b0f) SHA1(0b9758a1ccad252973a1fc61dc1a4eb1d0eb1636) ) // from ART
|
||||
ROM_LOAD32_BYTE( "grom00_1.bin", 0x000001, 0x100000, CRC(c11236ce) SHA1(1459646b4d947aa63b037c7c5ab19d3261cbaa19) )
|
||||
ROM_LOAD32_BYTE( "grom00_2.bin", 0x000002, 0x100000, CRC(e6be30f3) SHA1(832aff7b9a42fa57ccff09554c9f65f469e1045d) )
|
||||
ROM_LOAD32_BYTE( "grom00_3.bin", 0x000003, 0x100000, CRC(e0d454fb) SHA1(26ca842682ad618619d4311f7ecd1bb326771c2e) )
|
||||
ROM_LOAD32_BYTE( "grom01_0.bin", 0x400000, 0x100000, CRC(115a66f2) SHA1(9f514c82943d3a779bd44c93618a396b1f9184b9) )
|
||||
ROM_LOAD32_BYTE( "grom01_1.bin", 0x400001, 0x100000, CRC(1dfc8dbd) SHA1(2e3018d61b1c7acec4a2f5da8184da33764e7965) )
|
||||
ROM_LOAD32_BYTE( "grom01_2.bin", 0x400002, 0x100000, CRC(23386483) SHA1(9198b9d7e45d0a276947ebfbdda844113aa71928) )
|
||||
ROM_LOAD32_BYTE( "grom01_3.bin", 0x400003, 0x100000, CRC(ac0123ce) SHA1(c6fe79ca8c3efdfaf9310dfab3e0142042319b11) )
|
||||
ROM_LOAD32_BYTE( "grom02_0.bin", 0x800000, 0x100000, CRC(06cd3cca) SHA1(501b0be9388c5a6b89d453f3287217dd286eecff) )
|
||||
ROM_LOAD32_BYTE( "grom02_1.bin", 0x800001, 0x100000, CRC(3df38e91) SHA1(f3adf29598481d050258d266a360d5b40d86f665) )
|
||||
ROM_LOAD32_BYTE( "grom02_2.bin", 0x800002, 0x100000, CRC(7c47dde9) SHA1(654656878676278e0ea73e367337eaac5f1f1d50) )
|
||||
ROM_LOAD32_BYTE( "grom02_3.bin", 0x800003, 0x100000, CRC(e6eb01bf) SHA1(f0e7f2372dfd072e005fbf7489f54242523b4a28) )
|
||||
ROM_LOAD32_BYTE( "grom3_0.bin", 0xC00000, 0x080000, CRC(376beb10) SHA1(2dcea69b5e81d010b4c660df189a560742719ce6) )
|
||||
ROM_LOAD32_BYTE( "grom3_1.bin", 0xC00001, 0x080000, CRC(3b3cb8ba) SHA1(eabac9e381dd652a4575f159dac45499406b2702) )
|
||||
ROM_LOAD32_BYTE( "grom3_2.bin", 0xC00002, 0x080000, CRC(3bdfac73) SHA1(64777cdf92bbdfbfb6806039421a28f9810b6b03) )
|
||||
ROM_LOAD32_BYTE( "grom3_3.bin", 0xC00003, 0x080000, CRC(1de04025) SHA1(25ba2fa49cc2423642020e05586662f67943381b) )
|
||||
|
||||
ROM_REGION16_BE( 0x400000, "ensoniq.0", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_BYTE( "bbsrom0.bin", 0x000000, 0x0f8b8e, CRC(2a69f77e) SHA1(c98ccdb0d79e77bf87077ac29626d84a811d1326) ) // from SOUNDS
|
||||
ROM_LOAD16_BYTE( "bbsrom1.bin", 0x200000, 0x0fe442, CRC(4af8c871) SHA1(fe4b0ed0a4ef77147fe150c0cd70dff1929e9aff) )
|
||||
|
||||
ROM_REGION16_BE( 0x400000, "ensoniq.1", ROMREGION_ERASE00 )
|
||||
ROM_LOAD16_BYTE( "bbsrom2.bin", 0x000000, 0x0fe62d, CRC(e4f9ad52) SHA1(c8bf590de35155937bd656b39658880d9a40f5c3) )
|
||||
ROM_LOAD16_BYTE( "bbsrom3.bin", 0x200000, 0x0f90b3, CRC(b37e2906) SHA1(f8c2fd54fe8579eb2875c77630efa8d715eae022) )
|
||||
ROM_END
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -4920,6 +5009,18 @@ Label1 bne.s Label1 ; Infinite loop if result isn't 0x80
|
||||
}
|
||||
|
||||
|
||||
void itech32_state::init_pubball()
|
||||
{
|
||||
init_program_rom();
|
||||
m_vram_height = 1024;
|
||||
m_planes = 2;
|
||||
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x300000, 0x300003, write8smo_delegate(*this, FUNC(itech32_state::color_w<0>)), 0x000000ff);
|
||||
m_maincpu->space(AS_PROGRAM).install_write_handler(0x380000, 0x380003, write8smo_delegate(*this, FUNC(itech32_state::color_w<1>)), 0x000000ff);
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x180800, 0x180803, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p1_r)));
|
||||
m_maincpu->space(AS_PROGRAM).install_read_handler(0x181000, 0x181003, read32smo_delegate(*this, FUNC(itech32_state::trackball32_4bit_p2_r)));
|
||||
}
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -5057,3 +5158,4 @@ GAME( 2001, gtclasscp, gtclassc, sftm, aama, itech32_state, init_gtclasscp, R
|
||||
GAME( 2001, gtclasscs, gtclassc, sftm, s_ver, itech32_state, init_s_ver, ROT0, "Incredible Technologies", "Golden Tee Classic (v1.00S)" , MACHINE_SUPPORTS_SAVE ) /* PIC 16C54 labeled as ITGFCL-M */
|
||||
|
||||
GAME( 199?, shoottv, 0, shoottv, shoottv, shoottv_state, empty_init, ROT0, "Incredible Technologies", "Must Shoot TV (prototype)" , MACHINE_SUPPORTS_SAVE )
|
||||
GAME( 1996, pubball, 0, pubball, pubball, itech32_state, init_pubball,ROT0, "Midway / Incredible Technologies", "Power Up Baseball (prototype)" , MACHINE_SUPPORTS_SAVE )
|
@ -58,6 +58,7 @@ public:
|
||||
void sftm(machine_config &config);
|
||||
void bloodstm(machine_config &config);
|
||||
void timekill(machine_config &config);
|
||||
void pubball(machine_config &config);
|
||||
|
||||
void init_gtclasscp();
|
||||
void init_shufshot();
|
||||
@ -76,6 +77,7 @@ public:
|
||||
void init_timekill();
|
||||
void init_gt3d();
|
||||
void init_gt3dl();
|
||||
void init_pubball();
|
||||
|
||||
DECLARE_READ_LINE_MEMBER(special_port_r);
|
||||
|
||||
@ -205,6 +207,7 @@ protected:
|
||||
void sound_020_map(address_map &map);
|
||||
void sound_map(address_map &map);
|
||||
void timekill_map(address_map &map);
|
||||
void pubball_map(address_map &map);
|
||||
};
|
||||
|
||||
class drivedge_state : public itech32_state
|
||||
@ -279,7 +282,6 @@ public:
|
||||
m_dips(*this, "DIPS"),
|
||||
m_gun_x(*this, "GUNX%u", 1U),
|
||||
m_gun_y(*this, "GUNY%u", 1U),
|
||||
m_nvram_b(*this, "nvram_b"),
|
||||
m_gun_timer(nullptr)
|
||||
{ }
|
||||
|
||||
@ -299,7 +301,6 @@ private:
|
||||
required_ioport m_dips;
|
||||
required_ioport_array<2> m_gun_x;
|
||||
required_ioport_array<2> m_gun_y;
|
||||
optional_shared_ptr<u16> m_nvram_b;
|
||||
emu_timer *m_gun_timer;
|
||||
};
|
||||
|
||||
|
@ -17123,6 +17123,7 @@ wcbowl161 // (c) 1995 Incredible Technologies
|
||||
wcbowl165 // (c) 1995 Incredible Technologies
|
||||
wcbowldx // (c) 1999 Incredible Technologies
|
||||
shoottv // (c) 199? Incredible Technologies
|
||||
pubball // (c) 1996 Midway/Incredible Technologies
|
||||
|
||||
@source:itech8.cpp
|
||||
arlingtn // (c) 1991 Strata/Incredible Technologies
|
||||
|
Loading…
Reference in New Issue
Block a user