summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/argus.cpp103
-rw-r--r--src/mame/includes/argus.h216
-rw-r--r--src/mame/video/argus.cpp174
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;
}