mirror of
https://github.com/holub/mame
synced 2025-05-25 15:25:33 +03:00
ooops... forgot that I added driver data struct to cheekyms.c as well. here it is.
This commit is contained in:
parent
c2d537c3dd
commit
9b5b396d06
1
.gitattributes
vendored
1
.gitattributes
vendored
@ -2375,6 +2375,7 @@ src/mame/includes/centiped.h svneol=native#text/plain
|
|||||||
src/mame/includes/chaknpop.h svneol=native#text/plain
|
src/mame/includes/chaknpop.h svneol=native#text/plain
|
||||||
src/mame/includes/champbas.h svneol=native#text/plain
|
src/mame/includes/champbas.h svneol=native#text/plain
|
||||||
src/mame/includes/changela.h svneol=native#text/plain
|
src/mame/includes/changela.h svneol=native#text/plain
|
||||||
|
src/mame/includes/cheekyms.h svneol=native#text/plain
|
||||||
src/mame/includes/cidelsa.h svneol=native#text/plain
|
src/mame/includes/cidelsa.h svneol=native#text/plain
|
||||||
src/mame/includes/cinemat.h svneol=native#text/plain
|
src/mame/includes/cinemat.h svneol=native#text/plain
|
||||||
src/mame/includes/circus.h svneol=native#text/plain
|
src/mame/includes/circus.h svneol=native#text/plain
|
||||||
|
@ -1,26 +1,15 @@
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Universal Cheeky Mouse Driver
|
Universal Cheeky Mouse Driver
|
||||||
(c)Lee Taylor May/June 1998, All rights reserved.
|
(c)Lee Taylor May/June 1998, All rights reserved.
|
||||||
|
|
||||||
For use only in offical MAME releases.
|
For use only in offical MAME releases.
|
||||||
Not to be distributed as part of any commerical work.
|
Not to be distributed as part of any commerical work.
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
#include "cpu/z80/z80.h"
|
#include "cpu/z80/z80.h"
|
||||||
#include "sound/dac.h"
|
#include "sound/dac.h"
|
||||||
|
#include "cheekyms.h"
|
||||||
|
|
||||||
extern UINT8 *cheekyms_videoram;
|
|
||||||
extern UINT8 *cheekyms_spriteram;
|
|
||||||
extern UINT8 *cheekyms_port_80;
|
|
||||||
|
|
||||||
PALETTE_INIT( cheekyms );
|
|
||||||
VIDEO_START( cheekyms );
|
|
||||||
VIDEO_UPDATE( cheekyms );
|
|
||||||
WRITE8_HANDLER( cheekyms_port_40_w );
|
|
||||||
WRITE8_HANDLER( cheekyms_port_80_w );
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static INPUT_CHANGED( coin_inserted )
|
static INPUT_CHANGED( coin_inserted )
|
||||||
@ -34,16 +23,16 @@ static INPUT_CHANGED( coin_inserted )
|
|||||||
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||||
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
AM_RANGE(0x0000, 0x1fff) AM_ROM
|
||||||
AM_RANGE(0x3000, 0x33ff) AM_RAM
|
AM_RANGE(0x3000, 0x33ff) AM_RAM
|
||||||
AM_RANGE(0x3800, 0x3bff) AM_RAM AM_BASE(&cheekyms_videoram)
|
AM_RANGE(0x3800, 0x3bff) AM_RAM AM_BASE_MEMBER(cheekyms_state, videoram)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
|
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
|
||||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||||
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW")
|
AM_RANGE(0x00, 0x00) AM_READ_PORT("DSW")
|
||||||
AM_RANGE(0x01, 0x01) AM_READ_PORT("INPUTS")
|
AM_RANGE(0x01, 0x01) AM_READ_PORT("INPUTS")
|
||||||
AM_RANGE(0x20, 0x3f) AM_WRITEONLY AM_BASE(&cheekyms_spriteram)
|
AM_RANGE(0x20, 0x3f) AM_WRITEONLY AM_BASE_MEMBER(cheekyms_state, spriteram)
|
||||||
AM_RANGE(0x40, 0x40) AM_WRITE(cheekyms_port_40_w)
|
AM_RANGE(0x40, 0x40) AM_WRITE(cheekyms_port_40_w)
|
||||||
AM_RANGE(0x80, 0x80) AM_WRITE(cheekyms_port_80_w) AM_BASE(&cheekyms_port_80)
|
AM_RANGE(0x80, 0x80) AM_WRITE(cheekyms_port_80_w) AM_BASE_MEMBER(cheekyms_state, port_80)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
|
|
||||||
@ -58,7 +47,7 @@ static INPUT_PORTS_START( cheekyms )
|
|||||||
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
PORT_DIPSETTING( 0x08, DEF_STR( 2C_1C ) )
|
||||||
PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) )
|
PORT_DIPSETTING( 0x04, DEF_STR( 1C_1C ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( 1C_2C ) )
|
||||||
//PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
|
//PORT_DIPSETTING( 0x0c, DEF_STR( 1C_1C ) )
|
||||||
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
|
PORT_DIPNAME( 0x10, 0x10, DEF_STR( Cabinet ) )
|
||||||
PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
|
PORT_DIPSETTING( 0x10, DEF_STR( Upright ) )
|
||||||
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
PORT_DIPSETTING( 0x00, DEF_STR( Cocktail ) )
|
||||||
@ -118,14 +107,26 @@ static GFXDECODE_START( cheekyms )
|
|||||||
GFXDECODE_END
|
GFXDECODE_END
|
||||||
|
|
||||||
|
|
||||||
|
static MACHINE_START( cheekyms )
|
||||||
|
{
|
||||||
|
cheekyms_state *state = (cheekyms_state *)machine->driver_data;
|
||||||
|
|
||||||
|
state->dac = devtag_get_device(machine, "dac");
|
||||||
|
}
|
||||||
|
|
||||||
static MACHINE_DRIVER_START( cheekyms )
|
static MACHINE_DRIVER_START( cheekyms )
|
||||||
|
|
||||||
|
/* driver data */
|
||||||
|
MDRV_DRIVER_DATA(cheekyms_state)
|
||||||
|
|
||||||
/* basic machine hardware */
|
/* basic machine hardware */
|
||||||
MDRV_CPU_ADD("maincpu", Z80,5000000/2) /* 2.5 MHz */
|
MDRV_CPU_ADD("maincpu", Z80,5000000/2) /* 2.5 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(main_map)
|
MDRV_CPU_PROGRAM_MAP(main_map)
|
||||||
MDRV_CPU_IO_MAP(io_map)
|
MDRV_CPU_IO_MAP(io_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
|
||||||
|
|
||||||
|
MDRV_MACHINE_START(cheekyms)
|
||||||
|
|
||||||
/* video hardware */
|
/* video hardware */
|
||||||
MDRV_SCREEN_ADD("screen", RASTER)
|
MDRV_SCREEN_ADD("screen", RASTER)
|
||||||
MDRV_SCREEN_REFRESH_RATE(60)
|
MDRV_SCREEN_REFRESH_RATE(60)
|
||||||
|
31
src/mame/includes/cheekyms.h
Normal file
31
src/mame/includes/cheekyms.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
/*************************************************************************
|
||||||
|
|
||||||
|
Cheeky Mouse
|
||||||
|
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _cheekyms_state cheekyms_state;
|
||||||
|
struct _cheekyms_state
|
||||||
|
{
|
||||||
|
/* memory pointers */
|
||||||
|
UINT8 * videoram;
|
||||||
|
UINT8 * spriteram;
|
||||||
|
UINT8 * port_80;
|
||||||
|
|
||||||
|
/* video-related */
|
||||||
|
tilemap *cm_tilemap;
|
||||||
|
bitmap_t *bitmap_buffer;
|
||||||
|
|
||||||
|
/* devices */
|
||||||
|
const device_config *dac;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*----------- defined in video/cheekyms.c -----------*/
|
||||||
|
|
||||||
|
PALETTE_INIT( cheekyms );
|
||||||
|
VIDEO_START( cheekyms );
|
||||||
|
VIDEO_UPDATE( cheekyms );
|
||||||
|
WRITE8_HANDLER( cheekyms_port_40_w );
|
||||||
|
WRITE8_HANDLER( cheekyms_port_80_w );
|
@ -1,46 +1,39 @@
|
|||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
Universal Cheeky Mouse Driver
|
Universal Cheeky Mouse Driver
|
||||||
(c)Lee Taylor May 1998, All rights reserved.
|
(c)Lee Taylor May 1998, All rights reserved.
|
||||||
|
|
||||||
For use only in offical MAME releases.
|
For use only in offical MAME releases.
|
||||||
Not to be distrabuted as part of any commerical work.
|
Not to be distrabuted as part of any commerical work.
|
||||||
***************************************************************************
|
***************************************************************************
|
||||||
Functions to emulate the video hardware of the machine.
|
Functions to emulate the video hardware of the machine.
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
#include "sound/dac.h"
|
#include "sound/dac.h"
|
||||||
|
#include "cheekyms.h"
|
||||||
|
|
||||||
UINT8 *cheekyms_videoram;
|
|
||||||
UINT8 *cheekyms_spriteram;
|
|
||||||
UINT8 *cheekyms_port_80;
|
|
||||||
|
|
||||||
static tilemap *cheekyms_tilemap;
|
|
||||||
static bitmap_t *bitmap_buffer;
|
|
||||||
|
|
||||||
/* bit 3 and 7 of the char color PROMs are used for something -- not currently emulated -
|
/* bit 3 and 7 of the char color PROMs are used for something -- not currently emulated -
|
||||||
thus GAME_IMPERFECT_GRAPHICS */
|
thus GAME_IMPERFECT_GRAPHICS */
|
||||||
|
|
||||||
PALETTE_INIT( cheekyms )
|
PALETTE_INIT( cheekyms )
|
||||||
{
|
{
|
||||||
int i,j,bit,r,g,b;
|
int i, j, bit, r, g, b;
|
||||||
|
|
||||||
for (i = 0; i < 6; i++)
|
for (i = 0; i < 6; i++)
|
||||||
{
|
{
|
||||||
for (j = 0;j < 0x20;j++)
|
for (j = 0; j < 0x20; j++)
|
||||||
{
|
{
|
||||||
/* red component */
|
/* red component */
|
||||||
bit = (color_prom[0x20*(i/2)+j] >> ((4*(i&1))+0)) & 0x01;
|
bit = (color_prom[0x20 * (i / 2) + j] >> ((4 * (i & 1)) + 0)) & 0x01;
|
||||||
r = 0xff * bit;
|
r = 0xff * bit;
|
||||||
/* green component */
|
/* green component */
|
||||||
bit = (color_prom[0x20*(i/2)+j] >> ((4*(i&1))+1)) & 0x01;
|
bit = (color_prom[0x20 * (i / 2) + j] >> ((4 * (i & 1)) + 1)) & 0x01;
|
||||||
g = 0xff * bit;
|
g = 0xff * bit;
|
||||||
/* blue component */
|
/* blue component */
|
||||||
bit = (color_prom[0x20*(i/2)+j] >> ((4*(i&1))+2)) & 0x01;
|
bit = (color_prom[0x20 * (i / 2) + j] >> ((4 * (i & 1)) + 2)) & 0x01;
|
||||||
b = 0xff * bit;
|
b = 0xff * bit;
|
||||||
|
|
||||||
palette_set_color(machine,(i*0x20)+j,MAKE_RGB(r,g,b));
|
palette_set_color(machine, (i * 0x20) + j, MAKE_RGB(r,g,b));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -48,19 +41,22 @@ PALETTE_INIT( cheekyms )
|
|||||||
|
|
||||||
WRITE8_HANDLER( cheekyms_port_40_w )
|
WRITE8_HANDLER( cheekyms_port_40_w )
|
||||||
{
|
{
|
||||||
/* the lower bits probably trigger sound samples */
|
cheekyms_state *state = (cheekyms_state *)space->machine->driver_data;
|
||||||
|
|
||||||
dac_data_w(devtag_get_device(space->machine, "dac"), data ? 0x80 : 0);
|
/* the lower bits probably trigger sound samples */
|
||||||
|
dac_data_w(state->dac, data ? 0x80 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WRITE8_HANDLER( cheekyms_port_80_w )
|
WRITE8_HANDLER( cheekyms_port_80_w )
|
||||||
{
|
{
|
||||||
|
cheekyms_state *state = (cheekyms_state *)space->machine->driver_data;
|
||||||
|
|
||||||
/* d0-d1 - sound enables, not sure which bit is which */
|
/* d0-d1 - sound enables, not sure which bit is which */
|
||||||
/* d3-d5 - man scroll amount */
|
/* d3-d5 - man scroll amount */
|
||||||
/* d6 - palette select (selects either 0 = PROM M9, 1 = PROM M8) */
|
/* d6 - palette select (selects either 0 = PROM M9, 1 = PROM M8) */
|
||||||
/* d7 - screen flip */
|
/* d7 - screen flip */
|
||||||
*cheekyms_port_80 = data;
|
*state->port_80 = data;
|
||||||
|
|
||||||
/* d2 - interrupt enable */
|
/* d2 - interrupt enable */
|
||||||
interrupt_enable_w(space, offset, data & 0x04);
|
interrupt_enable_w(space, offset, data & 0x04);
|
||||||
@ -70,12 +66,13 @@ WRITE8_HANDLER( cheekyms_port_80_w )
|
|||||||
|
|
||||||
static TILE_GET_INFO( cheekyms_get_tile_info )
|
static TILE_GET_INFO( cheekyms_get_tile_info )
|
||||||
{
|
{
|
||||||
|
cheekyms_state *state = (cheekyms_state *)machine->driver_data;
|
||||||
int color;
|
int color;
|
||||||
|
|
||||||
int x = tile_index & 0x1f;
|
int x = tile_index & 0x1f;
|
||||||
int y = tile_index >> 5;
|
int y = tile_index >> 5;
|
||||||
int code = cheekyms_videoram[tile_index];
|
int code = state->videoram[tile_index];
|
||||||
int palette = (*cheekyms_port_80 >> 2) & 0x10;
|
int palette = (*state->port_80 >> 2) & 0x10;
|
||||||
|
|
||||||
if (x >= 0x1e)
|
if (x >= 0x1e)
|
||||||
{
|
{
|
||||||
@ -99,33 +96,35 @@ static TILE_GET_INFO( cheekyms_get_tile_info )
|
|||||||
|
|
||||||
VIDEO_START( cheekyms )
|
VIDEO_START( cheekyms )
|
||||||
{
|
{
|
||||||
|
cheekyms_state *state = (cheekyms_state *)machine->driver_data;
|
||||||
int width, height;
|
int width, height;
|
||||||
|
|
||||||
width = video_screen_get_width(machine->primary_screen);
|
width = video_screen_get_width(machine->primary_screen);
|
||||||
height = video_screen_get_height(machine->primary_screen);
|
height = video_screen_get_height(machine->primary_screen);
|
||||||
bitmap_buffer = auto_bitmap_alloc(machine, width, height, BITMAP_FORMAT_INDEXED16);
|
state->bitmap_buffer = auto_bitmap_alloc(machine, width, height, BITMAP_FORMAT_INDEXED16);
|
||||||
|
|
||||||
cheekyms_tilemap = tilemap_create(machine, cheekyms_get_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
|
state->cm_tilemap = tilemap_create(machine, cheekyms_get_tile_info, tilemap_scan_rows, 8, 8, 32, 32);
|
||||||
tilemap_set_transparent_pen(cheekyms_tilemap, 0);
|
tilemap_set_transparent_pen(state->cm_tilemap, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void draw_sprites(bitmap_t *bitmap, const rectangle *cliprect, const gfx_element *gfx, int flip)
|
static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect, const gfx_element *gfx, int flip )
|
||||||
{
|
{
|
||||||
|
cheekyms_state *state = (cheekyms_state *)machine->driver_data;
|
||||||
offs_t offs;
|
offs_t offs;
|
||||||
|
|
||||||
for (offs = 0; offs < 0x20; offs += 4)
|
for (offs = 0; offs < 0x20; offs += 4)
|
||||||
{
|
{
|
||||||
int x, y, code, color;
|
int x, y, code, color;
|
||||||
|
|
||||||
if ((cheekyms_spriteram[offs + 3] & 0x08) == 0x00) continue;
|
if ((state->spriteram[offs + 3] & 0x08) == 0x00) continue;
|
||||||
|
|
||||||
x = 256 - cheekyms_spriteram[offs + 2];
|
x = 256 - state->spriteram[offs + 2];
|
||||||
y = cheekyms_spriteram[offs + 1];
|
y = state->spriteram[offs + 1];
|
||||||
code = (~cheekyms_spriteram[offs + 0] & 0x0f) << 1;
|
code = (~state->spriteram[offs + 0] & 0x0f) << 1;
|
||||||
color = (~cheekyms_spriteram[offs + 3] & 0x07);
|
color = (~state->spriteram[offs + 3] & 0x07);
|
||||||
|
|
||||||
if (cheekyms_spriteram[offs + 0] & 0x80)
|
if (state->spriteram[offs + 0] & 0x80)
|
||||||
{
|
{
|
||||||
if (!flip)
|
if (!flip)
|
||||||
code++;
|
code++;
|
||||||
@ -134,7 +133,7 @@ static void draw_sprites(bitmap_t *bitmap, const rectangle *cliprect, const gfx_
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (cheekyms_spriteram[offs + 0] & 0x02)
|
if (state->spriteram[offs + 0] & 0x02)
|
||||||
{
|
{
|
||||||
drawgfx_transpen(bitmap, cliprect, gfx, code | 0x20, color, 0, 0, x, y, 0);
|
drawgfx_transpen(bitmap, cliprect, gfx, code | 0x20, color, 0, 0, x, y, 0);
|
||||||
drawgfx_transpen(bitmap, cliprect, gfx, code | 0x21, color, 0, 0, 0x10 + x, y, 0);
|
drawgfx_transpen(bitmap, cliprect, gfx, code | 0x21, color, 0, 0, 0x10 + x, y, 0);
|
||||||
@ -151,47 +150,48 @@ static void draw_sprites(bitmap_t *bitmap, const rectangle *cliprect, const gfx_
|
|||||||
|
|
||||||
VIDEO_UPDATE( cheekyms )
|
VIDEO_UPDATE( cheekyms )
|
||||||
{
|
{
|
||||||
int y,x;
|
cheekyms_state *state = (cheekyms_state *)screen->machine->driver_data;
|
||||||
int scrolly = ((*cheekyms_port_80 >> 3) & 0x07);
|
int y, x;
|
||||||
int flip = *cheekyms_port_80 & 0x80;
|
int scrolly = ((*state->port_80 >> 3) & 0x07);
|
||||||
|
int flip = *state->port_80 & 0x80;
|
||||||
|
|
||||||
tilemap_mark_all_tiles_dirty_all(screen->machine);
|
tilemap_mark_all_tiles_dirty_all(screen->machine);
|
||||||
tilemap_set_flip_all(screen->machine, flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
tilemap_set_flip_all(screen->machine, flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
|
||||||
|
|
||||||
bitmap_fill(bitmap, cliprect, 0);
|
bitmap_fill(bitmap, cliprect, 0);
|
||||||
bitmap_fill(bitmap_buffer, cliprect, 0);
|
bitmap_fill(state->bitmap_buffer, cliprect, 0);
|
||||||
|
|
||||||
/* sprites go under the playfield */
|
/* sprites go under the playfield */
|
||||||
draw_sprites(bitmap, cliprect, screen->machine->gfx[1], flip);
|
draw_sprites(screen->machine, bitmap, cliprect, screen->machine->gfx[1], flip);
|
||||||
|
|
||||||
/* draw the tilemap to a temp bitmap */
|
/* draw the tilemap to a temp bitmap */
|
||||||
tilemap_draw(bitmap_buffer, cliprect, cheekyms_tilemap, 0, 0);
|
tilemap_draw(state->bitmap_buffer, cliprect, state->cm_tilemap, 0, 0);
|
||||||
|
|
||||||
/* draw the tilemap to the final bitmap applying the scroll to the man character */
|
/* draw the tilemap to the final bitmap applying the scroll to the man character */
|
||||||
for(y = cliprect->min_y; y <= cliprect->max_y; y++)
|
for (y = cliprect->min_y; y <= cliprect->max_y; y++)
|
||||||
{
|
{
|
||||||
for(x = cliprect->min_x; x <= cliprect->max_x; x++)
|
for (x = cliprect->min_x; x <= cliprect->max_x; x++)
|
||||||
{
|
{
|
||||||
int in_man_area;
|
int in_man_area;
|
||||||
|
|
||||||
if(flip)
|
if (flip)
|
||||||
{
|
{
|
||||||
in_man_area = (x >= (32-12-1)*8 && x < (32-8)*8 && y > 5*8 && y < 27*8);
|
in_man_area = (x >= (32 - 12 - 1) * 8 && x < (32 - 8) * 8 && y > 5 * 8 && y < 27 * 8);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
in_man_area = (x >= 8*8 && x < 12*8 && y > 5*8 && y < 27*8);
|
in_man_area = (x >= 8 * 8 && x < 12 * 8 && y > 5 * 8 && y < 27 * 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(in_man_area)
|
if (in_man_area)
|
||||||
{
|
{
|
||||||
if ((y + scrolly) < 27*8 && *BITMAP_ADDR16(bitmap_buffer, y + scrolly, x) != 0)
|
if ((y + scrolly) < 27 * 8 && *BITMAP_ADDR16(state->bitmap_buffer, y + scrolly, x) != 0)
|
||||||
*BITMAP_ADDR16(bitmap, y, x) = *BITMAP_ADDR16(bitmap_buffer, y + scrolly, x);
|
*BITMAP_ADDR16(bitmap, y, x) = *BITMAP_ADDR16(state->bitmap_buffer, y + scrolly, x);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(*BITMAP_ADDR16(bitmap_buffer, y, x) != 0)
|
if(*BITMAP_ADDR16(state->bitmap_buffer, y, x) != 0)
|
||||||
*BITMAP_ADDR16(bitmap, y, x) = *BITMAP_ADDR16(bitmap_buffer, y, x);
|
*BITMAP_ADDR16(bitmap, y, x) = *BITMAP_ADDR16(state->bitmap_buffer, y, x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user