diff options
Diffstat (limited to 'src/mame/includes/gaelco3d.h')
-rw-r--r-- | src/mame/includes/gaelco3d.h | 182 |
1 files changed, 0 insertions, 182 deletions
diff --git a/src/mame/includes/gaelco3d.h b/src/mame/includes/gaelco3d.h deleted file mode 100644 index 99e76b96539..00000000000 --- a/src/mame/includes/gaelco3d.h +++ /dev/null @@ -1,182 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Aaron Giles -/************************************************************************* - - Driver for Gaelco 3D games - - driver by Aaron Giles - -**************************************************************************/ -#ifndef MAME_INCLUDES_GAELCO3D_H -#define MAME_INCLUDES_GAELCO3D_H - -#pragma once - -#include "cpu/adsp2100/adsp2100.h" -#include "cpu/tms32031/tms32031.h" -#include "machine/74259.h" -#include "machine/eepromser.h" -#include "machine/gaelco3d.h" -#include "machine/gen_latch.h" -#include "machine/timer.h" -#include "sound/dmadac.h" -#include "video/poly.h" -#include "screen.h" - -#define SOUND_CHANNELS 4 - - -class gaelco3d_state : public driver_device -{ -public: - gaelco3d_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_adsp_ram_base(*this, "adsp_ram_base") - , m_m68k_ram_base(*this, "m68k_ram_base", 0) - , m_adsp_control_regs(*this, "adsp_regs") - , m_adsp_fastram_base(*this, "adsp_fastram") - , m_maincpu(*this, "maincpu") - , m_adsp(*this, "adsp") - , m_eeprom(*this, "eeprom") - , m_tms(*this, "tms") - , m_dmadac(*this, "dac%u", 0U) - , m_serial(*this, "serial") - , m_screen(*this, "screen") - , m_soundlatch(*this, "soundlatch") - , m_mainlatch(*this, "mainlatch") - , m_outlatch(*this, "outlatch") - , m_adsp_autobuffer_timer(*this, "adsp_timer") - , m_paletteram16(*this, "paletteram") - , m_paletteram32(*this, "paletteram") - , m_analog(*this, "ANALOG%u", 0U) - , m_adsp_bank(*this, "adspbank") - { } - - void footbpow(machine_config &config); - void gaelco3d2(machine_config &config); - void gaelco3d(machine_config &config); - - template <int N> DECLARE_READ_LINE_MEMBER(analog_bit_r); - template <int N> DECLARE_READ_LINE_MEMBER(fp_analog_bit_r); - -private: - virtual void machine_start() override; - virtual void machine_reset() override; - virtual void video_start() override; - - struct gaelco3d_object_data - { - uint32_t tex, color; - float ooz_dx, ooz_dy, ooz_base; - float uoz_dx, uoz_dy, uoz_base; - float voz_dx, voz_dy, voz_base; - float z0; - }; - - class gaelco3d_renderer : public poly_manager<float, gaelco3d_object_data, 1, 2000> - { - public: - gaelco3d_renderer(gaelco3d_state &state); - ~gaelco3d_renderer() {} - - bitmap_ind16 &screenbits() { return m_screenbits; } - uint32_t polygons() { uint32_t result = m_polygons; m_polygons = 0; return result; } - - void render_poly(screen_device &screen, uint32_t *polydata); - - protected: - gaelco3d_state &m_state; - - private: - bitmap_ind16 m_screenbits; - bitmap_ind16 m_zbuffer; - uint32_t m_polygons; - offs_t m_texture_size; - offs_t m_texmask_size; - std::unique_ptr<uint8_t[]> m_texture; - std::unique_ptr<uint8_t[]> m_texmask; - - void render_noz_noperspective(int32_t scanline, const extent_t &extent, const gaelco3d_object_data &extra, int threadid); - void render_normal(int32_t scanline, const extent_t &extent, const gaelco3d_object_data &extra, int threadid); - void render_alphablend(int32_t scanline, const extent_t &extent, const gaelco3d_object_data &extra, int threadid); - }; - - required_shared_ptr<uint32_t> m_adsp_ram_base; - required_shared_ptr<uint16_t> m_m68k_ram_base; - required_shared_ptr<uint16_t> m_adsp_control_regs; - required_shared_ptr<uint16_t> m_adsp_fastram_base; - required_device<cpu_device> m_maincpu; - required_device<adsp21xx_device> m_adsp; - required_device<eeprom_serial_93cxx_device> m_eeprom; - required_device<tms32031_device> m_tms; - required_device_array<dmadac_sound_device, SOUND_CHANNELS> m_dmadac; - required_device<gaelco_serial_device> m_serial; - required_device<screen_device> m_screen; - required_device<generic_latch_8_device> m_soundlatch; - required_device<ls259_device> m_mainlatch; - required_device<ls259_device> m_outlatch; - required_device<timer_device> m_adsp_autobuffer_timer; - - optional_shared_ptr<uint16_t> m_paletteram16; - optional_shared_ptr<uint32_t> m_paletteram32; - optional_ioport_array<4> m_analog; - required_memory_bank m_adsp_bank; - - uint8_t m_sound_status; - offs_t m_tms_offset_xor; - uint8_t m_analog_ports[4]; - uint32_t m_fp_analog_ports[2]; - uint32_t m_fp_lenght[2]; - uint8_t m_fp_clock; - uint8_t m_fp_state; - uint8_t m_framenum; - uint8_t m_adsp_ireg; - offs_t m_adsp_ireg_base; - offs_t m_adsp_incs; - offs_t m_adsp_size; - std::unique_ptr<rgb_t[]> m_palette; - std::unique_ptr<uint32_t[]> m_polydata_buffer; - uint32_t m_polydata_count; - int m_lastscan; - int m_video_changed; - std::unique_ptr<gaelco3d_renderer> m_poly; - - void irq_ack_w(uint16_t data); - uint16_t sound_status_r(offs_t offset, uint16_t mem_mask = ~0); - void sound_status_w(uint16_t data); - DECLARE_WRITE_LINE_MEMBER(analog_port_clock_w); - DECLARE_WRITE_LINE_MEMBER(analog_port_latch_w); - uint32_t tms_m68k_ram_r(offs_t offset); - void tms_m68k_ram_w(offs_t offset, uint32_t data); - void tms_iack_w(offs_t offset, uint8_t data); - DECLARE_WRITE_LINE_MEMBER(tms_reset_w); - DECLARE_WRITE_LINE_MEMBER(tms_irq_w); - DECLARE_WRITE_LINE_MEMBER(tms_control3_w); - void adsp_control_w(offs_t offset, uint16_t data); - void adsp_rombank_w(offs_t offset, uint16_t data); - DECLARE_WRITE_LINE_MEMBER(radikalb_lamp_w); - DECLARE_WRITE_LINE_MEMBER(unknown_137_w); - DECLARE_WRITE_LINE_MEMBER(unknown_13a_w); - void gaelco3d_render_w(uint32_t data); - void gaelco3d_paletteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); - void gaelco3d_paletteram_020_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); - DECLARE_WRITE_LINE_MEMBER(ser_irq); - uint16_t eeprom_data_r(offs_t offset, uint16_t mem_mask = ~0); - - DECLARE_MACHINE_RESET(gaelco3d2); - DECLARE_MACHINE_RESET(common); - uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - INTERRUPT_GEN_MEMBER(vblank_gen); - TIMER_DEVICE_CALLBACK_MEMBER(adsp_autobuffer_irq); - void gaelco3d_render(screen_device &screen); - void adsp_tx_callback(offs_t offset, uint32_t data); - DECLARE_WRITE_LINE_MEMBER(fp_analog_clock_w); - - void adsp_data_map(address_map &map); - void adsp_program_map(address_map &map); - void main020_map(address_map &map); - void main_map(address_map &map); - void tms_map(address_map &map); -}; - -#endif // MAME_INCLUDES_GAELCO3D_H |