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 );
|