diff options
author | hap <happppp@users.noreply.github.com> | 2021-09-15 13:33:13 +0200 |
---|---|---|
committer | hap <happppp@users.noreply.github.com> | 2021-09-15 13:33:13 +0200 |
commit | 0ce24d16f1c07d1cc7b96a465a7049b751eb844b (patch) | |
tree | 4cd375a70b00403a6fa8aa029755efed7c576dcc /src | |
parent | 5132133260fdaf273ab64acd6c007d2a8d641609 (diff) |
namcos12: redumped kartduel data roms [Darksoft, Hammy]
Diffstat (limited to 'src')
-rw-r--r-- | src/mame/drivers/fidel_cc10.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/fidel_checkc2.cpp | 2 | ||||
-rw-r--r-- | src/mame/drivers/fidel_sc12.cpp | 5 | ||||
-rw-r--r-- | src/mame/drivers/fidel_vsc.cpp | 20 | ||||
-rw-r--r-- | src/mame/drivers/namcos12.cpp | 56 |
5 files changed, 60 insertions, 25 deletions
diff --git a/src/mame/drivers/fidel_cc10.cpp b/src/mame/drivers/fidel_cc10.cpp index 8daae3ac5e4..0bde02ba46b 100644 --- a/src/mame/drivers/fidel_cc10.cpp +++ b/src/mame/drivers/fidel_cc10.cpp @@ -14,7 +14,7 @@ TODO: Fidelity Chess Challenger 10 (CCX) ------------------- 3 versions are known to exist: A,B,C. Strangely, version C(UCC10) has an 8080 -instead of Z80 and no beeper, it's on CC1-based hardware. +instead of Z80 and no beeper, it's on CC1-based hardware (see fidel_cc1.cpp). Z80A CPU @ 4MHz, NEC D8255C 4KB ROM(NEC 2332A), 2*256 bytes RAM(4*NEC 2111AL-4) diff --git a/src/mame/drivers/fidel_checkc2.cpp b/src/mame/drivers/fidel_checkc2.cpp index f913a37fe88..21b4cd1a5b7 100644 --- a/src/mame/drivers/fidel_checkc2.cpp +++ b/src/mame/drivers/fidel_checkc2.cpp @@ -6,7 +6,7 @@ Fidelity Checker Challenger (CR) Even though it has fewer levels and presumedly a weaker program, this one -is a couple of months newer than model ACR (fidel_cc10.cpp). +is a couple of months newer than model ACR (see fidel_cc10.cpp). Hardware notes: - PCB label: P261A diff --git a/src/mame/drivers/fidel_sc12.cpp b/src/mame/drivers/fidel_sc12.cpp index a0485c84da3..9f5f84724cf 100644 --- a/src/mame/drivers/fidel_sc12.cpp +++ b/src/mame/drivers/fidel_sc12.cpp @@ -98,15 +98,14 @@ private: void control_w(u8 data); u8 input_r(offs_t offset); - u8 m_inp_mux; + u8 m_inp_mux = 0; }; void sc12_state::machine_start() { fidel_clockdiv_state::machine_start(); - // zerofill/register for savestates - m_inp_mux = 0; + // register for savestates save_item(NAME(m_inp_mux)); } diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp index 70a83866a1b..3d9523c9be4 100644 --- a/src/mame/drivers/fidel_vsc.cpp +++ b/src/mame/drivers/fidel_vsc.cpp @@ -215,24 +215,16 @@ private: u8 pio_portb_r(); void pio_portb_w(u8 data); - u8 m_led_data; - u8 m_7seg_data; - u8 m_cb_mux; - u8 m_kp_mux; - bool m_lan_switch; - u8 m_speech_bank; + u8 m_led_data = 0; + u8 m_7seg_data = 0; + u8 m_cb_mux = 0; + u8 m_kp_mux = 0; + bool m_lan_switch = false; + u8 m_speech_bank = 0; }; void vsc_state::machine_start() { - // zerofill - m_led_data = 0; - m_7seg_data = 0; - m_cb_mux = 0; - m_kp_mux = 0; - m_speech_bank = 0; - m_lan_switch = false; - // register for savestates save_item(NAME(m_led_data)); save_item(NAME(m_7seg_data)); diff --git a/src/mame/drivers/namcos12.cpp b/src/mame/drivers/namcos12.cpp index 09cf8d5e4c4..aa886b98e5d 100644 --- a/src/mame/drivers/namcos12.cpp +++ b/src/mame/drivers/namcos12.cpp @@ -10,13 +10,15 @@ JVS Support by R. Belmont Notes: - - technodr: Calibrate controls by turning on the service mode switch (F2) while holding service coin (9). + - technodr, kartduel: Calibrate controls by turning on the service mode switch (F2) while holding service coin (9). Issues: not all games work due to either banking, dma or protection issues. graphics are glitchy in some games. - - golgo13 assumes the test switch is a switch, not a button - must hold down F2 to stay in test mode + - kartduel does a "BSOD" crash after a race + + - kartduel frame rate is choppy, it freezes every half second - truckk doesn't boot: the H8/3002 never enters InitJVSBoards @ 1DE2. 1DE2 is referenced in a table of commands at 4032, which is called by the routine at 3FEA. It is not clear how execution is intended to get to 3FEA - there are no direct @@ -1135,6 +1137,7 @@ protected: virtual void machine_reset() override; void golgo13_h8iomap(address_map &map); + void kartduel_h8iomap(address_map &map); void jvsiomap(address_map &map); void jvsmap(address_map &map); void namcos12_map(address_map &map); @@ -1223,6 +1226,8 @@ public: void truckk(machine_config &config); void tektagt(machine_config &config); void ptblank2(machine_config &config); + void kartduel(machine_config &config); + private: virtual void machine_reset() override; }; @@ -1664,6 +1669,14 @@ void namcos12_state::s12h8railiomap(address_map &map) map(h8_device::ADC_3, h8_device::ADC_3).noprw(); } +void namcos12_state::kartduel_h8iomap(address_map &map) +{ + s12h8iomap(map); + map(h8_device::ADC_0, h8_device::ADC_0).portr("BRAKE"); + map(h8_device::ADC_1, h8_device::ADC_1).portr("GAS"); + map(h8_device::ADC_2, h8_device::ADC_2).portr("STEER"); +} + // Golgo 13 lightgun inputs uint16_t namcos12_state::s12_mcu_gun_h_r() @@ -1811,6 +1824,14 @@ void namcos12_boothack_state::golgo13(machine_config &config) m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::golgo13_h8iomap); } +void namcos12_boothack_state::kartduel(machine_config &config) +{ + coh700(config); + + /* basic machine hardware */ + m_sub->set_addrmap(AS_IO, &namcos12_boothack_state::kartduel_h8iomap); +} + #define JVSCLOCK (XTAL(14'745'600)) void namcos12_state::jvsmap(address_map &map) { @@ -2060,6 +2081,29 @@ static INPUT_PORTS_START( golgo13 ) PORT_BIT( 0xffff, 0x00fe, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, -1.0, 0.0, 0) PORT_MINMAX(0x1f,0x1de) PORT_SENSITIVITY(100) PORT_KEYDELTA(15) PORT_PLAYER(1) PORT_REVERSE INPUT_PORTS_END +static INPUT_PORTS_START( kartduel ) + PORT_INCLUDE( namcos12 ) + + PORT_MODIFY("IN0") + PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) + PORT_BIT( 0x0008, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) + PORT_BIT( 0x0010, IP_ACTIVE_LOW, IPT_BUTTON1 ) // enter switch + PORT_BIT( 0xffe3, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_MODIFY("IN1") + PORT_SERVICE( 0x4000, IP_ACTIVE_LOW ) + PORT_BIT( 0x1fff, IP_ACTIVE_LOW, IPT_UNKNOWN ) + + PORT_START("GAS") + PORT_BIT( 0x3ff, 0x0200, IPT_PEDAL ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Gas Pedal") + + PORT_START("BRAKE") + PORT_BIT( 0x3ff, 0x0200, IPT_PEDAL2 ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Brake Pedal") + + PORT_START("STEER") + PORT_BIT( 0x3ff, 0x0200, IPT_PADDLE ) PORT_SENSITIVITY(100) PORT_KEYDELTA(10) PORT_NAME("Steering Wheel") +INPUT_PORTS_END + static INPUT_PORTS_START( technodr ) PORT_START("DSW") PORT_DIPNAME( 0x0080, 0x0080, DEF_STR(Service_Mode) ) PORT_DIPLOCATION( "DIP SW2:1" ) @@ -2347,9 +2391,9 @@ ROM_START( kartduel ) ROM_LOAD16_BYTE( "ktd1vera.2l", 0x0000000, 0x200000, CRC(0c207249) SHA1(6c57de25d452226a25f658638d89b81257960741) ) ROM_LOAD16_BYTE( "ktd1vera.2p", 0x0000001, 0x200000, CRC(f6e2581f) SHA1(06eb108c2775290590dba75f964f26443a585d70) ) - ROM_REGION32_LE( 0x00800000, "bankedroms", 0 ) /* main data */ - ROM_LOAD16_BYTE( "kdt1rom0l.ic12", 0x000000, 0x400000, BAD_DUMP CRC(8e2d5d9e) SHA1(6f703e27a19740af4094004b783b3cc2974c3de0) ) // These probably should be 64MBIT - ROM_LOAD16_BYTE( "kdt1rom0u.ic11", 0x000001, 0x400000, BAD_DUMP CRC(49ec5dbd) SHA1(336db6d3e361938850a9234b6b64070dbdc36d45) ) // + ROM_REGION32_LE( 0x01000000, "bankedroms", 0 ) /* main data */ + ROM_LOAD16_BYTE( "kdt1rom0l.ic12", 0x000000, 0x800000, CRC(4a3bac12) SHA1(7758d97049d30a00b7bede3688d451fbf4eddbfb) ) + ROM_LOAD16_BYTE( "kdt1rom0u.ic11", 0x000001, 0x800000, CRC(bab0d328) SHA1(9a15bfb38c63b0012f29755b2be071e9c82d1c20) ) ROM_REGION( 0x0080000, "sub", 0 ) /* sound prg */ ROM_LOAD16_WORD_SWAP( "ktd1vera.11s", 0x000000, 0x080000, CRC(c2ff1971) SHA1(32ee2afe08e92049d8139c9324a0ea1a3b7ee5a1) ) @@ -3312,5 +3356,5 @@ GAME( 1999, golgo13, 0, golgo13, golgo13, namcos12_boothack_state, i GAME( 2000, g13knd, 0, golgo13, golgo13, namcos12_boothack_state, init_golgo13, ROT0, "Eighting / Raizing / Namco", "Golgo 13 Kiseki no Dandou (Japan, GLS1/VER.A)", 0 ) /* KC059 */ GAME( 2000, sws2000, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Super World Stadium 2000 (Japan, SS01/VER.A)", MACHINE_NOT_WORKING ) /* KC055 */ GAME( 2000, truckk, 0, truckk, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Metro / Namco", "Truck Kyosokyoku (Japan, TKK2/VER.A)", MACHINE_IMPERFECT_SOUND | MACHINE_NOT_WORKING ) /* KC056 */ -GAME( 2000, kartduel, 0, coh700, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Kart Duel (Japan, KTD1/VER.A)", MACHINE_NOT_WORKING ) /* KC057 */ +GAME( 2000, kartduel, 0, kartduel, kartduel, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Kart Duel (Japan, KTD1/VER.A)", MACHINE_NOT_WORKING ) /* KC057 */ GAME( 2001, sws2001, sws2000, coh716, namcos12, namcos12_boothack_state, init_namcos12, ROT0, "Namco", "Super World Stadium 2001 (Japan, SS11/VER.A)", MACHINE_NOT_WORKING ) /* KC061 */ |