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

« back to all changes in this revision

Viewing changes to src/mame/audio/cyberbal.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:
20
20
        cyberbal_state *state = machine.driver_data<cyberbal_state>();
21
21
 
22
22
        /* reset the sound system */
23
 
        state->m_bank_base = &machine.region("audiocpu")->base()[0x10000];
24
 
        memory_set_bankptr(machine, "soundbank", &state->m_bank_base[0x0000]);
 
23
        state->m_bank_base = &state->memregion("audiocpu")->base()[0x10000];
 
24
        state->membank("soundbank")->set_base(&state->m_bank_base[0x0000]);
25
25
        state->m_fast_68k_int = state->m_io_68k_int = 0;
26
26
        state->m_sound_data_from_68k = state->m_sound_data_from_6502 = 0;
27
27
        state->m_sound_data_from_68k_ready = state->m_sound_data_from_6502_ready = 0;
35
35
 *
36
36
 *************************************/
37
37
 
38
 
READ8_HANDLER( cyberbal_special_port3_r )
 
38
READ8_MEMBER(cyberbal_state::cyberbal_special_port3_r)
39
39
{
40
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
41
 
        int temp = input_port_read(space->machine(), "JSAII");
42
 
        if (!(input_port_read(space->machine(), "IN0") & 0x8000)) temp ^= 0x80;
43
 
        if (state->m_cpu_to_sound_ready) temp ^= 0x40;
44
 
        if (state->m_sound_to_cpu_ready) temp ^= 0x20;
 
40
        int temp = ioport("JSAII")->read();
 
41
        if (!(ioport("IN0")->read() & 0x8000)) temp ^= 0x80;
 
42
        if (m_cpu_to_sound_ready) temp ^= 0x40;
 
43
        if (m_sound_to_cpu_ready) temp ^= 0x20;
45
44
        return temp;
46
45
}
47
46
 
48
47
 
49
 
READ8_HANDLER( cyberbal_sound_6502_stat_r )
 
48
READ8_MEMBER(cyberbal_state::cyberbal_sound_6502_stat_r)
50
49
{
51
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
52
50
        int temp = 0xff;
53
 
        if (state->m_sound_data_from_6502_ready) temp ^= 0x80;
54
 
        if (state->m_sound_data_from_68k_ready) temp ^= 0x40;
 
51
        if (m_sound_data_from_6502_ready) temp ^= 0x80;
 
52
        if (m_sound_data_from_68k_ready) temp ^= 0x40;
55
53
        return temp;
56
54
}
57
55
 
58
56
 
59
 
WRITE8_HANDLER( cyberbal_sound_bank_select_w )
60
 
{
61
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
62
 
        memory_set_bankptr(space->machine(), "soundbank", &state->m_bank_base[0x1000 * ((data >> 6) & 3)]);
63
 
        coin_counter_w(space->machine(), 1, (data >> 5) & 1);
64
 
        coin_counter_w(space->machine(), 0, (data >> 4) & 1);
65
 
        cputag_set_input_line(space->machine(), "dac", INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
66
 
        if (!(data & 0x01)) devtag_reset(space->machine(), "ymsnd");
67
 
}
68
 
 
69
 
 
70
 
READ8_HANDLER( cyberbal_sound_68k_6502_r )
71
 
{
72
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
73
 
        state->m_sound_data_from_68k_ready = 0;
74
 
        return state->m_sound_data_from_68k;
75
 
}
76
 
 
77
 
 
78
 
WRITE8_HANDLER( cyberbal_sound_68k_6502_w )
79
 
{
80
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
81
 
 
82
 
        state->m_sound_data_from_6502 = data;
83
 
        state->m_sound_data_from_6502_ready = 1;
84
 
 
85
 
        if (!state->m_io_68k_int)
 
57
WRITE8_MEMBER(cyberbal_state::cyberbal_sound_bank_select_w)
 
58
{
 
59
        membank("soundbank")->set_base(&m_bank_base[0x1000 * ((data >> 6) & 3)]);
 
60
        coin_counter_w(machine(), 1, (data >> 5) & 1);
 
61
        coin_counter_w(machine(), 0, (data >> 4) & 1);
 
62
        cputag_set_input_line(machine(), "dac", INPUT_LINE_RESET, (data & 0x08) ? CLEAR_LINE : ASSERT_LINE);
 
63
        if (!(data & 0x01)) devtag_reset(machine(), "ymsnd");
 
64
}
 
65
 
 
66
 
 
67
READ8_MEMBER(cyberbal_state::cyberbal_sound_68k_6502_r)
 
68
{
 
69
        m_sound_data_from_68k_ready = 0;
 
70
        return m_sound_data_from_68k;
 
71
}
 
72
 
 
73
 
 
74
WRITE8_MEMBER(cyberbal_state::cyberbal_sound_68k_6502_w)
 
75
{
 
76
 
 
77
        m_sound_data_from_6502 = data;
 
78
        m_sound_data_from_6502_ready = 1;
 
79
 
 
80
        if (!m_io_68k_int)
86
81
        {
87
 
                state->m_io_68k_int = 1;
88
 
                update_sound_68k_interrupts(space->machine());
 
82
                m_io_68k_int = 1;
 
83
                update_sound_68k_interrupts(machine());
89
84
        }
90
85
}
91
86
 
116
111
}
117
112
 
118
113
 
119
 
WRITE16_HANDLER( cyberbal_io_68k_irq_ack_w )
 
114
WRITE16_MEMBER(cyberbal_state::cyberbal_io_68k_irq_ack_w)
120
115
{
121
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
122
 
        if (state->m_io_68k_int)
 
116
        if (m_io_68k_int)
123
117
        {
124
 
                state->m_io_68k_int = 0;
125
 
                update_sound_68k_interrupts(space->machine());
 
118
                m_io_68k_int = 0;
 
119
                update_sound_68k_interrupts(machine());
126
120
        }
127
121
}
128
122
 
129
123
 
130
 
READ16_HANDLER( cyberbal_sound_68k_r )
 
124
READ16_MEMBER(cyberbal_state::cyberbal_sound_68k_r)
131
125
{
132
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
133
 
        int temp = (state->m_sound_data_from_6502 << 8) | 0xff;
134
 
 
135
 
        state->m_sound_data_from_6502_ready = 0;
136
 
 
137
 
        if (state->m_sound_data_from_6502_ready) temp ^= 0x08;
138
 
        if (state->m_sound_data_from_68k_ready) temp ^= 0x04;
 
126
        int temp = (m_sound_data_from_6502 << 8) | 0xff;
 
127
 
 
128
        m_sound_data_from_6502_ready = 0;
 
129
 
 
130
        if (m_sound_data_from_6502_ready) temp ^= 0x08;
 
131
        if (m_sound_data_from_68k_ready) temp ^= 0x04;
139
132
        return temp;
140
133
}
141
134
 
142
135
 
143
 
WRITE16_HANDLER( cyberbal_sound_68k_w )
 
136
WRITE16_MEMBER(cyberbal_state::cyberbal_sound_68k_w)
144
137
{
145
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
146
138
        if (ACCESSING_BITS_8_15)
147
139
        {
148
 
                state->m_sound_data_from_68k = (data >> 8) & 0xff;
149
 
                state->m_sound_data_from_68k_ready = 1;
 
140
                m_sound_data_from_68k = (data >> 8) & 0xff;
 
141
                m_sound_data_from_68k_ready = 1;
150
142
        }
151
143
}
152
144
 
153
145
 
154
 
WRITE16_HANDLER( cyberbal_sound_68k_dac_w )
 
146
WRITE16_MEMBER(cyberbal_state::cyberbal_sound_68k_dac_w)
155
147
{
156
 
        cyberbal_state *state = space->machine().driver_data<cyberbal_state>();
157
 
        device_t *dac = space->machine().device((offset & 8) ? "dac2" : "dac1");
 
148
        device_t *dac = machine().device((offset & 8) ? "dac2" : "dac1");
158
149
        dac_data_16_w(dac, (((data >> 3) & 0x800) | ((data >> 2) & 0x7ff)) << 4);
159
150
 
160
 
        if (state->m_fast_68k_int)
 
151
        if (m_fast_68k_int)
161
152
        {
162
 
                state->m_fast_68k_int = 0;
163
 
                update_sound_68k_interrupts(space->machine());
 
153
                m_fast_68k_int = 0;
 
154
                update_sound_68k_interrupts(machine());
164
155
        }
165
156
}