summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/konamigx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/konamigx.h')
-rw-r--r--src/mame/machine/konamigx.h103
1 files changed, 103 insertions, 0 deletions
diff --git a/src/mame/machine/konamigx.h b/src/mame/machine/konamigx.h
new file mode 100644
index 00000000000..a0eb32c3586
--- /dev/null
+++ b/src/mame/machine/konamigx.h
@@ -0,0 +1,103 @@
+#ifndef __MACH_KONAMIGX_H
+#define __MACH_KONAMIGX_H
+
+void tms57002_init(void);
+
+READ8_HANDLER( tms57002_data_r );
+READ8_HANDLER( tms57002_status_r );
+WRITE8_HANDLER( tms57002_control_w );
+WRITE8_HANDLER( tms57002_data_w );
+
+READ16_HANDLER( tms57002_data_word_r );
+READ16_HANDLER( tms57002_status_word_r );
+WRITE16_HANDLER( tms57002_control_word_w );
+WRITE16_HANDLER( tms57002_data_word_w );
+
+
+
+// 2nd-Tier GX/MW Hardware Functions
+void K053247GP_set_SpriteOffset(int offsx, int offsy);
+
+void K053936GP_set_offset(int chip, int xoffs, int yoffs);
+void K053936GP_clip_enable(int chip, int status);
+void K053936GP_set_cliprect(int chip, int minx, int maxx, int miny, int maxy);
+void K053936GP_0_zoom_draw(mame_bitmap *bitmap, const rectangle *cliprect, tilemap *tmap, int tilebpp, int blend);
+void K053936GP_1_zoom_draw(mame_bitmap *bitmap, const rectangle *cliprect, tilemap *tmap, int tilebpp, int blend);
+
+
+
+// 1st-Tier GX/MW Variables and Functions
+extern UINT8 konamigx_wrport1_0, konamigx_wrport1_1;
+extern UINT16 konamigx_wrport2;
+
+
+// Tile and Sprite Mixcode Decoders
+int K055555GX_decode_vmixcolor(int layer, int *color);
+int K055555GX_decode_osmixcolor(int layer, int *color);
+
+
+// Sprite Callbacks
+
+/* callbacks should return color codes in this format:
+ fedcba9876543210fedcba9876543210
+ ----------------xxxxxxxxxxxxxxxx (bit 00-15: color)
+ --------------xx---------------- (bit 16-17: blend code)
+ ------------xx------------------ (bit 18-19: brightness code)
+ -x------------------------------ (bit 30 : skip shadow)
+ x------------------------------- (bit 31 : full shadow)
+*/
+#define K055555_COLORMASK 0x0000ffff
+#define K055555_MIXSHIFT 16
+#define K055555_BRTSHIFT 18
+#define K055555_SKIPSHADOW 0x40000000
+#define K055555_FULLSHADOW 0x80000000
+
+void konamigx_type2_sprite_callback(int *code, int *color, int *priority);
+
+void konamigx_dragoonj_sprite_callback(int *code, int *color, int *priority);
+void konamigx_salmndr2_sprite_callback(int *code, int *color, int *priority);
+void konamigx_le2_sprite_callback(int *code, int *color, int *priority);
+
+
+// Centralized Sprites and Layer Blitter
+
+/* Mixer Flags
+ fedcba9876543210fedcba9876543210
+ --------------------FFEEDDCCBBAA (layer A-F blend modes)
+ ----------------DCBA------------ (layer A-D line/row scroll disables)
+ ----FFEEDDCCBBAA---------------- (layer A-F mix codes in forced blending)
+ ---x---------------------------- (disable shadows)
+ --x----------------------------- (disable z-buffering)
+*/
+#define GXMIX_BLEND_AUTO 0 // emulate all blend effects
+#define GXMIX_BLEND_NONE 1 // disable all blend effects
+#define GXMIX_BLEND_FAST 2 // simulate translucency
+#define GXMIX_BLEND_FORCE 3 // force mix code on selected layer(s)
+#define GXMIX_NOLINESCROLL 0x1000 // disable linescroll on selected layer(s)
+#define GXMIX_NOSHADOW 0x10000000 // disable all shadows (shadow pens will be skipped)
+#define GXMIX_NOZBUF 0x20000000 // disable z-buffering (shadow pens will be drawn as solid)
+
+// Sub Layer Flags
+#define GXSUB_K053250 0x10 // chip type: 0=K053936 ROZ+, 1=K053250 LVC
+#define GXSUB_4BPP 0x04 // 16 colors
+#define GXSUB_5BPP 0x05 // 32 colors
+#define GXSUB_8BPP 0x08 // 256 colors
+
+void konamigx_mixer(running_machine *machine, mame_bitmap *bitmap, const rectangle *cliprect,
+ tilemap *sub1, int sub1flags,
+ tilemap *sub2, int sub2flags,
+ int mixerflags);
+
+void konamigx_mixer_init(int objdma);
+void konamigx_mixer_primode(int mode);
+
+
+void konamigx_objdma(void);
+
+
+// K055550/K053990/ESC protection devices handlers
+READ16_HANDLER ( K055550_word_r );
+WRITE16_HANDLER( K055550_word_w );
+WRITE16_HANDLER( K053990_martchmp_word_w );
+void konamigx_esc_alert(UINT32 *srcbase, int srcoffs, int count, int mode);
+#endif