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:
Travis Brown 2021-01-29 10:55:59 -05:00 committed by MooglyGuy
parent a59cdb3f08
commit 88339b1ac7
3 changed files with 112 additions and 8 deletions

View File

@ -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 )

View File

@ -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;
};

View File

@ -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