mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
new working clone
------------------------------------- Midnight Landing (Japan) [ShouTime] (maybe should rename this to 'Japanese / English' and the other set to 'Japanese / German'?)
This commit is contained in:
parent
48510ad1cb
commit
80adcb6f16
@ -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.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user