~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

Viewing changes to src/mame/drivers/dbz.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Emmanuel Kasper, Jordi Mallach
  • Date: 2012-06-05 20:02:23 UTC
  • mfrom: (0.3.1) (0.1.4)
  • Revision ID: package-import@ubuntu.com-20120605200223-gnlpogjrg6oqe9md
Tags: 0.146-1
[ Emmanuel Kasper ]
* New upstream release
* Drop patch to fix man pages section and patches to link with flac 
  and jpeg system lib: all this has been pushed upstream by Cesare Falco
* Add DM-Upload-Allowed: yes field.

[ Jordi Mallach ]
* Create a "gnu" TARGETOS stanza that defines NO_AFFINITY_NP.
* Stop setting TARGETOS to "unix" in d/rules. It should be autodetected,
  and set to the appropriate value.
* mame_manpage_section.patch: Change mame's manpage section to 6 (games),
  in the TH declaration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
74
74
}
75
75
 
76
76
#if 0
77
 
static READ16_HANDLER( dbzcontrol_r )
 
77
READ16_MEMBER(dbz_state::dbzcontrol_r)
78
78
{
79
 
        dbz_state *state = space->machine().driver_data<dbz_state>();
80
 
        return state->m_control;
 
79
        return m_control;
81
80
}
82
81
#endif
83
82
 
84
 
static WRITE16_HANDLER( dbzcontrol_w )
 
83
WRITE16_MEMBER(dbz_state::dbzcontrol_w)
85
84
{
86
 
        dbz_state *state = space->machine().driver_data<dbz_state>();
87
85
        /* bit 10 = enable '246 readback */
88
86
 
89
 
        COMBINE_DATA(&state->m_control);
 
87
        COMBINE_DATA(&m_control);
90
88
 
91
89
        if (data & 0x400)
92
 
                k053246_set_objcha_line(state->m_k053246, ASSERT_LINE);
 
90
                k053246_set_objcha_line(m_k053246, ASSERT_LINE);
93
91
        else
94
 
                k053246_set_objcha_line(state->m_k053246, CLEAR_LINE);
95
 
 
96
 
        coin_counter_w(space->machine(), 0, data & 1);
97
 
        coin_counter_w(space->machine(), 1, data & 2);
98
 
}
99
 
 
100
 
static WRITE16_HANDLER( dbz_sound_command_w )
101
 
{
102
 
        soundlatch_w(space, 0, data >> 8);
103
 
}
104
 
 
105
 
static WRITE16_HANDLER( dbz_sound_cause_nmi )
106
 
{
107
 
        dbz_state *state = space->machine().driver_data<dbz_state>();
108
 
        device_set_input_line(state->m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
 
92
                k053246_set_objcha_line(m_k053246, CLEAR_LINE);
 
93
 
 
94
        coin_counter_w(machine(), 0, data & 1);
 
95
        coin_counter_w(machine(), 1, data & 2);
 
96
}
 
97
 
 
98
WRITE16_MEMBER(dbz_state::dbz_sound_command_w)
 
99
{
 
100
        soundlatch_byte_w(space, 0, data >> 8);
 
101
}
 
102
 
 
103
WRITE16_MEMBER(dbz_state::dbz_sound_cause_nmi)
 
104
{
 
105
        device_set_input_line(m_audiocpu, INPUT_LINE_NMI, PULSE_LINE);
109
106
}
110
107
 
111
108
static void dbz_sound_irq( device_t *device, int irq )
115
112
        device_set_input_line(state->m_audiocpu, 0, (irq) ? ASSERT_LINE : CLEAR_LINE);
116
113
}
117
114
 
118
 
static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16 )
 
115
static ADDRESS_MAP_START( dbz_map, AS_PROGRAM, 16, dbz_state )
119
116
        AM_RANGE(0x000000, 0x0fffff) AM_ROM
120
117
        AM_RANGE(0x480000, 0x48ffff) AM_RAM
121
 
        AM_RANGE(0x490000, 0x491fff) AM_DEVREADWRITE("k056832", k056832_ram_word_r, k056832_ram_word_w) // '157 RAM is mirrored twice
122
 
        AM_RANGE(0x492000, 0x493fff) AM_DEVREADWRITE("k056832", k056832_ram_word_r, k056832_ram_word_w)
123
 
        AM_RANGE(0x498000, 0x49ffff) AM_DEVREAD("k056832", k056832_rom_word_8000_r)     // code near a60 in dbz2, subroutine at 730 in dbz
124
 
        AM_RANGE(0x4a0000, 0x4a0fff) AM_DEVREADWRITE("k053246", k053247_word_r, k053247_word_w)
 
118
        AM_RANGE(0x490000, 0x491fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w)  // '157 RAM is mirrored twice
 
119
        AM_RANGE(0x492000, 0x493fff) AM_DEVREADWRITE_LEGACY("k056832", k056832_ram_word_r, k056832_ram_word_w)
 
120
        AM_RANGE(0x498000, 0x49ffff) AM_DEVREAD_LEGACY("k056832", k056832_rom_word_8000_r)      // code near a60 in dbz2, subroutine at 730 in dbz
 
121
        AM_RANGE(0x4a0000, 0x4a0fff) AM_DEVREADWRITE_LEGACY("k053246", k053247_word_r, k053247_word_w)
125
122
        AM_RANGE(0x4a1000, 0x4a3fff) AM_RAM
126
 
        AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE_GENERIC(paletteram) // palette
127
 
        AM_RANGE(0x4c0000, 0x4c0001) AM_DEVREAD("k053246", k053246_word_r)
128
 
        AM_RANGE(0x4c0000, 0x4c0007) AM_DEVWRITE("k053246", k053246_word_w)
129
 
        AM_RANGE(0x4c4000, 0x4c4007) AM_DEVWRITE("k053246", k053246_word_w)
130
 
        AM_RANGE(0x4c8000, 0x4c8007) AM_DEVWRITE("k056832", k056832_b_word_w)
131
 
        AM_RANGE(0x4cc000, 0x4cc03f) AM_DEVWRITE("k056832", k056832_word_w)
132
 
        AM_RANGE(0x4d0000, 0x4d001f) AM_DEVWRITE("k053936_1", k053936_ctrl_w)
133
 
        AM_RANGE(0x4d4000, 0x4d401f) AM_DEVWRITE("k053936_2", k053936_ctrl_w)
 
123
        AM_RANGE(0x4a8000, 0x4abfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram") // palette
 
124
        AM_RANGE(0x4c0000, 0x4c0001) AM_DEVREAD_LEGACY("k053246", k053246_word_r)
 
125
        AM_RANGE(0x4c0000, 0x4c0007) AM_DEVWRITE_LEGACY("k053246", k053246_word_w)
 
126
        AM_RANGE(0x4c4000, 0x4c4007) AM_DEVWRITE_LEGACY("k053246", k053246_word_w)
 
127
        AM_RANGE(0x4c8000, 0x4c8007) AM_DEVWRITE_LEGACY("k056832", k056832_b_word_w)
 
128
        AM_RANGE(0x4cc000, 0x4cc03f) AM_DEVWRITE_LEGACY("k056832", k056832_word_w)
 
129
        AM_RANGE(0x4d0000, 0x4d001f) AM_DEVWRITE_LEGACY("k053936_1", k053936_ctrl_w)
 
130
        AM_RANGE(0x4d4000, 0x4d401f) AM_DEVWRITE_LEGACY("k053936_2", k053936_ctrl_w)
134
131
        AM_RANGE(0x4e0000, 0x4e0001) AM_READ_PORT("P1_P2")
135
132
        AM_RANGE(0x4e0002, 0x4e0003) AM_READ_PORT("SYSTEM_DSW1")
136
133
        AM_RANGE(0x4e4000, 0x4e4001) AM_READ_PORT("DSW2")
138
135
        AM_RANGE(0x4ec000, 0x4ec001) AM_WRITE(dbzcontrol_w)
139
136
        AM_RANGE(0x4f0000, 0x4f0001) AM_WRITE(dbz_sound_command_w)
140
137
        AM_RANGE(0x4f4000, 0x4f4001) AM_WRITE(dbz_sound_cause_nmi)
141
 
        AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8("k053252",k053252_r,k053252_w,0xff00)             // 251 #1
142
 
        AM_RANGE(0x4fc000, 0x4fc01f) AM_DEVWRITE("k053251", k053251_lsb_w)      // 251 #2
 
138
        AM_RANGE(0x4f8000, 0x4f801f) AM_DEVREADWRITE8_LEGACY("k053252",k053252_r,k053252_w,0xff00)              // 251 #1
 
139
        AM_RANGE(0x4fc000, 0x4fc01f) AM_DEVWRITE_LEGACY("k053251", k053251_lsb_w)       // 251 #2
143
140
 
144
 
        AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(dbz_bg2_videoram_w) AM_BASE_MEMBER(dbz_state, m_bg2_videoram)
145
 
        AM_RANGE(0x508000, 0x509fff) AM_RAM_WRITE(dbz_bg1_videoram_w) AM_BASE_MEMBER(dbz_state, m_bg1_videoram)
146
 
        AM_RANGE(0x510000, 0x513fff) AM_DEVREADWRITE("k053936_1", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
147
 
        AM_RANGE(0x518000, 0x51bfff) AM_DEVREADWRITE("k053936_2", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
 
141
        AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(dbz_bg2_videoram_w) AM_SHARE("bg2_videoram")
 
142
        AM_RANGE(0x508000, 0x509fff) AM_RAM_WRITE(dbz_bg1_videoram_w) AM_SHARE("bg1_videoram")
 
143
        AM_RANGE(0x510000, 0x513fff) AM_DEVREADWRITE_LEGACY("k053936_1", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
 
144
        AM_RANGE(0x518000, 0x51bfff) AM_DEVREADWRITE_LEGACY("k053936_2", k053936_linectrl_r, k053936_linectrl_w) // ?? guess, it might not be
148
145
        AM_RANGE(0x600000, 0x6fffff) AM_READNOP                         // PSAC 1 ROM readback window
149
146
        AM_RANGE(0x700000, 0x7fffff) AM_READNOP                         // PSAC 2 ROM readback window
150
147
ADDRESS_MAP_END
152
149
/* dbz sound */
153
150
/* IRQ: from YM2151.  NMI: from 68000.  Port 0: write to ack NMI */
154
151
 
155
 
static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8 )
 
152
static ADDRESS_MAP_START( dbz_sound_map, AS_PROGRAM, 8, dbz_state )
156
153
        AM_RANGE(0x0000, 0x7fff) AM_ROM
157
154
        AM_RANGE(0x8000, 0xbfff) AM_RAM
158
 
        AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
159
 
        AM_RANGE(0xd000, 0xd002) AM_DEVREADWRITE_MODERN("oki", okim6295_device, read, write)
160
 
        AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_r)
 
155
        AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
 
156
        AM_RANGE(0xd000, 0xd002) AM_DEVREADWRITE("oki", okim6295_device, read, write)
 
157
        AM_RANGE(0xe000, 0xe001) AM_READ(soundlatch_byte_r)
161
158
ADDRESS_MAP_END
162
159
 
163
 
static ADDRESS_MAP_START( dbz_sound_io_map, AS_IO, 8 )
 
160
static ADDRESS_MAP_START( dbz_sound_io_map, AS_IO, 8, dbz_state )
164
161
        ADDRESS_MAP_GLOBAL_MASK(0xff)
165
162
        AM_RANGE(0x00, 0x00) AM_WRITENOP
166
163
ADDRESS_MAP_END
217
214
        PORT_DIPSETTING(      0x8000, DEF_STR( On ) )
218
215
 
219
216
        PORT_START("DSW2")
220
 
        PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_port_read, "FAKE")
221
 
        PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM(custom_port_read, "FAKE")
 
217
        PORT_BIT( 0x00ff, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "FAKE")
 
218
        PORT_BIT( 0xff00, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, driver_device,custom_port_read, "FAKE")
222
219
 
223
220
        PORT_START("FAKE")
224
221
        PORT_DIPNAME( 0x0f, 0x0f, DEF_STR( Coin_A ) )
277
274
 
278
275
static const ym2151_interface ym2151_config =
279
276
{
280
 
        dbz_sound_irq
 
277
        DEVCB_LINE(dbz_sound_irq)
281
278
};
282
279
 
283
280
/**********************************************************************************/
507
504
{
508
505
        UINT16 *ROM;
509
506
 
510
 
        ROM = (UINT16 *)machine.region("maincpu")->base();
 
507
        ROM = (UINT16 *)machine.root_device().memregion("maincpu")->base();
511
508
 
512
509
        // nop out dbz1's mask rom test
513
510
        // tile ROM test