diff options
-rw-r--r-- | src/mame/drivers/argus.cpp | 103 | ||||
-rw-r--r-- | src/mame/includes/argus.h | 216 | ||||
-rw-r--r-- | src/mame/video/argus.cpp | 174 |
3 files changed, 254 insertions, 239 deletions
diff --git a/src/mame/drivers/argus.cpp b/src/mame/drivers/argus.cpp index c1615f5e57b..ba98379d5c0 100644 --- a/src/mame/drivers/argus.cpp +++ b/src/mame/drivers/argus.cpp @@ -144,7 +144,7 @@ Known issues : #include "speaker.h" -void argus_state::machine_start() +void argus_common_state::machine_start() { membank("mainbank")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); } @@ -155,7 +155,7 @@ void argus_state::machine_start() ***************************************************************************/ -TIMER_DEVICE_CALLBACK_MEMBER(argus_state::scanline) +TIMER_DEVICE_CALLBACK_MEMBER(argus_common_state::scanline) { int scanline = param; @@ -166,7 +166,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(argus_state::scanline) m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xcf); /* Z80 - RST 08h */ } -TIMER_DEVICE_CALLBACK_MEMBER(argus_state::butasan_scanline) +TIMER_DEVICE_CALLBACK_MEMBER(butasan_state::scanline) { int scanline = param; @@ -184,7 +184,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(argus_state::butasan_scanline) ***************************************************************************/ -WRITE8_MEMBER(argus_state::bankselect_w) +void argus_common_state::bankselect_w(u8 data) { membank("mainbank")->set_entry(data & 7); /* Select 8 banks of 16k */ } @@ -212,8 +212,8 @@ void argus_state::argus_map(address_map &map) map(0xc302, 0xc303).ram().share("bg0_scrolly"); map(0xc308, 0xc309).ram().share("bg1_scrollx"); map(0xc30a, 0xc30b).ram().share("bg1_scrolly"); - map(0xc30c, 0xc30c).w(FUNC(argus_state::argus_bg_status_w)); - map(0xc400, 0xcfff).ram().w(FUNC(argus_state::argus_paletteram_w)).share("paletteram"); + map(0xc30c, 0xc30c).w(FUNC(argus_state::bg_status_w)); + map(0xc400, 0xcfff).ram().w(FUNC(argus_state::paletteram_w)).share("paletteram"); map(0xd000, 0xd7ff).ram().w(FUNC(argus_state::txram_w)).share("txram"); map(0xd800, 0xdfff).ram().w(FUNC(argus_state::bg1ram_w)).share("bg1ram"); map(0xe000, 0xf1ff).ram(); @@ -221,7 +221,7 @@ void argus_state::argus_map(address_map &map) map(0xf800, 0xffff).ram(); } -void argus_state::valtric_map(address_map &map) +void valtric_state::valtric_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0xbfff).bankr("mainbank"); @@ -231,22 +231,22 @@ void argus_state::valtric_map(address_map &map) map(0xc003, 0xc003).portr("DSW1"); map(0xc004, 0xc004).portr("DSW2"); map(0xc200, 0xc200).w("soundlatch", FUNC(generic_latch_8_device::write)); - map(0xc201, 0xc201).w(FUNC(argus_state::flipscreen_w)); - map(0xc202, 0xc202).w(FUNC(argus_state::bankselect_w)); - map(0xc300, 0xc300).w(FUNC(argus_state::valtric_unknown_w)); + map(0xc201, 0xc201).w(FUNC(valtric_state::flipscreen_w)); + map(0xc202, 0xc202).w(FUNC(valtric_state::bankselect_w)); + map(0xc300, 0xc300).w(FUNC(valtric_state::unknown_w)); map(0xc308, 0xc309).ram().share("bg1_scrollx"); map(0xc30a, 0xc30b).ram().share("bg1_scrolly"); - map(0xc30c, 0xc30c).w(FUNC(argus_state::valtric_bg_status_w)); - map(0xc30d, 0xc30d).w(FUNC(argus_state::valtric_mosaic_w)); - map(0xc400, 0xcfff).ram().w(FUNC(argus_state::valtric_paletteram_w)).share("paletteram"); - map(0xd000, 0xd7ff).ram().w(FUNC(argus_state::txram_w)).share("txram"); - map(0xd800, 0xdfff).ram().w(FUNC(argus_state::bg1ram_w)).share("bg1ram"); + map(0xc30c, 0xc30c).w(FUNC(valtric_state::bg_status_w)); + map(0xc30d, 0xc30d).w(FUNC(valtric_state::mosaic_w)); + map(0xc400, 0xcfff).ram().w(FUNC(valtric_state::paletteram_w)).share("paletteram"); + map(0xd000, 0xd7ff).ram().w(FUNC(valtric_state::txram_w)).share("txram"); + map(0xd800, 0xdfff).ram().w(FUNC(valtric_state::bg1ram_w)).share("bg1ram"); map(0xe000, 0xf1ff).ram(); map(0xf200, 0xf7ff).ram().share("spriteram"); map(0xf800, 0xffff).ram(); } -void argus_state::butasan_map(address_map &map) +void butasan_state::butasan_map(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0xbfff).bankr("mainbank"); @@ -255,47 +255,47 @@ void argus_state::butasan_map(address_map &map) map(0xc002, 0xc002).portr("P2"); map(0xc003, 0xc003).portr("DSW1"); map(0xc004, 0xc004).portr("DSW2"); - map(0xc100, 0xc100).w(FUNC(argus_state::butasan_unknown_w)); + map(0xc100, 0xc100).w(FUNC(butasan_state::unknown_w)); map(0xc200, 0xc200).w("soundlatch", FUNC(generic_latch_8_device::write)); - map(0xc201, 0xc201).w(FUNC(argus_state::flipscreen_w)); - map(0xc202, 0xc202).w(FUNC(argus_state::bankselect_w)); - map(0xc203, 0xc203).w(FUNC(argus_state::butasan_pageselect_w)); + map(0xc201, 0xc201).w(FUNC(butasan_state::flipscreen_w)); + map(0xc202, 0xc202).w(FUNC(butasan_state::bankselect_w)); + map(0xc203, 0xc203).w(FUNC(butasan_state::pageselect_w)); map(0xc300, 0xc301).ram().share("bg0_scrollx"); map(0xc302, 0xc303).ram().share("bg0_scrolly"); - map(0xc304, 0xc304).w(FUNC(argus_state::butasan_bg0_status_w)); + map(0xc304, 0xc304).w(FUNC(butasan_state::bg0_status_w)); map(0xc308, 0xc309).ram().share("bg1_scrollx"); map(0xc30a, 0xc30b).ram().share("bg1_scrolly"); - map(0xc30c, 0xc30c).w(FUNC(argus_state::butasan_bg1_status_w)); - map(0xc400, 0xc7ff).ram().w(FUNC(argus_state::butasan_bg1ram_w)).share("butasan_bg1ram"); - map(0xc800, 0xcfff).ram().w(FUNC(argus_state::butasan_paletteram_w)).share("paletteram"); - map(0xd000, 0xdfff).rw(FUNC(argus_state::butasan_pagedram_r), FUNC(argus_state::butasan_pagedram_w)); + map(0xc30c, 0xc30c).w(FUNC(butasan_state::bg1_status_w)); + map(0xc400, 0xc7ff).ram().w(FUNC(butasan_state::bg1ram_w)).share("butasan_bg1ram"); + map(0xc800, 0xcfff).ram().w(FUNC(butasan_state::paletteram_w)).share("paletteram"); + map(0xd000, 0xdfff).rw(FUNC(butasan_state::pagedram_r), FUNC(butasan_state::pagedram_w)); map(0xe000, 0xefff).ram(); map(0xf000, 0xf67f).ram().share("spriteram"); map(0xf680, 0xffff).ram(); } -void argus_state::sound_map_a(address_map &map) +void argus_common_state::sound_map_a(address_map &map) { map(0x0000, 0x7fff).rom(); map(0x8000, 0x87ff).ram(); map(0xc000, 0xc000).r("soundlatch", FUNC(generic_latch_8_device::read)); } -void argus_state::sound_map_b(address_map &map) +void argus_common_state::sound_map_b(address_map &map) { map(0x0000, 0xbfff).rom(); map(0xc000, 0xc7ff).ram(); map(0xe000, 0xe000).r("soundlatch", FUNC(generic_latch_8_device::read)); } -void argus_state::sound_portmap_1(address_map &map) +void argus_common_state::sound_portmap_1(address_map &map) { map.global_mask(0xff); map(0x00, 0x01).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); map(0x80, 0x81).noprw(); // second ym2203 is not implemented on argus but still writes here } -void argus_state::sound_portmap_2(address_map &map) +void argus_common_state::sound_portmap_2(address_map &map) { map.global_mask(0xff); map(0x00, 0x01).rw("ym1", FUNC(ym2203_device::read), FUNC(ym2203_device::write)); @@ -495,16 +495,13 @@ void argus_state::argus(machine_config &config) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is referred to psychic5 driver */ m_screen->set_size(32*16, 32*16); m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); - m_screen->set_screen_update(FUNC(argus_state::screen_update_argus)); + m_screen->set_screen_update(FUNC(argus_state::screen_update)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_argus); PALETTE(config, m_palette).set_entries(896); JALECO_BLEND(config, m_blend, 0); - MCFG_VIDEO_START_OVERRIDE(argus_state,argus) - MCFG_VIDEO_RESET_OVERRIDE(argus_state,argus) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -518,16 +515,16 @@ void argus_state::argus(machine_config &config) ym1.add_route(3, "mono", 0.50); } -void argus_state::valtric(machine_config &config) +void valtric_state::valtric(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 5000000); /* 5 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::valtric_map); - TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::scanline), "screen", 0, 1); + m_maincpu->set_addrmap(AS_PROGRAM, &valtric_state::valtric_map); + TIMER(config, "scantimer").configure_scanline(FUNC(valtric_state::scanline), "screen", 0, 1); Z80(config, m_audiocpu, 5000000); - m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_a); - m_audiocpu->set_addrmap(AS_IO, &argus_state::sound_portmap_2); + m_audiocpu->set_addrmap(AS_PROGRAM, &valtric_state::sound_map_a); + m_audiocpu->set_addrmap(AS_IO, &valtric_state::sound_portmap_2); config.m_minimum_quantum = attotime::from_hz(600); @@ -537,16 +534,13 @@ void argus_state::valtric(machine_config &config) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is referred to psychic5 driver */ m_screen->set_size(32*16, 32*16); m_screen->set_visarea(0*8, 32*8-1, 2*8, 30*8-1); - m_screen->set_screen_update(FUNC(argus_state::screen_update_valtric)); + m_screen->set_screen_update(FUNC(valtric_state::screen_update)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_valtric); PALETTE(config, m_palette).set_entries(768); JALECO_BLEND(config, m_blend, 0); - MCFG_VIDEO_START_OVERRIDE(argus_state,valtric) - MCFG_VIDEO_RESET_OVERRIDE(argus_state,valtric) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -566,16 +560,16 @@ void argus_state::valtric(machine_config &config) ym2.add_route(3, "mono", 0.50); } -void argus_state::butasan(machine_config &config) +void butasan_state::butasan(machine_config &config) { /* basic machine hardware */ Z80(config, m_maincpu, 5000000); /* 5 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &argus_state::butasan_map); - TIMER(config, "scantimer").configure_scanline(FUNC(argus_state::butasan_scanline), "screen", 0, 1); + m_maincpu->set_addrmap(AS_PROGRAM, &butasan_state::butasan_map); + TIMER(config, "scantimer").configure_scanline(FUNC(butasan_state::scanline), "screen", 0, 1); Z80(config, m_audiocpu, 5000000); - m_audiocpu->set_addrmap(AS_PROGRAM, &argus_state::sound_map_b); - m_audiocpu->set_addrmap(AS_IO, &argus_state::sound_portmap_2); + m_audiocpu->set_addrmap(AS_PROGRAM, &butasan_state::sound_map_b); + m_audiocpu->set_addrmap(AS_IO, &butasan_state::sound_portmap_2); config.m_minimum_quantum = attotime::from_hz(600); @@ -585,16 +579,13 @@ void argus_state::butasan(machine_config &config) m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); /* This value is taken from psychic5 driver */ m_screen->set_size(32*16, 32*16); m_screen->set_visarea(0*8, 32*8-1, 1*8, 31*8-1); - m_screen->set_screen_update(FUNC(argus_state::screen_update_butasan)); + m_screen->set_screen_update(FUNC(butasan_state::screen_update)); GFXDECODE(config, m_gfxdecode, m_palette, gfx_butasan); PALETTE(config, m_palette).set_entries(768); JALECO_BLEND(config, m_blend, 0); - MCFG_VIDEO_START_OVERRIDE(argus_state,butasan) - MCFG_VIDEO_RESET_OVERRIDE(argus_state,butasan) - /* sound hardware */ SPEAKER(config, "mono").front_center(); @@ -751,8 +742,8 @@ ROM_START( butasanj ) ROM_END -/* ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME ) */ -GAME( 1986, argus, 0, argus, argus, argus_state, empty_init, ROT270, "NMK (Jaleco license)", "Argus", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) -GAME( 1986, valtric, 0, valtric, valtric, argus_state, empty_init, ROT270, "NMK (Jaleco license)", "Valtric", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, butasan, 0, butasan, butasan, argus_state, empty_init, ROT0, "NMK (Jaleco license)", "Butasan - Pig's & Bomber's (Japan, English)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) -GAME( 1987, butasanj, butasan, butasan, butasan, argus_state, empty_init, ROT0, "NMK (Jaleco license)", "Butasan (Japan, Japanese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +/* ( YEAR NAME PARENT MACHINE INPUT STATE INIT MONITOR COMPANY FULLNAME ) */ +GAME( 1986, argus, 0, argus, argus, argus_state, empty_init, ROT270, "NMK (Jaleco license)", "Argus", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE | MACHINE_NO_COCKTAIL ) +GAME( 1986, valtric, 0, valtric, valtric, valtric_state, empty_init, ROT270, "NMK (Jaleco license)", "Valtric", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, butasan, 0, butasan, butasan, butasan_state, empty_init, ROT0, "NMK (Jaleco license)", "Butasan - Pig's & Bomber's (Japan, English)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) +GAME( 1987, butasanj, butasan, butasan, butasan, butasan_state, empty_init, ROT0, "NMK (Jaleco license)", "Butasan (Japan, Japanese)", MACHINE_IMPERFECT_GRAPHICS | MACHINE_SUPPORTS_SAVE ) diff --git a/src/mame/includes/argus.h b/src/mame/includes/argus.h index 83aac1282eb..de288be53f2 100644 --- a/src/mame/includes/argus.h +++ b/src/mame/includes/argus.h @@ -7,10 +7,10 @@ #include "screen.h" #include "tilemap.h" -class argus_state : public driver_device +class argus_common_state : public driver_device { -public: - argus_state(const machine_config &mconfig, device_type type, const char *tag) +protected: + argus_common_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag) , m_maincpu(*this, "maincpu") , m_audiocpu(*this, "audiocpu") @@ -24,7 +24,6 @@ public: , m_txram(*this, "txram") , m_bg1ram(*this, "bg1ram") , m_spriteram(*this, "spriteram") - , m_butasan_bg1ram(*this, "butasan_bg1ram") , m_vrom(*this, "vrom%u", 1U) { } @@ -35,116 +34,153 @@ public: required_device<palette_device> m_palette; required_device<jaleco_blend_device> m_blend; - optional_shared_ptr_array<uint8_t, 2> m_bg_scrollx; - optional_shared_ptr_array<uint8_t, 2> m_bg_scrolly; - required_shared_ptr<uint8_t> m_paletteram; - optional_shared_ptr<uint8_t> m_txram; - optional_shared_ptr<uint8_t> m_bg1ram; - required_shared_ptr<uint8_t> m_spriteram; - optional_shared_ptr<uint8_t> m_butasan_bg1ram; - optional_region_ptr_array<uint8_t, 2> m_vrom; + optional_shared_ptr_array<u8, 2> m_bg_scrollx; + optional_shared_ptr_array<u8, 2> m_bg_scrolly; + required_shared_ptr<u8> m_paletteram; + optional_shared_ptr<u8> m_txram; + optional_shared_ptr<u8> m_bg1ram; + required_shared_ptr<u8> m_spriteram; + optional_region_ptr_array<u8, 2> m_vrom; // common - uint8_t m_bg_status; - uint8_t m_flipscreen; - uint16_t m_palette_intensity; + u8 m_bg_status; + u8 m_flipscreen; + u16 m_palette_intensity; // argus specific - uint8_t m_vrom_offset; - - // butasan specific - uint8_t *m_butasan_txram; - uint8_t *m_butasan_bg0ram; - uint8_t *m_butasan_bg0backram; - uint8_t *m_butasan_txbackram; - std::unique_ptr<uint8_t[]> m_butasan_pagedram[2]; - uint8_t m_butasan_page_latch; - uint8_t m_butasan_bg1_status; - uint8_t m_butasan_unknown; - - // valtric specific - uint8_t m_valtric_mosaic; - bitmap_rgb32 m_mosaicbitmap; - uint8_t m_valtric_unknown; - int m_mosaic; + u8 m_vrom_offset; tilemap_t *m_tx_tilemap; tilemap_t *m_bg_tilemap[2]; // common - DECLARE_WRITE8_MEMBER(bankselect_w); - DECLARE_WRITE8_MEMBER(valtric_mosaic_w); - DECLARE_WRITE8_MEMBER(txram_w); - DECLARE_WRITE8_MEMBER(bg1ram_w); - DECLARE_WRITE8_MEMBER(flipscreen_w); - - // argus specific - DECLARE_WRITE8_MEMBER(argus_bg_status_w); - DECLARE_WRITE8_MEMBER(argus_paletteram_w); - - // butasan specific - DECLARE_WRITE8_MEMBER(butasan_bg0_status_w); - DECLARE_WRITE8_MEMBER(butasan_bg1_status_w); - DECLARE_WRITE8_MEMBER(butasan_paletteram_w); - DECLARE_WRITE8_MEMBER(butasan_bg1ram_w); - DECLARE_WRITE8_MEMBER(butasan_pageselect_w); - DECLARE_READ8_MEMBER(butasan_pagedram_r); - DECLARE_WRITE8_MEMBER(butasan_pagedram_w); - DECLARE_WRITE8_MEMBER(butasan_unknown_w); - - // valtric specific - DECLARE_WRITE8_MEMBER(valtric_bg_status_w); - DECLARE_WRITE8_MEMBER(valtric_paletteram_w); - DECLARE_WRITE8_MEMBER(valtric_unknown_w); + void bankselect_w(u8 data); + void txram_w(offs_t offset, u8 data); + void bg1ram_w(offs_t offset, u8 data); + void flipscreen_w(u8 data); template<int Gfx> TILE_GET_INFO_MEMBER(get_tx_tile_info); - TILE_GET_INFO_MEMBER(argus_get_bg0_tile_info); - TILE_GET_INFO_MEMBER(argus_get_bg1_tile_info); - TILE_GET_INFO_MEMBER(valtric_get_bg_tile_info); - TILE_GET_INFO_MEMBER(butasan_get_tx_tile_info); - TILE_GET_INFO_MEMBER(butasan_get_bg0_tile_info); - TILE_GET_INFO_MEMBER(butasan_get_bg1_tile_info); - TILEMAP_MAPPER_MEMBER(butasan_bg_scan); - TILEMAP_MAPPER_MEMBER(butasan_tx_scan); virtual void machine_start() override; - DECLARE_VIDEO_START(argus); - DECLARE_VIDEO_RESET(argus); - DECLARE_VIDEO_START(valtric); - DECLARE_VIDEO_RESET(valtric); - DECLARE_VIDEO_START(butasan); - DECLARE_VIDEO_RESET(butasan); - - uint32_t screen_update_argus(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update_valtric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - uint32_t screen_update_butasan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(scanline); - TIMER_DEVICE_CALLBACK_MEMBER(butasan_scanline); void reset_common(); void change_palette(int color, int lo_offs, int hi_offs); void change_bg_palette(int color, int lo_offs, int hi_offs); void bg_setting(); - // argus specific - void argus_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority); - - // butasan specific - void butasan_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect); - void butasan_log_vram(); - - // valtric specific - void valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); - void valtric_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect); - void valtric(machine_config &config); - void argus(machine_config &config); - void butasan(machine_config &config); - void argus_map(address_map &map); - void butasan_map(address_map &map); void sound_map_a(address_map &map); void sound_map_b(address_map &map); void sound_portmap_1(address_map &map); void sound_portmap_2(address_map &map); +}; + +class argus_state : public argus_common_state +{ +public: + argus_state(const machine_config &mconfig, device_type type, const char *tag) + : argus_common_state(mconfig, type, tag) + { } + + void argus(machine_config &config); + +protected: + virtual void video_start() override; + virtual void video_reset() override; + +private: + void bg_status_w(u8 data); + void paletteram_w(offs_t offset, u8 data); + + TILE_GET_INFO_MEMBER(get_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + + void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority); + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + void argus_map(address_map &map); +}; + +class valtric_state : public argus_common_state +{ +public: + valtric_state(const machine_config &mconfig, device_type type, const char *tag) + : argus_common_state(mconfig, type, tag) + { } + + void valtric(machine_config &config); + +protected: + virtual void video_start() override; + virtual void video_reset() override; + +private: + void mosaic_w(u8 data); + void bg_status_w(u8 data); + void paletteram_w(offs_t offset, u8 data); + void unknown_w(u8 data); + + TILE_GET_INFO_MEMBER(get_bg_tile_info); + + void draw_mosaic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect); + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + void valtric_map(address_map &map); + + u8 m_valtric_mosaic; + bitmap_rgb32 m_mosaicbitmap; + u8 m_valtric_unknown; + int m_mosaic; +}; + +class butasan_state : public argus_common_state +{ +public: + butasan_state(const machine_config &mconfig, device_type type, const char *tag) + : argus_common_state(mconfig, type, tag) + , m_butasan_bg1ram(*this, "butasan_bg1ram") + { } + + void butasan(machine_config &config); + +protected: + virtual void video_start() override; + virtual void video_reset() override; + +private: + void bg0_status_w(u8 data); + void bg1_status_w(u8 data); + void paletteram_w(offs_t offset, u8 data); + void bg1ram_w(offs_t offset, u8 data); + void pageselect_w(u8 data); + u8 pagedram_r(offs_t offset); + void pagedram_w(offs_t offset, u8 data); + void unknown_w(u8 data); + + TILE_GET_INFO_MEMBER(get_tx_tile_info); + TILE_GET_INFO_MEMBER(get_bg0_tile_info); + TILE_GET_INFO_MEMBER(get_bg1_tile_info); + TILEMAP_MAPPER_MEMBER(bg_scan); + TILEMAP_MAPPER_MEMBER(tx_scan); + + void draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect); + void log_vram(); + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); + + TIMER_DEVICE_CALLBACK_MEMBER(scanline); + + void butasan_map(address_map &map); + + required_shared_ptr<u8> m_butasan_bg1ram; + + u8 *m_butasan_txram; + u8 *m_butasan_bg0ram; + u8 *m_butasan_bg0backram; + u8 *m_butasan_txbackram; + std::unique_ptr<u8[]> m_butasan_pagedram[2]; + u8 m_butasan_page_latch; + u8 m_butasan_bg1_status; + u8 m_butasan_unknown; }; diff --git a/src/mame/video/argus.cpp b/src/mame/video/argus.cpp index 73988264653..de8084f7adc 100644 --- a/src/mame/video/argus.cpp +++ b/src/mame/video/argus.cpp @@ -124,14 +124,12 @@ BG0 palette intensity ( $C47F, $C4FF ) ***************************************************************************/ template<int Gfx> -TILE_GET_INFO_MEMBER(argus_state::get_tx_tile_info) +TILE_GET_INFO_MEMBER(argus_common_state::get_tx_tile_info) { - uint8_t hi, lo; - tile_index <<= 1; - lo = m_txram[tile_index]; - hi = m_txram[tile_index + 1]; + u8 lo = m_txram[tile_index]; + u8 hi = m_txram[tile_index + 1]; SET_TILE_INFO_MEMBER(Gfx, ((hi & 0xc0) << 2) | lo, @@ -139,18 +137,16 @@ TILE_GET_INFO_MEMBER(argus_state::get_tx_tile_info) TILE_FLIPYX((hi & 0x30) >> 4)); } -TILE_GET_INFO_MEMBER(argus_state::argus_get_bg0_tile_info) +TILE_GET_INFO_MEMBER(argus_state::get_bg0_tile_info) { - uint8_t hi, lo; - // logical width is 65536(4096*16) but we load only 1024 pixel each // for reduce RAM usage tile_index = (((m_vrom_offset << 9) + tile_index) & 0x1ffff) << 1; int vrom_offset = (tile_index >> 3); tile_index = (m_vrom[0][vrom_offset & ~1] << 4) | ((m_vrom[0][vrom_offset | 1] & 0x7) << 12) | (tile_index & 0xf); - lo = m_vrom[1][tile_index]; - hi = m_vrom[1][tile_index | 1]; + u8 lo = m_vrom[1][tile_index]; + u8 hi = m_vrom[1][tile_index | 1]; SET_TILE_INFO_MEMBER(1, ((hi & 0xc0) << 2) | lo, @@ -158,14 +154,12 @@ TILE_GET_INFO_MEMBER(argus_state::argus_get_bg0_tile_info) TILE_FLIPYX((hi & 0x30) >> 4)); } -TILE_GET_INFO_MEMBER(argus_state::argus_get_bg1_tile_info) +TILE_GET_INFO_MEMBER(argus_state::get_bg1_tile_info) { - uint8_t hi, lo; - tile_index <<= 1; - lo = m_bg1ram[tile_index]; - hi = m_bg1ram[tile_index + 1]; + u8 lo = m_bg1ram[tile_index]; + u8 hi = m_bg1ram[tile_index + 1]; SET_TILE_INFO_MEMBER(2, lo, @@ -173,14 +167,12 @@ TILE_GET_INFO_MEMBER(argus_state::argus_get_bg1_tile_info) TILE_FLIPYX((hi & 0x30) >> 4)); } -TILE_GET_INFO_MEMBER(argus_state::valtric_get_bg_tile_info) +TILE_GET_INFO_MEMBER(valtric_state::get_bg_tile_info) { - uint8_t hi, lo; - tile_index <<= 1; - lo = m_bg1ram[tile_index]; - hi = m_bg1ram[tile_index + 1]; + u8 lo = m_bg1ram[tile_index]; + u8 hi = m_bg1ram[tile_index + 1]; SET_TILE_INFO_MEMBER(1, ((hi & 0xc0) << 2) | ((hi & 0x20) << 5) | lo, @@ -188,14 +180,12 @@ TILE_GET_INFO_MEMBER(argus_state::valtric_get_bg_tile_info) 0); } -TILE_GET_INFO_MEMBER(argus_state::butasan_get_tx_tile_info) +TILE_GET_INFO_MEMBER(butasan_state::get_tx_tile_info) { - uint8_t hi, lo; - tile_index <<= 1; - lo = m_butasan_txram[tile_index]; - hi = m_butasan_txram[tile_index + 1]; + u8 lo = m_butasan_txram[tile_index]; + u8 hi = m_butasan_txram[tile_index + 1]; SET_TILE_INFO_MEMBER(3, ((hi & 0xc0) << 2) | lo, @@ -203,14 +193,12 @@ TILE_GET_INFO_MEMBER(argus_state::butasan_get_tx_tile_info) TILE_FLIPYX((hi & 0x30) >> 4)); } -TILE_GET_INFO_MEMBER(argus_state::butasan_get_bg0_tile_info) +TILE_GET_INFO_MEMBER(butasan_state::get_bg0_tile_info) { - uint8_t hi, lo; - tile_index <<= 1; - lo = m_butasan_bg0ram[tile_index]; - hi = m_butasan_bg0ram[tile_index + 1]; + u8 lo = m_butasan_bg0ram[tile_index]; + u8 hi = m_butasan_bg0ram[tile_index + 1]; SET_TILE_INFO_MEMBER(1, ((hi & 0xc0) << 2) | lo, @@ -218,7 +206,7 @@ TILE_GET_INFO_MEMBER(argus_state::butasan_get_bg0_tile_info) TILE_FLIPYX((hi & 0x30) >> 4)); } -TILE_GET_INFO_MEMBER(argus_state::butasan_get_bg1_tile_info) +TILE_GET_INFO_MEMBER(butasan_state::get_bg1_tile_info) { int const tile = m_butasan_bg1ram[tile_index] | ((m_butasan_bg1_status & 2) << 7); @@ -228,13 +216,13 @@ TILE_GET_INFO_MEMBER(argus_state::butasan_get_bg1_tile_info) 0); } -TILEMAP_MAPPER_MEMBER(argus_state::butasan_bg_scan) +TILEMAP_MAPPER_MEMBER(butasan_state::bg_scan) { /* logical (col,row) -> memory offset */ return (col & 0x0f) | ((row ^ 0x0f) << 4) | ((col & 0x10) << 5); } -TILEMAP_MAPPER_MEMBER(argus_state::butasan_tx_scan) +TILEMAP_MAPPER_MEMBER(butasan_state::tx_scan) { /* logical (col,row) -> memory offset */ return (col & 0x1f) | ((row ^ 0x1f) << 5); @@ -244,20 +232,20 @@ TILEMAP_MAPPER_MEMBER(argus_state::butasan_tx_scan) Initialize and destroy video hardware emulation ***************************************************************************/ -void argus_state::reset_common() +void argus_common_state::reset_common() { m_bg_status = 0x01; m_flipscreen = 0; m_palette_intensity = 0; } -VIDEO_START_MEMBER(argus_state,argus) +void argus_state::video_start() { /* info offset w h col row */ -// m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 4096, 32); // full 65536 width tilemap - m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 1024/16, 32); - m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); - m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_tx_tile_info<3>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); +// m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 4096, 32); // full 65536 width tilemap + m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg0_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 1024/16, 32); + m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_bg1_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_tx_tile_info<3>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); m_bg_tilemap[1]->set_transparent_pen(15); m_tx_tilemap->set_transparent_pen(15); @@ -267,18 +255,18 @@ VIDEO_START_MEMBER(argus_state,argus) save_item(NAME(m_palette_intensity)); } -VIDEO_RESET_MEMBER(argus_state,argus) +void argus_state::video_reset() { m_bg_scrollx[0][0] = 0; m_bg_scrollx[0][1] = 0; reset_common(); } -VIDEO_START_MEMBER(argus_state,valtric) +void valtric_state::video_start() { /* info offset w h col row */ - m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::valtric_get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); - m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::get_tx_tile_info<2>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); + m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(valtric_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 16, 16, 32, 32); + m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(valtric_state::get_tx_tile_info<2>),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); m_tx_tilemap->set_transparent_pen(15); @@ -292,24 +280,24 @@ VIDEO_START_MEMBER(argus_state,valtric) save_item(NAME(m_mosaic)); } -VIDEO_RESET_MEMBER(argus_state,valtric) +void valtric_state::video_reset() { m_valtric_mosaic = 0x0f; reset_common(); } -VIDEO_START_MEMBER(argus_state,butasan) +void butasan_state::video_start() { /* info offset w h col row */ - m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(argus_state::butasan_bg_scan),this), 16, 16, 32, 32); - m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(argus_state::butasan_bg_scan),this), 16, 16, 32, 32); - m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(argus_state::butasan_get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(argus_state::butasan_tx_scan),this), 8, 8, 32, 32); + m_bg_tilemap[0] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_bg0_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::bg_scan),this), 16, 16, 32, 32); + m_bg_tilemap[1] = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_bg1_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::bg_scan),this), 16, 16, 32, 32); + m_tx_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(butasan_state::get_tx_tile_info),this), tilemap_mapper_delegate(FUNC(butasan_state::tx_scan),this), 8, 8, 32, 32); m_bg_tilemap[1]->set_transparent_pen(15); m_tx_tilemap->set_transparent_pen(15); - m_butasan_pagedram[0] = std::make_unique<uint8_t[]>(0x1000); - m_butasan_pagedram[1] = std::make_unique<uint8_t[]>(0x1000); + m_butasan_pagedram[0] = std::make_unique<u8[]>(0x1000); + m_butasan_pagedram[1] = std::make_unique<u8[]>(0x1000); m_butasan_bg0ram = &m_butasan_pagedram[0][0x000]; m_butasan_bg0backram = &m_butasan_pagedram[0][0x800]; @@ -326,7 +314,7 @@ VIDEO_START_MEMBER(argus_state,butasan) save_item(NAME(m_butasan_unknown)); } -VIDEO_RESET_MEMBER(argus_state,butasan) +void butasan_state::video_reset() { m_butasan_page_latch = 0; m_butasan_bg1_status = 0x01; @@ -340,16 +328,16 @@ VIDEO_RESET_MEMBER(argus_state,butasan) Functions for handler of MAP roms in Argus and palette color ***************************************************************************/ -void argus_state::change_palette(int color, int lo_offs, int hi_offs) +void argus_common_state::change_palette(int color, int lo_offs, int hi_offs) { - uint8_t lo = m_paletteram[lo_offs]; - uint8_t hi = m_paletteram[hi_offs]; + u8 lo = m_paletteram[lo_offs]; + u8 hi = m_paletteram[hi_offs]; m_palette->set_pen_color(color, rgb_t(hi & 0x0f, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4))); } -void argus_state::change_bg_palette(int color, int lo_offs, int hi_offs) +void argus_common_state::change_bg_palette(int color, int lo_offs, int hi_offs) { - uint8_t r,g,b,lo,hi,ir,ig,ib,ix; + u8 r,g,b,lo,hi,ir,ig,ib,ix; rgb_t rgb,irgb; /* red,green,blue intensities */ @@ -371,7 +359,7 @@ void argus_state::change_bg_palette(int color, int lo_offs, int hi_offs) /* Grey background enable */ if (m_bg_status & 2) { - uint8_t val = (r + g + b) / 3; + u8 val = (r + g + b) / 3; rgb = rgb_t(val,val,val); } else @@ -389,24 +377,24 @@ void argus_state::change_bg_palette(int color, int lo_offs, int hi_offs) Memory handler ***************************************************************************/ -WRITE8_MEMBER(argus_state::valtric_mosaic_w) +void valtric_state::mosaic_w(u8 data) { m_valtric_mosaic = data; } -WRITE8_MEMBER(argus_state::txram_w) +void argus_common_state::txram_w(offs_t offset, u8 data) { m_txram[offset] = data; m_tx_tilemap->mark_tile_dirty(offset >> 1); } -WRITE8_MEMBER(argus_state::bg1ram_w) +void argus_common_state::bg1ram_w(offs_t offset, u8 data) { m_bg1ram[offset] = data; m_bg_tilemap[1]->mark_tile_dirty(offset >> 1); } -WRITE8_MEMBER(argus_state::argus_bg_status_w) +void argus_state::bg_status_w(u8 data) { if (m_bg_status != data) { @@ -425,7 +413,7 @@ WRITE8_MEMBER(argus_state::argus_bg_status_w) } } -WRITE8_MEMBER(argus_state::valtric_bg_status_w) +void valtric_state::bg_status_w(u8 data) { if (m_bg_status != data) { @@ -444,12 +432,12 @@ WRITE8_MEMBER(argus_state::valtric_bg_status_w) } } -WRITE8_MEMBER(argus_state::butasan_bg0_status_w) +void butasan_state::bg0_status_w(u8 data) { m_bg_status = data; } -WRITE8_MEMBER(argus_state::butasan_bg1_status_w) +void butasan_state::bg1_status_w(u8 data) { if (m_butasan_bg1_status != data) { @@ -460,12 +448,12 @@ WRITE8_MEMBER(argus_state::butasan_bg1_status_w) } } -WRITE8_MEMBER(argus_state::flipscreen_w) +void argus_common_state::flipscreen_w(u8 data) { m_flipscreen = data & 0x80; } -WRITE8_MEMBER(argus_state::argus_paletteram_w) +void argus_state::paletteram_w(offs_t offset, u8 data) { int offs; @@ -511,7 +499,7 @@ WRITE8_MEMBER(argus_state::argus_paletteram_w) } } -WRITE8_MEMBER(argus_state::valtric_paletteram_w) +void valtric_state::paletteram_w(offs_t offset, u8 data) { m_paletteram[offset] = data; @@ -539,7 +527,7 @@ WRITE8_MEMBER(argus_state::valtric_paletteram_w) } } -WRITE8_MEMBER(argus_state::butasan_paletteram_w) +void butasan_state::paletteram_w(offs_t offset, u8 data) { m_paletteram[offset] = data; @@ -572,18 +560,18 @@ WRITE8_MEMBER(argus_state::butasan_paletteram_w) change_palette(((offset & 0x1f) >> 1) + 0xf0, offset & ~1, offset | 1); } -WRITE8_MEMBER(argus_state::butasan_bg1ram_w) +void butasan_state::bg1ram_w(offs_t offset, u8 data) { m_butasan_bg1ram[offset] = data; m_bg_tilemap[1]->mark_tile_dirty(offset); } -WRITE8_MEMBER(argus_state::butasan_pageselect_w) +void butasan_state::pageselect_w(u8 data) { m_butasan_page_latch = data & 1; } -READ8_MEMBER(argus_state::butasan_pagedram_r) +u8 butasan_state::pagedram_r(offs_t offset) { if (offset <= 0x07ff) return m_butasan_pagedram[m_butasan_page_latch][offset]; @@ -591,7 +579,7 @@ READ8_MEMBER(argus_state::butasan_pagedram_r) return m_butasan_pagedram[0][offset]; } -WRITE8_MEMBER(argus_state::butasan_pagedram_w) +void butasan_state::pagedram_w(offs_t offset, u8 data) { m_butasan_pagedram[m_butasan_page_latch][offset] = data; @@ -607,12 +595,12 @@ WRITE8_MEMBER(argus_state::butasan_pagedram_w) } } -WRITE8_MEMBER(argus_state::valtric_unknown_w) +void valtric_state::unknown_w(u8 data) { m_valtric_unknown = data; } -WRITE8_MEMBER(argus_state::butasan_unknown_w) +void butasan_state::unknown_w(u8 data) { m_butasan_unknown = data; } @@ -625,7 +613,7 @@ WRITE8_MEMBER(argus_state::butasan_unknown_w) #define bg_scrollx(layer) (m_bg_scrollx[layer][0] | (m_bg_scrollx[layer][1] << 8)) #define bg_scrolly(layer) (m_bg_scrolly[layer][0] | (m_bg_scrolly[layer][1] << 8)) -void argus_state::bg_setting() +void argus_common_state::bg_setting() { machine().tilemap().set_flip_all(m_flipscreen ? TILEMAP_FLIPY|TILEMAP_FLIPX : 0); @@ -677,7 +665,7 @@ void argus_state::bg_setting() } } -void argus_state::argus_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority) +void argus_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect, int priority) { /* Draw the sprites */ for (int offs = 0; offs < m_spriteram.bytes(); offs += 16) @@ -717,7 +705,7 @@ void argus_state::argus_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &clip } #if 1 -void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +void valtric_state::draw_mosaic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { if (m_valtric_mosaic!=0x80) { @@ -733,7 +721,7 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma m_bg_tilemap[1]->draw(screen, m_mosaicbitmap, cliprect, 0, 0); { int step=m_mosaic; - uint32_t *dest; + u32 *dest; int x,y,xx,yy,c=0; int width = screen.width(); int height = screen.height(); @@ -764,7 +752,7 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma } } #else -void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +void valtric_state::draw_mosaic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { int step = 0x10 - (m_valtric_mosaic & 0x0f); @@ -774,7 +762,7 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma { m_bg_tilemap[1]->draw(screen, m_mosaicbitmap, cliprect, 0, 0); { - uint32_t *dest; + u32 *dest; int x,y,xx,yy,c=0; int width = screen.width(); int height = screen.height(); @@ -804,7 +792,7 @@ void argus_state::valtric_draw_mosaic(screen_device &screen, bitmap_rgb32 &bitma } #endif -void argus_state::valtric_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect) +void valtric_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect) { /* Draw the sprites */ for (int offs = 0; offs < m_spriteram.bytes(); offs += 16) @@ -840,7 +828,7 @@ void argus_state::valtric_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cl } } -void argus_state::butasan_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect) +void butasan_state::draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cliprect) { /* Draw the sprites */ for (int offs = 0; offs < m_spriteram.bytes(); offs += 16) @@ -947,14 +935,14 @@ void argus_state::butasan_draw_sprites(bitmap_rgb32 &bitmap, const rectangle &cl } -void argus_state::butasan_log_vram() +void butasan_state::log_vram() { #ifdef MAME_DEBUG int offs; if (machine().input().code_pressed(KEYCODE_M)) { - uint8_t *spriteram = m_spriteram; + u8 *spriteram = &m_spriteram[0]; int i; logerror("\nSprite RAM\n"); logerror("---------------------------------------\n"); @@ -1000,33 +988,33 @@ void argus_state::butasan_log_vram() #endif } -uint32_t argus_state::screen_update_argus(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +u32 argus_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bg_setting(); m_bg_tilemap[0]->draw(screen, bitmap, cliprect, 0, 0); - argus_draw_sprites(bitmap, cliprect, 0); + draw_sprites(bitmap, cliprect, 0); if (m_bg_status & 1) /* Backgound enable */ m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); - argus_draw_sprites(bitmap, cliprect, 1); + draw_sprites(bitmap, cliprect, 1); m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } -uint32_t argus_state::screen_update_valtric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +u32 valtric_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bg_setting(); if (m_bg_status & 1) /* Backgound enable */ - valtric_draw_mosaic(screen, bitmap, cliprect); + draw_mosaic(screen, bitmap, cliprect); else bitmap.fill(m_palette->black_pen(), cliprect); - valtric_draw_sprites(bitmap, cliprect); + draw_sprites(bitmap, cliprect); m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); return 0; } -uint32_t argus_state::screen_update_butasan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) +u32 butasan_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) { bg_setting(); @@ -1035,9 +1023,9 @@ uint32_t argus_state::screen_update_butasan(screen_device &screen, bitmap_rgb32 else bitmap.fill(m_palette->black_pen(), cliprect); if (m_butasan_bg1_status & 1) m_bg_tilemap[1]->draw(screen, bitmap, cliprect, 0, 0); - butasan_draw_sprites(bitmap, cliprect); + draw_sprites(bitmap, cliprect); m_tx_tilemap->draw(screen, bitmap, cliprect, 0, 0); - butasan_log_vram(); + log_vram(); return 0; } |