summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/segas24.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/segas24.h')
-rw-r--r--src/mame/includes/segas24.h44
1 files changed, 30 insertions, 14 deletions
diff --git a/src/mame/includes/segas24.h b/src/mame/includes/segas24.h
index 071a08b1aa4..e348f368a7e 100644
--- a/src/mame/includes/segas24.h
+++ b/src/mame/includes/segas24.h
@@ -23,9 +23,10 @@ public:
, m_subcpu(*this, "subcpu")
, m_screen(*this, "screen")
, m_palette(*this, "palette")
- , m_generic_paletteram_16(*this, "paletteram")
+ , m_paletteram(*this, "paletteram")
, m_romboard(*this, "romboard")
, m_floppy(*this, "floppy")
+ , m_rombank(*this, "rombank%u", 1U)
, m_irq_timer(*this, "irq_timer")
, m_irq_timer_clear(*this, "irq_timer_clear")
, m_frc_cnt_timer(*this, "frc_timer")
@@ -58,24 +59,31 @@ public:
void init_qsww();
void init_sgmast();
+ void dcclub(machine_config &config);
void mahmajn(machine_config &config);
- void system24_floppy_fd_upd(machine_config &config);
void system24_floppy(machine_config &config);
- void system24_floppy_fd1094(machine_config &config);
- void dcclub(machine_config &config);
void system24_floppy_dcclub(machine_config &config);
+ void system24_floppy_fd1094(machine_config &config);
+ void system24_floppy_fd_upd(machine_config &config);
void system24_floppy_hotrod(machine_config &config);
+ void system24_floppy_rom(machine_config &config);
+ void system24_rom(machine_config &config);
void system24(machine_config &config);
+protected:
+ virtual void device_post_load() override;
+
private:
required_device<cpu_device> m_maincpu;
required_device<cpu_device> m_subcpu;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
- required_shared_ptr<uint16_t> m_generic_paletteram_16;
+ required_shared_ptr<uint16_t> m_paletteram;
optional_memory_region m_romboard;
optional_region_ptr<uint8_t> m_floppy;
+ optional_memory_bank_array<2> m_rombank;
+
static const uint8_t s_mahmajn_mlt[8];
static const uint8_t s_mahmajn2_mlt[8];
static const uint8_t s_qgh_mlt[8];
@@ -84,6 +92,8 @@ private:
static const uint8_t s_quizmeku_mlt[8];
static const uint8_t s_dcclub_mlt[8];
+ uint8_t m_fdc_track_side;
+ uint8_t m_fdc_mode;
int m_fdc_status;
int m_fdc_track;
int m_fdc_sector;
@@ -121,22 +131,22 @@ private:
required_device<segas24_mixer_device> m_vmixer;
DECLARE_WRITE_LINE_MEMBER(irq_ym);
- DECLARE_READ16_MEMBER( sys16_paletteram_r );
- DECLARE_WRITE16_MEMBER( sys16_paletteram_w );
+ DECLARE_READ16_MEMBER( paletteram_r );
+ DECLARE_WRITE16_MEMBER( paletteram_w );
DECLARE_READ16_MEMBER( irq_r );
DECLARE_WRITE16_MEMBER( irq_w );
DECLARE_READ16_MEMBER( fdc_r );
DECLARE_WRITE16_MEMBER( fdc_w );
DECLARE_READ16_MEMBER( fdc_status_r );
DECLARE_WRITE16_MEMBER( fdc_ctrl_w );
- DECLARE_READ16_MEMBER( curbank_r );
- DECLARE_WRITE16_MEMBER( curbank_w );
+ DECLARE_READ8_MEMBER( curbank_r );
+ DECLARE_WRITE8_MEMBER( curbank_w );
DECLARE_READ8_MEMBER( frc_mode_r );
DECLARE_WRITE8_MEMBER( frc_mode_w );
DECLARE_READ8_MEMBER( frc_r );
DECLARE_WRITE8_MEMBER( frc_w );
- DECLARE_READ16_MEMBER( mlatch_r );
- DECLARE_WRITE16_MEMBER( mlatch_w );
+ DECLARE_READ8_MEMBER( mlatch_r );
+ DECLARE_WRITE8_MEMBER( mlatch_w );
DECLARE_READ16_MEMBER( iod_r );
DECLARE_WRITE16_MEMBER( iod_w );
@@ -157,7 +167,7 @@ private:
WRITE_LINE_MEMBER(cnt1);
virtual void machine_start() override;
virtual void machine_reset() override;
- uint32_t screen_update_system24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(irq_timer_cb);
TIMER_DEVICE_CALLBACK_MEMBER(irq_timer_clear_cb);
TIMER_DEVICE_CALLBACK_MEMBER(irq_frc_cb);
@@ -172,13 +182,19 @@ private:
optional_ioport m_paddle;
optional_ioport_array<8> m_mj_inputs;
+ void common_map(address_map &map);
+ void cpu1_map(address_map &map);
+ void cpu2_map(address_map &map);
void decrypted_opcodes_map(address_map &map);
+ void hotrod_common_map(address_map &map);
void hotrod_cpu1_map(address_map &map);
void hotrod_cpu2_map(address_map &map);
+ void rombd_common_map(address_map &map);
+ void rombd_cpu1_map(address_map &map);
+ void rombd_cpu2_map(address_map &map);
+ void roughrac_common_map(address_map &map);
void roughrac_cpu1_map(address_map &map);
void roughrac_cpu2_map(address_map &map);
- void system24_cpu1_map(address_map &map);
- void system24_cpu2_map(address_map &map);
};
#endif // MAME_INCLUDES_SEGAS24_H