From 7e3bf84ef02b8cfdc2933750cb12c545c596422e Mon Sep 17 00:00:00 2001 From: hap Date: Thu, 28 Apr 2016 19:38:49 +0200 Subject: [PATCH] phantom: correct cpu type, 1st rom is banked --- src/mame/drivers/phantom.cpp | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/mame/drivers/phantom.cpp b/src/mame/drivers/phantom.cpp index 566b1169c01..fe538ddb279 100644 --- a/src/mame/drivers/phantom.cpp +++ b/src/mame/drivers/phantom.cpp @@ -29,11 +29,13 @@ Fidelity bought the design from Milton Bradley and released their own version. It has a small LCD panel added, the rest looks nearly the same from the outside. Hardware notes: -- CPU: 6502, 5MHz? -- ROM 2*32KB -- RAM: 8KB? +- PCB label 510.1128A01 +- CPU: R65C02P4, 5MHz? +- ROM 2*32KB 27C256-15 +- RAM: 8KB MS6264L-10 - LCD driver, display panel for digits -- assume rest is same as MB version +- piezo speaker, LEDs(not as many) +- motor mechanism is assumed same as MB version After Fidelity was taken over by H&G, it was rereleased in 1990 as the Mephisto Phantom. This is assumed to be identical. @@ -41,7 +43,7 @@ Phantom. This is assumed to be identical. ******************************************************************************/ #include "emu.h" -#include "cpu/m6502/m6502.h" +#include "cpu/m6502/r65c02.h" #include "sound/speaker.h" // internal artwork @@ -61,6 +63,8 @@ public: required_device m_maincpu; required_device m_speaker; + DECLARE_DRIVER_INIT(fphantom); + protected: virtual void machine_start() override; virtual void machine_reset() override; @@ -69,6 +73,12 @@ protected: // machine start/reset +DRIVER_INIT_MEMBER(phantom_state, fphantom) +{ + UINT8 *ROM = memregion("maincpu")->base(); + membank("bank1")->configure_entries(0, 2, &ROM[0], 0x4000); +} + void phantom_state::machine_start() { // zerofill @@ -78,6 +88,7 @@ void phantom_state::machine_start() void phantom_state::machine_reset() { + membank("bank1")->set_entry(0); } @@ -88,7 +99,8 @@ void phantom_state::machine_reset() static ADDRESS_MAP_START( fphantom_mem, AS_PROGRAM, 8, phantom_state ) AM_RANGE(0x0000, 0x1fff) AM_RAM - AM_RANGE(0x2000, 0xffff) AM_ROM + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") + AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -109,7 +121,7 @@ INPUT_PORTS_END static MACHINE_CONFIG_START( fphantom, phantom_state ) /* basic machine hardware */ - MCFG_CPU_ADD("maincpu", M6502, 5000000) // 5MHz? + MCFG_CPU_ADD("maincpu", R65C02, 5000000) // 5MHz? MCFG_CPU_PERIODIC_INT_DRIVER(phantom_state, irq0_line_hold, 600) // guessed MCFG_CPU_PROGRAM_MAP(fphantom_mem) @@ -129,8 +141,8 @@ MACHINE_CONFIG_END ROM_START( fphantom ) ROM_REGION( 0x10000, "maincpu", 0 ) - ROM_LOAD("4_4.u4", 0x0000, 0x8000, CRC(e4181ba2) SHA1(1f77d1867c6f566be98645fc252a01108f412c96) ) - ROM_LOAD("4_3c.u3", 0x8000, 0x8000, CRC(fb7c38ae) SHA1(a1aa7637705052cb4eec92644dc79aee7ba4d77c) ) + ROM_LOAD("u_4.u4", 0x0000, 0x8000, CRC(e4181ba2) SHA1(1f77d1867c6f566be98645fc252a01108f412c96) ) // banked + ROM_LOAD("u_3c.u3", 0x8000, 0x8000, CRC(fb7c38ae) SHA1(a1aa7637705052cb4eec92644dc79aee7ba4d77c) ) ROM_END @@ -139,5 +151,5 @@ ROM_END Drivers ******************************************************************************/ -/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ -CONS( 1988, fphantom, 0, 0, fphantom, fphantom, driver_device, 0, "Fidelity Electronics", "Phantom (Fidelity)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) +/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY, FULLNAME, FLAGS */ +CONS( 1988, fphantom, 0, 0, fphantom, fphantom, phantom_state, fphantom, "Fidelity Electronics", "Phantom (Fidelity)", MACHINE_NOT_WORKING | MACHINE_MECHANICAL | MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )