(nw) grchamp : output finder

This commit is contained in:
Robbbert 2018-04-10 22:59:22 +10:00
parent 099be8ad33
commit da2a6868b1
2 changed files with 53 additions and 45 deletions

View File

@ -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

View File

@ -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 */