summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/metro.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/metro.h')
-rw-r--r--src/mame/includes/metro.h248
1 files changed, 0 insertions, 248 deletions
diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h
deleted file mode 100644
index e654f6bdc68..00000000000
--- a/src/mame/includes/metro.h
+++ /dev/null
@@ -1,248 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Luca Elia, David Haywood
-/*************************************************************************
-
- Metro Games
-
-*************************************************************************/
-#ifndef MAME_INCLUDES_METRO_H
-#define MAME_INCLUDES_METRO_H
-
-#pragma once
-
-#include "sound/okim6295.h"
-#include "sound/ym2151.h"
-#include "sound/es8712.h"
-#include "video/k053936.h"
-#include "video/imagetek_i4100.h"
-#include "machine/eepromser.h"
-#include "machine/gen_latch.h"
-#include "machine/timer.h"
-#include "screen.h"
-#include "tilemap.h"
-
-class metro_state : public driver_device
-{
-public:
- metro_state(const machine_config &mconfig, device_type type, const char *tag)
- : driver_device(mconfig, type, tag)
- , m_maincpu(*this, "maincpu")
- , m_audiocpu(*this, "audiocpu")
- , m_oki(*this, "oki")
- , m_ymsnd(*this, "ymsnd")
- , m_essnd(*this, "essnd")
- , m_vdp(*this, "vdp")
- , m_vdp2(*this, "vdp2")
- , m_vdp3(*this, "vdp3")
- , m_k053936(*this, "k053936")
- , m_eeprom(*this, "eeprom")
- , m_gfxdecode(*this, "gfxdecode")
- , m_screen(*this, "screen")
- , m_soundlatch(*this, "soundlatch")
- , m_irq_enable(*this, "irq_enable")
- , m_irq_levels(*this, "irq_levels")
- , m_irq_vectors(*this, "irq_vectors")
- , m_input_sel(*this, "input_sel")
- , m_k053936_ram(*this, "k053936_ram")
- , m_audiobank(*this, "audiobank")
- , m_okibank(*this, "okibank")
- { }
-
- void i4100_config(machine_config &config);
- void i4100_config_360x224(machine_config &config);
- void i4220_config(machine_config &config);
- void i4220_config_320x240(machine_config &config);
- void i4220_config_304x224(machine_config &config);
- void i4300_config(machine_config &config);
- void i4300_config_384x224(machine_config &config);
- void i4300_config_320x240(machine_config &config);
- void metro_upd7810_sound(machine_config &config);
- void daitorid_upd7810_sound(machine_config &config);
- void poitto(machine_config &config);
- void blzntrnd(machine_config &config);
- void sankokushi(machine_config &config);
- void mouja(machine_config &config);
- void toride2g(machine_config &config);
- void karatour(machine_config &config);
- void skyalert(machine_config &config);
- void gakusai(machine_config &config);
- void batlbubl(machine_config &config);
- void pururun(machine_config &config);
- void vmetal(machine_config &config);
- void daitorid(machine_config &config);
- void puzzli(machine_config &config);
- void puzzlia(machine_config &config);
- void pangpoms(machine_config &config);
- void dokyusp(machine_config &config);
- void dokyusei(machine_config &config);
- void daitoa(machine_config &config);
- void lastfort(machine_config &config);
- void puzzlet(machine_config &config);
- void gakusai2(machine_config &config);
- void balcube(machine_config &config);
- void msgogo(machine_config &config);
- void gstrik2(machine_config &config);
- void lastforg(machine_config &config);
- void bangball(machine_config &config);
- void dharma(machine_config &config);
-
- void init_karatour();
- void init_blzntrnd();
- void init_vmetal();
- void init_mouja();
- void init_balcube();
- void init_gakusai();
- void init_dharmak();
- void init_puzzlet();
- void init_metro();
- void init_lastfortg();
-
- DECLARE_READ_LINE_MEMBER(custom_soundstatus_r);
-
-private:
- enum
- {
- TIMER_KARATOUR_IRQ,
- TIMER_MOUJA_IRQ
- };
-
- u8 irq_cause_r(offs_t offset);
- void irq_cause_w(offs_t offset, u8 data);
- u8 irq_vector_r(offs_t offset);
- void mouja_irq_timer_ctrl_w(uint16_t data);
- void sound_data_w(u8 data);
- TIMER_CALLBACK_MEMBER(sound_data_sync);
- u8 soundstatus_r();
- void soundstatus_w(u8 data);
- template<int Mask> void upd7810_rombank_w(u8 data);
- u8 upd7810_porta_r();
- void upd7810_porta_w(u8 data);
- void upd7810_portb_w(u8 data);
- void daitorid_portb_w(u8 data);
- void coin_lockout_1word_w(u8 data);
- void coin_lockout_4words_w(offs_t offset, uint16_t data);
- uint16_t balcube_dsw_r(offs_t offset);
- uint16_t gakusai_input_r();
- void blzntrnd_sh_bankswitch_w(u8 data);
- void puzzlet_irq_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void puzzlet_portb_w(uint16_t data);
- void k053936_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- void gakusai_oki_bank_hi_w(u8 data);
- void gakusai_oki_bank_lo_w(u8 data);
- u8 gakusai_eeprom_r();
- void gakusai_eeprom_w(u8 data);
- u8 dokyusp_eeprom_r();
- void dokyusp_eeprom_bit_w(u8 data);
- void dokyusp_eeprom_reset_w(u8 data);
- void mouja_sound_rombank_w(u8 data);
- DECLARE_WRITE_LINE_MEMBER(vdp_blit_end_w);
-
- // vmetal
- void vmetal_control_w(u8 data);
- void es8712_reset_w(u8 data);
- DECLARE_WRITE_LINE_MEMBER(vmetal_es8712_irq);
-
- TILE_GET_INFO_MEMBER(k053936_get_tile_info);
- TILE_GET_INFO_MEMBER(k053936_gstrik2_get_tile_info);
- TILEMAP_MAPPER_MEMBER(tilemap_scan_gstrik2);
- DECLARE_VIDEO_START(blzntrnd);
- DECLARE_VIDEO_START(gstrik2);
- uint32_t screen_update_psac_vdp2_mix(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE_LINE_MEMBER(vblank_irq);
- INTERRUPT_GEN_MEMBER(periodic_interrupt);
- TIMER_DEVICE_CALLBACK_MEMBER(bangball_scanline);
- DECLARE_WRITE_LINE_MEMBER(karatour_vblank_irq);
- DECLARE_WRITE_LINE_MEMBER(puzzlet_vblank_irq);
- DECLARE_READ_LINE_MEMBER(rxd_r);
-
- void balcube_map(address_map &map);
- void bangball_map(address_map &map);
- void batlbubl_map(address_map &map);
- void blzntrnd_map(address_map &map);
- void blzntrnd_sound_io_map(address_map &map);
- void blzntrnd_sound_map(address_map &map);
- void cpu_space_map(address_map &map);
- void daitoa_map(address_map &map);
- void daitorid_map(address_map &map);
- void dharma_map(address_map &map);
- void dokyusei_map(address_map &map);
- void dokyusp_map(address_map &map);
- void gakusai2_map(address_map &map);
- void gakusai_map(address_map &map);
- void karatour_map(address_map &map);
- void kokushi_map(address_map &map);
- void lastforg_map(address_map &map);
- void lastfort_map(address_map &map);
- void upd7810_map(address_map &map);
- void mouja_map(address_map &map);
- void mouja_okimap(address_map &map);
- void msgogo_map(address_map &map);
- void pangpoms_map(address_map &map);
- void poitto_map(address_map &map);
- void pururun_map(address_map &map);
- void puzzlet_io_map(address_map &map);
- void puzzlet_map(address_map &map);
- void skyalert_map(address_map &map);
- void toride2g_map(address_map &map);
- void vmetal_map(address_map &map);
- void ymf278_map(address_map &map);
-
- virtual void machine_start() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
-
- /* devices */
- required_device<cpu_device> m_maincpu;
- optional_device<cpu_device> m_audiocpu;
- optional_device<okim6295_device> m_oki;
- optional_device<device_t> m_ymsnd; // TODO set correct type
- optional_device<es8712_device> m_essnd;
- optional_device<imagetek_i4100_device> m_vdp;
- optional_device<imagetek_i4220_device> m_vdp2;
- optional_device<imagetek_i4300_device> m_vdp3;
-
- optional_device<k053936_device> m_k053936;
- optional_device<eeprom_serial_93cxx_device> m_eeprom;
- optional_device<gfxdecode_device> m_gfxdecode;
- required_device<screen_device> m_screen;
- optional_device<generic_latch_8_device> m_soundlatch;
-
- /* memory pointers */
- optional_shared_ptr<uint16_t> m_irq_enable;
- optional_shared_ptr<uint16_t> m_irq_levels;
- optional_shared_ptr<uint16_t> m_irq_vectors;
- optional_shared_ptr<uint16_t> m_input_sel;
- optional_shared_ptr<uint16_t> m_k053936_ram;
-
- optional_memory_bank m_audiobank;
- optional_memory_bank m_okibank;
-
- /* video-related */
- tilemap_t *m_k053936_tilemap;
-
- /* irq_related */
- int m_vblank_bit;
- int m_blitter_bit;
- int m_irq_line;
- u8 m_requested_int[8];
- emu_timer *m_mouja_irq_timer;
- emu_timer *m_karatour_irq_timer;
-
- /* sound related */
- u8 m_sound_data;
- uint16_t m_soundstatus;
- int m_porta;
- int m_portb;
- int m_busy_sndcpu;
- int m_essnd_bank;
- bool m_essnd_gate;
-
- /* misc */
- int m_gakusai_oki_bank_lo;
- int m_gakusai_oki_bank_hi;
-
- void update_irq_state();
- void metro_common();
- void gakusai_oki_bank_set();
-};
-
-#endif // MAME_INCLUDES_METRO_H