mirror of
https://github.com/holub/mame
synced 2025-10-07 01:16:22 +03:00
(MESS) gb.c: Reduce tagmap lookups. (nw)
This commit is contained in:
parent
4f1cb65d3e
commit
596b902d76
@ -52,7 +52,8 @@ public:
|
|||||||
m_region_maincpu(*this, "maincpu"),
|
m_region_maincpu(*this, "maincpu"),
|
||||||
m_rambank(*this, "cgb_ram"),
|
m_rambank(*this, "cgb_ram"),
|
||||||
m_inputs(*this, "INPUTS"),
|
m_inputs(*this, "INPUTS"),
|
||||||
m_ram(*this, RAM_TAG) { }
|
m_ram(*this, RAM_TAG),
|
||||||
|
m_lcd(*this, "lcd") { }
|
||||||
|
|
||||||
//gb_state driver_data;
|
//gb_state driver_data;
|
||||||
UINT8 m_gb_io[0x10];
|
UINT8 m_gb_io[0x10];
|
||||||
@ -124,6 +125,7 @@ protected:
|
|||||||
optional_memory_bank m_rambank; // cgb
|
optional_memory_bank m_rambank; // cgb
|
||||||
required_ioport m_inputs;
|
required_ioport m_inputs;
|
||||||
optional_device<ram_device> m_ram;
|
optional_device<ram_device> m_ram;
|
||||||
|
required_device<gb_lcd_device> m_lcd;
|
||||||
|
|
||||||
void gb_timer_increment();
|
void gb_timer_increment();
|
||||||
void gb_timer_check_irq();
|
void gb_timer_check_irq();
|
||||||
|
@ -207,8 +207,9 @@ MACHINE_START_MEMBER(gb_state,sgb)
|
|||||||
save_gb_base();
|
save_gb_base();
|
||||||
save_sgb_only();
|
save_sgb_only();
|
||||||
|
|
||||||
if (m_cartslot && m_cartslot->get_sgb_hack())
|
if (m_cartslot && m_cartslot->get_sgb_hack()) {
|
||||||
machine().device<sgb_lcd_device>("lcd")->set_sgb_hack(TRUE);
|
dynamic_cast<sgb_lcd_device*>(m_lcd.target())->set_sgb_hack(TRUE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MACHINE_RESET_MEMBER(gb_state,gb)
|
MACHINE_RESET_MEMBER(gb_state,gb)
|
||||||
@ -346,7 +347,7 @@ WRITE8_MEMBER(gb_state::gb_io2_w)
|
|||||||
//printf("here again?\n");
|
//printf("here again?\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
machine().device<gb_lcd_device>("lcd")->video_w(space, offset, data);
|
m_lcd->video_w(space, offset, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MAME_DEBUG
|
#ifdef MAME_DEBUG
|
||||||
@ -454,7 +455,7 @@ WRITE8_MEMBER(gb_state::sgb_io_w)
|
|||||||
m_sgb_controller_mode = 2;
|
m_sgb_controller_mode = 2;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
machine().device<sgb_lcd_device>("lcd")->sgb_io_write_pal(sgb_data[0] >> 3, &sgb_data[0]);
|
dynamic_cast<sgb_lcd_device*>(m_lcd.target())->sgb_io_write_pal(sgb_data[0] >> 3, &sgb_data[0]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
m_sgb_start = 0;
|
m_sgb_start = 0;
|
||||||
@ -632,7 +633,7 @@ WRITE8_MEMBER(gb_state::gbc_io2_w)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
machine().device<cgb_lcd_device>("lcd")->video_w(space, offset, data);
|
m_lcd->video_w(space, offset, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
READ8_MEMBER(gb_state::gbc_io2_r)
|
READ8_MEMBER(gb_state::gbc_io2_r)
|
||||||
@ -648,7 +649,7 @@ READ8_MEMBER(gb_state::gbc_io2_r)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return machine().device<cgb_lcd_device>("lcd")->video_r(space, offset);
|
return m_lcd->video_r(space, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -718,7 +719,7 @@ READ8_MEMBER(megaduck_state::megaduck_video_r)
|
|||||||
{
|
{
|
||||||
offset ^= 0x0C;
|
offset ^= 0x0C;
|
||||||
}
|
}
|
||||||
data = machine().device<gb_lcd_device>("lcd")->video_r(space, offset);
|
data = m_lcd->video_r(space, offset);
|
||||||
if ( offset )
|
if ( offset )
|
||||||
return data;
|
return data;
|
||||||
return BITSWAP8(data,7,0,5,4,6,3,2,1);
|
return BITSWAP8(data,7,0,5,4,6,3,2,1);
|
||||||
@ -734,7 +735,7 @@ WRITE8_MEMBER(megaduck_state::megaduck_video_w)
|
|||||||
{
|
{
|
||||||
offset ^= 0x0C;
|
offset ^= 0x0C;
|
||||||
}
|
}
|
||||||
machine().device<gb_lcd_device>("lcd")->video_w(space, offset, data);
|
m_lcd->video_w(space, offset, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Map megaduck audio offset to game boy audio offsets */
|
/* Map megaduck audio offset to game boy audio offsets */
|
||||||
|
Loading…
Reference in New Issue
Block a user