diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c index 85ce7934a9b..1d515d60762 100644 --- a/src/mame/drivers/batman.c +++ b/src/mame/drivers/batman.c @@ -59,8 +59,8 @@ static void update_interrupts(running_machine *machine) static MACHINE_RESET( batman ) { atarigen_eeprom_reset(); - atarivc_reset(machine->primary_screen, atarivc_eof_data, 2); atarigen_interrupt_reset(update_interrupts); + atarivc_reset(machine->primary_screen, atarivc_eof_data, 2); atarigen_scanline_timer_reset(machine->primary_screen, batman_scanline_update, 8); atarijsa_reset(); atarigen_init_save_state(); diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c index 1205a33dd4b..078453298ba 100644 --- a/src/mame/drivers/offtwall.c +++ b/src/mame/drivers/offtwall.c @@ -56,8 +56,8 @@ static void update_interrupts(running_machine *machine) static MACHINE_RESET( offtwall ) { atarigen_eeprom_reset(); - atarivc_reset(machine->primary_screen, atarivc_eof_data, 1); atarigen_interrupt_reset(update_interrupts); + atarivc_reset(machine->primary_screen, atarivc_eof_data, 1); atarijsa_reset(); } diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c index 526c673f2be..d1094113686 100644 --- a/src/mame/drivers/relief.c +++ b/src/mame/drivers/relief.c @@ -85,8 +85,8 @@ static WRITE16_HANDLER( relief_atarivc_w ) static MACHINE_RESET( relief ) { atarigen_eeprom_reset(); - atarivc_reset(machine->primary_screen, atarivc_eof_data, 2); atarigen_interrupt_reset(update_interrupts); + atarivc_reset(machine->primary_screen, atarivc_eof_data, 2); OKIM6295_set_bank_base(0, 0); ym2413_volume = 15; diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c index ab5e6fc8af4..1d2858f1691 100644 --- a/src/mame/drivers/shuuz.c +++ b/src/mame/drivers/shuuz.c @@ -73,8 +73,8 @@ static WRITE16_HANDLER( shuuz_atarivc_w ) static MACHINE_RESET( shuuz ) { atarigen_eeprom_reset(); - atarivc_reset(machine->primary_screen, atarivc_eof_data, 1); atarigen_interrupt_reset(update_interrupts); + atarivc_reset(machine->primary_screen, atarivc_eof_data, 1); } diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c index f32629a4d8e..bdcbe454ef5 100644 --- a/src/mame/drivers/thunderj.c +++ b/src/mame/drivers/thunderj.c @@ -59,8 +59,8 @@ static void update_interrupts(running_machine *machine) static MACHINE_RESET( thunderj ) { atarigen_eeprom_reset(); - atarivc_reset(machine->primary_screen, atarivc_eof_data, 2); atarigen_interrupt_reset(update_interrupts); + atarivc_reset(machine->primary_screen, atarivc_eof_data, 2); atarijsa_reset(); rom_base[0] = (UINT16 *)memory_region(REGION_CPU1); diff --git a/src/mame/video/arcadecl.c b/src/mame/video/arcadecl.c index 115ded873c4..1be08e23636 100644 --- a/src/mame/video/arcadecl.c +++ b/src/mame/video/arcadecl.c @@ -32,7 +32,7 @@ static UINT8 has_mo; VIDEO_START( arcadecl ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -94,11 +94,11 @@ VIDEO_UPDATE( arcadecl ) /* draw and merge the MO */ if (has_mo) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/atarimo.c b/src/mame/video/atarimo.c index acf5d9e8584..e97f01f8274 100644 --- a/src/mame/video/atarimo.c +++ b/src/mame/video/atarimo.c @@ -1,21 +1,22 @@ -/*########################################################################## +/*************************************************************************** atarimo.c Common motion object management functions for Atari raster games. -##########################################################################*/ +***************************************************************************/ #include "driver.h" #include "atarimo.h" -/*########################################################################## +/*************************************************************************** TYPES & STRUCTURES -##########################################################################*/ +***************************************************************************/ /* internal structure containing a word index, shift and mask */ -struct atarimo_mask +typedef struct _atarimo_mask atarimo_mask; +struct _atarimo_mask { int word; /* word index */ int shift; /* shift amount */ @@ -23,10 +24,13 @@ struct atarimo_mask }; /* internal structure containing the state of the motion objects */ -struct atarimo_data +typedef struct _atarimo_data atarimo_data; +struct _atarimo_data { + running_machine * machine; /* pointer back to the machine */ + UINT32 gfxchanged; /* true if the gfx info has changed */ - gfx_element gfxelement[MAX_GFX_ELEMENTS]; /* local copy of graphics elements */ + gfx_element gfxelement[MAX_GFX_ELEMENTS]; /* local copy of graphics elements */ int gfxgranularity[MAX_GFX_ELEMENTS]; bitmap_t *bitmap; /* temporary bitmap to render to */ @@ -67,41 +71,40 @@ struct atarimo_data int maxperline; /* maximum number of entries/line */ - struct atarimo_mask linkmask; /* mask for the link */ - struct atarimo_mask gfxmask; /* mask for the graphics bank */ - struct atarimo_mask codemask; /* mask for the code index */ - struct atarimo_mask codehighmask; /* mask for the upper code index */ - struct atarimo_mask colormask; /* mask for the color */ - struct atarimo_mask xposmask; /* mask for the X position */ - struct atarimo_mask yposmask; /* mask for the Y position */ - struct atarimo_mask widthmask; /* mask for the width, in tiles*/ - struct atarimo_mask heightmask; /* mask for the height, in tiles */ - struct atarimo_mask hflipmask; /* mask for the horizontal flip */ - struct atarimo_mask vflipmask; /* mask for the vertical flip */ - struct atarimo_mask prioritymask; /* mask for the priority */ - struct atarimo_mask neighbormask; /* mask for the neighbor */ - struct atarimo_mask absolutemask; /* mask for absolute coordinates */ + atarimo_mask linkmask; /* mask for the link */ + atarimo_mask gfxmask; /* mask for the graphics bank */ + atarimo_mask codemask; /* mask for the code index */ + atarimo_mask codehighmask; /* mask for the upper code index */ + atarimo_mask colormask; /* mask for the color */ + atarimo_mask xposmask; /* mask for the X position */ + atarimo_mask yposmask; /* mask for the Y position */ + atarimo_mask widthmask; /* mask for the width, in tiles*/ + atarimo_mask heightmask; /* mask for the height, in tiles */ + atarimo_mask hflipmask; /* mask for the horizontal flip */ + atarimo_mask vflipmask; /* mask for the vertical flip */ + atarimo_mask prioritymask; /* mask for the priority */ + atarimo_mask neighbormask; /* mask for the neighbor */ + atarimo_mask absolutemask; /* mask for absolute coordinates */ - struct atarimo_mask specialmask; /* mask for the special value */ + atarimo_mask specialmask; /* mask for the special value */ int specialvalue; /* resulting value to indicate "special" */ - atarimo_special_func specialcb; /* callback routine for special entries */ + atarimo_special_func specialcb; /* callback routine for special entries */ int codehighshift; /* shift count for the upper code */ - struct atarimo_entry *spriteram; /* pointer to sprite RAM */ + atarimo_entry * spriteram; /* pointer to sprite RAM */ UINT16 ** slipram; /* pointer to the SLIP RAM pointer */ UINT16 * codelookup; /* lookup table for codes */ UINT8 * colorlookup; /* lookup table for colors */ UINT8 * gfxlookup; /* lookup table for graphics */ - struct atarimo_entry *activelist[ATARIMO_MAXPERBANK]; /* pointers to active motion objects */ - struct atarimo_entry **activelast; /* pointer to the last pointer in the active list */ - UINT32 last_link; /* previous starting point */ + atarimo_entry * activelist[ATARIMO_MAXPERBANK]; /* pointers to active motion objects */ + atarimo_entry ** activelast; /* pointer to the last pointer in the active list */ UINT8 * dirtygrid; /* grid of dirty rects for blending */ int dirtywidth; /* width of dirty grid */ int dirtyheight; /* height of dirty grid */ - rectangle rectlist[ATARIMO_MAXPERBANK]; /* list of bounding rectangles */ + rectangle rectlist[ATARIMO_MAXPERBANK]; /* list of bounding rectangles */ int rectcount; UINT32 last_xpos; /* (during processing) the previous X position */ @@ -110,18 +113,18 @@ struct atarimo_data -/*########################################################################## +/*************************************************************************** MACROS -##########################################################################*/ +***************************************************************************/ /* data extraction */ #define EXTRACT_DATA(_input, _mask) (((_input)->data[(_mask).word] >> (_mask).shift) & (_mask).mask) -/*########################################################################## +/*************************************************************************** GLOBAL VARIABLES -##########################################################################*/ +***************************************************************************/ UINT16 *atarimo_0_spriteram; UINT16 *atarimo_0_slipram; @@ -131,25 +134,25 @@ UINT16 *atarimo_1_slipram; -/*########################################################################## +/*************************************************************************** STATIC VARIABLES -##########################################################################*/ +***************************************************************************/ -static struct atarimo_data atarimo[ATARIMO_MAX]; +static atarimo_data atarimo[ATARIMO_MAX]; static emu_timer *force_update_timer; -/*########################################################################## +/*************************************************************************** STATIC FUNCTION DECLARATIONS -##########################################################################*/ +***************************************************************************/ -static int mo_render_object(running_machine *machine, struct atarimo_data *mo, const struct atarimo_entry *entry, const rectangle *cliprect); +static int mo_render_object(atarimo_data *mo, const atarimo_entry *entry, const rectangle *cliprect); -/*########################################################################## +/*************************************************************************** INLINE FUNCTIONS -##########################################################################*/ +***************************************************************************/ /*--------------------------------------------------------------- compute_log: Computes the number of bits necessary to @@ -194,7 +197,7 @@ INLINE int round_to_powerof2(int value) shift, and adjusted mask. Returns 0 if invalid. ---------------------------------------------------------------*/ -INLINE int convert_mask(const struct atarimo_entry *input, struct atarimo_mask *result) +INLINE int convert_mask(const atarimo_entry *input, atarimo_mask *result) { int i, temp; @@ -234,30 +237,29 @@ INLINE int convert_mask(const struct atarimo_entry *input, struct atarimo_mask * gives us full control over colors. ---------------------------------------------------------------*/ -INLINE void init_gfxelement(running_machine *machine, struct atarimo_data *mo, int idx) +INLINE void init_gfxelement(atarimo_data *mo, int idx) { - mo->gfxelement[idx] = *machine->gfx[idx]; + mo->gfxelement[idx] = *mo->machine->gfx[idx]; mo->gfxgranularity[idx] = mo->gfxelement[idx].color_granularity; mo->gfxelement[idx].color_granularity = 1; mo->gfxelement[idx].color_base = 0; mo->gfxelement[idx].total_colors = 65536; } -static struct atarimo_data atarimo[ATARIMO_MAX]; +static atarimo_data atarimo[ATARIMO_MAX]; static emu_timer *force_update_timer; /*--------------------------------------------------------------- init_savestate: Initialize save states ---------------------------------------------------------------*/ -static void init_savestate(int index, struct atarimo_data *mo) +static void init_savestate(int index, atarimo_data *mo) { state_save_register_item("atarimo", index, mo->gfxchanged); state_save_register_item("atarimo", index, mo->palettebase); state_save_register_item("atarimo", index, mo->bank); state_save_register_item("atarimo", index, mo->xscroll); state_save_register_item("atarimo", index, mo->yscroll); - state_save_register_item("atarimo", index, mo->last_link); state_save_register_item("atarimo", index, mo->last_xpos); state_save_register_item("atarimo", index, mo->next_xpos); @@ -297,7 +299,7 @@ static void init_savestate(int index, struct atarimo_data *mo) state_save_register_bitmap("atarimo", index, "bitmap", mo->bitmap); - state_save_register_memory("atarimo", index, "spriteram", mo->spriteram, sizeof(struct atarimo_entry), mo->spriteramsize); + state_save_register_memory("atarimo", index, "spriteram", mo->spriteram, sizeof(atarimo_entry), mo->spriteramsize); state_save_register_item_pointer("atarimo", index, mo->codelookup, round_to_powerof2(mo->codemask.mask)); @@ -309,9 +311,9 @@ static void init_savestate(int index, struct atarimo_data *mo) } -/*########################################################################## +/*************************************************************************** GLOBAL FUNCTIONS -##########################################################################*/ +***************************************************************************/ static TIMER_CALLBACK( force_update ) { @@ -332,10 +334,10 @@ static TIMER_CALLBACK( force_update ) the attribute lookup table. ---------------------------------------------------------------*/ -void atarimo_init(running_machine *machine, int map, const struct atarimo_desc *desc) +void atarimo_init(running_machine *machine, int map, const atarimo_desc *desc) { gfx_element *gfx = machine->gfx[desc->gfxindex]; - struct atarimo_data *mo = &atarimo[map]; + atarimo_data *mo = &atarimo[map]; int i; assert_always(map >= 0 && map < ATARIMO_MAX, "atarimo_init: map out of range"); @@ -357,7 +359,8 @@ void atarimo_init(running_machine *machine, int map, const struct atarimo_desc * convert_mask(&desc->absolutemask, &mo->absolutemask); /* copy in the basic data */ - mo->gfxchanged = 0; + mo->machine = machine; + mo->gfxchanged = FALSE; mo->linked = desc->linked; mo->split = desc->split; @@ -402,8 +405,6 @@ void atarimo_init(running_machine *machine, int map, const struct atarimo_desc * mo->slipram = (map == 0) ? &atarimo_0_slipram : &atarimo_1_slipram; - mo->last_link = -1; - /* allocate the temp bitmap */ mo->bitmap = video_screen_auto_bitmap_alloc(machine->primary_screen); fillbitmap(mo->bitmap, desc->transpen, NULL); @@ -441,7 +442,7 @@ void atarimo_init(running_machine *machine, int map, const struct atarimo_desc * mo->gfxlookup[i] = desc->gfxindex; /* initialize the gfx elements so we have full control over colors */ - init_gfxelement(machine, mo, desc->gfxindex); + init_gfxelement(mo, desc->gfxindex); /* start a timer to update a few times during refresh */ force_update_timer = timer_alloc(force_update, NULL); @@ -464,7 +465,7 @@ void atarimo_init(running_machine *machine, int map, const struct atarimo_desc * UINT16 *atarimo_get_code_lookup(int map, int *size) { - struct atarimo_data *mo = &atarimo[map]; + atarimo_data *mo = &atarimo[map]; if (size) *size = round_to_powerof2(mo->codemask.mask); @@ -479,7 +480,7 @@ UINT16 *atarimo_get_code_lookup(int map, int *size) UINT8 *atarimo_get_color_lookup(int map, int *size) { - struct atarimo_data *mo = &atarimo[map]; + atarimo_data *mo = &atarimo[map]; if (size) *size = round_to_powerof2(mo->colormask.mask); @@ -494,9 +495,9 @@ UINT8 *atarimo_get_color_lookup(int map, int *size) UINT8 *atarimo_get_gfx_lookup(int map, int *size) { - struct atarimo_data *mo = &atarimo[map]; + atarimo_data *mo = &atarimo[map]; - mo->gfxchanged = 1; + mo->gfxchanged = TRUE; if (size) *size = round_to_powerof2(mo->gfxmask.mask); return mo->gfxlookup; @@ -504,26 +505,23 @@ UINT8 *atarimo_get_gfx_lookup(int map, int *size) /*--------------------------------------------------------------- - update_active_list: Update the list of active objects. + build_active_list: Build a list of active objects. ---------------------------------------------------------------*/ -static void update_active_list(struct atarimo_data *mo, int link) +static void build_active_list(atarimo_data *mo, int link) { - struct atarimo_entry *bankbase = &mo->spriteram[mo->bank << mo->entrybits]; + atarimo_entry *bankbase = &mo->spriteram[mo->bank << mo->entrybits]; UINT8 movisit[ATARIMO_MAXPERBANK]; - struct atarimo_entry **current; + atarimo_entry **current; int i; /* reset the visit map */ memset(movisit, 0, mo->entrycount); - /* remember the last link */ - mo->last_link = link; - /* visit all the motion objects and copy their data into the display list */ for (i = 0, current = mo->activelist; i < mo->maxperline && !movisit[link]; i++) { - struct atarimo_entry *modata = &bankbase[link]; + atarimo_entry *modata = &bankbase[link]; /* copy the current entry into the list */ *current++ = modata; @@ -546,7 +544,7 @@ static void update_active_list(struct atarimo_data *mo, int link) X and Y position. ---------------------------------------------------------------*/ -INLINE UINT8 *get_dirty_base(struct atarimo_data *mo, int x, int y) +INLINE UINT8 *get_dirty_base(atarimo_data *mo, int x, int y) { UINT8 *result = mo->dirtygrid; result += ((y >> mo->tileyshift) + 1) * mo->dirtywidth; @@ -560,7 +558,7 @@ INLINE UINT8 *get_dirty_base(struct atarimo_data *mo, int x, int y) cliprect. ---------------------------------------------------------------*/ -static void erase_dirty_grid(struct atarimo_data *mo, const rectangle *cliprect) +static void erase_dirty_grid(atarimo_data *mo, const rectangle *cliprect) { int sx = cliprect->min_x >> mo->tilexshift; int ex = cliprect->max_x >> mo->tilexshift; @@ -583,7 +581,7 @@ static void erase_dirty_grid(struct atarimo_data *mo, const rectangle *cliprect) series of cliprects. ---------------------------------------------------------------*/ -static void convert_dirty_grid_to_rects(struct atarimo_data *mo, const rectangle *cliprect, struct atarimo_rect_list *rectlist) +static void convert_dirty_grid_to_rects(atarimo_data *mo, const rectangle *cliprect, atarimo_rect_list *rectlist) { int sx = cliprect->min_x >> mo->tilexshift; int ex = cliprect->max_x >> mo->tilexshift; @@ -646,18 +644,18 @@ static void convert_dirty_grid_to_rects(struct atarimo_data *mo, const rectangle destination bitmap. ---------------------------------------------------------------*/ -bitmap_t *atarimo_render(running_machine *machine, int map, const rectangle *cliprect, struct atarimo_rect_list *rectlist) +bitmap_t *atarimo_render(int map, const rectangle *cliprect, atarimo_rect_list *rectlist) { - struct atarimo_data *mo = &atarimo[map]; + atarimo_data *mo = &atarimo[map]; int startband, stopband, band, i; rectangle *rect; /* if the graphics info has changed, recompute */ if (mo->gfxchanged) { - mo->gfxchanged = 0; + mo->gfxchanged = FALSE; for (i = 0; i < round_to_powerof2(mo->gfxmask.mask); i++) - init_gfxelement(machine, mo, mo->gfxlookup[i]); + init_gfxelement(mo, mo->gfxlookup[i]); } /* compute start/stop bands */ @@ -674,7 +672,7 @@ bitmap_t *atarimo_render(running_machine *machine, int map, const rectangle *cli /* loop over SLIP bands */ for (band = startband; band <= stopband; band++) { - struct atarimo_entry **first, **current, **last; + atarimo_entry **first, **current, **last; rectangle bandclip; int link, step; @@ -696,7 +694,7 @@ bitmap_t *atarimo_render(running_machine *machine, int map, const rectangle *cli /* compute minimum Y and wrap around if necessary */ bandclip.min_y = ((band << mo->slipshift) - mo->yscroll + mo->slipoffset) & mo->bitmapymask; - if (bandclip.min_y > video_screen_get_visible_area(machine->primary_screen)->max_y) + if (bandclip.min_y > video_screen_get_visible_area(mo->machine->primary_screen)->max_y) bandclip.min_y -= mo->bitmapheight; /* maximum Y is based on the minimum */ @@ -707,8 +705,7 @@ bitmap_t *atarimo_render(running_machine *machine, int map, const rectangle *cli } /* if this matches the last link, we don't need to re-process the list */ - if (link != mo->last_link) - update_active_list(mo, link); + build_active_list(mo, link); /* set the start and end points */ if (mo->reverse) @@ -729,7 +726,7 @@ bitmap_t *atarimo_render(running_machine *machine, int map, const rectangle *cli /* render the mos */ for (current = first; current != last; current += step) - mo_render_object(machine, mo, *current, &bandclip); + mo_render_object(mo, *current, &bandclip); } /* convert the dirty grid to a rectlist */ @@ -750,7 +747,7 @@ bitmap_t *atarimo_render(running_machine *machine, int map, const rectangle *cli to the destination. ---------------------------------------------------------------*/ -static int mo_render_object(running_machine *machine, struct atarimo_data *mo, const struct atarimo_entry *entry, const rectangle *cliprect) +static int mo_render_object(atarimo_data *mo, const atarimo_entry *entry, const rectangle *cliprect) { int gfxindex = mo->gfxlookup[EXTRACT_DATA(entry, mo->gfxmask)]; const gfx_element *gfx = &mo->gfxelement[gfxindex]; @@ -815,8 +812,8 @@ if ((temp & 0xff00) == 0xc800) /* adjust the final coordinates */ xpos &= mo->bitmapxmask; ypos &= mo->bitmapymask; - if (xpos > video_screen_get_visible_area(machine->primary_screen)->max_x) xpos -= mo->bitmapwidth; - if (ypos > video_screen_get_visible_area(machine->primary_screen)->max_y) ypos -= mo->bitmapheight; + if (xpos > video_screen_get_visible_area(mo->machine->primary_screen)->max_x) xpos -= mo->bitmapwidth; + if (ypos > video_screen_get_visible_area(mo->machine->primary_screen)->max_y) ypos -= mo->bitmapheight; /* is this one special? */ if (mo->specialmask.mask != 0 && EXTRACT_DATA(entry, mo->specialmask) == mo->specialvalue) @@ -926,12 +923,8 @@ if ((temp & 0xff00) == 0xc800) void atarimo_set_bank(int map, int bank) { - struct atarimo_data *mo = &atarimo[map]; - if (mo->bank != bank) - { - mo->bank = bank; - mo->last_link = -1; - } + atarimo_data *mo = &atarimo[map]; + mo->bank = bank; } @@ -942,7 +935,7 @@ void atarimo_set_bank(int map, int bank) void atarimo_set_xscroll(int map, int xscroll) { - struct atarimo_data *mo = &atarimo[map]; + atarimo_data *mo = &atarimo[map]; mo->xscroll = xscroll; } @@ -954,7 +947,7 @@ void atarimo_set_xscroll(int map, int xscroll) void atarimo_set_yscroll(int map, int yscroll) { - struct atarimo_data *mo = &atarimo[map]; + atarimo_data *mo = &atarimo[map]; mo->yscroll = yscroll; } @@ -1013,7 +1006,6 @@ WRITE16_HANDLER( atarimo_0_spriteram_w ) } bank = offset >> (2 + atarimo[0].entrybits); COMBINE_DATA(&atarimo[0].spriteram[(bank << atarimo[0].entrybits) + entry].data[idx]); - atarimo[0].last_link = -1; } @@ -1038,7 +1030,6 @@ WRITE16_HANDLER( atarimo_1_spriteram_w ) } bank = offset >> (2 + atarimo[1].entrybits); COMBINE_DATA(&atarimo[1].spriteram[(bank << atarimo[1].entrybits) + entry].data[idx]); - atarimo[1].last_link = -1; } @@ -1067,7 +1058,6 @@ WRITE16_HANDLER( atarimo_0_spriteram_expanded_w ) } bank = offset >> (2 + atarimo[0].entrybits); COMBINE_DATA(&atarimo[0].spriteram[(bank << atarimo[0].entrybits) + entry].data[idx]); - atarimo[0].last_link = -1; } } diff --git a/src/mame/video/atarimo.h b/src/mame/video/atarimo.h index 34519bd7c0f..4612dbab452 100644 --- a/src/mame/video/atarimo.h +++ b/src/mame/video/atarimo.h @@ -1,18 +1,18 @@ -/*########################################################################## +/*************************************************************************** atarimo.h Common motion object management functions for Atari raster games. -##########################################################################*/ +***************************************************************************/ #ifndef __ATARIMO__ #define __ATARIMO__ -/*########################################################################## +/*************************************************************************** CONSTANTS -##########################################################################*/ +***************************************************************************/ /* maximum number of motion object processors */ #define ATARIMO_MAX 2 @@ -27,21 +27,23 @@ -/*########################################################################## +/*************************************************************************** TYPES & STRUCTURES -##########################################################################*/ +***************************************************************************/ /* callback for special processing */ typedef int (*atarimo_special_func)(bitmap_t *bitmap, const rectangle *clip, int code, int color, int xpos, int ypos, rectangle *mobounds); /* description for a four-word mask */ -struct atarimo_entry +typedef struct _atarimo_entry atarimo_entry; +struct _atarimo_entry { UINT16 data[4]; }; /* description of the motion objects */ -struct atarimo_desc +typedef struct _atarimo_desc atarimo_desc; +struct _atarimo_desc { UINT8 gfxindex; /* index to which gfx system */ UINT8 banks; /* number of motion object banks */ @@ -58,46 +60,47 @@ struct atarimo_desc UINT16 maxcolors; /* maximum number of colors */ UINT8 transpen; /* transparent pen index */ - struct atarimo_entry linkmask; /* mask for the link */ - struct atarimo_entry gfxmask; /* mask for the graphics bank */ - struct atarimo_entry codemask; /* mask for the code index */ - struct atarimo_entry codehighmask; /* mask for the upper code index */ - struct atarimo_entry colormask; /* mask for the color */ - struct atarimo_entry xposmask; /* mask for the X position */ - struct atarimo_entry yposmask; /* mask for the Y position */ - struct atarimo_entry widthmask; /* mask for the width, in tiles*/ - struct atarimo_entry heightmask; /* mask for the height, in tiles */ - struct atarimo_entry hflipmask; /* mask for the horizontal flip */ - struct atarimo_entry vflipmask; /* mask for the vertical flip */ - struct atarimo_entry prioritymask; /* mask for the priority */ - struct atarimo_entry neighbormask; /* mask for the neighbor */ - struct atarimo_entry absolutemask; /* mask for absolute coordinates */ + atarimo_entry linkmask; /* mask for the link */ + atarimo_entry gfxmask; /* mask for the graphics bank */ + atarimo_entry codemask; /* mask for the code index */ + atarimo_entry codehighmask; /* mask for the upper code index */ + atarimo_entry colormask; /* mask for the color */ + atarimo_entry xposmask; /* mask for the X position */ + atarimo_entry yposmask; /* mask for the Y position */ + atarimo_entry widthmask; /* mask for the width, in tiles*/ + atarimo_entry heightmask; /* mask for the height, in tiles */ + atarimo_entry hflipmask; /* mask for the horizontal flip */ + atarimo_entry vflipmask; /* mask for the vertical flip */ + atarimo_entry prioritymask; /* mask for the priority */ + atarimo_entry neighbormask; /* mask for the neighbor */ + atarimo_entry absolutemask; /* mask for absolute coordinates */ - struct atarimo_entry specialmask; /* mask for the special value */ - UINT16 specialvalue; /* resulting value to indicate "special" */ - atarimo_special_func specialcb; /* callback routine for special entries */ + atarimo_entry specialmask; /* mask for the special value */ + UINT16 specialvalue; /* resulting value to indicate "special" */ + atarimo_special_func specialcb; /* callback routine for special entries */ }; /* rectangle list */ -struct atarimo_rect_list +typedef struct _atarimo_rect_list atarimo_rect_list; +struct _atarimo_rect_list { int numrects; - rectangle * rect; + rectangle * rect; }; -/*########################################################################## +/*************************************************************************** FUNCTION PROTOTYPES -##########################################################################*/ +***************************************************************************/ /* setup/shutdown */ -void atarimo_init(running_machine *machine, int map, const struct atarimo_desc *desc); +void atarimo_init(running_machine *machine, int map, const atarimo_desc *desc); UINT16 *atarimo_get_code_lookup(int map, int *size); UINT8 *atarimo_get_color_lookup(int map, int *size); UINT8 *atarimo_get_gfx_lookup(int map, int *size); /* core processing */ -bitmap_t *atarimo_render(running_machine *machine, int map, const rectangle *cliprect, struct atarimo_rect_list *rectlist); +bitmap_t *atarimo_render(int map, const rectangle *cliprect, atarimo_rect_list *rectlist); /* atrribute setters */ void atarimo_set_bank(int map, int bank); @@ -119,9 +122,9 @@ WRITE16_HANDLER( atarimo_1_slipram_w ); -/*########################################################################## +/*************************************************************************** GLOBAL VARIABLES -##########################################################################*/ +***************************************************************************/ extern UINT16 *atarimo_0_spriteram; extern UINT16 *atarimo_0_slipram; diff --git a/src/mame/video/atarisy1.c b/src/mame/video/atarisy1.c index 610cc3f33c1..1a6e1112d00 100644 --- a/src/mame/video/atarisy1.c +++ b/src/mame/video/atarisy1.c @@ -151,7 +151,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( atarisy1 ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 8, /* number of motion object banks */ @@ -514,7 +514,7 @@ static void update_timers(running_machine *machine, int scanline) VIDEO_UPDATE( atarisy1 ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -522,7 +522,7 @@ VIDEO_UPDATE( atarisy1 ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/atarisy2.c b/src/mame/video/atarisy2.c index 239a1620d68..a3516fc68a0 100644 --- a/src/mame/video/atarisy2.c +++ b/src/mame/video/atarisy2.c @@ -79,7 +79,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( atarisy2 ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -330,7 +330,7 @@ WRITE16_HANDLER( atarisy2_videoram_w ) VIDEO_UPDATE( atarisy2 ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -342,7 +342,7 @@ VIDEO_UPDATE( atarisy2 ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 3, 3); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/badlands.c b/src/mame/video/badlands.c index 5064fa2e1ac..2f2d54d69d8 100644 --- a/src/mame/video/badlands.c +++ b/src/mame/video/badlands.c @@ -44,7 +44,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( badlands ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -117,7 +117,7 @@ WRITE16_HANDLER( badlands_pf_bank_w ) VIDEO_UPDATE( badlands ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -125,7 +125,7 @@ VIDEO_UPDATE( badlands ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/batman.c b/src/mame/video/batman.c index 86e0fd9344a..518d9a6d40d 100644 --- a/src/mame/video/batman.c +++ b/src/mame/video/batman.c @@ -68,7 +68,7 @@ static TILE_GET_INFO( get_playfield2_tile_info ) VIDEO_START( batman ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -201,7 +201,7 @@ void batman_scanline_update(const device_config *screen, int scanline) VIDEO_UPDATE( batman ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -217,7 +217,7 @@ VIDEO_UPDATE( batman ) tilemap_draw(bitmap, cliprect, atarigen_playfield2_tilemap, 3, 0x8c); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/blstroid.c b/src/mame/video/blstroid.c index 00bb75ba58f..71764c487ca 100644 --- a/src/mame/video/blstroid.c +++ b/src/mame/video/blstroid.c @@ -44,7 +44,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( blstroid ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -150,7 +150,7 @@ void blstroid_scanline_update(const device_config *screen, int scanline) VIDEO_UPDATE( blstroid ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -158,7 +158,7 @@ VIDEO_UPDATE( blstroid ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/cyberbal.c b/src/mame/video/cyberbal.c index b4e340085c5..7a517203f7c 100644 --- a/src/mame/video/cyberbal.c +++ b/src/mame/video/cyberbal.c @@ -88,7 +88,7 @@ static TILE_GET_INFO( get_playfield2_tile_info ) static void video_start_cyberbal_common(running_machine* machine, int screens) { - static const struct atarimo_desc mo0desc = + static const atarimo_desc mo0desc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -125,7 +125,7 @@ static void video_start_cyberbal_common(running_machine* machine, int screens) 0 /* callback routine for special entries */ }; - static const struct atarimo_desc mo1desc = + static const atarimo_desc mo1desc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -347,7 +347,7 @@ void cyberbal_scanline_update(const device_config *screen, int scanline) static void update_one_screen(const device_config *screen, bitmap_t *bitmap, const rectangle *cliprect) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; rectangle tempclip = *cliprect; bitmap_t *mobitmap; int x, y, r, mooffset, temp; @@ -368,7 +368,7 @@ static void update_one_screen(const device_config *screen, bitmap_t *bitmap, con temp = visarea->max_x; if (temp > SCREEN_WIDTH) visarea->max_x /= 2; - mobitmap = atarimo_render(screen->machine, (screen == left_screen) ? 0 : 1, cliprect, &rectlist); + mobitmap = atarimo_render((screen == left_screen) ? 0 : 1, cliprect, &rectlist); tempclip.min_x += mooffset; tempclip.max_x += mooffset; visarea->max_x = temp; diff --git a/src/mame/video/eprom.c b/src/mame/video/eprom.c index c86f88a3c4c..c568914e736 100644 --- a/src/mame/video/eprom.c +++ b/src/mame/video/eprom.c @@ -56,7 +56,7 @@ static TILE_GET_INFO( guts_get_playfield_tile_info ) VIDEO_START( eprom ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -107,7 +107,7 @@ VIDEO_START( eprom ) VIDEO_START( guts ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -187,7 +187,7 @@ void eprom_scanline_update(const device_config *screen, int scanline) VIDEO_UPDATE( eprom ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -195,7 +195,7 @@ VIDEO_UPDATE( eprom ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { @@ -333,7 +333,7 @@ VIDEO_UPDATE( eprom ) VIDEO_UPDATE( guts ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -341,7 +341,7 @@ VIDEO_UPDATE( guts ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/gauntlet.c b/src/mame/video/gauntlet.c index 6bcc50ab833..ab4f93d0cfc 100644 --- a/src/mame/video/gauntlet.c +++ b/src/mame/video/gauntlet.c @@ -65,7 +65,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( gauntlet ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -189,7 +189,7 @@ WRITE16_HANDLER( gauntlet_yscroll_w ) VIDEO_UPDATE( gauntlet ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -197,7 +197,7 @@ VIDEO_UPDATE( gauntlet ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/klax.c b/src/mame/video/klax.c index 1bf6e24bafe..490b900c807 100644 --- a/src/mame/video/klax.c +++ b/src/mame/video/klax.c @@ -35,7 +35,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( klax ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -101,7 +101,7 @@ WRITE16_HANDLER( klax_latch_w ) VIDEO_UPDATE( klax ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -109,7 +109,7 @@ VIDEO_UPDATE( klax ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/offtwall.c b/src/mame/video/offtwall.c index 915311e4885..33091abf819 100644 --- a/src/mame/video/offtwall.c +++ b/src/mame/video/offtwall.c @@ -35,7 +35,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( offtwall ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -89,7 +89,7 @@ VIDEO_START( offtwall ) VIDEO_UPDATE( offtwall ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -97,7 +97,7 @@ VIDEO_UPDATE( offtwall ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/rampart.c b/src/mame/video/rampart.c index 544a0984905..dd2324b726f 100644 --- a/src/mame/video/rampart.c +++ b/src/mame/video/rampart.c @@ -28,7 +28,7 @@ UINT16 *rampart_bitmap; VIDEO_START( rampart ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -82,7 +82,7 @@ VIDEO_START( rampart ) VIDEO_UPDATE( rampart ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -90,7 +90,7 @@ VIDEO_UPDATE( rampart ) rampart_bitmap_render(screen->machine, bitmap, cliprect); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/relief.c b/src/mame/video/relief.c index af7936296db..b6bb008b315 100644 --- a/src/mame/video/relief.c +++ b/src/mame/video/relief.c @@ -45,7 +45,7 @@ static TILE_GET_INFO( get_playfield2_tile_info ) VIDEO_START( relief ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -106,7 +106,7 @@ VIDEO_START( relief ) VIDEO_UPDATE( relief ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -116,7 +116,7 @@ VIDEO_UPDATE( relief ) tilemap_draw(bitmap, cliprect, atarigen_playfield2_tilemap, 0, 1); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/shuuz.c b/src/mame/video/shuuz.c index 68e317218a0..f47c8738b9a 100644 --- a/src/mame/video/shuuz.c +++ b/src/mame/video/shuuz.c @@ -35,7 +35,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( shuuz ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -89,7 +89,7 @@ VIDEO_START( shuuz ) VIDEO_UPDATE( shuuz ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -97,7 +97,7 @@ VIDEO_UPDATE( shuuz ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/skullxbo.c b/src/mame/video/skullxbo.c index f3b7123e488..4ee0b0d59e3 100644 --- a/src/mame/video/skullxbo.c +++ b/src/mame/video/skullxbo.c @@ -46,7 +46,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( skullxbo ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 2, /* number of motion object banks */ @@ -236,7 +236,7 @@ void skullxbo_scanline_update(int scanline) VIDEO_UPDATE( skullxbo ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -244,7 +244,7 @@ VIDEO_UPDATE( skullxbo ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/thunderj.c b/src/mame/video/thunderj.c index f911b219b92..574c563d4c4 100644 --- a/src/mame/video/thunderj.c +++ b/src/mame/video/thunderj.c @@ -67,7 +67,7 @@ static TILE_GET_INFO( get_playfield2_tile_info ) VIDEO_START( thunderj ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -154,7 +154,7 @@ void thunderj_mark_high_palette(bitmap_t *bitmap, UINT16 *pf, UINT16 *mo, int x, VIDEO_UPDATE( thunderj ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -170,7 +170,7 @@ VIDEO_UPDATE( thunderj ) tilemap_draw(bitmap, cliprect, atarigen_playfield2_tilemap, 3, 0x8c); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/toobin.c b/src/mame/video/toobin.c index 12a1f64e40c..fba2031f5c4 100644 --- a/src/mame/video/toobin.c +++ b/src/mame/video/toobin.c @@ -55,7 +55,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( toobin ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -227,7 +227,7 @@ WRITE16_HANDLER( toobin_slip_w ) VIDEO_UPDATE( toobin ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -239,7 +239,7 @@ VIDEO_UPDATE( toobin ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 3, 3); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/vindictr.c b/src/mame/video/vindictr.c index de345a91768..e8404c13b29 100644 --- a/src/mame/video/vindictr.c +++ b/src/mame/video/vindictr.c @@ -57,7 +57,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( vindictr ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 0, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -224,7 +224,7 @@ void vindictr_scanline_update(const device_config *screen, int scanline) VIDEO_UPDATE( vindictr ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -232,7 +232,7 @@ VIDEO_UPDATE( vindictr ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) { diff --git a/src/mame/video/xybots.c b/src/mame/video/xybots.c index 82a982b2605..20a1f8c8227 100644 --- a/src/mame/video/xybots.c +++ b/src/mame/video/xybots.c @@ -44,7 +44,7 @@ static TILE_GET_INFO( get_playfield_tile_info ) VIDEO_START( xybots ) { - static const struct atarimo_desc modesc = + static const atarimo_desc modesc = { 1, /* index to which gfx system */ 1, /* number of motion object banks */ @@ -102,7 +102,7 @@ VIDEO_START( xybots ) VIDEO_UPDATE( xybots ) { - struct atarimo_rect_list rectlist; + atarimo_rect_list rectlist; bitmap_t *mobitmap; int x, y, r; @@ -110,7 +110,7 @@ VIDEO_UPDATE( xybots ) tilemap_draw(bitmap, cliprect, atarigen_playfield_tilemap, 0, 0); /* draw and merge the MO */ - mobitmap = atarimo_render(screen->machine, 0, cliprect, &rectlist); + mobitmap = atarimo_render(0, cliprect, &rectlist); for (r = 0; r < rectlist.numrects; r++, rectlist.rect++) for (y = rectlist.rect->min_y; y <= rectlist.rect->max_y; y++) {