segas24.cpp: Eliminate machine().device (nw)

This commit is contained in:
AJR 2018-06-05 08:54:46 -04:00
parent c50981a046
commit cb1e35223f
3 changed files with 28 additions and 29 deletions

View File

@ -686,13 +686,13 @@ READ8_MEMBER( segas24_state::frc_mode_r )
WRITE8_MEMBER( segas24_state::frc_mode_w )
{
/* reset frc if a write happens here */
frc_cnt_timer->reset();
m_frc_cnt_timer->reset();
frc_mode = data & 1;
}
READ8_MEMBER( segas24_state::frc_r )
{
int32_t result = (frc_cnt_timer->time_elapsed() * (frc_mode ? FRC_CLOCK_MODE1 : FRC_CLOCK_MODE0).dvalue()).as_double();
int32_t result = (m_frc_cnt_timer->time_elapsed() * (frc_mode ? FRC_CLOCK_MODE1 : FRC_CLOCK_MODE0).dvalue()).as_double();
result %= ((frc_mode) ? 0x67 : 0x100);
@ -786,21 +786,21 @@ void segas24_state::irq_timer_start(int old_tmode)
if(old_tmode) {
irq_tval++;
if(irq_tval == 0x1000)
irq_timer->adjust(attotime::zero);
m_irq_timer->adjust(attotime::zero);
else
irq_timer->enable(false);
m_irq_timer->enable(false);
}
break;
case 1: {
int count = 0x1000 - irq_tval;
irq_timer->adjust(attotime::from_hz(HSYNC_CLOCK)*count);
m_irq_timer->adjust(attotime::from_hz(HSYNC_CLOCK)*count);
break;
}
case 2:
fatalerror("segas24_state::irq_timer_start - case 2\n");
case 3: {
int count = 0x1000 - irq_tval;
irq_timer->adjust(attotime::from_hz(TIMER_CLOCK)*count);
m_irq_timer->adjust(attotime::from_hz(TIMER_CLOCK)*count);
break;
}
}
@ -857,8 +857,6 @@ void segas24_state::irq_init()
irq_timer_pend1 = 0;
irq_vblank = 0;
irq_sprite = 0;
irq_timer = machine().device<timer_device>("irq_timer");
irq_timer_clear = machine().device<timer_device>("irq_timer_clear");
irq_tval = 0;
irq_synctime = attotime::zero;
irq_vsynctime = attotime::zero;
@ -940,7 +938,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(segas24_state::irq_vbl)
else
return;
irq_timer_clear->adjust(attotime::from_hz(HSYNC_CLOCK));
m_irq_timer_clear->adjust(attotime::from_hz(HSYNC_CLOCK));
mask = 1 << irq;
@ -1192,10 +1190,6 @@ void segas24_state::machine_start()
membank("bank1")->configure_entries(0, 16, usr1, 0x40000);
membank("bank2")->configure_entries(0, 16, usr1, 0x40000);
}
vtile = machine().device<segas24_tile_device>("tile");
vsprite = machine().device<segas24_sprite_device>("sprite");
vmixer = machine().device<segas24_mixer_device>("mixer");
}
void segas24_state::machine_reset()
@ -1208,8 +1202,7 @@ void segas24_state::machine_reset()
irq_init();
mlatch = 0x00;
frc_mode = 0;
frc_cnt_timer = machine().device<timer_device>("frc_timer");
frc_cnt_timer->reset();
m_frc_cnt_timer->reset();
}
/*************************************

View File

@ -22,6 +22,12 @@ public:
, m_palette(*this, "palette")
, m_generic_paletteram_16(*this, "paletteram")
, m_romboard(*this, "romboard")
, m_irq_timer(*this, "irq_timer")
, m_irq_timer_clear(*this, "irq_timer_clear")
, m_frc_cnt_timer(*this, "frc_timer")
, m_vtile(*this, "tile")
, m_vsprite(*this, "sprite")
, m_vmixer(*this, "mixer")
, m_gground_hack_timer(nullptr)
, m_p1(*this, "P1")
, m_p2(*this, "P2")
@ -72,19 +78,19 @@ public:
int irq_vblank;
int irq_sprite;
attotime irq_synctime, irq_vsynctime;
timer_device *irq_timer;
timer_device *irq_timer_clear;
required_device<timer_device> m_irq_timer;
required_device<timer_device> m_irq_timer_clear;
//timer_device *irq_frc;
timer_device *frc_cnt_timer;
required_device<timer_device> m_frc_cnt_timer;
uint8_t frc_mode;
bool m_cnt1;
uint16_t *shared_ram;
segas24_tile_device *vtile;
segas24_sprite_device *vsprite;
segas24_mixer_device *vmixer;
required_device<segas24_tile_device> m_vtile;
required_device<segas24_sprite_device> m_vsprite;
required_device<segas24_mixer_device> m_vmixer;
DECLARE_WRITE_LINE_MEMBER(irq_ym);
DECLARE_READ16_MEMBER( sys16_paletteram_r );

View File

@ -15,24 +15,24 @@
namespace {
struct layer_sort {
layer_sort(segas24_mixer_device *_mixer) { mixer = _mixer; }
layer_sort(segas24_mixer_device &_mixer) : mixer(_mixer) { }
bool operator()(int l1, int l2) {
static const int default_pri[12] = { 0, 1, 2, 3, 4, 5, 6, 7, -4, -3, -2, -1 };
int p1 = mixer->get_reg(l1) & 7;
int p2 = mixer->get_reg(l2) & 7;
int p1 = mixer.get_reg(l1) & 7;
int p2 = mixer.get_reg(l2) & 7;
if(p1 != p2)
return p1 - p2 < 0;
return default_pri[l2] - default_pri[l1] < 0;
}
segas24_mixer_device *mixer;
segas24_mixer_device &mixer;
};
}
uint32_t segas24_state::screen_update_system24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if(vmixer->get_reg(13) & 1) {
if(m_vmixer->get_reg(13) & 1) {
bitmap.fill(m_palette->black_pen());
return 0;
}
@ -45,18 +45,18 @@ uint32_t segas24_state::screen_update_system24(screen_device &screen, bitmap_ind
for(int i=0; i<12; i++)
order[i] = i;
std::sort(order.begin(), order.end(), layer_sort(vmixer));
std::sort(order.begin(), order.end(), layer_sort(*m_vmixer));
int spri[4];
int level = 0;
for(int i=0; i<12; i++)
if(order[i] < 8)
vtile->draw(screen, bitmap, cliprect, order[i], level, 0);
m_vtile->draw(screen, bitmap, cliprect, order[i], level, 0);
else {
spri[order[i]-8] = level;
level++;
}
vsprite->draw(bitmap, cliprect, screen.priority(), spri);
m_vsprite->draw(bitmap, cliprect, screen.priority(), spri);
return 0;
}