summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/bublbobl.h
blob: d48e5ffcbc868f049244d23ed4e6f685bdfb661e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
typedef struct _bublbobl_state bublbobl_state;
struct _bublbobl_state
{
	/* memory pointers */
	UINT8 *  mcu_sharedram;
	UINT8 *  videoram;
	UINT8 *  objectram;
//	UINT8 *  paletteram;	// currently this uses generic palette handling
	size_t   videoram_size;
	size_t   objectram_size;

	/* missb2.c also needs the following */
	UINT8 *  bgvram;
	UINT8 *  bg_paletteram;

	/* video-related */
	int      video_enable;

	/* sound-related */
	int      sound_nmi_enable, pending_nmi, sound_status;

	/* mcu-related */
	/* Tokio*/
	int      tokio_prot_count;
	/* Bubble Bobble MCU */
	UINT8    ddr1, ddr2, ddr3, ddr4;
	UINT8    port1_in, port2_in, port3_in, port4_in;
	UINT8    port1_out, port2_out, port3_out, port4_out;
	/* Bubble Bobble 68705 */
	UINT8    port_a_in, port_a_out, ddr_a;
	UINT8    port_b_in, port_b_out, ddr_b;
	int      address, latch;
	/* Bobble Bobble */
	int      ic43_a, ic43_b;

	/* devices */
	const device_config *maincpu;
	const device_config *mcu;
	const device_config *audiocpu;
	const device_config *slave;
};



/*----------- defined in machine/bublbobl.c -----------*/

WRITE8_HANDLER( bublbobl_bankswitch_w );
WRITE8_HANDLER( tokio_bankswitch_w );
WRITE8_HANDLER( tokio_videoctrl_w );
WRITE8_HANDLER( bublbobl_nmitrigger_w );
READ8_HANDLER( tokio_mcu_r );
READ8_HANDLER( tokiob_mcu_r );
WRITE8_HANDLER( bublbobl_sound_command_w );
WRITE8_HANDLER( bublbobl_sh_nmi_disable_w );
WRITE8_HANDLER( bublbobl_sh_nmi_enable_w );
WRITE8_HANDLER( bublbobl_soundcpu_reset_w );
WRITE8_HANDLER( bublbobl_sound_status_w );
READ8_HANDLER( bublbobl_sound_status_r );
READ8_HANDLER( boblbobl_ic43_a_r );
WRITE8_HANDLER( boblbobl_ic43_a_w );
READ8_HANDLER( boblbobl_ic43_b_r );
WRITE8_HANDLER( boblbobl_ic43_b_w );

READ8_HANDLER( bublbobl_mcu_ddr1_r );
WRITE8_HANDLER( bublbobl_mcu_ddr1_w );
READ8_HANDLER( bublbobl_mcu_ddr2_r );
WRITE8_HANDLER( bublbobl_mcu_ddr2_w );
READ8_HANDLER( bublbobl_mcu_ddr3_r );
WRITE8_HANDLER( bublbobl_mcu_ddr3_w );
READ8_HANDLER( bublbobl_mcu_ddr4_r );
WRITE8_HANDLER( bublbobl_mcu_ddr4_w );
READ8_HANDLER( bublbobl_mcu_port1_r );
WRITE8_HANDLER( bublbobl_mcu_port1_w );
READ8_HANDLER( bublbobl_mcu_port2_r );
WRITE8_HANDLER( bublbobl_mcu_port2_w );
READ8_HANDLER( bublbobl_mcu_port3_r );
WRITE8_HANDLER( bublbobl_mcu_port3_w );
READ8_HANDLER( bublbobl_mcu_port4_r );
WRITE8_HANDLER( bublbobl_mcu_port4_w );

// for 68705 bootleg
INTERRUPT_GEN( bublbobl_m68705_interrupt );
READ8_HANDLER( bublbobl_68705_port_a_r );
WRITE8_HANDLER( bublbobl_68705_port_a_w );
WRITE8_HANDLER( bublbobl_68705_ddr_a_w );
READ8_HANDLER( bublbobl_68705_port_b_r );
WRITE8_HANDLER( bublbobl_68705_port_b_w );
WRITE8_HANDLER( bublbobl_68705_ddr_b_w );


/*----------- defined in video/bublbobl.c -----------*/

VIDEO_UPDATE( bublbobl );