diff --git a/src/mame/drivers/pgm.cpp b/src/mame/drivers/pgm.cpp index 9cb598b0928..75d01ac28cb 100644 --- a/src/mame/drivers/pgm.cpp +++ b/src/mame/drivers/pgm.cpp @@ -501,8 +501,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(pgm_state::pgm_interrupt) MACHINE_START_MEMBER(pgm_state,pgm) { // machine().base_datetime(m_systime); - - m_ics = machine().device("ics"); } MACHINE_RESET_MEMBER(pgm_state,pgm) diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h index 439dbf664b8..926922d178f 100644 --- a/src/mame/includes/pgm.h +++ b/src/mame/includes/pgm.h @@ -24,20 +24,22 @@ class pgm_state : public driver_device { public: pgm_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_videoregs(*this, "videoregs"), - m_videoram(*this, "videoram"), - m_z80_mainram(*this, "z80_mainram"), - m_mainram(*this, "sram"), - m_maincpu(*this, "maincpu"), - m_soundcpu(*this, "soundcpu"), - m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette"), - m_soundlatch(*this, "soundlatch"), - m_soundlatch3(*this, "soundlatch3") - { - m_irq4_disabled = 0; - } + : driver_device(mconfig, type, tag) + , m_videoregs(*this, "videoregs") + , m_videoram(*this, "videoram") + , m_z80_mainram(*this, "z80_mainram") + , m_mainram(*this, "sram") + , m_maincpu(*this, "maincpu") + , m_soundcpu(*this, "soundcpu") + , m_gfxdecode(*this, "gfxdecode") + , m_palette(*this, "palette") + , m_soundlatch(*this, "soundlatch") + , m_soundlatch3(*this, "soundlatch3") + , m_ics(*this, "ics") + , m_bdata(*this, "sprmask") + { + m_irq4_disabled = 0; + } /* memory pointers */ required_shared_ptr m_videoregs; @@ -52,10 +54,8 @@ public: std::unique_ptr m_spritebufferram; // buffered spriteram /* video-related */ - tilemap_t *m_bg_tilemap; + tilemap_t *m_bg_tilemap; tilemap_t *m_tx_tilemap; - uint16_t *m_sprite_temp_render; - bitmap_rgb32 m_tmppgmbitmap; /* devices */ required_device m_maincpu; @@ -64,11 +64,10 @@ public: required_device m_palette; required_device m_soundlatch; required_device m_soundlatch3; - device_t *m_ics; + required_device m_ics; /* used by rendering */ - uint8_t *m_bdata; - size_t m_bdatasize; + required_region_ptr m_bdata; int m_aoffset; int m_boffset; diff --git a/src/mame/video/pgm.cpp b/src/mame/video/pgm.cpp index 4fde104b15c..f655e48c1b4 100644 --- a/src/mame/video/pgm.cpp +++ b/src/mame/video/pgm.cpp @@ -94,7 +94,7 @@ void pgm_state::draw_sprite_line( int wide, uint16_t* dest, uint8_t* destpri, in { int x; - msk = ((m_bdata[(m_boffset + 1) & m_bdatasize] << 8) |( m_bdata[(m_boffset + 0) & m_bdatasize] << 0)); + msk = ((m_bdata[(m_boffset + 1) & m_bdata.mask()] << 8) |( m_bdata[(m_boffset + 0) & m_bdata.mask()] << 0)); for (x = 0; x < 16; x++) { @@ -177,8 +177,8 @@ void pgm_state::draw_sprite_new_zoomed( int wide, int high, int xpos, int ypos, int xcnt = 0; - m_aoffset = (m_bdata[(m_boffset + 3) & m_bdatasize] << 24) | (m_bdata[(m_boffset + 2) & m_bdatasize] << 16) | - (m_bdata[(m_boffset + 1) & m_bdatasize] << 8) | (m_bdata[(m_boffset + 0) & m_bdatasize] << 0); + m_aoffset = (m_bdata[(m_boffset + 3) & m_bdata.mask()] << 24) | (m_bdata[(m_boffset + 2) & m_bdata.mask()] << 16) | + (m_bdata[(m_boffset + 1) & m_bdata.mask()] << 8) | (m_bdata[(m_boffset + 0) & m_bdata.mask()] << 0); m_aoffset = m_aoffset >> 2; m_aoffset *= 3; m_boffset+=4; @@ -344,7 +344,7 @@ void pgm_state::draw_sprite_line_basic( int wide, uint16_t* dest, uint8_t* destp { int x; - msk = ((m_bdata[(m_boffset + 1) & m_bdatasize] << 8) |( m_bdata[(m_boffset + 0) & m_bdatasize] << 0)); + msk = ((m_bdata[(m_boffset + 1) & m_bdata.mask()] << 8) |( m_bdata[(m_boffset + 0) & m_bdata.mask()] << 0)); for (x = 0; x < 16; x++) { @@ -386,7 +386,7 @@ void pgm_state::draw_sprite_line_basic( int wide, uint16_t* dest, uint8_t* destp { int x; - msk = ((m_bdata[(m_boffset + 1) & m_bdatasize] << 8) |( m_bdata[(m_boffset + 0) & m_bdatasize] << 0)); + msk = ((m_bdata[(m_boffset + 1) & m_bdata.mask()] << 8) |( m_bdata[(m_boffset + 0) & m_bdata.mask()] << 0)); for (x = 0; x < 16; x++) { @@ -437,8 +437,8 @@ void pgm_state::draw_sprite_new_basic( int wide, int high, int xpos, int ypos, i uint8_t* destpri; int ycntdraw; - m_aoffset = (m_bdata[(m_boffset + 3) & m_bdatasize] << 24) | (m_bdata[(m_boffset + 2) & m_bdatasize] << 16) | - (m_bdata[(m_boffset + 1) & m_bdatasize] << 8) | (m_bdata[(m_boffset + 0) & m_bdatasize] << 0); + m_aoffset = (m_bdata[(m_boffset + 3) & m_bdata.mask()] << 24) | (m_bdata[(m_boffset + 2) & m_bdata.mask()] << 16) | + (m_bdata[(m_boffset + 1) & m_bdata.mask()] << 8) | (m_bdata[(m_boffset + 0) & m_bdata.mask()] << 0); m_aoffset = m_aoffset >> 2; m_aoffset *= 3; m_boffset+=4; @@ -615,8 +615,6 @@ VIDEO_START_MEMBER(pgm_state,pgm) { int i; - m_bdata = memregion("sprmask")->base(); - m_bdatasize = memregion("sprmask")->bytes() - 1; m_aoffset = 0; m_boffset = 0;