summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2025-08-25 10:28:33 +0200
committer hap <happppp@users.noreply.github.com>2025-08-25 10:28:33 +0200
commitc917e92b13b8d68191c7c15aa9cdf30d49682baf (patch)
tree2e456ac065867b74b7eb4f99f807ea588681d050
parent213e325818dbc7ddcdb44362e75a6a6621b0c53b (diff)
hdrivair: swap parent/clone sets
-rw-r--r--src/mame/atari/harddriv.cpp175
-rw-r--r--src/mame/atari/harddriv.h53
-rw-r--r--src/mame/mame.lst2
3 files changed, 116 insertions, 114 deletions
diff --git a/src/mame/atari/harddriv.cpp b/src/mame/atari/harddriv.cpp
index b725a94c59e..2d9f61215a6 100644
--- a/src/mame/atari/harddriv.cpp
+++ b/src/mame/atari/harddriv.cpp
@@ -523,7 +523,7 @@ public:
void steeltal1_machine(machine_config &config);
void harddriv_machine(machine_config &config);
- void hdrivairp_machine(machine_config &config);
+ void hdrivair0_machine(machine_config &config);
void harddrivc_machine(machine_config &config);
void racedrivb1_machine(machine_config &config);
void racedrivc1_machine(machine_config &config);
@@ -1978,14 +1978,14 @@ void hdrivair_board_device_state::device_start()
harddriv_state::device_start();
}
-void hdrivairp_board_device_state::device_start()
+void hdrivair0_board_device_state::device_start()
{
- init_hdrivairp();
+ init_hdrivair0();
harddriv_state::device_start();
}
DEFINE_DEVICE_TYPE(HDRIVAIR_BOARD, hdrivair_board_device_state, "hdrivair_board", "Hard Drivin' Airborne Board Device")
-DEFINE_DEVICE_TYPE(HDRIVAIRP_BOARD, hdrivairp_board_device_state, "hdrivairp_board", "Hard Drivin' Airborne P Board Device")
+DEFINE_DEVICE_TYPE(HDRIVAIR0_BOARD, hdrivair0_board_device_state, "hdrivair0_board", "Hard Drivin' Airborne 0 Board Device")
hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: hdrivair_board_device_state(mconfig, HDRIVAIR_BOARD, tag, owner, clock)
@@ -1997,8 +1997,8 @@ hdrivair_board_device_state::hdrivair_board_device_state(const machine_config &m
{
}
-hdrivairp_board_device_state::hdrivairp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : hdrivair_board_device_state(mconfig, HDRIVAIRP_BOARD, tag, owner, clock)
+hdrivair0_board_device_state::hdrivair0_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : hdrivair_board_device_state(mconfig, HDRIVAIR0_BOARD, tag, owner, clock)
{
}
@@ -2057,9 +2057,9 @@ void harddriv_new_state::hdrivair_machine(machine_config &config)
HDRIVAIR_BOARD(config, "mainpcb", 0);
}
-void harddriv_new_state::hdrivairp_machine(machine_config &config)
+void harddriv_new_state::hdrivair0_machine(machine_config &config)
{
- HDRIVAIRP_BOARD(config, "mainpcb", 0);
+ HDRIVAIR0_BOARD(config, "mainpcb", 0);
}
void harddriv_new_state::steeltal_machine(machine_config &config)
@@ -4655,67 +4655,8 @@ ROM_START( strtdriv )
ROM_LOAD( "stunrun.210e", 0x000000, 0x000800, CRC(f1e8ba9e) SHA1(605db3fdbaff4ba13729371ad0c4fbab3889378e) )
ROM_END
-ROM_START( hdrivair )
- ROM_REGION( 0x200000, "mainpcb:maincpu", 0 ) /* 2MB for 68000 code */
- ROM_LOAD16_BYTE( "stesthi.bin", 0x000000, 0x20000, CRC(b4bfa451) SHA1(002a5d213ba8ec76ad83a87d76aefbd98b1e4c94) )
- ROM_LOAD16_BYTE( "stestlo.bin", 0x000001, 0x20000, CRC(58758419) SHA1(7951d4c8cf0b28b4fac3fe172ea3bc56f61bd9ff) )
- ROM_LOAD16_BYTE( "drivehi.bin", 0x040000, 0x20000, CRC(d15f5119) SHA1(c2c7e9675c14ba41effa6f721602f6471b348758) )
- ROM_LOAD16_BYTE( "drivelo.bin", 0x040001, 0x20000, CRC(34adf4af) SHA1(db93fe1388d092916e1db526ea0fe72b35bf5ec0) )
- ROM_LOAD16_BYTE( "wavehi.bin", 0x0c0000, 0x20000, CRC(b21a34b6) SHA1(4309774e482cb97a074884e84358618512dc4f77) )
- ROM_LOAD16_BYTE( "wavelo.bin", 0x0c0001, 0x20000, CRC(15ed4394) SHA1(8c0ae74b2adce312c41bea95dc3b4f55bc3f8b6d) )
- ROM_LOAD16_BYTE( "ms2pics.hi", 0x140000, 0x20000, CRC(bca0af7e) SHA1(f25cfdc8f8fa77bcca2723335f76ba8a7d790eec) )
- ROM_LOAD16_BYTE( "ms2pics.lo", 0x140001, 0x20000, CRC(c3c6be8c) SHA1(66f0a54979bd83a940f226a8b3a9cf2eb3eaa908) )
- ROM_LOAD16_BYTE( "univhi.bin", 0x180000, 0x20000, CRC(86351673) SHA1(34170dd48aa77fe93f0c890a4878f3d370dae9b1) )
- ROM_LOAD16_BYTE( "univlo.bin", 0x180001, 0x20000, CRC(22d3b699) SHA1(e7d3e2107f17579549d09b1bb58fbab647343a61) )
- ROM_LOAD16_BYTE( "coprochi.bin",0x1c0000, 0x20000, CRC(5d2ca109) SHA1(e1a94d3fbfd5d542732555bf60268e73d66b3a06) )
- ROM_LOAD16_BYTE( "coproclo.bin",0x1c0001, 0x20000, CRC(5f98b04d) SHA1(9c4fa4092fd85f1d67be44f2ff91a907a87db51a) )
-
- ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 ) /* dummy region for ADSP 2105 */
- ROM_LOAD( "sboot.bin", 0x000000, 0x010000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
-
- ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */
- ROM_LOAD16_BYTE( "obj0h.bin", 0x00000, 0x20000, CRC(c321ab55) SHA1(e095e40bb1ebda7c9ff04a5086c10ab41dec2f16) )
- ROM_LOAD16_BYTE( "obj0l.bin", 0x00001, 0x20000, CRC(1f835f2e) SHA1(9d3419f2c1aa65ddfe9ace4e70ca1212d634afbf) )
- ROM_LOAD16_BYTE( "obj1h.bin", 0x40000, 0x20000, CRC(2c06b708) SHA1(daa16f727f2f500172f88b69d6931aa0fa13641b) )
- ROM_LOAD16_BYTE( "obj1l.bin", 0x40001, 0x20000, CRC(3d65f264) SHA1(e9232f5bf439bf4e1cf99cc7e81b7f9550563f15) )
- ROM_LOAD16_BYTE( "obj2h.bin", 0x80000, 0x20000, CRC(a666e98c) SHA1(90e380ff87538c7d557cf005a4a5bcedc250eb72) )
- ROM_LOAD16_BYTE( "obj2l.bin", 0x80001, 0x20000, CRC(b206cc7e) SHA1(17f05e906c41b804fe99dd6cd8acbade919a6a10) )
-
- ROM_REGION16_BE( 0x140000, "mainpcb:user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
- ROM_LOAD16_BYTE( "dsk2phi.bin", 0x00000, 0x80000, CRC(71c268e0) SHA1(c089248a7dfadf2eba3134fe40ebb777c115a886) )
- ROM_LOAD16_BYTE( "dsk2plo.bin", 0x00001, 0x80000, CRC(edf96363) SHA1(47f0608c2b0ab983681de021a16b1d10d4feb800) )
-
- ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */
- ROM_LOAD32_BYTE( "roads0.bin", 0x000000, 0x80000, CRC(5028eb41) SHA1(abe9d73e74d4f0308f07cbe9c18c8a77456fdbc7) )
- ROM_LOAD32_BYTE( "roads1.bin", 0x000001, 0x80000, CRC(c3f2c201) SHA1(c73933d7e46f3c63c4ca86af40eb4f0abb09aedf) )
- ROM_LOAD32_BYTE( "roads2.bin", 0x000002, 0x80000, CRC(527923fe) SHA1(839de8486bb7489f059b5a629ab229ad96de7eac) )
- ROM_LOAD32_BYTE( "roads3.bin", 0x000003, 0x80000, CRC(2f2023b2) SHA1(d474892443db2f0710c2be0d6b90735a2fbee12a) )
-
- ROM_REGION16_BE( 0x10000, "mainpcb:ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
- ROM_LOAD( "sboot.bin", 0x00000, 0x10000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
- ROM_REGION16_BE( 0x10000, "mainpcb:ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
- ROM_LOAD( "xboot.bin", 0x00000, 0x10000, CRC(054b46a0) SHA1(038eec17e678f2755239d6795acfda621796802e) )
-
- ROM_REGION16_BE( 0x400000, "mainpcb:ds3sdsp_data", 0 ) /* DS IV sound data */
- ROM_LOAD16_BYTE( "ds3rom4.bin", 0x000000, 0x80000, CRC(15ffb19a) SHA1(030dc90b7cabcd7fc5f231b09d2aa2eaf6e60b98) )
- ROM_LOAD16_BYTE( "ds3rom0.bin", 0x000001, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) )
- ROM_LOAD16_BYTE( "ds3rom5.bin", 0x100000, 0x80000, CRC(8d0e9b27) SHA1(76556f48bdf14475260c268ebdb16ecb494b2f36) )
- ROM_LOAD16_BYTE( "ds3rom1.bin", 0x100001, 0x80000, CRC(58173812) SHA1(b7e9f724011a362e1fc17aa7a7a95841e01d5430) )
- ROM_LOAD16_BYTE( "ds3rom6.bin", 0x200000, 0x80000, CRC(ce7edbae) SHA1(58e9d8379157bb69e323eb79332d644a32c70a6f) )
- ROM_LOAD16_BYTE( "ds3rom2.bin", 0x200001, 0x80000, CRC(5a4b18fa) SHA1(1e9193c1daf14fc0aeca6fab762f5753ec73435f) )
- ROM_LOAD16_BYTE( "ds3rom7.bin", 0x300000, 0x80000, CRC(323eff0b) SHA1(5d4945d77191ee44b4fbf125bc0816217321829e) )
- ROM_LOAD16_BYTE( "ds3rom3.bin", 0x300001, 0x80000, CRC(63965868) SHA1(d61d9d6709a3a3c37c2652602e97fdee52e0e7cb) )
-
- ROM_REGION( 0x800, "mainpcb:200e", 0 )
- ROM_LOAD( "hdrivair.200e", 0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) )
-
- ROM_REGION( 0x800, "mainpcb:210e", 0 )
- ROM_LOAD( "hdrivair.210e", 0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) )
-ROM_END
-
-
-ROM_START( hdrivairp )
+ROM_START( hdrivair )
ROM_REGION( 0x200000, "mainpcb:maincpu", 0 ) /* 2MB for 68000 code */
ROM_LOAD16_BYTE( "stest.0h", 0x000000, 0x20000, CRC(bf4bb6a0) SHA1(e38ec5ce245f98bfe8084ba684bffc85dc19d3be) )
ROM_LOAD16_BYTE( "stest.0l", 0x000001, 0x20000, CRC(f462b511) SHA1(d88efb8cc30322a8332a1f50de775a204758e176) )
@@ -4778,6 +4719,66 @@ ROM_START( hdrivairp )
ROM_END
+ROM_START( hdrivair0 )
+ ROM_REGION( 0x200000, "mainpcb:maincpu", 0 ) /* 2MB for 68000 code */
+ ROM_LOAD16_BYTE( "stesthi.bin", 0x000000, 0x20000, CRC(b4bfa451) SHA1(002a5d213ba8ec76ad83a87d76aefbd98b1e4c94) )
+ ROM_LOAD16_BYTE( "stestlo.bin", 0x000001, 0x20000, CRC(58758419) SHA1(7951d4c8cf0b28b4fac3fe172ea3bc56f61bd9ff) )
+ ROM_LOAD16_BYTE( "drivehi.bin", 0x040000, 0x20000, CRC(d15f5119) SHA1(c2c7e9675c14ba41effa6f721602f6471b348758) )
+ ROM_LOAD16_BYTE( "drivelo.bin", 0x040001, 0x20000, CRC(34adf4af) SHA1(db93fe1388d092916e1db526ea0fe72b35bf5ec0) )
+ ROM_LOAD16_BYTE( "wavehi.bin", 0x0c0000, 0x20000, CRC(b21a34b6) SHA1(4309774e482cb97a074884e84358618512dc4f77) )
+ ROM_LOAD16_BYTE( "wavelo.bin", 0x0c0001, 0x20000, CRC(15ed4394) SHA1(8c0ae74b2adce312c41bea95dc3b4f55bc3f8b6d) )
+ ROM_LOAD16_BYTE( "ms2pics.hi", 0x140000, 0x20000, CRC(bca0af7e) SHA1(f25cfdc8f8fa77bcca2723335f76ba8a7d790eec) )
+ ROM_LOAD16_BYTE( "ms2pics.lo", 0x140001, 0x20000, CRC(c3c6be8c) SHA1(66f0a54979bd83a940f226a8b3a9cf2eb3eaa908) )
+ ROM_LOAD16_BYTE( "univhi.bin", 0x180000, 0x20000, CRC(86351673) SHA1(34170dd48aa77fe93f0c890a4878f3d370dae9b1) )
+ ROM_LOAD16_BYTE( "univlo.bin", 0x180001, 0x20000, CRC(22d3b699) SHA1(e7d3e2107f17579549d09b1bb58fbab647343a61) )
+ ROM_LOAD16_BYTE( "coprochi.bin",0x1c0000, 0x20000, CRC(5d2ca109) SHA1(e1a94d3fbfd5d542732555bf60268e73d66b3a06) )
+ ROM_LOAD16_BYTE( "coproclo.bin",0x1c0001, 0x20000, CRC(5f98b04d) SHA1(9c4fa4092fd85f1d67be44f2ff91a907a87db51a) )
+
+ ROM_REGION( 0x10000 + 0x10000, "mainpcb:asic65:asic65cpu", 0 ) /* dummy region for ADSP 2105 */
+ ROM_LOAD( "sboot.bin", 0x000000, 0x010000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
+
+ ROM_REGION16_BE( 0xc0000, "mainpcb:user1", 0 ) /* 768k for object ROM */
+ ROM_LOAD16_BYTE( "obj0h.bin", 0x00000, 0x20000, CRC(c321ab55) SHA1(e095e40bb1ebda7c9ff04a5086c10ab41dec2f16) )
+ ROM_LOAD16_BYTE( "obj0l.bin", 0x00001, 0x20000, CRC(1f835f2e) SHA1(9d3419f2c1aa65ddfe9ace4e70ca1212d634afbf) )
+ ROM_LOAD16_BYTE( "obj1h.bin", 0x40000, 0x20000, CRC(2c06b708) SHA1(daa16f727f2f500172f88b69d6931aa0fa13641b) )
+ ROM_LOAD16_BYTE( "obj1l.bin", 0x40001, 0x20000, CRC(3d65f264) SHA1(e9232f5bf439bf4e1cf99cc7e81b7f9550563f15) )
+ ROM_LOAD16_BYTE( "obj2h.bin", 0x80000, 0x20000, CRC(a666e98c) SHA1(90e380ff87538c7d557cf005a4a5bcedc250eb72) )
+ ROM_LOAD16_BYTE( "obj2l.bin", 0x80001, 0x20000, CRC(b206cc7e) SHA1(17f05e906c41b804fe99dd6cd8acbade919a6a10) )
+
+ ROM_REGION16_BE( 0x140000, "mainpcb:user3", 0 )/* 1MB for DSK ROMs + 256k for RAM */
+ ROM_LOAD16_BYTE( "dsk2phi.bin", 0x00000, 0x80000, CRC(71c268e0) SHA1(c089248a7dfadf2eba3134fe40ebb777c115a886) )
+ ROM_LOAD16_BYTE( "dsk2plo.bin", 0x00001, 0x80000, CRC(edf96363) SHA1(47f0608c2b0ab983681de021a16b1d10d4feb800) )
+
+ ROM_REGION32_LE( 0x200000, "mainpcb:user4", 0 )/* 2MB for ASIC61 ROMs */
+ ROM_LOAD32_BYTE( "roads0.bin", 0x000000, 0x80000, CRC(5028eb41) SHA1(abe9d73e74d4f0308f07cbe9c18c8a77456fdbc7) )
+ ROM_LOAD32_BYTE( "roads1.bin", 0x000001, 0x80000, CRC(c3f2c201) SHA1(c73933d7e46f3c63c4ca86af40eb4f0abb09aedf) )
+ ROM_LOAD32_BYTE( "roads2.bin", 0x000002, 0x80000, CRC(527923fe) SHA1(839de8486bb7489f059b5a629ab229ad96de7eac) )
+ ROM_LOAD32_BYTE( "roads3.bin", 0x000003, 0x80000, CRC(2f2023b2) SHA1(d474892443db2f0710c2be0d6b90735a2fbee12a) )
+
+ ROM_REGION16_BE( 0x10000, "mainpcb:ds3sdsp", 0 ) /* DS IV sound ADSP-2105 */
+ ROM_LOAD( "sboot.bin", 0x00000, 0x10000, CRC(cde4d010) SHA1(853f4b813ff70fe74cd87e92131c46fca045610d) )
+
+ ROM_REGION16_BE( 0x10000, "mainpcb:ds3xdsp", 0 ) /* DS IV auxillary ADSP-2105 */
+ ROM_LOAD( "xboot.bin", 0x00000, 0x10000, CRC(054b46a0) SHA1(038eec17e678f2755239d6795acfda621796802e) )
+
+ ROM_REGION16_BE( 0x400000, "mainpcb:ds3sdsp_data", 0 ) /* DS IV sound data */
+ ROM_LOAD16_BYTE( "ds3rom4.bin", 0x000000, 0x80000, CRC(15ffb19a) SHA1(030dc90b7cabcd7fc5f231b09d2aa2eaf6e60b98) )
+ ROM_LOAD16_BYTE( "ds3rom0.bin", 0x000001, 0x80000, CRC(90b8dbb6) SHA1(fff693cb81e88bc00e048bb71406295fe7be5122) )
+ ROM_LOAD16_BYTE( "ds3rom5.bin", 0x100000, 0x80000, CRC(8d0e9b27) SHA1(76556f48bdf14475260c268ebdb16ecb494b2f36) )
+ ROM_LOAD16_BYTE( "ds3rom1.bin", 0x100001, 0x80000, CRC(58173812) SHA1(b7e9f724011a362e1fc17aa7a7a95841e01d5430) )
+ ROM_LOAD16_BYTE( "ds3rom6.bin", 0x200000, 0x80000, CRC(ce7edbae) SHA1(58e9d8379157bb69e323eb79332d644a32c70a6f) )
+ ROM_LOAD16_BYTE( "ds3rom2.bin", 0x200001, 0x80000, CRC(5a4b18fa) SHA1(1e9193c1daf14fc0aeca6fab762f5753ec73435f) )
+ ROM_LOAD16_BYTE( "ds3rom7.bin", 0x300000, 0x80000, CRC(323eff0b) SHA1(5d4945d77191ee44b4fbf125bc0816217321829e) )
+ ROM_LOAD16_BYTE( "ds3rom3.bin", 0x300001, 0x80000, CRC(63965868) SHA1(d61d9d6709a3a3c37c2652602e97fdee52e0e7cb) )
+
+ ROM_REGION( 0x800, "mainpcb:200e", 0 )
+ ROM_LOAD( "hdrivair.200e", 0x000000, 0x000800, CRC(6270b696) SHA1(e302880dbca53ee725108ca4f7e45a176e85e96d) )
+
+ ROM_REGION( 0x800, "mainpcb:210e", 0 )
+ ROM_LOAD( "hdrivair.210e", 0x000000, 0x000800, CRC(a1c39919) SHA1(92799a7a73f545dad6684eacf7009a6c4d52d8f7) )
+ROM_END
+
+
/*************************************
*
@@ -5302,19 +5303,23 @@ void harddriv_state::init_hdrivair()
m_rddsp32_sync[1] = &m_dsp32_ram[(0x613e00 - 0x600000) >> 2];
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16smo_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
- m_gsp_protection = &m_gsp_vram[(0xfff960a0 - 0xffc00000) >> 4];
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff916c0, 0xfff916cf, write16smo_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
+ m_gsp_protection = &m_gsp_vram[(0xfff916c0 - 0xffc00000) >> 4];
/* set up adsp speedup handlers */
m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16smo_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
- m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16smo_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
- m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
- m_ds3_speedup_pc = 0x2da;
- m_ds3_transfer_pc = 0x407b8;
+ m_adsp->space(AS_DATA).install_read_handler(0x1f9a, 0x1f9a, read16smo_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
+ m_ds3_speedup_addr = &m_adsp_data_memory[0x1f9a];
+ m_ds3_speedup_pc = 0x2d9;
+ m_ds3_transfer_pc = 0x407da;
+
+ /* it expects non-0 adsp data ram at boot (BAD POLY BUFF ERROR otherwise) */
+ for (int i = 0; i < 0x2000; i++)
+ m_adsp->space(AS_DATA).write_word(i, 0xffff, 0xffff);
}
-void harddriv_state::init_hdrivairp()
+void harddriv_state::init_hdrivair0()
{
/* initialize the boards */
init_multisync(1);
@@ -5330,19 +5335,15 @@ void harddriv_state::init_hdrivairp()
m_rddsp32_sync[1] = &m_dsp32_ram[(0x613e00 - 0x600000) >> 2];
/* set up protection hacks */
- m_gsp->space(AS_PROGRAM).install_write_handler(0xfff916c0, 0xfff916cf, write16smo_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
- m_gsp_protection = &m_gsp_vram[(0xfff916c0 - 0xffc00000) >> 4];
+ m_gsp->space(AS_PROGRAM).install_write_handler(0xfff960a0, 0xfff960af, write16smo_delegate(*this, FUNC(harddriv_state::hdgsp_protection_w)));
+ m_gsp_protection = &m_gsp_vram[(0xfff960a0 - 0xffc00000) >> 4];
/* set up adsp speedup handlers */
m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16smo_delegate(*this, FUNC(harddriv_state::hdadsp_speedup_r)));
- m_adsp->space(AS_DATA).install_read_handler(0x1f9a, 0x1f9a, read16smo_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
- m_ds3_speedup_addr = &m_adsp_data_memory[0x1f9a];
- m_ds3_speedup_pc = 0x2d9;
- m_ds3_transfer_pc = 0x407da;
-
- /* it expects non-0 adsp data ram at boot (BAD POLY BUFF ERROR otherwise) */
- for (int i = 0; i < 0x2000; i++)
- m_adsp->space(AS_DATA).write_word(i, 0x5555, 0xffff);
+ m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16smo_delegate(*this, FUNC(harddriv_state::hdds3_speedup_r)));
+ m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
+ m_ds3_speedup_pc = 0x2da;
+ m_ds3_transfer_pc = 0x407b8;
}
@@ -5413,5 +5414,5 @@ GAME( 1991, steeltalp, steeltal, steeltalp_machine, steeltal, harddriv_new_
GAME( 1993, strtdriv, 0, strtdriv_machine, strtdriv, harddriv_new_state, empty_init, ROT0, "Atari Games", "Street Drivin' (prototype)", 0 )
-GAME( 1993, hdrivair, 0, hdrivair_machine, hdrivair, harddriv_new_state, empty_init, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype)", MACHINE_IMPERFECT_SOUND )
-GAME( 1993, hdrivairp, hdrivair, hdrivairp_machine, hdrivair, harddriv_new_state, empty_init, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, early rev)", MACHINE_IMPERFECT_SOUND )
+GAME( 1993, hdrivair, 0, hdrivair_machine, hdrivair, harddriv_new_state, empty_init, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, rev 2.7)", MACHINE_IMPERFECT_SOUND )
+GAME( 1993, hdrivair0, hdrivair, hdrivair0_machine, hdrivair, harddriv_new_state, empty_init, ROT0, "Atari Games", "Hard Drivin's Airborne (prototype, rev 2.0)", MACHINE_IMPERFECT_SOUND )
diff --git a/src/mame/atari/harddriv.h b/src/mame/atari/harddriv.h
index 747c39e070b..fe9591dd8a2 100644
--- a/src/mame/atari/harddriv.h
+++ b/src/mame/atari/harddriv.h
@@ -51,7 +51,7 @@ DECLARE_DEVICE_TYPE(STEELTAL1_BOARD, steeltal1_board_device_state)
DECLARE_DEVICE_TYPE(STEELTALP_BOARD, steeltalp_board_device_state)
DECLARE_DEVICE_TYPE(STRTDRIV_BOARD, strtdriv_board_device_state)
DECLARE_DEVICE_TYPE(HDRIVAIR_BOARD, hdrivair_board_device_state)
-DECLARE_DEVICE_TYPE(HDRIVAIRP_BOARD, hdrivairp_board_device_state)
+DECLARE_DEVICE_TYPE(HDRIVAIR0_BOARD, hdrivair0_board_device_state)
DECLARE_DEVICE_TYPE(HARDDRIV_SOUND_BOARD, harddriv_sound_board_device)
@@ -83,7 +83,7 @@ public:
void init_racedrivc1(void);
void init_hdrivair(void);
- void init_hdrivairp(void);
+ void init_hdrivair0(void);
void init_steeltal(void);
void init_steeltal1(void);
@@ -501,7 +501,7 @@ protected:
virtual void device_reset() override ATTR_COLD;
};
-class harddriv_sound_board_device : public device_t
+class harddriv_sound_board_device : public device_t
{
public:
// construction/destruction
@@ -558,18 +558,18 @@ private:
required_shared_ptr<uint16_t> m_sounddsp_ram;
required_region_ptr<uint8_t> m_sound_rom;
- uint8_t m_soundflag = 0;
- uint8_t m_mainflag = 0;
- uint16_t m_sounddata = 0;
- uint16_t m_maindata = 0;
+ uint8_t m_soundflag = 0;
+ uint8_t m_mainflag = 0;
+ uint16_t m_sounddata = 0;
+ uint16_t m_maindata = 0;
- uint8_t m_cramen = 0;
- uint8_t m_irq68k = 0;
+ uint8_t m_cramen = 0;
+ uint8_t m_irq68k = 0;
offs_t m_sound_rom_offs = 0;
- uint16_t m_comram[0x400/2]{};
- uint64_t m_last_bio_cycles = 0;
+ uint16_t m_comram[0x400/2]{};
+ uint64_t m_last_bio_cycles = 0;
void update_68k_interrupts();
TIMER_CALLBACK_MEMBER( delayed_68k_w );
@@ -580,7 +580,7 @@ private:
/* Hard Drivin' */
-class harddriv_board_device_state : public harddriv_state
+class harddriv_board_device_state : public harddriv_state
{
public:
harddriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -594,7 +594,7 @@ protected:
/* Hard Drivin' Compact */
-class harddrivc_board_device_state : public harddriv_state
+class harddrivc_board_device_state : public harddriv_state
{
public:
harddrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -608,7 +608,7 @@ protected:
/* Race Drivin' */
-class racedriv_board_device_state : public harddriv_state
+class racedriv_board_device_state : public harddriv_state
{
public:
racedriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -621,7 +621,7 @@ protected:
// virtual void device_reset();
};
-class racedrivb1_board_device_state : public racedriv_board_device_state
+class racedrivb1_board_device_state : public racedriv_board_device_state
{
public:
racedrivb1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -633,7 +633,7 @@ protected:
/* Race Drivin' Compact */
-class racedrivc_board_device_state : public harddriv_state
+class racedrivc_board_device_state : public harddriv_state
{
public:
racedrivc_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -646,7 +646,7 @@ protected:
// virtual void device_reset();
};
-class racedrivc1_board_device_state : public racedrivc_board_device_state
+class racedrivc1_board_device_state : public racedrivc_board_device_state
{
public:
racedrivc1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -655,7 +655,7 @@ protected:
virtual void device_start() override ATTR_COLD;
};
-class racedrivc_panorama_side_board_device_state : public racedrivc_board_device_state
+class racedrivc_panorama_side_board_device_state : public racedrivc_board_device_state
{
public:
racedrivc_panorama_side_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -668,7 +668,7 @@ protected:
/* Stun Runner */
-class stunrun_board_device_state : public harddriv_state
+class stunrun_board_device_state : public harddriv_state
{
public:
stunrun_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -682,7 +682,7 @@ protected:
/* Steel Talons */
-class steeltal_board_device_state : public harddriv_state
+class steeltal_board_device_state : public harddriv_state
{
public:
steeltal_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -695,7 +695,7 @@ protected:
// virtual void device_reset();
};
-class steeltal1_board_device_state : public steeltal_board_device_state
+class steeltal1_board_device_state : public steeltal_board_device_state
{
public:
steeltal1_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -704,7 +704,7 @@ protected:
virtual void device_start() override ATTR_COLD;
};
-class steeltalp_board_device_state : public steeltal_board_device_state
+class steeltalp_board_device_state : public steeltal_board_device_state
{
public:
steeltalp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -716,7 +716,7 @@ protected:
/* Street Drivin' */
-class strtdriv_board_device_state : public harddriv_state
+class strtdriv_board_device_state : public harddriv_state
{
public:
strtdriv_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -730,7 +730,7 @@ protected:
/* Hard Drivin' Airbourne */
-class hdrivair_board_device_state : public harddriv_state
+class hdrivair_board_device_state : public harddriv_state
{
public:
hdrivair_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -743,10 +743,11 @@ protected:
// virtual void device_reset();
};
-class hdrivairp_board_device_state : public hdrivair_board_device_state
+class hdrivair0_board_device_state : public hdrivair_board_device_state
{
public:
- hdrivairp_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ hdrivair0_board_device_state(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
protected:
virtual void device_start() override ATTR_COLD;
};
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 069448fbafb..828e1bad442 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -2064,7 +2064,7 @@ harddrivg4
harddrivj
harddrivj6
hdrivair
-hdrivairp
+hdrivair0
racedriv
racedriv1
racedriv2