summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/unichamp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/unichamp.cpp')
-rw-r--r--src/mame/drivers/unichamp.cpp25
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*/ )