diff options
Diffstat (limited to 'src/mame/drivers/unichamp.cpp')
-rw-r--r-- | src/mame/drivers/unichamp.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/mame/drivers/unichamp.cpp b/src/mame/drivers/unichamp.cpp index abb021d6cf3..c6f23d02f62 100644 --- a/src/mame/drivers/unichamp.cpp +++ b/src/mame/drivers/unichamp.cpp @@ -71,8 +71,8 @@ public: DECLARE_READ8_MEMBER(bext_r); - DECLARE_READ16_MEMBER(unichamp_gicram_r); - DECLARE_WRITE16_MEMBER(unichamp_gicram_w); + DECLARE_READ8_MEMBER(unichamp_gicram_r); + DECLARE_WRITE8_MEMBER(unichamp_gicram_w); DECLARE_READ16_MEMBER(unichamp_trapl_r); DECLARE_WRITE16_MEMBER(unichamp_trapl_w); @@ -104,7 +104,7 @@ PALETTE_INIT_MEMBER(unichamp_state, unichamp) static ADDRESS_MAP_START( unichamp_mem, AS_PROGRAM, 16, unichamp_state ) ADDRESS_MAP_GLOBAL_MASK(0x1FFF) //B13/B14/B15 are grounded! - AM_RANGE(0x0000, 0x00FF) AM_READWRITE(unichamp_gicram_r, unichamp_gicram_w) + AM_RANGE(0x0000, 0x00FF) AM_READWRITE8(unichamp_gicram_r, unichamp_gicram_w, 0x00ff) AM_RANGE(0x0100, 0x07FF) AM_READWRITE(unichamp_trapl_r, unichamp_trapl_w) AM_RANGE(0x0800, 0x17FF) AM_ROM AM_REGION("maincpu", 0x0800 << 1) // Carts and EXE ROM, 10-bits wide ADDRESS_MAP_END @@ -152,13 +152,10 @@ READ8_MEMBER(unichamp_state::bext_r) DRIVER_INIT_MEMBER(unichamp_state,unichamp) { - m_gic->set_shared_memory(m_ram); } void unichamp_state::machine_start() { - m_gic->set_shared_memory(m_ram); - if (m_cart->exists()){ //flip endians in more "this surely exists in MAME" way? //NOTE The unichamp roms have the same endianness as intv on disk and in memory @@ -195,7 +192,7 @@ void unichamp_state::machine_reset() m_maincpu->set_input_line_vector(CP1610_INT_INTR, 0x0804);//not used anyway /* Set initial PC */ - m_maincpu->set_state_int(CP1610_R7, 0x0800); + m_maincpu->set_state_int(cp1610_cpu_device::CP1610_R7, 0x0800); } @@ -204,14 +201,14 @@ uint32_t unichamp_state::screen_update_unichamp(screen_device &screen, bitmap_in return m_gic->screen_update(screen, bitmap, cliprect); } -READ16_MEMBER( unichamp_state::unichamp_gicram_r ) +READ8_MEMBER( unichamp_state::unichamp_gicram_r ) { - return (int)m_ram[offset]; + return m_ram[offset]; } -WRITE16_MEMBER( unichamp_state::unichamp_gicram_w ) +WRITE8_MEMBER( unichamp_state::unichamp_gicram_w ) { - m_ram[offset] = data&0xff; + m_ram[offset] = data; } READ16_MEMBER( unichamp_state::unichamp_trapl_r ) @@ -225,7 +222,7 @@ WRITE16_MEMBER( unichamp_state::unichamp_trapl_w ) logerror("trapl_w(%x) = %x\n",offset,data); } -static MACHINE_CONFIG_START( unichamp, unichamp_state ) +static MACHINE_CONFIG_START( unichamp ) /* basic machine hardware */ //The CPU is really clocked this way: @@ -256,7 +253,7 @@ static MACHINE_CONFIG_START( unichamp, unichamp_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_GIC_ADD( "gic", XTAL_3_579545MHz, "screen" ) + MCFG_GIC_ADD( "gic", XTAL_3_579545MHz, "screen", READ8(unichamp_state, unichamp_gicram_r) ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) /* cartridge */ @@ -280,4 +277,4 @@ ROM_START(unichamp) ROM_END -CONS( 1977, unichamp, 0, 0, unichamp, unichamp, unichamp_state, unichamp, "Unisonic", "Champion 2711", 0/*MACHINE_IMPERFECT_GRAPHICS*/) +CONS( 1977, unichamp, 0, 0, unichamp, unichamp, unichamp_state, unichamp, "Unisonic", "Champion 2711", 0/*MACHINE_IMPERFECT_GRAPHICS*/ ) |