diff options
Diffstat (limited to 'src/mame/includes')
203 files changed, 11127 insertions, 0 deletions
diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h new file mode 100644 index 00000000000..b451b5a7a5e --- /dev/null +++ b/src/mame/includes/8080bw.h @@ -0,0 +1,86 @@ +/************************************************************************* + + 8080bw.h + +*************************************************************************/ + +#include "sound/discrete.h" + + +#define CABINET_PORT_TAG "CAB" + + +/*----------- defined in drivers/8080bw.c -----------*/ + +UINT8 polaris_get_cloud_pos(void); + + +/*----------- defined in audio/8080bw.c -----------*/ + +WRITE8_HANDLER( invadpt2_sh_port_1_w ); +WRITE8_HANDLER( invadpt2_sh_port_2_w ); + +WRITE8_HANDLER( spcewars_sh_port_w ); + +WRITE8_HANDLER( lrescue_sh_port_1_w ); +WRITE8_HANDLER( lrescue_sh_port_2_w ); +extern struct Samplesinterface lrescue_samples_interface; + +WRITE8_HANDLER( cosmo_sh_port_2_w ); + +WRITE8_HANDLER( ballbomb_sh_port_1_w ); +WRITE8_HANDLER( ballbomb_sh_port_2_w ); + +WRITE8_HANDLER( indianbt_sh_port_1_w ); +WRITE8_HANDLER( indianbt_sh_port_2_w ); +WRITE8_HANDLER( indianbt_sh_port_3_w ); +DISCRETE_SOUND_EXTERN( indianbt ); + +WRITE8_HANDLER( polaris_sh_port_1_w ); +WRITE8_HANDLER( polaris_sh_port_2_w ); +WRITE8_HANDLER( polaris_sh_port_3_w ); +DISCRETE_SOUND_EXTERN( polaris ); + +MACHINE_RESET( schaser ); +MACHINE_START( schaser ); +WRITE8_HANDLER( schaser_sh_port_1_w ); +WRITE8_HANDLER( schaser_sh_port_2_w ); +extern struct SN76477interface schaser_sn76477_interface; +DISCRETE_SOUND_EXTERN( schaser ); + +WRITE8_HANDLER( rollingc_sh_port_w ); + +WRITE8_HANDLER( invrvnge_sh_port_w ); + +WRITE8_HANDLER( lupin3_sh_port_1_w ); +WRITE8_HANDLER( lupin3_sh_port_2_w ); + +WRITE8_HANDLER( schasrcv_sh_port_1_w ); +WRITE8_HANDLER( schasrcv_sh_port_2_w ); + +WRITE8_HANDLER( yosakdon_sh_port_1_w ); +WRITE8_HANDLER( yosakdon_sh_port_2_w ); + +WRITE8_HANDLER( shuttlei_sh_port_1_w ); +WRITE8_HANDLER( shuttlei_sh_port_2_w ); + + +/*----------- defined in video/8080bw.c -----------*/ + +extern UINT8 *c8080bw_colorram; + +void c8080bw_flip_screen_w(int data); +void c8080bw_screen_red_w(int data); +void schaser_background_control_w(int data); + +VIDEO_UPDATE( invadpt2 ); +VIDEO_UPDATE( ballbomb ); +VIDEO_UPDATE( schaser ); +VIDEO_UPDATE( schasrcv ); +VIDEO_UPDATE( rollingc ); +VIDEO_UPDATE( polaris ); +VIDEO_UPDATE( lupin3 ); +VIDEO_UPDATE( cosmo ); +VIDEO_UPDATE( indianbt ); +VIDEO_UPDATE( shuttlei ); +VIDEO_UPDATE( sflush ); diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h new file mode 100644 index 00000000000..9b4b56d0e17 --- /dev/null +++ b/src/mame/includes/amiga.h @@ -0,0 +1,417 @@ +/*************************************************************************** +Amiga Computer / Arcadia Game System + +Driver by: + +Ernesto Corvi & Mariusz Wojcieszek + +***************************************************************************/ + +#ifndef __AMIGA_H__ +#define __AMIGA_H__ + +#include "sound/custom.h" + + +/* A bit of a trick here: some registers are 32-bit. In order to efficiently */ +/* read them on both big-endian and little-endian systems, we store the custom */ +/* registers in 32-bit natural order. This means we need to XOR the register */ +/* address with 1 on little-endian systems. */ +#define CUSTOM_REG(x) (amiga_custom_regs[BYTE_XOR_BE(x)]) +#define CUSTOM_REG_SIGNED(x) ((INT16)CUSTOM_REG(x)) +#define CUSTOM_REG_LONG(x) (*(UINT32 *)&amiga_custom_regs[x]) + +/* + A = Angus + D = Denise + P = Paula + + R = read-only + ER = early read + W = write-only + S = strobe +*/ +#define REG_BLTDDAT (0x000/2) /* ER A Blitter destination early read (dummy address) */ +#define REG_DMACONR (0x002/2) /* R A P DMA control (and blitter status) read */ +#define REG_VPOSR (0x004/2) /* R A Read vert most signif. bit (and frame flop) */ +#define REG_VHPOSR (0x006/2) /* R A Read vert and horiz. position of beam */ +#define REG_DSKDATR (0x008/2) /* ER P Disk data early read (dummy address) */ +#define REG_JOY0DAT (0x00A/2) /* R D Joystick-mouse 0 data (vert,horiz) */ +#define REG_JOY1DAT (0x00C/2) /* R D Joystick-mouse 1 data (vert,horiz) */ +#define REG_CLXDAT (0x00E/2) /* R D Collision data register (read and clear) */ +#define REG_ADKCONR (0x010/2) /* R P Audio, disk control register read */ +#define REG_POT0DAT (0x012/2) /* R P Pot counter pair 0 data (vert,horiz) */ +#define REG_POT1DAT (0x014/2) /* R P Pot counter pair 1 data (vert,horiz) */ +#define REG_POTGOR (0x016/2) /* R P Pot port data read (formerly POTINP) */ +#define REG_SERDATR (0x018/2) /* R P Serial port data and status read */ +#define REG_DSKBYTR (0x01A/2) /* R P Disk data byte and status read */ +#define REG_INTENAR (0x01C/2) /* R P Interrupt enable bits read */ +#define REG_INTREQR (0x01E/2) /* R P Interrupt request bits read */ +#define REG_DSKPTH (0x020/2) /* W A Disk pointer (high 3 bits) */ +#define REG_DSKPTL (0x022/2) /* W A Disk pointer (low 15 bits) */ +#define REG_DSKLEN (0x024/2) /* W P Disk length */ +#define REG_DSKDAT (0x026/2) /* W P Disk DMA data write */ +#define REG_REFPTR (0x028/2) /* W A Refresh pointer */ +#define REG_VPOSW (0x02A/2) /* W A Write vert most signif. bit (and frame flop) */ +#define REG_VHPOSW (0x02C/2) /* W A Write vert and horiz position of beam */ +#define REG_COPCON (0x02E/2) /* W A Coprocessor control register (CDANG) */ +#define REG_SERDAT (0x030/2) /* W P Serial port data and stop bits write */ +#define REG_SERPER (0x032/2) /* W P Serial port period and control */ +#define REG_POTGO (0x034/2) /* W P Pot port data write and start */ +#define REG_JOYTEST (0x036/2) /* W D Write to all 4 joystick-mouse counters at once */ +#define REG_STREQU (0x038/2) /* S D Strobe for horiz sync with VB and EQU */ +#define REG_STRVBL (0x03A/2) /* S D Strobe for horiz sync with VB (vert. blank) */ +#define REG_STRHOR (0x03C/2) /* S D P Strobe for horiz sync */ +#define REG_STRLONG (0x03E/2) /* S D Strobe for identification of long horiz. line. */ +#define REG_BLTCON0 (0x040/2) /* W A Blitter control register 0 */ +#define REG_BLTCON1 (0x042/2) /* W A Blitter control register 1 */ +#define REG_BLTAFWM (0x044/2) /* W A Blitter first word mask for source A */ +#define REG_BLTALWM (0x046/2) /* W A Blitter last word mask for source A */ +#define REG_BLTCPTH (0x048/2) /* W A Blitter pointer to source C (high 3 bits) */ +#define REG_BLTCPTL (0x04A/2) /* W A Blitter pointer to source C (low 15 bits) */ +#define REG_BLTBPTH (0x04C/2) /* W A Blitter pointer to source B (high 3 bits) */ +#define REG_BLTBPTL (0x04E/2) /* W A Blitter pointer to source B (low 15 bits) */ +#define REG_BLTAPTH (0x050/2) /* W A Blitter pointer to source A (high 3 bits) */ +#define REG_BLTAPTL (0x052/2) /* W A Blitter pointer to source A (low 15 bits) */ +#define REG_BLTDPTH (0x054/2) /* W A Blitter pointer to destination D (high 3 bits) */ +#define REG_BLTDPTL (0x056/2) /* W A Blitter pointer to destination D (low 15 bits) */ +#define REG_BLTSIZE (0x058/2) /* W A Blitter start and size (window width, height) */ +#define REG_BLTCON0L (0x05A/2) /* W A Blitter control 0, lower 8 bits (minterms) */ +#define REG_BLTSIZV (0x05C/2) /* W A Blitter V size (for 15 bit vertical size) (ECS) */ +#define REG_BLTSIZH (0x05E/2) /* W A Blitter H size and start (for 11 bit H size) (ECS) */ +#define REG_BLTCMOD (0x060/2) /* W A Blitter modulo for source C */ +#define REG_BLTBMOD (0x062/2) /* W A Blitter modulo for source B */ +#define REG_BLTAMOD (0x064/2) /* W A Blitter modulo for source A */ +#define REG_BLTDMOD (0x066/2) /* W A Blitter modulo for destination D */ +#define REG_BLTCDAT (0x070/2) /* W A Blitter source C data register */ +#define REG_BLTBDAT (0x072/2) /* W A Blitter source B data reglster */ +#define REG_BLTADAT (0x074/2) /* W A Blitter source A data register */ +#define REG_DENISEID (0x07C/2) /* R D Denise ID: OCS = 0xFF, ECS = 0xFC, AGA = 0xF8 */ +#define REG_DSRSYNC (0x07E/2) /* W P Disk sync pattern register for disk read */ +#define REG_COP1LCH (0x080/2) /* W A Coprocessor first location register (high 3 bits) */ +#define REG_COP1LCL (0x082/2) /* W A Coprocessor first location register (low 15 bits) */ +#define REG_COP2LCH (0x084/2) /* W A Coprocessor second location register (high 3 bits) */ +#define REG_COP2LCL (0x086/2) /* W A Coprocessor second location register (low 15 bits) */ +#define REG_COPJMP1 (0x088/2) /* S A Coprocessor restart at first location */ +#define REG_COPJMP2 (0x08A/2) /* S A Coprocessor restart at second location */ +#define REG_COPINS (0x08C/2) /* W A Coprocessor instruction fetch identify */ +#define REG_DIWSTRT (0x08E/2) /* W A Display window start (upper left vert-horiz position) */ +#define REG_DIWSTOP (0x090/2) /* W A Display window stop (lower right vert.-horiz. position) */ +#define REG_DDFSTRT (0x092/2) /* W A Display bit plane data fetch start (horiz. position) */ +#define REG_DDFSTOP (0x094/2) /* W A Display bit plane data fetch stop (horiz. position) */ +#define REG_DMACON (0x096/2) /* W A D P DMA control write (clear or set) */ +#define REG_CLXCON (0x098/2) /* W D Collision control */ +#define REG_INTENA (0x09A/2) /* W P Interrupt enable bits (clear or set bits) */ +#define REG_INTREQ (0x09C/2) /* W P Interrupt request bits (clear or set bits) */ +#define REG_ADKCON (0x09E/2) /* W P Audio, disk, UART control */ +#define REG_AUD0LCH (0x0A0/2) /* W A Audio channel 0 location (high 3 bits) */ +#define REG_AUD0LCL (0x0A2/2) /* W A Audio channel 0 location (low 15 bits) */ +#define REG_AUD0LEN (0x0A4/2) /* W P Audio channel 0 length */ +#define REG_AUD0PER (0x0A6/2) /* W P Audio channel 0 period */ +#define REG_AUD0VOL (0x0A8/2) /* W P Audio channel 0 volume */ +#define REG_AUD0DAT (0x0AA/2) /* W P Audio channel 0 data */ +#define REG_AUD1LCH (0x0B0/2) /* W A Audio channel 1 location (high 3 bits) */ +#define REG_AUD1LCL (0x0B2/2) /* W A Audio channel 1 location (low 15 bits) */ +#define REG_AUD1LEN (0x0B4/2) /* W P Audio channel 1 length */ +#define REG_AUD1PER (0x0B6/2) /* W P Audio channel 1 period */ +#define REG_AUD1VOL (0x0B8/2) /* W P Audio channel 1 volume */ +#define REG_AUD1DAT (0x0BA/2) /* W P Audio channel 1 data */ +#define REG_AUD2LCH (0x0C0/2) /* W A Audio channel 2 location (high 3 bits) */ +#define REG_AUD2LCL (0x0C2/2) /* W A Audio channel 2 location (low 15 bits) */ +#define REG_AUD2LEN (0x0C4/2) /* W P Audio channel 2 length */ +#define REG_AUD2PER (0x0C6/2) /* W P Audio channel 2 period */ +#define REG_AUD2VOL (0x0C8/2) /* W P Audio channel 2 volume */ +#define REG_AUD2DAT (0x0CA/2) /* W P Audio channel 2 data */ +#define REG_AUD3LCH (0x0D0/2) /* W A Audio channel 3 location (high 3 bits) */ +#define REG_AUD3LCL (0x0D2/2) /* W A Audio channel 3 location (low 15 bits) */ +#define REG_AUD3LEN (0x0D4/2) /* W P Audio channel 3 length */ +#define REG_AUD3PER (0x0D6/2) /* W P Audio channel 3 period */ +#define REG_AUD3VOL (0x0D8/2) /* W P Audio channel 3 volume */ +#define REG_AUD3DAT (0x0DA/2) /* W P Audio channel 3 data */ +#define REG_BPL1PTH (0x0E0/2) /* W A Bit plane 1 pointer (high 3 bits) */ +#define REG_BPL1PTL (0x0E2/2) /* W A Bit plane 1 pointer (low 15 bits) */ +#define REG_BPL2PTH (0x0E4/2) /* W A Bit plane 2 pointer (high 3 bits) */ +#define REG_BPL2PTL (0x0E6/2) /* W A Bit plane 2 pointer (low 15 bits) */ +#define REG_BPL3PTH (0x0E8/2) /* W A Bit plane 3 pointer (high 3 bits) */ +#define REG_BPL3PTL (0x0EA/2) /* W A Bit plane 3 pointer (low 15 bits) */ +#define REG_BPL4PTH (0x0EC/2) /* W A Bit plane 4 pointer (high 3 bits) */ +#define REG_BPL4PTL (0x0EE/2) /* W A Bit plane 4 pointer (low 15 bits) */ +#define REG_BPL5PTH (0x0F0/2) /* W A Bit plane 5 pointer (high 3 bits) */ +#define REG_BPL5PTL (0x0F2/2) /* W A Bit plane 5 pointer (low 15 bits) */ +#define REG_BPL6PTH (0x0F4/2) /* W A Bit plane 6 pointer (high 3 bits) */ +#define REG_BPL6PTL (0x0F6/2) /* W A Bit plane 6 pointer (low 15 bits) */ +#define REG_BPLCON0 (0x100/2) /* W A D Bit plane control register (misc. control bits) */ +#define REG_BPLCON1 (0x102/2) /* W D Bit plane control reg. (scroll value PF1, PF2) */ +#define REG_BPLCON2 (0x104/2) /* W D Bit plane control reg. (priority control) */ +#define REG_BPL1MOD (0x108/2) /* W A Bit plane modulo (odd planes) */ +#define REG_BPL2MOD (0x10A/2) /* W A Bit Plane modulo (even planes) */ +#define REG_BPL1DAT (0x110/2) /* W D Bit plane 1 data (parallel-to-serial convert) */ +#define REG_BPL2DAT (0x112/2) /* W D Bit plane 2 data (parallel-to-serial convert) */ +#define REG_BPL3DAT (0x114/2) /* W D Bit plane 3 data (parallel-to-serial convert) */ +#define REG_BPL4DAT (0x116/2) /* W D Bit plane 4 data (parallel-to-serial convert) */ +#define REG_BPL5DAT (0x118/2) /* W D Bit plane 5 data (parallel-to-serial convert) */ +#define REG_BPL6DAT (0x11A/2) /* W D Bit plane 6 data (parallel-to-serial convert) */ +#define REG_SPR0PTH (0x120/2) /* W A Sprite 0 pointer (high 3 bits) */ +#define REG_SPR0PTL (0x122/2) /* W A Sprite 0 pointer (low 15 bits) */ +#define REG_SPR1PTH (0x124/2) /* W A Sprite 1 pointer (high 3 bits) */ +#define REG_SPR1PTL (0x126/2) /* W A Sprite 1 pointer (low 15 bits) */ +#define REG_SPR2PTH (0x128/2) /* W A Sprite 2 pointer (high 3 bits) */ +#define REG_SPR2PTL (0x12A/2) /* W A Sprite 2 pointer (low 15 bits) */ +#define REG_SPR3PTH (0x12C/2) /* W A Sprite 3 pointer (high 3 bits) */ +#define REG_SPR3PTL (0x12E/2) /* W A Sprite 3 pointer (low 15 bits) */ +#define REG_SPR4PTH (0x130/2) /* W A Sprite 4 pointer (high 3 bits) */ +#define REG_SPR4PTL (0x132/2) /* W A Sprite 4 pointer (low 15 bits) */ +#define REG_SPR5PTH (0x134/2) /* W A Sprite 5 pointer (high 3 bits) */ +#define REG_SPR5PTL (0x136/2) /* W A Sprite 5 pointer (low 15 bits) */ +#define REG_SPR6PTH (0x138/2) /* W A Sprite 6 pointer (high 3 bits) */ +#define REG_SPR6PTL (0x13A/2) /* W A Sprite 6 pointer (low 15 bits) */ +#define REG_SPR7PTH (0x13C/2) /* W A Sprite 7 pointer (high 3 bits) */ +#define REG_SPR7PTL (0x13E/2) /* W A Sprite 7 pointer (low 15 bits) */ +#define REG_SPR0POS (0x140/2) /* W A D Sprite 0 vert-horiz start position data */ +#define REG_SPR0CTL (0x142/2) /* W A D Sprite 0 vert stop position and control data */ +#define REG_SPR0DATA (0x144/2) /* W D Sprite 0 image data register A */ +#define REG_SPR0DATB (0x146/2) /* W D Sprite 0 image data register B */ +#define REG_SPR1POS (0x148/2) /* W A D Sprite 1 vert-horiz start position data */ +#define REG_SPR1CTL (0x14A/2) /* W A D Sprite 1 vert stop position and control data */ +#define REG_SPR1DATA (0x14C/2) /* W D Sprite 1 image data register A */ +#define REG_SPR1DATB (0x14E/2) /* W D Sprite 1 image data register B */ +#define REG_SPR2POS (0x150/2) /* W A D Sprite 2 vert-horiz start position data */ +#define REG_SPR2CTL (0x152/2) /* W A D Sprite 2 vert stop position and control data */ +#define REG_SPR2DATA (0x154/2) /* W D Sprite 2 image data register A */ +#define REG_SPR2DATB (0x156/2) /* W D Sprite 2 image data register B */ +#define REG_SPR3POS (0x158/2) /* W A D Sprite 3 vert-horiz start position data */ +#define REG_SPR3CTL (0x15A/2) /* W A D Sprite 3 vert stop position and control data */ +#define REG_SPR3DATA (0x15C/2) /* W D Sprite 3 image data register A */ +#define REG_SPR3DATB (0x15E/2) /* W D Sprite 3 image data register B */ +#define REG_SPR4POS (0x160/2) /* W A D Sprite 4 vert-horiz start position data */ +#define REG_SPR4CTL (0x162/2) /* W A D Sprite 4 vert stop position and control data */ +#define REG_SPR4DATA (0x164/2) /* W D Sprite 4 image data register A */ +#define REG_SPR4DATB (0x166/2) /* W D Sprite 4 image data register B */ +#define REG_SPR5POS (0x168/2) /* W A D Sprite 5 vert-horiz start position data */ +#define REG_SPR5CTL (0x16A/2) /* W A D Sprite 5 vert stop position and control data */ +#define REG_SPR5DATA (0x16C/2) /* W D Sprite 5 image data register A */ +#define REG_SPR5DATB (0x16E/2) /* W D Sprite 5 image data register B */ +#define REG_SPR6POS (0x170/2) /* W A D Sprite 6 vert-horiz start position data */ +#define REG_SPR6CTL (0x172/2) /* W A D Sprite 6 vert stop position and control data */ +#define REG_SPR6DATA (0x174/2) /* W D Sprite 6 image data register A */ +#define REG_SPR6DATB (0x176/2) /* W D Sprite 6 image data register B */ +#define REG_SPR7POS (0x178/2) /* W A D Sprite 7 vert-horiz start position data */ +#define REG_SPR7CTL (0x17A/2) /* W A D Sprite 7 vert stop position and control data */ +#define REG_SPR7DATA (0x17C/2) /* W D Sprite 7 image data register A */ +#define REG_SPR7DATB (0x17E/2) /* W D Sprite 7 image data register B */ +#define REG_COLOR00 (0x180/2) /* W D Color table 00 */ +#define REG_COLOR01 (0x182/2) /* W D Color table 01 */ +#define REG_COLOR02 (0x184/2) /* W D Color table 02 */ +#define REG_COLOR03 (0x186/2) /* W D Color table 03 */ +#define REG_COLOR04 (0x188/2) /* W D Color table 04 */ +#define REG_COLOR05 (0x18A/2) /* W D Color table 05 */ +#define REG_COLOR06 (0x18C/2) /* W D Color table 06 */ +#define REG_COLOR07 (0x18E/2) /* W D Color table 07 */ +#define REG_COLOR08 (0x190/2) /* W D Color table 08 */ +#define REG_COLOR09 (0x192/2) /* W D Color table 09 */ +#define REG_COLOR10 (0x194/2) /* W D Color table 10 */ +#define REG_COLOR11 (0x196/2) /* W D Color table 11 */ +#define REG_COLOR12 (0x198/2) /* W D Color table 12 */ +#define REG_COLOR13 (0x19A/2) /* W D Color table 13 */ +#define REG_COLOR14 (0x19C/2) /* W D Color table 14 */ +#define REG_COLOR15 (0x19E/2) /* W D Color table 15 */ +#define REG_COLOR16 (0x1A0/2) /* W D Color table 16 */ +#define REG_COLOR17 (0x1A2/2) /* W D Color table 17 */ +#define REG_COLOR18 (0x1A4/2) /* W D Color table 18 */ +#define REG_COLOR19 (0x1A6/2) /* W D Color table 19 */ +#define REG_COLOR20 (0x1A8/2) /* W D Color table 20 */ +#define REG_COLOR21 (0x1AA/2) /* W D Color table 21 */ +#define REG_COLOR22 (0x1AC/2) /* W D Color table 22 */ +#define REG_COLOR23 (0x1AE/2) /* W D Color table 23 */ +#define REG_COLOR24 (0x1B0/2) /* W D Color table 24 */ +#define REG_COLOR25 (0x1B2/2) /* W D Color table 25 */ +#define REG_COLOR26 (0x1B4/2) /* W D Color table 26 */ +#define REG_COLOR27 (0x1B6/2) /* W D Color table 27 */ +#define REG_COLOR28 (0x1B8/2) /* W D Color table 28 */ +#define REG_COLOR29 (0x1BA/2) /* W D Color table 29 */ +#define REG_COLOR30 (0x1BC/2) /* W D Color table 30 */ +#define REG_COLOR31 (0x1BE/2) /* W D Color table 31 */ + +/* DMACON bit layout */ +#define DMACON_AUD0EN 0x0001 +#define DMACON_AUD1EN 0x0002 +#define DMACON_AUD2EN 0x0004 +#define DMACON_AUD3EN 0x0008 +#define DMACON_DSKEN 0x0010 +#define DMACON_SPREN 0x0020 +#define DMACON_BLTEN 0x0040 +#define DMACON_COPEN 0x0080 +#define DMACON_BPLEN 0x0100 +#define DMACON_DMAEN 0x0200 +#define DMACON_BLTPRI 0x0400 +#define DMACON_RSVED1 0x0800 +#define DMACON_RSVED2 0x1000 +#define DMACON_BZERO 0x2000 +#define DMACON_BBUSY 0x4000 +#define DMACON_SETCLR 0x8000 + +/* BPLCON0 bit layout */ +#define BPLCON0_RSVED1 0x0001 +#define BPLCON0_ERSY 0x0002 +#define BPLCON0_LACE 0x0004 +#define BPLCON0_LPEN 0x0008 +#define BPLCON0_RSVED2 0x0010 +#define BPLCON0_RSVED3 0x0020 +#define BPLCON0_RSVED4 0x0040 +#define BPLCON0_RSVED5 0x0080 +#define BPLCON0_GAUD 0x0100 +#define BPLCON0_COLOR 0x0200 +#define BPLCON0_DBLPF 0x0400 +#define BPLCON0_HOMOD 0x0800 +#define BPLCON0_BPU0 0x1000 +#define BPLCON0_BPU1 0x2000 +#define BPLCON0_BPU2 0x4000 +#define BPLCON0_HIRES 0x8000 + +/* INTENA/INTREQ bit layout */ +#define INTENA_TBE 0x0001 +#define INTENA_DSKBLK 0x0002 +#define INTENA_SOFT 0x0004 +#define INTENA_PORTS 0x0008 +#define INTENA_COPER 0x0010 +#define INTENA_VERTB 0x0020 +#define INTENA_BLIT 0x0040 +#define INTENA_AUD0 0x0080 +#define INTENA_AUD1 0x0100 +#define INTENA_AUD2 0x0200 +#define INTENA_AUD3 0x0400 +#define INTENA_RBF 0x0800 +#define INTENA_DSKSYN 0x1000 +#define INTENA_EXTER 0x2000 +#define INTENA_INTEN 0x4000 +#define INTENA_SETCLR 0x8000 + +#define MAX_PLANES 6 /* 0 to 6, inclusive ( but we count from 0 to 5 ) */ + +/* Clock speeds */ +#define AMIGA_68000_NTSC_CLOCK 7159090 /* Hz */ +#define AMIGA_68000_PAL_CLOCK 7093790 /* Hz */ +#define AMIGA_68EC020_NTSC_CLOCK 14318180 /* Hz */ +#define AMIGA_68EC020_PAL_CLOCK 14187580 /* Hz */ +#define CDTV_CLOCK_X1 28636363 /* Hz */ +#define CDTV_CLOCK_X5 28375160 /* Hz */ + + +#define ANGUS_CHIP_RAM_MASK 0x07fffe +#define FAT_ANGUS_CHIP_RAM_MASK 0x0ffffe +#define ECS_CHIP_RAM_MASK 0x1ffffe +#define AGA_CHIP_RAM_MASK 0x1ffffe + +#define FLAGS_AGA_CHIPSET (1 << 0) + +typedef struct _amiga_machine_interface amiga_machine_interface; +struct _amiga_machine_interface +{ + UINT32 chip_ram_mask; + + UINT8 (*cia_0_portA_r)(void); + UINT8 (*cia_0_portB_r)(void); + void (*cia_0_portA_w)(UINT8 data); + void (*cia_0_portB_w)(UINT8 data); + + UINT8 (*cia_1_portA_r)(void); + UINT8 (*cia_1_portB_r)(void); + void (*cia_1_portA_w)(UINT8 data); + void (*cia_1_portB_w)(UINT8 data); + + UINT16 (*joy0dat_r)(void); + UINT16 (*joy1dat_r)(void); + void (*potgo_w)(UINT16 data); + + UINT16 (*dskbytr_r)(void); + void (*dsklen_w)(UINT16 data); + + void (*serdat_w)(UINT16 data); + + void (*scanline0_callback)(void); + void (*reset_callback)(void); + void (*nmi_callback)(void); + + UINT32 flags; +}; + +#define IS_AGA(intf) ( intf->chip_ram_mask == AGA_CHIP_RAM_MASK && (( intf->flags & FLAGS_AGA_CHIPSET) != 0)) +#define IS_ECS(intf) ( intf->chip_ram_mask == ECS_CHIP_RAM_MASK && (( intf->flags & FLAGS_AGA_CHIPSET) == 0)) +#define IS_ECS_OR_AGA(intf) ( intf->chip_ram_mask == ECS_CHIP_RAM_MASK) + +typedef struct _amiga_autoconfig_device amiga_autoconfig_device; +struct _amiga_autoconfig_device +{ + UINT8 link_memory; /* link into free memory list */ + UINT8 rom_vector_valid; /* ROM vector offset valid */ + UINT8 multi_device; /* multiple devices on card */ + UINT8 size; /* number of 64k pages */ + UINT16 product_number; /* product number */ + UINT8 prefer_8meg; /* prefer 8MB address space */ + UINT8 can_shutup; /* can be shut up */ + UINT16 mfr_number; /* manufacturers number */ + UINT32 serial_number; /* serial number */ + UINT16 rom_vector; /* ROM vector offset */ + UINT8 (*int_control_r)(void); /* interrupt control read */ + void (*int_control_w)(UINT8 data); /* interrupt control write */ + void (*install)(offs_t base); /* memory installation */ + void (*uninstall)(offs_t base); /* memory uninstallation */ +}; + + +/*----------- defined in machine/amiga.c -----------*/ + +extern UINT16 *amiga_chip_ram; +extern UINT32 *amiga_chip_ram32; +extern size_t amiga_chip_ram_size; + +extern UINT16 *amiga_custom_regs; +extern UINT16 *amiga_expansion_ram; +extern UINT16 *amiga_autoconfig_mem; + +extern const char *amiga_custom_names[0x100]; + +extern UINT16 (*amiga_chip_ram_r)(offs_t offset); +extern void (*amiga_chip_ram_w)(offs_t offset, UINT16 data); + +void amiga_machine_config(const amiga_machine_interface *intf); + +MACHINE_RESET( amiga ); +INTERRUPT_GEN( amiga_scanline_callback ); + +UINT32 amiga_joystick_convert(void *param); + +READ16_HANDLER( amiga_cia_r ); +WRITE16_HANDLER( amiga_cia_w ); + +READ16_HANDLER( amiga_custom_r ); +WRITE16_HANDLER( amiga_custom_w ); + +void amiga_serial_in_w(UINT16 data); +attotime amiga_get_serial_char_period(void); + +void amiga_add_autoconfig(amiga_autoconfig_device *device); +READ16_HANDLER( amiga_autoconfig_r ); +WRITE16_HANDLER( amiga_autoconfig_w ); + + +/*----------- defined in audio/amiga.c -----------*/ + +void *amiga_sh_start(int clock, const struct CustomSound_interface *config); +void amiga_audio_update(void); +void amiga_audio_data_w(int which, UINT16 data); + + +/*----------- defined in video/amiga.c -----------*/ + +PALETTE_INIT( amiga ); +VIDEO_START( amiga ); + +UINT32 amiga_gethvpos(void); +void copper_setpc(UINT32 pc); +void amiga_set_genlock_color(UINT16 color); +void amiga_render_scanline(int scanline); +void amiga_sprite_dma_reset(int which); +void amiga_sprite_enable_comparitor(int which, int enable); + +#endif /* __AMIGA_H__ */ diff --git a/src/mame/includes/appoooh.h b/src/mame/includes/appoooh.h new file mode 100644 index 00000000000..402877da86b --- /dev/null +++ b/src/mame/includes/appoooh.h @@ -0,0 +1,16 @@ +/* ----------- defined in video/appoooh.c -----------*/ + +extern UINT8 *appoooh_fg_videoram,*appoooh_fg_colorram; +extern UINT8 *appoooh_bg_videoram,*appoooh_bg_colorram; +WRITE8_HANDLER( appoooh_fg_videoram_w ); +WRITE8_HANDLER( appoooh_fg_colorram_w ); +WRITE8_HANDLER( appoooh_bg_videoram_w ); +WRITE8_HANDLER( appoooh_bg_colorram_w ); +PALETTE_INIT( appoooh ); +PALETTE_INIT( robowres ); +WRITE8_HANDLER( appoooh_scroll_w ); +WRITE8_HANDLER( appoooh_out_w ); +VIDEO_START( appoooh ); +VIDEO_UPDATE( appoooh ); +VIDEO_UPDATE( robowres ); + diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h new file mode 100644 index 00000000000..154cbf8d623 --- /dev/null +++ b/src/mame/includes/arabian.h @@ -0,0 +1,19 @@ +/*************************************************************************** + + Sun Electronics Arabian hardware + + driver by Dan Boris + +***************************************************************************/ + +/*----------- defined in video/arabian.c -----------*/ + +extern UINT8 arabian_video_control; +extern UINT8 arabian_flip_screen; + +PALETTE_INIT( arabian ); +VIDEO_START( arabian ); +VIDEO_UPDATE( arabian ); + +WRITE8_HANDLER( arabian_blitter_w ); +WRITE8_HANDLER( arabian_videoram_w ); diff --git a/src/mame/includes/arcadecl.h b/src/mame/includes/arcadecl.h new file mode 100644 index 00000000000..931336bca5f --- /dev/null +++ b/src/mame/includes/arcadecl.h @@ -0,0 +1,13 @@ +/************************************************************************* + + Atari Arcade Classics hardware (prototypes) + +*************************************************************************/ + +#include "rampart.h" + + +/*----------- defined in video/arcadecl.c -----------*/ + +VIDEO_START( arcadecl ); +VIDEO_UPDATE( arcadecl ); diff --git a/src/mame/includes/arkanoid.h b/src/mame/includes/arkanoid.h new file mode 100644 index 00000000000..c5b2a2e2ae8 --- /dev/null +++ b/src/mame/includes/arkanoid.h @@ -0,0 +1,50 @@ +/* This it the best way to allow game specific kludges until the system is fully understood */ +enum { + ARKUNK=0, /* unknown bootlegs for inclusion of possible new sets */ + ARKANGC, + ARKANGC2, + ARKBLOCK, + ARKBLOC2, + ARKGCBL, + PADDLE2 +}; + + +/*----------- defined in drivers/arkanoid.c -----------*/ + +extern int arkanoid_bootleg_id; + + +/*----------- defined in video/arkanoid.c -----------*/ + +extern WRITE8_HANDLER( arkanoid_videoram_w ); + +extern WRITE8_HANDLER( arkanoid_d008_w ); + +extern VIDEO_START( arkanoid ); +extern VIDEO_UPDATE( arkanoid ); + + +/*----------- defined in machine/arkanoid.c -----------*/ + +extern MACHINE_START( arkanoid ); +extern MACHINE_RESET( arkanoid ); + +extern READ8_HANDLER( arkanoid_Z80_mcu_r ); +extern WRITE8_HANDLER( arkanoid_Z80_mcu_w ); + +extern READ8_HANDLER( arkanoid_68705_portA_r ); +extern WRITE8_HANDLER( arkanoid_68705_portA_w ); +extern WRITE8_HANDLER( arkanoid_68705_ddrA_w ); + +extern READ8_HANDLER( arkanoid_68705_portC_r ); +extern WRITE8_HANDLER( arkanoid_68705_portC_w ); +extern WRITE8_HANDLER( arkanoid_68705_ddrC_w ); + +extern READ8_HANDLER( arkanoid_68705_input_0_r ); +extern READ8_HANDLER( arkanoid_input_2_r ); + +extern READ8_HANDLER( arkanoid_bootleg_f002_r ); +extern WRITE8_HANDLER( arkanoid_bootleg_d018_w ); +extern READ8_HANDLER( arkanoid_bootleg_d008_r ); + diff --git a/src/mame/includes/artmagic.h b/src/mame/includes/artmagic.h new file mode 100644 index 00000000000..0d59a816182 --- /dev/null +++ b/src/mame/includes/artmagic.h @@ -0,0 +1,22 @@ +/************************************************************************* + + Art & Magic hardware + +**************************************************************************/ + +/*----------- defined in video/artmagic.c -----------*/ + +extern UINT16 *artmagic_vram0; +extern UINT16 *artmagic_vram1; + +extern int artmagic_xor[16], artmagic_is_stoneball; + +VIDEO_START( artmagic ); + +void artmagic_to_shiftreg(offs_t address, UINT16 *data); +void artmagic_from_shiftreg(offs_t address, UINT16 *data); + +READ16_HANDLER( artmagic_blitter_r ); +WRITE16_HANDLER( artmagic_blitter_w ); + +void artmagic_scanline(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h new file mode 100644 index 00000000000..8d049d2236a --- /dev/null +++ b/src/mame/includes/asteroid.h @@ -0,0 +1,48 @@ +/************************************************************************* + + Atari Asteroids hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/*----------- defined in machine/asteroid.c -----------*/ + +INTERRUPT_GEN( asteroid_interrupt ); +INTERRUPT_GEN( asterock_interrupt ); +INTERRUPT_GEN( llander_interrupt ); + +READ8_HANDLER( asteroid_IN0_r ); +READ8_HANDLER( asteroib_IN0_r ); +READ8_HANDLER( asterock_IN0_r ); +READ8_HANDLER( asteroid_IN1_r ); +READ8_HANDLER( asteroid_DSW1_r ); + +WRITE8_HANDLER( asteroid_bank_switch_w ); +WRITE8_HANDLER( astdelux_bank_switch_w ); +WRITE8_HANDLER( astdelux_led_w ); + +MACHINE_RESET( asteroid ); + +READ8_HANDLER( llander_IN0_r ); + +extern UINT8 *asteroid_ram1, *asteroid_ram2; + +/*----------- defined in audio/asteroid.c -----------*/ + +DISCRETE_SOUND_EXTERN( asteroid ); +DISCRETE_SOUND_EXTERN( astdelux ); + +WRITE8_HANDLER( asteroid_explode_w ); +WRITE8_HANDLER( asteroid_thump_w ); +WRITE8_HANDLER( asteroid_sounds_w ); +WRITE8_HANDLER( asteroid_noise_reset_w ); +WRITE8_HANDLER( astdelux_sounds_w ); + + +/*----------- defined in audio/llander.c -----------*/ + +DISCRETE_SOUND_EXTERN( llander ); + +WRITE8_HANDLER( llander_snd_reset_w ); +WRITE8_HANDLER( llander_sounds_w ); diff --git a/src/mame/includes/astinvad.h b/src/mame/includes/astinvad.h new file mode 100644 index 00000000000..731df1cf877 --- /dev/null +++ b/src/mame/includes/astinvad.h @@ -0,0 +1,25 @@ +#include "sound/samples.h" + +/*----------- defined in video/astinvad.c -----------*/ + +VIDEO_UPDATE( astinvad ); +VIDEO_UPDATE( spcking2 ); +VIDEO_UPDATE( spaceint ); + +VIDEO_START( spaceint ); + +WRITE8_HANDLER( spaceint_videoram_w ); +WRITE8_HANDLER( spaceint_color_w); + +void astinvad_set_screen_red(int data); + + +/*----------- defined in audio/astinvad.c -----------*/ + +extern struct Samplesinterface astinvad_samples_interface; + +WRITE8_HANDLER( astinvad_sound1_w ); +WRITE8_HANDLER( astinvad_sound2_w ); +WRITE8_HANDLER( spaceint_sound1_w ); +WRITE8_HANDLER( spaceint_sound2_w ); + diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h new file mode 100644 index 00000000000..5e89a5a7d03 --- /dev/null +++ b/src/mame/includes/astrocde.h @@ -0,0 +1,57 @@ +/*************************************************************************** + + Bally Astrocade-based hardware + +***************************************************************************/ + +#include "sound/custom.h" + +#define ASTROCADE_CLOCK (14318180/2) + +#define AC_SOUND_PRESENT (0x01) +#define AC_LIGHTPEN_INTS (0x02) +#define AC_STARS (0x04) + + +/*----------- defined in video/astrocde.c -----------*/ + +extern UINT8 astrocade_video_config; +extern UINT8 astrocade_sparkle[4]; + +PALETTE_INIT( astrocde ); +PALETTE_INIT( profpac ); + +VIDEO_START( astrocde ); +VIDEO_START( profpac ); + +VIDEO_UPDATE( astrocde ); +VIDEO_UPDATE( profpac ); + +void astrocade_trigger_lightpen(UINT8 vfeedback, UINT8 hfeedback); + +WRITE8_HANDLER( astrocade_pattern_board_w ); +READ8_HANDLER( astrocade_data_chip_register_r ); +WRITE8_HANDLER( astrocade_data_chip_register_w ); +WRITE8_HANDLER( astrocade_funcgen_w ); + +READ8_HANDLER( profpac_videoram_r ); +WRITE8_HANDLER( profpac_videoram_w ); +READ8_HANDLER( profpac_intercept_r ); +WRITE8_HANDLER( profpac_page_select_w ); +WRITE8_HANDLER( profpac_screenram_ctrl_w ); + + +/*----------- defined in audio/wow.c -----------*/ + +extern const char *wow_sample_names[]; + +READ8_HANDLER( wow_speech_r ); +UINT32 wow_speech_status_r(void *param); + + +/*----------- defined in audio/gorf.c -----------*/ + +extern const char *gorf_sample_names[]; + +READ8_HANDLER( gorf_speech_r ); +UINT32 gorf_speech_status_r(void *param); diff --git a/src/mame/includes/astrof.h b/src/mame/includes/astrof.h new file mode 100644 index 00000000000..e8a1fee69d5 --- /dev/null +++ b/src/mame/includes/astrof.h @@ -0,0 +1,16 @@ +/*************************************************************************** + + Astro Fighter hardware + +****************************************************************************/ + + +/*----------- defined in audio/astrof.c -----------*/ + +MACHINE_START( astrof_audio ); +MACHINE_DRIVER_EXTERN( astrof_audio ); +WRITE8_HANDLER( astrof_audio_1_w ); +WRITE8_HANDLER( astrof_audio_2_w ); + +MACHINE_DRIVER_EXTERN( tomahawk_audio ); +WRITE8_HANDLER( tomahawk_audio_w ); diff --git a/src/mame/includes/atari.h b/src/mame/includes/atari.h new file mode 100644 index 00000000000..98fac97c203 --- /dev/null +++ b/src/mame/includes/atari.h @@ -0,0 +1,665 @@ +/****************************************************************************** + + Atari 400/800 + + ANTIC video controller + GTIA graphics television interface adapter + + Juergen Buchmueller, June 1998 + +******************************************************************************/ + +#ifndef ATARI_H +#define ATARI_H + +/*----------- defined in machine/atari.c -----------*/ + +typedef struct { + int serout_count; + int serout_offs; + UINT8 serout_buff[512]; + UINT8 serout_chksum; + int serout_delay; + + int serin_count; + int serin_offs; + UINT8 serin_buff[512]; + UINT8 serin_chksum; + int serin_delay; +} ATARI_FDC; +extern ATARI_FDC atari_fdc; + +MACHINE_START( a400 ); +MACHINE_START( a800 ); +MACHINE_START( a600xl ); +MACHINE_START( a800xl ); +MACHINE_START( a5200 ); + +#ifdef MESS +DEVICE_LOAD( a800_floppy ); + +DEVICE_LOAD( a800_cart ); +DEVICE_UNLOAD( a800_cart ); + +DEVICE_LOAD( a800xl_cart ); +DEVICE_UNLOAD( a800xl_cart ); + +DEVICE_LOAD( a5200_cart ); +DEVICE_UNLOAD( a5200_cart ); +#endif + + READ8_HANDLER ( atari_serin_r ); +WRITE8_HANDLER ( atari_serout_w ); +void atari_interrupt_cb(int mask); + +void a800_handle_keyboard(void); +void a5200_handle_keypads(void); + +/* video */ + +/* Enable this to make the video code use readmem16 to retrieve data */ +/* Otherwise the RAM memory array is accessed and thus, if a display list would */ +/* point to memory mapped IO, the result is different from a real machine */ +#define ACCURATE_ANTIC_READMEM 1 + + +#define CYCLES_PER_LINE 114 /* total number of cpu cycles per scanline (incl. hblank) */ +#define CYCLES_REFRESH 9 /* number of cycles lost for ANTICs RAM refresh using DMA */ +#define CYCLES_HSTART 32 /* where does the ANTIC DMA fetch start */ +#define CYCLES_DLI_NMI 7 /* number of cycles until the CPU recognizes a DLI */ +#define CYCLES_HSYNC 104 /* where does the HSYNC position of a scanline start */ + +#define VBL_END 8 /* vblank ends in this scanline */ +#define VDATA_START 11 /* video display begins in this scanline */ +#define VDATA_END 244 /* video display ends in this scanline */ +#define VBL_START 248 /* vblank starts in this scanline */ + +/* total number of lines per frame (incl. vblank) */ +#define TOTAL_LINES_60HZ 262 +#define TOTAL_LINES_50HZ 312 + +/* frame rates */ +#define FRAME_RATE_50HZ (double)1789790/114/TOTAL_LINES_50HZ +#define FRAME_RATE_60HZ (double)1789790/114/TOTAL_LINES_60HZ + +#define HWIDTH 48 /* total characters per line */ +#define HCHARS 44 /* visible characters per line */ +#define VHEIGHT 32 +#define VCHARS (VDATA_END-VDATA_START+7)/8 +#define BUF_OFFS0 (HWIDTH-HCHARS)/2 +#define MIN_X ((HWIDTH-42)/2)*8 +#define MAX_X MIN_X+42*8-1 +#define MIN_Y VDATA_START +#define MAX_Y VDATA_END-8-1 + +#define PMOFFSET 32 /* # of pixels to adjust p/m hpos */ + +#define VPAGE 0xf000 /* 4K page mask for video data src */ +#define VOFFS 0x0fff /* 4K offset mask for video data src */ +#define DPAGE 0xfc00 /* 1K page mask for display list */ +#define DOFFS 0x03ff /* 1K offset mask for display list */ + +#define DLI_NMI 0x80 /* 10000000b bit mask for display list interrupt */ +#define VBL_NMI 0x40 /* 01000000b bit mask for vertical blank interrupt */ + +#define ANTIC_DLI 0x80 /* 10000000b cmds with display list intr */ +#define ANTIC_LMS 0x40 /* 01000000b cmds with load memory scan */ +#define ANTIC_VSCR 0x20 /* 00100000b cmds with vertical scroll */ +#define ANTIC_HSCR 0x10 /* 00010000b cmds with horizontal scroll */ +#define ANTIC_MODE 0x0f /* 00001111b cmd mode mask */ + +#define DMA_ANTIC 0x20 /* 00100000b ANTIC DMA enable */ +#define DMA_PM_DBLLINE 0x10 /* 00010000b double line player/missile */ +#define DMA_PLAYER 0x08 /* 00001000b player DMA enable */ +#define DMA_MISSILE 0x04 /* 00000100b missile DMA enable */ + +#define OFS_MIS_SINGLE 3*256 /* offset missiles single line DMA */ +#define OFS_PL0_SINGLE 4*256 /* offset player 0 single line DMA */ +#define OFS_PL1_SINGLE 5*256 /* offset player 1 single line DMA */ +#define OFS_PL2_SINGLE 6*256 /* offset player 2 single line DMA */ +#define OFS_PL3_SINGLE 7*256 /* offset player 3 single line DMA */ + +#define OFS_MIS_DOUBLE 3*128 /* offset missiles double line DMA */ +#define OFS_PL0_DOUBLE 4*128 /* offset player 0 double line DMA */ +#define OFS_PL1_DOUBLE 5*128 /* offset player 1 double line DMA */ +#define OFS_PL2_DOUBLE 6*128 /* offset player 2 double line DMA */ +#define OFS_PL3_DOUBLE 7*128 /* offset player 3 double line DMA */ + +#define PFD 0x00 /* 00000000b playfield default color */ + +#define PBK 0x00 /* 00000000b playfield background */ +#define PF0 0x01 /* 00000001b playfield color #0 */ +#define PF1 0x02 /* 00000010b playfield color #1 */ +#define PF2 0x04 /* 00000100b playfield color #2 */ +#define PF3 0x08 /* 00001000b playfield color #3 */ +#define PL0 0x11 /* 00010001b player #0 */ +#define PL1 0x12 /* 00010010b player #1 */ +#define PL2 0x14 /* 00010100b player #2 */ +#define PL3 0x18 /* 00011000b player #3 */ +#define MI0 0x21 /* 00100001b missile #0 */ +#define MI1 0x22 /* 00100010b missile #1 */ +#define MI2 0x24 /* 00100100b missile #2 */ +#define MI3 0x28 /* 00101000b missile #3 */ +#define T00 0x40 /* 01000000b text mode pixels 00 */ +#define P000 0x48 /* 01001000b player #0 pixels 00 */ +#define P100 0x4a /* 01001010b player #1 pixels 00 */ +#define P200 0x4c /* 01001100b player #2 pixels 00 */ +#define P300 0x4e /* 01001110b player #3 pixels 00 */ +#define P400 0x4f /* 01001111b missiles pixels 00 */ +#define T01 0x50 /* 01010000b text mode pixels 01 */ +#define P001 0x58 /* 01011000b player #0 pixels 01 */ +#define P101 0x5a /* 01011010b player #1 pixels 01 */ +#define P201 0x5c /* 01011100b player #2 pixels 01 */ +#define P301 0x5e /* 01011110b player #3 pixels 01 */ +#define P401 0x5f /* 01011111b missiles pixels 01 */ +#define T10 0x60 /* 01100000b text mode pixels 10 */ +#define P010 0x68 /* 01101000b player #0 pixels 10 */ +#define P110 0x6a /* 01101010b player #1 pixels 10 */ +#define P210 0x6c /* 01101100b player #2 pixels 10 */ +#define P310 0x6e /* 01101110b player #3 pixels 10 */ +#define P410 0x6f /* 01101111b missiles pixels 10 */ +#define T11 0x70 /* 01110000b text mode pixels 11 */ +#define P011 0x78 /* 01111000b player #0 pixels 11 */ +#define P111 0x7a /* 01111010b player #1 pixels 11 */ +#define P211 0x7c /* 01111100b player #2 pixels 11 */ +#define P311 0x7e /* 01111110b player #3 pixels 11 */ +#define P411 0x7f /* 01111111b missiles pixels 11 */ +#define G00 0x80 /* 10000000b hires gfx pixels 00 */ +#define G01 0x90 /* 10010000b hires gfx pixels 01 */ +#define G10 0xa0 /* 10100000b hires gfx pixels 10 */ +#define G11 0xb0 /* 10110000b hires gfx pixels 11 */ +#define GT1 0xc0 /* 11000000b gtia mode 1 */ +#define GT2 0xd0 /* 11010000b gtia mode 2 */ +#define GT3 0xe0 /* 11100000b gtia mode 3 */ +#define ILL 0xfe /* 11111110b illegal priority */ +#define EOR 0xff /* 11111111b EOR mode color */ + +#define LUM 0x0f /* 00001111b luminance bits */ +#define HUE 0xf0 /* 11110000b hue bits */ + +#define TRIGGER_VBLANK 64715 +#define TRIGGER_STEAL 64716 +#define TRIGGER_HSYNC 64717 + +#define GTIA_MISSILE 0x01 +#define GTIA_PLAYER 0x02 +#define GTIA_TRIGGER 0x04 + +#ifdef LSB_FIRST + +/* make a UINT32 from four bytes */ +#define MKD(b0,b1,b2,b3) ((b0)|((b1)<<8)|((b2)<<16)|((b3)<<24)) + +#define BYTE0 0x000000ff +#define BYTE1 0x0000ff00 +#define BYTE2 0x00ff0000 +#define BYTE3 0xff000000 + +#else + +/* make a UINT32 from four bytes */ +#define MKD(b0,b1,b2,b3) (((b0)<<24)|((b1)<<16)|((b2)<<8)|(b3)) + +#define BYTE0 0xff000000 +#define BYTE1 0x00ff0000 +#define BYTE2 0x0000ff00 +#define BYTE3 0x000000ff + +#endif + +/* make a qUINT16 from eight bytes */ +#define MKQ(b0,b1,b2,b3,b4,b5,b6,b7) MKD(b0,b1,b2,b3), MKD(b4,b5,b6,b7) + +/* make two UINT32s from 4 bytes by doubling them */ +#define MKDD(b0,b1,b2,b3) MKD(b0,b0,b1,b1), MKD(b2,b2,b3,b3) + +/* make a four UINT32s from 4 bytes by quadrupling them */ +#define MKQD(b0,b1,b2,b3) MKD(b0,b0,b0,b0), MKD(b1,b1,b1,b1), MKD(b2,b2,b2,b2), MKD(b3,b3,b3,b3) + +/***************************************************************************** + * If your memcpy does not expand too well if you use it with constant + * size_t field, you might want to define these macros somehow different. + * NOTE: dst is not necessarily UINT32 aligned (because of horz scrolling)! + *****************************************************************************/ +#define COPY4(dst,s1) *dst++ = s1 +#define COPY8(dst,s1,s2) *dst++ = s1; *dst++ = s2 +#define COPY16(dst,s1,s2,s3,s4) *dst++ = s1; *dst++ = s2; *dst++ = s3; *dst++ = s4 + +typedef struct { + UINT8 antic00; /* 00 nothing */ + UINT8 antic01; /* 01 nothing */ + UINT8 antic02; /* 02 nothing */ + UINT8 antic03; /* 03 nothing */ + UINT8 antic04; /* 04 nothing */ + UINT8 antic05; /* 05 nothing */ + UINT8 antic06; /* 06 nothing */ + UINT8 antic07; /* 07 nothing */ + UINT8 antic08; /* 08 nothing */ + UINT8 antic09; /* 09 nothing */ + UINT8 antic0a; /* 0a nothing */ + UINT8 vcount; /* 0b vertical (scanline) counter */ + UINT8 penh; /* 0c light pen horizontal pos */ + UINT8 penv; /* 0d light pen vertical pos */ + UINT8 antic0e; /* 0e nothing */ + UINT8 nmist; /* 0f NMI status */ +} ANTIC_R; /* read registers */ + +typedef struct { + UINT8 dmactl; /* 00 write DMA control */ + UINT8 chactl; /* 01 write character control */ + UINT8 dlistl; /* 02 display list low */ + UINT8 dlisth; /* 03 display list high */ + UINT8 hscrol; /* 04 horz scroll */ + UINT8 vscrol; /* 05 vert scroll */ + UINT8 pmbasl; /* 06 player/missile base addr low */ + UINT8 pmbash; /* 07 player/missile base addr high */ + UINT8 chbasl; /* 08 character generator base addr low */ + UINT8 chbash; /* 09 character generator base addr high */ + UINT8 wsync; /* 0a wait for hsync */ + UINT8 antic0b; /* 0b nothing */ + UINT8 antic0c; /* 0c nothing */ + UINT8 antic0d; /* 0d nothing */ + UINT8 nmien; /* 0e NMI enable */ + UINT8 nmires; /* 0f NMI reset */ +} ANTIC_W; /* write registers */ + +/* per scanline buffer for video data (and optimization variables) */ +typedef struct { + UINT32 cmd; /* antic command for this scanline */ + UINT16 data[HWIDTH]; /* graphics data buffer (text through chargen) */ +} VIDEO; + +typedef struct { + UINT32 cmd; /* currently executed display list command */ + UINT32 steal_cycles; /* steal how many cpu cycles for this line ? */ + UINT32 vscrol_old; /* old vscrol value */ + UINT32 hscrol_old; /* old hscrol value */ + INT32 modelines; /* number of lines for current ANTIC mode */ + UINT32 chbase; /* character mode source base */ + UINT32 chand; /* character and mask (chactl) */ + UINT32 chxor; /* character xor mask (chactl) */ + UINT32 scanline; /* current scan line */ + UINT32 pfwidth; /* playfield width */ + UINT32 dpage; /* display list address page */ + UINT32 doffs; /* display list offset into page */ + UINT32 vpage; /* video data source page */ + UINT32 voffs; /* video data offset into page */ + UINT32 pmbase_s; /* p/m graphics single line source base */ + UINT32 pmbase_d; /* p/m graphics double line source base */ + ANTIC_R r; /* ANTIC read registers */ + ANTIC_W w; /* ANTIC write registers */ + UINT8 cclock[256+32]; /* color clock buffer filled by ANTIC */ + UINT8 pmbits[256+32]; /* player missile buffer filled by GTIA */ + UINT16 color_lookup[256]; /* color lookup table */ + UINT8 *prio_table[64]; /* player/missile priority tables */ + VIDEO *video[312]; /* video buffer */ + UINT32 *cclk_expand; /* shared buffer for the following: */ + UINT32 *pf_21; /* 1cclk 2 color txt 2,3 */ + UINT32 *pf_x10b; /* 1cclk 4 color txt 4,5, gfx D,E */ + UINT32 *pf_3210b2; /* 1cclk 5 color txt 6,7, gfx 9,B,C */ + UINT32 *pf_210b4; /* 4cclk 4 color gfx 8 */ + UINT32 *pf_210b2; /* 2cclk 4 color gfx A */ + UINT32 *pf_1b; /* 1cclk hires gfx F */ + UINT32 *pf_gtia1; /* 1cclk gtia mode 1 */ + UINT32 *pf_gtia2; /* 1cclk gtia mode 2 */ + UINT32 *pf_gtia3; /* 1cclk gtia mode 3 */ + UINT8 *used_colors; /* shared buffer for the following: */ + UINT8 *uc_21; /* used colors for txt (2,3) */ + UINT8 *uc_x10b; /* used colors for txt 4,5, gfx D,E */ + UINT8 *uc_3210b2; /* used colors for txt 6,7, gfx 9,B,C */ + UINT8 *uc_210b4; /* used colors for gfx 8 */ + UINT8 *uc_210b2; /* used colors for gfx A */ + UINT8 *uc_1b; /* used colors for gfx F */ + UINT8 *uc_g1; /* used colors for gfx GTIA 1 */ + UINT8 *uc_g2; /* used colors for gfx GTIA 2 */ + UINT8 *uc_g3; /* used colors for gfx GTIA 3 */ +} ANTIC; + +#if ACCURATE_ANTIC_READMEM +#define RDANTIC() cpunum_read_byte(0, antic.dpage+antic.doffs) +#define RDVIDEO(o) cpunum_read_byte(0, antic.vpage+((antic.voffs+(o))&VOFFS)) +#define RDCHGEN(o) cpunum_read_byte(0, antic.chbase+(o)) +#define RDPMGFXS(o) cpunum_read_byte(0, antic.pmbase_s+(o)+(antic.scanline>>1)) +#define RDPMGFXD(o) cpunum_read_byte(0, antic.pmbase_d+(o)+antic.scanline) +#else +#define RDANTIC() (memory_region(REGION_CPU1))[antic.dpage+antic.doffs] +#define RDVIDEO(o) (memory_region(REGION_CPU1))[antic.vpage+((antic.voffs+(o))&VOFFS)] +#define RDCHGEN(o) (memory_region(REGION_CPU1))[antic.chbase+(o)] +#define RDPMGFXS(o) (memory_region(REGION_CPU1))[antic.pmbase_s+(o)+(antic.scanline>>1)] +#define RDPMGFXD(o) (memory_region(REGION_CPU1))[antic.pmbase_d+(o)+antic.scanline] +#endif + +#define PREPARE() \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET] + +#define PREPARE_TXT2(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + { \ + UINT16 ch = RDVIDEO(i) << 3; \ + if( ch & 0x400 ) \ + { \ + ch = RDCHGEN((ch & 0x3f8) + antic.w.chbasl); \ + ch = (ch ^ antic.chxor) & antic.chand; \ + } \ + else \ + { \ + ch = RDCHGEN(ch + antic.w.chbasl); \ + } \ + video->data[i] = ch; \ + } + +#define PREPARE_TXT3(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + { \ + UINT16 ch = RDVIDEO(i) << 3; \ + if( ch & 0x400 ) \ + { \ + ch &= 0x3f8; \ + if( (ch & 0x300) == 0x300 ) \ + { \ + if (antic.w.chbasl < 2) /* first two lines empty */ \ + ch = 0x00; \ + else /* lines 2..7 are standard, 8&9 are 0&1 */ \ + ch = RDCHGEN(ch + (antic.w.chbasl & 7)); \ + } \ + else \ + { \ + if (antic.w.chbasl > 7) /* last two lines empty */ \ + ch = 0x00; \ + else /* lines 0..7 are standard */ \ + ch = RDCHGEN(ch + antic.w.chbasl); \ + } \ + ch = (ch ^ antic.chxor) & antic.chand; \ + } \ + else \ + { \ + if( (ch & 0x300) == 0x300 ) \ + { \ + if (antic.w.chbasl < 2) /* first two lines empty */ \ + ch = 0x00; \ + else /* lines 2..7 are standard, 8&9 are 0&1 */ \ + ch = RDCHGEN(ch + (antic.w.chbasl & 7)); \ + } \ + else \ + { \ + if (antic.w.chbasl > 7) /* last two lines empty */ \ + ch = 0x00; \ + else /* lines 0..7 are standard */ \ + ch = RDCHGEN(ch + antic.w.chbasl); \ + } \ + } \ + video->data[i] = ch; \ + } + +#define PREPARE_TXT45(width,shift) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + { \ + UINT16 ch = RDVIDEO(i) << 3; \ + ch = ((ch>>2)&0x100)|RDCHGEN((ch&0x3f8)+(antic.w.chbasl>>shift)); \ + video->data[i] = ch; \ + } + + +#define PREPARE_TXT67(width,shift) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + { \ + UINT16 ch = RDVIDEO(i) << 3; \ + ch = (ch&0x600)|(RDCHGEN((ch&0x1f8)+(antic.w.chbasl>>shift))<<1); \ + video->data[i] = ch; \ + } + +#define PREPARE_GFX8(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) << 2 + +#define PREPARE_GFX9BC(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) << 1 + +#define PREPARE_GFXA(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) << 1 + +#define PREPARE_GFXDE(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) + +#define PREPARE_GFXF(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) + +#define PREPARE_GFXG1(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) + +#define PREPARE_GFXG2(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) + +#define PREPARE_GFXG3(width) \ + UINT32 *dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + int i; \ + for( i = 0; i < width; i++ ) \ + video->data[i] = RDVIDEO(i) + +/****************************************************************** + * common end of a single antic/gtia mode emulation function + ******************************************************************/ +#define POST() \ + --antic.modelines + +#define POST_GFX(width) \ + antic.steal_cycles += width; \ + if( --antic.modelines == 0 ) \ + antic.voffs = (antic.voffs + width) & VOFFS + +#define POST_TXT(width) \ + antic.steal_cycles += width; \ + if( --antic.modelines == 0 ) \ + antic.voffs = (antic.voffs + width) & VOFFS; \ + else \ + if( antic.w.chactl & 4 ) \ + antic.w.chbasl--; \ + else \ + antic.w.chbasl++ + +/* erase a number of color clocks to background color PBK */ +#define ERASE4 { \ + *dst++ = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + *dst++ = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + *dst++ = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + *dst++ = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + } + +#define ZAP48() \ + dst = (UINT32 *)&antic.cclock[PMOFFSET]; \ + dst[ 0] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[ 1] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[ 2] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[45] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[46] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK; \ + dst[47] = (PBK << 24) | (PBK << 16) | (PBK << 8) | PBK + +#define ERASE8 \ + ERASE4; \ + ERASE4 + +#define REP08(FUNC) \ + ERASE8; \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + ERASE8 + +#define REP10(FUNC) \ + ERASE4; \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); \ + ERASE4 + +#define REP12(FUNC) \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); FUNC(10); FUNC(11) + +#define REP16(FUNC) \ + ERASE8; \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); FUNC(10); FUNC(11); \ + FUNC(12); FUNC(13); FUNC(14); FUNC(15); \ + ERASE8 + +#define REP20(FUNC) \ + ERASE4; \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); FUNC(10); FUNC(11); \ + FUNC(12); FUNC(13); FUNC(14); FUNC(15); \ + FUNC(16); FUNC(17); FUNC(18); FUNC(19); \ + ERASE4 + +#define REP24(FUNC) \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); FUNC(10); FUNC(11); \ + FUNC(12); FUNC(13); FUNC(14); FUNC(15); \ + FUNC(16); FUNC(17); FUNC(18); FUNC(19); \ + FUNC(20); FUNC(21); FUNC(22); FUNC(23) + +#define REP32(FUNC) \ + ERASE8; \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); FUNC(10); FUNC(11); \ + FUNC(12); FUNC(13); FUNC(14); FUNC(15); \ + FUNC(16); FUNC(17); FUNC(18); FUNC(19); \ + FUNC(20); FUNC(21); FUNC(22); FUNC(23); \ + FUNC(24); FUNC(25); FUNC(26); FUNC(27); \ + FUNC(28); FUNC(29); FUNC(30); FUNC(31); \ + ERASE8 + +#define REP40(FUNC) \ + ERASE4; \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); FUNC(10); FUNC(11); \ + FUNC(12); FUNC(13); FUNC(14); FUNC(15); \ + FUNC(16); FUNC(17); FUNC(18); FUNC(19); \ + FUNC(20); FUNC(21); FUNC(22); FUNC(23); \ + FUNC(24); FUNC(25); FUNC(26); FUNC(27); \ + FUNC(28); FUNC(29); FUNC(30); FUNC(31); \ + FUNC(32); FUNC(33); FUNC(34); FUNC(35); \ + FUNC(36); FUNC(37); FUNC(38); FUNC(39); \ + ERASE4 + +#define REP48(FUNC) \ + FUNC( 0); FUNC( 1); FUNC( 2); FUNC( 3); \ + FUNC( 4); FUNC( 5); FUNC( 6); FUNC( 7); \ + FUNC( 8); FUNC( 9); FUNC(10); FUNC(11); \ + FUNC(12); FUNC(13); FUNC(14); FUNC(15); \ + FUNC(16); FUNC(17); FUNC(18); FUNC(19); \ + FUNC(20); FUNC(21); FUNC(22); FUNC(23); \ + FUNC(24); FUNC(25); FUNC(26); FUNC(27); \ + FUNC(28); FUNC(29); FUNC(30); FUNC(31); \ + FUNC(32); FUNC(33); FUNC(34); FUNC(35); \ + FUNC(36); FUNC(37); FUNC(38); FUNC(39); \ + FUNC(40); FUNC(41); FUNC(42); FUNC(43); \ + FUNC(44); FUNC(45); FUNC(46); FUNC(47); + +typedef void (*renderer_function)(VIDEO *video); + +/*----------- defined in video/antic.c -----------*/ + +extern ANTIC antic; + +void antic_reset(void); + + READ8_HANDLER ( atari_antic_r ); +WRITE8_HANDLER ( atari_antic_w ); + +void antic_mode_0_xx(VIDEO *video); +void antic_mode_2_32(VIDEO *video); +void antic_mode_2_40(VIDEO *video); +void antic_mode_2_48(VIDEO *video); +void antic_mode_3_32(VIDEO *video); +void antic_mode_3_40(VIDEO *video); +void antic_mode_3_48(VIDEO *video); +void antic_mode_4_32(VIDEO *video); +void antic_mode_4_40(VIDEO *video); +void antic_mode_4_48(VIDEO *video); +void antic_mode_5_32(VIDEO *video); +void antic_mode_5_40(VIDEO *video); +void antic_mode_5_48(VIDEO *video); +void antic_mode_6_32(VIDEO *video); +void antic_mode_6_40(VIDEO *video); +void antic_mode_6_48(VIDEO *video); +void antic_mode_7_32(VIDEO *video); +void antic_mode_7_40(VIDEO *video); +void antic_mode_7_48(VIDEO *video); +void antic_mode_8_32(VIDEO *video); +void antic_mode_8_40(VIDEO *video); +void antic_mode_8_48(VIDEO *video); +void antic_mode_9_32(VIDEO *video); +void antic_mode_9_40(VIDEO *video); +void antic_mode_9_48(VIDEO *video); +void antic_mode_a_32(VIDEO *video); +void antic_mode_a_40(VIDEO *video); +void antic_mode_a_48(VIDEO *video); +void antic_mode_b_32(VIDEO *video); +void antic_mode_b_40(VIDEO *video); +void antic_mode_b_48(VIDEO *video); +void antic_mode_c_32(VIDEO *video); +void antic_mode_c_40(VIDEO *video); +void antic_mode_c_48(VIDEO *video); +void antic_mode_d_32(VIDEO *video); +void antic_mode_d_40(VIDEO *video); +void antic_mode_d_48(VIDEO *video); +void antic_mode_e_32(VIDEO *video); +void antic_mode_e_40(VIDEO *video); +void antic_mode_e_48(VIDEO *video); +void antic_mode_f_32(VIDEO *video); +void antic_mode_f_40(VIDEO *video); +void antic_mode_f_48(VIDEO *video); + +/*----------- defined in video/atari.c -----------*/ + +extern char atari_frame_message[64+1]; +extern int atari_frame_counter; + +extern VIDEO_START( atari ); +extern VIDEO_UPDATE( atari ); + +void a400_interrupt(void); +void a800_interrupt(void); +void a800xl_interrupt(void); +void a5200_interrupt(void); + +/*----------- defined in drivers/maxaflex.c -----------*/ + +int atari_input_disabled(void); + +#endif /* ATARI_H */ + diff --git a/src/mame/includes/atarifb.h b/src/mame/includes/atarifb.h new file mode 100644 index 00000000000..78f179af64b --- /dev/null +++ b/src/mame/includes/atarifb.h @@ -0,0 +1,56 @@ +/************************************************************************* + + Atari Football hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +#define GAME_IS_FOOTBALL (atarifb_game == 1) +#define GAME_IS_FOOTBALL4 (atarifb_game == 2) +#define GAME_IS_BASEBALL (atarifb_game == 3) +#define GAME_IS_SOCCER (atarifb_game == 4) + +/* Discrete Sound Input Nodes */ +#define ATARIFB_WHISTLE_EN NODE_01 +#define ATARIFB_CROWD_DATA NODE_02 +#define ATARIFB_ATTRACT_EN NODE_03 +#define ATARIFB_NOISE_EN NODE_04 +#define ATARIFB_HIT_EN NODE_05 + + +/*----------- defined in drivers/atarifb.c -----------*/ + +extern int atarifb_game; + + +/*----------- defined in machine/atarifb.c -----------*/ + +WRITE8_HANDLER( atarifb_out1_w ); +WRITE8_HANDLER( atarifb_out2_w ); +WRITE8_HANDLER( atarifb_out3_w ); +READ8_HANDLER( atarifb_in0_r ); +READ8_HANDLER( atarifb_in2_r ); +READ8_HANDLER( atarifb4_in0_r ); +READ8_HANDLER( atarifb4_in2_r ); + + +/*----------- defined in audio/atarifb.c -----------*/ + +DISCRETE_SOUND_EXTERN( atarifb ); +DISCRETE_SOUND_EXTERN( abaseb ); + + +/*----------- defined in video/atarifb.c -----------*/ + +extern size_t atarifb_alphap1_vram_size; +extern size_t atarifb_alphap2_vram_size; +extern UINT8 *atarifb_alphap1_vram; +extern UINT8 *atarifb_alphap2_vram; +extern UINT8 *atarifb_scroll_register; + +WRITE8_HANDLER( atarifb_scroll_w ); +WRITE8_HANDLER( atarifb_alphap1_vram_w ); +WRITE8_HANDLER( atarifb_alphap2_vram_w ); + +VIDEO_UPDATE( atarifb ); diff --git a/src/mame/includes/atarig1.h b/src/mame/includes/atarig1.h new file mode 100644 index 00000000000..844e13c5a47 --- /dev/null +++ b/src/mame/includes/atarig1.h @@ -0,0 +1,16 @@ +/************************************************************************* + + Atari G1 hardware + +*************************************************************************/ + +/*----------- defined in video/atarig1.c -----------*/ + +WRITE16_HANDLER( atarig1_mo_control_w ); + +VIDEO_START( atarig1 ); +VIDEO_UPDATE( atarig1 ); + +void atarig1_scanline_update(running_machine *machine, int scrnum, int scanline); + +extern UINT8 atarig1_pitfight; diff --git a/src/mame/includes/atarig42.h b/src/mame/includes/atarig42.h new file mode 100644 index 00000000000..cffb2f878d4 --- /dev/null +++ b/src/mame/includes/atarig42.h @@ -0,0 +1,19 @@ +/************************************************************************* + + Atari G42 hardware + +*************************************************************************/ + +/*----------- defined in video/atarig42.c -----------*/ + +extern UINT16 atarig42_playfield_base; +extern UINT16 atarig42_motion_object_base; +extern UINT16 atarig42_motion_object_mask; + +VIDEO_START( atarig42 ); +VIDEO_UPDATE( atarig42 ); + +WRITE16_HANDLER( atarig42_mo_control_w ); + +void atarig42_scanline_update(running_machine *machine, int scrnum, int scanline); + diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h new file mode 100644 index 00000000000..ce2039786d6 --- /dev/null +++ b/src/mame/includes/atarigt.h @@ -0,0 +1,22 @@ +/************************************************************************* + + Atari GT hardware + +*************************************************************************/ + +/*----------- defined in drivers/atarigt.c -----------*/ + +extern UINT8 atarigt_is_primrage; + + +/*----------- defined in video/atarigt.c -----------*/ + +extern UINT16 *atarigt_colorram; + +void atarigt_colorram_w(offs_t address, UINT16 data, UINT16 mem_mask); +UINT16 atarigt_colorram_r(offs_t address); + +VIDEO_START( atarigt ); +VIDEO_UPDATE( atarigt ); + +void atarigt_scanline_update(running_machine *machine, int scrnum, int scanline); diff --git a/src/mame/includes/atarigx2.h b/src/mame/includes/atarigx2.h new file mode 100644 index 00000000000..5f8abeeef8d --- /dev/null +++ b/src/mame/includes/atarigx2.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Atari G42 hardware + +*************************************************************************/ + +/*----------- defined in video/atarigx2.c -----------*/ + +extern UINT16 atarigx2_playfield_base; +extern UINT16 atarigx2_motion_object_base; +extern UINT16 atarigx2_motion_object_mask; + +VIDEO_START( atarigx2 ); +VIDEO_UPDATE( atarigx2 ); + +WRITE16_HANDLER( atarigx2_mo_control_w ); + +void atarigx2_scanline_update(running_machine *machine, int scrnum, int scanline); diff --git a/src/mame/includes/atarisy1.h b/src/mame/includes/atarisy1.h new file mode 100644 index 00000000000..be134856ae9 --- /dev/null +++ b/src/mame/includes/atarisy1.h @@ -0,0 +1,20 @@ +/************************************************************************* + + Atari System 1 hardware + +*************************************************************************/ + +/*----------- defined in video/atarisy1.c -----------*/ + +extern UINT16 *atarisy1_bankselect; + +READ16_HANDLER( atarisy1_int3state_r ); + +WRITE16_HANDLER( atarisy1_spriteram_w ); +WRITE16_HANDLER( atarisy1_bankselect_w ); +WRITE16_HANDLER( atarisy1_xscroll_w ); +WRITE16_HANDLER( atarisy1_yscroll_w ); +WRITE16_HANDLER( atarisy1_priority_w ); + +VIDEO_START( atarisy1 ); +VIDEO_UPDATE( atarisy1 ); diff --git a/src/mame/includes/atarisy2.h b/src/mame/includes/atarisy2.h new file mode 100644 index 00000000000..a8ff1279b41 --- /dev/null +++ b/src/mame/includes/atarisy2.h @@ -0,0 +1,21 @@ +/************************************************************************* + + Atari System 2 hardware + +*************************************************************************/ + +/*----------- defined in video/atarisy2.c -----------*/ + +READ16_HANDLER( atarisy2_slapstic_r ); +READ16_HANDLER( atarisy2_videoram_r ); + +WRITE16_HANDLER( atarisy2_slapstic_w ); +WRITE16_HANDLER( atarisy2_yscroll_w ); +WRITE16_HANDLER( atarisy2_xscroll_w ); +WRITE16_HANDLER( atarisy2_videoram_w ); +WRITE16_HANDLER( atarisy2_paletteram_w ); + +VIDEO_START( atarisy2 ); +VIDEO_UPDATE( atarisy2 ); + +extern UINT16 *atarisy2_slapstic; diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h new file mode 100644 index 00000000000..ef184e6a3a1 --- /dev/null +++ b/src/mame/includes/atetris.h @@ -0,0 +1,15 @@ +/************************************************************************* + + Atari Tetris hardware + +*************************************************************************/ + +/*----------- defined in video/atetris.c -----------*/ + +VIDEO_START( atetris ); +VIDEO_UPDATE( atetris ); + +WRITE8_HANDLER( atetris_videoram_w ); + + + diff --git a/src/mame/includes/attckufo.h b/src/mame/includes/attckufo.h new file mode 100644 index 00000000000..76ce2cf6987 --- /dev/null +++ b/src/mame/includes/attckufo.h @@ -0,0 +1,20 @@ +#include "sound/custom.h" + +/*----------- defined in audio/attckufo.c -----------*/ + +void attckufo_soundport_w (int offset, int data); +void *attckufo_custom_start(int clock, const struct CustomSound_interface *config); + + +/*----------- defined in video/attckufo.c -----------*/ + +extern const rgb_t attckufo_palette[16]; +extern UINT8 attckufo_regs[16]; + +VIDEO_UPDATE( attckufo ); + +WRITE8_HANDLER ( attckufo_port_w ); +READ8_HANDLER ( attckufo_port_r ); + +INTERRUPT_GEN( attckufo_raster_interrupt ); + diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h new file mode 100644 index 00000000000..ff9add56208 --- /dev/null +++ b/src/mame/includes/avalnche.h @@ -0,0 +1,15 @@ +/************************************************************************* + + Atari Avalanche hardware + +*************************************************************************/ + +#include "sound/discrete.h" + + +/*----------- defined in audio/avalnche.c -----------*/ + +DISCRETE_SOUND_EXTERN( avalnche ); +WRITE8_HANDLER( avalnche_noise_amplitude_w ); +WRITE8_HANDLER( avalnche_attract_enable_w ); +WRITE8_HANDLER( avalnche_audio_w ); diff --git a/src/mame/includes/aztarac.h b/src/mame/includes/aztarac.h new file mode 100644 index 00000000000..5aaa42704de --- /dev/null +++ b/src/mame/includes/aztarac.h @@ -0,0 +1,26 @@ +/************************************************************************* + + Centuri Aztarac hardware + +*************************************************************************/ + +/*----------- defined in audio/aztarac.c -----------*/ + +READ16_HANDLER( aztarac_sound_r ); +WRITE16_HANDLER( aztarac_sound_w ); + +READ8_HANDLER( aztarac_snd_command_r ); +READ8_HANDLER( aztarac_snd_status_r ); +WRITE8_HANDLER( aztarac_snd_status_w ); + +INTERRUPT_GEN( aztarac_snd_timed_irq ); + + +/*----------- defined in video/aztarac.c -----------*/ + +extern UINT16 *aztarac_vectorram; + +WRITE16_HANDLER( aztarac_ubr_w ); + +VIDEO_START( aztarac ); + diff --git a/src/mame/includes/badlands.h b/src/mame/includes/badlands.h new file mode 100644 index 00000000000..77a077aacbc --- /dev/null +++ b/src/mame/includes/badlands.h @@ -0,0 +1,12 @@ +/************************************************************************* + + Atari Bad Lands hardware + +*************************************************************************/ + +/*----------- defined in video/badlands.c -----------*/ + +WRITE16_HANDLER( badlands_pf_bank_w ); + +VIDEO_START( badlands ); +VIDEO_UPDATE( badlands ); diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h new file mode 100644 index 00000000000..44c3e96ae50 --- /dev/null +++ b/src/mame/includes/balsente.h @@ -0,0 +1,81 @@ +/*************************************************************************** + + Bally/Sente SAC-1 system + + driver by Aaron Giles + +***************************************************************************/ + + +#define BALSENTE_MASTER_CLOCK (20000000) +#define BALSENTE_CPU_CLOCK (BALSENTE_MASTER_CLOCK / 16) +#define BALSENTE_PIXEL_CLOCK (BALSENTE_MASTER_CLOCK / 4) +#define BALSENTE_HTOTAL (0x140) +#define BALSENTE_HBEND (0x000) +#define BALSENTE_HBSTART (0x100) +#define BALSENTE_VTOTAL (0x108) +#define BALSENTE_VBEND (0x010) +#define BALSENTE_VBSTART (0x100) + + +/*----------- defined in machine/balsente.c -----------*/ + +extern UINT8 balsente_shooter; +extern UINT8 balsente_shooter_x; +extern UINT8 balsente_shooter_y; +extern UINT8 balsente_adc_shift; +extern UINT16 *shrike_shared; +extern UINT16 *shrike_io; + +MACHINE_RESET( balsente ); + +void balsente_noise_gen(int chip, int count, short *buffer); + +WRITE8_HANDLER( balsente_random_reset_w ); +READ8_HANDLER( balsente_random_num_r ); + +WRITE8_HANDLER( balsente_rombank_select_w ); +WRITE8_HANDLER( balsente_rombank2_select_w ); + +WRITE8_HANDLER( balsente_misc_output_w ); + +READ8_HANDLER( balsente_m6850_r ); +WRITE8_HANDLER( balsente_m6850_w ); + +READ8_HANDLER( balsente_m6850_sound_r ); +WRITE8_HANDLER( balsente_m6850_sound_w ); + +INTERRUPT_GEN( balsente_update_analog_inputs ); +READ8_HANDLER( balsente_adc_data_r ); +WRITE8_HANDLER( balsente_adc_select_w ); + +READ8_HANDLER( balsente_counter_8253_r ); +WRITE8_HANDLER( balsente_counter_8253_w ); + +READ8_HANDLER( balsente_counter_state_r ); +WRITE8_HANDLER( balsente_counter_control_w ); + +WRITE8_HANDLER( balsente_chip_select_w ); +WRITE8_HANDLER( balsente_dac_data_w ); +WRITE8_HANDLER( balsente_register_addr_w ); + +READ8_HANDLER( nstocker_port2_r ); +WRITE8_HANDLER( spiker_expand_w ); +READ8_HANDLER( spiker_expand_r ); +READ8_HANDLER( grudge_steering_r ); + +READ8_HANDLER( shrike_shared_6809_r ); +WRITE8_HANDLER( shrike_shared_6809_w ); + +READ16_HANDLER( shrike_io_68k_r ); +WRITE16_HANDLER( shrike_io_68k_w ); + +/*----------- defined in video/balsente.c -----------*/ + +VIDEO_START( balsente ); +VIDEO_UPDATE( balsente ); + +WRITE8_HANDLER( balsente_videoram_w ); +WRITE8_HANDLER( balsente_paletteram_w ); +WRITE8_HANDLER( balsente_palette_select_w ); +WRITE8_HANDLER( shrike_sprite_select_w ); diff --git a/src/mame/includes/batman.h b/src/mame/includes/batman.h new file mode 100644 index 00000000000..60ddebfbcde --- /dev/null +++ b/src/mame/includes/batman.h @@ -0,0 +1,14 @@ +/************************************************************************* + + Atari Batman hardware + +*************************************************************************/ + +/*----------- defined in video/batman.c -----------*/ + +extern UINT8 batman_alpha_tile_bank; + +VIDEO_START( batman ); +VIDEO_UPDATE( batman ); + +void batman_scanline_update(running_machine *machine, int scrnum, int scanline); diff --git a/src/mame/includes/beathead.h b/src/mame/includes/beathead.h new file mode 100644 index 00000000000..8418937658e --- /dev/null +++ b/src/mame/includes/beathead.h @@ -0,0 +1,24 @@ +/************************************************************************* + + Atari "Stella on Steroids" hardware + +*************************************************************************/ + +/*----------- defined in video/beathead.c -----------*/ + +extern UINT32 * beathead_vram_bulk_latch; +extern UINT32 * beathead_palette_select; + +VIDEO_START( beathead ); +VIDEO_UPDATE( beathead ); + +void beathead_scanline_update(int scanline); + +WRITE32_HANDLER( beathead_vram_transparent_w ); +WRITE32_HANDLER( beathead_vram_bulk_w ); +WRITE32_HANDLER( beathead_vram_latch_w ); +WRITE32_HANDLER( beathead_vram_copy_w ); +WRITE32_HANDLER( beathead_finescroll_w ); +WRITE32_HANDLER( beathead_palette_w ); +READ32_HANDLER( beathead_hsync_ram_r ); +WRITE32_HANDLER( beathead_hsync_ram_w ); diff --git a/src/mame/includes/berzerk.h b/src/mame/includes/berzerk.h new file mode 100644 index 00000000000..68f7012441e --- /dev/null +++ b/src/mame/includes/berzerk.h @@ -0,0 +1,16 @@ +/*************************************************************************** + + Berzerk hardware + +***************************************************************************/ + + +#define BERZERK_MASTER_CLOCK (10000000) +#define BERZERK_S14001A_CLOCK (BERZERK_MASTER_CLOCK / 2) + + +/*----------- defined in audio/berzerk.c -----------*/ + +MACHINE_DRIVER_EXTERN( berzerk_audio ); +WRITE8_HANDLER( berzerk_audio_w ); +READ8_HANDLER( berzerk_audio_r ); diff --git a/src/mame/includes/blockade.h b/src/mame/includes/blockade.h new file mode 100644 index 00000000000..5eb392a23fb --- /dev/null +++ b/src/mame/includes/blockade.h @@ -0,0 +1,17 @@ +#include "sound/discrete.h" + +/*----------- defined in video/blockade.c -----------*/ + +WRITE8_HANDLER( blockade_videoram_w ); + +VIDEO_START( blockade ); +VIDEO_UPDATE( blockade ); + +/*----------- defined in audio/blockade.c -----------*/ + +extern struct Samplesinterface blockade_samples_interface; +DISCRETE_SOUND_EXTERN( blockade ); + +WRITE8_HANDLER( blockade_sound_freq_w ); +WRITE8_HANDLER( blockade_env_on_w ); +WRITE8_HANDLER( blockade_env_off_w ); diff --git a/src/mame/includes/blstroid.h b/src/mame/includes/blstroid.h new file mode 100644 index 00000000000..2b92de8b5a8 --- /dev/null +++ b/src/mame/includes/blstroid.h @@ -0,0 +1,14 @@ +/************************************************************************* + + Atari Blasteroids hardware + +*************************************************************************/ + +/*----------- defined in video/blstroid.c -----------*/ + +VIDEO_START( blstroid ); +VIDEO_UPDATE( blstroid ); + +void blstroid_scanline_update(running_machine *machine, int scrnum, int scanline); + +extern UINT16 *blstroid_priorityram; diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h new file mode 100644 index 00000000000..b9d170c9ab6 --- /dev/null +++ b/src/mame/includes/bsktball.h @@ -0,0 +1,42 @@ +/************************************************************************* + + Atari Basketball hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define BSKTBALL_NOTE_DATA NODE_01 +#define BSKTBALL_CROWD_DATA NODE_02 +#define BSKTBALL_NOISE_EN NODE_03 +#define BSKTBALL_BOUNCE_EN NODE_04 + + +/*----------- defined in machine/bsktball.c -----------*/ + +WRITE8_HANDLER( bsktball_nmion_w ); +INTERRUPT_GEN( bsktball_interrupt ); +WRITE8_HANDLER( bsktball_ld1_w ); +WRITE8_HANDLER( bsktball_ld2_w ); +READ8_HANDLER( bsktball_in0_r ); +WRITE8_HANDLER( bsktball_led1_w ); +WRITE8_HANDLER( bsktball_led2_w ); + + +/*----------- defined in audio/bsktball.c -----------*/ + +WRITE8_HANDLER( bsktball_bounce_w ); +WRITE8_HANDLER( bsktball_note_w ); +WRITE8_HANDLER( bsktball_noise_reset_w ); + +DISCRETE_SOUND_EXTERN( bsktball ); + +/*----------- defined in video/bsktball.c -----------*/ + +extern UINT8 *bsktball_motion; + +VIDEO_START( bsktball ); +VIDEO_UPDATE( bsktball ); +WRITE8_HANDLER( bsktball_videoram_w ); + diff --git a/src/mame/includes/btoads.h b/src/mame/includes/btoads.h new file mode 100644 index 00000000000..25724a0de81 --- /dev/null +++ b/src/mame/includes/btoads.h @@ -0,0 +1,40 @@ +/************************************************************************* + + BattleToads + + Common definitions + +*************************************************************************/ + +/*----------- defined in video/btoads.c -----------*/ + +extern UINT16 *btoads_vram_fg0, *btoads_vram_fg1, *btoads_vram_fg_data; +extern UINT16 *btoads_vram_bg0, *btoads_vram_bg1; +extern UINT16 *btoads_sprite_scale; +extern UINT16 *btoads_sprite_control; + +VIDEO_START( btoads ); + +WRITE16_HANDLER( btoads_misc_control_w ); +WRITE16_HANDLER( btoads_display_control_w ); + +WRITE16_HANDLER( btoads_scroll0_w ); +WRITE16_HANDLER( btoads_scroll1_w ); + +WRITE16_HANDLER( btoads_paletteram_w ); +READ16_HANDLER( btoads_paletteram_r ); + +WRITE16_HANDLER( btoads_vram_bg0_w ); +WRITE16_HANDLER( btoads_vram_bg1_w ); +READ16_HANDLER( btoads_vram_bg0_r ); +READ16_HANDLER( btoads_vram_bg1_r ); + +WRITE16_HANDLER( btoads_vram_fg_display_w ); +WRITE16_HANDLER( btoads_vram_fg_draw_w ); +READ16_HANDLER( btoads_vram_fg_display_r ); +READ16_HANDLER( btoads_vram_fg_draw_r ); + +void btoads_to_shiftreg(UINT32 address, UINT16 *shiftreg); +void btoads_from_shiftreg(UINT32 address, UINT16 *shiftreg); + +void btoads_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); diff --git a/src/mame/includes/bzone.h b/src/mame/includes/bzone.h new file mode 100644 index 00000000000..4b9389d0b0b --- /dev/null +++ b/src/mame/includes/bzone.h @@ -0,0 +1,28 @@ +/************************************************************************* + + Atari Battle Zone hardware + +*************************************************************************/ + +#include "sound/custom.h" + + +/*----------- defined in drivers/bzone.c -----------*/ + +extern UINT8 rb_input_select; +READ8_HANDLER( bzone_IN0_r ); + + +/*----------- defined in audio/bzone.c -----------*/ + +WRITE8_HANDLER( bzone_sounds_w ); + +void *bzone_sh_start(int clock, const struct CustomSound_interface *config); + + +/*----------- defined in audio/redbaron.c -----------*/ + +WRITE8_HANDLER( redbaron_sounds_w ); +WRITE8_HANDLER( redbaron_pokey_w ); + +void *redbaron_sh_start(int clock, const struct CustomSound_interface *config); diff --git a/src/mame/includes/canyon.h b/src/mame/includes/canyon.h new file mode 100644 index 00000000000..d16d50f0bba --- /dev/null +++ b/src/mame/includes/canyon.h @@ -0,0 +1,36 @@ +/************************************************************************* + + Atari Canyon Bomber hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define CANYON_MOTOR1_DATA NODE_01 +#define CANYON_MOTOR2_DATA NODE_02 +#define CANYON_EXPLODE_DATA NODE_03 +#define CANYON_WHISTLE1_EN NODE_04 +#define CANYON_WHISTLE2_EN NODE_05 +#define CANYON_ATTRACT1_EN NODE_06 +#define CANYON_ATTRACT2_EN NODE_07 + + +/*----------- defined in audio/canyon.c -----------*/ + +WRITE8_HANDLER( canyon_motor_w ); +WRITE8_HANDLER( canyon_explode_w ); +WRITE8_HANDLER( canyon_attract_w ); +WRITE8_HANDLER( canyon_whistle_w ); + +DISCRETE_SOUND_EXTERN( canyon ); + + +/*----------- defined in video/canyon.c -----------*/ + +extern UINT8* canyon_videoram; + +VIDEO_START( canyon ); +VIDEO_UPDATE( canyon ); + +WRITE8_HANDLER( canyon_videoram_w ); diff --git a/src/mame/includes/capbowl.h b/src/mame/includes/capbowl.h new file mode 100644 index 00000000000..91af981e834 --- /dev/null +++ b/src/mame/includes/capbowl.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Coors Light Bowling/Bowl-O-Rama hardware + +*************************************************************************/ + +/*----------- defined in video/capbowl.c -----------*/ + +VIDEO_START( capbowl ); +VIDEO_UPDATE( capbowl ); + +extern UINT8 *capbowl_rowaddress; + +WRITE8_HANDLER( bowlrama_blitter_w ); +READ8_HANDLER( bowlrama_blitter_r ); + +WRITE8_HANDLER( capbowl_tms34061_w ); +READ8_HANDLER( capbowl_tms34061_r ); diff --git a/src/mame/includes/carpolo.h b/src/mame/includes/carpolo.h new file mode 100644 index 00000000000..8302ecb446d --- /dev/null +++ b/src/mame/includes/carpolo.h @@ -0,0 +1,48 @@ +/*************************************************************************** + + Exidy Car Polo hardware + + driver by Zsolt Vasvari + +****************************************************************************/ + +/*----------- defined in machine/carpolo.c -----------*/ + +MACHINE_START( carpolo ); +MACHINE_RESET( carpolo ); + +READ8_HANDLER( carpolo_interrupt_cause_r ); + +READ8_HANDLER( carpolo_ball_screen_collision_cause_r ); +READ8_HANDLER( carpolo_car_ball_collision_x_r ); +READ8_HANDLER( carpolo_car_ball_collision_y_r ); +READ8_HANDLER( carpolo_car_car_collision_cause_r ); +READ8_HANDLER( carpolo_car_goal_collision_cause_r ); +READ8_HANDLER( carpolo_car_ball_collision_cause_r ); +READ8_HANDLER( carpolo_car_border_collision_cause_r ); + +INTERRUPT_GEN( carpolo_timer_interrupt ); + +WRITE8_HANDLER( carpolo_ball_screen_interrupt_clear_w ); +WRITE8_HANDLER( carpolo_car_car_interrupt_clear_w ); +WRITE8_HANDLER( carpolo_car_goal_interrupt_clear_w ); +WRITE8_HANDLER( carpolo_car_ball_interrupt_clear_w ); +WRITE8_HANDLER( carpolo_car_border_interrupt_clear_w ); +WRITE8_HANDLER( carpolo_timer_interrupt_clear_w ); + +void carpolo_generate_car_car_interrupt(int car1, int car2); +void carpolo_generate_ball_screen_interrupt(UINT8 cause); +void carpolo_generate_car_goal_interrupt(int car, int right_goal); +void carpolo_generate_car_ball_interrupt(int car, int car_x, int car_y); +void carpolo_generate_car_border_interrupt(int car, int horizontal_border); + + +/*----------- defined in video/carpolo.c -----------*/ + +extern UINT8 *carpolo_alpharam; +extern UINT8 *carpolo_spriteram; + +PALETTE_INIT( carpolo ); +VIDEO_START( carpolo ); +VIDEO_UPDATE( carpolo ); +VIDEO_EOF( carpolo ); diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h new file mode 100644 index 00000000000..910fcd58e41 --- /dev/null +++ b/src/mame/includes/cave.h @@ -0,0 +1,48 @@ +/*************************************************************************** + + Cave hardware + +***************************************************************************/ + +/*----------- defined in video/cave.c -----------*/ + +extern int cave_spritetype; +extern int cave_kludge; + +extern UINT16 *cave_videoregs; + +extern UINT16 *cave_vram_0, *cave_vctrl_0; +extern UINT16 *cave_vram_1, *cave_vctrl_1; +extern UINT16 *cave_vram_2, *cave_vctrl_2; +extern UINT16 *cave_vram_3, *cave_vctrl_3; + +WRITE16_HANDLER( cave_vram_0_w ); +WRITE16_HANDLER( cave_vram_1_w ); +WRITE16_HANDLER( cave_vram_2_w ); +WRITE16_HANDLER( cave_vram_3_w ); + +WRITE16_HANDLER( cave_vram_0_8x8_w ); +WRITE16_HANDLER( cave_vram_1_8x8_w ); +WRITE16_HANDLER( cave_vram_2_8x8_w ); +WRITE16_HANDLER( cave_vram_3_8x8_w ); + +PALETTE_INIT( ddonpach ); +PALETTE_INIT( dfeveron ); +PALETTE_INIT( mazinger ); +PALETTE_INIT( sailormn ); +PALETTE_INIT( pwrinst2 ); +PALETTE_INIT( korokoro ); + +VIDEO_START( cave_1_layer ); +VIDEO_START( cave_2_layers ); +VIDEO_START( cave_3_layers ); +VIDEO_START( cave_4_layers ); + +VIDEO_START( sailormn_3_layers ); + + +VIDEO_UPDATE( cave ); + +void cave_get_sprite_info(running_machine *machine); + +void sailormn_tilebank_w( int bank ); diff --git a/src/mame/includes/ccastles.h b/src/mame/includes/ccastles.h new file mode 100644 index 00000000000..ea132a4936f --- /dev/null +++ b/src/mame/includes/ccastles.h @@ -0,0 +1,27 @@ +/************************************************************************* + + Atari Crystal Castles hardware + +*************************************************************************/ + +/*----------- defined in drivers/ccastles.c -----------*/ + +extern int ccastles_vblank_start; +extern int ccastles_vblank_end; + +/*----------- defined in video/ccastles.c -----------*/ + + +VIDEO_START( ccastles ); +VIDEO_UPDATE( ccastles ); + +WRITE8_HANDLER( ccastles_hscroll_w ); +WRITE8_HANDLER( ccastles_vscroll_w ); +WRITE8_HANDLER( ccastles_video_control_w ); + +WRITE8_HANDLER( ccastles_paletteram_w ); +WRITE8_HANDLER( ccastles_videoram_w ); + +READ8_HANDLER( ccastles_bitmode_r ); +WRITE8_HANDLER( ccastles_bitmode_w ); +WRITE8_HANDLER( ccastles_bitmode_addr_w ); diff --git a/src/mame/includes/cchasm.h b/src/mame/includes/cchasm.h new file mode 100644 index 00000000000..14b2fb88d28 --- /dev/null +++ b/src/mame/includes/cchasm.h @@ -0,0 +1,30 @@ +/************************************************************************* + + Cinematronics Cosmic Chasm hardware + +*************************************************************************/ + +#include "sound/custom.h" + +/*----------- defined in machine/cchasm.c -----------*/ + +WRITE16_HANDLER( cchasm_led_w ); + +/*----------- defined in audio/cchasm.c -----------*/ + +READ8_HANDLER( cchasm_snd_io_r ); +WRITE8_HANDLER( cchasm_snd_io_w ); + +WRITE16_HANDLER( cchasm_io_w ); +READ16_HANDLER( cchasm_io_r ); + +SOUND_START( cchasm ); + + +/*----------- defined in video/cchasm.c -----------*/ + +extern UINT16 *cchasm_ram; + +WRITE16_HANDLER( cchasm_refresh_control_w ); +VIDEO_START( cchasm ); + diff --git a/src/mame/includes/cclimber.h b/src/mame/includes/cclimber.h new file mode 100644 index 00000000000..4be89c9dec9 --- /dev/null +++ b/src/mame/includes/cclimber.h @@ -0,0 +1,45 @@ +/*----------- defined in machine/cclimber.c -----------*/ + +DRIVER_INIT( cclimber ); +DRIVER_INIT( cclimbrj ); +DRIVER_INIT( mshuttle ); +DRIVER_INIT( cannonb ); +DRIVER_INIT( cannonb2 ); +DRIVER_INIT( ckongb ); + +/*----------- defined in video/cclimber.c -----------*/ + +extern UINT8 *cclimber_bsvideoram; +extern size_t cclimber_bsvideoram_size; +extern UINT8 *cclimber_bigspriteram; +extern UINT8 *cclimber_column_scroll; + +extern UINT8 *toprollr_videoram2; +extern UINT8 *toprollr_videoram3; +extern UINT8 *toprollr_videoram4; + +WRITE8_HANDLER( cclimber_colorram_w ); +WRITE8_HANDLER( cclimber_bigsprite_videoram_w ); +PALETTE_INIT( cclimber ); +VIDEO_UPDATE( cclimber ); + +VIDEO_UPDATE( cannonb ); + +VIDEO_UPDATE( yamato ); +VIDEO_START( toprollr ); +VIDEO_UPDATE( toprollr ); + +WRITE8_HANDLER( swimmer_bgcolor_w ); +WRITE8_HANDLER( swimmer_palettebank_w ); +PALETTE_INIT( swimmer ); +VIDEO_UPDATE( swimmer ); +WRITE8_HANDLER( swimmer_sidepanel_enable_w ); + + +/*----------- defined in audio/cclimber.c -----------*/ + +extern struct AY8910interface cclimber_ay8910_interface; +extern struct Samplesinterface cclimber_samples_interface; +WRITE8_HANDLER( cclimber_sample_trigger_w ); +WRITE8_HANDLER( cclimber_sample_rate_w ); +WRITE8_HANDLER( cclimber_sample_volume_w ); diff --git a/src/mame/includes/centiped.h b/src/mame/includes/centiped.h new file mode 100644 index 00000000000..dc88af7b0c6 --- /dev/null +++ b/src/mame/includes/centiped.h @@ -0,0 +1,32 @@ +/************************************************************************* + + Atari Centipede hardware + +*************************************************************************/ + +/*----------- defined in video/centiped.c -----------*/ + +extern UINT8 centiped_flipscreen, *bullsdrt_tiles_bankram; + +PALETTE_INIT( centiped ); +PALETTE_INIT( milliped ); +PALETTE_INIT( warlords ); + +VIDEO_START( centiped ); +VIDEO_START( milliped ); +VIDEO_START( warlords ); +VIDEO_START( bullsdrt ); + +VIDEO_UPDATE( centiped ); +VIDEO_UPDATE( milliped ); +VIDEO_UPDATE( warlords ); +VIDEO_UPDATE( bullsdrt ); + +WRITE8_HANDLER( centiped_paletteram_w ); +WRITE8_HANDLER( milliped_paletteram_w ); + +WRITE8_HANDLER( centiped_videoram_w ); +WRITE8_HANDLER( centiped_flip_screen_w ); +WRITE8_HANDLER( bullsdrt_tilesbank_w ); +WRITE8_HANDLER( bullsdrt_sprites_bank_w ); + diff --git a/src/mame/includes/cinemat.h b/src/mame/includes/cinemat.h new file mode 100644 index 00000000000..0a004de8977 --- /dev/null +++ b/src/mame/includes/cinemat.h @@ -0,0 +1,47 @@ +/************************************************************************* + + Cinematronics vector hardware + +*************************************************************************/ + + +/*----------- defined in drivers/cinemat.c -----------*/ + +MACHINE_RESET( cinemat ); + + +/*----------- defined in audio/cinemat.c -----------*/ + +WRITE8_HANDLER( cinemat_sound_control_w ); + +MACHINE_DRIVER_EXTERN( spacewar_sound ); +MACHINE_DRIVER_EXTERN( barrier_sound ); +MACHINE_DRIVER_EXTERN( speedfrk_sound ); +MACHINE_DRIVER_EXTERN( starhawk_sound ); +MACHINE_DRIVER_EXTERN( sundance_sound ); +MACHINE_DRIVER_EXTERN( tailg_sound ); +MACHINE_DRIVER_EXTERN( warrior_sound ); +MACHINE_DRIVER_EXTERN( armora_sound ); +MACHINE_DRIVER_EXTERN( ripoff_sound ); +MACHINE_DRIVER_EXTERN( starcas_sound ); +MACHINE_DRIVER_EXTERN( solarq_sound ); +MACHINE_DRIVER_EXTERN( boxingb_sound ); +MACHINE_DRIVER_EXTERN( wotw_sound ); +MACHINE_DRIVER_EXTERN( wotwc_sound ); +MACHINE_DRIVER_EXTERN( demon_sound ); +MACHINE_DRIVER_EXTERN( qb3_sound ); + + +/*----------- defined in video/cinemat.c -----------*/ + +void cinemat_vector_callback(INT16 sx, INT16 sy, INT16 ex, INT16 ey, UINT8 shift); +WRITE8_HANDLER(cinemat_vector_control_w); + +VIDEO_START( cinemat_bilevel ); +VIDEO_START( cinemat_16level ); +VIDEO_START( cinemat_64level ); +VIDEO_START( cinemat_color ); +VIDEO_START( cinemat_qb3color ); +VIDEO_EOF( cinemat ); + +VIDEO_UPDATE( spacewar ); diff --git a/src/mame/includes/circus.h b/src/mame/includes/circus.h new file mode 100644 index 00000000000..d2705e3d4e0 --- /dev/null +++ b/src/mame/includes/circus.h @@ -0,0 +1,34 @@ +#include "sound/discrete.h" + +#define GAME_IS_CIRCUS (circus_game == 1) +#define GAME_IS_ROBOTBWL (circus_game == 2) +#define GAME_IS_CRASH (circus_game == 3) +#define GAME_IS_RIPCORD (circus_game == 4) + +/*----------- defined in audio/circus.c -----------*/ + +extern int circus_game; +extern WRITE8_HANDLER( circus_clown_z_w ); + +DISCRETE_SOUND_EXTERN( circus ); +DISCRETE_SOUND_EXTERN( robotbwl ); +DISCRETE_SOUND_EXTERN( crash ); +extern struct Samplesinterface circus_samples_interface; +extern struct Samplesinterface crash_samples_interface; +extern struct Samplesinterface ripcord_samples_interface; +extern struct Samplesinterface robotbwl_samples_interface; + +/*----------- defined in video/circus.c -----------*/ + +extern int clown_z; + +extern WRITE8_HANDLER( circus_clown_x_w ); +extern WRITE8_HANDLER( circus_clown_y_w ); + +extern WRITE8_HANDLER( circus_videoram_w ); + +extern VIDEO_START( circus ); +extern VIDEO_UPDATE( crash ); +extern VIDEO_UPDATE( circus ); +extern VIDEO_UPDATE( robotbwl ); +extern VIDEO_UPDATE( ripcord ); //AT diff --git a/src/mame/includes/cloak.h b/src/mame/includes/cloak.h new file mode 100644 index 00000000000..261261e440d --- /dev/null +++ b/src/mame/includes/cloak.h @@ -0,0 +1,15 @@ +/************************************************************************* + + Atari Cloak & Dagger hardware + +*************************************************************************/ + +/*----------- defined in video/cloak.c -----------*/ + +WRITE8_HANDLER( cloak_paletteram_w ); +READ8_HANDLER( graph_processor_r ); +WRITE8_HANDLER( graph_processor_w ); +WRITE8_HANDLER( cloak_clearbmp_w ); + +VIDEO_START( cloak ); +VIDEO_UPDATE( cloak ); diff --git a/src/mame/includes/cloud9.h b/src/mame/includes/cloud9.h new file mode 100644 index 00000000000..104309e656d --- /dev/null +++ b/src/mame/includes/cloud9.h @@ -0,0 +1,25 @@ +/************************************************************************* + + Atari Cloud 9 (prototype) hardware + +*************************************************************************/ + +/*----------- defined in drivers/cloud9.c -----------*/ + +extern int cloud9_vblank_start; +extern int cloud9_vblank_end; + + +/*----------- defined in video/cloud9.c -----------*/ + +VIDEO_START( cloud9 ); +VIDEO_UPDATE( cloud9 ); + +WRITE8_HANDLER( cloud9_video_control_w ); + +WRITE8_HANDLER( cloud9_paletteram_w ); +WRITE8_HANDLER( cloud9_videoram_w ); + +READ8_HANDLER( cloud9_bitmode_r ); +WRITE8_HANDLER( cloud9_bitmode_w ); +WRITE8_HANDLER( cloud9_bitmode_addr_w ); diff --git a/src/mame/includes/cninja.h b/src/mame/includes/cninja.h new file mode 100644 index 00000000000..f21c084ec5c --- /dev/null +++ b/src/mame/includes/cninja.h @@ -0,0 +1,12 @@ +/*----------- defined in video/cninja.c -----------*/ + +VIDEO_START( cninja ); +VIDEO_START( edrandy ); +VIDEO_START( robocop2 ); +VIDEO_START( stoneage ); +VIDEO_START( mutantf ); +VIDEO_UPDATE( cninja ); +VIDEO_UPDATE( edrandy ); +VIDEO_UPDATE( robocop2 ); +VIDEO_UPDATE( mutantf ); +VIDEO_EOF( cninja ); diff --git a/src/mame/includes/copsnrob.h b/src/mame/includes/copsnrob.h new file mode 100644 index 00000000000..4bec40062e0 --- /dev/null +++ b/src/mame/includes/copsnrob.h @@ -0,0 +1,20 @@ +/************************************************************************* + + Atari Cops'n Robbers hardware + +*************************************************************************/ + +/*----------- defined in machine/copsnrob.c -----------*/ + +READ8_HANDLER( copsnrob_gun_position_r ); + + +/*----------- defined in video/copsnrob.c -----------*/ + +extern UINT8 *copsnrob_bulletsram; +extern UINT8 *copsnrob_carimage; +extern UINT8 *copsnrob_cary; +extern UINT8 *copsnrob_trucky; +extern UINT8 *copsnrob_truckram; + +VIDEO_UPDATE( copsnrob ); diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h new file mode 100644 index 00000000000..6eb87a3fe06 --- /dev/null +++ b/src/mame/includes/cps1.h @@ -0,0 +1,92 @@ +#ifndef _CPS1_H_ +#define _CPS1_H_ + +/*----------- defined in drivers/cps1.c -----------*/ + +ADDRESS_MAP_EXTERN(qsound_readmem); +ADDRESS_MAP_EXTERN(qsound_writemem); + +READ16_HANDLER( qsound_sharedram1_r ); +WRITE16_HANDLER( qsound_sharedram1_w ); + +READ16_HANDLER( cps1_eeprom_port_r ); +WRITE16_HANDLER( cps1_eeprom_port_w ); + +INTERRUPT_GEN( cps1_qsound_interrupt ); + +extern struct QSound_interface qsound_interface; + +READ16_HANDLER( cps1_dsw_r ); +READ16_HANDLER( cps1_in0_r ); +READ16_HANDLER( cps1_in1_r ); +READ16_HANDLER( cps1_in2_r ); +READ16_HANDLER( cps1_in3_r ); +WRITE16_HANDLER( cps1_coinctrl_w ); +INTERRUPT_GEN( cps1_interrupt ); + +GFXDECODE_EXTERN( cps1 ); + + +/*----------- defined in machine/cps2crpt.c -----------*/ + +DRIVER_INIT( cps2crpt ); + + +/*----------- defined in machine/kabuki.c -----------*/ + +void wof_decode(void); +void dino_decode(void); +void punisher_decode(void); +void slammast_decode(void); + + +/*----------- defined in video/cps1.c -----------*/ + +extern int cps1_scanline1; +extern int cps1_scanline2; +extern int cps1_scancalls; + +extern UINT16 *cps1_gfxram; /* Video RAM */ +extern UINT16 *cps1_output; /* Output ports */ +extern size_t cps1_gfxram_size; +extern size_t cps1_output_size; + +extern UINT16 *cps1_other; +extern tilemap *cps1_bg_tilemap[3]; + +extern int cps1_scroll1x, cps1_scroll1y; +extern int cps1_scroll2x, cps1_scroll2y; +extern int cps1_scroll3x, cps1_scroll3y; + +extern UINT16 *cps2_objram1,*cps2_objram2; +extern UINT16 *cps2_output; +extern size_t cps2_output_size; + +int cps1_port(int offset); +READ16_HANDLER( cps1_output_r ); +WRITE16_HANDLER( cps1_output_w ); + +DRIVER_INIT( cps1 ); +DRIVER_INIT( cps2_video ); + +void cps1_get_video_base(void); + +WRITE16_HANDLER( cps1_gfxram_w ); + +VIDEO_START( cps1 ); +VIDEO_START( cps2 ); +void cps1_build_palette(running_machine *machine); + +WRITE16_HANDLER( cps2_objram_bank_w ); +READ16_HANDLER( cps2_objram1_r ); +READ16_HANDLER( cps2_objram2_r ); +WRITE16_HANDLER( cps2_objram1_w ); +WRITE16_HANDLER( cps2_objram2_w ); + +VIDEO_UPDATE( cps1 ); +VIDEO_EOF( cps1 ); + +void cps2_set_sprite_priorities(void); +void cps2_objram_latch(void); + +#endif diff --git a/src/mame/includes/cps3.h b/src/mame/includes/cps3.h new file mode 100644 index 00000000000..d3857ff983a --- /dev/null +++ b/src/mame/includes/cps3.h @@ -0,0 +1,15 @@ +/*************************************************************************** + + Capcom CPS-3 Hardware + +****************************************************************************/ + +#include "sound/custom.h" + +/*----------- defined in audio/cps3.c -----------*/ + +void *cps3_sh_start(int clock, const struct CustomSound_interface *config); + +WRITE32_HANDLER( cps3_sound_w ); +READ32_HANDLER( cps3_sound_r ); + diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h new file mode 100644 index 00000000000..9a370fc0534 --- /dev/null +++ b/src/mame/includes/crbaloon.h @@ -0,0 +1,30 @@ +/************************************************************************* + +Crazy Ballooon + +*************************************************************************/ + +#include "sound/discrete.h" + +#define CRBALOON_LAUGH_EN NODE_01 +#define CRBALOON_MUSIC_EN NODE_02 +#define CRBALOON_MUSIC_DATA NODE_03 + + +/*----------- defined in audio/crbaloon.c -----------*/ + +DISCRETE_SOUND_EXTERN( crbaloon ); + +/*----------- defined in video/crbaloon.c -----------*/ + +extern INT8 crbaloon_collision; + +WRITE8_HANDLER( crbaloon_videoram_w ); +WRITE8_HANDLER( crbaloon_colorram_w ); +WRITE8_HANDLER( crbaloon_spritectrl_w ); +WRITE8_HANDLER( crbaloon_flipscreen_w ); + +PALETTE_INIT( crbaloon ); +VIDEO_START( crbaloon ); +VIDEO_UPDATE( crbaloon ); + diff --git a/src/mame/includes/crgolf.h b/src/mame/includes/crgolf.h new file mode 100644 index 00000000000..39049d170d9 --- /dev/null +++ b/src/mame/includes/crgolf.h @@ -0,0 +1,25 @@ +/************************************************************************* + + Kitco Crowns Golf hardware + +**************************************************************************/ + +/*----------- defined in video/crgolf.c -----------*/ + +extern UINT8 *crgolf_color_select; +extern UINT8 *crgolf_screen_flip; +extern UINT8 *crgolf_screen_select; +extern UINT8 *crgolf_screenb_enable; +extern UINT8 *crgolf_screena_enable; + +WRITE8_HANDLER( crgolf_videoram_bit0_w ); +WRITE8_HANDLER( crgolf_videoram_bit1_w ); +WRITE8_HANDLER( crgolf_videoram_bit2_w ); + +READ8_HANDLER( crgolf_videoram_bit0_r ); +READ8_HANDLER( crgolf_videoram_bit1_r ); +READ8_HANDLER( crgolf_videoram_bit2_r ); + +PALETTE_INIT( crgolf ); +VIDEO_START( crgolf ); +VIDEO_UPDATE( crgolf ); diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h new file mode 100644 index 00000000000..9908e49c1aa --- /dev/null +++ b/src/mame/includes/crshrace.h @@ -0,0 +1,12 @@ +/*----------- defined in video/crshrace.c -----------*/ + +extern UINT16 *crshrace_videoram1,*crshrace_videoram2; + +WRITE16_HANDLER( crshrace_videoram1_w ); +WRITE16_HANDLER( crshrace_videoram2_w ); +WRITE16_HANDLER( crshrace_roz_bank_w ); +WRITE16_HANDLER( crshrace_gfxctrl_w ); + +VIDEO_START( crshrace ); +VIDEO_EOF( crshrace ); +VIDEO_UPDATE( crshrace ); diff --git a/src/mame/includes/cubocd32.h b/src/mame/includes/cubocd32.h new file mode 100644 index 00000000000..b274592d9b1 --- /dev/null +++ b/src/mame/includes/cubocd32.h @@ -0,0 +1,17 @@ +/*************************************************************************** + +CuboCD32 definitions + +***************************************************************************/ + +#ifndef __CUBOCD32_H__ +#define __CUBOCD32_H__ + +/*----------- defined in machine/cubocd32.c -----------*/ + +extern void amiga_akiko_init(void); +extern NVRAM_HANDLER( cd32 ); +extern READ32_HANDLER(amiga_akiko32_r); +extern WRITE32_HANDLER(amiga_akiko32_w); + +#endif /* __CUBOCD32_H__ */ diff --git a/src/mame/includes/cyberbal.h b/src/mame/includes/cyberbal.h new file mode 100644 index 00000000000..952cd86882e --- /dev/null +++ b/src/mame/includes/cyberbal.h @@ -0,0 +1,42 @@ +/************************************************************************* + + Atari Cyberball hardware + +*************************************************************************/ + + +/*----------- defined in audio/cyberbal.c -----------*/ + +void cyberbal_sound_reset(void); + +INTERRUPT_GEN( cyberbal_sound_68k_irq_gen ); + +READ8_HANDLER( cyberbal_special_port3_r ); +READ8_HANDLER( cyberbal_sound_6502_stat_r ); +READ8_HANDLER( cyberbal_sound_68k_6502_r ); +WRITE8_HANDLER( cyberbal_sound_bank_select_w ); +WRITE8_HANDLER( cyberbal_sound_68k_6502_w ); + +READ16_HANDLER( cyberbal_sound_68k_r ); +WRITE16_HANDLER( cyberbal_io_68k_irq_ack_w ); +WRITE16_HANDLER( cyberbal_sound_68k_w ); +WRITE16_HANDLER( cyberbal_sound_68k_dac_w ); + + +/*----------- defined in video/cyberbal.c -----------*/ + +void cyberbal_set_screen(int which); + +READ16_HANDLER( cyberbal_paletteram_0_r ); +READ16_HANDLER( cyberbal_paletteram_1_r ); +WRITE16_HANDLER( cyberbal_paletteram_0_w ); +WRITE16_HANDLER( cyberbal_paletteram_1_w ); + +VIDEO_START( cyberbal ); +VIDEO_START( cyberb2p ); +VIDEO_UPDATE( cyberbal ); + +void cyberbal_scanline_update(running_machine *machine, int scrnum, int scanline); + +extern UINT16 *cyberbal_paletteram_0; +extern UINT16 *cyberbal_paletteram_1; diff --git a/src/mame/includes/dc.h b/src/mame/includes/dc.h new file mode 100644 index 00000000000..989c421d3eb --- /dev/null +++ b/src/mame/includes/dc.h @@ -0,0 +1,42 @@ +/* + + dc.h - Sega Dreamcast includes + +*/ + +#ifndef __DC_H__ +#define __DC_H__ + +/*----------- defined in machine/dc.c -----------*/ + +READ64_HANDLER( dc_sysctrl_r ); +WRITE64_HANDLER( dc_sysctrl_w ); +READ64_HANDLER( dc_maple_r ); +WRITE64_HANDLER( dc_maple_w ); +READ64_HANDLER( dc_gdrom_r ); +WRITE64_HANDLER( dc_gdrom_w ); +READ64_HANDLER( dc_g1_ctrl_r ); +WRITE64_HANDLER( dc_g1_ctrl_w ); +READ64_HANDLER( dc_g2_ctrl_r ); +WRITE64_HANDLER( dc_g2_ctrl_w ); +READ64_HANDLER( dc_modem_r ); +WRITE64_HANDLER( dc_modem_w ); +READ64_HANDLER( dc_rtc_r ); +WRITE64_HANDLER( dc_rtc_w ); +READ64_HANDLER( dc_aica_reg_r ); +WRITE64_HANDLER( dc_aica_reg_w ); + +MACHINE_RESET( dc ); + +/*----------- defined in video/dc.c -----------*/ + +READ64_HANDLER( pvr_ctrl_r ); +WRITE64_HANDLER( pvr_ctrl_w ); +READ64_HANDLER( pvr_ta_r ); +WRITE64_HANDLER( pvr_ta_w ); +WRITE64_HANDLER( ta_fifo_poly_w ); +WRITE64_HANDLER( ta_fifo_yuv_w ); +VIDEO_START(dc); +VIDEO_UPDATE(dc); + +#endif diff --git a/src/mame/includes/dcheese.h b/src/mame/includes/dcheese.h new file mode 100644 index 00000000000..b9e491d2768 --- /dev/null +++ b/src/mame/includes/dcheese.h @@ -0,0 +1,25 @@ +/*************************************************************************** + + HAR MadMax hardware + +**************************************************************************/ + + +/*----------- defined in drivers/dcheese.c -----------*/ + +void dcheese_signal_irq(int which); + + +/*----------- defined in video/dcheese.c -----------*/ + +PALETTE_INIT( dcheese ); +VIDEO_START( dcheese ); +VIDEO_UPDATE( dcheese ); + +WRITE16_HANDLER( madmax_blitter_color_w ); +WRITE16_HANDLER( madmax_blitter_xparam_w ); +WRITE16_HANDLER( madmax_blitter_yparam_w ); +WRITE16_HANDLER( madmax_blitter_vidparam_w ); +WRITE16_HANDLER( madmax_blitter_unknown_w ); + +READ16_HANDLER( madmax_blitter_vidparam_r ); diff --git a/src/mame/includes/dec0.h b/src/mame/includes/dec0.h new file mode 100644 index 00000000000..03f0785c2c2 --- /dev/null +++ b/src/mame/includes/dec0.h @@ -0,0 +1,72 @@ +/*----------- defined in drivers/dec0.c -----------*/ + +extern UINT16 *dec0_ram; +extern UINT8 *robocop_shared_ram; + +/*----------- defined in video/dec0.c -----------*/ + +/* Video emulation definitions */ +VIDEO_START( dec0 ); +VIDEO_START( dec0_nodma ); +VIDEO_UPDATE( hbarrel ); +VIDEO_UPDATE( baddudes ); +VIDEO_UPDATE( birdtry ); +VIDEO_UPDATE( robocop ); +VIDEO_UPDATE( hippodrm ); +VIDEO_UPDATE( slyspy ); +VIDEO_UPDATE( midres ); + +extern UINT16 *dec0_pf1_rowscroll,*dec0_pf2_rowscroll,*dec0_pf3_rowscroll; +extern UINT16 *dec0_pf1_colscroll,*dec0_pf2_colscroll,*dec0_pf3_colscroll; +extern UINT16 *dec0_pf1_data,*dec0_pf2_data,*dec0_pf3_data; + +WRITE16_HANDLER( dec0_pf1_control_0_w ); +WRITE16_HANDLER( dec0_pf1_control_1_w ); +WRITE16_HANDLER( dec0_pf1_data_w ); +WRITE16_HANDLER( dec0_pf2_control_0_w ); +WRITE16_HANDLER( dec0_pf2_control_1_w ); +WRITE16_HANDLER( dec0_pf2_data_w ); +WRITE16_HANDLER( dec0_pf3_control_0_w ); +WRITE16_HANDLER( dec0_pf3_control_1_w ); +WRITE16_HANDLER( dec0_pf3_data_w ); +WRITE16_HANDLER( dec0_priority_w ); +WRITE16_HANDLER( dec0_update_sprites_w ); + +WRITE16_HANDLER( dec0_paletteram_rg_w ); +WRITE16_HANDLER( dec0_paletteram_b_w ); + +READ8_HANDLER( dec0_pf3_data_8bit_r ); +WRITE8_HANDLER( dec0_pf3_data_8bit_w ); +WRITE8_HANDLER( dec0_pf3_control_8bit_w ); + +/*----------- defined in machine/dec0.c -----------*/ + +READ16_HANDLER( dec0_controls_r ); +READ16_HANDLER( dec0_rotary_r ); +READ16_HANDLER( midres_controls_r ); +READ16_HANDLER( slyspy_controls_r ); +READ16_HANDLER( slyspy_protection_r ); +WRITE16_HANDLER( slyspy_state_w ); +READ16_HANDLER( slyspy_state_r ); +WRITE16_HANDLER( slyspy_240000_w ); +WRITE16_HANDLER( slyspy_242000_w ); +WRITE16_HANDLER( slyspy_246000_w ); +WRITE16_HANDLER( slyspy_248000_w ); +WRITE16_HANDLER( slyspy_24c000_w ); +WRITE16_HANDLER( slyspy_24e000_w ); + +DRIVER_INIT( slyspy ); +DRIVER_INIT( hippodrm ); +DRIVER_INIT( robocop ); +DRIVER_INIT( baddudes ); +DRIVER_INIT( hbarrel ); +DRIVER_INIT( hbarrelw ); +DRIVER_INIT( birdtry ); + +extern void dec0_i8751_write(int data); +extern void dec0_i8751_reset(void); +READ8_HANDLER( hippodrm_prot_r ); +WRITE8_HANDLER( hippodrm_prot_w ); +READ8_HANDLER( hippodrm_shared_r ); +WRITE8_HANDLER( hippodrm_shared_w ); + diff --git a/src/mame/includes/deco16ic.h b/src/mame/includes/deco16ic.h new file mode 100644 index 00000000000..089234b26be --- /dev/null +++ b/src/mame/includes/deco16ic.h @@ -0,0 +1,59 @@ +/*----------- defined in video/deco16ic.c -----------*/ + +extern UINT16 *deco16_pf1_data,*deco16_pf2_data; +extern UINT16 *deco16_pf3_data,*deco16_pf4_data; +extern UINT16 *deco16_pf1_rowscroll,*deco16_pf2_rowscroll; +extern UINT16 *deco16_pf3_rowscroll,*deco16_pf4_rowscroll; + +extern UINT16 *deco16_pf12_control,*deco16_pf34_control; +extern UINT16 deco16_priority; + +extern UINT16 *deco16_raster_display_list; +extern int deco16_raster_display_position; + +extern int deco16_pf1_colour_bank,deco16_pf2_colour_bank,deco16_pf3_colour_bank,deco16_pf4_colour_bank; + +void deco16_1_video_init(void); +void deco16_2_video_init(int split); +void deco16_2_video_init_half_width(void); +void deco_allocate_sprite_bitmap(void); + +void deco16_pf12_update(const UINT16 *rowscroll_1_ptr, const UINT16 *rowscroll_2_ptr); +void deco16_pf34_update(const UINT16 *rowscroll_1_ptr, const UINT16 *rowscroll_2_ptr); + +void deco16_pf12_set_gfxbank(int small, int big); +void deco16_pf34_set_gfxbank(int small, int big); + +void deco16_set_tilemap_bank_callback(int tmap, int (*callback)(const int bank)); +void deco16_set_tilemap_colour_base(int tmap, int base); +void deco16_set_tilemap_colour_mask(int tmap, int mask); +void deco16_set_tilemap_transparency_mask(int tmap, int mask); + +void deco16_tilemap_1_draw(mame_bitmap *bitmap, const rectangle *cliprect, int flags, UINT32 priority); +void deco16_tilemap_2_draw(mame_bitmap *bitmap, const rectangle *cliprect, int flags, UINT32 priority); +void deco16_tilemap_3_draw(mame_bitmap *bitmap, const rectangle *cliprect, int flags, UINT32 priority); +void deco16_tilemap_4_draw(mame_bitmap *bitmap, const rectangle *cliprect, int flags, UINT32 priority); + +void deco16_tilemap_34_combine_draw(mame_bitmap *bitmap, const rectangle *cliprect, int flags, UINT32 priority); + +void deco16_clear_sprite_priority_bitmap(void); +void deco16_pdrawgfx(mame_bitmap *dest,const gfx_element *gfx, + UINT32 code,UINT32 color,int flipx,int flipy,int sx,int sy, + const rectangle *clip,int transparency,int transparent_color,UINT32 pri_mask,UINT32 sprite_mask,UINT8 write_pri); + +tilemap *deco16_get_tilemap(int pf, int size); + +WRITE16_HANDLER( deco16_pf1_data_w ); +WRITE16_HANDLER( deco16_pf2_data_w ); +WRITE16_HANDLER( deco16_pf3_data_w ); +WRITE16_HANDLER( deco16_pf4_data_w ); + +WRITE16_HANDLER( deco16_nonbuffered_palette_w ); +WRITE16_HANDLER( deco16_buffered_palette_w ); +WRITE16_HANDLER( deco16_palette_dma_w ); + +WRITE16_HANDLER( deco16_priority_w ); + +READ16_HANDLER( deco16_71_r ); + +void deco16_print_debug_info(mame_bitmap *bitmap); diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h new file mode 100644 index 00000000000..e1290c708b7 --- /dev/null +++ b/src/mame/includes/deco32.h @@ -0,0 +1,38 @@ +/*----------- defined in video/deco32.c -----------*/ + +VIDEO_START( captaven ); +VIDEO_START( fghthist ); +VIDEO_START( dragngun ); +VIDEO_START( lockload ); +VIDEO_START( nslasher ); + +VIDEO_EOF( captaven ); +VIDEO_EOF( dragngun ); + +VIDEO_UPDATE( captaven ); +VIDEO_UPDATE( fghthist ); +VIDEO_UPDATE( dragngun ); +VIDEO_UPDATE( nslasher ); + +extern UINT32 *deco32_pf1_data,*deco32_pf2_data,*deco32_pf3_data,*deco32_pf4_data; +extern UINT32 *deco32_pf12_control,*deco32_pf34_control; +extern UINT32 *deco32_pf1_rowscroll,*deco32_pf2_rowscroll,*deco32_pf3_rowscroll,*deco32_pf4_rowscroll; +extern UINT32 *dragngun_sprite_layout_0_ram, *dragngun_sprite_layout_1_ram; +extern UINT32 *dragngun_sprite_lookup_0_ram, *dragngun_sprite_lookup_1_ram; +extern UINT32 *deco32_ace_ram; +extern UINT16 *deco32_raster_display_list; +extern int deco32_raster_display_position; + +WRITE32_HANDLER( deco32_pf1_data_w ); +WRITE32_HANDLER( deco32_pf2_data_w ); +WRITE32_HANDLER( deco32_pf3_data_w ); +WRITE32_HANDLER( deco32_pf4_data_w ); + +WRITE32_HANDLER( deco32_nonbuffered_palette_w ); +WRITE32_HANDLER( deco32_buffered_palette_w ); +WRITE32_HANDLER( deco32_palette_dma_w ); + +WRITE32_HANDLER( deco32_pri_w ); +WRITE32_HANDLER( dragngun_sprite_control_w ); +WRITE32_HANDLER( dragngun_spriteram_dma_w ); +WRITE32_HANDLER( deco32_ace_ram_w ); diff --git a/src/mame/includes/decocrpt.h b/src/mame/includes/decocrpt.h new file mode 100644 index 00000000000..96f15a4c3c0 --- /dev/null +++ b/src/mame/includes/decocrpt.h @@ -0,0 +1,5 @@ +/*----------- defined in machine/decocrpt.c -----------*/ + +void deco56_decrypt(int region); +void deco74_decrypt(int region); +void deco56_remap(int region); diff --git a/src/mame/includes/decoprot.h b/src/mame/includes/decoprot.h new file mode 100644 index 00000000000..7d712700fba --- /dev/null +++ b/src/mame/includes/decoprot.h @@ -0,0 +1,26 @@ +/*----------- defined in machine/decoprot.c -----------*/ + +READ16_HANDLER( deco16_60_prot_r ); +READ16_HANDLER( deco16_66_prot_r ); +READ16_HANDLER( deco16_104_prot_r ); +READ16_HANDLER( deco16_104_cninja_prot_r ); +READ16_HANDLER( deco16_104_rohga_prot_r ); +READ16_HANDLER( deco16_146_funkyjet_prot_r ); +READ16_HANDLER( deco16_146_nitroball_prot_r ); +READ16_HANDLER( deco16_104_pktgaldx_prot_r ); +READ32_HANDLER( deco16_146_fghthist_prot_r ); + +WRITE16_HANDLER( deco16_60_prot_w ); +WRITE16_HANDLER( deco16_66_prot_w ); +WRITE16_HANDLER( deco16_104_prot_w ); +WRITE16_HANDLER( deco16_104_cninja_prot_w ); +WRITE16_HANDLER( deco16_104_rohga_prot_w ); +WRITE16_HANDLER( deco16_146_funkyjet_prot_w ); +WRITE16_HANDLER( deco16_146_nitroball_prot_w ); +WRITE16_HANDLER( deco16_104_pktgaldx_prot_w ); +WRITE32_HANDLER( deco16_146_fghthist_prot_w ); + +void decoprot_reset(void); + +extern UINT16 *deco16_prot_ram; +extern UINT32 *deco32_prot_ram; diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h new file mode 100644 index 00000000000..92bc6cc41c5 --- /dev/null +++ b/src/mame/includes/dkong.h @@ -0,0 +1,124 @@ +#include "sound/discrete.h" + +/* + * From the schematics: + * + * XTAL is 61,44 MHZ. There is some oscillator logic around it. The oscillating circuit + * transfers the signal with a transformator. Onwards, it is fed through a M(B/C)10136. This + * is a programmable counter which is used as a divisor by 5. + * Cascaded 74LS161 further divide the signal. The following signals are generated: + * 1/2H: 61,44MHZ/5/2 - pixel clock + * 1H : 61,44MHZ/5/4 - cpu-clock + * 2H : 61,44MHZ/5/8 + * .... + * 128H: 61,44MHZ/5/512 + * The horizontal circuit counts till 384=256+128, thus 256H only being high for 128H/2 + * + * Signal 16H,32H,64H and 256H are combined using a LS00, LS04 and a D-Flipflop to produce + * a signal with Freq 16H/12. This is only possible because a 220pf capacitor with the + * impedance of the LS-Family of 10K delays the 16H signal by about half a cycle. + * This signal is divided by two by another D-Flipflop(74LS74) to give: + * 1VF: 61,44MHZ/5/64/12/2 = 8KHZ + * 2VF: 1VF/2 - Noise frequency: 4Khz + * ... + * The vertical circuit counts from 248 till 512 giving 264 lines. + * 256VF is not being used, so counting is from 248...255, 0...255, .... + */ + +#define MASTER_CLOCK 61440000 +#define CLOCK_1H (MASTER_CLOCK / 5 / 4) +#define CLOCK_16H (CLOCK_1H / 16) +#define CLOCK_1VF ((CLOCK_16H) / 12 / 2) +#define CLOCK_2VF ((CLOCK_1VF) / 2) + +#define PIXEL_CLOCK (MASTER_CLOCK/10) +#define HTOTAL (384) +#define HBSTART (256) +#define HBEND (0) +#define VTOTAL (264) +#define VBSTART (240) +#define VBEND (16) + +#define I8035_MASTER_CLOCK (6000000) +#define I8035_DIVIDER (15) +#define I8035_CLOCK (I8035_MASTER_CLOCK/I8035_DIVIDER) + + +/*----------- defined in video/dkong.c -----------*/ + +WRITE8_HANDLER( radarscp_snd02_w ); /* to daisy chain sound 02 signal */ +WRITE8_HANDLER( radarsc1_ansn_w ); /* to daisy chain sound 02 signal */ + +WRITE8_HANDLER( radarscp_grid_enable_w ); +WRITE8_HANDLER( radarscp_grid_color_w ); +WRITE8_HANDLER( dkong_flipscreen_w ); +WRITE8_HANDLER( dkongjr_gfxbank_w ); +WRITE8_HANDLER( dkong3_gfxbank_w ); +WRITE8_HANDLER( dkong_spritebank_w ); +WRITE8_HANDLER( dkong_palettebank_w ); + +WRITE8_HANDLER( dkong_videoram_w ); + +PALETTE_INIT( dkong ); +PALETTE_INIT( radarscp ); +PALETTE_INIT( radarsc1 ); +PALETTE_INIT( dkong3 ); + +VIDEO_START( dkong ); +VIDEO_START( radarsc1 ); +VIDEO_START( radarscp ); +VIDEO_UPDATE( radarscp ); +VIDEO_UPDATE( dkong ); +VIDEO_UPDATE( pestplce ); +VIDEO_UPDATE( spclforc ); + + + +/*----------- defined in machine/strtheat.c -----------*/ + +DRIVER_INIT( strtheat ); + + +/*----------- defined in machine/drakton.c -----------*/ + +DRIVER_INIT( drakton ); + + +/*----------- defined in audio/dkong.c -----------*/ + +READ8_HANDLER( dkong_sh_p1_r ); +READ8_HANDLER( dkong_sh_p2_r ); +READ8_HANDLER( dkong_sh_t0_r ); +READ8_HANDLER( dkong_sh_t1_r ); +READ8_HANDLER( dkong_sh_tune_r ); +READ8_HANDLER( dkong_in2_r ); + +WRITE8_HANDLER( radarsc1_snd_disc_w ); +WRITE8_HANDLER( dkong_sh_w ); +WRITE8_HANDLER( dkong_sh_p1_w ); +WRITE8_HANDLER( dkong_sh_p2_w ); + +WRITE8_HANDLER( dkong_snd_disc_w ); +WRITE8_HANDLER( dkong_sh_tuneselect_w ); + +WRITE8_HANDLER( dkongjr_sh_test6_w ); +WRITE8_HANDLER( dkongjr_sh_test5_w ); +WRITE8_HANDLER( dkongjr_sh_test4_w ); +WRITE8_HANDLER( dkongjr_sh_tuneselect_w ); + +WRITE8_HANDLER( dkongjr_snd_w1 ); +WRITE8_HANDLER( dkongjr_snd_w2 ); + +READ8_HANDLER( radarsc1_sh_tune_r ); +READ8_HANDLER( radarsc1_sh_p1_r ); +WRITE8_HANDLER( radarsc1_sh_p1_w ); +WRITE8_HANDLER( radarsc1_sh_p2_w ); + +SOUND_START( dkong ); +SOUND_START( dkongjr ); +SOUND_START( hunchbkd ); +SOUND_START( radarsc1 ); + +DISCRETE_SOUND_EXTERN( dkong ); +DISCRETE_SOUND_EXTERN( radarscp ); + diff --git a/src/mame/includes/docastle.h b/src/mame/includes/docastle.h new file mode 100644 index 00000000000..9688c0e454e --- /dev/null +++ b/src/mame/includes/docastle.h @@ -0,0 +1,23 @@ +/*----------- defined in machine/docastle.c -----------*/ + +READ8_HANDLER( docastle_shared0_r ); +READ8_HANDLER( docastle_shared1_r ); +WRITE8_HANDLER( docastle_shared0_w ); +WRITE8_HANDLER( docastle_shared1_w ); +WRITE8_HANDLER( docastle_nmitrigger_w ); + + +/*----------- defined in video/docastle.c -----------*/ + +WRITE8_HANDLER( docastle_videoram_w ); +WRITE8_HANDLER( docastle_colorram_w ); +READ8_HANDLER( docastle_flipscreen_off_r ); +READ8_HANDLER( docastle_flipscreen_on_r ); +WRITE8_HANDLER( docastle_flipscreen_off_w ); +WRITE8_HANDLER( docastle_flipscreen_on_w ); + +PALETTE_INIT( docastle ); +VIDEO_START( docastle ); +VIDEO_START( dorunrun ); +VIDEO_UPDATE( docastle ); + diff --git a/src/mame/includes/dogfgt.h b/src/mame/includes/dogfgt.h new file mode 100644 index 00000000000..c09c88ded92 --- /dev/null +++ b/src/mame/includes/dogfgt.h @@ -0,0 +1,14 @@ +/*----------- defined in video/dogfgt.c -----------*/ + +extern UINT8 *dogfgt_bgvideoram; + +WRITE8_HANDLER( dogfgt_plane_select_w ); +READ8_HANDLER( dogfgt_bitmapram_r ); +WRITE8_HANDLER( dogfgt_bitmapram_w ); +WRITE8_HANDLER( dogfgt_bgvideoram_w ); +WRITE8_HANDLER( dogfgt_scroll_w ); +WRITE8_HANDLER( dogfgt_1800_w ); + +PALETTE_INIT( dogfgt ); +VIDEO_START( dogfgt ); +VIDEO_UPDATE( dogfgt ); diff --git a/src/mame/includes/dragrace.h b/src/mame/includes/dragrace.h new file mode 100644 index 00000000000..ad270b7ac5f --- /dev/null +++ b/src/mame/includes/dragrace.h @@ -0,0 +1,36 @@ +/************************************************************************* + + Atari Drag Race hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define DRAGRACE_SCREECH1_EN NODE_01 +#define DRAGRACE_SCREECH2_EN NODE_02 +#define DRAGRACE_LOTONE_EN NODE_03 +#define DRAGRACE_HITONE_EN NODE_04 +#define DRAGRACE_EXPLODE1_EN NODE_05 +#define DRAGRACE_EXPLODE2_EN NODE_06 +#define DRAGRACE_MOTOR1_DATA NODE_07 +#define DRAGRACE_MOTOR2_DATA NODE_08 +#define DRAGRACE_MOTOR1_EN NODE_80 +#define DRAGRACE_MOTOR2_EN NODE_81 +#define DRAGRACE_KLEXPL1_EN NODE_82 +#define DRAGRACE_KLEXPL2_EN NODE_83 +#define DRAGRACE_ATTRACT_EN NODE_09 + + +/*----------- defined in audio/dragrace.c -----------*/ + +DISCRETE_SOUND_EXTERN( dragrace ); + +/*----------- defined in video/dragrace.c -----------*/ + +VIDEO_START( dragrace ); +VIDEO_UPDATE( dragrace ); + +extern UINT8* dragrace_playfield_ram; +extern UINT8* dragrace_position_ram; + diff --git a/src/mame/includes/dribling.h b/src/mame/includes/dribling.h new file mode 100644 index 00000000000..633400aa79a --- /dev/null +++ b/src/mame/includes/dribling.h @@ -0,0 +1,16 @@ +/************************************************************************* + + Model Racing Dribbling hardware + +*************************************************************************/ + +/*----------- defined in drivers/dribling.c -----------*/ + +extern UINT8 dribling_abca; + + +/*----------- defined in video/dribling.c -----------*/ + +PALETTE_INIT( dribling ); +WRITE8_HANDLER( dribling_colorram_w ); +VIDEO_UPDATE( dribling ); diff --git a/src/mame/includes/dynax.h b/src/mame/includes/dynax.h new file mode 100644 index 00000000000..55f93d9b5d2 --- /dev/null +++ b/src/mame/includes/dynax.h @@ -0,0 +1,111 @@ +/*************************************************************************** + + Dynax hardware + +***************************************************************************/ + +//----------- defined in drivers/dynax.c ----------- + +extern UINT8 dynax_blitter_irq, dynax_blitter2_irq; + +void sprtmtch_update_irq(void); +void jantouki_update_irq(void); +void mjelctrn_update_irq(void); +void neruton_update_irq(void); + +//----------- defined in video/dynax.c ----------- + +WRITE8_HANDLER( dynax_blitter_rev2_w ); +WRITE8_HANDLER( jantouki_blitter_rev2_w ); +WRITE8_HANDLER( jantouki_blitter2_rev2_w ); +WRITE8_HANDLER( tenkai_blitter_rev2_w ); + +WRITE8_HANDLER( dynax_blit_pen_w ); +WRITE8_HANDLER( dynax_blit2_pen_w ); +WRITE8_HANDLER( dynax_blit_backpen_w ); +WRITE8_HANDLER( dynax_blit_dest_w ); +WRITE8_HANDLER( dynax_blit2_dest_w ); +WRITE8_HANDLER( dynax_blit_palbank_w ); +WRITE8_HANDLER( dynax_blit2_palbank_w ); +WRITE8_HANDLER( dynax_blit_palette01_w ); +WRITE8_HANDLER( dynax_blit_palette23_w ); +WRITE8_HANDLER( dynax_blit_palette45_w ); +WRITE8_HANDLER( dynax_blit_palette67_w ); +WRITE8_HANDLER( dynax_layer_enable_w ); +WRITE8_HANDLER( jantouki_layer_enable_w ); +WRITE8_HANDLER( dynax_flipscreen_w ); +WRITE8_HANDLER( dynax_extra_scrollx_w ); +WRITE8_HANDLER( dynax_extra_scrolly_w ); +WRITE8_HANDLER( dynax_blit_romregion_w ); +WRITE8_HANDLER( dynax_blit2_romregion_w ); + +WRITE8_HANDLER( hanamai_layer_half_w ); +WRITE8_HANDLER( hnoridur_layer_half2_w ); + +WRITE8_HANDLER( hanamai_priority_w ); +WRITE8_HANDLER( tenkai_priority_w ); + +WRITE8_HANDLER( mjdialq2_blit_dest_w ); +WRITE8_HANDLER( tenkai_blit_dest_w ); + +WRITE8_HANDLER( mjdialq2_layer_enable_w ); + +WRITE8_HANDLER( tenkai_blit_palette01_w ); +WRITE8_HANDLER( tenkai_blit_palette23_w ); + +VIDEO_START( hanamai ); +VIDEO_START( hnoridur ); +VIDEO_START( mcnpshnt ); +VIDEO_START( sprtmtch ); +VIDEO_START( mjdialq2 ); +VIDEO_START( jantouki ); +VIDEO_START( mjelctrn ); +VIDEO_START( neruton ); +VIDEO_START( htengoku ); + +VIDEO_UPDATE( hanamai ); +VIDEO_UPDATE( hnoridur ); +VIDEO_UPDATE( sprtmtch ); +VIDEO_UPDATE( mjdialq2 ); +VIDEO_UPDATE( jantouki ); +VIDEO_EOF( htengoku ); + +PALETTE_INIT( sprtmtch ); + + +//----------- defined in drivers/ddenlovr.c ----------- + +WRITE8_HANDLER( ddenlovr_bgcolor_w ); +WRITE8_HANDLER( ddenlovr_bgcolor2_w ); +WRITE16_HANDLER( ddenlovr16_bgcolor_w ); + +WRITE8_HANDLER( ddenlovr_priority_w ); +WRITE8_HANDLER( ddenlovr_priority2_w ); +WRITE16_HANDLER( ddenlovr16_priority_w ); + +WRITE8_HANDLER( ddenlovr_layer_enable_w ); +WRITE8_HANDLER( ddenlovr_layer_enable2_w ); +WRITE16_HANDLER( ddenlovr16_layer_enable_w ); + +WRITE8_HANDLER( ddenlovr_palette_base_w ); +WRITE8_HANDLER( ddenlovr_palette_base2_w ); +WRITE16_HANDLER( ddenlovr16_palette_base_w ); + +WRITE8_HANDLER( ddenlovr_palette_mask_w ); +WRITE8_HANDLER( ddenlovr_palette_mask2_w ); +WRITE16_HANDLER( ddenlovr16_palette_mask_w ); + +WRITE8_HANDLER( ddenlovr_transparency_pen_w ); +WRITE8_HANDLER( ddenlovr_transparency_pen2_w ); +WRITE16_HANDLER( ddenlovr16_transparency_pen_w ); + +WRITE8_HANDLER( ddenlovr_transparency_mask_w ); +WRITE8_HANDLER( ddenlovr_transparency_mask2_w ); +WRITE16_HANDLER( ddenlovr16_transparency_mask_w ); + +extern UINT8 *ddenlovr_pixmap[8]; + +VIDEO_START(ddenlovr); +VIDEO_UPDATE(ddenlovr); +VIDEO_EOF(ddenlovr); + diff --git a/src/mame/includes/eolithsp.h b/src/mame/includes/eolithsp.h new file mode 100644 index 00000000000..425708b07e8 --- /dev/null +++ b/src/mame/includes/eolithsp.h @@ -0,0 +1,6 @@ +/*----------- defined in drivers/eolithsp.c -----------*/ + +void eolith_speedup_read(void); +void init_eolith_speedup(running_machine *machine); +INTERRUPT_GEN( eolith_speedup ); +UINT32 eolith_speedup_getvblank(void *param); diff --git a/src/mame/includes/epos.h b/src/mame/includes/epos.h new file mode 100644 index 00000000000..e75dd3f1f89 --- /dev/null +++ b/src/mame/includes/epos.h @@ -0,0 +1,10 @@ +/************************************************************************* + + Epos games + +**************************************************************************/ + +/*----------- defined in video/epos.c -----------*/ + +WRITE8_HANDLER( epos_port_1_w ); +VIDEO_UPDATE( epos ); diff --git a/src/mame/includes/eprom.h b/src/mame/includes/eprom.h new file mode 100644 index 00000000000..c4fd1b09825 --- /dev/null +++ b/src/mame/includes/eprom.h @@ -0,0 +1,12 @@ +/************************************************************************* + + Atari Escape hardware + +*************************************************************************/ + +/*----------- defined in video/eprom.c -----------*/ + +VIDEO_START( eprom ); +VIDEO_UPDATE( eprom ); + +void eprom_scanline_update(running_machine *machine, int scrnum, int scanline); diff --git a/src/mame/includes/espial.h b/src/mame/includes/espial.h new file mode 100644 index 00000000000..3c7b574b760 --- /dev/null +++ b/src/mame/includes/espial.h @@ -0,0 +1,80 @@ +/*************************************************************************** + + Espial hardware games + +***************************************************************************/ + +/*----------- defined in drivers/espial.c -----------*/ + +MACHINE_RESET( espial ); + +WRITE8_HANDLER( zodiac_master_interrupt_enable_w ); +INTERRUPT_GEN( zodiac_master_interrupt ); +WRITE8_HANDLER( zodiac_master_soundlatch_w ); +WRITE8_HANDLER( espial_sound_nmi_enable_w ); +INTERRUPT_GEN( espial_sound_nmi_gen ); + + +/*----------- defined in video/espial.c -----------*/ + +extern UINT8 *espial_videoram; +extern UINT8 *espial_colorram; +extern UINT8 *espial_attributeram; +extern UINT8 *espial_scrollram; +extern UINT8 *espial_spriteram_1; +extern UINT8 *espial_spriteram_2; +extern UINT8 *espial_spriteram_3; + +PALETTE_INIT( espial ); +VIDEO_START( espial ); +VIDEO_START( netwars ); +WRITE8_HANDLER( espial_videoram_w ); +WRITE8_HANDLER( espial_colorram_w ); +WRITE8_HANDLER( espial_attributeram_w ); +WRITE8_HANDLER( espial_scrollram_w ); +WRITE8_HANDLER( espial_flipscreen_w ); +VIDEO_UPDATE( espial ); + + +/*----------- defined in video/marineb.c -----------*/ + +extern UINT8 *marineb_videoram; +extern UINT8 *marineb_colorram; +extern UINT8 marineb_active_low_flipscreen; + +WRITE8_HANDLER( marineb_videoram_w ); +WRITE8_HANDLER( marineb_colorram_w ); +WRITE8_HANDLER( marineb_column_scroll_w ); +WRITE8_HANDLER( marineb_palette_bank_0_w ); +WRITE8_HANDLER( marineb_palette_bank_1_w ); +WRITE8_HANDLER( marineb_flipscreen_x_w ); +WRITE8_HANDLER( marineb_flipscreen_y_w ); + +VIDEO_START( marineb ); +VIDEO_UPDATE( marineb ); +VIDEO_UPDATE( changes ); +VIDEO_UPDATE( springer ); +VIDEO_UPDATE( hoccer ); +VIDEO_UPDATE( hopprobo ); + + +/*----------- defined in drivers/zodiack.c -----------*/ + +extern int percuss_hardware; + +/*----------- defined in video/zodiack.c -----------*/ + +extern UINT8 *zodiack_videoram2; +extern UINT8 *zodiack_attributesram; +extern UINT8 *zodiack_bulletsram; +extern size_t zodiack_bulletsram_size; + +WRITE8_HANDLER( zodiack_videoram_w ); +WRITE8_HANDLER( zodiack_videoram2_w ); +WRITE8_HANDLER( zodiack_attributes_w ); +WRITE8_HANDLER( zodiack_flipscreen_w ); + +PALETTE_INIT( zodiack ); +VIDEO_START( zodiack ); +VIDEO_UPDATE( zodiack ); + diff --git a/src/mame/includes/exerion.h b/src/mame/includes/exerion.h new file mode 100644 index 00000000000..30a23d02657 --- /dev/null +++ b/src/mame/includes/exerion.h @@ -0,0 +1,31 @@ +/************************************************************************* + + Jaleco Exerion + +*************************************************************************/ + + +#define EXERION_MASTER_CLOCK (20000000) +#define EXERION_CPU_CLOCK (EXERION_MASTER_CLOCK / 6) +#define EXERION_AY8910_CLOCK (EXERION_CPU_CLOCK / 2) +#define EXERION_PIXEL_CLOCK (EXERION_MASTER_CLOCK / 3) +#define EXERION_HCOUNT_START (0x58) +#define EXERION_HTOTAL (512-EXERION_HCOUNT_START) +#define EXERION_HBEND (12*8) /* ?? */ +#define EXERION_HBSTART (52*8) /* ?? */ +#define EXERION_VTOTAL (256) +#define EXERION_VBEND (16) +#define EXERION_VBSTART (240) + + +/*----------- defined in video/exerion.c -----------*/ + +PALETTE_INIT( exerion ); +VIDEO_START( exerion ); +VIDEO_UPDATE( exerion ); + +WRITE8_HANDLER( exerion_videoreg_w ); +WRITE8_HANDLER( exerion_video_latch_w ); +READ8_HANDLER( exerion_video_timing_r ); + +extern UINT8 exerion_cocktail_flip; diff --git a/src/mame/includes/exidy.h b/src/mame/includes/exidy.h new file mode 100644 index 00000000000..cb79e9a8c34 --- /dev/null +++ b/src/mame/includes/exidy.h @@ -0,0 +1,88 @@ +/************************************************************************* + + Exidy 6502 hardware + +*************************************************************************/ + +#include "sound/custom.h" + + +#define EXIDY_MASTER_CLOCK (11289000) +#define EXIDY_CPU_CLOCK (EXIDY_MASTER_CLOCK / 16) +#define EXIDY_PIXEL_CLOCK (EXIDY_MASTER_CLOCK / 2) +#define EXIDY_HTOTAL (0x150) +#define EXIDY_HBEND (0x000) +#define EXIDY_HBSTART (0x100) +#define EXIDY_HSEND (0x140) +#define EXIDY_HSSTART (0x120) +#define EXIDY_VTOTAL (0x118) +#define EXIDY_VBEND (0x000) +#define EXIDY_VBSTART (0x100) +#define EXIDY_VSEND (0x108) +#define EXIDY_VSSTART (0x100) + + +/*----------- defined in audio/exidy.c -----------*/ + +void *exidy_sh_start(int clock, const struct CustomSound_interface *config); +void *victory_sh_start(int clock, const struct CustomSound_interface *config); +void *berzerk_sh_start(int clock, const struct CustomSound_interface *config); + +WRITE8_HANDLER( exidy_shriot_w ); +WRITE8_HANDLER( exidy_sfxctrl_w ); +WRITE8_HANDLER( exidy_sh8253_w ); +WRITE8_HANDLER( exidy_sh6840_w ); +WRITE8_HANDLER( exidy_sound_filter_w ); +READ8_HANDLER( exidy_shriot_r ); +READ8_HANDLER( exidy_sh8253_r ); +READ8_HANDLER( exidy_sh6840_r ); + +WRITE8_HANDLER( mtrap_voiceio_w ); +READ8_HANDLER( mtrap_voiceio_r ); + + +/*----------- defined in audio/targ.c -----------*/ + +extern UINT8 targ_spec_flag; + +void targ_sh_start(void); + +WRITE8_HANDLER( targ_sh_w ); + + +/*----------- defined in video/exidy.c -----------*/ + +#define PALETTE_LEN 8 +#define COLORTABLE_LEN 20 + +extern UINT8 *exidy_characterram; +extern UINT8 *exidy_palette; +extern UINT16 *exidy_colortable; + +extern UINT8 sidetrac_palette[]; +extern UINT8 targ_palette[]; +extern UINT8 spectar_palette[]; +extern UINT16 exidy_1bpp_colortable[]; +extern UINT16 exidy_2bpp_colortable[]; + +extern UINT8 exidy_collision_mask; +extern UINT8 exidy_collision_invert; + +PALETTE_INIT( exidy ); +VIDEO_START( exidy ); +VIDEO_EOF( exidy ); +VIDEO_UPDATE( exidy ); + +INTERRUPT_GEN( exidy_vblank_interrupt ); +INTERRUPT_GEN( teetert_vblank_interrupt ); + +WRITE8_HANDLER( exidy_characterram_w ); +WRITE8_HANDLER( exidy_color_w ); +WRITE8_HANDLER( exidy_sprite1_xpos_w ); +WRITE8_HANDLER( exidy_sprite1_ypos_w ); +WRITE8_HANDLER( exidy_sprite2_xpos_w ); +WRITE8_HANDLER( exidy_sprite2_ypos_w ); +WRITE8_HANDLER( exidy_spriteno_w ); +WRITE8_HANDLER( exidy_sprite_enable_w ); + +READ8_HANDLER( exidy_interrupt_r ); diff --git a/src/mame/includes/exidy440.h b/src/mame/includes/exidy440.h new file mode 100644 index 00000000000..348cdf1a77d --- /dev/null +++ b/src/mame/includes/exidy440.h @@ -0,0 +1,75 @@ +/************************************************************************* + + Exidy 440 hardware + +*************************************************************************/ + +#include "sound/custom.h" + + +#define EXIDY440_MASTER_CLOCK (12979200) +#define EXIDY440_MAIN_CPU_CLOCK (EXIDY440_MASTER_CLOCK / 8) +#define EXIDY440_PIXEL_CLOCK (EXIDY440_MASTER_CLOCK / 2) +#define EXIDY440_HTOTAL (0x1a0) +#define EXIDY440_HBEND (0x000) +#define EXIDY440_HBSTART (0x140) +#define EXIDY440_HSEND (0x178) +#define EXIDY440_HSSTART (0x160) +#define EXIDY440_VTOTAL (0x104) +#define EXIDY440_VBEND (0x000) +#define EXIDY440_VBSTART (0x0f0) +#define EXIDY440_VSEND (0x0f8) +#define EXIDY440_VSSTART (0x0f0) + +/* Top Secret has a larger VBLANK area */ +#define TOPSECEX_VBSTART (0x0ec) + + +/*----------- defined in drivers/exidy440.c -----------*/ + +extern UINT8 exidy440_topsecret; +void exidy440_bank_select(UINT8 bank); + + + +/*----------- defined in audio/exidy440.c -----------*/ + +extern UINT8 exidy440_sound_command; +extern UINT8 exidy440_sound_command_ack; +extern UINT8 *exidy440_m6844_data; +extern UINT8 *exidy440_sound_banks; +extern UINT8 *exidy440_sound_volume; + +void *exidy440_sh_start(int clock, const struct CustomSound_interface *config); +void exidy440_sh_stop(void *token); + +READ8_HANDLER( exidy440_m6844_r ); +WRITE8_HANDLER( exidy440_m6844_w ); +READ8_HANDLER( exidy440_sound_command_r ); +WRITE8_HANDLER( exidy440_sound_volume_w ); +WRITE8_HANDLER( exidy440_sound_interrupt_clear_w ); + + +/*----------- defined in video/exidy440.c -----------*/ + +extern UINT8 *exidy440_imageram; +extern UINT8 *exidy440_scanline; +extern UINT8 exidy440_firq_vblank; +extern UINT8 exidy440_firq_beam; +extern UINT8 topsecex_yscroll; + +INTERRUPT_GEN( exidy440_vblank_interrupt ); + +VIDEO_START( exidy440 ); +VIDEO_EOF( exidy440 ); +VIDEO_UPDATE( exidy440 ); + +READ8_HANDLER( exidy440_videoram_r ); +WRITE8_HANDLER( exidy440_videoram_w ); +READ8_HANDLER( exidy440_paletteram_r ); +WRITE8_HANDLER( exidy440_paletteram_w ); +WRITE8_HANDLER( exidy440_spriteram_w ); +WRITE8_HANDLER( exidy440_control_w ); +READ8_HANDLER( exidy440_vertical_pos_r ); +READ8_HANDLER( exidy440_horizontal_pos_r ); +WRITE8_HANDLER( exidy440_interrupt_clear_w ); diff --git a/src/mame/includes/exterm.h b/src/mame/includes/exterm.h new file mode 100644 index 00000000000..5863b859292 --- /dev/null +++ b/src/mame/includes/exterm.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Gottlieb Exterminator hardware + +*************************************************************************/ + +/*----------- defined in video/exterm.c -----------*/ + +extern UINT16 *exterm_master_videoram; +extern UINT16 *exterm_slave_videoram; + +PALETTE_INIT( exterm ); +void exterm_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); + +void exterm_to_shiftreg_master(UINT32 address, UINT16* shiftreg); +void exterm_from_shiftreg_master(UINT32 address, UINT16* shiftreg); +void exterm_to_shiftreg_slave(UINT32 address, UINT16* shiftreg); +void exterm_from_shiftreg_slave(UINT32 address, UINT16* shiftreg); diff --git a/src/mame/includes/f1gp.h b/src/mame/includes/f1gp.h new file mode 100644 index 00000000000..2bc057d5577 --- /dev/null +++ b/src/mame/includes/f1gp.h @@ -0,0 +1,24 @@ +/*----------- defined in video/f1gp.c -----------*/ + +extern UINT16 *f1gp_spr1vram,*f1gp_spr2vram,*f1gp_spr1cgram,*f1gp_spr2cgram; +extern UINT16 *f1gp_fgvideoram,*f1gp_rozvideoram; +extern UINT16 *f1gp2_sprcgram,*f1gp2_spritelist; +extern UINT16 *f1gpb_rozregs, *f1gpb_fgregs; +extern size_t f1gp_spr1cgram_size,f1gp_spr2cgram_size; + + +VIDEO_START( f1gp ); +VIDEO_START( f1gpb ); +VIDEO_START( f1gp2 ); +VIDEO_UPDATE( f1gp ); +VIDEO_UPDATE( f1gpb ); +VIDEO_UPDATE( f1gp2 ); + +READ16_HANDLER( f1gp_zoomdata_r ); +WRITE16_HANDLER( f1gp_zoomdata_w ); +READ16_HANDLER( f1gp_rozvideoram_r ); +WRITE16_HANDLER( f1gp_rozvideoram_w ); +WRITE16_HANDLER( f1gp_fgvideoram_w ); +WRITE16_HANDLER( f1gp_fgscroll_w ); +WRITE16_HANDLER( f1gp_gfxctrl_w ); +WRITE16_HANDLER( f1gp2_gfxctrl_w ); diff --git a/src/mame/includes/fastfred.h b/src/mame/includes/fastfred.h new file mode 100644 index 00000000000..02958e018b6 --- /dev/null +++ b/src/mame/includes/fastfred.h @@ -0,0 +1,32 @@ +/*************************************************************************** + + Fast Freddie/Jump Coaster hardware + driver by Zsolt Vasvari + +***************************************************************************/ + +/*----------- defined in video/fastfred.c -----------*/ + +extern UINT8 *fastfred_videoram; +extern UINT8 *fastfred_spriteram; +extern size_t fastfred_spriteram_size; +extern UINT8 *fastfred_attributesram; + +PALETTE_INIT( fastfred ); +VIDEO_START( fastfred ); +WRITE8_HANDLER( fastfred_videoram_w ); +WRITE8_HANDLER( fastfred_attributes_w ); +WRITE8_HANDLER( fastfred_charbank1_w ); +WRITE8_HANDLER( fastfred_charbank2_w ); +WRITE8_HANDLER( fastfred_colorbank1_w ); +WRITE8_HANDLER( fastfred_colorbank2_w ); +WRITE8_HANDLER( fastfred_background_color_w ); +WRITE8_HANDLER( fastfred_flip_screen_x_w ); +WRITE8_HANDLER( fastfred_flip_screen_y_w ); +VIDEO_UPDATE( fastfred ); + +extern UINT8 *imago_fg_videoram; +VIDEO_START( imago ); +VIDEO_UPDATE( imago ); +WRITE8_HANDLER( imago_fg_videoram_w ); +WRITE8_HANDLER( imago_charbank_w ); diff --git a/src/mame/includes/fgoal.h b/src/mame/includes/fgoal.h new file mode 100644 index 00000000000..4933f7799a1 --- /dev/null +++ b/src/mame/includes/fgoal.h @@ -0,0 +1,15 @@ +/*----------- defined in drivers/fgoal.c -----------*/ + +extern UINT8* fgoal_video_ram; +extern int fgoal_player; + + +/*----------- defined in video/fgoal.c -----------*/ + +VIDEO_START( fgoal ); +VIDEO_UPDATE( fgoal ); + +WRITE8_HANDLER( fgoal_color_w ); +WRITE8_HANDLER( fgoal_xpos_w ); +WRITE8_HANDLER( fgoal_ypos_w ); + diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h new file mode 100644 index 00000000000..1dec7c0b3f9 --- /dev/null +++ b/src/mame/includes/firetrk.h @@ -0,0 +1,78 @@ +/************************************************************************* + +Atari Fire Truck + Super Bug + Monte Carlo driver + +*************************************************************************/ + +#include "sound/discrete.h" + +#define FIRETRUCK_MOTOR_DATA NODE_01 +#define FIRETRUCK_HORN_EN NODE_02 +#define FIRETRUCK_SIREN_DATA NODE_03 +#define FIRETRUCK_CRASH_DATA NODE_04 +#define FIRETRUCK_SKID_EN NODE_05 +#define FIRETRUCK_BELL_EN NODE_06 +#define FIRETRUCK_ATTRACT_EN NODE_07 +#define FIRETRUCK_XTNDPLY_EN NODE_08 + +#define SUPERBUG_SPEED_DATA FIRETRUCK_MOTOR_DATA +#define SUPERBUG_CRASH_DATA FIRETRUCK_CRASH_DATA +#define SUPERBUG_SKID_EN FIRETRUCK_SKID_EN +#define SUPERBUG_ASR_EN FIRETRUCK_XTNDPLY_EN +#define SUPERBUG_ATTRACT_EN FIRETRUCK_ATTRACT_EN + +#define MONTECAR_MOTOR_DATA FIRETRUCK_MOTOR_DATA +#define MONTECAR_CRASH_DATA FIRETRUCK_CRASH_DATA +#define MONTECAR_DRONE_MOTOR_DATA FIRETRUCK_SIREN_DATA +#define MONTECAR_SKID_EN FIRETRUCK_SKID_EN +#define MONTECAR_DRONE_LOUD_DATA FIRETRUCK_BELL_EN +#define MONTECAR_BEEPER_EN FIRETRUCK_XTNDPLY_EN +#define MONTECAR_ATTRACT_INV FIRETRUCK_ATTRACT_EN + +#define GAME_IS_FIRETRUCK (firetrk_game == 1) +#define GAME_IS_SUPERBUG (firetrk_game == 2) +#define GAME_IS_MONTECARLO (firetrk_game == 3) + + +/*----------- defined in drivers/firetrk.c -----------*/ + +extern int firetrk_game; + + +/*----------- defined in audio/firetrk.c -----------*/ + +WRITE8_HANDLER( firetrk_skid_reset_w ); +WRITE8_HANDLER( firetrk_crash_snd_w ); +WRITE8_HANDLER( firetrk_skid_snd_w ); +WRITE8_HANDLER( firetrk_motor_snd_w ); +WRITE8_HANDLER( firetrk_xtndply_w ); +WRITE8_HANDLER( firetrk_asr_w ); +WRITE8_HANDLER( firetrk_out2_w ); + +DISCRETE_SOUND_EXTERN( firetrk ); +DISCRETE_SOUND_EXTERN( superbug ); +DISCRETE_SOUND_EXTERN( montecar ); + + +/*----------- defined in video/firetrk.c -----------*/ + +extern VIDEO_UPDATE( firetrk ); +extern VIDEO_START( firetrk ); +extern VIDEO_EOF( firetrk ); + +extern WRITE8_HANDLER( firetrk_vert_w ); +extern WRITE8_HANDLER( firetrk_horz_w ); +extern WRITE8_HANDLER( firetrk_drone_hpos_w ); +extern WRITE8_HANDLER( firetrk_drone_vpos_w ); +extern WRITE8_HANDLER( firetrk_drone_rot_w ); +extern WRITE8_HANDLER( firetrk_playfield_w ); +extern WRITE8_HANDLER( firetrk_car_rot_w ); + +extern void firetrk_set_flash(int flag); +extern void firetrk_set_blink(int flag); + +extern UINT8* firetrk_alpha_num_ram; +extern UINT8* firetrk_playfield_ram; + +extern int firetrk_crash[2]; +extern int firetrk_skid[2]; diff --git a/src/mame/includes/foodf.h b/src/mame/includes/foodf.h new file mode 100644 index 00000000000..7bf0415c4c8 --- /dev/null +++ b/src/mame/includes/foodf.h @@ -0,0 +1,13 @@ +/************************************************************************* + + Atari Food Fight hardware + +*************************************************************************/ + +/*----------- defined in video/foodf.c -----------*/ + +WRITE16_HANDLER( foodf_paletteram_w ); + +void foodf_set_flip(int flip); +VIDEO_START( foodf ); +VIDEO_UPDATE( foodf ); diff --git a/src/mame/includes/fromance.h b/src/mame/includes/fromance.h new file mode 100644 index 00000000000..f4d8c5359ce --- /dev/null +++ b/src/mame/includes/fromance.h @@ -0,0 +1,30 @@ +/*************************************************************************** + + Game Driver for Video System Mahjong series and Pipe Dream. + + Driver by Takahiro Nogi <nogi@kt.rim.or.jp> 2001/02/04 - + and Bryan McPhail, Nicola Salmoria, Aaron Giles + +***************************************************************************/ + +/*----------- defined in video/fromance.c -----------*/ + +VIDEO_START( fromance ); +VIDEO_START( nekkyoku ); +VIDEO_START( pipedrm ); +VIDEO_START( hatris ); +VIDEO_UPDATE( fromance ); +VIDEO_UPDATE( pipedrm ); + +WRITE8_HANDLER( fromance_crtc_data_w ); +WRITE8_HANDLER( fromance_crtc_register_w ); + +WRITE8_HANDLER( fromance_gfxreg_w ); + +WRITE8_HANDLER( fromance_scroll_w ); + +READ8_HANDLER( fromance_paletteram_r ); +WRITE8_HANDLER( fromance_paletteram_w ); + +READ8_HANDLER( fromance_videoram_r ); +WRITE8_HANDLER( fromance_videoram_w ); diff --git a/src/mame/includes/gaelco3d.h b/src/mame/includes/gaelco3d.h new file mode 100644 index 00000000000..9ff93abd7f3 --- /dev/null +++ b/src/mame/includes/gaelco3d.h @@ -0,0 +1,24 @@ +/************************************************************************* + + Driver for Gaelco 3D games + + driver by Aaron Giles + +**************************************************************************/ + + +/*----------- defined in video/gaelco3d.c -----------*/ + +extern UINT8 *gaelco3d_texture; +extern UINT8 *gaelco3d_texmask; +extern offs_t gaelco3d_texture_size; +extern offs_t gaelco3d_texmask_size; + +void gaelco3d_render(void); +WRITE32_HANDLER( gaelco3d_render_w ); + +WRITE16_HANDLER( gaelco3d_paletteram_w ); +WRITE32_HANDLER( gaelco3d_paletteram_020_w ); + +VIDEO_START( gaelco3d ); +VIDEO_UPDATE( gaelco3d ); diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h new file mode 100644 index 00000000000..9dd0c5916f7 --- /dev/null +++ b/src/mame/includes/galaga.h @@ -0,0 +1,98 @@ +#include "sound/discrete.h" + +/*----------- defined in video/bosco.c -----------*/ + +extern UINT8 *bosco_videoram; +extern UINT8 *bosco_radarattr; +READ8_HANDLER( bosco_videoram_r ); +WRITE8_HANDLER( bosco_videoram_w ); +WRITE8_HANDLER( bosco_scrollx_w ); +WRITE8_HANDLER( bosco_scrolly_w ); +WRITE8_HANDLER( bosco_starcontrol_w ); +WRITE8_HANDLER( bosco_starclr_w ); +WRITE8_HANDLER( bosco_starblink_w ); +VIDEO_START( bosco ); +VIDEO_UPDATE( bosco ); +PALETTE_INIT( bosco ); +VIDEO_EOF( bosco ); /* update starfield */ + +/*----------- defined in audio/galaga.c -----------*/ + +DISCRETE_SOUND_EXTERN( bosco ); +DISCRETE_SOUND_EXTERN( galaga ); + + +/*----------- defined in video/galaga.c -----------*/ + +struct star +{ + UINT16 x,y; + UINT8 col,set; +}; + +extern UINT8 *galaga_videoram; +extern UINT8 *galaga_ram1,*galaga_ram2,*galaga_ram3; +extern UINT8 galaga_starcontrol[]; +extern struct star star_seed_tab[]; + +PALETTE_INIT( galaga ); +READ8_HANDLER( galaga_videoram_r ); +WRITE8_HANDLER( galaga_videoram_w ); +WRITE8_HANDLER( galaga_starcontrol_w ); +WRITE8_HANDLER( gatsbee_bank_w ); +VIDEO_START( galaga ); +VIDEO_UPDATE( galaga ); +VIDEO_EOF( galaga ); /* update starfield */ + +/*----------- defined in video/xevious.c -----------*/ + +extern UINT8 *xevious_fg_videoram,*xevious_fg_colorram; +extern UINT8 *xevious_bg_videoram,*xevious_bg_colorram; +extern UINT8 *xevious_sr1,*xevious_sr2,*xevious_sr3; + +READ8_HANDLER( xevious_fg_videoram_r ); +READ8_HANDLER( xevious_fg_colorram_r ); +READ8_HANDLER( xevious_bg_videoram_r ); +READ8_HANDLER( xevious_bg_colorram_r ); +WRITE8_HANDLER( xevious_fg_videoram_w ); +WRITE8_HANDLER( xevious_fg_colorram_w ); +WRITE8_HANDLER( xevious_bg_videoram_w ); +WRITE8_HANDLER( xevious_bg_colorram_w ); +WRITE8_HANDLER( xevious_vh_latch_w ); +WRITE8_HANDLER( xevious_bs_w ); +READ8_HANDLER( xevious_bb_r ); +VIDEO_START( xevious ); +PALETTE_INIT( xevious ); +VIDEO_UPDATE( xevious ); + +PALETTE_INIT( battles ); + +/*----------- defined in machine/xevious.c -----------*/ + +void battles_customio_init(void); + +READ8_HANDLER( battles_customio0_r ); +READ8_HANDLER( battles_customio_data0_r ); +READ8_HANDLER( battles_customio3_r ); +READ8_HANDLER( battles_customio_data3_r ); +READ8_HANDLER( battles_input_port_r ); + +WRITE8_HANDLER( battles_customio0_w ); +WRITE8_HANDLER( battles_customio_data0_w ); +WRITE8_HANDLER( battles_customio3_w ); +WRITE8_HANDLER( battles_customio_data3_w ); +WRITE8_HANDLER( battles_CPU4_coin_w ); +WRITE8_HANDLER( battles_noise_sound_w ); + +INTERRUPT_GEN( battles_interrupt_4 ); + +/*----------- defined in video/digdug.c -----------*/ + +extern UINT8 *digdug_videoram,*digdug_objram, *digdug_posram, *digdug_flpram; + +READ8_HANDLER( digdug_videoram_r ); +WRITE8_HANDLER( digdug_videoram_w ); +WRITE8_HANDLER( digdug_PORT_w ); +VIDEO_START( digdug ); +VIDEO_UPDATE( digdug ); +PALETTE_INIT( digdug ); diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h new file mode 100644 index 00000000000..dbfd447ff31 --- /dev/null +++ b/src/mame/includes/galaxian.h @@ -0,0 +1,238 @@ +/*************************************************************************** + + Galaxian hardware family + + This include file is used by the following drivers: + - galaxian.c + - scramble.c + - scobra.c + - frogger.c + - amidar.c + +***************************************************************************/ + +/*----------- defined in video/galaxian.c -----------*/ + +extern UINT8 *galaxian_videoram; +extern UINT8 *galaxian_spriteram; +extern UINT8 *galaxian_spriteram2; +extern UINT8 *galaxian_attributesram; +extern UINT8 *galaxian_bulletsram; +extern UINT8 *rockclim_videoram; +extern UINT8 *racknrol_tiles_bank; + + +extern size_t galaxian_spriteram_size; +extern size_t galaxian_spriteram2_size; +extern size_t galaxian_bulletsram_size; + +PALETTE_INIT( galaxian ); +PALETTE_INIT( scramble ); +PALETTE_INIT( turtles ); +PALETTE_INIT( moonwar ); +PALETTE_INIT( darkplnt ); +PALETTE_INIT( rescue ); +PALETTE_INIT( minefld ); +PALETTE_INIT( stratgyx ); +PALETTE_INIT( mariner ); +PALETTE_INIT( frogger ); +PALETTE_INIT( rockclim ); + +WRITE8_HANDLER( galaxian_videoram_w ); +READ8_HANDLER( galaxian_videoram_r ); + +WRITE8_HANDLER( rockclim_videoram_w ); +WRITE8_HANDLER( rockclim_scroll_w ); +READ8_HANDLER( rockclim_videoram_r ); + +WRITE8_HANDLER( galaxian_attributesram_w ); + +WRITE8_HANDLER( galaxian_stars_enable_w ); +WRITE8_HANDLER( scramble_background_enable_w ); +WRITE8_HANDLER( scramble_background_red_w ); +WRITE8_HANDLER( scramble_background_green_w ); +WRITE8_HANDLER( scramble_background_blue_w ); +WRITE8_HANDLER( hotshock_flip_screen_w ); +WRITE8_HANDLER( darkplnt_bullet_color_w ); +WRITE8_HANDLER( racknrol_tiles_bank_w ); + +VIDEO_START( galaxian_plain ); +VIDEO_START( galaxian ); +VIDEO_START( gmgalax ); +VIDEO_START( mooncrst ); +VIDEO_START( mooncrgx ); +VIDEO_START( moonqsr ); +VIDEO_START( mshuttle ); +VIDEO_START( pisces ); +VIDEO_START( gteikob2 ); +VIDEO_START( batman2 ); +VIDEO_START( jumpbug ); +VIDEO_START( azurian ); +VIDEO_START( dkongjrm ); +VIDEO_START( scramble ); +VIDEO_START( theend ); +VIDEO_START( darkplnt ); +VIDEO_START( rescue ); +VIDEO_START( minefld ); +VIDEO_START( calipso ); +VIDEO_START( stratgyx ); +VIDEO_START( mimonkey ); +VIDEO_START( turtles ); +VIDEO_START( frogger ); +VIDEO_START( mariner ); +VIDEO_START( ckongs ); +VIDEO_START( froggers ); +VIDEO_START( newsin7 ); +VIDEO_START( sfx ); +VIDEO_START( rockclim ); +VIDEO_START( drivfrcg ); +VIDEO_START( bongo ); +VIDEO_START( scorpion ); +VIDEO_START( racknrol ); +VIDEO_START( ad2083 ); + +VIDEO_UPDATE( galaxian ); + +WRITE8_HANDLER( galaxian_gfxbank_w ); +WRITE8_HANDLER( galaxian_flip_screen_x_w ); +WRITE8_HANDLER( galaxian_flip_screen_y_w ); +WRITE8_HANDLER( gteikob2_flip_screen_x_w ); +WRITE8_HANDLER( gteikob2_flip_screen_y_w ); + + +/*----------- defined in machine/galaxian.c -----------*/ + +DRIVER_INIT( zigzag ); +DRIVER_INIT( pisces ); +DRIVER_INIT( checkmaj ); +DRIVER_INIT( dingo ); +DRIVER_INIT( dingoe ); +DRIVER_INIT( kingball ); +DRIVER_INIT( mooncrsu ); +DRIVER_INIT( mooncrst ); +DRIVER_INIT( mooncrgx ); +DRIVER_INIT( moonqsr ); +DRIVER_INIT( checkman ); +DRIVER_INIT( gteikob2 ); +DRIVER_INIT( azurian ); +DRIVER_INIT( 4in1 ); +DRIVER_INIT( ladybugg ); +DRIVER_INIT( gmgalax ); + +WRITE8_HANDLER( galaxian_nmi_enable_w ); + +MACHINE_RESET( galaxian ); +MACHINE_RESET( devilfsg ); + +WRITE8_HANDLER( galaxian_coin_lockout_w ); +WRITE8_HANDLER( galaxian_coin_counter_w ); +#define galaxian_coin_counter_0_w galaxian_coin_counter_w +WRITE8_HANDLER( galaxian_coin_counter_1_w ); +WRITE8_HANDLER( galaxian_coin_counter_2_w ); +WRITE8_HANDLER( galaxian_leds_w ); + +READ8_HANDLER( scramblb_protection_1_r ); +READ8_HANDLER( scramblb_protection_2_r ); + +READ8_HANDLER( jumpbug_protection_r ); + +WRITE8_HANDLER( kingball_speech_dip_w ); +WRITE8_HANDLER( kingball_sound1_w ); +WRITE8_HANDLER( kingball_sound2_w ); + +WRITE8_HANDLER( _4in1_bank_w ); +READ8_HANDLER( _4in1_input_port_1_r ); +READ8_HANDLER( _4in1_input_port_2_r ); + +WRITE8_HANDLER( zigzag_sillyprotection_w ); + +INTERRUPT_GEN( hunchbks_vh_interrupt ); +INTERRUPT_GEN( gmgalax_vh_interrupt ); + +READ8_HANDLER( gmgalax_input_port_0_r ); +READ8_HANDLER( gmgalax_input_port_1_r ); +READ8_HANDLER( gmgalax_input_port_2_r ); + + +/*----------- defined in machine/scramble.c -----------*/ + +DRIVER_INIT( scramble_ppi ); +DRIVER_INIT( amidar ); +DRIVER_INIT( frogger ); +DRIVER_INIT( froggers ); +DRIVER_INIT( scobra ); +DRIVER_INIT( stratgyx ); +DRIVER_INIT( moonwar ); +DRIVER_INIT( darkplnt ); +DRIVER_INIT( tazmani2 ); +DRIVER_INIT( anteater ); +DRIVER_INIT( rescue ); +DRIVER_INIT( minefld ); +DRIVER_INIT( losttomb ); +DRIVER_INIT( superbon ); +DRIVER_INIT( hustler ); +DRIVER_INIT( billiard ); +DRIVER_INIT( mimonkey ); +DRIVER_INIT( mimonsco ); +DRIVER_INIT( atlantis ); +DRIVER_INIT( scramble ); +DRIVER_INIT( scrambls ); +DRIVER_INIT( theend ); +DRIVER_INIT( ckongs ); +DRIVER_INIT( mariner ); +DRIVER_INIT( mars ); +DRIVER_INIT( devilfsh ); +DRIVER_INIT( hotshock ); +DRIVER_INIT( cavelon ); +DRIVER_INIT( mrkougar ); +DRIVER_INIT( mrkougb ); +DRIVER_INIT( mimonscr ); +DRIVER_INIT( sfx ); +DRIVER_INIT( monsterz ); +DRIVER_INIT( scorpion ); +DRIVER_INIT( ad2083 ); + +MACHINE_RESET( scramble ); +MACHINE_RESET( sfx ); +MACHINE_RESET( monsterz ); +MACHINE_RESET( explorer ); + +READ8_HANDLER( triplep_pip_r ); +READ8_HANDLER( triplep_pap_r ); + +READ8_HANDLER( hunchbks_mirror_r ); +WRITE8_HANDLER( hunchbks_mirror_w ); + + + +/*----------- defined in audio/galaxian.c -----------*/ + +extern struct Samplesinterface galaxian_samples_interface; +WRITE8_HANDLER( galaxian_pitch_w ); +WRITE8_HANDLER( galaxian_vol_w ); +WRITE8_HANDLER( galaxian_noise_enable_w ); +WRITE8_HANDLER( galaxian_background_enable_w ); +WRITE8_HANDLER( galaxian_shoot_enable_w ); +WRITE8_HANDLER( galaxian_lfo_freq_w ); + + +/*----------- defined in audio/scramble.c -----------*/ + +void scramble_sh_init(void); +void sfx_sh_init(void); + +WRITE8_HANDLER( scramble_filter_w ); +WRITE8_HANDLER( frogger_filter_w ); + +READ8_HANDLER( scramble_portB_r ); +READ8_HANDLER( frogger_portB_r ); + +READ8_HANDLER( hotshock_soundlatch_r ); + +WRITE8_HANDLER( scramble_sh_irqtrigger_w ); +WRITE8_HANDLER( sfx_sh_irqtrigger_w ); +WRITE8_HANDLER( mrkougar_sh_irqtrigger_w ); +WRITE8_HANDLER( froggrmc_sh_irqtrigger_w ); +WRITE8_HANDLER( hotshock_sh_irqtrigger_w ); + + diff --git a/src/mame/includes/gauntlet.h b/src/mame/includes/gauntlet.h new file mode 100644 index 00000000000..b47ab9c3738 --- /dev/null +++ b/src/mame/includes/gauntlet.h @@ -0,0 +1,15 @@ +/************************************************************************* + + Atari Gauntlet hardware + +*************************************************************************/ + +/*----------- defined in video/gauntlet.c -----------*/ + +extern UINT8 vindctr2_screen_refresh; + +WRITE16_HANDLER( gauntlet_xscroll_w ); +WRITE16_HANDLER( gauntlet_yscroll_w ); + +VIDEO_START( gauntlet ); +VIDEO_UPDATE( gauntlet ); diff --git a/src/mame/includes/gcpinbal.h b/src/mame/includes/gcpinbal.h new file mode 100644 index 00000000000..53788699cc0 --- /dev/null +++ b/src/mame/includes/gcpinbal.h @@ -0,0 +1,11 @@ +/*----------- defined in video/gcpinbal.c -----------*/ + +VIDEO_START( gcpinbal ); +VIDEO_UPDATE( gcpinbal ); + +READ16_HANDLER ( gcpinbal_tilemaps_word_r ); +WRITE16_HANDLER( gcpinbal_tilemaps_word_w ); + +extern UINT16 *gcpinbal_tilemapram; +extern UINT16 *gcpinbal_ioc_ram; + diff --git a/src/mame/includes/genesis.h b/src/mame/includes/genesis.h new file mode 100644 index 00000000000..6f326b857f9 --- /dev/null +++ b/src/mame/includes/genesis.h @@ -0,0 +1,101 @@ +/* Todo, reorganise, cleanup etc.*/ + +#include "sound/okim6295.h" +#include "sound/sn76496.h" +#include "sound/2612intf.h" +#include "sound/upd7759.h" + +/*----------- defined in drivers/megaplay.c -----------*/ + +extern UINT16 *ic36_ram; +extern UINT8 bios_6204; +extern UINT8 bios_ctrl[6]; + +/*----------- defined in drivers/megatech.c -----------*/ + +extern UINT32 bios_ctrl_inputs; + +/*----------- defined in drivers/genesis.c -----------*/ + +extern UINT8 *genesis_z80_ram; +extern UINT16 *genesis_68k_ram; +extern MACHINE_START( genesis ); +extern MACHINE_RESET( genesis ); +extern READ16_HANDLER ( megaplay_genesis_io_r ); +extern WRITE16_HANDLER ( genesis_io_w ); +extern UINT16 *genesis_io_ram; +extern READ16_HANDLER(genesis_ctrl_r); +extern READ16_HANDLER ( megaplay_68k_to_z80_r ); +extern READ8_HANDLER ( genesis_z80_r ); +extern READ8_HANDLER ( genesis_z80_bank_r ); +extern WRITE8_HANDLER ( genesis_z80_w ); +extern WRITE16_HANDLER(genesis_ctrl_w); +extern WRITE16_HANDLER ( genesis_68k_to_z80_w ); +extern READ16_HANDLER ( genesis_io_r ); +extern READ16_HANDLER ( genesis_68k_to_z80_r ); +extern INTERRUPT_GEN( genesis_vblank_interrupt ); +extern void genesis_irq2_interrupt(int state); + +/*----------- defined in video/genesis.c -----------*/ + +extern UINT8 genesis_vdp_regs[]; +extern UINT16 genesis_bg_pal_lookup[]; +extern UINT16 genesis_sp_pal_lookup[]; + +VIDEO_START( genesis ); +VIDEO_START( segac2 ); + +VIDEO_UPDATE( genesis ); +VIDEO_UPDATE( segac2 ); +VIDEO_UPDATE( megaplay ); + +void segac2_enable_display(int enable); + +READ16_HANDLER ( genesis_vdp_r ); +WRITE16_HANDLER( genesis_vdp_w ); + +/* Generic Input Ports */ +#define GENESIS_PORTS \ + PORT_START \ + \ + PORT_START /* Player 1 Controls - part 1 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) \ + \ + PORT_START /* Player 1 Controls - part 2 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) \ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START1 ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) \ + \ + PORT_START /* Player 2 Controls - part 1 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_PLAYER(2) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_PLAYER(2) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_PLAYER(2) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) \ + \ + PORT_START /* Player 2 Controls - part 2 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) \ + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_PLAYER(2) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNUSED ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) \ + + diff --git a/src/mame/includes/grchamp.h b/src/mame/includes/grchamp.h new file mode 100644 index 00000000000..250b54aa9e4 --- /dev/null +++ b/src/mame/includes/grchamp.h @@ -0,0 +1,63 @@ +/************************************************************************* + + Taito Grand Champ hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +typedef struct _grchamp_state grchamp_state; +struct _grchamp_state +{ + UINT8 cpu0_out[16]; + UINT8 cpu1_out[16]; + + UINT8 comm_latch; + UINT8 comm_latch2[4]; + + UINT16 ledlatch; + UINT8 ledaddr; + UINT16 ledram[8]; + + UINT16 collide; + UINT8 collmode; + + UINT8 * radarram; + UINT8 * videoram; + UINT8 * leftram; + UINT8 * centerram; + UINT8 * rightram; + UINT8 * spriteram; + + mame_bitmap *work_bitmap; + tilemap * text_tilemap; + tilemap * left_tilemap; + tilemap * center_tilemap; + tilemap * right_tilemap; + + rgb_t bgcolor[0x20]; +}; + +/* Discrete Sound Input Nodes */ +#define GRCHAMP_ENGINE_CS_EN NODE_01 +#define GRCHAMP_SIFT_DATA NODE_02 +#define GRCHAMP_ATTACK_UP_DATA NODE_03 +#define GRCHAMP_IDLING_EN NODE_04 +#define GRCHAMP_FOG_EN NODE_05 +#define GRCHAMP_PLAYER_SPEED_DATA NODE_06 +#define GRCHAMP_ATTACK_SPEED_DATA NODE_07 +#define GRCHAMP_A_DATA NODE_08 +#define GRCHAMP_B_DATA NODE_09 + +/*----------- defined in audio/grchamp.c -----------*/ + +DISCRETE_SOUND_EXTERN( grchamp ); + +/*----------- defined in video/grchamp.c -----------*/ + +PALETTE_INIT( grchamp ); +VIDEO_START( grchamp ); +VIDEO_UPDATE( grchamp ); +WRITE8_HANDLER( grchamp_left_w ); +WRITE8_HANDLER( grchamp_center_w ); +WRITE8_HANDLER( grchamp_right_w ); diff --git a/src/mame/includes/gridlee.h b/src/mame/includes/gridlee.h new file mode 100644 index 00000000000..0df4f5129b4 --- /dev/null +++ b/src/mame/includes/gridlee.h @@ -0,0 +1,29 @@ +/*************************************************************************** + + Videa Gridlee hardware + + driver by Aaron Giles + +***************************************************************************/ + +#include "sound/custom.h" + + +/*----------- defined in audio/gridlee.c -----------*/ + +WRITE8_HANDLER( gridlee_sound_w ); +void *gridlee_sh_start(int clock, const struct CustomSound_interface *config); + + +/*----------- defined in video/gridlee.c -----------*/ + +/* video driver data & functions */ +extern UINT8 gridlee_cocktail_flip; + +PALETTE_INIT( gridlee ); +VIDEO_START( gridlee ); +VIDEO_UPDATE( gridlee ); + +WRITE8_HANDLER( gridlee_cocktail_flip_w ); +WRITE8_HANDLER( gridlee_videoram_w ); +WRITE8_HANDLER( gridlee_palette_select_w ); diff --git a/src/mame/includes/gstriker.h b/src/mame/includes/gstriker.h new file mode 100644 index 00000000000..22494ad35bc --- /dev/null +++ b/src/mame/includes/gstriker.h @@ -0,0 +1,72 @@ +#ifndef __GSTRIKER_H +#define __GSTRIKER_H + +/*----------- defined in video/gstriker.c -----------*/ + +/*** VS920A **********************************************/ + +#define MAX_VS920A 2 + +typedef struct +{ + tilemap* tmap; + UINT16* vram; + UINT16 pal_base; + UINT8 gfx_region; +} sVS920A; + +extern sVS920A VS920A[MAX_VS920A]; + +#define VS920A_0_vram (VS920A[0].vram) +#define VS920A_1_vram (VS920A[1].vram) + +extern WRITE16_HANDLER( VS920A_0_vram_w ); +extern WRITE16_HANDLER( VS920A_1_vram_w ); + + + +/*** MB60553 **********************************************/ + +#define MAX_MB60553 2 + +typedef struct +{ + tilemap* tmap; + UINT16* vram; + UINT16 regs[8]; + UINT8 bank[8]; + UINT16 pal_base; + UINT8 gfx_region; + +} tMB60553; + +extern tMB60553 MB60553[MAX_MB60553]; + +#define MB60553_0_vram (MB60553[0].vram) +#define MB60553_1_vram (MB60553[1].vram) + +extern WRITE16_HANDLER(MB60553_0_regs_w); +extern WRITE16_HANDLER(MB60553_1_regs_w); + +extern WRITE16_HANDLER(MB60553_0_vram_w); +extern WRITE16_HANDLER(MB60553_1_vram_w); + + +/*** CG10103 **********************************************/ + +#define MAX_CG10103 2 + +typedef struct +{ + UINT16* vram; + UINT16 pal_base; + UINT8 gfx_region; + +} tCG10103; + +extern tCG10103 CG10103[MAX_CG10103]; + +#define CG10103_0_vram (CG10103[0].vram) +#define CG10103_1_vram (CG10103[1].vram) + +#endif diff --git a/src/mame/includes/harddriv.h b/src/mame/includes/harddriv.h new file mode 100644 index 00000000000..757e67e824e --- /dev/null +++ b/src/mame/includes/harddriv.h @@ -0,0 +1,245 @@ +/************************************************************************* + + Driver for Atari polygon racer games + +**************************************************************************/ + +#include "cpu/tms34010/tms34010.h" + +/*----------- defined in machine/harddriv.c -----------*/ + +extern INT8 hdcpu_main; +extern INT8 hdcpu_gsp; +extern INT8 hdcpu_msp; +extern INT8 hdcpu_adsp; +extern INT8 hdcpu_sound; +extern INT8 hdcpu_sounddsp; +extern INT8 hdcpu_jsa; +extern INT8 hdcpu_dsp32; + +extern UINT8 hd34010_host_access; +extern UINT8 hddsk_pio_access; + +extern UINT16 *hdmsp_ram; +extern UINT16 *hddsk_ram; +extern UINT16 *hddsk_rom; +extern UINT16 *hddsk_zram; +extern UINT16 *hd68k_slapstic_base; +extern UINT16 *st68k_sloop_alt_base; + +extern UINT16 *hdadsp_data_memory; +extern UINT32 *hdadsp_pgm_memory; + +extern UINT16 *hdgsp_protection; +extern UINT16 *stmsp_sync[3]; + +extern UINT16 *hdgsp_speedup_addr[2]; +extern offs_t hdgsp_speedup_pc; + +extern UINT16 *hdmsp_speedup_addr; +extern offs_t hdmsp_speedup_pc; + +extern UINT16 *hdds3_speedup_addr; +extern offs_t hdds3_speedup_pc; +extern offs_t hdds3_transfer_pc; + +extern UINT32 *rddsp32_sync[2]; + +extern UINT32 gsp_speedup_count[4]; +extern UINT32 msp_speedup_count[4]; +extern UINT32 adsp_speedup_count[4]; + +/* Driver/Multisync board */ +MACHINE_START( harddriv ); +MACHINE_RESET( harddriv ); + +INTERRUPT_GEN( hd68k_irq_gen ); +WRITE16_HANDLER( hd68k_irq_ack_w ); +void hdgsp_irq_gen(int state); +void hdmsp_irq_gen(int state); + +READ16_HANDLER( hd68k_gsp_io_r ); +WRITE16_HANDLER( hd68k_gsp_io_w ); + +READ16_HANDLER( hd68k_msp_io_r ); +WRITE16_HANDLER( hd68k_msp_io_w ); + +READ16_HANDLER( hd68k_port0_r ); +READ16_HANDLER( hd68k_adc8_r ); +READ16_HANDLER( hd68k_adc12_r ); +READ16_HANDLER( hdc68k_port1_r ); +READ16_HANDLER( hda68k_port1_r ); +READ16_HANDLER( hdc68k_wheel_r ); +READ16_HANDLER( hd68k_sound_reset_r ); + +WRITE16_HANDLER( hd68k_adc_control_w ); +WRITE16_HANDLER( hd68k_wr0_write ); +WRITE16_HANDLER( hd68k_wr1_write ); +WRITE16_HANDLER( hd68k_wr2_write ); +WRITE16_HANDLER( hd68k_nwr_w ); +WRITE16_HANDLER( hdc68k_wheel_edge_reset_w ); + +READ16_HANDLER( hd68k_zram_r ); +WRITE16_HANDLER( hd68k_zram_w ); + +READ16_HANDLER( hd68k_duart_r ); +WRITE16_HANDLER( hd68k_duart_w ); + +WRITE16_HANDLER( hdgsp_io_w ); + +WRITE16_HANDLER( hdgsp_protection_w ); + +WRITE16_HANDLER( stmsp_sync0_w ); +WRITE16_HANDLER( stmsp_sync1_w ); +WRITE16_HANDLER( stmsp_sync2_w ); + +/* ADSP board */ +READ16_HANDLER( hd68k_adsp_program_r ); +WRITE16_HANDLER( hd68k_adsp_program_w ); + +READ16_HANDLER( hd68k_adsp_data_r ); +WRITE16_HANDLER( hd68k_adsp_data_w ); + +READ16_HANDLER( hd68k_adsp_buffer_r ); +WRITE16_HANDLER( hd68k_adsp_buffer_w ); + +WRITE16_HANDLER( hd68k_adsp_control_w ); +WRITE16_HANDLER( hd68k_adsp_irq_clear_w ); +READ16_HANDLER( hd68k_adsp_irq_state_r ); + +READ16_HANDLER( hdadsp_special_r ); +WRITE16_HANDLER( hdadsp_special_w ); + +/* DS III board */ +WRITE16_HANDLER( hd68k_ds3_control_w ); +READ16_HANDLER( hd68k_ds3_girq_state_r ); +READ16_HANDLER( hd68k_ds3_sirq_state_r ); +READ16_HANDLER( hd68k_ds3_gdata_r ); +WRITE16_HANDLER( hd68k_ds3_gdata_w ); +READ16_HANDLER( hd68k_ds3_sdata_r ); +WRITE16_HANDLER( hd68k_ds3_sdata_w ); + +READ16_HANDLER( hdds3_special_r ); +WRITE16_HANDLER( hdds3_special_w ); +READ16_HANDLER( hdds3_control_r ); +WRITE16_HANDLER( hdds3_control_w ); + +READ16_HANDLER( hd68k_ds3_program_r ); +WRITE16_HANDLER( hd68k_ds3_program_w ); + +/* DSK board */ +void hddsk_update_pif(UINT32 pins); +WRITE16_HANDLER( hd68k_dsk_control_w ); +READ16_HANDLER( hd68k_dsk_ram_r ); +WRITE16_HANDLER( hd68k_dsk_ram_w ); +READ16_HANDLER( hd68k_dsk_zram_r ); +WRITE16_HANDLER( hd68k_dsk_zram_w ); +READ16_HANDLER( hd68k_dsk_small_rom_r ); +READ16_HANDLER( hd68k_dsk_rom_r ); +WRITE16_HANDLER( hd68k_dsk_dsp32_w ); +READ16_HANDLER( hd68k_dsk_dsp32_r ); +WRITE32_HANDLER( rddsp32_sync0_w ); +WRITE32_HANDLER( rddsp32_sync1_w ); + +/* DSPCOM board */ +WRITE16_HANDLER( hddspcom_control_w ); + +WRITE16_HANDLER( rd68k_slapstic_w ); +READ16_HANDLER( rd68k_slapstic_r ); + +/* Game-specific protection */ +WRITE16_HANDLER( st68k_sloop_w ); +READ16_HANDLER( st68k_sloop_r ); +READ16_HANDLER( st68k_sloop_alt_r ); +WRITE16_HANDLER( st68k_protosloop_w ); +READ16_HANDLER( st68k_protosloop_r ); + +/* GSP optimizations */ +READ16_HANDLER( hdgsp_speedup_r ); +WRITE16_HANDLER( hdgsp_speedup1_w ); +WRITE16_HANDLER( hdgsp_speedup2_w ); +READ16_HANDLER( rdgsp_speedup1_r ); +WRITE16_HANDLER( rdgsp_speedup1_w ); + +/* MSP optimizations */ +READ16_HANDLER( hdmsp_speedup_r ); +WRITE16_HANDLER( hdmsp_speedup_w ); +READ16_HANDLER( stmsp_speedup_r ); + +/* ADSP optimizations */ +READ16_HANDLER( hdadsp_speedup_r ); +READ16_HANDLER( hdds3_speedup_r ); + + +/*----------- defined in audio/harddriv.c -----------*/ + +void hdsnd_init(void); + +extern UINT16 *hdsnddsp_ram; + +READ16_HANDLER( hd68k_snd_data_r ); +READ16_HANDLER( hd68k_snd_status_r ); +WRITE16_HANDLER( hd68k_snd_data_w ); +WRITE16_HANDLER( hd68k_snd_reset_w ); + +READ16_HANDLER( hdsnd68k_data_r ); +WRITE16_HANDLER( hdsnd68k_data_w ); + +READ16_HANDLER( hdsnd68k_switches_r ); +READ16_HANDLER( hdsnd68k_320port_r ); +READ16_HANDLER( hdsnd68k_status_r ); + +WRITE16_HANDLER( hdsnd68k_latches_w ); +WRITE16_HANDLER( hdsnd68k_speech_w ); +WRITE16_HANDLER( hdsnd68k_irqclr_w ); + +READ16_HANDLER( hdsnd68k_320ram_r ); +WRITE16_HANDLER( hdsnd68k_320ram_w ); +READ16_HANDLER( hdsnd68k_320ports_r ); +WRITE16_HANDLER( hdsnd68k_320ports_w ); +READ16_HANDLER( hdsnd68k_320com_r ); +WRITE16_HANDLER( hdsnd68k_320com_w ); + +READ16_HANDLER( hdsnddsp_get_bio ); + +WRITE16_HANDLER( hdsnddsp_dac_w ); +WRITE16_HANDLER( hdsnddsp_comport_w ); +WRITE16_HANDLER( hdsnddsp_mute_w ); +WRITE16_HANDLER( hdsnddsp_gen68kirq_w ); +WRITE16_HANDLER( hdsnddsp_soundaddr_w ); + +READ16_HANDLER( hdsnddsp_rom_r ); +READ16_HANDLER( hdsnddsp_comram_r ); +READ16_HANDLER( hdsnddsp_compare_r ); + + +/*----------- defined in video/harddriv.c -----------*/ + +extern UINT8 hdgsp_multisync; +extern UINT8 *hdgsp_vram; +extern UINT16 *hdgsp_control_lo; +extern UINT16 *hdgsp_control_hi; +extern UINT16 *hdgsp_paletteram_lo; +extern UINT16 *hdgsp_paletteram_hi; +extern size_t hdgsp_vram_size; + +VIDEO_START( harddriv ); +void hdgsp_write_to_shiftreg(UINT32 address, UINT16 *shiftreg); +void hdgsp_read_from_shiftreg(UINT32 address, UINT16 *shiftreg); + +READ16_HANDLER( hdgsp_control_lo_r ); +WRITE16_HANDLER( hdgsp_control_lo_w ); +READ16_HANDLER( hdgsp_control_hi_r ); +WRITE16_HANDLER( hdgsp_control_hi_w ); + +READ16_HANDLER( hdgsp_vram_2bpp_r ); +WRITE16_HANDLER( hdgsp_vram_1bpp_w ); +WRITE16_HANDLER( hdgsp_vram_2bpp_w ); + +READ16_HANDLER( hdgsp_paletteram_lo_r ); +WRITE16_HANDLER( hdgsp_paletteram_lo_w ); +READ16_HANDLER( hdgsp_paletteram_hi_r ); +WRITE16_HANDLER( hdgsp_paletteram_hi_w ); + +void harddriv_scanline_driver(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); +void harddriv_scanline_multisync(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); diff --git a/src/mame/includes/hitme.h b/src/mame/includes/hitme.h new file mode 100644 index 00000000000..d9548ec63a7 --- /dev/null +++ b/src/mame/includes/hitme.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Hitme hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define HITME_DOWNCOUNT_VAL NODE_01 +#define HITME_OUT0 NODE_02 +#define HITME_ENABLE_VAL NODE_03 +#define HITME_OUT1 NODE_04 + + +/*----------- defined in audio/hitme.c -----------*/ + +DISCRETE_SOUND_EXTERN( hitme ); diff --git a/src/mame/includes/homedata.h b/src/mame/includes/homedata.h new file mode 100644 index 00000000000..490cc65b1a3 --- /dev/null +++ b/src/mame/includes/homedata.h @@ -0,0 +1,32 @@ +/*----------- defined in video/homedata.c -----------*/ + +extern UINT8 *homedata_vreg; +extern int homedata_visible_page; +extern int homedata_priority; +extern UINT8 reikaids_which; + +WRITE8_HANDLER( mrokumei_videoram_w ); +WRITE8_HANDLER( reikaids_videoram_w ); +WRITE8_HANDLER( pteacher_videoram_w ); +WRITE8_HANDLER( reikaids_gfx_bank_w ); +WRITE8_HANDLER( pteacher_gfx_bank_w ); +WRITE8_HANDLER( homedata_blitter_param_w ); +WRITE8_HANDLER( mrokumei_blitter_bank_w ); +WRITE8_HANDLER( reikaids_blitter_bank_w ); +WRITE8_HANDLER( pteacher_blitter_bank_w ); +WRITE8_HANDLER( mrokumei_blitter_start_w ); +WRITE8_HANDLER( reikaids_blitter_start_w ); +WRITE8_HANDLER( pteacher_blitter_start_w ); + +PALETTE_INIT( mrokumei ); +PALETTE_INIT( reikaids ); +PALETTE_INIT( pteacher ); + +VIDEO_START( mrokumei ); +VIDEO_START( reikaids ); +VIDEO_START( pteacher ); +VIDEO_START( lemnangl ); +VIDEO_UPDATE( mrokumei ); +VIDEO_UPDATE( reikaids ); +VIDEO_UPDATE( pteacher ); +VIDEO_EOF( homedata ); diff --git a/src/mame/includes/iqblock.h b/src/mame/includes/iqblock.h new file mode 100644 index 00000000000..8298d6313fe --- /dev/null +++ b/src/mame/includes/iqblock.h @@ -0,0 +1,13 @@ +/*----------- defined in video/iqblock.c -----------*/ + +extern UINT8 *iqblock_bgvideoram; +extern UINT8 *iqblock_fgvideoram; +extern int iqblock_videoenable; +extern int iqblock_video_type; +WRITE8_HANDLER( iqblock_fgvideoram_w ); +WRITE8_HANDLER( iqblock_bgvideoram_w ); +READ8_HANDLER( iqblock_bgvideoram_r ); +WRITE8_HANDLER( iqblock_fgscroll_w ); + +VIDEO_START( iqblock ); +VIDEO_UPDATE( iqblock ); diff --git a/src/mame/includes/irobot.h b/src/mame/includes/irobot.h new file mode 100644 index 00000000000..882f8579ae5 --- /dev/null +++ b/src/mame/includes/irobot.h @@ -0,0 +1,36 @@ +/************************************************************************* + + Atari I, Robot hardware + +*************************************************************************/ + +/*----------- defined in machine/irobot.c -----------*/ + +extern UINT8 irobot_vg_clear; +extern UINT8 irobot_bufsel; +extern UINT8 irobot_alphamap; +extern UINT8 *irobot_combase; + +DRIVER_INIT( irobot ); +MACHINE_RESET( irobot ); + +READ8_HANDLER( irobot_status_r ); +WRITE8_HANDLER( irobot_statwr_w ); +WRITE8_HANDLER( irobot_out0_w ); +WRITE8_HANDLER( irobot_rom_banksel_w ); +READ8_HANDLER( irobot_control_r ); +WRITE8_HANDLER( irobot_control_w ); +READ8_HANDLER( irobot_sharedmem_r ); +WRITE8_HANDLER( irobot_sharedmem_w ); + + +/*----------- defined in video/irobot.c -----------*/ + +PALETTE_INIT( irobot ); +VIDEO_START( irobot ); +VIDEO_UPDATE( irobot ); + +WRITE8_HANDLER( irobot_paletteram_w ); + +void irobot_poly_clear(void); +void irobot_run_video(void); diff --git a/src/mame/includes/itech32.h b/src/mame/includes/itech32.h new file mode 100644 index 00000000000..b84f50ec001 --- /dev/null +++ b/src/mame/includes/itech32.h @@ -0,0 +1,50 @@ +/************************************************************************* + + Incredible Technologies/Strata system + (8-bit blitter variant) + +**************************************************************************/ + +/*----------- defined in drivers/itech32.c -----------*/ + +void itech32_update_interrupts(int vint, int xint, int qint); + + +/*----------- defined in video/itech32.c -----------*/ + +extern UINT16 *itech32_video; +extern UINT32 *drivedge_zbuf_control; +extern UINT8 itech32_planes; +extern UINT16 itech32_vram_height; + +VIDEO_START( itech32 ); + +WRITE16_HANDLER( timekill_colora_w ); +WRITE16_HANDLER( timekill_colorbc_w ); +WRITE16_HANDLER( timekill_intensity_w ); + +WRITE16_HANDLER( bloodstm_color1_w ); +WRITE16_HANDLER( bloodstm_color2_w ); +WRITE16_HANDLER( bloodstm_plane_w ); + +WRITE32_HANDLER( drivedge_color0_w ); + +WRITE32_HANDLER( itech020_color1_w ); +WRITE32_HANDLER( itech020_color2_w ); +WRITE32_HANDLER( itech020_plane_w ); + +WRITE16_HANDLER( timekill_paletteram_w ); +WRITE16_HANDLER( bloodstm_paletteram_w ); +WRITE32_HANDLER( drivedge_paletteram_w ); +WRITE32_HANDLER( itech020_paletteram_w ); + +WRITE16_HANDLER( itech32_video_w ); +READ16_HANDLER( itech32_video_r ); + +WRITE16_HANDLER( bloodstm_video_w ); +READ16_HANDLER( bloodstm_video_r ); +WRITE32_HANDLER( itech020_video_w ); +READ32_HANDLER( itech020_video_r ); +WRITE32_HANDLER( drivedge_zbuf_control_w ); + +VIDEO_UPDATE( itech32 ); diff --git a/src/mame/includes/itech8.h b/src/mame/includes/itech8.h new file mode 100644 index 00000000000..a376071bddd --- /dev/null +++ b/src/mame/includes/itech8.h @@ -0,0 +1,44 @@ +/************************************************************************* + + Incredible Technologies/Strata system + (8-bit blitter variant) + +**************************************************************************/ + +/*----------- defined in drivers/itech8.c -----------*/ + +void itech8_update_interrupts(int periodic, int tms34061, int blitter); + + +/*----------- defined in machine/slikshot.c -----------*/ + +READ8_HANDLER( slikz80_port_r ); +WRITE8_HANDLER( slikz80_port_w ); + +READ8_HANDLER( slikshot_z80_r ); +READ8_HANDLER( slikshot_z80_control_r ); +WRITE8_HANDLER( slikshot_z80_control_w ); + +void slikshot_set_crosshair_range(int miny, int maxy); +VIDEO_UPDATE( slikshot ); + + +/*----------- defined in video/itech8.c -----------*/ + +extern UINT8 *itech8_grom_bank; + +VIDEO_START( itech8 ); + +WRITE8_HANDLER( itech8_page_w ); + +WRITE8_HANDLER( itech8_palette_w ); + +READ8_HANDLER( itech8_blitter_r ); +WRITE8_HANDLER( itech8_blitter_w ); + +WRITE8_HANDLER( itech8_tms34061_w ); +READ8_HANDLER( itech8_tms34061_r ); + +VIDEO_UPDATE( itech8_2layer ); +VIDEO_UPDATE( itech8_2page ); +VIDEO_UPDATE( itech8_2page_large ); diff --git a/src/mame/includes/jaguar.h b/src/mame/includes/jaguar.h new file mode 100644 index 00000000000..35669213c19 --- /dev/null +++ b/src/mame/includes/jaguar.h @@ -0,0 +1,65 @@ +/************************************************************************* + + Atari Jaguar hardware + +*************************************************************************/ + +#ifndef ENABLE_SPEEDUP_HACKS +#ifndef MESS +#define ENABLE_SPEEDUP_HACKS 1 +#else +#define ENABLE_SPEEDUP_HACKS 0 +#endif /* MESS */ +#endif + + +/*----------- defined in drivers/cojag.c -----------*/ + +extern UINT8 cojag_is_r3000; + +extern UINT32 *jaguar_shared_ram; +extern UINT32 *jaguar_gpu_ram; +extern UINT32 *jaguar_gpu_clut; +extern UINT32 *jaguar_dsp_ram; +extern UINT32 *jaguar_wave_rom; + + +/*----------- defined in audio/jaguar.c -----------*/ + +void jaguar_dsp_suspend(void); +void jaguar_dsp_resume(void); + +void cojag_sound_init(void); +void cojag_sound_reset(void); + +void jaguar_external_int(int state); + +READ16_HANDLER( jaguar_jerry_regs_r ); +WRITE16_HANDLER( jaguar_jerry_regs_w ); +READ32_HANDLER( jaguar_jerry_regs32_r ); +WRITE32_HANDLER( jaguar_jerry_regs32_w ); + +READ32_HANDLER( jaguar_serial_r ); +WRITE32_HANDLER( jaguar_serial_w ); + + +/*----------- defined in video/jaguar.c -----------*/ + +void jaguar_gpu_suspend(void); +void jaguar_gpu_resume(void); + +void jaguar_gpu_cpu_int(void); +void jaguar_dsp_cpu_int(void); + +READ32_HANDLER( jaguar_blitter_r ); +WRITE32_HANDLER( jaguar_blitter_w ); + +READ16_HANDLER( jaguar_tom_regs_r ); +WRITE16_HANDLER( jaguar_tom_regs_w ); +READ32_HANDLER( jaguar_tom_regs32_r ); +WRITE32_HANDLER( jaguar_tom_regs32_w ); + +READ32_HANDLER( cojag_gun_input_r ); + +VIDEO_START( cojag ); +VIDEO_UPDATE( cojag ); diff --git a/src/mame/includes/jedi.h b/src/mame/includes/jedi.h new file mode 100644 index 00000000000..7471be46943 --- /dev/null +++ b/src/mame/includes/jedi.h @@ -0,0 +1,22 @@ +/************************************************************************* + + Atari Return of the Jedi hardware + +*************************************************************************/ + +/*----------- defined in video/jedi.c -----------*/ + +extern UINT8 *jedi_PIXIRAM; +extern UINT8 *jedi_backgroundram; +extern size_t jedi_backgroundram_size; + +VIDEO_START( jedi ); +VIDEO_UPDATE( jedi ); + +WRITE8_HANDLER( jedi_alpha_banksel_w ); +WRITE8_HANDLER( jedi_paletteram_w ); +WRITE8_HANDLER( jedi_backgroundram_w ); +WRITE8_HANDLER( jedi_vscroll_w ); +WRITE8_HANDLER( jedi_hscroll_w ); +WRITE8_HANDLER( jedi_video_off_w ); +WRITE8_HANDLER( jedi_PIXIRAM_w ); diff --git a/src/mame/includes/jpmimpct.h b/src/mame/includes/jpmimpct.h new file mode 100644 index 00000000000..e93352cd2bb --- /dev/null +++ b/src/mame/includes/jpmimpct.h @@ -0,0 +1,18 @@ +/*************************************************************************** + + JPM IMPACT with Video hardware + +****************************************************************************/ + +/*----------- defined in video/jpmimpct.c -----------*/ + +extern UINT16 *tms_vram; + +READ16_HANDLER( bt477_r ); +WRITE16_HANDLER( bt477_w ); + +void jpmimpct_to_shiftreg(UINT32 address, UINT16 *shiftreg); +void jpmimpct_from_shiftreg(UINT32 address, UINT16 *shiftreg); +void jpmimpct_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); + +VIDEO_START( jpmimpct ); diff --git a/src/mame/includes/kaneko16.h b/src/mame/includes/kaneko16.h new file mode 100644 index 00000000000..cc8c7d8db15 --- /dev/null +++ b/src/mame/includes/kaneko16.h @@ -0,0 +1,135 @@ +/*************************************************************************** + + -= Kaneko 16 Bit Games =- + +***************************************************************************/ + +/*----------- defined in machine/kaneko16.c -----------*/ + +extern UINT16 *kaneko16_mcu_ram; /* for calc3 and toybox */ + +READ16_HANDLER( galpanib_calc_r ); +WRITE16_HANDLER( galpanib_calc_w ); + +READ16_HANDLER( bloodwar_calc_r ); +WRITE16_HANDLER( bloodwar_calc_w ); + +void calc3_mcu_init(void); +WRITE16_HANDLER( calc3_mcu_ram_w ); +WRITE16_HANDLER( calc3_mcu_com0_w ); +WRITE16_HANDLER( calc3_mcu_com1_w ); +WRITE16_HANDLER( calc3_mcu_com2_w ); +WRITE16_HANDLER( calc3_mcu_com3_w ); + +void toybox_mcu_init(void); +WRITE16_HANDLER( toybox_mcu_com0_w ); +WRITE16_HANDLER( toybox_mcu_com1_w ); +WRITE16_HANDLER( toybox_mcu_com2_w ); +WRITE16_HANDLER( toybox_mcu_com3_w ); +READ16_HANDLER( toybox_mcu_status_r ); + + + +/*----------- defined in drivers/kaneko16.c -----------*/ + +MACHINE_RESET( kaneko16 ); + +/*----------- defined in video/kaneko16.c -----------*/ + +WRITE16_HANDLER( kaneko16_display_enable ); + +/* Tile Layers: */ + +extern UINT16 *kaneko16_vram_0, *kaneko16_vram_1, *kaneko16_layers_0_regs; +extern UINT16 *kaneko16_vscroll_0, *kaneko16_vscroll_1; +extern UINT16 *kaneko16_vram_2, *kaneko16_vram_3, *kaneko16_layers_1_regs; +extern UINT16 *kaneko16_vscroll_2, *kaneko16_vscroll_3; + +WRITE16_HANDLER( kaneko16_vram_0_w ); +WRITE16_HANDLER( kaneko16_vram_1_w ); +WRITE16_HANDLER( kaneko16_vram_2_w ); +WRITE16_HANDLER( kaneko16_vram_3_w ); + +WRITE16_HANDLER( kaneko16_layers_0_regs_w ); +WRITE16_HANDLER( kaneko16_layers_1_regs_w ); + + +/* Sprites: */ + +extern int kaneko16_sprite_type; +extern UINT16 kaneko16_sprite_xoffs, kaneko16_sprite_flipx; +extern UINT16 kaneko16_sprite_yoffs, kaneko16_sprite_flipy; +extern UINT16 *kaneko16_sprites_regs; + +READ16_HANDLER ( kaneko16_sprites_regs_r ); +WRITE16_HANDLER( kaneko16_sprites_regs_w ); + +void kaneko16_draw_sprites(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect); + +/* Pixel Layer: */ + +extern UINT16 *kaneko16_bg15_select, *kaneko16_bg15_reg; + +READ16_HANDLER ( kaneko16_bg15_select_r ); +WRITE16_HANDLER( kaneko16_bg15_select_w ); + +READ16_HANDLER ( kaneko16_bg15_reg_r ); +WRITE16_HANDLER( kaneko16_bg15_reg_w ); + +PALETTE_INIT( berlwall ); + + +/* Priorities: */ + +typedef struct +{ + int VIEW2_2_pri; + int sprite[4]; +} kaneko16_priority_t; + +extern kaneko16_priority_t kaneko16_priority; + + +/* Machine */ + +VIDEO_START( kaneko16_sprites ); +VIDEO_START( kaneko16_1xVIEW2 ); +VIDEO_START( kaneko16_2xVIEW2 ); +VIDEO_START( berlwall ); +VIDEO_START( sandscrp_1xVIEW2 ); + + +VIDEO_UPDATE( kaneko16 ); +VIDEO_UPDATE( sandscrp ); +VIDEO_UPDATE( berlwall ); + + +/*----------- defined in drivers/galpani2.c -----------*/ + +void galpani2_mcu_run(void); + +/*----------- defined in video/galpani2.c -----------*/ + +extern UINT16 *galpani2_bg8_0, *galpani2_bg8_1; +extern UINT16 *galpani2_palette_0, *galpani2_palette_1; +extern UINT16 *galpani2_bg8_regs_0, *galpani2_bg8_regs_1; +extern UINT16 *galpani2_bg8_0_scrollx, *galpani2_bg8_1_scrollx; +extern UINT16 *galpani2_bg8_0_scrolly, *galpani2_bg8_1_scrolly; + +extern UINT16 *galpani2_bg15; + +PALETTE_INIT( galpani2 ); +VIDEO_START( galpani2 ); +VIDEO_UPDATE( galpani2 ); + +WRITE16_HANDLER( galpani2_palette_0_w ); +WRITE16_HANDLER( galpani2_palette_1_w ); + +READ16_HANDLER ( galpani2_bg8_regs_0_r ); +READ16_HANDLER ( galpani2_bg8_regs_1_r ); +WRITE16_HANDLER( galpani2_bg8_regs_0_w ); +WRITE16_HANDLER( galpani2_bg8_regs_1_w ); +WRITE16_HANDLER( galpani2_bg8_0_w ); +WRITE16_HANDLER( galpani2_bg8_1_w ); + +WRITE16_HANDLER( galpani2_bg15_w ); diff --git a/src/mame/includes/kangaroo.h b/src/mame/includes/kangaroo.h new file mode 100644 index 00000000000..5311830f4e1 --- /dev/null +++ b/src/mame/includes/kangaroo.h @@ -0,0 +1,24 @@ +/*************************************************************************** + + Sun Electronics Kangaroo hardware + + driver by Ville Laitinen + +***************************************************************************/ + +/*----------- defined in video/kangaroo.c -----------*/ + +extern UINT8 *kangaroo_video_control; +extern UINT8 *kangaroo_bank_select; +extern UINT8 *kangaroo_blitter; +extern UINT8 *kangaroo_scroll; + +PALETTE_INIT( kangaroo ); +VIDEO_START( kangaroo ); +VIDEO_UPDATE( kangaroo ); + +WRITE8_HANDLER( kangaroo_blitter_w ); +WRITE8_HANDLER( kangaroo_videoram_w ); +WRITE8_HANDLER( kangaroo_video_control_w ); +WRITE8_HANDLER( kangaroo_bank_select_w ); +WRITE8_HANDLER( kangaroo_color_mask_w ); diff --git a/src/mame/includes/klax.h b/src/mame/includes/klax.h new file mode 100644 index 00000000000..489f4ade753 --- /dev/null +++ b/src/mame/includes/klax.h @@ -0,0 +1,12 @@ +/************************************************************************* + + Atari Klax hardware + +*************************************************************************/ + +/*----------- defined in video/klax.c -----------*/ + +WRITE16_HANDLER( klax_latch_w ); + +VIDEO_START( klax ); +VIDEO_UPDATE( klax ); diff --git a/src/mame/includes/kyugo.h b/src/mame/includes/kyugo.h new file mode 100644 index 00000000000..5b84349c46d --- /dev/null +++ b/src/mame/includes/kyugo.h @@ -0,0 +1,33 @@ +/*************************************************************************** + + Kyugo hardware games + +***************************************************************************/ + +/*----------- defined in drivers/kyugo.c -----------*/ + +MACHINE_RESET( kyugo ); + +WRITE8_HANDLER( kyugo_sub_cpu_control_w ); + +/*----------- defined in video/kyugo.c -----------*/ + +extern UINT8 *kyugo_fgvideoram; +extern UINT8 *kyugo_bgvideoram; +extern UINT8 *kyugo_bgattribram; +extern UINT8 *kyugo_spriteram_1; +extern UINT8 *kyugo_spriteram_2; + +READ8_HANDLER( kyugo_spriteram_2_r ); + +WRITE8_HANDLER( kyugo_fgvideoram_w ); +WRITE8_HANDLER( kyugo_bgvideoram_w ); +WRITE8_HANDLER( kyugo_bgattribram_w ); +WRITE8_HANDLER( kyugo_scroll_x_lo_w ); +WRITE8_HANDLER( kyugo_gfxctrl_w ); +WRITE8_HANDLER( kyugo_scroll_y_w ); +WRITE8_HANDLER( kyugo_flipscreen_w ); + +VIDEO_START( kyugo ); + +VIDEO_UPDATE( kyugo ); diff --git a/src/mame/includes/lasso.h b/src/mame/includes/lasso.h new file mode 100644 index 00000000000..40290f267a9 --- /dev/null +++ b/src/mame/includes/lasso.h @@ -0,0 +1,33 @@ +/*************************************************************************** + + Lasso and similar hardware + +***************************************************************************/ + +/*----------- defined in video/lasso.c -----------*/ + +extern UINT8 *lasso_videoram; +extern UINT8 *lasso_colorram; +extern UINT8 *lasso_spriteram; +extern size_t lasso_spriteram_size; +extern UINT8 *lasso_bitmap_ram; +extern UINT8 *wwjgtin_track_scroll; + +WRITE8_HANDLER( lasso_videoram_w ); +WRITE8_HANDLER( lasso_colorram_w ); +WRITE8_HANDLER( lasso_backcolor_w ); +WRITE8_HANDLER( lasso_video_control_w ); +WRITE8_HANDLER( wwjgtin_video_control_w ); +WRITE8_HANDLER( pinbo_video_control_w ); +WRITE8_HANDLER( wwjgtin_lastcolor_w ); + +PALETTE_INIT( lasso ); +PALETTE_INIT( wwjgtin ); + +VIDEO_START( lasso ); +VIDEO_START( wwjgtin ); +VIDEO_START( pinbo ); + +VIDEO_UPDATE( lasso ); +VIDEO_UPDATE( chameleo ); +VIDEO_UPDATE( wwjgtin ); diff --git a/src/mame/includes/lazercmd.h b/src/mame/includes/lazercmd.h new file mode 100644 index 00000000000..3f2f610ffec --- /dev/null +++ b/src/mame/includes/lazercmd.h @@ -0,0 +1,24 @@ +#define HORZ_RES 32 +#define VERT_RES 24 +#define HORZ_CHR 8 +#define VERT_CHR 10 +#define VERT_FNT 8 + +#define HORZ_BAR 0x40 +#define VERT_BAR 0x80 + +#define MARKER_ACTIVE_L 0x03 +#define MARKER_ACTIVE_R 0x04 +#define MARKER_VERT_R 0x0a +#define MARKER_HORZ_L 0x0b +#define MARKER_VERT_L 0x0c +#define MARKER_HORZ_R 0x0d + +#define MARKER_HORZ_ADJ -1 +#define MARKER_VERT_ADJ -10 + +/*----------- defined in video/lazercmd.c -----------*/ + +extern int marker_x, marker_y; + +VIDEO_UPDATE( lazercmd ); diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h new file mode 100644 index 00000000000..d639481a4dc --- /dev/null +++ b/src/mame/includes/leland.h @@ -0,0 +1,150 @@ +/************************************************************************* + + Cinemat/Leland driver + +*************************************************************************/ + +#include "sound/custom.h" + +#define LELAND_BATTERY_RAM_SIZE 0x4000 +#define ATAXX_EXTRA_TRAM_SIZE 0x800 + + +/*----------- defined in machine/leland.c -----------*/ + +#define SERIAL_TYPE_NONE 0 +#define SERIAL_TYPE_ADD 1 +#define SERIAL_TYPE_ADD_XOR 2 +#define SERIAL_TYPE_ENCRYPT 3 +#define SERIAL_TYPE_ENCRYPT_XOR 4 + +extern UINT8 leland_dac_control; +extern void (*leland_update_master_bank)(void); + +READ8_HANDLER( cerberus_dial_1_r ); +READ8_HANDLER( cerberus_dial_2_r ); + +extern UINT8 *alleymas_kludge_mem; +WRITE8_HANDLER( alleymas_joystick_kludge ); + +READ8_HANDLER( dangerz_input_y_r ); +READ8_HANDLER( dangerz_input_x_r ); +READ8_HANDLER( dangerz_input_upper_r ); + +READ8_HANDLER( redline_pedal_1_r ); +READ8_HANDLER( redline_pedal_2_r ); +READ8_HANDLER( redline_wheel_1_r ); +READ8_HANDLER( redline_wheel_2_r ); + +READ8_HANDLER( offroad_wheel_1_r ); +READ8_HANDLER( offroad_wheel_2_r ); +READ8_HANDLER( offroad_wheel_3_r ); + +READ8_HANDLER( ataxx_trackball_r ); + +READ8_HANDLER( indyheat_wheel_r ); +READ8_HANDLER( indyheat_analog_r ); +WRITE8_HANDLER( indyheat_analog_w ); + +MACHINE_START( leland ); +MACHINE_RESET( leland ); +MACHINE_START( ataxx ); +MACHINE_RESET( ataxx ); + +INTERRUPT_GEN( leland_master_interrupt ); + +WRITE8_HANDLER( leland_master_alt_bankswitch_w ); +void cerberus_bankswitch(void); +void mayhem_bankswitch(void); +void dangerz_bankswitch(void); +void basebal2_bankswitch(void); +void redline_bankswitch(void); +void viper_bankswitch(void); +void offroad_bankswitch(void); +void ataxx_bankswitch(void); + +void leland_init_eeprom(UINT8 default_val, const UINT16 *data, UINT8 serial_offset, UINT8 serial_type); +void ataxx_init_eeprom(UINT8 default_val, const UINT16 *data, UINT8 serial_offset); + +READ8_HANDLER( ataxx_eeprom_r ); +WRITE8_HANDLER( ataxx_eeprom_w ); + +WRITE8_HANDLER( leland_battery_ram_w ); +WRITE8_HANDLER( ataxx_battery_ram_w ); +NVRAM_HANDLER( leland ); +NVRAM_HANDLER( ataxx ); + +READ8_HANDLER( leland_master_analog_key_r ); +WRITE8_HANDLER( leland_master_analog_key_w ); + +READ8_HANDLER( leland_master_input_r ); +WRITE8_HANDLER( leland_master_output_w ); +READ8_HANDLER( ataxx_master_input_r ); +WRITE8_HANDLER( ataxx_master_output_w ); + +WRITE8_HANDLER( leland_gated_paletteram_w ); +READ8_HANDLER( leland_gated_paletteram_r ); +WRITE8_HANDLER( ataxx_paletteram_and_misc_w ); +READ8_HANDLER( ataxx_paletteram_and_misc_r ); + +READ8_HANDLER( leland_sound_port_r ); +WRITE8_HANDLER( leland_sound_port_w ); + +WRITE8_HANDLER( leland_slave_small_banksw_w ); +WRITE8_HANDLER( leland_slave_large_banksw_w ); +WRITE8_HANDLER( ataxx_slave_banksw_w ); + +READ8_HANDLER( leland_raster_r ); + +void leland_rotate_memory(int cpunum); + + +/*----------- defined in audio/leland.c -----------*/ + +void *leland_sh_start(int clock, const struct CustomSound_interface *config); + +void *leland_80186_sh_start(int clock, const struct CustomSound_interface *config); +void *redline_80186_sh_start(int clock, const struct CustomSound_interface *config); +void leland_dac_update(int dacnum, UINT8 sample); + +void leland_80186_sound_init(void); + +READ8_HANDLER( leland_80186_response_r ); + +WRITE8_HANDLER( leland_80186_control_w ); +WRITE8_HANDLER( leland_80186_command_lo_w ); +WRITE8_HANDLER( leland_80186_command_hi_w ); +WRITE8_HANDLER( ataxx_80186_control_w ); + +ADDRESS_MAP_EXTERN(leland_80186_map_program); +ADDRESS_MAP_EXTERN(leland_80186_map_io); +ADDRESS_MAP_EXTERN(redline_80186_map_io); +ADDRESS_MAP_EXTERN(ataxx_80186_map_io); + + +/*----------- defined in video/leland.c -----------*/ + +extern UINT8 *ataxx_qram; +extern UINT8 leland_last_scanline_int; + +VIDEO_START( leland ); +VIDEO_START( ataxx ); + +WRITE8_HANDLER( leland_gfx_port_w ); + +WRITE8_HANDLER( leland_master_video_addr_w ); +WRITE8_HANDLER( leland_mvram_port_w ); +READ8_HANDLER( leland_mvram_port_r ); + +WRITE8_HANDLER( leland_slave_video_addr_w ); +WRITE8_HANDLER( leland_svram_port_w ); +READ8_HANDLER( leland_svram_port_r ); + +WRITE8_HANDLER( ataxx_mvram_port_w ); +WRITE8_HANDLER( ataxx_svram_port_w ); +READ8_HANDLER( ataxx_mvram_port_r ); +READ8_HANDLER( ataxx_svram_port_r ); + +VIDEO_EOF( leland ); +VIDEO_UPDATE( leland ); +VIDEO_UPDATE( ataxx ); diff --git a/src/mame/includes/lemmings.h b/src/mame/includes/lemmings.h new file mode 100644 index 00000000000..9b2274d2087 --- /dev/null +++ b/src/mame/includes/lemmings.h @@ -0,0 +1,10 @@ +/*----------- defined in video/lemmings.c -----------*/ + +VIDEO_START( lemmings ); +VIDEO_EOF( lemmings ); +VIDEO_UPDATE( lemmings ); +WRITE16_HANDLER( lemmings_pixel_0_w ); +WRITE16_HANDLER( lemmings_pixel_1_w ); +WRITE16_HANDLER( lemmings_vram_w ); + +extern UINT16 *lemmings_pixel_0_data,*lemmings_pixel_1_data,*lemmings_vram_data,*lemmings_control_data; diff --git a/src/mame/includes/lethalj.h b/src/mame/includes/lethalj.h new file mode 100644 index 00000000000..15f48d73072 --- /dev/null +++ b/src/mame/includes/lethalj.h @@ -0,0 +1,15 @@ +/************************************************************************* + + The Game Room Lethal Justice hardware + +**************************************************************************/ + +/*----------- defined in video/lethalj.c -----------*/ + +READ16_HANDLER( lethalj_gun_r ); + +VIDEO_START( lethalj ); + +WRITE16_HANDLER( lethalj_blitter_w ); + +void lethalj_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); diff --git a/src/mame/includes/liberatr.h b/src/mame/includes/liberatr.h new file mode 100644 index 00000000000..5ab6c498300 --- /dev/null +++ b/src/mame/includes/liberatr.h @@ -0,0 +1,22 @@ +/************************************************************************* + + Atari Liberator hardware + +*************************************************************************/ + +/*----------- defined in video/liberatr.c -----------*/ + +extern UINT8 *liberatr_base_ram; +extern UINT8 *liberatr_planet_frame; +extern UINT8 *liberatr_planet_select; +extern UINT8 *liberatr_x; +extern UINT8 *liberatr_y; +extern UINT8 *liberatr_bitmapram; +extern UINT8 *liberatr_colorram; + +VIDEO_START( liberatr ); +VIDEO_UPDATE( liberatr ); + +WRITE8_HANDLER( liberatr_bitmap_w ); +READ8_HANDLER( liberatr_bitmap_xy_r ); +WRITE8_HANDLER( liberatr_bitmap_xy_w ); diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h new file mode 100644 index 00000000000..aeb8f3e1931 --- /dev/null +++ b/src/mame/includes/lwings.h @@ -0,0 +1,17 @@ +/*----------- defined in video/lwings.c -----------*/ + +extern UINT8 *lwings_fgvideoram; +extern UINT8 *lwings_bg1videoram; + +WRITE8_HANDLER( lwings_fgvideoram_w ); +WRITE8_HANDLER( lwings_bg1videoram_w ); +WRITE8_HANDLER( lwings_bg1_scrollx_w ); +WRITE8_HANDLER( lwings_bg1_scrolly_w ); +WRITE8_HANDLER( trojan_bg2_scrollx_w ); +WRITE8_HANDLER( trojan_bg2_image_w ); +VIDEO_START( lwings ); +VIDEO_START( trojan ); +VIDEO_START( avengers ); +VIDEO_UPDATE( lwings ); +VIDEO_UPDATE( trojan ); +VIDEO_EOF( lwings ); diff --git a/src/mame/includes/m107.h b/src/mame/includes/m107.h new file mode 100644 index 00000000000..71500a2acaf --- /dev/null +++ b/src/mame/includes/m107.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Irem M107 hardware + +*************************************************************************/ + + +/*----------- defined in video/m107.c -----------*/ + +extern UINT16 *m107_vram_data; +extern UINT8 m107_spritesystem; +extern UINT16 m107_raster_irq_position; + +WRITE16_HANDLER( m107_spritebuffer_w ); +VIDEO_UPDATE( m107 ); +VIDEO_START( m107 ); +WRITE16_HANDLER( m107_control_w ); +WRITE16_HANDLER( m107_vram_w ); diff --git a/src/mame/includes/m72.h b/src/mame/includes/m72.h new file mode 100644 index 00000000000..ccca0bd8d52 --- /dev/null +++ b/src/mame/includes/m72.h @@ -0,0 +1,40 @@ +/************************************************************************* + + Irem M72 hardware + +*************************************************************************/ + +/*----------- defined in video/m72.c -----------*/ + +extern UINT16 *m72_videoram1,*m72_videoram2,*majtitle_rowscrollram; + +MACHINE_RESET( m72 ); +MACHINE_RESET( xmultipl ); +MACHINE_RESET( kengo ); + +INTERRUPT_GEN( m72_interrupt ); + +VIDEO_START( m72 ); +VIDEO_START( rtype2 ); +VIDEO_START( majtitle ); +VIDEO_START( hharry ); +VIDEO_START( poundfor ); + +READ16_HANDLER( m72_palette1_r ); +READ16_HANDLER( m72_palette2_r ); +WRITE16_HANDLER( m72_palette1_w ); +WRITE16_HANDLER( m72_palette2_w ); +WRITE16_HANDLER( m72_videoram1_w ); +WRITE16_HANDLER( m72_videoram2_w ); +WRITE16_HANDLER( m72_irq_line_w ); +WRITE16_HANDLER( m72_scrollx1_w ); +WRITE16_HANDLER( m72_scrollx2_w ); +WRITE16_HANDLER( m72_scrolly1_w ); +WRITE16_HANDLER( m72_scrolly2_w ); +WRITE16_HANDLER( m72_dmaon_w ); +WRITE16_HANDLER( m72_port02_w ); +WRITE16_HANDLER( rtype2_port02_w ); +WRITE16_HANDLER( majtitle_gfx_ctrl_w ); + +VIDEO_UPDATE( m72 ); +VIDEO_UPDATE( majtitle ); diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h new file mode 100644 index 00000000000..63a6f6fd1c6 --- /dev/null +++ b/src/mame/includes/m92.h @@ -0,0 +1,25 @@ +/************************************************************************* + + Irem M92 hardware + +*************************************************************************/ + +/*----------- defined in video/m92.c -----------*/ + +extern UINT32 m92_raster_irq_position; +extern UINT16 *m92_vram_data, *m92_spritecontrol; + +extern UINT8 m92_sprite_buffer_busy, m92_game_kludge; + +WRITE16_HANDLER( m92_spritecontrol_w ); +WRITE16_HANDLER( m92_videocontrol_w ); +READ16_HANDLER( m92_paletteram_r ); +WRITE16_HANDLER( m92_paletteram_w ); +WRITE16_HANDLER( m92_vram_w ); +WRITE16_HANDLER( m92_pf1_control_w ); +WRITE16_HANDLER( m92_pf2_control_w ); +WRITE16_HANDLER( m92_pf3_control_w ); +WRITE16_HANDLER( m92_master_control_w ); + +VIDEO_START( m92 ); +VIDEO_UPDATE( m92 ); diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h new file mode 100644 index 00000000000..02890ea7360 --- /dev/null +++ b/src/mame/includes/mcr.h @@ -0,0 +1,123 @@ +/************************************************************************* + + Driver for Midway MCR games + +**************************************************************************/ + +#include "cpu/z80/z80daisy.h" + +/* constants */ +#define MAIN_OSC_MCR_I 19968000 + + +/*----------- defined in drivers/mcr.c -----------*/ + +WRITE8_HANDLER( mcr_ipu_sio_transmit ); + + + +/*----------- defined in machine/mcr.c -----------*/ + +extern attotime mcr68_timing_factor; + +extern struct z80_irq_daisy_chain mcr_daisy_chain[]; +extern struct z80_irq_daisy_chain mcr_ipu_daisy_chain[]; +extern UINT8 mcr_cocktail_flip; + +extern gfx_layout mcr_bg_layout; +extern gfx_layout mcr_sprite_layout; + +extern UINT32 mcr_cpu_board; +extern UINT32 mcr_sprite_board; +extern UINT32 mcr_ssio_board; + +MACHINE_START( mcr ); +MACHINE_RESET( mcr ); +MACHINE_START( nflfoot ); +MACHINE_START( mcr68 ); +MACHINE_RESET( mcr68 ); +MACHINE_START( zwackery ); +MACHINE_RESET( zwackery ); + +INTERRUPT_GEN( mcr_interrupt ); +INTERRUPT_GEN( mcr_ipu_interrupt ); +INTERRUPT_GEN( mcr68_interrupt ); + +WRITE8_HANDLER( mcr_control_port_w ); +WRITE8_HANDLER( mcrmono_control_port_w ); +WRITE8_HANDLER( mcr_scroll_value_w ); + +WRITE16_HANDLER( mcr68_6840_upper_w ); +WRITE16_HANDLER( mcr68_6840_lower_w ); +READ16_HANDLER( mcr68_6840_upper_r ); +READ16_HANDLER( mcr68_6840_lower_r ); + +READ8_HANDLER( mcr_ipu_pio_0_r ); +READ8_HANDLER( mcr_ipu_pio_1_r ); +READ8_HANDLER( mcr_ipu_sio_r ); +WRITE8_HANDLER( mcr_ipu_pio_0_w ); +WRITE8_HANDLER( mcr_ipu_pio_1_w ); +WRITE8_HANDLER( mcr_ipu_sio_w ); +WRITE8_HANDLER( mcr_ipu_laserdisk_w ); +READ8_HANDLER( mcr_ipu_watchdog_r ); +WRITE8_HANDLER( mcr_ipu_watchdog_w ); + + +/*----------- defined in video/mcr.c -----------*/ + +extern INT8 mcr12_sprite_xoffs; +extern INT8 mcr12_sprite_xoffs_flip; + +VIDEO_START( mcr ); + +WRITE8_HANDLER( mcr_91490_paletteram_w ); + +WRITE8_HANDLER( mcr_90009_videoram_w ); +WRITE8_HANDLER( mcr_90010_videoram_w ); +READ8_HANDLER( twotiger_videoram_r ); +WRITE8_HANDLER( twotiger_videoram_w ); +WRITE8_HANDLER( mcr_91490_videoram_w ); + +VIDEO_UPDATE( mcr ); + + +/*----------- defined in video/mcr3.c -----------*/ + +extern UINT8 spyhunt_sprite_color_mask; +extern INT16 spyhunt_scrollx, spyhunt_scrolly; +extern INT16 spyhunt_scroll_offset; + +extern UINT8 *spyhunt_alpharam; + +WRITE8_HANDLER( mcr3_paletteram_w ); +WRITE8_HANDLER( mcr3_videoram_w ); +WRITE8_HANDLER( spyhunt_videoram_w ); +WRITE8_HANDLER( spyhunt_alpharam_w ); + +VIDEO_START( mcr3 ); +VIDEO_START( mcrmono ); +VIDEO_START( spyhunt ); + +PALETTE_INIT( spyhunt ); + +VIDEO_UPDATE( mcr3 ); +VIDEO_UPDATE( spyhunt ); + + +/*----------- defined in video/mcr68.c -----------*/ + +extern UINT8 mcr68_sprite_clip; +extern INT8 mcr68_sprite_xoffset; + +WRITE16_HANDLER( mcr68_paletteram_w ); +WRITE16_HANDLER( mcr68_videoram_w ); + +VIDEO_START( mcr68 ); +VIDEO_UPDATE( mcr68 ); + +WRITE16_HANDLER( zwackery_paletteram_w ); +WRITE16_HANDLER( zwackery_videoram_w ); +WRITE16_HANDLER( zwackery_spriteram_w ); + +VIDEO_START( zwackery ); +VIDEO_UPDATE( zwackery ); diff --git a/src/mame/includes/meadows.h b/src/mame/includes/meadows.h new file mode 100644 index 00000000000..12dd9dfa403 --- /dev/null +++ b/src/mame/includes/meadows.h @@ -0,0 +1,24 @@ +/************************************************************************* + + Meadows S2650 hardware + +*************************************************************************/ + +/*----------- defined in audio/meadows.c -----------*/ + +void meadows_sh_start(void); +void meadows_sh_dac_w(int data); +void meadows_sh_update(void); +extern UINT8 meadows_0c00; +extern UINT8 meadows_0c01; +extern UINT8 meadows_0c02; +extern UINT8 meadows_0c03; + + +/*----------- defined in video/meadows.c -----------*/ + +VIDEO_START( meadows ); +VIDEO_UPDATE( meadows ); +WRITE8_HANDLER( meadows_videoram_w ); +WRITE8_HANDLER( meadows_spriteram_w ); + diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h new file mode 100644 index 00000000000..663d3550fc4 --- /dev/null +++ b/src/mame/includes/megasys1.h @@ -0,0 +1,195 @@ +/*************************************************************************** + + -= Jaleco Mega System 1 =- + + driver by Luca Elia (l.elia@tin.it) + + + This file contains definitions used across multiple megasys1 + and non megasys1 Jaleco games: + + * Input ports + * Scrolling layers handling + * Code decryption handling + +***************************************************************************/ + + +/*************************************************************************** + + Input Ports + +***************************************************************************/ + + +/* IN0 - COINS */ +#define COINS \ + PORT_START_TAG("IN0")\ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 )\ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_START2 )\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE1 )\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN1 )\ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN2 ) + +/* IN1/3 - PLAYER 1/2 */ +#define JOY_4BUTTONS(_flag_) \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4) PORT_PLAYER(_flag_) + +#define JOY_3BUTTONS(_flag_) \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) + +#define JOY_2BUTTONS(_flag_) \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_8WAY PORT_PLAYER(_flag_)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2) PORT_PLAYER(_flag_)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN) + +/* IN2 - RESERVE */ +#define RESERVE \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Reserve 1P */\ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN ) /* Reserve 2P */\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN )\ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +/* IN4 - Coinage DSWs */ +// 1] 01-41 02-31 03-21 07-11 06-12 05-13 04-14 00-FC * 2 +// 2] 04-31 02-21 07-11 03-12 05-13 01-14 06-15 00-FC +// 00-41 20-31 10-21 38-11 18-12 28-13 08-14 30-15 + + +#define COINAGE_6BITS \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )\ + PORT_DIPSETTING( 0x04, DEF_STR( 3C_1C ) )\ + PORT_DIPSETTING( 0x02, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x03, DEF_STR( 1C_2C ) )\ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )\ + PORT_DIPSETTING( 0x01, DEF_STR( 1C_4C ) )\ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_5C ) )\ + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\ + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )\ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) )\ + PORT_DIPSETTING( 0x20, DEF_STR( 3C_1C ) )\ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x18, DEF_STR( 1C_2C ) )\ + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )\ + PORT_DIPSETTING( 0x08, DEF_STR( 1C_4C ) )\ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_5C ) )\ + +#define COINAGE_6BITS_2 \ + PORT_DIPNAME( 0x07, 0x07, DEF_STR( Coin_A ) )\ + PORT_DIPSETTING( 0x01, DEF_STR( 4C_1C ) )\ + PORT_DIPSETTING( 0x02, DEF_STR( 3C_1C ) )\ + PORT_DIPSETTING( 0x03, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x07, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x06, DEF_STR( 1C_2C ) )\ + PORT_DIPSETTING( 0x05, DEF_STR( 1C_3C ) )\ + PORT_DIPSETTING( 0x04, DEF_STR( 1C_4C ) )\ + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\ + PORT_DIPNAME( 0x38, 0x38, DEF_STR( Coin_B ) )\ + PORT_DIPSETTING( 0x08, DEF_STR( 4C_1C ) )\ + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) )\ + PORT_DIPSETTING( 0x18, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x38, DEF_STR( 1C_1C ) )\ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_2C ) )\ + PORT_DIPSETTING( 0x28, DEF_STR( 1C_3C ) )\ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_4C ) )\ + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\ + +#define COINAGE_8BITS \ + PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )\ + PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) )\ + PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) )\ + PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) )\ +/* PORT_DIPSETTING( 0x05, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x03, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x02, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x01, DEF_STR( 1C_1C ) )*/ \ + PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) )\ + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) )\ + PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) )\ + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) )\ + PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) )\ + PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) )\ + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) )\ + PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) )\ + PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) )\ + PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) )\ + PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) )\ + PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) )\ +/* PORT_DIPSETTING( 0x50, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x40, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x20, DEF_STR( 1C_1C ) )*/ \ +/* PORT_DIPSETTING( 0x10, DEF_STR( 1C_1C ) )*/ \ + PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) )\ + PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) )\ + PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) )\ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) )\ + PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) )\ + PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) )\ + PORT_DIPSETTING( 0x00, DEF_STR( Free_Play ) ) + + +/*************************************************************************** + + Scrolling Layers Handling + +***************************************************************************/ + +/*----------- defined in video/megasys1.c -----------*/ + +/* Variables */ +extern tilemap *megasys1_tmap[3]; + +extern UINT16 *megasys1_scrollram[3]; +extern UINT16 *megasys1_objectram, *megasys1_vregs, *megasys1_ram; + +extern int megasys1_scrollx[3], megasys1_scrolly[3]; +extern int megasys1_active_layers; +//extern int megasys1_screen_flag, megasys1_sprite_flag; +extern int megasys1_bits_per_color_code; + + +/* Functions */ +VIDEO_START( megasys1 ); + +WRITE16_HANDLER( megasys1_scrollram_0_w ); +WRITE16_HANDLER( megasys1_scrollram_1_w ); +WRITE16_HANDLER( megasys1_scrollram_2_w ); + +void megasys1_set_vreg_flag(int which, int data); + +/*----------- defined in drivers/megasys1.c -----------*/ + +void astyanax_rom_decode(int cpu); +void phantasm_rom_decode(int cpu); +void rodland_rom_decode (int cpu); diff --git a/src/mame/includes/mhavoc.h b/src/mame/includes/mhavoc.h new file mode 100644 index 00000000000..e5c2072f964 --- /dev/null +++ b/src/mame/includes/mhavoc.h @@ -0,0 +1,43 @@ +/************************************************************************* + + Atari Major Havoc hardware + +*************************************************************************/ + +#define MHAVOC_CLOCK 10000000 +#define MHAVOC_CLOCK_5M (MHAVOC_CLOCK/2) +#define MHAVOC_CLOCK_2_5M (MHAVOC_CLOCK/4) +#define MHAVOC_CLOCK_1_25M (MHAVOC_CLOCK/8) +#define MHAVOC_CLOCK_625K (MHAVOC_CLOCK/16) + +#define MHAVOC_CLOCK_156K (MHAVOC_CLOCK_625K/4) +#define MHAVOC_CLOCK_5K (MHAVOC_CLOCK_625K/16/8) +#define MHAVOC_CLOCK_2_4K (MHAVOC_CLOCK_625K/16/16) + + +/*----------- defined in machine/mhavoc.c -----------*/ + +WRITE8_HANDLER( mhavoc_alpha_irq_ack_w ); +WRITE8_HANDLER( mhavoc_gamma_irq_ack_w ); + +MACHINE_RESET( mhavoc ); + +WRITE8_HANDLER( mhavoc_gamma_w ); +READ8_HANDLER( mhavoc_alpha_r ); + +WRITE8_HANDLER( mhavoc_alpha_w ); +READ8_HANDLER( mhavoc_gamma_r ); + +WRITE8_HANDLER( mhavoc_ram_banksel_w ); +WRITE8_HANDLER( mhavoc_rom_banksel_w ); + +READ8_HANDLER( mhavoc_port_0_r ); +READ8_HANDLER( alphaone_port_0_r ); +READ8_HANDLER( mhavoc_port_1_r ); +READ8_HANDLER( mhavoc_port_1_sp_r ); + +WRITE8_HANDLER( mhavoc_out_0_w ); +WRITE8_HANDLER( alphaone_out_0_w ); +WRITE8_HANDLER( mhavoc_out_1_w ); + +extern UINT8 *mhavoc_zram0, *mhavoc_zram1; diff --git a/src/mame/includes/midtunit.h b/src/mame/includes/midtunit.h new file mode 100644 index 00000000000..2df8ea52845 --- /dev/null +++ b/src/mame/includes/midtunit.h @@ -0,0 +1,64 @@ +/************************************************************************* + + Driver for Midway T-unit games. + +**************************************************************************/ + +#include "midyunit.h" + +/*----------- defined in machine/midtunit.c -----------*/ + +WRITE16_HANDLER( midtunit_cmos_enable_w ); +WRITE16_HANDLER( midtunit_cmos_w ); +READ16_HANDLER( midtunit_cmos_r ); + +READ16_HANDLER( midtunit_input_r ); + +DRIVER_INIT( mktunit ); +DRIVER_INIT( jdreddp ); +DRIVER_INIT( nbajam ); +DRIVER_INIT( nbajamte ); +DRIVER_INIT( mk2 ); + +MACHINE_RESET( midtunit ); + +READ16_HANDLER( midtunit_sound_state_r ); +READ16_HANDLER( midtunit_sound_r ); +WRITE16_HANDLER( midtunit_sound_w ); + + +/*----------- defined in video/midtunit.c -----------*/ + +extern UINT8 midtunit_gfx_rom_large; + +VIDEO_START( midtunit ); +VIDEO_START( midwunit ); +VIDEO_START( midxunit ); + +READ16_HANDLER( midtunit_gfxrom_r ); +READ16_HANDLER( midwunit_gfxrom_r ); + +WRITE16_HANDLER( midtunit_vram_w ); +WRITE16_HANDLER( midtunit_vram_data_w ); +WRITE16_HANDLER( midtunit_vram_color_w ); + +READ16_HANDLER( midtunit_vram_r ); +READ16_HANDLER( midtunit_vram_data_r ); +READ16_HANDLER( midtunit_vram_color_r ); + +void midtunit_to_shiftreg(UINT32 address, UINT16 *shiftreg); +void midtunit_from_shiftreg(UINT32 address, UINT16 *shiftreg); + +WRITE16_HANDLER( midtunit_control_w ); +WRITE16_HANDLER( midwunit_control_w ); +READ16_HANDLER( midwunit_control_r ); + +WRITE16_HANDLER( midtunit_paletteram_w ); +WRITE16_HANDLER( midxunit_paletteram_w ); +READ16_HANDLER( midxunit_paletteram_r ); + +READ16_HANDLER( midtunit_dma_r ); +WRITE16_HANDLER( midtunit_dma_w ); + +void midtunit_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); +void midxunit_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); diff --git a/src/mame/includes/midvunit.h b/src/mame/includes/midvunit.h new file mode 100644 index 00000000000..f732f6feb96 --- /dev/null +++ b/src/mame/includes/midvunit.h @@ -0,0 +1,37 @@ +/************************************************************************* + + Driver for Midway V-Unit games + +**************************************************************************/ + +#include "midwunit.h" + +#define MIDVUNIT_VIDEO_CLOCK 33000000 + + + +/*----------- defined in video/midvunit.c -----------*/ + +extern UINT16 *midvunit_videoram; +extern UINT32 *midvunit_textureram; + +WRITE32_HANDLER( midvunit_dma_queue_w ); +READ32_HANDLER( midvunit_dma_queue_entries_r ); +READ32_HANDLER( midvunit_dma_trigger_r ); + +WRITE32_HANDLER( midvunit_page_control_w ); +READ32_HANDLER( midvunit_page_control_r ); + +WRITE32_HANDLER( midvunit_video_control_w ); +READ32_HANDLER( midvunit_scanline_r ); + +WRITE32_HANDLER( midvunit_videoram_w ); +READ32_HANDLER( midvunit_videoram_r ); + +WRITE32_HANDLER( midvunit_paletteram_w ); + +WRITE32_HANDLER( midvunit_textureram_w ); +READ32_HANDLER( midvunit_textureram_r ); + +VIDEO_START( midvunit ); +VIDEO_UPDATE( midvunit ); diff --git a/src/mame/includes/midwunit.h b/src/mame/includes/midwunit.h new file mode 100644 index 00000000000..59c8e8ab69a --- /dev/null +++ b/src/mame/includes/midwunit.h @@ -0,0 +1,52 @@ +/************************************************************************* + + Driver for Midway Wolf-unit games. + +**************************************************************************/ + +#include "midtunit.h" + +/*----------- defined in machine/midwunit.c -----------*/ + +extern UINT8 *midwunit_decode_memory; + +WRITE16_HANDLER( midwunit_cmos_enable_w ); +WRITE16_HANDLER( midwunit_cmos_w ); +WRITE16_HANDLER( midxunit_cmos_w ); +READ16_HANDLER( midwunit_cmos_r ); + +WRITE16_HANDLER( midwunit_io_w ); +WRITE16_HANDLER( midxunit_io_w ); +WRITE16_HANDLER( midxunit_unknown_w ); + +READ16_HANDLER( midwunit_io_r ); +READ16_HANDLER( midxunit_io_r ); +READ16_HANDLER( midxunit_analog_r ); +WRITE16_HANDLER( midxunit_analog_select_w ); +READ16_HANDLER( midxunit_status_r ); + +READ16_HANDLER( midxunit_uart_r ); +WRITE16_HANDLER( midxunit_uart_w ); + +DRIVER_INIT( mk3 ); +DRIVER_INIT( mk3r20 ); +DRIVER_INIT( mk3r10 ); +DRIVER_INIT( umk3 ); +DRIVER_INIT( umk3r11 ); + +DRIVER_INIT( openice ); +DRIVER_INIT( nbahangt ); +DRIVER_INIT( wwfmania ); +DRIVER_INIT( rmpgwt ); +DRIVER_INIT( revx ); + +MACHINE_RESET( midwunit ); +MACHINE_RESET( midxunit ); + +READ16_HANDLER( midwunit_security_r ); +WRITE16_HANDLER( midwunit_security_w ); +WRITE16_HANDLER( midxunit_security_w ); +WRITE16_HANDLER( midxunit_security_clock_w ); + +READ16_HANDLER( midwunit_sound_r ); +WRITE16_HANDLER( midwunit_sound_w ); diff --git a/src/mame/includes/midyunit.h b/src/mame/includes/midyunit.h new file mode 100644 index 00000000000..b1f8c2107c8 --- /dev/null +++ b/src/mame/includes/midyunit.h @@ -0,0 +1,64 @@ +/************************************************************************* + + Williams/Midway Y/Z-unit system + +**************************************************************************/ + +#include "cpu/tms34010/tms34010.h" + +/*----------- defined in machine/midyunit.c -----------*/ + +extern UINT16 *midyunit_cmos_ram; +extern UINT32 midyunit_cmos_page; + +WRITE16_HANDLER( midyunit_cmos_w ); +READ16_HANDLER( midyunit_cmos_r ); + +WRITE16_HANDLER( midyunit_cmos_enable_w ); +READ16_HANDLER( midyunit_protection_r ); + +READ16_HANDLER( midyunit_input_r ); + +DRIVER_INIT( narc ); +DRIVER_INIT( trog ); +DRIVER_INIT( smashtv ); +DRIVER_INIT( hiimpact ); +DRIVER_INIT( shimpact ); +DRIVER_INIT( strkforc ); +DRIVER_INIT( mkyunit ); +DRIVER_INIT( mkyawdim ); +DRIVER_INIT( term2 ); +DRIVER_INIT( term2la2 ); +DRIVER_INIT( term2la1 ); +DRIVER_INIT( totcarn ); + +MACHINE_RESET( midyunit ); + +WRITE16_HANDLER( midyunit_sound_w ); + + +/*----------- defined in video/midyunit.c -----------*/ + +extern UINT8 * midyunit_gfx_rom; +extern size_t midyunit_gfx_rom_size; + +VIDEO_START( midyunit_4bit ); +VIDEO_START( midyunit_6bit ); +VIDEO_START( mkyawdim ); +VIDEO_START( midzunit ); + +READ16_HANDLER( midyunit_gfxrom_r ); + +WRITE16_HANDLER( midyunit_vram_w ); +READ16_HANDLER( midyunit_vram_r ); + +void midyunit_to_shiftreg(UINT32 address, UINT16 *shiftreg); +void midyunit_from_shiftreg(UINT32 address, UINT16 *shiftreg); + +WRITE16_HANDLER( midyunit_control_w ); +WRITE16_HANDLER( midyunit_paletteram_w ); + +READ16_HANDLER( midyunit_dma_r ); +WRITE16_HANDLER( midyunit_dma_w ); + +void midyunit_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h new file mode 100644 index 00000000000..9a9578552d0 --- /dev/null +++ b/src/mame/includes/midzeus.h @@ -0,0 +1,22 @@ +/************************************************************************* + + Driver for Midway Zeus games + +**************************************************************************/ + +#define MIDZEUS_VIDEO_CLOCK 66000000 + + +/*----------- defined in video/midzeus.c -----------*/ + +extern UINT32 *zeusbase; + +VIDEO_START( midzeus ); +VIDEO_UPDATE( midzeus ); + +READ32_HANDLER( zeus_r ); +WRITE32_HANDLER( zeus_w ); + +READ32_HANDLER( zeus2_r ); +WRITE32_HANDLER( zeus2_w ); + diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h new file mode 100644 index 00000000000..5bbbe3c44e3 --- /dev/null +++ b/src/mame/includes/mw8080bw.h @@ -0,0 +1,173 @@ +/*************************************************************************** + + Midway 8080-based black and white hardware + +****************************************************************************/ + + +#define MW8080BW_MASTER_CLOCK (19968000) +#define MW8080BW_CPU_CLOCK (MW8080BW_MASTER_CLOCK / 10) +#define MW8080BW_PIXEL_CLOCK (MW8080BW_MASTER_CLOCK / 4) +#define MW8080BW_HTOTAL (0x140) +#define MW8080BW_HBEND (0x000) +#define MW8080BW_HBSTART (0x100) +#define MW8080BW_VTOTAL (0x106) +#define MW8080BW_VBEND (0x000) +#define MW8080BW_VBSTART (0x0e0) +#define MW8080BW_VCOUNTER_START_NO_VBLANK (0x020) +#define MW8080BW_VCOUNTER_START_VBLANK (0x0da) +#define MW8080BW_INT_TRIGGER_COUNT_1 (0x080) +#define MW8080BW_INT_TRIGGER_VBLANK_1 (0) +#define MW8080BW_INT_TRIGGER_COUNT_2 MW8080BW_VCOUNTER_START_VBLANK +#define MW8080BW_INT_TRIGGER_VBLANK_2 (1) + +/* +4 is added to HBSTART because the hardware displays that many pixels after + setting HBLANK */ +#define MW8080BW_HPIXCOUNT (MW8080BW_HBSTART + 4) + + +/*----------- defined in drivers/mw8080bw.c -----------*/ + +extern UINT8 *mw8080bw_ram; +extern size_t mw8080bw_ram_size; + +MACHINE_DRIVER_EXTERN( mw8080bw_root ); +MACHINE_DRIVER_EXTERN( invaders ); +extern const char layout_invaders[]; + +#define SEAWOLF_GUN_PORT_TAG ("GUN") + +#define TORNBASE_CAB_TYPE_UPRIGHT_OLD (0) +#define TORNBASE_CAB_TYPE_UPRIGHT_NEW (1) +#define TORNBASE_CAB_TYPE_COCKTAIL (2) +UINT8 tornbase_get_cabinet_type(void); + +#define DESERTGU_GUN_X_PORT_TAG ("GUNX") +#define DESERTGU_GUN_Y_PORT_TAG ("GUNY") +void desertgun_set_controller_select(UINT8 data); + +void clowns_set_controller_select(UINT8 data); + +void spcenctr_set_strobe_state(UINT8 data); +UINT8 spcenctr_get_trench_width(void); +UINT8 spcenctr_get_trench_center(void); +UINT8 spcenctr_get_trench_slope(UINT8 addr); + +UINT16 phantom2_get_cloud_counter(void); +void phantom2_set_cloud_counter(UINT16 data); + +#define INVADERS_CAB_TYPE_PORT_TAG ("CAB") +#define INVADERS_P1_CONTROL_PORT_TAG ("CONTP1") +#define INVADERS_P2_CONTROL_PORT_TAG ("CONTP2") + +UINT32 invaders_in2_control_r(void *param); +UINT8 invaders_is_flip_screen(void); +void invaders_set_flip_screen(UINT8 data); +int invaders_is_cabinet_cocktail(void); + +#define BLUESHRK_SPEAR_PORT_TAG ("SPEAR") + + +/*----------- defined in machine/mw8080bw.c -----------*/ + +MACHINE_START( mw8080bw ); +MACHINE_RESET( mw8080bw ); + + +/*----------- defined in audio/mw8080bw.c -----------*/ + +WRITE8_HANDLER( midway_tone_generator_lo_w ); +WRITE8_HANDLER( midway_tone_generator_hi_w ); + +MACHINE_DRIVER_EXTERN( seawolf_audio ); +WRITE8_HANDLER( seawolf_audio_w ); + +MACHINE_DRIVER_EXTERN( gunfight_audio ); +WRITE8_HANDLER( gunfight_audio_w ); + +MACHINE_DRIVER_EXTERN( tornbase_audio ); +WRITE8_HANDLER( tornbase_audio_w ); + +MACHINE_DRIVER_EXTERN( zzzap_audio ); +WRITE8_HANDLER( zzzap_audio_1_w ); +WRITE8_HANDLER( zzzap_audio_2_w ); + +MACHINE_DRIVER_EXTERN( maze_audio ); +void maze_write_discrete(UINT8 maze_tone_timing_state); + +MACHINE_DRIVER_EXTERN( boothill_audio ); +WRITE8_HANDLER( boothill_audio_w ); + +MACHINE_DRIVER_EXTERN( checkmat_audio ); +WRITE8_HANDLER( checkmat_audio_w ); + +MACHINE_DRIVER_EXTERN( desertgu_audio ); +WRITE8_HANDLER( desertgu_audio_1_w ); +WRITE8_HANDLER( desertgu_audio_2_w ); + +MACHINE_DRIVER_EXTERN( dplay_audio ); +WRITE8_HANDLER( dplay_audio_w ); + +MACHINE_DRIVER_EXTERN( gmissile_audio ); +WRITE8_HANDLER( gmissile_audio_1_w ); +WRITE8_HANDLER( gmissile_audio_2_w ); +WRITE8_HANDLER( gmissile_audio_3_w ); + +MACHINE_DRIVER_EXTERN( m4_audio ); +WRITE8_HANDLER( m4_audio_1_w ); +WRITE8_HANDLER( m4_audio_2_w ); + +MACHINE_DRIVER_EXTERN( clowns_audio ); +WRITE8_HANDLER( clowns_audio_1_w ); +WRITE8_HANDLER( clowns_audio_2_w ); + +MACHINE_DRIVER_EXTERN( shuffle_audio ); +WRITE8_HANDLER( shuffle_audio_1_w ); +WRITE8_HANDLER( shuffle_audio_2_w ); + +MACHINE_DRIVER_EXTERN( dogpatch_audio ); +WRITE8_HANDLER( dogpatch_audio_w ); + +MACHINE_DRIVER_EXTERN( spcenctr_audio ); +WRITE8_HANDLER( spcenctr_audio_1_w ); +WRITE8_HANDLER( spcenctr_audio_2_w ); +WRITE8_HANDLER( spcenctr_audio_3_w ); + +MACHINE_DRIVER_EXTERN( phantom2_audio ); +WRITE8_HANDLER( phantom2_audio_1_w ); +WRITE8_HANDLER( phantom2_audio_2_w ); + +MACHINE_DRIVER_EXTERN( bowler_audio ); +WRITE8_HANDLER( bowler_audio_1_w ); +WRITE8_HANDLER( bowler_audio_2_w ); +WRITE8_HANDLER( bowler_audio_3_w ); +WRITE8_HANDLER( bowler_audio_4_w ); +WRITE8_HANDLER( bowler_audio_5_w ); +WRITE8_HANDLER( bowler_audio_6_w ); + +MACHINE_DRIVER_EXTERN( invaders_samples_audio ); +MACHINE_DRIVER_EXTERN( invaders_audio ); +WRITE8_HANDLER( invaders_audio_1_w ); +WRITE8_HANDLER( invaders_audio_2_w ); + +MACHINE_DRIVER_EXTERN( blueshrk_audio ); +WRITE8_HANDLER( blueshrk_audio_w ); + +MACHINE_DRIVER_EXTERN( invad2ct_audio ); +WRITE8_HANDLER( invad2ct_audio_1_w ); +WRITE8_HANDLER( invad2ct_audio_2_w ); +WRITE8_HANDLER( invad2ct_audio_3_w ); +WRITE8_HANDLER( invad2ct_audio_4_w ); + + + +/*----------- defined in video/mw8080bw.c -----------*/ + +VIDEO_UPDATE( mw8080bw ); + +VIDEO_UPDATE( spcenctr ); + +VIDEO_UPDATE( phantom2 ); +VIDEO_EOF( phantom2 ); + +VIDEO_UPDATE( invaders ); diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h new file mode 100644 index 00000000000..8b4877b5daf --- /dev/null +++ b/src/mame/includes/n64.h @@ -0,0 +1,73 @@ +#ifndef _INCLUDES_N64_H_ +#define _INCLUDES_N64_H_ + +/*----------- defined in video/n64.c -----------*/ + +extern VIDEO_START( n64 ); +extern VIDEO_UPDATE( n64 ); +extern void rdp_process_list(void); + +#define DACRATE_NTSC (48681812) +#define DACRATE_PAL (49656530) +#define DACRATE_MPAL (48628316) + +#define SP_INTERRUPT 0x1 +#define SI_INTERRUPT 0x2 +#define AI_INTERRUPT 0x4 +#define VI_INTERRUPT 0x8 +#define PI_INTERRUPT 0x10 +#define DP_INTERRUPT 0x20 + +#define SP_STATUS_HALT 0x0001 +#define SP_STATUS_BROKE 0x0002 +#define SP_STATUS_DMABUSY 0x0004 +#define SP_STATUS_DMAFULL 0x0008 +#define SP_STATUS_IOFULL 0x0010 +#define SP_STATUS_SSTEP 0x0020 +#define SP_STATUS_INTR_BREAK 0x0040 +#define SP_STATUS_SIGNAL0 0x0080 +#define SP_STATUS_SIGNAL1 0x0100 +#define SP_STATUS_SIGNAL2 0x0200 +#define SP_STATUS_SIGNAL3 0x0400 +#define SP_STATUS_SIGNAL4 0x0800 +#define SP_STATUS_SIGNAL5 0x1000 +#define SP_STATUS_SIGNAL6 0x2000 +#define SP_STATUS_SIGNAL7 0x4000 + +#define DP_STATUS_XBUS_DMA 0x01 +#define DP_STATUS_FREEZE 0x02 +#define DP_STATUS_FLUSH 0x04 + +/*----------- defined in machine/n64.c -----------*/ + +extern UINT32 *rdram; +extern UINT32 *rsp_imem; +extern UINT32 *rsp_dmem; + +extern void signal_rcp_interrupt(int interrupt); +extern void clear_rcp_interrupt(int interrupt); + + +/* read/write handlers for the N64 subsystems */ +extern READ32_HANDLER( n64_mi_reg_r ); +extern WRITE32_HANDLER( n64_mi_reg_w ); +extern READ32_HANDLER( n64_sp_reg_r ); +extern WRITE32_HANDLER( n64_sp_reg_w ); +extern READ32_HANDLER( n64_dp_reg_r ); +extern WRITE32_HANDLER( n64_dp_reg_w ); +extern READ32_HANDLER( n64_vi_reg_r ); +extern WRITE32_HANDLER( n64_vi_reg_w ); +extern READ32_HANDLER( n64_ai_reg_r ); +extern WRITE32_HANDLER( n64_ai_reg_w ); +extern READ32_HANDLER( n64_pi_reg_r ); +extern WRITE32_HANDLER( n64_pi_reg_w ); +extern READ32_HANDLER( n64_ri_reg_r ); +extern WRITE32_HANDLER( n64_ri_reg_w ); +extern READ32_HANDLER( n64_si_reg_r ); +extern WRITE32_HANDLER( n64_si_reg_w ); +extern READ32_HANDLER( n64_pif_ram_r ); +extern WRITE32_HANDLER( n64_pif_ram_w ); + +void n64_machine_reset(void); + +#endif diff --git a/src/mame/includes/n8080.h b/src/mame/includes/n8080.h new file mode 100644 index 00000000000..e9e372dea31 --- /dev/null +++ b/src/mame/includes/n8080.h @@ -0,0 +1,32 @@ +/*----------- defined in video/n8080.c -----------*/ + +extern int helifire_flash; + +extern int spacefev_red_screen; +extern int spacefev_red_cannon; + +WRITE8_HANDLER( n8080_video_control_w ); + +PALETTE_INIT( n8080 ); +PALETTE_INIT( helifire ); + +VIDEO_START( spacefev ); +VIDEO_START( sheriff ); +VIDEO_START( helifire ); +VIDEO_UPDATE( spacefev ); +VIDEO_UPDATE( sheriff ); +VIDEO_UPDATE( helifire ); +VIDEO_EOF( helifire ); + +void spacefev_start_red_cannon(void); + + +/*----------- defined in audio/n8080.c -----------*/ + +MACHINE_DRIVER_EXTERN( spacefev_sound ); +MACHINE_DRIVER_EXTERN( sheriff_sound ); +MACHINE_DRIVER_EXTERN( helifire_sound ); + +WRITE8_HANDLER( n8080_sound_1_w ); +WRITE8_HANDLER( n8080_sound_2_w ); + diff --git a/src/mame/includes/nam_cust.h b/src/mame/includes/nam_cust.h new file mode 100644 index 00000000000..7dcc3e06660 --- /dev/null +++ b/src/mame/includes/nam_cust.h @@ -0,0 +1,28 @@ +/* Namco Custom Chip ROM loading Macros */ + + +/* the 50XX is a player score controller, used for protection */ +#define ROM_REGION_NAMCO_50XX( region ) \ + ROM_REGION( 0x800, region, 0 ) /* 2k for the 50xx */ \ + ROM_LOAD( "50xx.bin", 0x0000, 0x0800, CRC(a0acbaf7) SHA1(f03c79451e73b3a93c1591cdb27fedc9f130508d) ) \ + +/* the 51XX is an I/O controller */ +#define ROM_REGION_NAMCO_51XX( region ) \ + ROM_REGION( 0x400, region, 0 ) /* 1k for the 51xx */ \ + ROM_LOAD( "51xx.bin", 0x0000, 0x0400, CRC(c2f57ef8) SHA1(50de79e0d6a76bda95ffb02fcce369a79e6abfec) ) \ + +/* the 52XX is a sample player */ +#define ROM_REGION_NAMCO_52XX( region ) \ + ROM_REGION( 0x400, region, 0 ) /* 1k for the 52xx */ \ + ROM_LOAD( "52xx.bin", 0x0000, 0x0400, CRC(3257d11e) SHA1(4883b2fdbc99eb7b9906357fcc53915842c2c186) ) \ + +/* the 53XX is an I/O controller */ +#define ROM_REGION_NAMCO_53XX( region ) \ + ROM_REGION( 0x400, region, 0 ) /* 1k for the 53xx */ \ + ROM_LOAD( "53xx.bin", 0x0000, 0x0400, CRC(b326fecb) SHA1(758d8583d658e4f1df93184009d86c3eb8713899) ) \ + +/* the 54XX is an explosion sound generator */ +#define ROM_REGION_NAMCO_54XX( region ) \ + ROM_REGION( 0x400, region, 0 ) /* 1k for the 54xx */ \ + ROM_LOAD( "54xx.bin", 0x0000, 0x0400, CRC(ee7357e0) SHA1(01bdf984a49e8d0cc8761b2cc162fd6434d5afbe) ) \ + diff --git a/src/mame/includes/namcoic.h b/src/mame/includes/namcoic.h new file mode 100644 index 00000000000..58caa966cac --- /dev/null +++ b/src/mame/includes/namcoic.h @@ -0,0 +1,175 @@ +/* namcoic.h + +Custom Chips: Final Lap Assault LuckyWld System21 NA1/2 NB1/2 + C45 Land Generator * * + C65 I/O Controller * * + C68 * * + C70 * + C95 * * + C102 ROZ:Memory Access Control * + C106 OBJ:X-Axis Zoom Control * * + C107 Land Line Buffer * + C116 Screen Waveform Generator * * * * + C121 Yamaha YM2151 Sound Gen * * * + C123 GFX:Tile Mem Decoder * * * * + C134 OBJ:Address Generator * * + C135 OBJ:Line matching * * + C137 Clock Generator IC * * * * * + C138 * + C139 Serial I/F Controller * * * * + C140 24 Channel PCM * * * + C145 GFX:Tile Memory Access * * * * + C146 OBJ:Line Buf Steering * * + C148 CPU Bus Manager * * * * + C149 Mouse/Trackball Decoder * * * * + C156 Pixel Stream Combo * * * * + C160 Control * + C165 * + C169 ROZ(B) * * + C187 * * * + C210 * + C215 * + C218 * + C219 * + C329 CPU? * + C347 GfxObj * + C352 PCM * + C355 Motion Obj(B) * * * + C373 LAND-related * + C382 * + C383 * + C384 GFX(3) * + C385 * + C390 Key Custom * + + +General Support +--------------- +C65 - This is the I/O Microcontroller, handles all input/output devices. 63705 uC, CPU4 in Namco System2. +C137 - Takes System clock and generates all sub-system clocks, doesnt need emulation, not accessed via CPU +C139 - Serial Interface Controller +C148 - Does some Memory Decode, Interrupt Handling, 3 bit PIO port, Bus Controller +C149 - Does decoding of mouse/trackball input streams for the I/O Controller. (Offset Square wave) + + +Tile Fields Static/Scrolled +--------------------------- +Combination of these two devices and associated RAM & TileGFX produces a pixel stream that is fed +into the Pixel stream decoder. + +C145 - Tile Screen Memory Access controller +C123 - Tile Memory decoder Part 1, converts X,Y,Tile into character ROM address index + + +Pixel Stream Decode +------------------- +These two devices take the pixel streams from the tilefield generator and the associated graphics board +and combine them to form an RGB data stream that is fed to the monitor. + +C156 - Pixel stream combiner +Takes tile field & graphics board streams and generates the priorisied pixel, then does the lookup to +go from palettised to 24bit RGB pixel. + +C116 - Screen Waveform Generator +Takes RGB24 pixel stream from C156 and generates the waveform signals for the monitor, also generates +the line interrupt and controls screen blanking,shift, etc. + +Object Control +-------------- +C106 - Generates memory output clocks to generate X-Axis Zoom for Line Buffer Writes +C134 - Object Memory Address Generator. Sequences the sprite memory contents to the hardware. +C135 - Checks is object is displayed on Current output line. +C146 - Steers the Decode Object Pixel data to the correct line buffer A or B + +ROZ +--- +C102 - Controls CPU access to ROZ Memory Area. +*/ + +/***********************************************************************************/ + +/*----------- defined in drivers/namcoic.c -----------*/ + +void namco_tilemap_init( + int gfxbank, void *pMaskROM, + void (*cb)( UINT16 code, int *gfx, int *mask) ); +void namco_tilemap_draw( mame_bitmap *bitmap, const rectangle *cliprect, int pri ); +void namco_tilemap_invalidate( void ); +WRITE16_HANDLER( namco_tilemapvideoram16_w ); +READ16_HANDLER( namco_tilemapvideoram16_r ); +WRITE16_HANDLER( namco_tilemapcontrol16_w ); +READ16_HANDLER( namco_tilemapcontrol16_r ); + +READ32_HANDLER( namco_tilemapvideoram32_r ); +WRITE32_HANDLER( namco_tilemapvideoram32_w ); +READ32_HANDLER( namco_tilemapcontrol32_r ); +WRITE32_HANDLER( namco_tilemapcontrol32_w ); + +READ32_HANDLER( namco_tilemapvideoram32_le_r ); +WRITE32_HANDLER( namco_tilemapvideoram32_le_w ); +READ32_HANDLER( namco_tilemapcontrol32_le_r ); +WRITE32_HANDLER( namco_tilemapcontrol32_le_w ); + +/***********************************************************************************/ + +/* Namco System II Sprite Rendering */ +void namcos2_draw_sprites(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri, int control ); + +void namcos2_draw_sprites_metalhawk(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +/***********************************************************************************/ +/* C355 Motion Object Emulation */ + +/* for palXOR, supply either 0x0 (normal) or 0xf (palette mapping reversed) */ +void namco_obj_init( int gfxbank, int palXOR, int (*code2tile)( int code ) ); +void namco_obj_draw(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +WRITE16_HANDLER( namco_obj16_w ); +READ16_HANDLER( namco_obj16_r ); + +WRITE32_HANDLER( namco_obj32_w ); +READ32_HANDLER( namco_obj32_r ); +WRITE32_HANDLER( namco_obj32_le_w ); +READ32_HANDLER( namco_obj32_le_r ); + +WRITE16_HANDLER( namco_spritepos16_w ); +READ16_HANDLER( namco_spritepos16_r ); + +WRITE32_HANDLER( namco_spritepos32_w ); +READ32_HANDLER( namco_spritepos32_r ); + +/***********************************************************************************/ +/* C169 ROZ Layer Emulation */ + +void namco_roz_init( int gfxbank, int maskregion ); +void namco_roz_draw( mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +READ16_HANDLER( namco_rozcontrol16_r ); +WRITE16_HANDLER( namco_rozcontrol16_w ); +READ16_HANDLER( namco_rozbank16_r ); +WRITE16_HANDLER( namco_rozbank16_w ); +READ16_HANDLER( namco_rozvideoram16_r ); +WRITE16_HANDLER( namco_rozvideoram16_w ); + +READ32_HANDLER( namco_rozcontrol32_r ); +WRITE32_HANDLER( namco_rozcontrol32_w ); +READ32_HANDLER( namco_rozcontrol32_le_r ); +WRITE32_HANDLER( namco_rozcontrol32_le_w ); +READ32_HANDLER( namco_rozbank32_r ); +WRITE32_HANDLER( namco_rozbank32_w ); +READ32_HANDLER( namco_rozvideoram32_r ); +WRITE32_HANDLER( namco_rozvideoram32_w ); +READ32_HANDLER( namco_rozvideoram32_le_r ); +WRITE32_HANDLER( namco_rozvideoram32_le_w ); + +/***********************************************************************************/ +/* C45 Land (Road) Emulation */ + +void namco_road_init(running_machine *machine, int gfxbank ); +void namco_road_set_transparent_color(pen_t pen); +void namco_road_draw(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int pri ); + +READ16_HANDLER( namco_road16_r ); +WRITE16_HANDLER( namco_road16_w ); + +/***********************************************************************************/ diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h new file mode 100644 index 00000000000..d429d1cabea --- /dev/null +++ b/src/mame/includes/namcona1.h @@ -0,0 +1,40 @@ +/*----------- defined in drivers/namcona1.c -----------*/ + +extern int namcona1_gametype; + + +/*----------- defined in video/namcona1.c -----------*/ + +enum +{ + NAMCO_CGANGPZL, + NAMCO_EMERALDA, + NAMCO_KNCKHEAD, + NAMCO_BKRTMAQ, + NAMCO_EXBANIA, + NAMCO_QUIZTOU, + NAMCO_SWCOURT, + NAMCO_TINKLPIT, + NAMCO_NUMANATH, + NAMCO_FA, + NAMCO_XDAY2 +}; + +#define NA1_NVRAM_SIZE (0x800) + +extern UINT16 *namcona1_workram; +extern UINT16 *namcona1_vreg; +extern UINT16 *namcona1_scroll; +extern UINT16 *namcona1_sparevram; + +extern WRITE16_HANDLER( namcona1_videoram_w ); +extern READ16_HANDLER( namcona1_videoram_r ); + +extern READ16_HANDLER( namcona1_gfxram_r ); +extern WRITE16_HANDLER( namcona1_gfxram_w ); + +extern READ16_HANDLER( namcona1_paletteram_r ); +extern WRITE16_HANDLER( namcona1_paletteram_w ); + +extern VIDEO_UPDATE( namcona1 ); +extern VIDEO_START( namcona1 ); diff --git a/src/mame/includes/namconb1.h b/src/mame/includes/namconb1.h new file mode 100644 index 00000000000..566b785ac6d --- /dev/null +++ b/src/mame/includes/namconb1.h @@ -0,0 +1,28 @@ +/*----------- defined in drivers/namconb1.c -----------*/ + +extern UINT32 *namconb1_workram32; +extern UINT32 *namconb1_spritebank32; +extern UINT32 *namconb1_tilebank32; + +/*----------- defined in video/namconb1.c -----------*/ + +#define NAMCONB1_HTOTAL (288) /* wrong */ +#define NAMCONB1_HBSTART (288) +#define NAMCONB1_VTOTAL (262) /* needs to be checked */ +#define NAMCONB1_VBSTART (224) + +#define NAMCONB1_TILEMASKREGION REGION_GFX1 +#define NAMCONB1_TILEGFXREGION REGION_GFX2 +#define NAMCONB1_SPRITEGFXREGION REGION_GFX3 +#define NAMCONB1_ROTMASKREGION REGION_GFX4 +#define NAMCONB1_ROTGFXREGION REGION_GFX5 + +#define NAMCONB1_TILEGFX 0 +#define NAMCONB1_SPRITEGFX 1 +#define NAMCONB1_ROTGFX 2 + +VIDEO_UPDATE( namconb1 ); +VIDEO_START( namconb1 ); + +VIDEO_UPDATE( namconb2 ); +VIDEO_START( namconb2 ); diff --git a/src/mame/includes/namcond1.h b/src/mame/includes/namcond1.h new file mode 100644 index 00000000000..8fe0142021a --- /dev/null +++ b/src/mame/includes/namcond1.h @@ -0,0 +1,30 @@ +/*************************************************************************** + + namcond1.h + + Common functions & declarations for the Namco ND-1 driver + +***************************************************************************/ + +#define GFX_8X8_4BIT 0 +#define GFX_16X16_4BIT 1 +#define GFX_32X32_4BIT 2 +#define GFX_64X64_4BIT 3 +#define GFX_8X8_8BIT 4 +#define GFX_16X16_8BIT 5 + +/*----------- defined in machine/namcond1.c -----------*/ + +extern UINT8 namcond1_gfxbank; + +extern UINT8 namcond1_h8_irq5_enabled; +extern UINT16 *namcond1_shared_ram; + +extern READ16_HANDLER( namcond1_shared_ram_r ); +extern READ16_HANDLER( namcond1_cuskey_r ); +extern WRITE16_HANDLER( namcond1_shared_ram_w ); +extern WRITE16_HANDLER( namcond1_cuskey_w ); + +MACHINE_START( namcond1 ); +MACHINE_RESET( namcond1 ); + diff --git a/src/mame/includes/namcos2.h b/src/mame/includes/namcos2.h new file mode 100644 index 00000000000..d20b6b393a4 --- /dev/null +++ b/src/mame/includes/namcos2.h @@ -0,0 +1,246 @@ +/*************************************************************************** + + namcos2.h + + Common functions & declarations for the Namco System 2 driver + +***************************************************************************/ + +/* CPU reference numbers */ + +#define CPU_MASTER 0 +#define CPU_SLAVE 1 +#define CPU_SOUND 2 +#define CPU_MCU 3 +#define CPU_GPU 5 + + +/*********************************************/ +/* IF GAME SPECIFIC HACKS ARE REQUIRED THEN */ +/* USE THE namcos2_gametype VARIABLE TO FIND */ +/* OUT WHAT GAME IS RUNNING */ +/*********************************************/ + +enum +{ + /* Namco System 2 */ + NAMCOS2_ASSAULT = 0x1000, + NAMCOS2_ASSAULT_JP, + NAMCOS2_ASSAULT_PLUS, + NAMCOS2_BUBBLE_TROUBLE, + NAMCOS2_BURNING_FORCE, + NAMCOS2_COSMO_GANG, + NAMCOS2_COSMO_GANG_US, + NAMCOS2_DIRT_FOX, + NAMCOS2_DIRT_FOX_JP, + NAMCOS2_DRAGON_SABER, + NAMCOS2_FINAL_LAP, + NAMCOS2_FINAL_LAP_2, + NAMCOS2_FINAL_LAP_3, + NAMCOS2_FINEST_HOUR, + NAMCOS2_FOUR_TRAX, + NAMCOS2_GOLLY_GHOST, + NAMCOS2_LUCKY_AND_WILD, + NAMCOS2_MARVEL_LAND, + NAMCOS2_METAL_HAWK, + NAMCOS2_MIRAI_NINJA, + NAMCOS2_ORDYNE, + NAMCOS2_PHELIOS, + NAMCOS2_ROLLING_THUNDER_2, + NAMCOS2_STEEL_GUNNER, + NAMCOS2_STEEL_GUNNER_2, + NAMCOS2_SUPER_WSTADIUM, + NAMCOS2_SUPER_WSTADIUM_92, + NAMCOS2_SUPER_WSTADIUM_92T, + NAMCOS2_SUPER_WSTADIUM_93, + NAMCOS2_SUZUKA_8_HOURS, + NAMCOS2_SUZUKA_8_HOURS_2, + NAMCOS2_VALKYRIE, + NAMCOS2_KYUUKAI_DOUCHUUKI, + + /* Namco System21 */ + NAMCOS21_AIRCOMBAT, + NAMCOS21_STARBLADE, + NAMCOS21_CYBERSLED, + NAMCOS21_SOLVALOU, + NAMCOS21_WINRUN91, + NAMCOS21_DRIVERS_EYES, + + /* Namco NB1 */ + NAMCONB1_NEBULRAY, + NAMCONB1_GUNBULET, + NAMCONB1_GSLGR94U, + NAMCONB1_SWS95, + NAMCONB1_SWS96, + NAMCONB1_SWS97, + NAMCONB1_VSHOOT, + + /* Namco NB2 */ + NAMCONB2_OUTFOXIES, + NAMCONB2_MACH_BREAKERS, + + /* Namco System FL */ + NAMCOFL_SPEED_RACER, + NAMCOFL_FINAL_LAP_R +}; + +/*----------- defined in video/namcos2.c -----------*/ + +#define NAMCOS21_NUM_COLORS 0x8000 + +VIDEO_START( namcos2 ); +VIDEO_UPDATE( namcos2_default ); + +VIDEO_START( finallap ); +VIDEO_UPDATE( finallap ); + +VIDEO_START( luckywld ); +VIDEO_UPDATE( luckywld ); + +VIDEO_START( metlhawk ); +VIDEO_UPDATE( metlhawk ); + +VIDEO_START( sgunner ); +VIDEO_UPDATE( sgunner ); + +extern UINT16 *namcos2_sprite_ram; +WRITE16_HANDLER( namcos2_sprite_ram_w ); +READ16_HANDLER( namcos2_sprite_ram_r ); + +int namcos2_GetPosIrqScanline( void ); + +WRITE16_HANDLER( namcos2_gfx_ctrl_w ); +READ16_HANDLER( namcos2_gfx_ctrl_r ); + +/**************************************************************/ +/* Shared video palette function handlers */ +/**************************************************************/ +READ16_HANDLER( namcos2_68k_video_palette_r ); +WRITE16_HANDLER( namcos2_68k_video_palette_w ); + +#define VIRTUAL_PALETTE_BANKS 30 +extern UINT16 *namcos2_68k_palette_ram; +extern size_t namcos2_68k_palette_size; + +/**************************************************************/ +/* ROZ - Rotate & Zoom memory function handlers */ +/**************************************************************/ + +WRITE16_HANDLER( namcos2_68k_roz_ctrl_w ); +READ16_HANDLER( namcos2_68k_roz_ctrl_r ); + +WRITE16_HANDLER( namcos2_68k_roz_ram_w ); +READ16_HANDLER( namcos2_68k_roz_ram_r ); +extern UINT16 *namcos2_68k_roz_ram; + +/*----------- defined in machine/namcos2.c -----------*/ + +extern int namcos2_gametype; + +MACHINE_RESET( namcos2 ); + +READ16_HANDLER( namcos2_flap_prot_r ); + +/**************************************************************/ +/* EEPROM memory function handlers */ +/**************************************************************/ +#define NAMCOS2_68K_EEPROM_W namcos2_68k_eeprom_w +#define NAMCOS2_68K_EEPROM_R namcos2_68k_eeprom_r +NVRAM_HANDLER( namcos2 ); +WRITE16_HANDLER( namcos2_68k_eeprom_w ); +READ16_HANDLER( namcos2_68k_eeprom_r ); + +/**************************************************************/ +/* Shared data ROM memory handlerhandlers */ +/**************************************************************/ +READ16_HANDLER( namcos2_68k_data_rom_r ); + +/**************************************************************/ +/* Shared serial communications processory (CPU5 ????) */ +/**************************************************************/ +READ16_HANDLER( namcos2_68k_serial_comms_ram_r ); +WRITE16_HANDLER( namcos2_68k_serial_comms_ram_w ); +READ16_HANDLER( namcos2_68k_serial_comms_ctrl_r ); +WRITE16_HANDLER( namcos2_68k_serial_comms_ctrl_w ); + +extern UINT16 namcos2_68k_serial_comms_ctrl[]; +extern UINT16 *namcos2_68k_serial_comms_ram; + +/**************************************************************/ +/* Shared protection/random number generator */ +/**************************************************************/ +READ16_HANDLER( namcos2_68k_key_r ); +WRITE16_HANDLER( namcos2_68k_key_w ); + +/**************************************************************/ +/* Non-shared memory custom IO device - IRQ/Inputs/Outputs */ +/**************************************************************/ + +#define NAMCOS2_C148_0 0 /* 0x1c0000 */ +#define NAMCOS2_C148_1 1 /* 0x1c2000 */ +#define NAMCOS2_C148_2 2 /* 0x1c4000 */ +#define NAMCOS2_C148_CPUIRQ 3 /* 0x1c6000 */ +#define NAMCOS2_C148_EXIRQ 4 /* 0x1c8000 */ +#define NAMCOS2_C148_POSIRQ 5 /* 0x1ca000 */ +#define NAMCOS2_C148_SERIRQ 6 /* 0x1cc000 */ +#define NAMCOS2_C148_VBLANKIRQ 7 /* 0x1ce000 */ + +extern UINT16 namcos2_68k_master_C148[]; +extern UINT16 namcos2_68k_slave_C148[]; +extern UINT16 namcos2_68k_gpu_C148[]; + +WRITE16_HANDLER( namcos2_68k_master_C148_w ); +READ16_HANDLER( namcos2_68k_master_C148_r ); +INTERRUPT_GEN( namcos2_68k_master_vblank ); + +WRITE16_HANDLER( namcos2_68k_slave_C148_w ); +READ16_HANDLER( namcos2_68k_slave_C148_r ); +INTERRUPT_GEN( namcos2_68k_slave_vblank ); + +WRITE16_HANDLER( namcos2_68k_gpu_C148_w ); +READ16_HANDLER( namcos2_68k_gpu_C148_r ); +INTERRUPT_GEN( namcos2_68k_gpu_vblank ); + +/**************************************************************/ +/* MASTER CPU RAM MEMORY */ +/**************************************************************/ + +#define NAMCOS2_68K_MASTER_RAM_W MWA16_BANK3 +#define NAMCOS2_68K_MASTER_RAM_R MRA16_BANK3 + +/**************************************************************/ +/* SLAVE CPU RAM MEMORY */ +/**************************************************************/ + +#define NAMCOS2_68K_SLAVE_RAM_W MWA16_BANK4 +#define NAMCOS2_68K_SLAVE_RAM_R MRA16_BANK4 + +/**************************************************************/ +/* */ +/**************************************************************/ +#define BANKED_SOUND_ROM_R MRA8_BANK6 +#define CPU3_ROM1 6 /* Bank number */ + +/**************************************************************/ +/* Sound CPU support handlers - 6809 */ +/**************************************************************/ + +WRITE8_HANDLER( namcos2_sound_bankselect_w ); + +/**************************************************************/ +/* MCU Specific support handlers - HD63705 */ +/**************************************************************/ + +WRITE8_HANDLER( namcos2_mcu_analog_ctrl_w ); +READ8_HANDLER( namcos2_mcu_analog_ctrl_r ); + +WRITE8_HANDLER( namcos2_mcu_analog_port_w ); +READ8_HANDLER( namcos2_mcu_analog_port_r ); + +WRITE8_HANDLER( namcos2_mcu_port_d_w ); +READ8_HANDLER( namcos2_mcu_port_d_r ); + +READ8_HANDLER( namcos2_input_port_0_r ); +READ8_HANDLER( namcos2_input_port_10_r ); +READ8_HANDLER( namcos2_input_port_12_r ); + diff --git a/src/mame/includes/namcos21.h b/src/mame/includes/namcos21.h new file mode 100644 index 00000000000..001e3d1e13e --- /dev/null +++ b/src/mame/includes/namcos21.h @@ -0,0 +1,23 @@ +/** + * @file namcos21.h + */ + +#define NAMCOS21_POLY_FRAME_WIDTH 496 +#define NAMCOS21_POLY_FRAME_HEIGHT 480 + +/*----------- defined in video/namcos21.c -----------*/ + +extern void namcos21_ClearPolyFrameBuffer( void ); +extern void namcos21_DrawQuad( int sx[4], int sy[4], int zcode[4], int color ); + +extern READ16_HANDLER(winrun_gpu_color_r); +extern WRITE16_HANDLER(winrun_gpu_color_w); + +extern READ16_HANDLER(winrun_gpu_videoram_r); +extern WRITE16_HANDLER(winrun_gpu_videoram_w); + +extern READ16_HANDLER(winrun_gpu_register_r); +extern WRITE16_HANDLER(winrun_gpu_register_w); + +extern VIDEO_START( namcos21 ) ; +extern VIDEO_UPDATE( namcos21 ); diff --git a/src/mame/includes/namcos22.h b/src/mame/includes/namcos22.h new file mode 100644 index 00000000000..66987042828 --- /dev/null +++ b/src/mame/includes/namcos22.h @@ -0,0 +1,83 @@ +#define USE_NAMCOS22_SPEED_HACK + +#define REGION_CGRAM REGION_GFX1 +#define REGION_TEXTURE_TILE REGION_GFX2 +#define REGION_TEXTURE_TILEMAP REGION_GFX3 +#define REGION_POINTROM REGION_GFX4 +#define REGION_SPRITE REGION_GFX5 + +#define GFX_CHAR 0 +#define GFX_TEXTURE_TILE 1 +#define GFX_SPRITE 2 + +extern enum namcos22_gametype +{ + NAMCOS22_AIR_COMBAT22, + NAMCOS22_ALPINE_RACER, + NAMCOS22_CYBER_COMMANDO, + NAMCOS22_CYBER_CYCLES, + NAMCOS22_PROP_CYCLE, + NAMCOS22_RAVE_RACER, + NAMCOS22_RIDGE_RACER, + NAMCOS22_RIDGE_RACER2, + NAMCOS22_TIME_CRISIS, + NAMCOS22_VICTORY_LAP, + NAMCOS22_ACE_DRIVER, + NAMCOS22_ALPINE_RACER_2, + NAMCOS22_ALPINE_SURFER +} namcos22_gametype; + +#define NAMCOS22_NUM_ROWS 30 +#define NAMCOS22_NUM_COLS 40 + +#define NAMCOS22_PALETTE_SIZE 0x8000 + +/*----------- defined in drivers/namcos22.c -----------*/ + +extern const gfx_layout namcos22_cg_layout; + +/*----------- defined in video/namcos22.c -----------*/ + +extern UINT32 *namcos22_cgram; +extern UINT32 *namcos22_textram; +extern UINT32 *namcos22_polygonram; +extern UINT32 *namcos22_gamma; +extern UINT32 *namcos22_vics_data; +extern UINT32 *namcos22_vics_control; +extern UINT32 *namcos22_czattr; +extern UINT32 *namcos22_tilemapattr; + +WRITE16_HANDLER( namcos22_dspram16_bank_w ); +READ16_HANDLER( namcos22_dspram16_r ); +WRITE16_HANDLER( namcos22_dspram16_w ); + +READ32_HANDLER( namcos22_cgram_r ); +WRITE32_HANDLER( namcos22_cgram_w ); + +READ32_HANDLER( namcos22_czram_r ); +WRITE32_HANDLER( namcos22_czram_w ); + +WRITE32_HANDLER(namcos22_port800000_w); + +READ32_HANDLER( namcos22_paletteram_r ); +WRITE32_HANDLER( namcos22_paletteram_w ); + +READ32_HANDLER( namcos22_textram_r ); +WRITE32_HANDLER( namcos22_textram_w ); + +READ32_HANDLER( namcos22_gamma_r ); +WRITE32_HANDLER( namcos22_gamma_w ); + +READ32_HANDLER( namcos22_dspram_r ); +WRITE32_HANDLER( namcos22_dspram_w ); + + +VIDEO_START( namcos22 ); +VIDEO_UPDATE( namcos22 ); + +VIDEO_START( namcos22s ); +VIDEO_UPDATE( namcos22s ); + +void namcos22_draw_direct_poly( const UINT16 *pSource ); +extern UINT32 namcos22_point_rom_r( offs_t offs ); +extern void namcos22_enable_slave_simulation( void ); diff --git a/src/mame/includes/nb1413m3.h b/src/mame/includes/nb1413m3.h new file mode 100644 index 00000000000..977482fe4a4 --- /dev/null +++ b/src/mame/includes/nb1413m3.h @@ -0,0 +1,263 @@ +/****************************************************************************** + + Machine Hardware for Nichibutsu Mahjong series. + + Driver by Takahiro Nogi <nogi@kt.rim.or.jp> 1999/11/05 - + +******************************************************************************/ + +enum { + NB1413M3_NONE = 0, + // unknown + NB1413M3_JOKERMJN, + NB1413M3_JANGOU, + NB1413M3_JNGOLADY, + NB1413M3_JNGNIGHT, + NB1413M3_MJKING, + NB1413M3_NIGHTGAL, + NB1413M3_NGALSUMR, + NB1413M3_ROYALNGT, + NB1413M3_RYLQUEEN, + NB1413M3_SWEETGAL, + NB1413M3_SEXYGAL, + // NB1411M1 + NB1413M3_PASTELG, + NB1413M3_THREEDS, + // NB1413M3 + NB1413M3_CRYSTALG, + NB1413M3_CRYSTAL2, + NB1413M3_NIGHTLOV, + NB1413M3_CITYLOVE, + NB1413M3_MCITYLOV, + NB1413M3_SECOLOVE, + NB1413M3_HOUSEMNQ, + NB1413M3_HOUSEMN2, + NB1413M3_LIVEGAL, + NB1413M3_BIJOKKOY, + NB1413M3_IEMOTO, + NB1413M3_IEMOTOM, + NB1413M3_RYUUHA, + NB1413M3_SEIHA, + NB1413M3_SEIHAM, + NB1413M3_HYHOO, + NB1413M3_HYHOO2, + NB1413M3_SWINGGAL, + NB1413M3_BIJOKKOG, + NB1413M3_OJOUSAN, + NB1413M3_OJOUSANM, + NB1413M3_KORINAI, + NB1413M3_KORINAIM, + NB1413M3_MJCAMERA, + NB1413M3_MJCAMERB, + NB1413M3_MMCAMERA, + NB1413M3_TAIWANMJ, + NB1413M3_TAIWANMB, + NB1413M3_OTONANO, + NB1413M3_ABUNAI, + NB1413M3_MJSIKAKU, + NB1413M3_MMSIKAKU, + NB1413M3_MSJIKEN, + NB1413M3_HANAMOMO, + NB1413M3_TELMAHJN, + NB1413M3_GIONBANA, + NB1413M3_MGION, + NB1413M3_OMOTESND, + NB1413M3_SCANDAL, + NB1413M3_SCANDALM, + NB1413M3_MGMEN89, + NB1413M3_OHPYEPEE, + NB1413M3_TOUGENK, + NB1413M3_MJFOCUS, + NB1413M3_MJFOCUSM, + NB1413M3_GALKOKU, + NB1413M3_MJNANPAS, + NB1413M3_BANANADR, + NB1413M3_GALKAIKA, + NB1413M3_MCONTEST, + NB1413M3_UCHUUAI, + NB1413M3_TOKIMBSJ, + NB1413M3_TOKYOGAL, + NB1413M3_TRIPLEW1, + NB1413M3_NTOPSTAR, + NB1413M3_MLADYHTR, + NB1413M3_PSTADIUM, + NB1413M3_TRIPLEW2, + NB1413M3_CLUB90S, + NB1413M3_LOVEHOUS, + NB1413M3_CHINMOKU, + NB1413M3_VANILLA, + NB1413M3_MJLSTORY, + NB1413M3_QMHAYAKU, + NB1413M3_MJGOTTUB, + NB1413M3_MAIKO, + NB1413M3_MMAIKO, + NB1413M3_HANAOJI, + NB1413M3_KAGUYA, + NB1413M3_KAGUYA2, + NB1413M3_APPAREL, + NB1413M3_AV2MJ1BB, + NB1413M3_AV2MJ2RG, + NB1413M3_FINALBNY, + NB1413M3_HYOUBAN, + NB1413M3_ORANGEC, + NB1413M3_ORANGECI, + NB1413M3_VIPCLUB, + NB1413M3_IDHIMITU, + NB1413M3_KANATUEN, + NB1413M3_KYUHITO, + NB1413M3_PAIRSNB, + NB1413M3_PAIRSTEN +}; + +#define NB1413M3_VCR_NOP 0x00 +#define NB1413M3_VCR_POWER 0x01 +#define NB1413M3_VCR_STOP 0x02 +#define NB1413M3_VCR_REWIND 0x04 +#define NB1413M3_VCR_PLAY 0x08 +#define NB1413M3_VCR_FFORWARD 0x10 +#define NB1413M3_VCR_PAUSE 0x20 + +#define NBMJCTRL_PORT1 \ + PORT_START /* (3) PORT 1-1 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START1 ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_M ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_I ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_E ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_A ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT2 \ + PORT_START /* (4) PORT 1-2 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_N ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_J ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_F ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_B ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT3 \ + PORT_START /* (5) PORT 1-3 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_K ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_G ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_C ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT4 \ + PORT_START /* (6) PORT 1-4 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_L ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_H ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_D ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT5 \ + PORT_START /* (7) PORT 1-5 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Mahjong Small") PORT_CODE(KEYCODE_BACKSPACE) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P1 Mahjong Big") PORT_CODE(KEYCODE_ENTER) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT6 \ + PORT_START /* (6) PORT 2-1 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_START2 ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_KAN ) PORT_PLAYER(2)\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_M ) PORT_PLAYER(2)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_I ) PORT_PLAYER(2)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_E ) PORT_PLAYER(2)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_A ) PORT_PLAYER(2)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT7 \ + PORT_START /* (7) PORT 2-2 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MAHJONG_BET ) PORT_PLAYER(2)\ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_REACH ) PORT_PLAYER(2)\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_N ) PORT_PLAYER(2)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_J ) PORT_PLAYER(2)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_F ) PORT_PLAYER(2)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_B ) PORT_PLAYER(2)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT8 \ + PORT_START /* (8) PORT 2-3 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_MAHJONG_RON ) PORT_PLAYER(2)\ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_CHI ) PORT_PLAYER(2)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_K ) PORT_PLAYER(2)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_G ) PORT_PLAYER(2)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_C ) PORT_PLAYER(2)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT9 \ + PORT_START /* (9) PORT 2-4 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_PON ) PORT_PLAYER(2)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_L ) PORT_PLAYER(2)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_H ) PORT_PLAYER(2)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_D ) PORT_PLAYER(2)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define NBMJCTRL_PORT10 \ + PORT_START /* (10) PORT 2-5 */ \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Mahjong Small") \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("P2 Mahjong Big") \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_MAHJONG_FLIP_FLOP ) PORT_PLAYER(2)\ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_MAHJONG_DOUBLE_UP ) PORT_PLAYER(2)\ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_MAHJONG_SCORE ) PORT_PLAYER(2)\ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_MAHJONG_LAST_CHANCE ) PORT_PLAYER(2)\ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +/*----------- defined in machine/nb1413m3.c -----------*/ + +MACHINE_RESET( nb1413m3 ); +WRITE8_HANDLER( nb1413m3_nmi_clock_w ); +INTERRUPT_GEN( nb1413m3_interrupt ); +NVRAM_HANDLER( nb1413m3 ); +READ8_HANDLER( nb1413m3_sndrom_r ); +WRITE8_HANDLER( nb1413m3_sndrombank1_w ); +WRITE8_HANDLER( nb1413m3_sndrombank2_w ); +READ8_HANDLER( nb1413m3_gfxrom_r ); +WRITE8_HANDLER( nb1413m3_gfxrombank_w ); +WRITE8_HANDLER( nb1413m3_gfxradr_l_w ); +WRITE8_HANDLER( nb1413m3_gfxradr_h_w ); +WRITE8_HANDLER( nb1413m3_inputportsel_w ); +READ8_HANDLER( nb1413m3_inputport0_r ); +READ8_HANDLER( nb1413m3_inputport1_r ); +READ8_HANDLER( nb1413m3_inputport2_r ); +READ8_HANDLER( nb1413m3_inputport3_r ); +READ8_HANDLER( nb1413m3_dipsw1_r ); +READ8_HANDLER( nb1413m3_dipsw2_r ); +READ8_HANDLER( nb1413m3_dipsw3_l_r ); +READ8_HANDLER( nb1413m3_dipsw3_h_r ); +WRITE8_HANDLER( nb1413m3_outcoin_w ); +WRITE8_HANDLER( nb1413m3_vcrctrl_w ); + +extern int nb1413m3_type; +extern int nb1413m3_sndromregion; +extern int nb1413m3_sndrombank1; +extern int nb1413m3_sndrombank2; +extern int nb1413m3_busyctr; +extern int nb1413m3_busyflag; +extern int nb1413m3_inputport; +extern UINT8 *nb1413m3_nvram; +extern size_t nb1413m3_nvram_size; diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h new file mode 100644 index 00000000000..33935de1b6d --- /dev/null +++ b/src/mame/includes/neogeo.h @@ -0,0 +1,154 @@ +/************************************************************************* + + Neo-Geo hardware + +*************************************************************************/ + + +#define VERBOSE (0) + +#define NEOGEO_MASTER_CLOCK (24000000) +#define NEOGEO_MAIN_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 2) +#define NEOGEO_AUDIO_CPU_CLOCK (NEOGEO_MASTER_CLOCK / 6) +#define NEOGEO_YM2610_CLOCK (NEOGEO_MASTER_CLOCK / 3) +#define NEOGEO_PIXEL_CLOCK (NEOGEO_MASTER_CLOCK / 4) +#define NEOGEO_HTOTAL (0x180) +#define NEOGEO_HBEND (0x01e) /* this should really be 29.5 */ +#define NEOGEO_HBSTART (0x15e) /* this should really be 349.5 */ +#define NEOGEO_VTOTAL (0x108) +#define NEOGEO_VBEND (0x010) +#define NEOGEO_VBSTART (0x0f0) +#define NEOGEO_VSSTART (0x000) +#define NEOGEO_VBLANK_RELOAD_HPOS (0x11f) + +#define NEOGEO_REGION_MAIN_CPU_BIOS (REGION_USER1) +#define NEOGEO_REGION_MAIN_CPU_CARTRIDGE (REGION_CPU1) +#define NEOGEO_REGION_AUDIO_CPU_BIOS (REGION_USER2) +#define NEOGEO_REGION_AUDIO_CPU_CARTRIDGE (REGION_CPU2) +#define NEOGEO_REGION_AUDIO_CPU_ENCRYPTED (REGION_USER3) +#define NEOGEO_REGION_FIXED_LAYER_BIOS (REGION_GFX2) +#define NEOGEO_REGION_FIXED_LAYER_CARTRIDGE (REGION_GFX1) +#define NEOGEO_REGION_SPRITES (REGION_GFX3) +#define NEOGEO_REGION_AUDIO_DATA_1 (REGION_SOUND1) +#define NEOGEO_REGION_AUDIO_DATA_2 (REGION_SOUND2) +#define NEOGEO_REGION_ZOOM_Y_TABLE (REGION_GFX4) + +#define NEOGEO_BANK_AUDIO_CPU_CART_BANK (1) +/* do not use 2, 3 and 4 */ +#define NEOGEO_BANK_CARTRIDGE (5) +#define NEOGEO_BANK_BIOS (6) +#define NEOGEO_BANK_VECTORS (7) +#define NEOGEO_BANK_EXTRA_RAM (8) +#define NEOGEO_BANK_AUDIO_CPU_MAIN_BANK (9) + + +/*----------- defined in drivers/neogeo.c -----------*/ + +void neogeo_set_display_counter_msb(UINT16 data); +void neogeo_set_display_counter_lsb(UINT16 data); +void neogeo_acknowledge_interrupt(UINT16 data); +void neogeo_set_main_cpu_bank_address(UINT32 bank_address); +READ16_HANDLER( neogeo_unmapped_r ); + + +/*----------- defined in machine/neocrypt.c -----------*/ + +void kof99_neogeo_gfx_decrypt(int extra_xor); +void kof2000_neogeo_gfx_decrypt(int extra_xor); +void cmc50_neogeo_gfx_decrypt(int extra_xor); +void cmc42_neogeo_gfx_decrypt(int extra_xor); +void kof99_decrypt_68k(void); +void garou_decrypt_68k(void); +void garouo_decrypt_68k(void); +void mslug3_decrypt_68k(void); +void kof2000_decrypt_68k(void); +void kof98_decrypt_68k(void); +void kof2002_decrypt_68k(void); +void matrim_decrypt_68k(void); +void mslug5_decrypt_68k(void); +void svcchaos_px_decrypt(void); +void svcpcb_gfx_decrypt(void); +void svcpcb_s1data_decrypt(void); +void samsho5_decrypt_68k(void); +void kf2k3pcb_gfx_decrypt(void); +void kf2k3pcb_decrypt_68k(void); +void kf2k3pcb_decrypt_s1data(void); +void kof2003_decrypt_68k(void); +void kof2003biosdecode(void); +void samsh5p_decrypt_68k(void); + +void neo_pcm2_snk_1999(int value); +void neo_pcm2_swap(int value); + + +/*----------- defined in machine/neoprot.c -----------*/ + +void neogeo_reset_rng(void); +void fatfury2_install_protection(void); +void mslugx_install_protection(void); +void kof99_install_protection(void); +void garou_install_protection(void); +void garouo_install_protection(void); +void mslug3_install_protection(void); +void kof2000_install_protection(void); +void install_kof98_protection(void); +void install_pvc_protection(void); + + +/*----------- defined in machine/neoboot.c -----------*/ + +void kog_px_decrypt(void); +void neogeo_bootleg_cx_decrypt(void); +void install_kof10th_protection(void); +void decrypt_kof10th(void); +void decrypt_kf10thep(void); +void decrypt_kf2k5uni(void); +void neogeo_bootleg_sx_decrypt(int value); +void kf2k2mp_decrypt(void); +void kof2km2_px_decrypt(void); +void decrypt_cthd2003(void); +void patch_cthd2003(void); +void decrypt_ct2k3sp(void); +void decrypt_ct2k3sa(void); +void patch_ct2k3sa(void); +void decrypt_kof2k4se_68k(void); +void lans2004_decrypt_68k(void); +void lans2004_vx_decrypt(void); +void install_ms5plus_protection(void); +void svcboot_px_decrypt( void ); +void svcboot_cx_decrypt( void ); +void svcplus_px_decrypt( void ); +void svcplus_px_hack( void ); +void svcplusa_px_decrypt( void ); +void svcsplus_px_decrypt( void ); +void svcsplus_px_hack( void ); +void kof2003b_px_decrypt( void ); +void kof2003b_install_protection(void); +void kof2k3pl_px_decrypt( void ); +void kof2k3up_px_decrypt( void ); +void kof2k3up_install_protection(void); +void kf2k3pl_install_protection(void); +void samsh5bl_px_decrypt( void ); + + +/*----------- defined in video/neogeo.c -----------*/ + +extern int neogeo_fixed_layer_bank_type; + +VIDEO_START( neogeo ); +VIDEO_RESET( neogeo ); +VIDEO_UPDATE( neogeo ); + +READ16_HANDLER( neogeo_video_register_r ); +WRITE16_HANDLER( neogeo_video_register_w ); + +void neogeo_set_display_poisition_interrupt_control(UINT16 data); + +void neogeo_set_palette_bank(UINT8 data); +void neogeo_set_screen_dark(UINT8 data); +READ16_HANDLER( neogeo_paletteram_r ); +WRITE16_HANDLER( neogeo_paletteram_w ); + +void neogeo_set_fixed_layer_source(UINT8 data); + +UINT8 neogeo_get_auto_animation_counter(void); diff --git a/src/mame/includes/news.h b/src/mame/includes/news.h new file mode 100644 index 00000000000..05f2f7c35e4 --- /dev/null +++ b/src/mame/includes/news.h @@ -0,0 +1,10 @@ +/*----------- defined in video/news.c -----------*/ + +extern UINT8 *news_fgram; +extern UINT8 *news_bgram; + +WRITE8_HANDLER( news_fgram_w ); +WRITE8_HANDLER( news_bgram_w ); +WRITE8_HANDLER( news_bgpic_w ); +VIDEO_START( news ); +VIDEO_UPDATE( news ); diff --git a/src/mame/includes/nitedrvr.h b/src/mame/includes/nitedrvr.h new file mode 100644 index 00000000000..4495bd7e512 --- /dev/null +++ b/src/mame/includes/nitedrvr.h @@ -0,0 +1,39 @@ +/************************************************************************* + + Atari Night Driver hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define NITEDRVR_BANG_DATA NODE_01 +#define NITEDRVR_SKID1_EN NODE_02 +#define NITEDRVR_SKID2_EN NODE_03 +#define NITEDRVR_MOTOR_DATA NODE_04 +#define NITEDRVR_CRASH_EN NODE_05 +#define NITEDRVR_ATTRACT_EN NODE_06 + + +/*----------- defined in machine/nitedrvr.c -----------*/ + +READ8_HANDLER( nitedrvr_in0_r ); +READ8_HANDLER( nitedrvr_in1_r ); +READ8_HANDLER( nitedrvr_steering_reset_r ); +WRITE8_HANDLER( nitedrvr_steering_reset_w ); +WRITE8_HANDLER( nitedrvr_out0_w ); +WRITE8_HANDLER( nitedrvr_out1_w ); + +void nitedrvr_crash_toggle(running_machine *machine); + + +/*----------- defined in audio/nitedrvr.c -----------*/ + +DISCRETE_SOUND_EXTERN( nitedrvr ); + + +/*----------- defined in video/nitedrvr.c -----------*/ + +extern UINT8 *nitedrvr_hvc; +WRITE8_HANDLER( nitedrvr_hvc_w ); +VIDEO_UPDATE( nitedrvr ); diff --git a/src/mame/includes/offtwall.h b/src/mame/includes/offtwall.h new file mode 100644 index 00000000000..174cdb9b35e --- /dev/null +++ b/src/mame/includes/offtwall.h @@ -0,0 +1,10 @@ +/************************************************************************* + + Atari "Round" hardware + +*************************************************************************/ + +/*----------- defined in video/offtwall.c -----------*/ + +VIDEO_START( offtwall ); +VIDEO_UPDATE( offtwall ); diff --git a/src/mame/includes/orbit.h b/src/mame/includes/orbit.h new file mode 100644 index 00000000000..f95cdf468ca --- /dev/null +++ b/src/mame/includes/orbit.h @@ -0,0 +1,37 @@ +/************************************************************************* + + Atari Orbit hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define ORBIT_NOTE_FREQ NODE_01 +#define ORBIT_ANOTE1_AMP NODE_02 +#define ORBIT_ANOTE2_AMP NODE_03 +#define ORBIT_NOISE1_AMP NODE_04 +#define ORBIT_NOISE2_AMP NODE_05 +#define ORBIT_WARNING_EN NODE_06 +#define ORBIT_NOISE_EN NODE_07 + + +/*----------- defined in audio/orbit.c -----------*/ + +WRITE8_HANDLER( orbit_note_w ); +WRITE8_HANDLER( orbit_note_amp_w ); +WRITE8_HANDLER( orbit_noise_amp_w ); +WRITE8_HANDLER( orbit_noise_rst_w ); + +DISCRETE_SOUND_EXTERN( orbit ); + +/*----------- defined in video/orbit.c -----------*/ + +VIDEO_START( orbit ); +VIDEO_UPDATE( orbit ); + +extern UINT8* orbit_playfield_ram; +extern UINT8* orbit_sprite_ram; + +extern WRITE8_HANDLER( orbit_playfield_w ); +extern WRITE8_HANDLER( orbit_sprite_w ); diff --git a/src/mame/includes/pacman.h b/src/mame/includes/pacman.h new file mode 100644 index 00000000000..3152be645fb --- /dev/null +++ b/src/mame/includes/pacman.h @@ -0,0 +1,73 @@ +/************************************************************************* + + Namco PuckMan + +**************************************************************************/ + +/*----------- defined in video/pacman.c -----------*/ + +PALETTE_INIT( pacman ); +VIDEO_START( pacman ); +VIDEO_UPDATE( pacman ); + +WRITE8_HANDLER( pacman_videoram_w ); +WRITE8_HANDLER( pacman_colorram_w ); +WRITE8_HANDLER( pacman_flipscreen_w ); + + +VIDEO_START( pengo ); + +WRITE8_HANDLER( pengo_palettebank_w ); +WRITE8_HANDLER( pengo_colortablebank_w ); +WRITE8_HANDLER( pengo_gfxbank_w ); + + +WRITE8_HANDLER( vanvan_bgcolor_w ); + + +VIDEO_START( s2650games ); +VIDEO_UPDATE( s2650games ); + +extern UINT8 *s2650games_spriteram; +extern UINT8 *s2650games_tileram; + +WRITE8_HANDLER( s2650games_videoram_w ); +WRITE8_HANDLER( s2650games_colorram_w ); +WRITE8_HANDLER( s2650games_scroll_w ); +WRITE8_HANDLER( s2650games_tilesbank_w ); + + +VIDEO_START( jrpacman ); + +WRITE8_HANDLER( jrpacman_videoram_w ); +WRITE8_HANDLER( jrpacman_charbank_w ); +WRITE8_HANDLER( jrpacman_spritebank_w ); +WRITE8_HANDLER( jrpacman_scroll_w ); +WRITE8_HANDLER( jrpacman_bgpriority_w ); + + +/*----------- defined in machine/pacplus.c -----------*/ + +void pacplus_decode(void); + + +/*----------- defined in machine/jumpshot.c -----------*/ + +void jumpshot_decode(void); + + +/*----------- defined in machine/theglobp.c -----------*/ + +MACHINE_RESET( theglobp ); +READ8_HANDLER( theglobp_decrypt_rom ); + + +/*----------- defined in machine/mspacman.c -----------*/ + +MACHINE_RESET( mspacman ); +WRITE8_HANDLER( mspacman_activate_rom ); + +/*----------- defined in machine/acitya.c -------------*/ + +MACHINE_RESET( acitya ); +READ8_HANDLER( acitya_decrypt_rom ); diff --git a/src/mame/includes/paradise.h b/src/mame/includes/paradise.h new file mode 100644 index 00000000000..6fc229418fc --- /dev/null +++ b/src/mame/includes/paradise.h @@ -0,0 +1,21 @@ +/*----------- defined in video/paradise.c -----------*/ + +extern UINT8 *paradise_vram_0,*paradise_vram_1,*paradise_vram_2; +extern int paradise_sprite_inc; + +WRITE8_HANDLER( paradise_vram_0_w ); +WRITE8_HANDLER( paradise_vram_1_w ); +WRITE8_HANDLER( paradise_vram_2_w ); + +WRITE8_HANDLER( paradise_flipscreen_w ); +WRITE8_HANDLER( tgtball_flipscreen_w ); +WRITE8_HANDLER( paradise_palette_w ); +WRITE8_HANDLER( paradise_pixmap_w ); + +WRITE8_HANDLER( paradise_priority_w ); +WRITE8_HANDLER( paradise_palbank_w ); + +VIDEO_START( paradise ); +VIDEO_UPDATE( paradise ); +VIDEO_UPDATE( torus ); +VIDEO_UPDATE( madball ); diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h new file mode 100644 index 00000000000..42d1bc08905 --- /dev/null +++ b/src/mame/includes/phoenix.h @@ -0,0 +1,55 @@ +#include "sound/discrete.h" +#include "sound/custom.h" + + +/*----------- defined in audio/phoenix.c -----------*/ + +DISCRETE_SOUND_EXTERN( phoenix ); + +WRITE8_HANDLER( phoenix_sound_control_a_w ); +WRITE8_HANDLER( phoenix_sound_control_b_w ); + +void *phoenix_sh_start(int clock, const struct CustomSound_interface *config); + +/*----------- defined in audio/pleiads.c -----------*/ + +WRITE8_HANDLER( pleiads_sound_control_a_w ); +WRITE8_HANDLER( pleiads_sound_control_b_w ); +WRITE8_HANDLER( pleiads_sound_control_c_w ); + +void *pleiads_sh_start(int clock, const struct CustomSound_interface *config); +void *naughtyb_sh_start(int clock, const struct CustomSound_interface *config); +void *popflame_sh_start(int clock, const struct CustomSound_interface *config); + +/*----------- defined in video/naughtyb.c -----------*/ + +extern UINT8 *naughtyb_videoram2; +extern UINT8 *naughtyb_scrollreg; +extern int naughtyb_cocktail; + +WRITE8_HANDLER( naughtyb_videoram2_w ); +WRITE8_HANDLER( naughtyb_videoreg_w ); +WRITE8_HANDLER( popflame_videoreg_w ); + +VIDEO_START( naughtyb ); +PALETTE_INIT( naughtyb ); +VIDEO_UPDATE( naughtyb ); + + +/*----------- defined in video/phoenix.c -----------*/ + +PALETTE_INIT( phoenix ); +PALETTE_INIT( pleiads ); +VIDEO_START( phoenix ); +VIDEO_UPDATE( phoenix ); + +WRITE8_HANDLER( phoenix_videoram_w ); +WRITE8_HANDLER( phoenix_videoreg_w ); +WRITE8_HANDLER( pleiads_videoreg_w ); +WRITE8_HANDLER( phoenix_scroll_w ); + +READ8_HANDLER( phoenix_input_port_0_r ); +READ8_HANDLER( pleiads_input_port_0_r ); +READ8_HANDLER( survival_input_port_0_r ); +READ8_HANDLER( survival_protection_r ); + diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h new file mode 100644 index 00000000000..e2edb03d130 --- /dev/null +++ b/src/mame/includes/polepos.h @@ -0,0 +1,12 @@ +/************************************************************************* + + Pole Position hardware + +*************************************************************************/ + +#include "sound/discrete.h" + + +/*----------- defined in audio/polepos.c -----------*/ + +DISCRETE_SOUND_EXTERN( polepos ); diff --git a/src/mame/includes/policetr.h b/src/mame/includes/policetr.h new file mode 100644 index 00000000000..a42d501a215 --- /dev/null +++ b/src/mame/includes/policetr.h @@ -0,0 +1,21 @@ +/************************************************************************* + + P&P Marketing Police Trainer hardware + +**************************************************************************/ + +/*----------- defined in drivers/policetr.c -----------*/ + +extern UINT32 * policetr_rambase; + + +/*----------- defined in video/policetr.c -----------*/ + +WRITE32_HANDLER( policetr_video_w ); +READ32_HANDLER( policetr_video_r ); + +WRITE32_HANDLER( policetr_palette_offset_w ); +WRITE32_HANDLER( policetr_palette_data_w ); + +VIDEO_START( policetr ); +VIDEO_UPDATE( policetr ); diff --git a/src/mame/includes/poolshrk.h b/src/mame/includes/poolshrk.h new file mode 100644 index 00000000000..b0cc7b65ead --- /dev/null +++ b/src/mame/includes/poolshrk.h @@ -0,0 +1,28 @@ +/************************************************************************* + + Atari Pool Shark hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ + +/*----------- defined in audio/poolshrk.c -----------*/ + +WRITE8_HANDLER( poolshrk_scratch_sound_w ); +WRITE8_HANDLER( poolshrk_score_sound_w ); +WRITE8_HANDLER( poolshrk_click_sound_w ); +WRITE8_HANDLER( poolshrk_bump_sound_w ); + +DISCRETE_SOUND_EXTERN( poolshrk ); + + +/*----------- defined in video/poolshrk.c -----------*/ + +VIDEO_START( poolshrk ); +VIDEO_UPDATE( poolshrk ); + +extern UINT8* poolshrk_playfield_ram; +extern UINT8* poolshrk_hpos_ram; +extern UINT8* poolshrk_vpos_ram; diff --git a/src/mame/includes/psikyosh.h b/src/mame/includes/psikyosh.h new file mode 100644 index 00000000000..074c40a055a --- /dev/null +++ b/src/mame/includes/psikyosh.h @@ -0,0 +1,29 @@ +/*----------- defined in drivers/psikyosh.c -----------*/ + +#define MASTER_CLOCK 57272700 // main oscillator frequency + +extern UINT32 *psikyosh_bgram, *psikyosh_zoomram, *psikyosh_vidregs; + +/*----------- defined in video/psikyosh.c -----------*/ + +VIDEO_START( psikyosh ); +VIDEO_UPDATE( psikyosh ); +VIDEO_EOF( psikyosh ); + +enum { EEPROM_0=0, EEPROM_DEFAULT=1, EEPROM_DARAKU, EEPROM_S1945III, EEPROM_DRAGNBLZ, EEPROM_GNBARICH, EEPROM_USER1, EEPROM_MJGTASTE }; + +/* Psikyo PS6406B */ +#define FLIPSCREEN (((psikyosh_vidregs[3] & 0x0000c000) == 0x0000c000) ? 1:0) +#define DISPLAY_DISABLE (((psikyosh_vidregs[2] & 0x0000000f) == 0x00000006) ? 1:0) +#define BG_LARGE(n) (((psikyosh_vidregs[7] << (4*n)) & 0x00001000 ) ? 1:0) +#define BG_DEPTH_8BPP(n) (((psikyosh_vidregs[7] << (4*n)) & 0x00004000 ) ? 1:0) +#define BG_LAYER_ENABLE(n) (((psikyosh_vidregs[7] << (4*n)) & 0x00008000 ) ? 1:0) + +#define BG_TYPE(n) (((psikyosh_vidregs[6] << (8*n)) & 0x7f000000 ) >> 24) +#define BG_NORMAL 0x0a +#define BG_NORMAL_ALT 0x0b /* Same as above but with different location for scroll/priority reg */ + +/* All below have 0x80 bit set, probably row/linescroll enable/toggle */ +#define BG_SCROLL_0C 0x0c /* 224 v/h scroll values in bank 0x0c; Used in daraku, for text */ +#define BG_SCROLL_0D 0x0d /* 224 v/h scroll values in bank 0x0d; Used in daraku, for alternate characters of text */ +#define BG_SCROLL_ZOOM 0x0e /* 224 v/h scroll values in bank 0x0e-0x1f; Used in s1945ii, s1945iii */ diff --git a/src/mame/includes/psx.h b/src/mame/includes/psx.h new file mode 100644 index 00000000000..3200b331245 --- /dev/null +++ b/src/mame/includes/psx.h @@ -0,0 +1,60 @@ +/*************************************************************************** + + includes/psx.h + +***************************************************************************/ + +#if !defined( PSX_H ) + +/*----------- defined in video/psx.c -----------*/ + +PALETTE_INIT( psx ); +VIDEO_START( psx_type1 ); +VIDEO_START( psx_type2 ); +VIDEO_UPDATE( psx ); +INTERRUPT_GEN( psx_vblank ); +extern void psx_gpu_reset( void ); +extern void psx_gpu_read( UINT32 *p_ram, INT32 n_size ); +extern void psx_gpu_write( UINT32 *p_ram, INT32 n_size ); +READ32_HANDLER( psx_gpu_r ); +WRITE32_HANDLER( psx_gpu_w ); +extern void psx_lightgun_set( int, int ); + +/*----------- defined in machine/psx.c -----------*/ + +extern UINT32 *g_p_n_psxram; +extern size_t g_n_psxramsize; +typedef void ( *psx_dma_read_handler )( UINT32, INT32 ); +typedef void ( *psx_dma_write_handler )( UINT32, INT32 ); +WRITE32_HANDLER( psx_com_delay_w ); +READ32_HANDLER( psx_com_delay_r ); +WRITE32_HANDLER( psx_irq_w ); +READ32_HANDLER( psx_irq_r ); +extern void psx_irq_set( UINT32 ); +extern void psx_dma_install_read_handler( int, psx_dma_read_handler ); +extern void psx_dma_install_write_handler( int, psx_dma_read_handler ); +WRITE32_HANDLER( psx_dma_w ); +READ32_HANDLER( psx_dma_r ); +WRITE32_HANDLER( psx_counter_w ); +READ32_HANDLER( psx_counter_r ); +WRITE32_HANDLER( psx_sio_w ); +READ32_HANDLER( psx_sio_r ); +typedef void ( *psx_sio_handler )( int ); +extern void psx_sio_install_handler( int, psx_sio_handler ); +extern void psx_sio_input( int, int, int ); + +#define PSX_SIO_OUT_DATA ( 1 ) /* COMMAND */ +#define PSX_SIO_OUT_DTR ( 2 ) /* ATT */ +#define PSX_SIO_OUT_RTS ( 4 ) +#define PSX_SIO_OUT_CLOCK ( 8 ) /* CLOCK */ +#define PSX_SIO_IN_DATA ( 1 ) /* DATA */ +#define PSX_SIO_IN_DSR ( 2 ) /* ACK */ +#define PSX_SIO_IN_CTS ( 4 ) + +WRITE32_HANDLER( psx_mdec_w ); +READ32_HANDLER( psx_mdec_r ); +extern void psx_machine_init( void ); +extern void psx_driver_init( void ); + +#define PSX_H ( 1 ) +#endif diff --git a/src/mame/includes/qix.h b/src/mame/includes/qix.h new file mode 100644 index 00000000000..625b85b3687 --- /dev/null +++ b/src/mame/includes/qix.h @@ -0,0 +1,68 @@ +/*************************************************************************** + + Taito Qix hardware + + driver by John Butler, Ed Mueller, Aaron Giles + +***************************************************************************/ + +#include "sound/discrete.h" + +#define QIX_CHARACTER_CLOCK (20000000/2/16) + + +/*----------- defined in machine/qix.c -----------*/ + +extern UINT8 *qix_68705_port_out; +extern UINT8 *qix_68705_ddr; + +MACHINE_START( qix ); +MACHINE_START( qixmcu ); +MACHINE_START( slither ); +MACHINE_RESET( qix ); + +WRITE8_HANDLER( zoo_bankswitch_w ); + +READ8_HANDLER( qix_data_firq_r ); +READ8_HANDLER( qix_data_firq_ack_r ); +WRITE8_HANDLER( qix_data_firq_w ); +WRITE8_HANDLER( qix_data_firq_ack_w ); + +READ8_HANDLER( qix_video_firq_r ); +READ8_HANDLER( qix_video_firq_ack_r ); +WRITE8_HANDLER( qix_video_firq_w ); +WRITE8_HANDLER( qix_video_firq_ack_w ); + +READ8_HANDLER( qix_68705_portA_r ); +READ8_HANDLER( qix_68705_portB_r ); +READ8_HANDLER( qix_68705_portC_r ); +WRITE8_HANDLER( qix_68705_portA_w ); +WRITE8_HANDLER( qix_68705_portB_w ); +WRITE8_HANDLER( qix_68705_portC_w ); + +WRITE8_HANDLER( qix_pia_0_w ); + +INTERRUPT_GEN( qix_vblank_start ); + +/*----------- defined in video/qix.c -----------*/ + +extern UINT8 *qix_videoaddress; +extern UINT8 qix_cocktail_flip; + +VIDEO_START( qix ); + +READ8_HANDLER( qix_scanline_r ); +READ8_HANDLER( qix_videoram_r ); +WRITE8_HANDLER( qix_videoram_w ); +READ8_HANDLER( qix_addresslatch_r ); +WRITE8_HANDLER( qix_addresslatch_w ); +WRITE8_HANDLER( slither_vram_mask_w ); +WRITE8_HANDLER( qix_paletteram_w ); +WRITE8_HANDLER( qix_palettebank_w ); + +/*----------- defined in audio/qix.c -----------*/ + +DISCRETE_SOUND_EXTERN( qix ); + +WRITE8_HANDLER( qix_dac_w ); +WRITE8_HANDLER( qix_vol_w ); diff --git a/src/mame/includes/rampart.h b/src/mame/includes/rampart.h new file mode 100644 index 00000000000..1dde1ae9b5d --- /dev/null +++ b/src/mame/includes/rampart.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Atari Rampart hardware + +*************************************************************************/ + + +/*----------- defined in video/rampart.c -----------*/ + +WRITE16_HANDLER( rampart_bitmap_w ); + +VIDEO_START( rampart ); +VIDEO_UPDATE( rampart ); + +void rampart_bitmap_init(running_machine *machine, int _xdim, int _ydim); +void rampart_bitmap_render(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect); + +extern UINT16 *rampart_bitmap; diff --git a/src/mame/includes/realbrk.h b/src/mame/includes/realbrk.h new file mode 100644 index 00000000000..6e0ade32b9e --- /dev/null +++ b/src/mame/includes/realbrk.h @@ -0,0 +1,21 @@ +/*----------- defined in video/realbrk.c -----------*/ + +#ifndef REALBRK_H +#define REALBRK_H + +VIDEO_START(realbrk); +VIDEO_UPDATE(realbrk); +VIDEO_UPDATE(dai2kaku); + +WRITE16_HANDLER( realbrk_vram_0_w ); +WRITE16_HANDLER( realbrk_vram_1_w ); +WRITE16_HANDLER( realbrk_vram_2_w ); +WRITE16_HANDLER( realbrk_vregs_w ); +WRITE16_HANDLER( realbrk_flipscreen_w ); +WRITE16_HANDLER( dai2kaku_flipscreen_w ); + +//extern UINT16 *realbrk_vram_0, *realbrk_vram_1, *realbrk_vram_2, *realbrk_vregs; +extern UINT16 *realbrk_vram_0, *realbrk_vram_1, *realbrk_vram_2, *realbrk_vregs, *realbrk_vram_0ras, *realbrk_vram_1ras; + +#endif + diff --git a/src/mame/includes/relief.h b/src/mame/includes/relief.h new file mode 100644 index 00000000000..f54df774776 --- /dev/null +++ b/src/mame/includes/relief.h @@ -0,0 +1,10 @@ +/************************************************************************* + + Atari "Round" hardware + +*************************************************************************/ + +/*----------- defined in video/relief.c -----------*/ + +VIDEO_START( relief ); +VIDEO_UPDATE( relief ); diff --git a/src/mame/includes/rescap.h b/src/mame/includes/rescap.h new file mode 100644 index 00000000000..c069761e345 --- /dev/null +++ b/src/mame/includes/rescap.h @@ -0,0 +1,11 @@ +#ifndef RC_MACROS_H +#define RC_MACROS_H + +/* Little helpers for magnitude conversions */ +#define RES_K(res) ((double)(res)*1e3) +#define RES_M(res) ((double)(res)*1e6) +#define CAP_U(cap) ((double)(cap)*1e-6) +#define CAP_N(cap) ((double)(cap)*1e-9) +#define CAP_P(cap) ((double)(cap)*1e-12) + +#endif diff --git a/src/mame/includes/sbrkout.h b/src/mame/includes/sbrkout.h new file mode 100644 index 00000000000..a81fd69968f --- /dev/null +++ b/src/mame/includes/sbrkout.h @@ -0,0 +1,26 @@ +/************************************************************************* + + Atari Super Breakout hardware + +*************************************************************************/ + +/*----------- defined in machine/sbrkout.c -----------*/ + +WRITE8_HANDLER( sbrkout_serve_led_w ); +WRITE8_HANDLER( sbrkout_start_1_led_w ); +WRITE8_HANDLER( sbrkout_start_2_led_w ); +READ8_HANDLER( sbrkout_read_DIPs_r ); +INTERRUPT_GEN( sbrkout_interrupt ); +READ8_HANDLER( sbrkout_select1_r ); +READ8_HANDLER( sbrkout_select2_r ); + + +/*----------- defined in video/sbrkout.c -----------*/ + +extern UINT8 *sbrkout_horiz_ram; +extern UINT8 *sbrkout_vert_ram; + +WRITE8_HANDLER( sbrkout_videoram_w ); + +VIDEO_START( sbrkout ); +VIDEO_UPDATE( sbrkout ); diff --git a/src/mame/includes/segag80r.h b/src/mame/includes/segag80r.h new file mode 100644 index 00000000000..4e5d607a227 --- /dev/null +++ b/src/mame/includes/segag80r.h @@ -0,0 +1,68 @@ +/************************************************************************* + + Sega G-80 raster hardware + +*************************************************************************/ + +/*----------- defined in machine/segag80.c -----------*/ + +extern UINT8 (*sega_decrypt)(offs_t, UINT8); + +void sega_security(int chip); + + +/*----------- defined in audio/segag80r.c -----------*/ + +MACHINE_DRIVER_EXTERN( astrob_sound_board ); +MACHINE_DRIVER_EXTERN( 005_sound_board ); +MACHINE_DRIVER_EXTERN( spaceod_sound_board ); +MACHINE_DRIVER_EXTERN( monsterb_sound_board ); + +WRITE8_HANDLER( astrob_sound_w ); + +WRITE8_HANDLER( sega005_sound_a_w ); +WRITE8_HANDLER( sega005_sound_b_w ); + +WRITE8_HANDLER( spaceod_sound_w ); + + READ8_HANDLER( monsterb_audio_8255_r ); + + +/*----------- defined in video/segag80r.c -----------*/ + +#define G80_BACKGROUND_NONE 0 +#define G80_BACKGROUND_SPACEOD 1 +#define G80_BACKGROUND_MONSTERB 2 +#define G80_BACKGROUND_PIGNEWT 3 +#define G80_BACKGROUND_SINDBADM 4 + +extern UINT8 segag80r_background_pcb; + +INTERRUPT_GEN( segag80r_vblank_start ); + +WRITE8_HANDLER( segag80r_videoram_w ); + +READ8_HANDLER( segag80r_video_port_r ); +WRITE8_HANDLER( segag80r_video_port_w ); + +VIDEO_START( segag80r ); +VIDEO_UPDATE( segag80r ); + + +READ8_HANDLER( spaceod_back_port_r ); +WRITE8_HANDLER( spaceod_back_port_w ); + + +WRITE8_HANDLER( monsterb_videoram_w ); +WRITE8_HANDLER( monsterb_back_port_w ); + + +WRITE8_HANDLER( pignewt_videoram_w ); +WRITE8_HANDLER( pignewt_back_port_w ); +WRITE8_HANDLER( pignewt_back_color_w ); + + +INTERRUPT_GEN( sindbadm_vblank_start ); + +WRITE8_HANDLER( sindbadm_videoram_w ); +WRITE8_HANDLER( sindbadm_back_port_w ); diff --git a/src/mame/includes/segag80v.h b/src/mame/includes/segag80v.h new file mode 100644 index 00000000000..0984c0bb5da --- /dev/null +++ b/src/mame/includes/segag80v.h @@ -0,0 +1,23 @@ +/************************************************************************* + + Sega vector hardware + +*************************************************************************/ + +#include "sound/custom.h" + + +/*----------- defined in audio/segag80v.c -----------*/ + +WRITE8_HANDLER( elim1_sh_w ); +WRITE8_HANDLER( elim2_sh_w ); +WRITE8_HANDLER( spacfury1_sh_w ); +WRITE8_HANDLER( spacfury2_sh_w ); +WRITE8_HANDLER( zektor1_sh_w ); +WRITE8_HANDLER( zektor2_sh_w ); + + +/*----------- defined in video/segag80v.c -----------*/ + +VIDEO_START( sega ); +VIDEO_UPDATE( sega ); diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h new file mode 100644 index 00000000000..71ac77c96d8 --- /dev/null +++ b/src/mame/includes/segas32.h @@ -0,0 +1,81 @@ +/*************************************************************************** + + Sega System 32/Multi 32 hardware + +***************************************************************************/ + + +/*----------- defined in drivers/segas32.c -----------*/ + +extern UINT8 *ga2_dpram; +extern UINT16 *system32_workram; +extern UINT16 *system32_protram; + + +/*----------- defined in machine/segas32.c -----------*/ + +READ16_HANDLER( arabfgt_protection_r ); +READ16_HANDLER( arf_wakeup_protection_r ); +WRITE16_HANDLER( arabfgt_protection_w ); + +READ16_HANDLER( brival_protection_r ); +WRITE16_HANDLER( brival_protection_w ); + +READ16_HANDLER( darkedge_protection_r ); +WRITE16_HANDLER( darkedge_protection_w ); +void darkedge_fd1149_vblank(void); +WRITE16_HANDLER( jleague_protection_w ); + +READ16_HANDLER( dbzvrvs_protection_r ); +WRITE16_HANDLER( dbzvrvs_protection_w ); + +void decrypt_ga2_protrom(void); +READ16_HANDLER( ga2_dpram_r ); +WRITE16_HANDLER( ga2_dpram_w ); + +WRITE16_HANDLER(sonic_level_load_protection); + +READ16_HANDLER( arescue_dsp_r ); +WRITE16_HANDLER( arescue_dsp_w ); + + +/*----------- defined in video/segas32.c -----------*/ + +extern UINT16 *system32_videoram; +extern UINT16 *system32_spriteram; +extern UINT16 *system32_paletteram[2]; +extern UINT16 system32_displayenable[2]; +extern UINT16 system32_tilebank_external; + +VIDEO_START(system32); +VIDEO_START(multi32); +VIDEO_UPDATE(system32); +VIDEO_UPDATE(multi32); +void system32_set_vblank(int state); + +READ16_HANDLER( system32_videoram_r ); +WRITE16_HANDLER( system32_videoram_w ); +READ32_HANDLER( multi32_videoram_r ); +WRITE32_HANDLER( multi32_videoram_w ); + +READ16_HANDLER( system32_spriteram_r ); +WRITE16_HANDLER( system32_spriteram_w ); +READ32_HANDLER( multi32_spriteram_r ); +WRITE32_HANDLER( multi32_spriteram_w ); + +READ16_HANDLER( system32_paletteram_r ); +WRITE16_HANDLER( system32_paletteram_w ); +READ32_HANDLER( multi32_paletteram_0_r ); +WRITE32_HANDLER( multi32_paletteram_0_w ); +READ32_HANDLER( multi32_paletteram_1_r ); +WRITE32_HANDLER( multi32_paletteram_1_w ); + +READ16_HANDLER( system32_sprite_control_r ); +WRITE16_HANDLER( system32_sprite_control_w ); +READ32_HANDLER( multi32_sprite_control_r ); +WRITE32_HANDLER( multi32_sprite_control_w ); + +WRITE16_HANDLER( system32_mixer_w ); +READ16_HANDLER( system32_mixer_r ); +WRITE32_HANDLER( multi32_mixer_0_w ); +WRITE32_HANDLER( multi32_mixer_1_w ); diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h new file mode 100644 index 00000000000..d74db87b32a --- /dev/null +++ b/src/mame/includes/seta.h @@ -0,0 +1,81 @@ +/*************************************************************************** + + -= Seta Hardware =- + +***************************************************************************/ + +#define __uPD71054_TIMER 1 + +/*----------- defined in video/seta.c -----------*/ + +extern UINT16 *seta_vram_0, *seta_vctrl_0; +extern UINT16 *seta_vram_2, *seta_vctrl_2; +extern UINT16 *seta_vregs; + +extern UINT16 *seta_workram; // Needed for zombraid Crosshair hack + +extern int seta_tiles_offset; + +void seta_coin_lockout_w(int data); + +WRITE16_HANDLER( twineagl_tilebank_w ); + +WRITE16_HANDLER( seta_vram_0_w ); +WRITE16_HANDLER( seta_vram_2_w ); +WRITE16_HANDLER( seta_vregs_w ); + +PALETTE_INIT( blandia ); +PALETTE_INIT( gundhara ); +PALETTE_INIT( jjsquawk ); +PALETTE_INIT( usclssic ); +PALETTE_INIT( zingzip ); + +VIDEO_START( seta_no_layers); +VIDEO_START( twineagl_1_layer); +VIDEO_START( seta_1_layer); +VIDEO_START( seta_2_layers); +VIDEO_START( oisipuzl_2_layers ); + +VIDEO_UPDATE( seta ); +VIDEO_UPDATE( seta_no_layers ); + + +/*----------- defined in video/seta2.c -----------*/ + +extern UINT16 *seta2_vregs; + +WRITE16_HANDLER( seta2_vregs_w ); + +VIDEO_START( seta2 ); +VIDEO_START( seta2_offset ); +VIDEO_UPDATE( seta2 ); +VIDEO_EOF( seta2 ); + + +/*----------- defined in video/ssv.c -----------*/ + +extern UINT16 *ssv_scroll; + +extern int ssv_special; + +extern int ssv_tile_code[16]; + +extern int ssv_sprites_offsx, ssv_sprites_offsy; +extern int ssv_tilemap_offsx, ssv_tilemap_offsy; + +extern UINT16 *eaglshot_gfxram, *gdfs_tmapram, *gdfs_tmapscroll; +extern char eaglshot_dirty, *eaglshot_dirty_tile; + +READ16_HANDLER( ssv_vblank_r ); +WRITE16_HANDLER( ssv_scroll_w ); +WRITE16_HANDLER( paletteram16_xrgb_swap_word_w ); +WRITE16_HANDLER( gdfs_tmapram_w ); +void ssv_enable_video(int enable); + +VIDEO_START( ssv ); +VIDEO_START( eaglshot ); +VIDEO_START( gdfs ); + +VIDEO_UPDATE( ssv ); +VIDEO_UPDATE( eaglshot ); +VIDEO_UPDATE( gdfs ); diff --git a/src/mame/includes/shuuz.h b/src/mame/includes/shuuz.h new file mode 100644 index 00000000000..bd23751d17b --- /dev/null +++ b/src/mame/includes/shuuz.h @@ -0,0 +1,10 @@ +/************************************************************************* + + Atari Shuuz hardware + +*************************************************************************/ + +/*----------- defined in video/shuuz.c -----------*/ + +VIDEO_START( shuuz ); +VIDEO_UPDATE( shuuz ); diff --git a/src/mame/includes/skullxbo.h b/src/mame/includes/skullxbo.h new file mode 100644 index 00000000000..c467de043e3 --- /dev/null +++ b/src/mame/includes/skullxbo.h @@ -0,0 +1,17 @@ +/************************************************************************* + + Atari Skull & Crossbones hardware + +*************************************************************************/ + +/*----------- defined in video/skullxbo.c -----------*/ + +WRITE16_HANDLER( skullxbo_playfieldlatch_w ); +WRITE16_HANDLER( skullxbo_xscroll_w ); +WRITE16_HANDLER( skullxbo_yscroll_w ); +WRITE16_HANDLER( skullxbo_mobmsb_w ); + +VIDEO_START( skullxbo ); +VIDEO_UPDATE( skullxbo ); + +void skullxbo_scanline_update(int param); diff --git a/src/mame/includes/skydiver.h b/src/mame/includes/skydiver.h new file mode 100644 index 00000000000..9213509c1e3 --- /dev/null +++ b/src/mame/includes/skydiver.h @@ -0,0 +1,45 @@ +/************************************************************************* + + Atari Skydiver hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define SKYDIVER_RANGE_DATA NODE_01 +#define SKYDIVER_NOTE_DATA NODE_02 +#define SKYDIVER_RANGE3_EN NODE_03 +#define SKYDIVER_NOISE_DATA NODE_04 +#define SKYDIVER_NOISE_RST NODE_05 +#define SKYDIVER_WHISTLE1_EN NODE_06 +#define SKYDIVER_WHISTLE2_EN NODE_07 +#define SKYDIVER_OCT1_EN NODE_08 +#define SKYDIVER_OCT2_EN NODE_09 +#define SKYDIVER_SOUND_EN NODE_10 + + +/*----------- defined in audio/skydiver.c -----------*/ + +DISCRETE_SOUND_EXTERN( skydiver ); + + +/*----------- defined in video/skydiver.c -----------*/ + +extern UINT8 *skydiver_videoram; + +MACHINE_RESET( skydiver ); +WRITE8_HANDLER( skydiver_videoram_w ); +WRITE8_HANDLER( skydiver_wram_w ); /* the signal is WRAM, presumably Work RAM */ +READ8_HANDLER( skydiver_wram_r ); +WRITE8_HANDLER( skydiver_start_lamp_1_w ); +WRITE8_HANDLER( skydiver_start_lamp_2_w ); +WRITE8_HANDLER( skydiver_lamp_s_w ); +WRITE8_HANDLER( skydiver_lamp_k_w ); +WRITE8_HANDLER( skydiver_lamp_y_w ); +WRITE8_HANDLER( skydiver_lamp_d_w ); +WRITE8_HANDLER( skydiver_2000_201F_w ); +WRITE8_HANDLER( skydiver_width_w ); +WRITE8_HANDLER( skydiver_coin_lockout_w ); +VIDEO_START( skydiver ); +VIDEO_UPDATE( skydiver ); diff --git a/src/mame/includes/slapstic.h b/src/mame/includes/slapstic.h new file mode 100644 index 00000000000..558c8622248 --- /dev/null +++ b/src/mame/includes/slapstic.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Atari Slapstic decoding helper + +************************************************************************** + + For more information on the slapstic, see slapstic.html, or go to + http://www.aarongiles.com/slapstic.html + +*************************************************************************/ + +/*----------- defined in machine/slapstic.c -----------*/ + +void slapstic_init(int chip); +void slapstic_reset(void); + +int slapstic_bank(void); +int slapstic_tweak(offs_t offset); diff --git a/src/mame/includes/snes.h b/src/mame/includes/snes.h new file mode 100644 index 00000000000..21ed722de93 --- /dev/null +++ b/src/mame/includes/snes.h @@ -0,0 +1,540 @@ +#ifndef _SNES_H_ +#define _SNES_H_ + +#include "sound/custom.h" + +/* + SNES timing theory: + + the master clock drives the CPU and PPU + 4 MC ticks = 1 PPU dot + 6 MC ticks = 1 65816 cycle for 3.58 MHz (3.579545) + 8 MC ticks = 1 65816 cycle for 2.68 MHz (2.684659) + 12 MC ticks = 1 65816 cycle for 1.78 MHz (1.789772) + + Each scanline has 341 readable positions and 342 actual dots. + This is because 2 dots are "long" dots that last 6 MC ticks, resulting in 1 extra dot per line. +*/ + +#define MCLK_NTSC (21477272) /* verified */ +#define MCLK_PAL (21218370) /* verified */ + +#define DOTCLK_NTSC (MCLK_NTSC/4) +#define DOTCLK_PAL (MCLK_PAL/4) + +/* Debug definitions */ +#ifdef MAME_DEBUG +/* #define SNES_DBG_GENERAL*/ /* Display general debug info */ +/* #define SNES_DBG_video*/ /* Display video debug info */ +/* #define SNES_DBG_GDMA*/ /* Display GDMA debug info */ +/* #define SNES_DBG_HDMA*/ /* Display HDMA debug info */ +/* #define SNES_DBG_REG_R*/ /* Display register read info */ +/* #define SNES_DBG_REG_W*/ /* Display register write info */ +#endif /* MAME_DEBUG */ + +/* Useful definitions */ +#define SNES_SCR_WIDTH 256 /* 32 characters 8 pixels wide */ +#define SNES_SCR_HEIGHT_NTSC 224 /* Can be 224 or 240 height */ +#define SNES_SCR_HEIGHT_PAL 274 /* ??? */ +#define SNES_VTOTAL_NTSC 262 /* Maximum number of lines for NTSC systems */ +#define SNES_VTOTAL_PAL 312 /* Maximum number of lines for PAL systems */ +#define SNES_HTOTAL 341 /* Maximum number pixels per line (incl. hblank) */ +#define SNES_DMA_BASE 0x4300 /* Base DMA register address */ +#define SNES_MODE_20 0x1 /* Lo-ROM cart */ +#define SNES_MODE_21 0x2 /* Hi-ROM cart */ +#define SNES_NTSC 0x00 +#define SNES_PAL 0x10 +#define SNES_VRAM_SIZE 0x20000 /* 128kb of video ram */ +#define SNES_CGRAM_SIZE 0x202 /* 256 16-bit colours + 1 tacked on 16-bit colour for fixed colour */ +#define SNES_OAM_SIZE 0x440 /* 1088 bytes of Object Attribute Memory */ +#define SNES_SPCRAM_SIZE 0x10000 /* 64kb of spc700 ram */ +#define FIXED_COLOUR 256 /* Position in cgram for fixed colour */ +/* Definitions for PPU Memory-Mapped registers */ +#define INIDISP 0x2100 +#define OBSEL 0x2101 +#define OAMADDL 0x2102 +#define OAMADDH 0x2103 +#define OAMDATA 0x2104 +#define BGMODE 0x2105 /* abcdefff = abcd: bg4-1 tile size | e: BG3 high priority | f: mode */ +#define MOSAIC 0x2106 /* xxxxabcd = x: pixel size | abcd: affects bg 1-4 */ +#define BG1SC 0x2107 +#define BG2SC 0x2108 +#define BG3SC 0x2109 +#define BG4SC 0x210A +#define BG12NBA 0x210B +#define BG34NBA 0x210C +#define BG1HOFS 0x210D +#define BG1VOFS 0x210E +#define BG2HOFS 0x210F +#define BG2VOFS 0x2110 +#define BG3HOFS 0x2111 +#define BG3VOFS 0x2112 +#define BG4HOFS 0x2113 +#define BG4VOFS 0x2114 +#define VMAIN 0x2115 /* i---ffrr = i: Increment timing | f: Full graphic | r: increment rate */ +#define VMADDL 0x2116 /* aaaaaaaa = a: LSB of vram address */ +#define VMADDH 0x2117 /* aaaaaaaa = a: MSB of vram address */ +#define VMDATAL 0x2118 /* dddddddd = d: data to be written */ +#define VMDATAH 0x2119 /* dddddddd = d: data to be written */ +#define M7SEL 0x211A /* ab----yx = a: screen over | y: vertical flip | x: horizontal flip */ +#define M7A 0x211B /* aaaaaaaa = a: COSINE rotate angle / X expansion */ +#define M7B 0x211C /* aaaaaaaa = a: SINE rotate angle / X expansion */ +#define M7C 0x211D /* aaaaaaaa = a: SINE rotate angle / Y expansion */ +#define M7D 0x211E /* aaaaaaaa = a: COSINE rotate angle / Y expansion */ +#define M7X 0x211F +#define M7Y 0x2120 +#define CGADD 0x2121 +#define CGDATA 0x2122 +#define W12SEL 0x2123 +#define W34SEL 0x2124 +#define WOBJSEL 0x2125 +#define WH0 0x2126 /* pppppppp = p: Left position of window 1 */ +#define WH1 0x2127 /* pppppppp = p: Right position of window 1 */ +#define WH2 0x2128 /* pppppppp = p: Left position of window 2 */ +#define WH3 0x2129 /* pppppppp = p: Right position of window 2 */ +#define WBGLOG 0x212A /* aabbccdd = a: BG4 params | b: BG3 params | c: BG2 params | d: BG1 params */ +#define WOBJLOG 0x212B /* ----ccoo = c: Colour window params | o: Object window params */ +#define TM 0x212C +#define TS 0x212D +#define TMW 0x212E +#define TSW 0x212F +#define CGWSEL 0x2130 +#define CGADSUB 0x2131 +#define COLDATA 0x2132 +#define SETINI 0x2133 +#define MPYL 0x2134 +#define MPYM 0x2135 +#define MPYH 0x2136 +#define SLHV 0x2137 +#define ROAMDATA 0x2138 +#define RVMDATAL 0x2139 +#define RVMDATAH 0x213A +#define RCGDATA 0x213B +#define OPHCT 0x213C +#define OPVCT 0x213D +#define STAT77 0x213E +#define STAT78 0x213F +#define APU00 0x2140 +#define APU01 0x2141 +#define APU02 0x2142 +#define APU03 0x2143 +#define WMDATA 0x2180 +#define WMADDL 0x2181 +#define WMADDM 0x2182 +#define WMADDH 0x2183 +/* Definitions for CPU Memory-Mapped registers */ +#define OLDJOY1 0x4016 +#define OLDJOY2 0x4017 +#define NMITIMEN 0x4200 +#define WRIO 0x4201 +#define WRMPYA 0x4202 +#define WRMPYB 0x4203 +#define WRDIVL 0x4204 +#define WRDIVH 0x4205 +#define WRDVDD 0x4206 +#define HTIMEL 0x4207 +#define HTIMEH 0x4208 +#define VTIMEL 0x4209 +#define VTIMEH 0x420A +#define MDMAEN 0x420B +#define HDMAEN 0x420C +#define MEMSEL 0x420D +#define RDNMI 0x4210 +#define TIMEUP 0x4211 +#define HVBJOY 0x4212 +#define RDIO 0x4213 +#define RDDIVL 0x4214 +#define RDDIVH 0x4215 +#define RDMPYL 0x4216 +#define RDMPYH 0x4217 +#define JOY1L 0x4218 +#define JOY1H 0x4219 +#define JOY2L 0x421A +#define JOY2H 0x421B +#define JOY3L 0x421C +#define JOY3H 0x421D +#define JOY4L 0x421E +#define JOY4H 0x421F +/* DMA */ +#define DMAP0 0x4300 +#define BBAD0 0x4301 +#define A1T0L 0x4302 +#define A1T0H 0x4303 +#define A1B0 0x4304 +#define DAS0L 0x4305 +#define DAS0H 0x4306 +#define DSAB0 0x4307 +#define A2A0L 0x4308 +#define A2A0H 0x4309 +#define NTRL0 0x430A +#define DMAP1 0x4310 +#define BBAD1 0x4311 +#define A1T1L 0x4312 +#define A1T1H 0x4313 +#define A1B1 0x4314 +#define DAS1L 0x4315 +#define DAS1H 0x4316 +#define DSAB1 0x4317 +#define A2A1L 0x4318 +#define A2A1H 0x4319 +#define NTRL1 0x431A +#define DMAP2 0x4320 +#define BBAD2 0x4321 +#define A1T2L 0x4322 +#define A1T2H 0x4323 +#define A1B2 0x4324 +#define DAS2L 0x4325 +#define DAS2H 0x4326 +#define DSAB2 0x4327 +#define A2A2L 0x4328 +#define A2A2H 0x4329 +#define NTRL2 0x432A +#define DMAP3 0x4330 +#define BBAD3 0x4331 +#define A1T3L 0x4332 +#define A1T3H 0x4333 +#define A1B3 0x4334 +#define DAS3L 0x4335 +#define DAS3H 0x4336 +#define DSAB3 0x4337 +#define A2A3L 0x4338 +#define A2A3H 0x4339 +#define NTRL3 0x433A +#define DMAP4 0x4340 +#define BBAD4 0x4341 +#define A1T4L 0x4342 +#define A1T4H 0x4343 +#define A1B4 0x4344 +#define DAS4L 0x4345 +#define DAS4H 0x4346 +#define DSAB4 0x4347 +#define A2A4L 0x4348 +#define A2A4H 0x4349 +#define NTRL4 0x434A +#define DMAP5 0x4350 +#define BBAD5 0x4351 +#define A1T5L 0x4352 +#define A1T5H 0x4353 +#define A1B5 0x4354 +#define DAS5L 0x4355 +#define DAS5H 0x4356 +#define DSAB5 0x4357 +#define A2A5L 0x4358 +#define A2A5H 0x4359 +#define NTRL5 0x435A +#define DMAP6 0x4360 +#define BBAD6 0x4361 +#define A1T6L 0x4362 +#define A1T6H 0x4363 +#define A1B6 0x4364 +#define DAS6L 0x4365 +#define DAS6H 0x4366 +#define DSAB6 0x4367 +#define A2A6L 0x4368 +#define A2A6H 0x4369 +#define NTRL6 0x436A +#define DMAP7 0x4370 +#define BBAD7 0x4371 +#define A1T7L 0x4372 +#define A1T7H 0x4373 +#define A1B7 0x4374 +#define DAS7L 0x4375 +#define DAS7H 0x4376 +#define DSAB7 0x4377 +#define A2A7L 0x4378 +#define A2A7H 0x4379 +#define NTRL7 0x437A +/* Definitions for sound DSP */ +#define DSP_V0_VOLL 0x00 +#define DSP_V0_VOLR 0x01 +#define DSP_V0_PITCHL 0x02 +#define DSP_V0_PITCHH 0x03 +#define DSP_V0_SRCN 0x04 +#define DSP_V0_ADSR1 0x05 /* gdddaaaa = g:gain enable | d:decay | a:attack */ +#define DSP_V0_ADSR2 0x06 /* llllrrrr = l:sustain left | r:sustain right */ +#define DSP_V0_GAIN 0x07 +#define DSP_V0_ENVX 0x08 +#define DSP_V0_OUTX 0x09 +#define DSP_V1_VOLL 0x10 +#define DSP_V1_VOLR 0x11 +#define DSP_V1_PITCHL 0x12 +#define DSP_V1_PITCHH 0x13 +#define DSP_V1_SRCN 0x14 +#define DSP_V1_ADSR1 0x15 +#define DSP_V1_ADSR2 0x16 +#define DSP_V1_GAIN 0x17 +#define DSP_V1_ENVX 0x18 +#define DSP_V1_OUTX 0x19 +#define DSP_V2_VOLL 0x20 +#define DSP_V2_VOLR 0x21 +#define DSP_V2_PITCHL 0x22 +#define DSP_V2_PITCHH 0x23 +#define DSP_V2_SRCN 0x24 +#define DSP_V2_ADSR1 0x25 +#define DSP_V2_ADSR2 0x26 +#define DSP_V2_GAIN 0x27 +#define DSP_V2_ENVX 0x28 +#define DSP_V2_OUTX 0x29 +#define DSP_V3_VOLL 0x30 +#define DSP_V3_VOLR 0x31 +#define DSP_V3_PITCHL 0x32 +#define DSP_V3_PITCHH 0x33 +#define DSP_V3_SRCN 0x34 +#define DSP_V3_ADSR1 0x35 +#define DSP_V3_ADSR2 0x36 +#define DSP_V3_GAIN 0x37 +#define DSP_V3_ENVX 0x38 +#define DSP_V3_OUTX 0x39 +#define DSP_V4_VOLL 0x40 +#define DSP_V4_VOLR 0x41 +#define DSP_V4_PITCHL 0x42 +#define DSP_V4_PITCHH 0x43 +#define DSP_V4_SRCN 0x44 +#define DSP_V4_ADSR1 0x45 +#define DSP_V4_ADSR2 0x46 +#define DSP_V4_GAIN 0x47 +#define DSP_V4_ENVX 0x48 +#define DSP_V4_OUTX 0x49 +#define DSP_V5_VOLL 0x50 +#define DSP_V5_VOLR 0x51 +#define DSP_V5_PITCHL 0x52 +#define DSP_V5_PITCHH 0x53 +#define DSP_V5_SRCN 0x54 +#define DSP_V5_ADSR1 0x55 +#define DSP_V5_ADSR2 0x56 +#define DSP_V5_GAIN 0x57 +#define DSP_V5_ENVX 0x58 +#define DSP_V5_OUTX 0x59 +#define DSP_V6_VOLL 0x60 +#define DSP_V6_VOLR 0x61 +#define DSP_V6_PITCHL 0x62 +#define DSP_V6_PITCHH 0x63 +#define DSP_V6_SRCN 0x64 +#define DSP_V6_ADSR1 0x65 +#define DSP_V6_ADSR2 0x66 +#define DSP_V6_GAIN 0x67 +#define DSP_V6_ENVX 0x68 +#define DSP_V6_OUTX 0x69 +#define DSP_V7_VOLL 0x70 +#define DSP_V7_VOLR 0x71 +#define DSP_V7_PITCHL 0x72 +#define DSP_V7_PITCHH 0x73 +#define DSP_V7_SRCN 0x74 +#define DSP_V7_ADSR1 0x75 +#define DSP_V7_ADSR2 0x76 +#define DSP_V7_GAIN 0x77 +#define DSP_V7_ENVX 0x78 +#define DSP_V7_OUTX 0x79 +#define DSP_MVOLL 0x0C +#define DSP_MVOLR 0x1C +#define DSP_EVOLL 0x2C +#define DSP_EVOLR 0x3C +#define DSP_KON 0x4C /* 01234567 = Key on for voices 0-7 */ +#define DSP_KOF 0x5C /* 01234567 = Key off for voices 0-7 */ +#define DSP_FLG 0x6C /* rme--n-- = r:Soft reset | m:Mute | e:External memory through echo | n:Clock of noise generator */ +#define DSP_ENDX 0x7C +#define DSP_EFB 0x0D /* sfffffff = s: sign bit | f: feedback */ +#define DSP_PMOD 0x2D +#define DSP_NON 0x3D +#define DSP_EON 0x4D +#define DSP_DIR 0x5D +#define DSP_ESA 0x6D +#define DSP_EDL 0x7D /* ----dddd = d: echo delay */ +#define DSP_FIR_C0 0x0F +#define DSP_FIR_C1 0x1F +#define DSP_FIR_C2 0x2F +#define DSP_FIR_C3 0x3F +#define DSP_FIR_C4 0x4F +#define DSP_FIR_C5 0x5F +#define DSP_FIR_C6 0x6F +#define DSP_FIR_C7 0x7F + +/*----------- defined in machine/snes.c -----------*/ + +extern MACHINE_START( snes ); +extern MACHINE_RESET( snes ); + +extern READ8_HANDLER( snes_r_bank1 ); +extern READ8_HANDLER( snes_r_bank2 ); +extern READ8_HANDLER( snes_r_bank3 ); +extern READ8_HANDLER( snes_r_bank4 ); +extern READ8_HANDLER( snes_r_bank6 ); +extern READ8_HANDLER( snes_r_io ); +extern READ8_HANDLER( snes_r_sram ); +extern WRITE8_HANDLER( snes_w_bank1 ); +extern WRITE8_HANDLER( snes_w_bank2 ); +extern WRITE8_HANDLER( snes_w_bank4 ); +extern WRITE8_HANDLER( snes_w_bank6 ); +extern WRITE8_HANDLER( snes_w_io ); +extern WRITE8_HANDLER( snes_w_sram ); + +extern int snes_validate_infoblock( UINT8 *infoblock, UINT16 offset ); + +extern void snes_gdma( UINT8 channels ); +extern void snes_hdma_init(void); +extern void snes_hdma(void); + +/* (PPU) Video related */ +extern UINT8 *snes_vram; /* Video RAM (Should be 16-bit, but it's easier this way) */ +extern UINT16 *snes_cgram; /* Colour RAM */ +extern UINT16 *snes_oam; /* Object Attribute Memory */ +extern UINT8 *snes_ram; /* Main memory */ +struct SNES_PPU_STRUCT +{ + struct + { + UINT8 blend; + UINT32 data; + UINT32 map; + UINT8 map_size; + UINT8 tile_size; + struct + { + UINT16 horizontal; + UINT16 vertical; + UINT16 tile_horz; + UINT8 shift_horz; + UINT16 tile_vert; + UINT16 shift_vert; + } offset; + } layer[5]; + struct + { + UINT8 address_low; + UINT8 address_high; + UINT16 address; + UINT16 priority_rotation; + UINT8 size[2]; + UINT32 name_select; + UINT8 first_sprite; + UINT8 flip; + UINT16 write_latch; + } oam; + struct + { + UINT16 horizontal[4]; + UINT16 vertical[4]; + } bgd_offset; + struct + { + UINT16 latch_horz; + UINT16 latch_vert; + UINT16 current_horz; + UINT16 current_vert; + UINT8 last_visible_line; + UINT8 interlace_count; + } beam; + struct + { + INT16 matrix_a; + INT16 matrix_b; + INT16 matrix_c; + INT16 matrix_d; + INT16 origin_x; + INT16 origin_y; + } mode7; + UINT8 clipmasks[6][SNES_SCR_WIDTH + 8]; + UINT8 update_windows; + UINT8 update_palette; + UINT8 update_offsets; + UINT8 mode; +}; + +struct snes_cart_info +{ + UINT8 mode; /* ROM memory mode */ + UINT32 sram; /* Amount of sram in cart */ + UINT32 sram_max; /* Maximum amount sram in cart (based on ROM mode) */ +}; + +extern struct snes_cart_info snes_cart; + +/*----------- defined in audio/snes.c -----------*/ + +/* (APU) Sound related */ +extern UINT8 *spc_ram; /* SPC main memory */ +extern UINT8 spc_port_in[4]; /* SPC input ports */ +extern UINT8 spc_port_out[4]; /* SPC output ports */ +extern READ8_HANDLER( spc_io_r ); +extern WRITE8_HANDLER( spc_io_w ); +extern READ8_HANDLER( spc_ram_r ); +extern WRITE8_HANDLER( spc_ram_w ); +extern READ8_HANDLER( spc_ipl_r ); +extern void *snes_sh_start(int clock, const struct CustomSound_interface *config); +extern void snes_sh_update( void *param, stream_sample_t **inputs, stream_sample_t **buffer, int length ); + +/* Stuff from OpenSPC 0.3.99 by Brad Martin */ + +/*========== TYPES ==========*/ + +typedef enum /* ADSR state type */ + { + ATTACK, + DECAY, + SUSTAIN, + RELEASE + } env_state_t32; + +typedef struct /* Voice state type */ + { + UINT16 mem_ptr; /* Sample data memory pointer */ + int end; /* End or loop after block */ + int envcnt; /* Counts to envelope update */ + env_state_t32 envstate; /* Current envelope state */ + int envx; /* Last env height (0-0x7FFF) */ + int filter; /* Last header's filter */ + int half; /* Active nybble of BRR */ + int header_cnt; /* Bytes before new header (0-8)*/ + int mixfrac; /* Fractional part of smpl pstn */ + int on_cnt; /* Is it time to turn on yet? */ + int pitch; /* Sample pitch (4096->32000Hz) */ + int range; /* Last header's range */ + UINT32 samp_id; /* Sample ID# */ + int sampptr; /* Where in sampbuf we are */ + signed long smp1; /* Last sample (for BRR filter) */ + signed long smp2; /* Second-to-last sample decoded*/ + short sampbuf[ 4 ]; /* Buffer for Gaussian interp */ + } voice_state_type; + +typedef struct /* Source directory entry */ + { + UINT16 vptr; /* Ptr to start of sample data */ + UINT16 lptr; /* Loop pointer in sample data */ + } src_dir_type; + +/*========== MACROS ==========*/ + +/* The functions to actually read and write to the DSP registers must be + implemented by the specific SPC core implementation, as this is too + specific to generalize. However, by defining these macros, we can + generalize the DSP's behavior while staying out of the SPC's internals, + by requiring that the SPC core must use these macros at the appropriate + times. */ + +/* All reads simply return the contents of the addressed register. */ + +/* This macro must be used INSTEAD OF a normal write to register 0x7C + (ENDX) */ +#define DSP_WRITE_7C( x ) ( DSPregs[ 0x7C ] = 0 ) + +/* All other writes should store the value in the addressed register as + expected. */ + +/*========== PROCEDURES ==========*/ + +void DSP_Reset /* Reset emulated DSP */ + ( void ); + +void DSP_Update /* Mix one sample of audio */ + ( + short * sound_ptr /* Pointer to mix audio into */ + ); + +/*----------- defined in video/snes.c -----------*/ + +extern struct SNES_PPU_STRUCT snes_ppu; + +extern VIDEO_UPDATE( snes ); + + +#endif /* _SNES_H_ */ diff --git a/src/mame/includes/snk.h b/src/mame/includes/snk.h new file mode 100644 index 00000000000..28a1e9c9cfe --- /dev/null +++ b/src/mame/includes/snk.h @@ -0,0 +1,48 @@ +/************************************************************************* + + various SNK triple Z80 games + +*************************************************************************/ + +/*----------- defined in drivers/snk.c -----------*/ + +extern UINT8 *snk_rambase; + +extern INTERRUPT_GEN( snk_irq_AB ); +extern INTERRUPT_GEN( snk_irq_BA ); + +extern READ8_HANDLER ( snk_cpuA_nmi_trigger_r ); +extern WRITE8_HANDLER( snk_cpuA_nmi_ack_w ); + +extern READ8_HANDLER ( snk_cpuB_nmi_trigger_r ); +extern WRITE8_HANDLER( snk_cpuB_nmi_ack_w ); + +extern int snk_gamegroup; +extern int snk_sound_busy_bit; +extern int snk_irq_delay; + + +/*----------- defined in video/snk.c -----------*/ + +extern PALETTE_INIT( snk_3bpp_shadow ); +extern PALETTE_INIT( snk_4bpp_shadow ); + +extern VIDEO_START( snk ); +extern VIDEO_START( sgladiat ); + +extern VIDEO_UPDATE( tnk3 ); +extern VIDEO_UPDATE( ikari ); +extern VIDEO_UPDATE( tdfever ); +extern VIDEO_UPDATE( gwar ); +extern VIDEO_UPDATE( sgladiat ); + +void tnk3_draw_text( running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int bank, UINT8 *source ); +void tnk3_draw_status( running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect, int bank, UINT8 *source ); + +// note: compare tdfever which does blinking in software with tdfeverj which does it in hardware +extern int snk_blink_parity; + + +/*----------- defined in drivers/hal21.c -----------*/ + +extern PALETTE_INIT( aso ); diff --git a/src/mame/includes/spacefb.h b/src/mame/includes/spacefb.h new file mode 100644 index 00000000000..515e8c04365 --- /dev/null +++ b/src/mame/includes/spacefb.h @@ -0,0 +1,54 @@ +/*************************************************************************** + + Space Firebird hardware + +****************************************************************************/ + +/* + * SPACEFB_PIXEL_CLOCK clocks the star generator circuit. The rest of + * the graphics use a clock half of SPACEFB_PIXEL_CLOCK, thus creating + * double width pixels. + */ + +#define SPACEFB_MASTER_CLOCK (20160000) +#define SPACEFB_MAIN_CPU_CLOCK (6000000 / 2) +#define SPACEFB_AUDIO_CPU_CLOCK (6000000 / 15) /* this goes to X2, pixel clock goes to X1 */ +#define SPACEFB_PIXEL_CLOCK (SPACEFB_MASTER_CLOCK / 2) +#define SPACEFB_HTOTAL (0x280) +#define SPACEFB_HBEND (0x000) +#define SPACEFB_HBSTART (0x200) +#define SPACEFB_VTOTAL (0x100) +#define SPACEFB_VBEND (0x010) +#define SPACEFB_VBSTART (0x0f0) +#define SPACEFB_INT_TRIGGER_COUNT_1 (0x080) +#define SPACEFB_INT_TRIGGER_COUNT_2 (0x0f0) + + +/*----------- defined in audio/spacefb.c -----------*/ + +MACHINE_DRIVER_EXTERN( spacefb_audio ); + +READ8_HANDLER( spacefb_audio_p2_r ); +READ8_HANDLER( spacefb_audio_t0_r ); +READ8_HANDLER( spacefb_audio_t1_r ); +WRITE8_HANDLER( spacefb_port_1_w ); + + + +/*----------- defined in video/spacefb.c -----------*/ + +extern UINT8 *spacefb_videoram; +extern size_t spacefb_videoram_size; + +VIDEO_START( spacefb ); +VIDEO_UPDATE( spacefb ); + +void spacefb_set_flip_screen(UINT8 data); +void spacefb_set_gfx_bank(UINT8 data); +void spacefb_set_palette_bank(UINT8 data); +void spacefb_set_background_red(UINT8 data); +void spacefb_set_background_blue(UINT8 data); +void spacefb_set_disable_star_field(UINT8 data); +void spacefb_set_color_contrast_r(UINT8 data); +void spacefb_set_color_contrast_g(UINT8 data); +void spacefb_set_color_contrast_b(UINT8 data); diff --git a/src/mame/includes/spiders.h b/src/mame/includes/spiders.h new file mode 100644 index 00000000000..ac65a176ecf --- /dev/null +++ b/src/mame/includes/spiders.h @@ -0,0 +1,15 @@ +/*************************************************************************** + + Sigma Spiders hardware + +***************************************************************************/ + + +/*----------- defined in audio/spiders.c -----------*/ + +WRITE8_HANDLER( spiders_audio_command_w ); +WRITE8_HANDLER( spiders_audio_a_w ); +WRITE8_HANDLER( spiders_audio_b_w ); +WRITE8_HANDLER( spiders_audio_ctrl_w ); + +MACHINE_DRIVER_EXTERN( spiders_audio ); diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h new file mode 100644 index 00000000000..a3f1ede2362 --- /dev/null +++ b/src/mame/includes/sprint2.h @@ -0,0 +1,44 @@ +/************************************************************************* + + Atari Sprint hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define SPRINT2_SKIDSND1_EN NODE_01 +#define SPRINT2_SKIDSND2_EN NODE_02 +#define SPRINT2_MOTORSND1_DATA NODE_03 +#define SPRINT2_MOTORSND2_DATA NODE_04 +#define SPRINT2_CRASHSND_DATA NODE_05 +#define SPRINT2_ATTRACT_EN NODE_06 +#define SPRINT2_NOISE_RESET NODE_07 + +#define DOMINOS_FREQ_DATA SPRINT2_MOTORSND1_DATA +#define DOMINOS_AMP_DATA SPRINT2_CRASHSND_DATA +#define DOMINOS_TUMBLE_EN SPRINT2_SKIDSND1_EN +#define DOMINOS_ATTRACT_EN SPRINT2_ATTRACT_EN + + +/*----------- defined in audio/sprint2.c -----------*/ + +DISCRETE_SOUND_EXTERN( sprint2 ); +DISCRETE_SOUND_EXTERN( sprint1 ); +DISCRETE_SOUND_EXTERN( dominos ); + + +/*----------- defined in video/sprint2.c -----------*/ + +extern READ8_HANDLER( sprint2_collision1_r ); +extern READ8_HANDLER( sprint2_collision2_r ); + +extern WRITE8_HANDLER( sprint2_collision_reset1_w ); +extern WRITE8_HANDLER( sprint2_collision_reset2_w ); +extern WRITE8_HANDLER( sprint2_video_ram_w ); + +extern VIDEO_UPDATE( sprint2 ); +extern VIDEO_START( sprint2 ); +extern VIDEO_EOF( sprint2 ); + +extern UINT8* sprint2_video_ram; diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h new file mode 100644 index 00000000000..92f0343b109 --- /dev/null +++ b/src/mame/includes/sprint8.h @@ -0,0 +1,17 @@ +/*----------- defined in drivers/sprint8.c -----------*/ + +void sprint8_set_collision(int n); + + +/*----------- defined in video/sprint8.c -----------*/ + +extern UINT8* sprint8_video_ram; +extern UINT8* sprint8_pos_h_ram; +extern UINT8* sprint8_pos_v_ram; +extern UINT8* sprint8_pos_d_ram; + +VIDEO_EOF( sprint8 ); +VIDEO_START( sprint8 ); +VIDEO_UPDATE( sprint8 ); + +WRITE8_HANDLER( sprint8_video_ram_w ); diff --git a/src/mame/includes/st0016.h b/src/mame/includes/st0016.h new file mode 100644 index 00000000000..1499bc6d203 --- /dev/null +++ b/src/mame/includes/st0016.h @@ -0,0 +1,57 @@ + +#define ISMACS (st0016_game&0x80) +#define ISMACS1 (((st0016_game&0x180)==0x180)) +#define ISMACS2 (((st0016_game&0x180)==0x080)) + + +#define ST0016_MAX_SPR_BANK 0x10 +#define ST0016_MAX_CHAR_BANK 0x10000 +#define ST0016_MAX_PAL_BANK 4 + +#define ST0016_SPR_BANK_SIZE 0x1000 +#define ST0016_CHAR_BANK_SIZE 0x20 +#define ST0016_PAL_BANK_SIZE 0x200 + +#define UNUSED_PEN 1024 + +#define ST0016_SPR_BANK_MASK (ST0016_MAX_SPR_BANK-1) +#define ST0016_CHAR_BANK_MASK (ST0016_MAX_CHAR_BANK-1) +#define ST0016_PAL_BANK_MASK (ST0016_MAX_PAL_BANK-1) + +/*----------- defined in drivers/macs.c -----------*/ + +extern UINT8 macs_mux_data; + + +/*----------- defined in video/st0016.c -----------*/ + +extern UINT8 *st0016_charram,*st0016_spriteram,*st0016_paletteram; + +extern UINT8 *macs_ram1,*macs_ram2; + +READ8_HANDLER(st0016_dma_r); +WRITE8_HANDLER (st0016_sprite_bank_w); +WRITE8_HANDLER (st0016_palette_bank_w); +WRITE8_HANDLER (st0016_character_bank_w); +READ8_HANDLER (st0016_sprite_ram_r); +WRITE8_HANDLER (st0016_sprite_ram_w); +READ8_HANDLER (st0016_sprite2_ram_r); +WRITE8_HANDLER (st0016_sprite2_ram_w); +READ8_HANDLER (st0016_palette_ram_r); +WRITE8_HANDLER (st0016_palette_ram_w); +READ8_HANDLER (st0016_character_ram_r); +WRITE8_HANDLER (st0016_character_ram_w); +READ8_HANDLER (st0016_vregs_r); +WRITE8_HANDLER (st0016_vregs_w); +WRITE8_HANDLER (st0016_rom_bank_w); + +VIDEO_START(st0016); +VIDEO_UPDATE(st0016); + +extern UINT32 st0016_game; + +extern UINT32 st0016_rom_bank; + +void st0016_save_init(void); + + diff --git a/src/mame/includes/starfire.h b/src/mame/includes/starfire.h new file mode 100644 index 00000000000..2c407010b02 --- /dev/null +++ b/src/mame/includes/starfire.h @@ -0,0 +1,31 @@ + +#define STARFIRE_MASTER_CLOCK (20000000) +#define STARFIRE_CPU_CLOCK (STARFIRE_MASTER_CLOCK / 8) +#define STARFIRE_PIXEL_CLOCK (STARFIRE_MASTER_CLOCK / 4) +#define STARFIRE_HTOTAL (0x13f) /* could be 0x140, but I think this is right */ +#define STARFIRE_HBEND (0x000) +#define STARFIRE_HBSTART (0x100) +#define STARFIRE_VTOTAL (0x106) +#define STARFIRE_VBEND (0x020) +#define STARFIRE_VBSTART (0x100) + + +/*----------- defined in drivers/starfire.c -----------*/ + +extern UINT8 *starfire_videoram; +extern UINT8 *starfire_colorram; + + +/*----------- defined in video/starfire.c -----------*/ + +VIDEO_UPDATE( starfire ); +VIDEO_START( starfire ); +void starfire_video_update(int scanline, int count); + +WRITE8_HANDLER( starfire_videoram_w ); +READ8_HANDLER( starfire_videoram_r ); +WRITE8_HANDLER( starfire_colorram_w ); +READ8_HANDLER( starfire_colorram_r ); +WRITE8_HANDLER( starfire_vidctrl_w ); +WRITE8_HANDLER( starfire_vidctrl1_w ); + diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h new file mode 100644 index 00000000000..19656c5f9e0 --- /dev/null +++ b/src/mame/includes/starshp1.h @@ -0,0 +1,67 @@ +/* + * The schematics don't seem to make a lot of sense when it + * comes to the video timing chain:: + * + * * there are clear typos -- what is H132??? + * * there are two HBLANK/HSYNC periods as the horizontal + * chain is drawn, which would give an alternating long + * line followed by a much shorter one. This cannot be right + * * the carry-out/load circuit on LS161@J8 is superflous + * + * These values also give a frame rate of about 45Hz, which is + * probably too low. I suspect that screen is not really + * 512 pixels wide -- most likely 384, which would give 60Hz + * + * Some of the graphics, like the starfield, is clocked with the + * 12MHz signal, effecitvely doubling the horizontal resolution + */ + +#define STARSHP1_MASTER_CLOCK (12096000) +#define STARSHP1_CPU_CLOCK (STARSHP1_MASTER_CLOCK / 16) +#define STARSHP1_PIXEL_CLOCK (STARSHP1_MASTER_CLOCK / 2) +#define STARSHP1_HTOTAL (0x200) +#define STARSHP1_HBEND (0x000) +#define STARSHP1_HBSTART (0x200) +#define STARSHP1_VTOTAL (0x106) +#define STARSHP1_VBEND (0x000) +#define STARSHP1_VBSTART (0x0f0) + + +/*----------- defined in drivers/starshp1.c -----------*/ + +extern int starshp1_attract; + + +/*----------- defined in video/starshp1.c -----------*/ + +extern UINT8 *starshp1_playfield_ram; +extern UINT8 *starshp1_hpos_ram; +extern UINT8 *starshp1_vpos_ram; +extern UINT8 *starshp1_obj_ram; + +extern int starshp1_ship_explode; +extern int starshp1_ship_picture; +extern int starshp1_ship_hoffset; +extern int starshp1_ship_voffset; +extern int starshp1_ship_size; + +extern int starshp1_circle_hpos; +extern int starshp1_circle_vpos; +extern int starshp1_circle_size; +extern int starshp1_circle_mod; +extern int starshp1_circle_kill; + +extern int starshp1_phasor; +extern int starshp1_collision_latch; +extern int starshp1_starfield_kill; +extern int starshp1_mux; + +READ8_HANDLER( starshp1_rng_r ); + +WRITE8_HANDLER( starshp1_sspic_w ); +WRITE8_HANDLER( starshp1_ssadd_w ); +WRITE8_HANDLER( starshp1_playfield_w ); + +VIDEO_UPDATE( starshp1 ); +VIDEO_EOF( starshp1 ); +VIDEO_START( starshp1 ); diff --git a/src/mame/includes/starwars.h b/src/mame/includes/starwars.h new file mode 100644 index 00000000000..528ebc33e28 --- /dev/null +++ b/src/mame/includes/starwars.h @@ -0,0 +1,46 @@ +/*************************************************************************** + + Atari Star Wars hardware + +***************************************************************************/ + +/*----------- defined in drivers/starwars.c -----------*/ + +extern UINT8 starwars_is_esb; + + +/*----------- defined in machine/starwars.c -----------*/ + +extern UINT8 *starwars_mathram; +extern UINT8 *starwars_ram_overlay; + +WRITE8_HANDLER( starwars_nstore_w ); + +WRITE8_HANDLER( starwars_out_w ); +READ8_HANDLER( starwars_input_1_r ); + +READ8_HANDLER( starwars_adc_r ); +WRITE8_HANDLER( starwars_adc_select_w ); + +void swmathbox_init(void); +void swmathbox_reset(void); + +READ8_HANDLER( swmathbx_prng_r ); +READ8_HANDLER( swmathbx_reh_r ); +READ8_HANDLER( swmathbx_rel_r ); + +WRITE8_HANDLER( swmathbx_w ); + + +/*----------- defined in audio/starwars.c -----------*/ + +READ8_HANDLER( starwars_main_read_r ); +READ8_HANDLER( starwars_main_ready_flag_r ); +WRITE8_HANDLER( starwars_main_wr_w ); +WRITE8_HANDLER( starwars_soundrst_w ); + +READ8_HANDLER( starwars_sin_r ); +READ8_HANDLER( starwars_m6532_r ); + +WRITE8_HANDLER( starwars_sout_w ); +WRITE8_HANDLER( starwars_m6532_w ); diff --git a/src/mame/includes/subs.h b/src/mame/includes/subs.h new file mode 100644 index 00000000000..1aec4a944f4 --- /dev/null +++ b/src/mame/includes/subs.h @@ -0,0 +1,47 @@ +/************************************************************************* + + Atari Subs hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define SUBS_SONAR1_EN NODE_01 +#define SUBS_SONAR2_EN NODE_02 +#define SUBS_LAUNCH_DATA NODE_03 +#define SUBS_CRASH_DATA NODE_04 +#define SUBS_CRASH_EN NODE_05 +#define SUBS_EXPLODE_EN NODE_06 +#define SUBS_NOISE_RESET NODE_07 + + +/*----------- defined in machine/subs.c -----------*/ + +MACHINE_RESET( subs ); +INTERRUPT_GEN( subs_interrupt ); +WRITE8_HANDLER( subs_steer_reset_w ); +READ8_HANDLER( subs_control_r ); +READ8_HANDLER( subs_coin_r ); +READ8_HANDLER( subs_options_r ); +WRITE8_HANDLER( subs_lamp1_w ); +WRITE8_HANDLER( subs_lamp2_w ); + + +/*----------- defined in audio/subs.c -----------*/ + +WRITE8_HANDLER( subs_noise_reset_w ); +WRITE8_HANDLER( subs_sonar2_w ); +WRITE8_HANDLER( subs_sonar1_w ); +WRITE8_HANDLER( subs_crash_w ); +WRITE8_HANDLER( subs_explode_w ); + +DISCRETE_SOUND_EXTERN( subs ); + + +/*----------- defined in video/subs.c -----------*/ + +VIDEO_UPDATE( subs ); + +WRITE8_HANDLER( subs_invert1_w ); +WRITE8_HANDLER( subs_invert2_w ); diff --git a/src/mame/includes/suprridr.h b/src/mame/includes/suprridr.h new file mode 100644 index 00000000000..d16590bcc3f --- /dev/null +++ b/src/mame/includes/suprridr.h @@ -0,0 +1,24 @@ +/************************************************************************* + + Venture Line Super Rider driver + +**************************************************************************/ + +/*----------- defined in video/suprridr.c -----------*/ + +extern UINT8 *suprridr_fgram; +extern UINT8 *suprridr_bgram; + +VIDEO_START( suprridr ); +PALETTE_INIT( suprridr ); + +WRITE8_HANDLER( suprridr_flipx_w ); +WRITE8_HANDLER( suprridr_flipy_w ); +WRITE8_HANDLER( suprridr_fgdisable_w ); +WRITE8_HANDLER( suprridr_fgscrolly_w ); +WRITE8_HANDLER( suprridr_bgscrolly_w ); + +WRITE8_HANDLER( suprridr_fgram_w ); +WRITE8_HANDLER( suprridr_bgram_w ); + +VIDEO_UPDATE( suprridr ); diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h new file mode 100644 index 00000000000..27bceee56d4 --- /dev/null +++ b/src/mame/includes/system16.h @@ -0,0 +1,279 @@ +/******************** NEW STUFF *******************/ + +#include "video/segaic16.h" + +/*----------- defined in video/segahang.c -----------*/ + +VIDEO_START( hangon ); +VIDEO_START( sharrier ); +VIDEO_UPDATE( hangon ); + +/*----------- defined in video/segas16a.c -----------*/ + +VIDEO_START( system16a ); +VIDEO_UPDATE( system16a ); + +/*----------- defined in video/segas16b.c -----------*/ + +VIDEO_START( system16b ); +VIDEO_START( timscanr ); +VIDEO_UPDATE( system16b ); + +/*----------- defined in video/segas18.c -----------*/ + +VIDEO_START( system18 ); +VIDEO_UPDATE( system18 ); + +void system18_set_grayscale(int enable); +void system18_set_vdp_enable(int eanble); +void system18_set_vdp_mixing(int mixing); + +/*----------- defined in video/segaorun.c -----------*/ + +VIDEO_START( outrun ); +VIDEO_START( shangon ); +VIDEO_UPDATE( outrun ); +VIDEO_UPDATE( shangon ); + +/*----------- defined in video/segaxbd.c -----------*/ + +VIDEO_START( xboard ); +VIDEO_UPDATE( xboard ); +void xboard_set_road_priority(int priority); + +/*----------- defined in video/segaybd.c -----------*/ + +VIDEO_START( yboard ); +VIDEO_UPDATE( yboard ); + + + +/******************** OLD STUFF *******************/ + +#define SYS16_SPR_FLIPX 0x01 +#define SYS16_SPR_VISIBLE 0x04 +#define SYS16_SPR_DRAW_TO_LEFT 0x08 +#define SYS16_SPR_SPECIAL 0x10 +#define SYS16_SPR_SHADOW 0x20 /* all pixels */ +#define SYS16_SPR_PARTIAL_SHADOW 0x40 /* pen #10 */ +#define SYS16_SPR_DRAW_TO_TOP 0x80 + +struct sys16_sprite_attributes { + int priority, flags; + int gfx, color; + UINT8 pitch; + int zoomx, zoomy; + int x,y, screen_height; /* in screen coordinates */ + int shadow_pen; +}; + +extern int (*sys16_spritesystem)( + struct sys16_sprite_attributes *sprite, + const UINT16 *source, + int bJustGetColor ); + +/*----------- defined in video/sys16spr.c -----------*/ + +extern int sys16_sprite_shinobi( struct sys16_sprite_attributes *sprite, const UINT16 *source, int bJustGetColor ); +extern int sys16_sprite_passshot( struct sys16_sprite_attributes *sprite, const UINT16 *source, int bJustGetColor ); +extern int sys16_sprite_quartet2( struct sys16_sprite_attributes *sprite, const UINT16 *source, int bJustGetColor ); + +#define NumOfShadowColors 32 +#define ShadowColorsMultiplier 2 + +/*----------- defined in machine/system16.c -----------*/ + +extern UINT16 *sys16_workingram; +extern UINT16 *sys16_workingram2; +extern UINT16 *sys16_extraram; +extern UINT16 *sys16_extraram2; +extern UINT16 *sys16_extraram3; + +/* sound */ +extern struct upd7759_interface sys16_upd7759_interface; + +extern int sys18_sound_info[4*2]; + +extern void sys16_patch_code( int offset, int data ); + +#define SYS16_MWA16_PALETTERAM sys16_paletteram_w +#define SYS16_MRA16_PALETTERAM paletteram16_word_r + +#define SYS16_MRA16_WORKINGRAM MRA16_RAM +#define SYS16_MWA16_WORKINGRAM MWA16_RAM + +#define SYS16_MRA16_WORKINGRAM2 MRA16_RAM +#define SYS16_MWA16_WORKINGRAM2 MWA16_RAM + +extern MACHINE_RESET( sys16_onetime ); + +#define SYS16_MRA16_SPRITERAM MRA16_RAM +#define SYS16_MWA16_SPRITERAM MWA16_RAM + +#define SYS16_MRA16_TILERAM sys16_tileram_r +#define SYS16_MWA16_TILERAM sys16_tileram_w + +#define SYS16_MRA16_TEXTRAM sys16_textram_r +#define SYS16_MWA16_TEXTRAM sys16_textram_w + +#define SYS16_MRA16_EXTRAM MRA16_RAM +#define SYS16_MWA16_EXTRAM MWA16_RAM + +#define SYS16_MRA16_EXTRAM2 MRA16_RAM +#define SYS16_MWA16_EXTRAM2 MWA16_RAM + +#define SYS16_MRA16_EXTRAM3 MRA16_RAM +#define SYS16_MWA16_EXTRAM3 MWA16_RAM + +#define SYS16_MRA16_EXTRAM4 MRA16_RAM +#define SYS16_MWA16_EXTRAM4 MWA16_RAM + +#define SYS16_MRA16_ROADRAM MRA16_RAM +#define SYS16_MWA16_ROADRAM MWA16_RAM + +GFXDECODE_EXTERN( sys16 ); + + +#define SYS16_JOY1 PORT_START_TAG("IN0")\ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY + +#define SYS16_JOY2 PORT_START_TAG("IN1") \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_COCKTAIL \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON1 ) PORT_COCKTAIL \ + PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY PORT_COCKTAIL \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_COCKTAIL \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY PORT_COCKTAIL \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_8WAY PORT_COCKTAIL + +#define SYS16_SERVICE PORT_START_TAG("IN2") \ + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) \ + PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 ) \ + PORT_SERVICE_NO_TOGGLE(0x04, IP_ACTIVE_LOW) \ + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SERVICE1 ) \ + PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_START1 ) \ + PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_START2 ) \ + PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_UNKNOWN ) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define SYS16_COINAGE PORT_START_TAG("DSW0") \ + PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) ) \ + PORT_DIPSETTING( 0x07, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x08, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x09, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x05, "2 Coins/1 Credit 5/3 6/4" ) \ + PORT_DIPSETTING( 0x04, "2 Coins/1 Credit 4/3" ) \ + PORT_DIPSETTING( 0x0f, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x01, "1 Coin/1 Credit 2/3" ) \ + PORT_DIPSETTING( 0x02, "1 Coin/1 Credit 4/5" ) \ + PORT_DIPSETTING( 0x03, "1 Coin/1 Credit 5/6" ) \ + PORT_DIPSETTING( 0x06, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0x0e, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x0d, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x0c, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x0b, DEF_STR( 1C_5C ) ) \ + PORT_DIPSETTING( 0x0a, DEF_STR( 1C_6C ) ) \ + PORT_DIPSETTING( 0x00, "Free Play (if Coin B too) or 1/1" ) \ + PORT_DIPNAME( 0xf0, 0xf0, DEF_STR( Coin_B ) ) \ + PORT_DIPSETTING( 0x70, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x90, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x50, "2 Coins/1 Credit 5/3 6/4" ) \ + PORT_DIPSETTING( 0x40, "2 Coins/1 Credit 4/3" ) \ + PORT_DIPSETTING( 0xf0, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x10, "1 Coin/1 Credit 2/3" ) \ + PORT_DIPSETTING( 0x20, "1 Coin/1 Credit 4/5" ) \ + PORT_DIPSETTING( 0x30, "1 Coin/1 Credit 5/6" ) \ + PORT_DIPSETTING( 0x60, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0xe0, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0xd0, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0xb0, DEF_STR( 1C_5C ) ) \ + PORT_DIPSETTING( 0xa0, DEF_STR( 1C_6C ) ) \ + PORT_DIPSETTING( 0x00, "Free Play (if Coin A too) or 1/1" ) + + +/*----------- defined in video/system16.c -----------*/ + +/* video hardware */ +extern READ16_HANDLER( sys16_tileram_r ); +extern WRITE16_HANDLER( sys16_tileram_w ); +extern READ16_HANDLER( sys16_textram_r ); +extern WRITE16_HANDLER( sys16_textram_w ); +extern WRITE16_HANDLER( sys16_paletteram_w ); + +/* "normal" video hardware */ +extern VIDEO_START( system16 ); +extern VIDEO_UPDATE( system16 ); + +/* system18 video hardware */ +extern VIDEO_START( system18old ); +extern VIDEO_UPDATE( system18old ); + +/* callback to poll video registers */ +extern void (* sys16_update_proc)( void ); + +extern UINT16 *sys16_tileram; +extern UINT16 *sys16_textram; +extern UINT16 *sys16_spriteram; + +extern int sys16_sh_shadowpal; +extern int sys16_MaxShadowColors; + +/* video driver constants (vary with game) */ +extern int sys16_gr_bitmap_width; +extern int sys16_sprxoffset; +extern int sys16_bgxoffset; +extern int sys16_fgxoffset; +extern int *sys16_obj_bank; +extern int sys16_textlayer_lo_min; +extern int sys16_textlayer_lo_max; +extern int sys16_textlayer_hi_min; +extern int sys16_textlayer_hi_max; +extern int sys16_bg1_trans; +extern int sys16_bg_priority_mode; +extern int sys16_fg_priority_mode; +extern int sys16_bg_priority_value; +extern int sys16_fg_priority_value; +extern int sys16_tilebank_switch; +extern int sys16_rowscroll_scroll; +extern int shinobl_kludge; + +/* video driver registers */ +extern int sys16_refreshenable; +extern int sys16_tile_bank0; +extern int sys16_tile_bank1; +extern int sys16_bg_scrollx, sys16_bg_scrolly; +extern int sys16_bg_page[4]; +extern int sys16_fg_scrollx, sys16_fg_scrolly; +extern int sys16_fg_page[4]; + +extern int sys16_bg2_scrollx, sys16_bg2_scrolly; +extern int sys16_bg2_page[4]; +extern int sys16_fg2_scrollx, sys16_fg2_scrolly; +extern int sys16_fg2_page[4]; + +extern int sys18_bg2_active; +extern int sys18_fg2_active; +extern UINT16 *sys18_splittab_bg_x; +extern UINT16 *sys18_splittab_bg_y; +extern UINT16 *sys18_splittab_fg_x; +extern UINT16 *sys18_splittab_fg_y; + +extern UINT16 *sys16_gr_ver; +extern UINT16 *sys16_gr_hor; +extern UINT16 *sys16_gr_pal; +extern UINT16 *sys16_gr_flip; +extern int sys16_gr_palette; +extern int sys16_gr_palette_default; +extern UINT8 sys16_gr_colorflip[2][4]; +extern UINT16 *sys16_gr_second_road; + diff --git a/src/mame/includes/system24.h b/src/mame/includes/system24.h new file mode 100644 index 00000000000..f719d5001fc --- /dev/null +++ b/src/mame/includes/system24.h @@ -0,0 +1,23 @@ +/*----------- defined in machine/system24.c -----------*/ + +/* system24temp_ functions / variables are from shared rewrite files, + once the rest of the rewrite is complete they can be removed, I + just made a copy & renamed them for now to avoid any conflicts +*/ + +/* New Code */ + +extern UINT16 *system24temp_sys16_shared_ram; +READ16_HANDLER( system24temp_sys16_shared_ram_r ); +WRITE16_HANDLER( system24temp_sys16_shared_ram_w ); + +void system24temp_sys16_io_set_callbacks(UINT8 (*io_r)(int port), + void (*io_w)(int port, UINT8 data), + void (*cnt_w)(UINT8 data), + READ16_HANDLER ((*iod_r)), + WRITE16_HANDLER((*iod_w))); +READ16_HANDLER ( system24temp_sys16_io_r ); +WRITE16_HANDLER( system24temp_sys16_io_w ); +READ32_HANDLER ( system24temp_sys16_io_dword_r ); + +/* End New Code */ diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h new file mode 100644 index 00000000000..bd9abac85e6 --- /dev/null +++ b/src/mame/includes/taito_f2.h @@ -0,0 +1,55 @@ +/*----------- defined in video/taito_f2.c -----------*/ + +extern UINT16 *f2_sprite_extension; +extern size_t f2_spriteext_size; + +VIDEO_START( taitof2_default ); +VIDEO_START( taitof2_quiz ); +VIDEO_START( taitof2_finalb ); +VIDEO_START( taitof2_megab ); +VIDEO_START( taitof2_solfigtr ); +VIDEO_START( taitof2_koshien ); +VIDEO_START( taitof2_driftout ); +VIDEO_START( taitof2_dondokod ); +VIDEO_START( taitof2_thundfox ); +VIDEO_START( taitof2_growl ); +VIDEO_START( taitof2_yuyugogo ); +VIDEO_START( taitof2_mjnquest ); +VIDEO_START( taitof2_footchmp ); +VIDEO_START( taitof2_hthero ); +VIDEO_START( taitof2_ssi ); +VIDEO_START( taitof2_gunfront ); +VIDEO_START( taitof2_ninjak ); +VIDEO_START( taitof2_pulirula ); +VIDEO_START( taitof2_metalb ); +VIDEO_START( taitof2_qzchikyu ); +VIDEO_START( taitof2_yesnoj ); +VIDEO_START( taitof2_deadconx ); +VIDEO_START( taitof2_deadconj ); +VIDEO_START( taitof2_dinorex ); +VIDEO_EOF( taitof2_no_buffer ); +VIDEO_EOF( taitof2_full_buffer_delayed ); +VIDEO_EOF( taitof2_partial_buffer_delayed ); +VIDEO_EOF( taitof2_partial_buffer_delayed_thundfox ); +VIDEO_EOF( taitof2_partial_buffer_delayed_qzchikyu ); + +VIDEO_UPDATE( taitof2 ); +VIDEO_UPDATE( taitof2_pri ); +VIDEO_UPDATE( taitof2_pri_roz ); +VIDEO_UPDATE( ssi ); +VIDEO_UPDATE( thundfox ); +VIDEO_UPDATE( deadconx ); +VIDEO_UPDATE( metalb ); +VIDEO_UPDATE( yesnoj ); + +WRITE16_HANDLER( taitof2_spritebank_w ); +READ16_HANDLER ( koshien_spritebank_r ); +WRITE16_HANDLER( koshien_spritebank_w ); +WRITE16_HANDLER( taitof2_sprite_extension_w ); + +/*----------- defined in machine/cchip.c -----------*/ + +extern UINT16 *cchip2_ram; +READ16_HANDLER ( cchip2_word_r ); +WRITE16_HANDLER( cchip2_word_w ); + diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h new file mode 100644 index 00000000000..47b792fcb8a --- /dev/null +++ b/src/mame/includes/taito_f3.h @@ -0,0 +1,65 @@ +/* This it the best way to allow game specific kludges until the system is fully understood */ +enum { + /* Early F3 class games, these are not cartridge games and system features may be different */ + RINGRAGE=0, /* D21 */ + ARABIANM, /* D29 */ + RIDINGF, /* D34 */ + GSEEKER, /* D40 */ + TRSTAR, /* D53 */ + GUNLOCK, /* D66 */ + TWINQIX, + UNDRFIRE, /* D67 - Heavily modified F3 hardware (different memory map) */ + SCFINALS, + LIGHTBR, /* D69 */ + + /* D77 - F3 motherboard proms, all following games are 'F3 package system' */ + /* D78 I CUP */ + KAISERKN, /* D84 */ + DARIUSG, /* D87 */ + BUBSYMPH, /* D90 */ + SPCINVDX, /* D93 */ + HTHERO95, /* D94 */ + QTHEATER, /* D95 */ + EACTION2, /* E02 */ + SPCINV95, /* E06 */ + QUIZHUHU, /* E08 */ + PBOBBLE2, /* E10 */ + GEKIRIDO, /* E11 */ + KTIGER2, /* E15 */ + BUBBLEM, /* E21 */ + CLEOPATR, /* E28 */ + PBOBBLE3, /* E29 */ + ARKRETRN, /* E36 */ + KIRAMEKI, /* E44 */ + PUCHICAR, /* E46 */ + PBOBBLE4, /* E49 */ + POPNPOP, /* E51 */ + LANDMAKR, /* E61 */ + RECALH, /* prototype */ + COMMANDW /* prototype */ +}; + +/*----------- defined in drivers/taito_f3.c -----------*/ + +extern UINT32 *f3_shared_ram; +extern int f3_game; + +/*----------- defined in video/taito_f3.c -----------*/ + +extern UINT32 *f3_vram,*f3_line_ram; +extern UINT32 *f3_pf_data,*f3_pivot_ram; + +VIDEO_START( f3 ); +VIDEO_UPDATE( f3 ); +VIDEO_EOF( f3 ); + +WRITE32_HANDLER( f3_control_0_w ); +WRITE32_HANDLER( f3_control_1_w ); +WRITE32_HANDLER( f3_palette_24bit_w ); +WRITE32_HANDLER( f3_pf_data_w ); +WRITE32_HANDLER( f3_vram_w ); +WRITE32_HANDLER( f3_pivot_w ); +WRITE32_HANDLER( f3_lineram_w ); +WRITE32_HANDLER( f3_videoram_w ); + + diff --git a/src/mame/includes/taitoipt.h b/src/mame/includes/taitoipt.h new file mode 100644 index 00000000000..f0c73fa1a85 --- /dev/null +++ b/src/mame/includes/taitoipt.h @@ -0,0 +1,379 @@ +/******************************************************************************* + + Input port macros used by many games in mutiple Taito drivers + +*******************************************************************************/ + + +/**************************** Machine Dip Swicthes ****************************/ + +/* with location */ +#define TAITO_DSWA_BITS_2_TO_3_LOC(DIPBANK) \ + PORT_SERVICE_DIPLOC( 0x04, IP_ACTIVE_LOW, #DIPBANK":3" ) \ + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) PORT_DIPLOCATION(#DIPBANK":4") \ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + +#define TAITO_DSWA_BITS_1_TO_3_LOC(DIPBANK) \ + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) PORT_DIPLOCATION(#DIPBANK":2") \ + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ + TAITO_DSWA_BITS_2_TO_3_LOC(DIPBANK) + +#define TAITO_MACHINE_COCKTAIL_LOC(DIPBANK) \ + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) PORT_DIPLOCATION(#DIPBANK":1") \ + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) \ + TAITO_DSWA_BITS_1_TO_3_LOC(DIPBANK) + +#define TAITO_MACHINE_NO_COCKTAIL_LOC(DIPBANK) \ + PORT_DIPUNUSED_DIPLOC( 0x01, IP_ACTIVE_LOW, #DIPBANK":1" ) \ + TAITO_DSWA_BITS_1_TO_3_LOC(DIPBANK) + + +/* without location */ +#define TAITO_DSWA_BITS_2_TO_3 \ + PORT_SERVICE( 0x04, IP_ACTIVE_LOW ) \ + PORT_DIPNAME( 0x08, 0x08, DEF_STR( Demo_Sounds ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x08, DEF_STR( On ) ) + +#define TAITO_DSWA_BITS_1_TO_3 \ + PORT_DIPNAME( 0x02, 0x02, DEF_STR( Flip_Screen ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( Off ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( On ) ) \ + TAITO_DSWA_BITS_2_TO_3 + +#define TAITO_MACHINE_COCKTAIL \ + PORT_DIPNAME( 0x01, 0x00, DEF_STR( Cabinet ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( Upright ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( Cocktail ) ) \ + TAITO_DSWA_BITS_1_TO_3 + +#define TAITO_MACHINE_NO_COCKTAIL \ + PORT_DIPUNUSED( 0x01, IP_ACTIVE_LOW ) \ + TAITO_DSWA_BITS_1_TO_3 + + +/**************************** Coinage Dip Swicthes ****************************/ + +/* with location */ +#define TAITO_COINAGE_JAPAN_OLD_COIN_A_LOC(DIPBANK) \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(#DIPBANK":5,6") \ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_JAPAN_OLD_COIN_B_LOC(DIPBANK) \ + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(#DIPBANK":7,8") \ + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_JAPAN_NEW_COIN_A_LOC(DIPBANK) \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(#DIPBANK":5,6") \ + PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_JAPAN_NEW_COIN_B_LOC(DIPBANK) \ + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(#DIPBANK":7,8") \ + PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_WORLD_COIN_A_LOC(DIPBANK) \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) PORT_DIPLOCATION(#DIPBANK":5,6") \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) + +#define TAITO_COINAGE_WORLD_COIN_B_LOC(DIPBANK) \ + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) PORT_DIPLOCATION(#DIPBANK":7,8") \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) + +#define TAITO_COINAGE_US_COIN_START_LOC(DIPBANK) \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) PORT_DIPLOCATION(#DIPBANK":5,6") \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) + +#define TAITO_COINAGE_US_COIN_CONT_LOC(DIPBANK) \ + PORT_DIPNAME( 0xc0, 0xc0, "Price to Continue" ) PORT_DIPLOCATION(#DIPBANK":7,8") \ + PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0xc0, "Same as Start" ) + +#define TAITO_COINAGE_JAPAN_OLD_LOC(DIPBANK) \ + TAITO_COINAGE_JAPAN_OLD_COIN_A_LOC(DIPBANK) \ + TAITO_COINAGE_JAPAN_OLD_COIN_B_LOC(DIPBANK) + +#define TAITO_COINAGE_JAPAN_NEW_LOC(DIPBANK) \ + TAITO_COINAGE_JAPAN_NEW_COIN_A_LOC(DIPBANK) \ + TAITO_COINAGE_JAPAN_NEW_COIN_B_LOC(DIPBANK) + +#define TAITO_COINAGE_WORLD_LOC(DIPBANK) \ + TAITO_COINAGE_WORLD_COIN_A_LOC(DIPBANK) \ + TAITO_COINAGE_WORLD_COIN_B_LOC(DIPBANK) + +#define TAITO_COINAGE_US_LOC(DIPBANK) \ + TAITO_COINAGE_US_COIN_START_LOC(DIPBANK) \ + TAITO_COINAGE_US_COIN_CONT_LOC(DIPBANK) + + +/* without location */ +#define TAITO_COINAGE_JAPAN_OLD_COIN_A \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_JAPAN_OLD_COIN_B \ + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 2C_3C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_JAPAN_NEW_COIN_A \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_JAPAN_NEW_COIN_B \ + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_2C ) ) + +#define TAITO_COINAGE_WORLD_COIN_A \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coin_A ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) + +#define TAITO_COINAGE_WORLD_COIN_B \ + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Coin_B ) ) \ + PORT_DIPSETTING( 0xc0, DEF_STR( 1C_2C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_3C ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( 1C_4C ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 1C_6C ) ) + +#define TAITO_COINAGE_US_COIN_START \ + PORT_DIPNAME( 0x30, 0x30, DEF_STR( Coinage ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 4C_1C ) ) \ + PORT_DIPSETTING( 0x10, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x20, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x30, DEF_STR( 1C_1C ) ) + +#define TAITO_COINAGE_US_COIN_CONT \ + PORT_DIPNAME( 0xc0, 0xc0, DEF_STR( Continue_Price ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( 3C_1C ) ) \ + PORT_DIPSETTING( 0x40, DEF_STR( 2C_1C ) ) \ + PORT_DIPSETTING( 0x80, DEF_STR( 1C_1C ) ) \ + PORT_DIPSETTING( 0xc0, "Same as Start" ) + +#define TAITO_COINAGE_JAPAN_OLD \ + TAITO_COINAGE_JAPAN_OLD_COIN_A \ + TAITO_COINAGE_JAPAN_OLD_COIN_B + +#define TAITO_COINAGE_JAPAN_NEW \ + TAITO_COINAGE_JAPAN_NEW_COIN_A \ + TAITO_COINAGE_JAPAN_NEW_COIN_B + +#define TAITO_COINAGE_WORLD \ + TAITO_COINAGE_WORLD_COIN_A \ + TAITO_COINAGE_WORLD_COIN_B + +#define TAITO_COINAGE_US \ + TAITO_COINAGE_US_COIN_START \ + TAITO_COINAGE_US_COIN_CONT + + +/************************** Difficulty Dip Swicthes ***************************/ + +/* with location */ +#define TAITO_DIFFICULTY_LOC(DIPBANK) \ + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) PORT_DIPLOCATION(#DIPBANK":1,2") \ + PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + +/* without location */ +#define TAITO_DIFFICULTY \ + PORT_DIPNAME( 0x03, 0x03, DEF_STR( Difficulty ) ) \ + PORT_DIPSETTING( 0x02, DEF_STR( Easy ) ) \ + PORT_DIPSETTING( 0x03, DEF_STR( Medium ) ) \ + PORT_DIPSETTING( 0x01, DEF_STR( Hard ) ) \ + PORT_DIPSETTING( 0x00, DEF_STR( Hardest ) ) + + +/************************** Joysticks and buttons *****************************/ + +/* generic (might be moved elsewhere) */ +#define INPUT_GENERIC_JOY_LOW_NIBBLE(PL, STATE, WAY, B01, B02, B04, B08) \ + PORT_BIT( 0x01, STATE, IPT_JOYSTICK_##B01 ) WAY PORT_PLAYER(PL) \ + PORT_BIT( 0x02, STATE, IPT_JOYSTICK_##B02 ) WAY PORT_PLAYER(PL) \ + PORT_BIT( 0x04, STATE, IPT_JOYSTICK_##B04 ) WAY PORT_PLAYER(PL) \ + PORT_BIT( 0x08, STATE, IPT_JOYSTICK_##B08 ) WAY PORT_PLAYER(PL) + +#define INPUT_GENERIC_JOY_HIGH_NIBBLE(PL, STATE, WAY, B10, B20, B40, B80) \ + PORT_BIT( 0x10, STATE, IPT_JOYSTICK_##B10 ) WAY PORT_PLAYER(PL) \ + PORT_BIT( 0x20, STATE, IPT_JOYSTICK_##B20 ) WAY PORT_PLAYER(PL) \ + PORT_BIT( 0x40, STATE, IPT_JOYSTICK_##B40 ) WAY PORT_PLAYER(PL) \ + PORT_BIT( 0x80, STATE, IPT_JOYSTICK_##B80 ) WAY PORT_PLAYER(PL) + + +/* Taito generic (more might be needed) */ +#define TAITO_GENERIC_JOY_MONO_UDLR(PL) \ + INPUT_GENERIC_JOY_LOW_NIBBLE(PL, IP_ACTIVE_LOW, PORT_8WAY, UP, DOWN, LEFT, RIGHT) + +#define TAITO_GENERIC_JOY_MONO_UDRL(PL) \ + INPUT_GENERIC_JOY_LOW_NIBBLE(PL, IP_ACTIVE_LOW, PORT_8WAY, UP, DOWN, RIGHT, LEFT) + +#define TAITO_GENERIC_JOY_MONO_LRUD(PL) \ + INPUT_GENERIC_JOY_LOW_NIBBLE(PL, IP_ACTIVE_LOW, PORT_8WAY, LEFT, RIGHT, UP, DOWN) + +#define TAITO_GENERIC_JOY_DUAL_UDLR(PL_L, PL_H) \ + INPUT_GENERIC_JOY_LOW_NIBBLE(PL_L, IP_ACTIVE_LOW, PORT_8WAY, UP, DOWN, LEFT, RIGHT) \ + INPUT_GENERIC_JOY_HIGH_NIBBLE(PL_H, IP_ACTIVE_LOW, PORT_8WAY, UP, DOWN, LEFT, RIGHT) + +#define TAITO_GENERIC_JOY_DUAL_UDRL(PL_L, PL_H) \ + INPUT_GENERIC_JOY_LOW_NIBBLE(PL_L, IP_ACTIVE_LOW, PORT_8WAY, UP, DOWN, RIGHT, LEFT) \ + INPUT_GENERIC_JOY_HIGH_NIBBLE(PL_H, IP_ACTIVE_LOW, PORT_8WAY, UP, DOWN, RIGHT, LEFT) + + +#define TAITO_GENERIC_BUTTONS_LOW_NIBBLE(PL, STATE, BUTTON_A, BUTTON_B, BUTTON_C) \ + PORT_BIT( 0x01, STATE, IPT_##BUTTON_A ) PORT_PLAYER(PL) \ + PORT_BIT( 0x02, STATE, IPT_##BUTTON_B ) PORT_PLAYER(PL) \ + PORT_BIT( 0x04, STATE, IPT_##BUTTON_C ) PORT_PLAYER(PL) + /* DO NOT fill bit 3 as it may be defined as START button ! */ + +#define TAITO_GENERIC_BUTTONS_HIGH_NIBBLE(PL, STATE, BUTTON_A, BUTTON_B, BUTTON_C) \ + PORT_BIT( 0x10, STATE, IPT_##BUTTON_A ) PORT_PLAYER(PL) \ + PORT_BIT( 0x20, STATE, IPT_##BUTTON_B ) PORT_PLAYER(PL) \ + PORT_BIT( 0x40, STATE, IPT_##BUTTON_C ) PORT_PLAYER(PL) + /* DO NOT fill bit 7 as it may be defined as START button ! */ + +#define TAITO_GENERIC_1_BUTTON(PL) \ + TAITO_GENERIC_BUTTONS_HIGH_NIBBLE(PL, IP_ACTIVE_LOW, BUTTON1, UNKNOWN, UNKNOWN) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define TAITO_GENERIC_2_BUTTONS(PL) \ + TAITO_GENERIC_BUTTONS_HIGH_NIBBLE(PL, IP_ACTIVE_LOW, BUTTON1, BUTTON2, UNKNOWN) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define TAITO_GENERIC_3_BUTTONS(PL) \ + TAITO_GENERIC_BUTTONS_HIGH_NIBBLE(PL, IP_ACTIVE_LOW, BUTTON1, BUTTON2, BUTTON3) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN ) + +#define TAITO_GENERIC_1_BUTTON_START(PL) \ + TAITO_GENERIC_BUTTONS_HIGH_NIBBLE(PL, IP_ACTIVE_LOW, BUTTON1, UNKNOWN, UNKNOWN) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##PL ) + +#define TAITO_GENERIC_2_BUTTONS_START(PL) \ + TAITO_GENERIC_BUTTONS_HIGH_NIBBLE(PL, IP_ACTIVE_LOW, BUTTON1, BUTTON2, UNKNOWN) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##PL ) + +#define TAITO_GENERIC_3_BUTTONS_START(PL) \ + TAITO_GENERIC_BUTTONS_HIGH_NIBBLE(PL, IP_ACTIVE_LOW, BUTTON1, BUTTON2, BUTTON3) \ + PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_START##PL ) + + +/* Taito games (more might be needed) */ +#define TAITO_JOY_UDLR_1_BUTTON(PL) \ + TAITO_GENERIC_JOY_MONO_UDLR(PL) \ + TAITO_GENERIC_1_BUTTON(PL) + +#define TAITO_JOY_UDLR_2_BUTTONS(PL) \ + TAITO_GENERIC_JOY_MONO_UDLR(PL) \ + TAITO_GENERIC_2_BUTTONS(PL) + +#define TAITO_JOY_UDLR_3_BUTTONS(PL) \ + TAITO_GENERIC_JOY_MONO_UDLR(PL) \ + TAITO_GENERIC_3_BUTTONS(PL) + +#define TAITO_JOY_UDRL_1_BUTTON(PL) \ + TAITO_GENERIC_JOY_MONO_UDRL(PL) \ + TAITO_GENERIC_1_BUTTON(PL) + +#define TAITO_JOY_UDRL_2_BUTTONS(PL) \ + TAITO_GENERIC_JOY_MONO_UDRL(PL) \ + TAITO_GENERIC_2_BUTTONS(PL) + +#define TAITO_JOY_UDRL_3_BUTTONS(PL) \ + TAITO_GENERIC_JOY_MONO_UDRL(PL) \ + TAITO_GENERIC_3_BUTTONS(PL) + +#define TAITO_JOY_LRUD_1_BUTTON(PL) \ + TAITO_GENERIC_JOY_MONO_LRUD(PL) \ + TAITO_GENERIC_1_BUTTON(PL) + +#define TAITO_JOY_LRUD_2_BUTTONS(PL) \ + TAITO_GENERIC_JOY_MONO_LRUD(PL) \ + TAITO_GENERIC_2_BUTTONS(PL) + +#define TAITO_JOY_LRUD_3_BUTTONS(PL) \ + TAITO_GENERIC_JOY_MONO_LRUD(PL) \ + TAITO_GENERIC_3_BUTTONS(PL) + + +#define TAITO_JOY_UDLR_1_BUTTON_START(PL) \ + TAITO_GENERIC_JOY_MONO_UDLR(PL) \ + TAITO_GENERIC_1_BUTTON_START(PL) + +#define TAITO_JOY_UDLR_2_BUTTONS_START(PL) \ + TAITO_GENERIC_JOY_MONO_UDLR(PL) \ + TAITO_GENERIC_2_BUTTONS_START(PL) + +#define TAITO_JOY_UDLR_3_BUTTONS_START(PL) \ + TAITO_GENERIC_JOY_MONO_UDLR(PL) \ + TAITO_GENERIC_3_BUTTONS_START(PL) + +#define TAITO_JOY_UDRL_1_BUTTON_START(PL) \ + TAITO_GENERIC_JOY_MONO_UDRL(PL) \ + TAITO_GENERIC_1_BUTTONS_START(PL) + +#define TAITO_JOY_UDRL_2_BUTTONS_START(PL) \ + TAITO_GENERIC_JOY_MONO_UDRL(PL) \ + TAITO_GENERIC_2_BUTTONS_START(PL) + +#define TAITO_JOY_UDRL_3_BUTTONS_START(PL) \ + TAITO_GENERIC_JOY_MONO_UDRL(PL) \ + TAITO_GENERIC_3_BUTTONS_START(PL) + +#define TAITO_JOY_LRUD_1_BUTTON_START(PL) \ + TAITO_GENERIC_JOY_MONO_LRUD(PL) \ + TAITO_GENERIC_1_BUTTON_START(PL) + +#define TAITO_JOY_LRUD_2_BUTTONS_START(PL) \ + TAITO_GENERIC_JOY_MONO_LRUD(PL) \ + TAITO_GENERIC_2_BUTTONS_START(PL) + +#define TAITO_JOY_LRUD_3_BUTTONS_START(PL) \ + TAITO_GENERIC_JOY_MONO_LRUD(PL) \ + TAITO_GENERIC_3_BUTTONS_START(PL) + + +#define TAITO_JOY_DUAL_UDLR(PL_L, PL_H) \ + TAITO_GENERIC_JOY_DUAL_UDLR(PL_L, PL_H) + +#define TAITO_JOY_DUAL_UDRL(PL_L, PL_H) \ + TAITO_GENERIC_JOY_DUAL_UDRL(PL_L, PL_H) + diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h new file mode 100644 index 00000000000..6e0f41a2697 --- /dev/null +++ b/src/mame/includes/tank8.h @@ -0,0 +1,48 @@ +/************************************************************************* + + Atari tank8 hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define TANK8_CRASH_EN NODE_01 +#define TANK8_BUGLE_EN NODE_02 +#define TANK8_MOTOR1_EN NODE_03 +#define TANK8_MOTOR2_EN NODE_04 +#define TANK8_MOTOR3_EN NODE_05 +#define TANK8_MOTOR4_EN NODE_06 +#define TANK8_MOTOR5_EN NODE_07 +#define TANK8_MOTOR6_EN NODE_08 +#define TANK8_MOTOR7_EN NODE_09 +#define TANK8_MOTOR8_EN NODE_10 +#define TANK8_EXPLOSION_EN NODE_11 +#define TANK8_ATTRACT_EN NODE_12 +#define TANK8_BUGLE_DATA1 NODE_13 +#define TANK8_BUGLE_DATA2 NODE_14 + + +/*----------- defined in audio/tank8.c -----------*/ + +DISCRETE_SOUND_EXTERN( tank8 ); + + +/*----------- defined in drivers/tank8.c -----------*/ + +void tank8_set_collision(int index); + + +/*----------- defined in video/tank8.c -----------*/ + +VIDEO_EOF( tank8 ); +VIDEO_START( tank8 ); +VIDEO_UPDATE( tank8 ); + +WRITE8_HANDLER( tank8_video_ram_w ); + +extern UINT8* tank8_video_ram; +extern UINT8* tank8_pos_h_ram; +extern UINT8* tank8_pos_v_ram; +extern UINT8* tank8_pos_d_ram; + diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h new file mode 100644 index 00000000000..998c157aa6b --- /dev/null +++ b/src/mame/includes/tatsumi.h @@ -0,0 +1,67 @@ +/*----------- defined in drivers/tatsumi.c -----------*/ + +extern UINT8* tatsumi_rom_sprite_lookup1; +extern UINT8* tatsumi_rom_sprite_lookup2; +extern UINT8* tatsumi_rom_clut0; +extern UINT8* tatsumi_rom_clut1; + +extern UINT16 *roundup5_d0000_ram, *roundup5_e0000_ram; +extern UINT16 *roundup5_unknown0, *roundup5_unknown1, *roundup5_unknown2; + +/*----------- defined in machine/tatsumi.c -----------*/ + +READ16_HANDLER( apache3_bank_r ); +WRITE16_HANDLER( apache3_bank_w ); +WRITE16_HANDLER( apache3_irq_ack_w ); +READ16_HANDLER( apache3_v30_v20_r ); +WRITE16_HANDLER( apache3_v30_v20_w ); +READ16_HANDLER( roundup_v30_z80_r ); +WRITE16_HANDLER( roundup_v30_z80_w ); +READ16_HANDLER( tatsumi_v30_68000_r ); +WRITE16_HANDLER( tatsumi_v30_68000_w ) ; +READ16_HANDLER(apache3_z80_r); +WRITE16_HANDLER(apache3_z80_w); +READ8_HANDLER( apache3_adc_r ); +WRITE8_HANDLER( apache3_adc_w ); +WRITE16_HANDLER(cyclwarr_control_w); +READ16_HANDLER(cyclwarr_control_r); +WRITE16_HANDLER( roundup5_control_w ); +WRITE16_HANDLER( apache3_a0000_w ); +WRITE16_HANDLER( roundup5_d0000_w ); +WRITE16_HANDLER( roundup5_e0000_w ); + +READ8_HANDLER(tatsumi_hack_ym2151_r); +READ8_HANDLER(tatsumi_hack_oki_r); + +extern UINT16 *tatsumi_68k_ram; +extern UINT8 *apache3_z80_ram; +extern UINT16 tatsumi_control_word; +extern UINT16 apache3_a0000[16]; + +void tatsumi_reset(void); + +/*----------- defined in video/tatsumi.c -----------*/ + +WRITE16_HANDLER( roundup5_palette_w ); +WRITE16_HANDLER( tatsumi_sprite_control_w ); +WRITE16_HANDLER( roundup5_text_w ); +WRITE16_HANDLER( roundup5_crt_w ); +READ16_HANDLER( cyclwarr_videoram_r ); +WRITE16_HANDLER( cyclwarr_videoram_w ); +READ16_HANDLER( cyclwarr_videoram2_r ); +WRITE16_HANDLER( cyclwarr_videoram2_w ); +READ16_HANDLER(roundup5_vram_r); +WRITE16_HANDLER(roundup5_vram_w); +WRITE16_HANDLER(apache3_palette_w); + +extern UINT16* tatsumi_sprite_control_ram; +extern UINT16 *cyclwarr_videoram, *cyclwarr_videoram2; +extern UINT16 *roundup_r_ram, *roundup_p_ram, *roundup_l_ram; + +VIDEO_START( apache3 ); +VIDEO_START( roundup5 ); +VIDEO_START( cyclwarr ); +VIDEO_UPDATE( roundup5 ); +VIDEO_UPDATE( apache3 ); +VIDEO_UPDATE( cyclwarr ); + diff --git a/src/mame/includes/taxidrvr.h b/src/mame/includes/taxidrvr.h new file mode 100644 index 00000000000..5bb9bb7160a --- /dev/null +++ b/src/mame/includes/taxidrvr.h @@ -0,0 +1,10 @@ +/*----------- defined in video/taxidrvr.c -----------*/ + +extern UINT8 *taxidrvr_vram0,*taxidrvr_vram1,*taxidrvr_vram2,*taxidrvr_vram3; +extern UINT8 *taxidrvr_vram4,*taxidrvr_vram5,*taxidrvr_vram6,*taxidrvr_vram7; +extern UINT8 *taxidrvr_scroll; +extern int taxidrvr_bghide; + +WRITE8_HANDLER( taxidrvr_spritectrl_w ); + +VIDEO_UPDATE( taxidrvr ); diff --git a/src/mame/includes/thedeep.h b/src/mame/includes/thedeep.h new file mode 100644 index 00000000000..4190556fda9 --- /dev/null +++ b/src/mame/includes/thedeep.h @@ -0,0 +1,12 @@ +/*----------- defined in video/thedeep.c -----------*/ + +extern UINT8 *thedeep_vram_0, *thedeep_vram_1; +extern UINT8 *thedeep_scroll, *thedeep_scroll2; + +WRITE8_HANDLER( thedeep_vram_0_w ); +WRITE8_HANDLER( thedeep_vram_1_w ); + +PALETTE_INIT( thedeep ); +VIDEO_START( thedeep ); +VIDEO_UPDATE( thedeep ); + diff --git a/src/mame/includes/thunderj.h b/src/mame/includes/thunderj.h new file mode 100644 index 00000000000..688e588b062 --- /dev/null +++ b/src/mame/includes/thunderj.h @@ -0,0 +1,14 @@ +/************************************************************************* + + Atari ThunderJaws hardware + +*************************************************************************/ + +/*----------- defined in video/thunderj.c -----------*/ + +extern UINT8 thunderj_alpha_tile_bank; + +VIDEO_START( thunderj ); +VIDEO_UPDATE( thunderj ); + +void thunderj_mark_high_palette(mame_bitmap *bitmap, UINT16 *pf, UINT16 *mo, int x, int y); diff --git a/src/mame/includes/tickee.h b/src/mame/includes/tickee.h new file mode 100644 index 00000000000..6bd6c2bbaca --- /dev/null +++ b/src/mame/includes/tickee.h @@ -0,0 +1,18 @@ +/************************************************************************* + + Raster Elite Tickee Tickats hardware + +**************************************************************************/ + +/*----------- defined in drivers/tickee.c -----------*/ + +extern UINT16 *tickee_control; + + +/*----------- defined in video/tickee.c -----------*/ + +extern UINT16 *tickee_vram; + +VIDEO_START( tickee ); + +void tickee_scanline_update(running_machine *machine, int screen, mame_bitmap *bitmap, int scanline, const tms34010_display_params *params); diff --git a/src/mame/includes/tnzs.h b/src/mame/includes/tnzs.h new file mode 100644 index 00000000000..9bc15f0dbd5 --- /dev/null +++ b/src/mame/includes/tnzs.h @@ -0,0 +1,39 @@ +/*----------- defined in drivers/tnzs.c -----------*/ + +extern UINT8 *tnzs_objram, *tnzs_sharedram; +extern UINT8 *tnzs_vdcram, *tnzs_scrollram, *tnzs_objctrl, *tnzs_bg_flag; + + +/*----------- defined in machine/tnzs.c -----------*/ + +READ8_HANDLER( tnzs_port1_r ); +READ8_HANDLER( tnzs_port2_r ); +WRITE8_HANDLER( tnzs_port2_w ); +READ8_HANDLER( arknoid2_sh_f000_r ); + +DRIVER_INIT( plumpop ); +DRIVER_INIT( extrmatn ); +DRIVER_INIT( arknoid2 ); +DRIVER_INIT( drtoppel ); +DRIVER_INIT( chukatai ); +DRIVER_INIT( tnzs ); +DRIVER_INIT( tnzsb ); +DRIVER_INIT( kabukiz ); +DRIVER_INIT( insectx ); +DRIVER_INIT( kageki ); + +READ8_HANDLER( tnzs_mcu_r ); +WRITE8_HANDLER( tnzs_mcu_w ); +INTERRUPT_GEN( arknoid2_interrupt ); +MACHINE_RESET( tnzs ); +READ8_HANDLER( tnzs_sharedram_r ); +WRITE8_HANDLER( tnzs_sharedram_w ); +WRITE8_HANDLER( tnzs_bankswitch_w ); +WRITE8_HANDLER( tnzs_bankswitch1_w ); + + +/*----------- defined in video/tnzs.c -----------*/ + +PALETTE_INIT( arknoid2 ); +VIDEO_UPDATE( tnzs ); +VIDEO_EOF( tnzs ); diff --git a/src/mame/includes/toaplan1.h b/src/mame/includes/toaplan1.h new file mode 100644 index 00000000000..ade41b05d38 --- /dev/null +++ b/src/mame/includes/toaplan1.h @@ -0,0 +1,86 @@ +/*************************************************************************** + ToaPlan game hardware from 1988-1991 + ------------------------------------ +****************************************************************************/ + + +/*----------- defined in machine/toaplan1.c -----------*/ + +INTERRUPT_GEN( toaplan1_interrupt ); +WRITE16_HANDLER( toaplan1_intenable_w ); +READ16_HANDLER ( toaplan1_shared_r ); +WRITE16_HANDLER( toaplan1_shared_w ); +WRITE16_HANDLER( toaplan1_reset_sound ); +WRITE16_HANDLER( demonwld_dsp_addrsel_w ); +READ16_HANDLER ( demonwld_dsp_r ); +WRITE16_HANDLER( demonwld_dsp_w ); +WRITE16_HANDLER( demonwld_dsp_bio_w ); +WRITE16_HANDLER( demonwld_dsp_ctrl_w ); +READ16_HANDLER ( demonwld_BIO_r ); +READ16_HANDLER ( samesame_port_6_word_r ); +READ16_HANDLER ( vimana_mcu_r ); +WRITE16_HANDLER( vimana_mcu_w ); +READ16_HANDLER ( vimana_input_port_5_word_r ); + +WRITE8_HANDLER( rallybik_coin_w ); +WRITE8_HANDLER( toaplan1_coin_w ); +WRITE16_HANDLER( samesame_coin_w ); + +MACHINE_RESET( toaplan1 ); +MACHINE_RESET( demonwld ); +MACHINE_RESET( vimana ); +MACHINE_RESET( zerozone ); /* hack for ZeroWing/OutZone. See video */ + +extern void toaplan1_driver_savestate(void); +extern void demonwld_driver_savestate(void); +extern void vimana_driver_savestate(void); + + +extern int toaplan1_unk_reset_port; + +extern UINT8 *toaplan1_sharedram; + + + +/*----------- defined in video/toaplan1.c -----------*/ + +READ16_HANDLER ( toaplan1_frame_done_r ); +WRITE16_HANDLER( toaplan1_bcu_control_w ); +WRITE16_HANDLER( rallybik_bcu_flipscreen_w ); +WRITE16_HANDLER( toaplan1_bcu_flipscreen_w ); +WRITE16_HANDLER( toaplan1_fcu_flipscreen_w ); + +READ16_HANDLER ( rallybik_tileram16_r ); +READ16_HANDLER ( toaplan1_tileram16_r ); +WRITE16_HANDLER( toaplan1_tileram16_w ); +READ16_HANDLER ( toaplan1_spriteram16_r ); +WRITE16_HANDLER( toaplan1_spriteram16_w ); +READ16_HANDLER ( toaplan1_spritesizeram16_r ); +WRITE16_HANDLER( toaplan1_spritesizeram16_w ); +READ16_HANDLER ( toaplan1_colorram1_r ); +WRITE16_HANDLER( toaplan1_colorram1_w ); +READ16_HANDLER ( toaplan1_colorram2_r ); +WRITE16_HANDLER( toaplan1_colorram2_w ); + +READ16_HANDLER ( toaplan1_scroll_regs_r ); +WRITE16_HANDLER( toaplan1_scroll_regs_w ); +WRITE16_HANDLER( toaplan1_tile_offsets_w ); +READ16_HANDLER ( toaplan1_tileram_offs_r ); +WRITE16_HANDLER( toaplan1_tileram_offs_w ); +READ16_HANDLER ( toaplan1_spriteram_offs_r ); +WRITE16_HANDLER( toaplan1_spriteram_offs_w ); + +VIDEO_EOF( rallybik ); +VIDEO_EOF( toaplan1 ); +VIDEO_EOF( samesame ); +VIDEO_START( rallybik ); +VIDEO_START( toaplan1 ); +VIDEO_UPDATE( rallybik ); +VIDEO_UPDATE( toaplan1 ); +VIDEO_UPDATE( demonwld ); + + +extern UINT16 *toaplan1_colorram1; +extern UINT16 *toaplan1_colorram2; +extern size_t toaplan1_colorram1_size; +extern size_t toaplan1_colorram2_size; diff --git a/src/mame/includes/toobin.h b/src/mame/includes/toobin.h new file mode 100644 index 00000000000..68a8c4a7c51 --- /dev/null +++ b/src/mame/includes/toobin.h @@ -0,0 +1,16 @@ +/************************************************************************* + + Atari Toobin' hardware + +*************************************************************************/ + +/*----------- defined in video/toobin.c -----------*/ + +WRITE16_HANDLER( toobin_paletteram_w ); +WRITE16_HANDLER( toobin_intensity_w ); +WRITE16_HANDLER( toobin_xscroll_w ); +WRITE16_HANDLER( toobin_yscroll_w ); +WRITE16_HANDLER( toobin_slip_w ); + +VIDEO_START( toobin ); +VIDEO_UPDATE( toobin ); diff --git a/src/mame/includes/triplhnt.h b/src/mame/includes/triplhnt.h new file mode 100644 index 00000000000..ddcb652c569 --- /dev/null +++ b/src/mame/includes/triplhnt.h @@ -0,0 +1,41 @@ +/************************************************************************* + + Atari Triple Hunt hardware + +*************************************************************************/ + +#include "sound/discrete.h" +#include "sound/samples.h" + +/* Discrete Sound Input Nodes */ +#define TRIPLHNT_BEAR_ROAR_DATA NODE_01 +#define TRIPLHNT_BEAR_EN NODE_02 +#define TRIPLHNT_SHOT_DATA NODE_03 +#define TRIPLHNT_SCREECH_EN NODE_04 +#define TRIPLHNT_LAMP_EN NODE_05 + + +/*----------- defined in drivers/triplhnt.c -----------*/ + +void triplhnt_set_collision(int data); + + +/*----------- defined in audio/triplhnt.c -----------*/ + +DISCRETE_SOUND_EXTERN( triplhnt ); +extern struct Samplesinterface triplhnt_samples_interface; + + +/*----------- defined in video/triplhnt.c -----------*/ + +VIDEO_START( triplhnt ); +VIDEO_UPDATE( triplhnt ); + +extern UINT8* triplhnt_playfield_ram; +extern UINT8* triplhnt_vpos_ram; +extern UINT8* triplhnt_hpos_ram; +extern UINT8* triplhnt_code_ram; +extern UINT8* triplhnt_orga_ram; + +extern int triplhnt_sprite_zoom; +extern int triplhnt_sprite_bank; diff --git a/src/mame/includes/tubep.h b/src/mame/includes/tubep.h new file mode 100644 index 00000000000..73ca2f9e2d6 --- /dev/null +++ b/src/mame/includes/tubep.h @@ -0,0 +1,25 @@ +/*----------- defined in video/tubep.c -----------*/ + +void tubep_vblank_end(void); +PALETTE_INIT( tubep ); +VIDEO_UPDATE( tubep ); +PALETTE_INIT( rjammer ); +VIDEO_UPDATE( rjammer ); +VIDEO_START( tubep ); + +extern UINT8 *rjammer_backgroundram; +extern UINT8 *tubep_backgroundram; +extern UINT8 *tubep_textram; +extern UINT8 *tubep_sprite_colorsharedram; + +extern WRITE8_HANDLER( tubep_textram_w ); +extern WRITE8_HANDLER( rjammer_background_LS377_w ); +extern WRITE8_HANDLER( rjammer_background_page_w ); + +extern WRITE8_HANDLER( tubep_colorproms_A4_line_w ); +extern WRITE8_HANDLER( tubep_background_romselect_w ); +extern WRITE8_HANDLER( tubep_background_a000_w ); +extern WRITE8_HANDLER( tubep_background_c000_w ); + +extern WRITE8_HANDLER( tubep_sprite_control_w ); + diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h new file mode 100644 index 00000000000..9a98688be10 --- /dev/null +++ b/src/mame/includes/turbo.h @@ -0,0 +1,100 @@ +/************************************************************************* + + Sega Z80-3D system + +*************************************************************************/ + +#include "sound/discrete.h" + +/* sprites are scaled in the analog domain; to give a better */ +/* rendition of this, we scale in the X direction by this factor */ +#define TURBO_X_SCALE 2 + + +typedef struct _i8279_state i8279_state; +struct _i8279_state +{ + UINT8 command; + UINT8 mode; + UINT8 prescale; + UINT8 inhibit; + UINT8 clear; + UINT8 ram[16]; +}; + + +typedef struct _turbo_state turbo_state; +struct _turbo_state +{ + /* memory pointers */ + UINT8 * videoram; + UINT8 * spriteram; + UINT8 * sprite_position; + UINT8 * buckrog_bitmap_ram; + + /* machine states */ + i8279_state i8279; + + /* sound state */ + UINT8 turbo_osel, turbo_bsel; + UINT8 sound_state[3]; + + /* video state */ + tilemap * fg_tilemap; + + /* Turbo-specific states */ + UINT8 turbo_opa, turbo_opb, turbo_opc; + UINT8 turbo_ipa, turbo_ipb, turbo_ipc; + UINT8 turbo_fbpla, turbo_fbcol; + UINT8 turbo_speed; + UINT8 turbo_collision; + UINT8 turbo_last_analog; + UINT8 turbo_accel; + + /* Subroc-specific states */ + UINT8 subroc3d_col, subroc3d_ply, subroc3d_flip; + UINT8 subroc3d_mdis, subroc3d_mdir; + UINT8 subroc3d_tdis, subroc3d_tdir; + UINT8 subroc3d_fdis, subroc3d_fdir; + UINT8 subroc3d_hdis, subroc3d_hdir; + + /* Buck Rogers-specific states */ + UINT8 buckrog_fchg, buckrog_mov, buckrog_obch; + UINT8 buckrog_command; + UINT8 buckrog_myship; +}; + + +/*----------- defined in audio/turbo.c -----------*/ + +MACHINE_DRIVER_EXTERN( turbo_samples ); +MACHINE_DRIVER_EXTERN( subroc3d_samples ); +MACHINE_DRIVER_EXTERN( buckrog_samples ); + +WRITE8_HANDLER( turbo_sound_a_w ); +WRITE8_HANDLER( turbo_sound_b_w ); +WRITE8_HANDLER( turbo_sound_c_w ); + +WRITE8_HANDLER( subroc3d_sound_a_w ); +WRITE8_HANDLER( subroc3d_sound_b_w ); +WRITE8_HANDLER( subroc3d_sound_c_w ); + +WRITE8_HANDLER( buckrog_sound_a_w ); +WRITE8_HANDLER( buckrog_sound_b_w ); + + +/*----------- defined in video/turbo.c -----------*/ + +PALETTE_INIT( turbo ); +VIDEO_START( turbo ); +VIDEO_UPDATE( turbo ); + +PALETTE_INIT( subroc3d ); +VIDEO_UPDATE( subroc3d ); + +PALETTE_INIT( buckrog ); +VIDEO_START( buckrog ); +VIDEO_UPDATE( buckrog ); + +WRITE8_HANDLER( turbo_videoram_w ); +WRITE8_HANDLER( buckrog_bitmap_w ); diff --git a/src/mame/includes/twincobr.h b/src/mame/includes/twincobr.h new file mode 100644 index 00000000000..4aac31ded15 --- /dev/null +++ b/src/mame/includes/twincobr.h @@ -0,0 +1,88 @@ +/*************************************************************************** + Twincobr/Flying shark/Wardner game hardware from 1986-1987 + ----------------------------------------------------------- +****************************************************************************/ + + + +/*----------- defined in drivers/wardner.c -----------*/ + +extern void wardner_restore_bank(void); + +/*----------- defined in machine/twincobr.c -----------*/ + +INTERRUPT_GEN( twincobr_interrupt ); +INTERRUPT_GEN( wardner_interrupt ); + +WRITE16_HANDLER( twincobr_dsp_addrsel_w ); +READ16_HANDLER( twincobr_dsp_r ); +WRITE16_HANDLER( twincobr_dsp_w ); +WRITE16_HANDLER( twincobr_dsp_bio_w ); +READ16_HANDLER ( twincobr_BIO_r ); +WRITE16_HANDLER( twincobr_control_w ); +READ16_HANDLER( twincobr_sharedram_r ); +WRITE16_HANDLER( twincobr_sharedram_w ); +WRITE8_HANDLER( twincobr_coin_w ); +READ16_HANDLER( fsharkbt_dsp_r ); +WRITE16_HANDLER( fsharkbt_dsp_w ); +WRITE16_HANDLER( fshark_coin_dsp_w ); +WRITE16_HANDLER( wardner_dsp_addrsel_w ); +READ16_HANDLER( wardner_dsp_r ); +WRITE16_HANDLER( wardner_dsp_w ); +WRITE8_HANDLER( wardner_control_w ); +WRITE8_HANDLER( wardner_coin_dsp_w ); + +MACHINE_RESET( twincobr ); +MACHINE_RESET( wardner ); + +extern void twincobr_driver_savestate(void); +extern void wardner_driver_savestate(void); + +extern int toaplan_main_cpu; /* Main CPU type. 0 = 68000, 1 = Z80 */ +extern int twincobr_intenable; +extern int wardner_membank; + +extern UINT8 *twincobr_sharedram; + + +/*----------- defined in video/twincobr.c -----------*/ + +extern void twincobr_flipscreen(int flip); +extern void twincobr_display(int enable); + +READ16_HANDLER( twincobr_txram_r ); +READ16_HANDLER( twincobr_bgram_r ); +READ16_HANDLER( twincobr_fgram_r ); +WRITE16_HANDLER( twincobr_txram_w ); +WRITE16_HANDLER( twincobr_bgram_w ); +WRITE16_HANDLER( twincobr_fgram_w ); +WRITE16_HANDLER( twincobr_txscroll_w ); +WRITE16_HANDLER( twincobr_bgscroll_w ); +WRITE16_HANDLER( twincobr_fgscroll_w ); +WRITE16_HANDLER( twincobr_exscroll_w ); +WRITE16_HANDLER( twincobr_txoffs_w ); +WRITE16_HANDLER( twincobr_bgoffs_w ); +WRITE16_HANDLER( twincobr_fgoffs_w ); +WRITE16_HANDLER( twincobr_crtc_reg_sel_w ); +WRITE16_HANDLER( twincobr_crtc_data_w ); +WRITE8_HANDLER( wardner_videoram_w ); +READ8_HANDLER( wardner_videoram_r ); +WRITE8_HANDLER( wardner_bglayer_w ); +WRITE8_HANDLER( wardner_fglayer_w ); +WRITE8_HANDLER( wardner_txlayer_w ); +WRITE8_HANDLER( wardner_bgscroll_w ); +WRITE8_HANDLER( wardner_fgscroll_w ); +WRITE8_HANDLER( wardner_txscroll_w ); +WRITE8_HANDLER( wardner_exscroll_w ); +READ8_HANDLER( wardner_sprite_r ); +WRITE8_HANDLER( wardner_sprite_w ); +WRITE8_HANDLER( wardner_CRTC_reg_sel_w ); +WRITE8_HANDLER( wardner_CRTC_data_w ); + +extern int twincobr_fg_rom_bank; +extern int twincobr_bg_ram_bank; +extern int wardner_sprite_hack; + +VIDEO_START( toaplan0 ); +VIDEO_UPDATE( toaplan0 ); +VIDEO_EOF( toaplan0 ); diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h new file mode 100644 index 00000000000..5df5c138462 --- /dev/null +++ b/src/mame/includes/ultratnk.h @@ -0,0 +1,17 @@ +/************************************************************************* + + Atari Ultra Tank hardware + +*************************************************************************/ + + +/*----------- defined in video/ultratnk.c -----------*/ + +extern int ultratnk_collision[4]; + +PALETTE_INIT( ultratnk ); +VIDEO_START( ultratnk ); +VIDEO_UPDATE( ultratnk ); +VIDEO_EOF( ultratnk ); + +WRITE8_HANDLER( ultratnk_video_ram_w ); diff --git a/src/mame/includes/unico.h b/src/mame/includes/unico.h new file mode 100644 index 00000000000..fd68c07cd76 --- /dev/null +++ b/src/mame/includes/unico.h @@ -0,0 +1,23 @@ +/*----------- defined in video/unico.c -----------*/ + +extern UINT16 *unico_vram_0, *unico_scrollx_0, *unico_scrolly_0; +extern UINT16 *unico_vram_1, *unico_scrollx_1, *unico_scrolly_1; +extern UINT16 *unico_vram_2, *unico_scrollx_2, *unico_scrolly_2; +extern UINT32 *unico_vram32_0, *unico_vram32_1, *unico_vram32_2, *unico_scroll32; + +WRITE16_HANDLER( unico_vram_0_w ); +WRITE16_HANDLER( unico_vram_1_w ); +WRITE16_HANDLER( unico_vram_2_w ); +WRITE16_HANDLER( unico_palette_w ); + +WRITE32_HANDLER( unico_vram32_0_w ); +WRITE32_HANDLER( unico_vram32_1_w ); +WRITE32_HANDLER( unico_vram32_2_w ); +WRITE32_HANDLER( unico_palette32_w ); + +VIDEO_START( unico ); +VIDEO_UPDATE( unico ); + +VIDEO_START( zeropnt2 ); +VIDEO_UPDATE( zeropnt2 ); + diff --git a/src/mame/includes/vertigo.h b/src/mame/includes/vertigo.h new file mode 100644 index 00000000000..50c0cbc9a01 --- /dev/null +++ b/src/mame/includes/vertigo.h @@ -0,0 +1,26 @@ +/************************************************************************* + + Exidy Vertigo hardware + +*************************************************************************/ + +/*----------- defined in machine/vertigo.c -----------*/ + +READ16_HANDLER( vertigo_io_convert ); +READ16_HANDLER( vertigo_io_adc ); +READ16_HANDLER( vertigo_coin_r ); +READ16_HANDLER( vertigo_sio_r ); +WRITE16_HANDLER( vertigo_audio_w ); +WRITE16_HANDLER( vertigo_motor_w ); +WRITE16_HANDLER( vertigo_wsot_w ); + +INTERRUPT_GEN( vertigo_interrupt ); +MACHINE_RESET( vertigo ); + +/*----------- defined in video/vertigo.c -----------*/ + +extern UINT16 *vertigo_vectorram; + +void vertigo_vproc_init(void); +void vertigo_vproc(int cycles, int irq4); + diff --git a/src/mame/includes/vicdual.h b/src/mame/includes/vicdual.h new file mode 100644 index 00000000000..2df9fe54768 --- /dev/null +++ b/src/mame/includes/vicdual.h @@ -0,0 +1,75 @@ +/************************************************************************* + + VIC Dual Game board + +*************************************************************************/ + +#include "sound/discrete.h" + + +#define VICDUAL_MASTER_CLOCK (15468480) +#define VICDUAL_MAIN_CPU_CLOCK (VICDUAL_MASTER_CLOCK/8) +#define VICDUAL_PIXEL_CLOCK (VICDUAL_MASTER_CLOCK/3) +#define VICDUAL_HTOTAL (0x148) +#define VICDUAL_HBEND (0x000) +#define VICDUAL_HBSTART (0x100) +#define VICDUAL_HSSTART (0x110) +#define VICDUAL_HSEND (0x130) +#define VICDUAL_VTOTAL (0x106) +#define VICDUAL_VBEND (0x000) +#define VICDUAL_VBSTART (0x0e0) +#define VICDUAL_VSSTART (0x0ec) +#define VICDUAL_VSEND (0x0f0) + + +/*----------- defined in drivers/vicdual.c -----------*/ + +UINT8 vicdual_videoram_r(offs_t offset); +UINT8 vicdual_characterram_r(offs_t offset); + +int vicdual_is_cabinet_color(void); + + +/*----------- defined in video/vicdual.c -----------*/ + +WRITE8_HANDLER( vicdual_palette_bank_w ); + +VIDEO_UPDATE( vicdual_bw ); +VIDEO_UPDATE( vicdual_color ); +VIDEO_UPDATE( vicdual_bw_or_color ); + + +/*----------- defined in audio/vicdual.c -----------*/ + +MACHINE_START( frogs_audio ); +MACHINE_DRIVER_EXTERN( frogs_audio ); +MACHINE_DRIVER_EXTERN( headon_audio ); +WRITE8_HANDLER( frogs_audio_w ); +WRITE8_HANDLER( headon_audio_w ); +WRITE8_HANDLER( invho2_audio_w ); + + +/*----------- defined in audio/depthch.c -----------*/ + +MACHINE_DRIVER_EXTERN( depthch_audio ); +WRITE8_HANDLER( depthch_audio_w ); + + +/*----------- defined in audio/carnival.c -----------*/ + +MACHINE_DRIVER_EXTERN( carnival_audio ); +WRITE8_HANDLER( carnival_audio_1_w ); +WRITE8_HANDLER( carnival_audio_2_w ); + + +/*----------- defined in audio/invinco.c -----------*/ + +MACHINE_DRIVER_EXTERN( invinco_audio ); +WRITE8_HANDLER( invinco_audio_w ); + + +/*----------- defined in audio/pulsar.c -----------*/ + +MACHINE_DRIVER_EXTERN( pulsar_audio ); +WRITE8_HANDLER( pulsar_audio_1_w ); +WRITE8_HANDLER( pulsar_audio_2_w ); diff --git a/src/mame/includes/videopin.h b/src/mame/includes/videopin.h new file mode 100644 index 00000000000..d1b647d213c --- /dev/null +++ b/src/mame/includes/videopin.h @@ -0,0 +1,32 @@ +/************************************************************************* + + Atari Video Pinball hardware + +*************************************************************************/ + +#include "sound/discrete.h" + +/* Discrete Sound Input Nodes */ +#define VIDEOPIN_OCTAVE_DATA NODE_01 +#define VIDEOPIN_NOTE_DATA NODE_02 +#define VIDEOPIN_BELL_EN NODE_03 +#define VIDEOPIN_BONG_EN NODE_04 +#define VIDEOPIN_ATTRACT_EN NODE_05 +#define VIDEOPIN_VOL_DATA NODE_06 + + +/*----------- defined in audio/videopin.c -----------*/ + +DISCRETE_SOUND_EXTERN( videopin ); + + +/*----------- defined in video/videopin.c -----------*/ + +extern UINT8* videopin_video_ram; + +WRITE8_HANDLER( videopin_video_ram_w ); +WRITE8_HANDLER( videopin_ball_w ); + +VIDEO_START( videopin ); +VIDEO_UPDATE( videopin ); + diff --git a/src/mame/includes/vindictr.h b/src/mame/includes/vindictr.h new file mode 100644 index 00000000000..12344887150 --- /dev/null +++ b/src/mame/includes/vindictr.h @@ -0,0 +1,14 @@ +/************************************************************************* + + Atari Vindicators hardware + +*************************************************************************/ + +/*----------- defined in video/vindictr.c -----------*/ + +WRITE16_HANDLER( vindictr_paletteram_w ); + +VIDEO_START( vindictr ); +VIDEO_UPDATE( vindictr ); + +void vindictr_scanline_update(running_machine *machine, int scrnum, int scanline); diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h new file mode 100644 index 00000000000..c2077f88309 --- /dev/null +++ b/src/mame/includes/warpwarp.h @@ -0,0 +1,35 @@ +#include "sound/custom.h" + +/*----------- defined in video/warpwarp.c -----------*/ + +extern UINT8 *geebee_videoram,*warpwarp_videoram; +extern int geebee_bgw; +extern int warpwarp_ball_on; +extern int warpwarp_ball_h, warpwarp_ball_v; +extern int warpwarp_ball_sizex, warpwarp_ball_sizey; +extern int geebee_handleoverlay; + +PALETTE_INIT( geebee ); +PALETTE_INIT( navarone ); +PALETTE_INIT( warpwarp ); +VIDEO_START( geebee ); +VIDEO_START( navarone ); +VIDEO_START( warpwarp ); +VIDEO_UPDATE( geebee ); +VIDEO_UPDATE( warpwarp ); +WRITE8_HANDLER( warpwarp_videoram_w ); +WRITE8_HANDLER( geebee_videoram_w ); + + +/*----------- defined in audio/geebee.c -----------*/ + +WRITE8_HANDLER( geebee_sound_w ); +void *geebee_sh_start(int clock, const struct CustomSound_interface *config); + + +/*----------- defined in audio/warpwarp.c -----------*/ + +WRITE8_HANDLER( warpwarp_sound_w ); +WRITE8_HANDLER( warpwarp_music1_w ); +WRITE8_HANDLER( warpwarp_music2_w ); +void *warpwarp_sh_start(int clock, const struct CustomSound_interface *config); diff --git a/src/mame/includes/williams.h b/src/mame/includes/williams.h new file mode 100644 index 00000000000..1d461ec3dc4 --- /dev/null +++ b/src/mame/includes/williams.h @@ -0,0 +1,125 @@ +/************************************************************************* + + Driver for early Williams games + +**************************************************************************/ + + +#include "machine/6821pia.h" + +/*----------- defined in drivers/williams.c -----------*/ + +void defender_install_io_space(void); + + +/*----------- defined in machine/williams.c -----------*/ + +/* Generic old-Williams PIA interfaces */ +extern const pia6821_interface williams_pia_0_intf; +extern const pia6821_interface williams_muxed_pia_0_intf; +extern const pia6821_interface williams_dual_muxed_pia_0_intf; +extern const pia6821_interface williams_49way_pia_0_intf; +extern const pia6821_interface williams_49way_muxed_pia_0_intf; +extern const pia6821_interface williams_pia_1_intf; +extern const pia6821_interface williams_snd_pia_intf; + +/* Game-specific old-Williams PIA interfaces */ +extern const pia6821_interface lottofun_pia_0_intf; +extern const pia6821_interface sinistar_snd_pia_intf; +extern const pia6821_interface playball_pia_1_intf; +extern const pia6821_interface spdball_pia_3_intf; + +/* Generic later-Williams PIA interfaces */ +extern const pia6821_interface williams2_muxed_pia_0_intf; +extern const pia6821_interface williams2_pia_1_intf; +extern const pia6821_interface williams2_snd_pia_intf; + +/* Game-specific later-Williams PIA interfaces */ +extern const pia6821_interface mysticm_pia_0_intf; +extern const pia6821_interface tshoot_pia_0_intf; +extern const pia6821_interface tshoot_snd_pia_intf; +extern const pia6821_interface joust2_pia_1_intf; + +/* initialization */ +MACHINE_RESET( defender ); +MACHINE_RESET( williams ); +MACHINE_RESET( blaster ); +MACHINE_RESET( williams2 ); +MACHINE_START( joust2 ); +MACHINE_RESET( joust2 ); + +/* banking */ +WRITE8_HANDLER( defender_bank_select_w ); +WRITE8_HANDLER( williams_vram_select_w ); +WRITE8_HANDLER( sinistar_vram_select_w ); +WRITE8_HANDLER( blaster_bank_select_w ); +WRITE8_HANDLER( blaster_vram_select_w ); +WRITE8_HANDLER( williams2_bank_select_w ); + +/* misc */ +WRITE8_HANDLER( williams_cmos_w ); +WRITE8_HANDLER( bubbles_cmos_w ); +WRITE8_HANDLER( williams_watchdog_reset_w ); +WRITE8_HANDLER( williams2_watchdog_reset_w ); +WRITE8_HANDLER( williams2_7segment_w ); + +/* Mayday protection */ +extern UINT8 *mayday_protection; +READ8_HANDLER( mayday_protection_r ); + +WRITE8_HANDLER( defender_video_control_w ); + +/*----------- defined in video/williams.c -----------*/ + +#define WILLIAMS_BLITTER_NONE 0 /* no blitter */ +#define WILLIAMS_BLITTER_SC01 1 /* SC-01 blitter */ +#define WILLIAMS_BLITTER_SC02 2 /* SC-02 "fixed" blitter */ + +#define WILLIAMS_TILEMAP_MYSTICM 0 /* IC79 is a 74LS85 comparator */ +#define WILLIAMS_TILEMAP_TSHOOT 1 /* IC79 is a 74LS157 selector jumpered to be enabled */ +#define WILLIAMS_TILEMAP_JOUST2 2 /* IC79 is a 74LS157 selector jumpered to be disabled */ + +/* RAM globals */ +extern UINT8 *williams_videoram; +extern UINT8 *williams2_tileram; +extern UINT8 *blaster_palette_0; +extern UINT8 *blaster_scanline_control; + +/* blitter globals */ +extern UINT8 williams_blitter_config; +extern UINT16 williams_blitter_clip_address; +extern UINT8 williams_blitter_window_enable; + +/* tilemap globals */ +extern UINT8 williams2_tilemap_config; + +/* rendering globals */ +extern UINT8 williams_cocktail; + + +WRITE8_HANDLER( williams_blitter_w ); +WRITE8_HANDLER( williams_paletteram_w ); +WRITE8_HANDLER( blaster_remap_select_w ); +WRITE8_HANDLER( blaster_palette_0_w ); +WRITE8_HANDLER( blaster_video_control_w ); +WRITE8_HANDLER( blaster_scanline_control_w ); +READ8_HANDLER( williams_video_counter_r ); +READ8_HANDLER( williams2_video_counter_r ); + +VIDEO_START( williams ); +VIDEO_START( blaster ); +VIDEO_START( williams2 ); + +VIDEO_UPDATE( williams ); +VIDEO_UPDATE( blaster ); +VIDEO_UPDATE( williams2 ); + + +WRITE8_HANDLER( williams2_tileram_w ); +READ8_HANDLER( williams2_paletteram_r ); +WRITE8_HANDLER( williams2_paletteram_w ); +WRITE8_HANDLER( williams2_fg_select_w ); +WRITE8_HANDLER( williams2_bg_select_w ); +WRITE8_HANDLER( williams2_xscroll_low_w ); +WRITE8_HANDLER( williams2_xscroll_high_w ); +WRITE8_HANDLER( williams2_blit_window_enable_w ); diff --git a/src/mame/includes/wwfwfest.h b/src/mame/includes/wwfwfest.h new file mode 100644 index 00000000000..82b86b719f6 --- /dev/null +++ b/src/mame/includes/wwfwfest.h @@ -0,0 +1,12 @@ +/*----------- defined in video/wwfwfest.c -----------*/ + +extern UINT16 *wwfwfest_fg0_videoram, *wwfwfest_bg0_videoram, *wwfwfest_bg1_videoram; +extern int wwfwfest_pri; +extern int wwfwfest_bg0_scrollx, wwfwfest_bg0_scrolly, wwfwfest_bg1_scrollx, wwfwfest_bg1_scrolly; + +VIDEO_START( wwfwfest ); +VIDEO_START( wwfwfstb ); +VIDEO_UPDATE( wwfwfest ); +WRITE16_HANDLER( wwfwfest_fg0_videoram_w ); +WRITE16_HANDLER( wwfwfest_bg0_videoram_w ); +WRITE16_HANDLER( wwfwfest_bg1_videoram_w ); diff --git a/src/mame/includes/xybots.h b/src/mame/includes/xybots.h new file mode 100644 index 00000000000..6df4f58e8d8 --- /dev/null +++ b/src/mame/includes/xybots.h @@ -0,0 +1,10 @@ +/************************************************************************* + + Atari Xybots hardware + +*************************************************************************/ + +/*----------- defined in video/xybots.c -----------*/ + +VIDEO_START( xybots ); +VIDEO_UPDATE( xybots ); diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h new file mode 100644 index 00000000000..45afd79682d --- /dev/null +++ b/src/mame/includes/zaxxon.h @@ -0,0 +1,44 @@ +/*************************************************************************** + + Sega Zaxxon hardware + +***************************************************************************/ + +/*----------- defined in audio/zaxxon.c -----------*/ + +WRITE8_HANDLER( zaxxon_sound_a_w ); +WRITE8_HANDLER( zaxxon_sound_b_w ); +WRITE8_HANDLER( zaxxon_sound_c_w ); + +WRITE8_HANDLER( congo_sound_b_w ); +WRITE8_HANDLER( congo_sound_c_w ); + +MACHINE_DRIVER_EXTERN( zaxxon_samples ); +MACHINE_DRIVER_EXTERN( congo_samples ); + + +/*----------- defined in video/zaxxon.c -----------*/ + +WRITE8_HANDLER( zaxxon_flipscreen_w ); +WRITE8_HANDLER( zaxxon_fg_color_w ); +WRITE8_HANDLER( zaxxon_bg_position_w ); +WRITE8_HANDLER( zaxxon_bg_color_w ); +WRITE8_HANDLER( zaxxon_bg_enable_w ); + +WRITE8_HANDLER( zaxxon_videoram_w ); +WRITE8_HANDLER( congo_colorram_w ); + +WRITE8_HANDLER( congo_fg_bank_w ); +WRITE8_HANDLER( congo_color_bank_w ); +WRITE8_HANDLER( congo_sprite_custom_w ); + +PALETTE_INIT( zaxxon ); + +VIDEO_START( zaxxon ); +VIDEO_START( razmataz ); +VIDEO_START( congo ); + +VIDEO_UPDATE( zaxxon ); +VIDEO_UPDATE( razmataz ); +VIDEO_UPDATE( congo ); +VIDEO_UPDATE( futspy ); |