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

« back to all changes in this revision

Viewing changes to src/mame/drivers/bionicc.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:
70
70
 *
71
71
 *************************************/
72
72
 
73
 
static WRITE16_HANDLER( hacked_controls_w )
74
 
{
75
 
        bionicc_state *state = space->machine().driver_data<bionicc_state>();
76
 
 
77
 
        logerror("%06x: hacked_controls_w %04x %02x\n", cpu_get_pc(&space->device()), offset, data);
78
 
        COMBINE_DATA(&state->m_inp[offset]);
79
 
}
80
 
 
81
 
static READ16_HANDLER( hacked_controls_r )
82
 
{
83
 
        bionicc_state *state = space->machine().driver_data<bionicc_state>();
84
 
 
85
 
        logerror("%06x: hacked_controls_r %04x %04x\n", cpu_get_pc(&space->device()), offset, state->m_inp[offset]);
86
 
        return state->m_inp[offset];
87
 
}
88
 
 
89
 
static WRITE16_HANDLER( bionicc_mpu_trigger_w )
90
 
{
91
 
        bionicc_state *state = space->machine().driver_data<bionicc_state>();
92
 
 
93
 
        data = input_port_read(space->machine(), "SYSTEM") >> 12;
94
 
        state->m_inp[0] = data ^ 0x0f;
95
 
 
96
 
        data = input_port_read(space->machine(), "P2");
97
 
        state->m_inp[1] = data ^ 0xff;
98
 
 
99
 
        data = input_port_read(space->machine(), "P1");
100
 
        state->m_inp[2] = data ^ 0xff;
101
 
}
102
 
 
103
 
 
104
 
static WRITE16_HANDLER( hacked_soundcommand_w )
105
 
{
106
 
        bionicc_state *state = space->machine().driver_data<bionicc_state>();
107
 
 
108
 
        COMBINE_DATA(&state->m_soundcommand);
109
 
        soundlatch_w(space, 0, state->m_soundcommand & 0xff);
110
 
}
111
 
 
112
 
static READ16_HANDLER( hacked_soundcommand_r )
113
 
{
114
 
        bionicc_state *state = space->machine().driver_data<bionicc_state>();
115
 
 
116
 
        return state->m_soundcommand;
 
73
WRITE16_MEMBER(bionicc_state::hacked_controls_w)
 
74
{
 
75
 
 
76
        logerror("%06x: hacked_controls_w %04x %02x\n", cpu_get_pc(&space.device()), offset, data);
 
77
        COMBINE_DATA(&m_inp[offset]);
 
78
}
 
79
 
 
80
READ16_MEMBER(bionicc_state::hacked_controls_r)
 
81
{
 
82
 
 
83
        logerror("%06x: hacked_controls_r %04x %04x\n", cpu_get_pc(&space.device()), offset, m_inp[offset]);
 
84
        return m_inp[offset];
 
85
}
 
86
 
 
87
WRITE16_MEMBER(bionicc_state::bionicc_mpu_trigger_w)
 
88
{
 
89
 
 
90
        data = ioport("SYSTEM")->read() >> 12;
 
91
        m_inp[0] = data ^ 0x0f;
 
92
 
 
93
        data = ioport("P2")->read();
 
94
        m_inp[1] = data ^ 0xff;
 
95
 
 
96
        data = ioport("P1")->read();
 
97
        m_inp[2] = data ^ 0xff;
 
98
}
 
99
 
 
100
 
 
101
WRITE16_MEMBER(bionicc_state::hacked_soundcommand_w)
 
102
{
 
103
 
 
104
        COMBINE_DATA(&m_soundcommand);
 
105
        soundlatch_byte_w(space, 0, m_soundcommand & 0xff);
 
106
}
 
107
 
 
108
READ16_MEMBER(bionicc_state::hacked_soundcommand_r)
 
109
{
 
110
 
 
111
        return m_soundcommand;
117
112
}
118
113
 
119
114
 
146
141
 *
147
142
 *************************************/
148
143
 
149
 
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16 )
 
144
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, bionicc_state )
150
145
        AM_RANGE(0x000000, 0x03ffff) AM_ROM
151
146
        AM_RANGE(0xfe0000, 0xfe07ff) AM_RAM     /* RAM? */
152
 
        AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_BASE_SIZE_GENERIC(spriteram)
 
147
        AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_SHARE("spriteram")
153
148
        AM_RANGE(0xfe0d00, 0xfe3fff) AM_RAM              /* RAM? */
154
149
        AM_RANGE(0xfe4000, 0xfe4001) AM_WRITE(bionicc_gfxctrl_w)        /* + coin counters */
155
150
        AM_RANGE(0xfe4000, 0xfe4001) AM_READ_PORT("SYSTEM")
156
151
        AM_RANGE(0xfe4002, 0xfe4003) AM_READ_PORT("DSW")
157
152
        AM_RANGE(0xfe8010, 0xfe8017) AM_WRITE(bionicc_scroll_w)
158
153
        AM_RANGE(0xfe801a, 0xfe801b) AM_WRITE(bionicc_mpu_trigger_w)    /* ??? not sure, but looks like it */
159
 
        AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(bionicc_txvideoram_w) AM_BASE_MEMBER(bionicc_state, m_txvideoram)
160
 
        AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE(bionicc_fgvideoram_w) AM_BASE_MEMBER(bionicc_state, m_fgvideoram)
161
 
        AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE(bionicc_bgvideoram_w) AM_BASE_MEMBER(bionicc_state, m_bgvideoram)
162
 
        AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(bionicc_paletteram_w) AM_BASE_MEMBER(bionicc_state, m_paletteram)
 
154
        AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(bionicc_txvideoram_w) AM_SHARE("txvideoram")
 
155
        AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE(bionicc_fgvideoram_w) AM_SHARE("fgvideoram")
 
156
        AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE(bionicc_bgvideoram_w) AM_SHARE("bgvideoram")
 
157
        AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(bionicc_paletteram_w) AM_SHARE("paletteram")
163
158
        AM_RANGE(0xffc000, 0xfffff7) AM_RAM     /* working RAM */
164
159
        AM_RANGE(0xfffff8, 0xfffff9) AM_READWRITE(hacked_soundcommand_r, hacked_soundcommand_w)      /* hack */
165
160
        AM_RANGE(0xfffffa, 0xffffff) AM_READWRITE(hacked_controls_r, hacked_controls_w) /* hack */
166
161
ADDRESS_MAP_END
167
162
 
168
163
 
169
 
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8 )
 
164
static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, bionicc_state )
170
165
        AM_RANGE(0x0000, 0x7fff) AM_ROM
171
 
        AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE("ymsnd", ym2151_r, ym2151_w)
172
 
        AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
 
166
        AM_RANGE(0x8000, 0x8001) AM_DEVREADWRITE_LEGACY("ymsnd", ym2151_r, ym2151_w)
 
167
        AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_byte_r)
173
168
        AM_RANGE(0xc000, 0xc7ff) AM_RAM
174
169
ADDRESS_MAP_END
175
170
 
375
370
        MCFG_MACHINE_RESET(bionicc)
376
371
 
377
372
        /* video hardware */
378
 
        MCFG_VIDEO_ATTRIBUTES(VIDEO_BUFFERS_SPRITERAM)
379
 
 
380
373
        MCFG_SCREEN_ADD("screen", RASTER)
381
374
        MCFG_SCREEN_REFRESH_RATE(60)
382
375
        MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
383
376
        MCFG_SCREEN_SIZE(32*8, 32*8)
384
377
        MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
385
378
        MCFG_SCREEN_UPDATE_STATIC(bionicc)
386
 
        MCFG_SCREEN_VBLANK_STATIC(bionicc)
 
379
        MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
387
380
 
388
381
        MCFG_GFXDECODE(bionicc)
389
382
        MCFG_PALETTE_LENGTH(1024)
390
383
 
391
384
        MCFG_VIDEO_START(bionicc)
392
385
 
 
386
        MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
 
387
 
393
388
        MCFG_SPEAKER_STANDARD_MONO("mono")
394
389
 
395
390
        MCFG_SOUND_ADD("ymsnd", YM2151, 3579545)