diff options
Diffstat (limited to 'src/mame/includes/seta.h')
-rw-r--r-- | src/mame/includes/seta.h | 557 |
1 files changed, 0 insertions, 557 deletions
diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h deleted file mode 100644 index 9bcf747876f..00000000000 --- a/src/mame/includes/seta.h +++ /dev/null @@ -1,557 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Luca Elia -#ifndef MAME_INCLUDES_SETA_H -#define MAME_INCLUDES_SETA_H - -#pragma once - -/*************************************************************************** - - -= Seta Hardware =- - -***************************************************************************/ - -#include "machine/74157.h" -#include "machine/adc083x.h" -#include "machine/gen_latch.h" -#include "machine/ticket.h" -#include "machine/timer.h" -#include "machine/tmp68301.h" -#include "machine/upd4701.h" -#include "machine/upd4992.h" -#include "sound/x1_010.h" -#include "video/seta001.h" -#include "video/x1_012.h" -#include "emupal.h" -#include "tilemap.h" - - -class seta_state : public driver_device -{ -public: - struct uPD71054_state - { - emu_timer *timer[3]; // Timer - u16 max[3]; // Max counter - u16 write_select; // Max counter write select - u8 reg[4]; // - }; - - seta_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_seta001(*this, "spritegen"), - m_layers(*this, "layer%u", 1U), - m_x1(*this, "x1snd"), - m_soundlatch(*this, "soundlatch"), - m_dsw(*this, "DSW"), - m_coins(*this, "COINS"), - m_extra_port(*this, "EXTRA"), - m_paletteram(*this, "paletteram%u", 1U), - m_x1_bank(*this, "x1_bank"), - m_leds(*this, "led%u", 0U), - m_palette(*this, "palette") - { } - - void madshark(machine_config &config); - void jjsquawb(machine_config &config); - void oisipuzl(machine_config &config); - void zingzipbl(machine_config &config); - void eightfrc(machine_config &config); - void gundhara(machine_config &config); - void triplfun(machine_config &config); - void blandiap(machine_config &config); - void wits(machine_config &config); - void msgundam(machine_config &config); - void msgundamb(machine_config &config); - void extdwnhl(machine_config &config); - void pairlove(machine_config &config); - void zingzip(machine_config &config); - void wiggie(machine_config &config); - void umanclub(machine_config &config); - void daioh(machine_config &config); - void atehate(machine_config &config); - void thunderlbl(machine_config &config); - void blockcarb(machine_config &config); - void wrofaero(machine_config &config); - void blockcar(machine_config &config); - void crazyfgt(machine_config &config); - void keroppi(machine_config &config); - void drgnunit(machine_config &config); - void stg(machine_config &config); - void qzkklogy(machine_config &config); - void orbs(machine_config &config); - void daiohp(machine_config &config); - void magspeed(machine_config &config); - void krzybowl(machine_config &config); - void qzkklgy2(machine_config &config); - void kamenrid(machine_config &config); - void superbar(machine_config &config); - void jjsquawk(machine_config &config); - void blandia(machine_config &config); - void thunderl(machine_config &config); - void utoukond(machine_config &config); - void rezon(machine_config &config); - - void init_rezon(); - void init_crazyfgt(); - void init_wiggie(); - void init_bankx1(); - void init_eightfrc(); - void init_pairlove(); - - void palette_init_RRRRRGGGGGBBBBB_proms(palette_device &palette) const; - - SETA001_SPRITE_GFXBANK_CB_MEMBER(setac_gfxbank_callback); - - u32 screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - -protected: - required_device<cpu_device> m_maincpu; - optional_device<cpu_device> m_audiocpu; - required_device<seta001_device> m_seta001; - optional_device_array<x1_012_device, 2> m_layers; - optional_device<x1_010_device> m_x1; - optional_device<generic_latch_8_device> m_soundlatch; - - optional_ioport m_dsw; - optional_ioport m_coins; - optional_ioport m_extra_port; - - optional_shared_ptr_array<u16, 2> m_paletteram; - - optional_memory_bank m_x1_bank; - - output_finder<48> m_leds; - - required_device<palette_device> m_palette; - - u8 m_vregs; - - int m_tilemaps_flip; - int m_samples_bank; - - uPD71054_state m_uPD71054; - - int m_keroppi_prize_hop; - int m_keroppi_protection_count; - emu_timer *m_keroppi_prize_hop_timer; - - u16 m_magspeed_lights[3]; - - std::unique_ptr<u16[]> m_pairslove_protram; - std::unique_ptr<u16[]> m_pairslove_protram_old; - - void seta_coin_counter_w(u8 data); - void seta_coin_lockout_w(u8 data); - void seta_vregs_w(u8 data); - void timer_regs_w(offs_t offset, u16 data); - u16 seta_dsw_r(offs_t offset); - - u16 zingzipbl_unknown_r(); - u16 keroppi_protection_r(); - u16 keroppi_protection_init_r(); - u16 keroppi_coin_r(); - void keroppi_prize_w(u16 data); - u16 thunderl_protection_r(); - void thunderl_protection_w(u16 data); - void utoukond_sound_control_w(u8 data); - u16 pairlove_prot_r(offs_t offset); - void pairlove_prot_w(offs_t offset, u16 data); - void magspeed_lights_w(offs_t offset, u16 data, u16 mem_mask = ~0); - u16 extra_r(); - - DECLARE_VIDEO_START(seta); - - void blandia_palette(palette_device &palette) const; - void zingzip_palette(palette_device &palette) const; - DECLARE_MACHINE_START(wrofaero); - void gundhara_palette(palette_device &palette) const; - void jjsquawk_palette(palette_device &palette) const; - DECLARE_MACHINE_START(keroppi); - DECLARE_MACHINE_START(magspeed); - DECLARE_VIDEO_START(oisipuzl); - u32 screen_update_seta_no_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - u32 screen_update_seta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - DECLARE_WRITE_LINE_MEMBER(screen_vblank_seta_buffer_sprites); - u16 ipl0_ack_r(); - void ipl0_ack_w(u16 data); - u16 ipl1_ack_r(); - void ipl1_ack_w(u16 data); - u16 ipl2_ack_r(); - void ipl2_ack_w(u16 data); - void uPD71054_update_timer(device_t *cpu, int no); - INTERRUPT_GEN_MEMBER(wrofaero_interrupt); - TIMER_CALLBACK_MEMBER(uPD71054_timer_callback); - TIMER_CALLBACK_MEMBER(keroppi_prize_hop_callback); - TIMER_DEVICE_CALLBACK_MEMBER(seta_interrupt_1_and_2); - TIMER_DEVICE_CALLBACK_MEMBER(seta_interrupt_2_and_4); - TIMER_DEVICE_CALLBACK_MEMBER(crazyfgt_interrupt); - - void set_pens(); - void seta_layers_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int sprite_bank_size); - void uPD71054_timer_init(); - DECLARE_WRITE_LINE_MEMBER(pit_out0); - - void atehate_map(address_map &map); - void blandia_map(address_map &map); - void blandia_x1_map(address_map &map); - void blandiap_map(address_map &map); - void blockcar_map(address_map &map); - void blockcarb_map(address_map &map); - void blockcarb_sound_map(address_map &map); - void blockcarb_sound_portmap(address_map &map); - void crazyfgt_map(address_map &map); - void daioh_map(address_map &map); - void daiohp_map(address_map &map); - void drgnunit_map(address_map &map); - void extdwnhl_map(address_map &map); - void jjsquawb_map(address_map &map); - void kamenrid_map(address_map &map); - void keroppi_map(address_map &map); - void krzybowl_map(address_map &map); - void madshark_map(address_map &map); - void magspeed_map(address_map &map); - void msgundam_map(address_map &map); - void msgundamb_map(address_map &map); - void oisipuzl_map(address_map &map); - void orbs_map(address_map &map); - void pairlove_map(address_map &map); - void thunderl_map(address_map &map); - void thunderlbl_map(address_map &map); - void thunderlbl_sound_map(address_map &map); - void thunderlbl_sound_portmap(address_map &map); - void triplfun_map(address_map &map); - void umanclub_map(address_map &map); - void utoukond_map(address_map &map); - void utoukond_sound_io_map(address_map &map); - void utoukond_sound_map(address_map &map); - void wiggie_map(address_map &map); - void wiggie_sound_map(address_map &map); - void wrofaero_map(address_map &map); - void zingzipbl_map(address_map &map); -}; - -class downtown_state : public seta_state -{ -public: - downtown_state(const machine_config &mconfig, device_type type, const char *tag) : - seta_state(mconfig, type, tag), - m_subcpu(*this, "sub"), - m_soundlatch(*this, "soundlatch%u", 1U), - m_rot(*this, "ROT%u", 1), - m_p1(*this, "P1"), - m_p2(*this, "P2"), - m_sharedram(*this, "sharedram"), - m_subbank(*this, "subbank"), - m_sub_ctrl_data(0) - { } - - void calibr50(machine_config &config); - void downtown(machine_config &config); - void metafox(machine_config &config); - void arbalest(machine_config &config); - void tndrcade(machine_config &config); - void twineagl(machine_config &config); - - void init_bank6502(); - void init_downtown(); - void init_twineagl(); - void init_metafox(); - void init_arbalest(); - -protected: - required_device<cpu_device> m_subcpu; - optional_device_array<generic_latch_8_device, 2> m_soundlatch; - - optional_ioport_array<2> m_rot; - optional_ioport m_p1; - optional_ioport m_p2; - - optional_shared_ptr<u8> m_sharedram; - - required_memory_bank m_subbank; - - u8 m_sub_ctrl_data; - - u8 m_twineagl_xram[8]; - u8 m_twineagl_tilebank[4]; - - std::unique_ptr<u16[]> m_downtown_protection; - - u16 metafox_protection_r(offs_t offset); - void twineagl_tilebank_w(offs_t offset, u8 data); - u8 sharedram_68000_r(offs_t offset); - void sharedram_68000_w(offs_t offset, u8 data); - void sub_ctrl_w(offs_t offset, u8 data); - void sub_bankswitch_w(u8 data); - void sub_bankswitch_lockout_w(u8 data); - u8 ff_r(); - u8 downtown_ip_r(offs_t offset); - void calibr50_sub_bankswitch_w(u8 data); - void calibr50_soundlatch2_w(u8 data); - void twineagl_ctrl_w(u8 data); - u16 twineagl_debug_r(); - u16 twineagl_200100_r(offs_t offset); - void twineagl_200100_w(offs_t offset, u16 data, u16 mem_mask = ~0); - u16 downtown_protection_r(offs_t offset); - void downtown_protection_w(offs_t offset, u16 data, u16 mem_mask = ~0); - u16 arbalest_debug_r(); - u8 dsw1_r(); - u8 dsw2_r(); - - DECLARE_MACHINE_RESET(calibr50); - u16 twineagl_tile_offset(u16 code); - - TIMER_DEVICE_CALLBACK_MEMBER(seta_sub_interrupt); - TIMER_DEVICE_CALLBACK_MEMBER(tndrcade_sub_interrupt); - TIMER_DEVICE_CALLBACK_MEMBER(calibr50_interrupt); - - void calibr50_map(address_map &map); - void calibr50_sub_map(address_map &map); - void downtown_map(address_map &map); - void downtown_sub_map(address_map &map); - void metafox_sub_map(address_map &map); - void tndrcade_map(address_map &map); - void tndrcade_sub_map(address_map &map); - void twineagl_sub_map(address_map &map); -}; - -class usclssic_state : public downtown_state -{ -public: - usclssic_state(const machine_config &mconfig, device_type type, const char *tag) : - downtown_state(mconfig, type, tag), - m_upd4701(*this, "upd4701"), - m_buttonmux(*this, "buttonmux"), - m_track_x(*this, "TRACK%u_X", 1U), - m_track_y(*this, "TRACK%u_Y", 1U), - m_port_select(0), - m_tiles_offset(0) - { } - - void usclssic(machine_config &config); - - DECLARE_CUSTOM_INPUT_MEMBER(trackball_x_r); - DECLARE_CUSTOM_INPUT_MEMBER(trackball_y_r); - -protected: - virtual void machine_start() override; - -private: - u16 dsw_r(offs_t offset); - void lockout_w(u8 data); - - void usclssic_palette(palette_device &palette) const; - - u16 tile_offset(u16 code); - u32 screen_update_usclssic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - void usclssic_set_pens(); - - void usclssic_map(address_map &map); - - required_device<upd4701_device> m_upd4701; - required_device<hc157_device> m_buttonmux; - required_ioport_array<2> m_track_x; - required_ioport_array<2> m_track_y; - - u8 m_port_select; - u16 m_tiles_offset; -}; - -class kiwame_state : public seta_state -{ -public: - kiwame_state(const machine_config &mconfig, device_type type, const char *tag) : - seta_state(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_key(*this, "KEY%u", 0U) - { } - - void kiwame(machine_config &config); - -private: - void row_select_w(u16 data); - u16 input_r(offs_t offset); - DECLARE_WRITE_LINE_MEMBER(kiwame_vblank); - - void kiwame_map(address_map &map); - - required_device<tmp68301_device> m_maincpu; - required_ioport_array<10> m_key; - - u16 m_kiwame_row_select; -}; - -class zombraid_state : public seta_state -{ -public: - zombraid_state(const machine_config &mconfig, device_type type, const char *tag) : - seta_state(mconfig, type, tag), - m_adc(*this, "adc"), - m_gun_inputs(*this, {"GUNX1", "GUNY1", "GUNX2", "GUNY2"}), - m_gun_recoil(*this, "Player%u_Gun_Recoil", 1U) - { } - - void zombraid(machine_config &config); - void init_zombraid(); - -protected: - DECLARE_MACHINE_START(zombraid); - -private: - double adc_cb(u8 input); - u16 gun_r(); - void gun_w(u16 data); - - void zombraid_map(address_map &map); - void zombraid_x1_map(address_map &map); - - required_device<adc083x_device> m_adc; - required_ioport_array<4> m_gun_inputs; - output_finder<2> m_gun_recoil; -}; - -class setaroul_state : public seta_state -{ -public: - setaroul_state(const machine_config &mconfig, device_type type, const char *tag) : - seta_state(mconfig, type, tag), - m_rtc(*this, "rtc"), - m_hopper(*this, "hopper"), - m_bet(*this, "BET.%02X", 0), - m_mux(0), - m_pay(0), - m_led(0), - m_coin_start_cycles(0) - { } - - void setaroul(machine_config &config); - - DECLARE_INPUT_CHANGED_MEMBER(coin_drop_start); - DECLARE_CUSTOM_INPUT_MEMBER(coin_sensors_r); - DECLARE_CUSTOM_INPUT_MEMBER(hopper_sensors_r); - - DECLARE_WRITE_LINE_MEMBER(screen_vblank); - -private: - void rtc_w(u16 data); - u16 rtc_r(offs_t offset); - - u16 inputs_r(); - void mux_w(u16 data); - - void pay_w(u8 data); - void led_w(u8 data); - - u16 spritecode_r(offs_t offset); - void spritecode_w(offs_t offset, u16 data); - - void spriteylow_w(offs_t offset, u16 data); - - void spritectrl_w(offs_t offset, u16 data); - - DECLARE_MACHINE_START(setaroul); - DECLARE_MACHINE_RESET(setaroul); - - void setaroul_palette(palette_device &palette) const; - u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - - TIMER_DEVICE_CALLBACK_MEMBER(interrupt); - - void setaroul_map(address_map &map); - - required_device<upd4992_device> m_rtc; // ! Actually D4911C ! - required_device<ticket_dispenser_device> m_hopper; - required_ioport_array<26> m_bet; - - u8 m_mux; - - u8 m_pay; - u8 m_led; - - uint64_t m_coin_start_cycles; - - void show_outputs(); -}; - -class jockeyc_state : public seta_state -{ -public: - jockeyc_state(const machine_config &mconfig, device_type type, const char *tag) : - seta_state(mconfig, type, tag), - m_rtc(*this, "rtc"), - m_hopper1(*this, "hopper1"), m_hopper2(*this, "hopper2"), - m_inttoote_700000(*this, "inttoote_700000"), - m_key1(*this, "KEY1.%u", 0), m_key2(*this, "KEY2.%u", 0), - m_dsw1(*this, "DSW1"), - m_dsw2_3(*this, "DSW2_3"), - m_cabinet(*this, "CABINET"), - m_p1x(*this, "P1X"), - m_p1y(*this, "P1Y"), - m_out_cancel(*this, "cancel%u", 1U), - m_out_payout(*this, "payout%u", 1U), - m_out_start(*this, "start%u", 1U), - m_out_help(*this, "help"), - m_out_itstart(*this, "start"), - m_mux(0), - m_out(0) - { } - - void inttoote(machine_config &config); - void jockeyc(machine_config &config); - - void init_inttoote(); - -private: - void rtc_w(u16 data); - u16 rtc_r(offs_t offset); - - u16 dsw_r(offs_t offset); - u16 comm_r(); - - u16 mux_r(); - void jockeyc_mux_w(offs_t offset, u16 data, u16 mem_mask = ~0); - void jockeyc_out_w(offs_t offset, u16 data, u16 mem_mask = ~0); - - u16 trackball_r(offs_t offset); - - DECLARE_MACHINE_START(jockeyc); - DECLARE_MACHINE_START(inttoote); - - TIMER_DEVICE_CALLBACK_MEMBER(interrupt); - - void inttoote_mux_w(offs_t offset, u16 data, u16 mem_mask = ~0); - void inttoote_out_w(offs_t offset, u16 data, u16 mem_mask = ~0); - u16 inttoote_700000_r(offs_t offset); - - void inttoote_map(address_map &map); - void jockeyc_map(address_map &map); - - required_device<upd4992_device> m_rtc; // ! Actually D4911C ! - required_device<ticket_dispenser_device> m_hopper1, m_hopper2; // the 2nd hopper is optional - - optional_shared_ptr<u16> m_inttoote_700000; - required_ioport_array<5> m_key1, m_key2; - required_ioport m_dsw1, m_dsw2_3; - optional_ioport m_cabinet; - optional_ioport m_p1x; - optional_ioport m_p1y; - - output_finder<2> m_out_cancel; - output_finder<2> m_out_payout; - output_finder<2> m_out_start; - output_finder<> m_out_help; - output_finder<> m_out_itstart; - - u16 m_mux; - u16 m_out; - - void update_hoppers(); - void show_outputs(); -}; - -#endif // MAME_INCLUDES_SETA_H |