summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit0ce24d16f1c07d1cc7b96a465a7049b751eb844b (patch)
tree4cd375a70b00403a6fa8aa029755efed7c576dcc
parent5132133260fdaf273ab64acd6c007d2a8d641609 (diff)
namcos12: redumped kartduel data roms [Darksoft, Hammy]
-rw-r--r--src/mame/drivers/fidel_cc10.cpp2
-rw-r--r--src/mame/drivers/fidel_checkc2.cpp2
-rw-r--r--src/mame/drivers/fidel_sc12.cpp5
-rw-r--r--src/mame/drivers/fidel_vsc.cpp20
-rw-r--r--src/mame/drivers/namcos12.cpp56
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 */