From 60848fb198c3bce24d9368c196f02dbac11298ad Mon Sep 17 00:00:00 2001 From: Angelo Salese Date: Thu, 26 Aug 2010 15:35:49 +0000 Subject: [PATCH] Haze: fixed atlantol, no whatsnew --- src/mame/drivers/trackfld.c | 8 +++++++- src/mame/includes/trackfld.h | 5 +++-- src/mame/video/trackfld.c | 16 +++++++++++++++- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c index 976d6dd8f1b..6606931878c 100644 --- a/src/mame/drivers/trackfld.c +++ b/src/mame/drivers/trackfld.c @@ -1107,6 +1107,12 @@ static MACHINE_DRIVER_START( hyprolyb ) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) MACHINE_DRIVER_END +static MACHINE_DRIVER_START( atlantol ) + MDRV_IMPORT_FROM(hyprolyb) + + MDRV_VIDEO_START(atlantol) +MACHINE_DRIVER_END + static MACHINE_DRIVER_START( mastkin ) @@ -1602,7 +1608,7 @@ GAME( 1983, trackfld, 0, trackfld, trackfld, trackfld, ROT0, "Konami", GAME( 1983, trackfldc, trackfld, trackfld, trackfld, trackfld, ROT0, "Konami (Centuri license)", "Track & Field (Centuri)", GAME_SUPPORTS_SAVE ) GAME( 1983, hyprolym, trackfld, trackfld, trackfld, trackfld, ROT0, "Konami", "Hyper Olympic", GAME_SUPPORTS_SAVE ) GAME( 1983, hyprolymb, trackfld, hyprolyb, trackfld, trackfld, ROT0, "bootleg", "Hyper Olympic (bootleg)", GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) -GAME( 1996, atlantol, trackfld, hyprolyb, atlantol, atlantol, ROT0, "bootleg", "Atlant Olimpic", GAME_SUPPORTS_SAVE ) +GAME( 1996, atlantol, trackfld, atlantol, atlantol, atlantol, ROT0, "bootleg", "Atlant Olimpic", GAME_SUPPORTS_SAVE ) GAME( 1988, mastkin, 0, mastkin, mastkin, mastkin, ROT0, "Du Tech", "The Masters of Kin", GAME_WRONG_COLORS | GAME_SUPPORTS_SAVE ) GAME( 1982, trackfldnz,trackfld, trackfld, trackfld, trackfld, ROT0, "bootleg? (Goldberg Enterprizes Inc.)", "Track & Field (NZ bootleg?)", GAME_NOT_WORKING) GAME( 1985, wizzquiz, 0, wizzquiz, wizzquiz, wizzquiz, ROT0, "Zilec-Zenitone (Konami license)", "Wizz Quiz (Konami version)", GAME_SUPPORTS_SAVE ) diff --git a/src/mame/includes/trackfld.h b/src/mame/includes/trackfld.h index a266857ea1d..297948744d7 100644 --- a/src/mame/includes/trackfld.h +++ b/src/mame/includes/trackfld.h @@ -27,12 +27,12 @@ public: size_t spriteram_size; UINT8 * palettebank; // sbasketb UINT8 * spriteram_select; // sbasketb - + /* video-related */ tilemap_t *bg_tilemap; int bg_bank, sprite_bank1, sprite_bank2; // trackfld int old_gfx_bank; // needed by atlantol - + int sprites_gfx_banked; /* sound-related */ int SN76496_latch; @@ -81,6 +81,7 @@ WRITE8_HANDLER( atlantol_gfxbank_w ); PALETTE_INIT( trackfld ); VIDEO_START( trackfld ); VIDEO_UPDATE( trackfld ); +VIDEO_START( atlantol ); /*----------- defined in video/hyperspt.c -----------*/ diff --git a/src/mame/video/trackfld.c b/src/mame/video/trackfld.c index bb8652ef3f7..2cd6b274d67 100644 --- a/src/mame/video/trackfld.c +++ b/src/mame/video/trackfld.c @@ -179,8 +179,19 @@ VIDEO_START( trackfld ) trackfld_state *state = machine->driver_data(); state->bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan_rows, 8, 8, 64, 32); tilemap_set_scroll_rows(state->bg_tilemap, 32); + state->sprites_gfx_banked = 0; } + +VIDEO_START( atlantol ) +{ + trackfld_state *state = machine->driver_data(); + VIDEO_START_CALL( trackfld ); + state->sprites_gfx_banked = 1; +} + + + static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rectangle *cliprect ) { trackfld_state *state = machine->driver_data(); @@ -193,7 +204,8 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect int attr = spriteram_2[offs]; int code = spriteram[offs + 1]; int color = attr & 0x0f; - if (attr&1) code|=0x100; // extra tile# bit for the yiear conversion, trackfld doesn't have this many sprites so it will just get masked + if (!state->sprites_gfx_banked) + if (attr&1) code|=0x100; // extra tile# bit for the yiear conversion, trackfld doesn't have this many sprites so it will just get masked int flipx = ~attr & 0x40; int flipy = attr & 0x80; int sx = spriteram[offs] - 1; @@ -234,6 +246,8 @@ static void draw_sprites( running_machine *machine, bitmap_t *bitmap, const rect } } + + VIDEO_UPDATE( trackfld ) { trackfld_state *state = screen->machine->driver_data();