diff options
Diffstat (limited to 'src/mame/drivers/namcos10.cpp')
-rw-r--r-- | src/mame/drivers/namcos10.cpp | 132 |
1 files changed, 61 insertions, 71 deletions
diff --git a/src/mame/drivers/namcos10.cpp b/src/mame/drivers/namcos10.cpp index 97a64523422..f712ab395a5 100644 --- a/src/mame/drivers/namcos10.cpp +++ b/src/mame/drivers/namcos10.cpp @@ -409,13 +409,14 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu") { } + void namcos10_base(machine_config &config); + void namcos10_memm(machine_config &config); + void namcos10_memn(machine_config &config); void ns10_konotako(machine_config &config); void ns10_mrdrilr2(machine_config &config); void ns10_knpuzzle(machine_config &config); void ns10_chocovdr(machine_config &config); void ns10_startrgn(machine_config &config); - void namcos10_memm(machine_config &config); - void namcos10_memn(machine_config &config); void ns10_gjspace(machine_config &config); void ns10_nflclsfb(machine_config &config); void ns10_gamshara(machine_config &config); @@ -491,7 +492,7 @@ private: DECLARE_MACHINE_RESET(namcos10); void memn_driver_init( ); - required_device<cpu_device> m_maincpu; + required_device<psxcpu_device> m_maincpu; }; @@ -549,7 +550,7 @@ READ16_MEMBER(namcos10_state::range_r) READ16_MEMBER(namcos10_state::control_r) { - logerror("control_r %d (%x)\n", offset, m_maincpu->pc()); + logerror("%s: control_r %d (%x)\n", machine().describe_context(), offset); if(offset == 2) return 1^0xffff; return 0; @@ -557,12 +558,12 @@ READ16_MEMBER(namcos10_state::control_r) WRITE16_MEMBER(namcos10_state::control_w) { - logerror("control_w %d, %04x (%x)\n", offset, data, m_maincpu->pc()); + logerror("%s: control_w %d, %04x (%x)\n", machine().describe_context(), offset, data); } WRITE16_MEMBER(namcos10_state::sprot_w) { - logerror("sprot_w %04x (%x)\n", data, m_maincpu->pc()); + logerror("%s: sprot_w %04x (%x)\n", machine().describe_context(), data); sprot_bit = 7; sprot_byte = 0; } @@ -704,26 +705,26 @@ READ16_MEMBER(namcos10_state::nand_status_r ) WRITE8_MEMBER(namcos10_state::nand_address1_w ) { - logerror("nand_a1_w %08x (%08x)\n", data, m_maincpu->pc()); + logerror("%s: nand_a1_w %08x (%08x)\n", machine().describe_context(), data); // nand_address = ( nand_address & 0x00ffffff ) | ( data << 24 ); } WRITE8_MEMBER( namcos10_state::nand_address2_w ) { - logerror("nand_a2_w %08x (%08x)\n", data, m_maincpu->pc()); + logerror("%s: nand_a2_w %08x (%08x)\n", machine().describe_context(), data); nand_address = ( nand_address & 0xffffff00 ) | ( data << 0 ); } WRITE8_MEMBER( namcos10_state::nand_address3_w ) { - logerror("nand_a3_w %08x (%08x)\n", data, m_maincpu->pc()); + logerror("%s: nand_a3_w %08x (%08x)\n", machine().describe_context(), data); nand_address = ( nand_address & 0xffff00ff ) | ( data << 8 ); } WRITE8_MEMBER( namcos10_state::nand_address4_w ) { nand_address = ( nand_address & 0xff00ffff ) | ( data << 16 ); - logerror("nand_a4_w %08x (%08x) -> %08x\n", data, m_maincpu->pc(), nand_address*2); + logerror("%s: nand_a4_w %08x (%08x) -> %08x\n", machine().describe_context(), data, nand_address*2); } uint16_t namcos10_state::nand_read( uint32_t address ) @@ -921,107 +922,96 @@ MACHINE_RESET_MEMBER(namcos10_state,namcos10) i2c_bit = 0; } -MACHINE_CONFIG_START(namcos10_state::namcos10_memm) +void namcos10_state::namcos10_base(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", CXD8606BQ, XTAL(101'491'200) ) - MCFG_DEVICE_PROGRAM_MAP( namcos10_memm_map ) - + CXD8606BQ(config, m_maincpu, XTAL(101'491'200)); + m_maincpu->set_disable_rom_berr(true); + m_maincpu->subdevice<ram_device>("ram")->set_default_size("16M"); // The bios first configures the ROM window as 80000-big, then // switches to 400000. If berr is active, the first configuration // wipes all handlers after 1fc80000, which kills the system // afterwards - MCFG_PSX_DISABLE_ROM_BERR - - subdevice<ram_device>("maincpu:ram")->set_default_size("16M"); - - MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10 ) + MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10) /* video hardware */ - MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) ) - MCFG_VIDEO_SET_SCREEN("screen") + CXD8561CQ(config, "gpu", XTAL(53'693'175), 0x200000, subdevice<psxcpu_device>("maincpu")).set_screen("screen"); SCREEN(config, "screen", SCREEN_TYPE_RASTER); /* sound hardware */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(namcos10_state::namcos10_memn) - /* basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", CXD8606BQ, XTAL(101'491'200) ) - MCFG_DEVICE_PROGRAM_MAP( namcos10_memn_map ) - - // The bios first configures the ROM window as 80000-big, then - // switches to 400000. If berr is active, the first configuration - // wipes all handlers after 1fc80000, which kills the system - // afterwards - - MCFG_PSX_DISABLE_ROM_BERR - - subdevice<ram_device>("maincpu:ram")->set_default_size("16M"); - - MCFG_MACHINE_RESET_OVERRIDE(namcos10_state, namcos10 ) - - /* video hardware */ - MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561CQ, 0x200000, XTAL(53'693'175) ) - MCFG_VIDEO_SET_SCREEN("screen") +} - SCREEN(config, "screen", SCREEN_TYPE_RASTER); +void namcos10_state::namcos10_memm(machine_config &config) +{ + namcos10_base(config); + m_maincpu->set_addrmap(AS_PROGRAM, &namcos10_state::namcos10_memm_map); +} - /* sound hardware */ - SPEAKER(config, "lspeaker").front_left(); - SPEAKER(config, "rspeaker").front_right(); -MACHINE_CONFIG_END +void namcos10_state::namcos10_memn(machine_config &config) +{ + namcos10_base(config); + m_maincpu->set_addrmap(AS_PROGRAM, &namcos10_state::namcos10_memn_map); +} -MACHINE_CONFIG_START(namcos10_state::ns10_mrdrilr2) +void namcos10_state::ns10_mrdrilr2(machine_config &config) +{ namcos10_memm(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", MRDRILR2_DECRYPTER, 0) -MACHINE_CONFIG_END + MRDRILR2_DECRYPTER(config, "decrypter", 0); +} -MACHINE_CONFIG_START(namcos10_state::ns10_chocovdr) +void namcos10_state::ns10_chocovdr(machine_config &config) +{ namcos10_memn(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", CHOCOVDR_DECRYPTER, 0) -MACHINE_CONFIG_END + CHOCOVDR_DECRYPTER(config, "decrypter", 0); +} -MACHINE_CONFIG_START(namcos10_state::ns10_gamshara) +void namcos10_state::ns10_gamshara(machine_config &config) +{ namcos10_memn(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", GAMSHARA_DECRYPTER, 0) -MACHINE_CONFIG_END + GAMSHARA_DECRYPTER(config, "decrypter", 0); +} -MACHINE_CONFIG_START(namcos10_state::ns10_gjspace) +void namcos10_state::ns10_gjspace(machine_config &config) +{ namcos10_memn(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", GJSPACE_DECRYPTER, 0) -MACHINE_CONFIG_END + GJSPACE_DECRYPTER(config, "decrypter", 0); +} -MACHINE_CONFIG_START(namcos10_state::ns10_knpuzzle) +void namcos10_state::ns10_knpuzzle(machine_config &config) +{ namcos10_memn(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", KNPUZZLE_DECRYPTER, 0) -MACHINE_CONFIG_END + KNPUZZLE_DECRYPTER(config, "decrypter", 0); +} -MACHINE_CONFIG_START(namcos10_state::ns10_konotako) +void namcos10_state::ns10_konotako(machine_config &config) +{ namcos10_memn(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", KONOTAKO_DECRYPTER, 0) -MACHINE_CONFIG_END + KONOTAKO_DECRYPTER(config, "decrypter", 0); +} -MACHINE_CONFIG_START(namcos10_state::ns10_nflclsfb) +void namcos10_state::ns10_nflclsfb(machine_config &config) +{ namcos10_memn(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", NFLCLSFB_DECRYPTER, 0) -MACHINE_CONFIG_END + NFLCLSFB_DECRYPTER(config, "decrypter", 0); +} -MACHINE_CONFIG_START(namcos10_state::ns10_startrgn) +void namcos10_state::ns10_startrgn(machine_config &config) +{ namcos10_memn(config); /* decrypter device (CPLD in hardware?) */ - MCFG_DEVICE_ADD("decrypter", STARTRGN_DECRYPTER, 0) -MACHINE_CONFIG_END + STARTRGN_DECRYPTER(config, "decrypter", 0); +} static INPUT_PORTS_START( namcos10 ) /* IN 0 */ |