summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2018-04-10 22:59:22 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2018-04-10 22:59:22 +1000
commitda2a6868b18801db01ed1644fdcdd9897291dc39 (patch)
treed5efdbf83e83403eb88c593acf2257d1762e887f
parent099be8ad339157e7e53202cacd31edd39590f0c8 (diff)
(nw) grchamp : output finder
-rw-r--r--src/mame/drivers/grchamp.cpp6
-rw-r--r--src/mame/includes/grchamp.h92
2 files changed, 53 insertions, 45 deletions
diff --git a/src/mame/drivers/grchamp.cpp b/src/mame/drivers/grchamp.cpp
index f405730cb13..4609246b7df 100644
--- a/src/mame/drivers/grchamp.cpp
+++ b/src/mame/drivers/grchamp.cpp
@@ -95,6 +95,7 @@
void grchamp_state::machine_start()
{
+ m_digits.resolve();
m_soundlatch_data = 0x00;
m_soundlatch_flag = false;
save_item(NAME(m_cpu0_out));
@@ -245,7 +246,7 @@ WRITE8_MEMBER(grchamp_state::led_board_w)
case 0x0c:
m_ledram[m_ledaddr & 0x07] = m_ledlatch;
- output().set_digit_value(m_ledaddr & 0x07, ls247_map[m_ledram[m_ledaddr & 0x07] & 0x0f]);
+ m_digits[m_ledaddr & 0x07] = ls247_map[m_ledram[m_ledaddr & 0x07] & 0x0f];
/*
ledram[0] & 0x0f = score LSD
ledram[1] & 0x0f = score
@@ -533,6 +534,9 @@ static GFXDECODE_START( grchamp )
GFXDECODE_ENTRY( "gfx3", 0x0000, tile_layout, 0, 2 )
GFXDECODE_ENTRY( "gfx4", 0x0000, tile_layout, 0, 2 )
GFXDECODE_ENTRY( "gfx1", 0x0000, sprite_layout, 0, 8 )
+ GFXDECODE_ENTRY( "gfx5", 0x0000, tile_layout, 0, 2 )
+ GFXDECODE_ENTRY( "gfx6", 0x0000, tile_layout, 0, 2 )
+ GFXDECODE_ENTRY( "gfx7", 0x0000, tile_layout, 0, 2 )
GFXDECODE_END
diff --git a/src/mame/includes/grchamp.h b/src/mame/includes/grchamp.h
index 04789ae5072..3c7d5ea3c76 100644
--- a/src/mame/includes/grchamp.h
+++ b/src/mame/includes/grchamp.h
@@ -30,46 +30,9 @@ public:
m_spriteram(*this, "spriteram"),
m_leftram(*this, "leftram"),
m_rightram(*this, "rightram"),
- m_centerram(*this, "centerram") { }
-
- required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
- required_device<cpu_device> m_subcpu;
- required_device<watchdog_timer_device> m_watchdog;
- required_device<discrete_device> m_discrete;
- required_device<gfxdecode_device> m_gfxdecode;
- required_device<palette_device> m_palette;
- required_device<screen_device> m_screen;
- required_device<input_merger_device> m_soundnmi;
-
- required_shared_ptr<uint8_t> m_radarram;
- required_shared_ptr<uint8_t> m_videoram;
- required_shared_ptr<uint8_t> m_spriteram;
- required_shared_ptr<uint8_t> m_leftram;
- required_shared_ptr<uint8_t> m_rightram;
- required_shared_ptr<uint8_t> m_centerram;
-
- uint8_t m_cpu0_out[16];
- uint8_t m_cpu1_out[16];
-
- uint8_t m_comm_latch;
- uint8_t m_comm_latch2[4];
-
- uint16_t m_ledlatch;
- uint8_t m_ledaddr;
- uint16_t m_ledram[8];
-
- uint8_t m_soundlatch_data;
- bool m_soundlatch_flag;
-
- uint16_t m_collide;
- uint8_t m_collmode;
-
- bitmap_ind16 m_work_bitmap;
- tilemap_t * m_text_tilemap;
- tilemap_t * m_left_tilemap;
- tilemap_t * m_center_tilemap;
- tilemap_t * m_right_tilemap;
+ m_centerram(*this, "centerram"),
+ m_digits(*this, "digit%u", 0U)
+ { }
DECLARE_WRITE8_MEMBER(cpu0_outputs_w);
DECLARE_WRITE8_MEMBER(led_board_w);
@@ -102,10 +65,6 @@ public:
TILEMAP_MAPPER_MEMBER(get_memory_offset);
DECLARE_PALETTE_INIT(grchamp);
- virtual void machine_start() override;
- virtual void machine_reset() override;
- virtual void video_start() override;
-
INTERRUPT_GEN_MEMBER(cpu0_interrupt);
INTERRUPT_GEN_MEMBER(cpu1_interrupt);
TIMER_CALLBACK_MEMBER(main_to_sub_comm_sync_w);
@@ -118,6 +77,51 @@ public:
void sound_map(address_map &map);
void sub_map(address_map &map);
void sub_portmap(address_map &map);
+
+private:
+ uint8_t m_cpu0_out[16];
+ uint8_t m_cpu1_out[16];
+
+ uint8_t m_comm_latch;
+ uint8_t m_comm_latch2[4];
+
+ uint16_t m_ledlatch;
+ uint8_t m_ledaddr;
+ uint16_t m_ledram[8];
+
+ uint8_t m_soundlatch_data;
+ bool m_soundlatch_flag;
+
+ uint16_t m_collide;
+ uint8_t m_collmode;
+
+ bitmap_ind16 m_work_bitmap;
+ tilemap_t * m_text_tilemap;
+ tilemap_t * m_left_tilemap;
+ tilemap_t * m_center_tilemap;
+ tilemap_t * m_right_tilemap;
+
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ virtual void video_start() override;
+
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+ required_device<cpu_device> m_subcpu;
+ required_device<watchdog_timer_device> m_watchdog;
+ required_device<discrete_device> m_discrete;
+ required_device<gfxdecode_device> m_gfxdecode;
+ required_device<palette_device> m_palette;
+ required_device<screen_device> m_screen;
+ required_device<input_merger_device> m_soundnmi;
+
+ required_shared_ptr<uint8_t> m_radarram;
+ required_shared_ptr<uint8_t> m_videoram;
+ required_shared_ptr<uint8_t> m_spriteram;
+ required_shared_ptr<uint8_t> m_leftram;
+ required_shared_ptr<uint8_t> m_rightram;
+ required_shared_ptr<uint8_t> m_centerram;
+ output_finder<8> m_digits;
};
/* Discrete Sound Input Nodes */