diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2018-09-08 16:03:51 +0200 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2018-09-08 16:03:51 +0200 |
commit | 80adcb6f16f8d263e109a7d9231a9b7729f8b7d3 (patch) | |
tree | 118d5a9a6d8ce661cf2352cc765d609f60502274 | |
parent | 48510ad1cb1ef6650d0f2eb50b1bec41795ce013 (diff) |
new working clone
-------------------------------------
Midnight Landing (Japan) [ShouTime]
(maybe should rename this to 'Japanese / English' and the other set to 'Japanese / German'?)
-rw-r--r-- | src/mame/drivers/mlanding.cpp | 116 | ||||
-rw-r--r-- | src/mame/mame.lst | 3 |
2 files changed, 78 insertions, 41 deletions
diff --git a/src/mame/drivers/mlanding.cpp b/src/mame/drivers/mlanding.cpp index 0e5521ed97f..34023f5380a 100644 --- a/src/mame/drivers/mlanding.cpp +++ b/src/mame/drivers/mlanding.cpp @@ -36,7 +36,6 @@ To do: - * Find Japanese version * Determine correct CPU and video timings * Unknown sound writes (volume and body sonic control?) * Better document mecha drive CPU @@ -93,6 +92,11 @@ public: void mlanding(machine_config &config); +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + private: enum { @@ -133,9 +137,6 @@ private: uint8_t m_msm2_vck; uint8_t m_msm2_vck2; - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_WRITE16_MEMBER(dma_start_w); DECLARE_WRITE16_MEMBER(dma_stop_w); DECLARE_WRITE16_MEMBER(output_w); @@ -175,8 +176,6 @@ private: void main_map(address_map &map); void mecha_map_prog(address_map &map); void sub_map(address_map &map); - - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; }; @@ -262,7 +261,7 @@ uint32_t mlanding_state::screen_update_mlanding(screen_device &screen, bitmap_in WRITE16_MEMBER(mlanding_state::dma_start_w) { m_dma_cpu_bank ^= 1; - membank("dma_ram")->set_entry(m_dma_cpu_bank); + m_dma_bank->set_entry(m_dma_cpu_bank); uint32_t pixels = exec_dma(); @@ -723,9 +722,9 @@ void mlanding_state::main_map(address_map &map) { map(0x000000, 0x05ffff).rom(); map(0x080000, 0x08ffff).ram(); - map(0x100000, 0x17ffff).ram().share("g_ram"); - map(0x180000, 0x1bffff).ram().share("cha_ram"); - map(0x1c0000, 0x1c3fff).bankrw("dma_ram"); + map(0x100000, 0x17ffff).ram().share(m_g_ram); + map(0x180000, 0x1bffff).ram().share(m_cha_ram); + map(0x1c0000, 0x1c3fff).bankrw(m_dma_bank); map(0x1c4000, 0x1cffff).ram().share("sub_com_ram"); map(0x1d0000, 0x1d0001).w(FUNC(mlanding_state::dma_start_w)); map(0x1d0002, 0x1d0003).w(FUNC(mlanding_state::dma_stop_w)); @@ -761,10 +760,10 @@ void mlanding_state::sub_map(address_map &map) map(0x040000, 0x043fff).ram(); map(0x050000, 0x0503ff).ram().share("dsp_prog"); map(0x060000, 0x060001).w(FUNC(mlanding_state::dsp_control_w)); - map(0x1c0000, 0x1c3fff).bankrw("dma_ram"); + map(0x1c0000, 0x1c3fff).bankrw(m_dma_bank); map(0x1c4000, 0x1cffff).ram().share("sub_com_ram"); map(0x200000, 0x2007ff).ram(); - map(0x200800, 0x203fff).ram().share("dot_ram"); + map(0x200800, 0x203fff).ram().share(m_dot_ram); } @@ -782,7 +781,7 @@ void mlanding_state::dsp_map_prog(address_map &map) void mlanding_state::dsp_map_data(address_map &map) { - map(0x0400, 0x1fff).ram().share("dot_ram"); + map(0x0400, 0x1fff).ram().share(m_dot_ram); } /************************************* @@ -828,7 +827,7 @@ void mlanding_state::mecha_map_prog(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x87ff).ram(); - map(0x8800, 0x8fff).ram().share("power_ram"); + map(0x8800, 0x8fff).ram().share(m_power_ram); map(0x9000, 0x9003).nopw(); map(0x9800, 0x9805).r(FUNC(mlanding_state::motor_r)); } @@ -919,6 +918,14 @@ static INPUT_PORTS_START( mlanding ) PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_READ_LINE_DEVICE_MEMBER("yokectrl", taitoio_yoke_device, handle_up_r ) INPUT_PORTS_END +static INPUT_PORTS_START( mlandingj ) + PORT_INCLUDE(mlanding) + + PORT_MODIFY("DSWB") + PORT_DIPNAME( 0x40, 0x40, DEF_STR( Language ) ) PORT_DIPLOCATION("SWB:7") + PORT_DIPSETTING( 0x40, DEF_STR( Japanese ) ) + PORT_DIPSETTING( 0x00, DEF_STR( English ) ) +INPUT_PORTS_END /************************************* * @@ -929,22 +936,22 @@ INPUT_PORTS_END MACHINE_CONFIG_START(mlanding_state::mlanding) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 8000000) // Appears to be 68000P8 in PCB photo + MCFG_DEVICE_ADD(m_maincpu, M68000, 8000000) // 68000P8 in PCB photo MCFG_DEVICE_PROGRAM_MAP(main_map) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mlanding_state, irq6_line_hold) - MCFG_DEVICE_ADD("subcpu", M68000, 8000000) // Appears to be 68000P8 in PCB photo + MCFG_DEVICE_ADD(m_subcpu, M68000, 8000000) // 68000P8 in PCB photo MCFG_DEVICE_PROGRAM_MAP(sub_map) - MCFG_DEVICE_ADD("audiocpu", Z80, 4000000) // ? + MCFG_DEVICE_ADD(m_audiocpu, Z80, 4000000) // Z8040004 MCFG_DEVICE_PROGRAM_MAP(audio_map_prog) MCFG_DEVICE_IO_MAP(audio_map_io) - MCFG_DEVICE_ADD("mechacpu", Z80, 4000000) // ? + MCFG_DEVICE_ADD(m_mechacpu, Z80, 4000000) // ? MCFG_DEVICE_PROGRAM_MAP(mecha_map_prog) MCFG_DEVICE_VBLANK_INT_DRIVER("screen", mlanding_state, irq0_line_hold) - MCFG_DEVICE_ADD("dsp", TMS32025, 32000000) // ? + MCFG_DEVICE_ADD(m_dsp, TMS32025, 32000000) // ? MCFG_DEVICE_PROGRAM_MAP(dsp_map_prog) MCFG_DEVICE_DATA_MAP(dsp_map_data) MCFG_TMS32025_HOLD_IN_CB(READ16(*this, mlanding_state, dsp_hold_signal_r)) @@ -967,9 +974,9 @@ MACHINE_CONFIG_START(mlanding_state::mlanding) // Estimated MCFG_SCREEN_RAW_PARAMS(16000000, 640, 0, 512, 462, 0, 400) MCFG_SCREEN_UPDATE_DRIVER(mlanding_state, screen_update_mlanding) - MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_PALETTE(m_palette) - MCFG_PALETTE_ADD("palette", 32768) + MCFG_PALETTE_ADD(m_palette, 32768) MCFG_PALETTE_FORMAT(xBBBBBGGGGGRRRRR) /* sound hardware */ @@ -981,12 +988,12 @@ MACHINE_CONFIG_START(mlanding_state::mlanding) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.50) - MCFG_DEVICE_ADD("msm1", MSM5205, 384000) + MCFG_DEVICE_ADD(m_msm1, MSM5205, 384000) MCFG_MSM5205_VCLK_CB(WRITELINE(*this, mlanding_state, msm5205_1_vck)) // VCK function MCFG_MSM5205_PRESCALER_SELECTOR(S48_4B) // 8 kHz, 4-bit MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80) - MCFG_DEVICE_ADD("msm2", MSM5205, 384000) + MCFG_DEVICE_ADD(m_msm2, MSM5205, 384000) MCFG_MSM5205_PRESCALER_SELECTOR(SEX_4B) // Slave mode, 4-bit MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10) MACHINE_CONFIG_END @@ -1001,35 +1008,63 @@ MACHINE_CONFIG_END ROM_START( mlanding ) ROM_REGION( 0x60000, "maincpu", 0 ) - ROM_LOAD16_BYTE( "ml_b0929.epr", 0x00000, 0x10000, CRC(ab3f38f3) SHA1(4357112ca11a8e7bfe08ba99ac3bddac046c230a)) - ROM_LOAD16_BYTE( "ml_b0928.epr", 0x00001, 0x10000, CRC(21e7a8f6) SHA1(860d3861d4375866cd27d426d546ddb2894a6629) ) - ROM_LOAD16_BYTE( "ml_b0927.epr", 0x20000, 0x10000, CRC(b02f1805) SHA1(b8050f955c7070dc9b962db329b5b0ee8b2acb70) ) - ROM_LOAD16_BYTE( "ml_b0926.epr", 0x20001, 0x10000, CRC(d57ff428) SHA1(8ff1ab666b06fb873f1ba9b25edf4cd49b9861a1) ) - ROM_LOAD16_BYTE( "ml_b0925.epr", 0x40000, 0x10000, CRC(ff59f049) SHA1(aba490a28aba03728415f34d321fd599c31a5fde) ) - ROM_LOAD16_BYTE( "ml_b0924.epr", 0x40001, 0x10000, CRC(9bc3e1b0) SHA1(6d86804327df11a513a0f06dceb57b83b34ac007) ) + ROM_LOAD16_BYTE( "b09_29.ic44", 0x00000, 0x10000, CRC(ab3f38f3) SHA1(4357112ca11a8e7bfe08ba99ac3bddac046c230a) ) // label needs verifying + ROM_LOAD16_BYTE( "b09_28.ic27", 0x00001, 0x10000, CRC(21e7a8f6) SHA1(860d3861d4375866cd27d426d546ddb2894a6629) ) // label needs verifying + ROM_LOAD16_BYTE( "b09_27.ic45", 0x20000, 0x10000, CRC(b02f1805) SHA1(b8050f955c7070dc9b962db329b5b0ee8b2acb70) ) + ROM_LOAD16_BYTE( "b09_26.ic28", 0x20001, 0x10000, CRC(d57ff428) SHA1(8ff1ab666b06fb873f1ba9b25edf4cd49b9861a1) ) + ROM_LOAD16_BYTE( "b09_25.ic46", 0x40000, 0x10000, CRC(ff59f049) SHA1(aba490a28aba03728415f34d321fd599c31a5fde) ) + ROM_LOAD16_BYTE( "b09_24.ic29", 0x40001, 0x10000, CRC(9bc3e1b0) SHA1(6d86804327df11a513a0f06dceb57b83b34ac007) ) ROM_REGION( 0x20000, "subcpu", 0 ) - ROM_LOAD16_BYTE( "ml_b0923.epr", 0x00000, 0x10000, CRC(81b2c871) SHA1(a085bc528c63834079469db6ae263a5b9b984a7c) ) - ROM_LOAD16_BYTE( "ml_b0922.epr", 0x00001, 0x10000, CRC(36923b42) SHA1(c31d7c45a563cfc4533379f69f32889c79562534) ) + ROM_LOAD16_BYTE( "b09_23.ic56", 0x00000, 0x10000, CRC(81b2c871) SHA1(a085bc528c63834079469db6ae263a5b9b984a7c) ) + ROM_LOAD16_BYTE( "b09_22.ic39", 0x00001, 0x10000, CRC(36923b42) SHA1(c31d7c45a563cfc4533379f69f32889c79562534) ) ROM_REGION( 0x10000, "audiocpu", 0 ) - ROM_LOAD( "ml_b0935.epr", 0x00000, 0x08000, CRC(b85915c5) SHA1(656e97035ae304f84e90758d0dd6f0616c40f1db) ) + ROM_LOAD( "b09_35.ic80", 0x00000, 0x08000, CRC(b85915c5) SHA1(656e97035ae304f84e90758d0dd6f0616c40f1db) ) ROM_REGION( 0x10000, "mechacpu", 0 ) - ROM_LOAD( "ml_b0937.epr", 0x00000, 0x08000, CRC(4bdf15ed) SHA1(b960208e63cede116925e064279a6cf107aef81c) ) + ROM_LOAD( "b09_37.epr", 0x00000, 0x08000, CRC(4bdf15ed) SHA1(b960208e63cede116925e064279a6cf107aef81c) ) ROM_REGION( 0x80000, "adpcm1", 0 ) - ROM_LOAD( "ml_b0934.epr", 0x00000, 0x10000, CRC(0899666f) SHA1(032e3ddd4caa48f82592570616e16c084de91f3e) ) - ROM_LOAD( "ml_b0933.epr", 0x10000, 0x10000, CRC(f5cac954) SHA1(71abdc545e0196ad4d357af22dd6312d10a1323f) ) - ROM_LOAD( "ml_b0932.epr", 0x20000, 0x10000, CRC(4721dc59) SHA1(faad75d577344e9ba495059040a2cf0647567426) ) - ROM_LOAD( "ml_b0931.epr", 0x30000, 0x10000, CRC(9c4a82bf) SHA1(daeac620c636013a36595ce9f37e84e807f88977) ) - ROM_LOAD( "ml_b0930.epr", 0x40000, 0x10000, CRC(214a30e2) SHA1(3dcc3a89ed52e4dbf232d2a92a3e64975b46c2dd) ) + ROM_LOAD( "b09_34.ic62", 0x00000, 0x10000, CRC(0899666f) SHA1(032e3ddd4caa48f82592570616e16c084de91f3e) ) + ROM_LOAD( "b09_33.ic63", 0x10000, 0x10000, CRC(f5cac954) SHA1(71abdc545e0196ad4d357af22dd6312d10a1323f) ) + ROM_LOAD( "b09_32.ic64", 0x20000, 0x10000, CRC(4721dc59) SHA1(faad75d577344e9ba495059040a2cf0647567426) ) + ROM_LOAD( "b09_31.ic65", 0x30000, 0x10000, CRC(9c4a82bf) SHA1(daeac620c636013a36595ce9f37e84e807f88977) ) + ROM_LOAD( "b09_30.ic66", 0x40000, 0x10000, CRC(214a30e2) SHA1(3dcc3a89ed52e4dbf232d2a92a3e64975b46c2dd) ) ROM_REGION( 0x2000, "adpcm2", 0 ) - ROM_LOAD( "ml_b0936.epr", 0x00000, 0x02000, CRC(51fd3a77) SHA1(1fcbadf1877e25848a1d1017322751560a4823c0) ) + ROM_LOAD( "b09_36.ic111", 0x00000, 0x02000, CRC(51fd3a77) SHA1(1fcbadf1877e25848a1d1017322751560a4823c0) ) ROM_END +ROM_START( mlandingj ) + ROM_REGION( 0x60000, "maincpu", 0 ) + ROM_LOAD16_BYTE( "b09_29-2.ic44", 0x00000, 0x10000, CRC(c78d55cd) SHA1(0126524310048a55f4c0c361a1673cc259e461ba) ) // 27512 + ROM_LOAD16_BYTE( "b09_28-3.ic27", 0x00001, 0x10000, CRC(7098c18d) SHA1(ee5b386fed9df5edfd19cb967fd01e9e7fd9ad08) ) // 27512 + ROM_LOAD16_BYTE( "b09_27.ic45", 0x20000, 0x10000, CRC(b02f1805) SHA1(b8050f955c7070dc9b962db329b5b0ee8b2acb70) ) + ROM_LOAD16_BYTE( "b09_26.ic28", 0x20001, 0x10000, CRC(d57ff428) SHA1(8ff1ab666b06fb873f1ba9b25edf4cd49b9861a1) ) + ROM_LOAD16_BYTE( "b09_25.ic46", 0x40000, 0x10000, CRC(ff59f049) SHA1(aba490a28aba03728415f34d321fd599c31a5fde) ) + ROM_LOAD16_BYTE( "b09_24.ic29", 0x40001, 0x10000, CRC(9bc3e1b0) SHA1(6d86804327df11a513a0f06dceb57b83b34ac007) ) + + ROM_REGION( 0x20000, "subcpu", 0 ) + ROM_LOAD16_BYTE( "b09_23.ic56", 0x00000, 0x10000, CRC(81b2c871) SHA1(a085bc528c63834079469db6ae263a5b9b984a7c) ) + ROM_LOAD16_BYTE( "b09_22.ic39", 0x00001, 0x10000, CRC(36923b42) SHA1(c31d7c45a563cfc4533379f69f32889c79562534) ) + + ROM_REGION( 0x10000, "audiocpu", 0 ) + ROM_LOAD( "b09_35.ic80", 0x00000, 0x08000, CRC(b85915c5) SHA1(656e97035ae304f84e90758d0dd6f0616c40f1db) ) + + ROM_REGION( 0x10000, "mechacpu", 0 ) + ROM_LOAD( "b09_37.epr", 0x00000, 0x08000, CRC(4bdf15ed) SHA1(b960208e63cede116925e064279a6cf107aef81c) ) + + ROM_REGION( 0x80000, "adpcm1", 0 ) + ROM_LOAD( "b09_34.ic62", 0x00000, 0x10000, CRC(0899666f) SHA1(032e3ddd4caa48f82592570616e16c084de91f3e) ) + ROM_LOAD( "b09_33.ic63", 0x10000, 0x10000, CRC(f5cac954) SHA1(71abdc545e0196ad4d357af22dd6312d10a1323f) ) + ROM_LOAD( "b09_32.ic64", 0x20000, 0x10000, CRC(4721dc59) SHA1(faad75d577344e9ba495059040a2cf0647567426) ) + ROM_LOAD( "b09_31.ic65", 0x30000, 0x10000, CRC(9c4a82bf) SHA1(daeac620c636013a36595ce9f37e84e807f88977) ) + ROM_LOAD( "b09_30.ic66", 0x40000, 0x10000, CRC(214a30e2) SHA1(3dcc3a89ed52e4dbf232d2a92a3e64975b46c2dd) ) + ROM_REGION( 0x2000, "adpcm2", 0 ) + ROM_LOAD( "b09_36.ic111", 0x00000, 0x02000, CRC(51fd3a77) SHA1(1fcbadf1877e25848a1d1017322751560a4823c0) ) +ROM_END /************************************* * @@ -1037,4 +1072,5 @@ ROM_END * *************************************/ -GAME( 1987, mlanding, 0, mlanding, mlanding, mlanding_state, empty_init, ROT0, "Taito America Corporation", "Midnight Landing (Germany)", MACHINE_SUPPORTS_SAVE ) +GAME( 1987, mlanding, 0, mlanding, mlanding, mlanding_state, empty_init, ROT0, "Taito America Corporation", "Midnight Landing (Germany)", MACHINE_SUPPORTS_SAVE ) // Japanese or German selectable via dip-switch. Copyright changes accordingly. +GAME( 1987, mlandingj, mlanding, mlanding, mlandingj, mlanding_state, empty_init, ROT0, "Taito Corporation", "Midnight Landing (Japan)", MACHINE_SUPPORTS_SAVE ) // Japanese or English selectable via dip-switch. Copyright changes accordingly. diff --git a/src/mame/mame.lst b/src/mame/mame.lst index c00dd58fb92..c24e94d1827 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -21470,7 +21470,8 @@ mkit09 // mkit09a // @source:mlanding.cpp -mlanding // ??? (c) 1987 Taito America Corporation (US) +mlanding // B09 (c) 1987 Taito America Corporation (US) +mlandingj // B09 (c) 1987 Taito Corporation (US) @source:mmagic.cpp mmagic // (c) 1979 Nintendo |