summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/f1gp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/f1gp.cpp')
-rw-r--r--src/mame/video/f1gp.cpp285
1 files changed, 0 insertions, 285 deletions
diff --git a/src/mame/video/f1gp.cpp b/src/mame/video/f1gp.cpp
deleted file mode 100644
index bef4278b8ac..00000000000
--- a/src/mame/video/f1gp.cpp
+++ /dev/null
@@ -1,285 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Nicola Salmoria
-#include "emu.h"
-#include "includes/f1gp.h"
-
-#include "screen.h"
-
-
-/***************************************************************************
-
- Callbacks for the TileMap code
-
-***************************************************************************/
-
-TILE_GET_INFO_MEMBER(f1gp_state::get_fg_tile_info)
-{
- int code = m_fgvideoram[tile_index];
-
- SET_TILE_INFO_MEMBER(0, code & 0x7fff, 0, (code & 0x8000) ? TILE_FLIPY : 0);
-}
-
-TILE_GET_INFO_MEMBER(f1gp_state::get_roz_tile_info)
-{
- int code = m_rozvideoram[tile_index];
-
- SET_TILE_INFO_MEMBER(3, code & 0x7ff, code >> 12, 0);
-}
-
-TILE_GET_INFO_MEMBER(f1gp2_state::get_roz_tile_info)
-{
- int code = m_rozvideoram[tile_index];
-
- SET_TILE_INFO_MEMBER(2, (code & 0x7ff) + (m_roz_bank << 11), code >> 12, 0);
-}
-
-
-/***************************************************************************
-
- Start the video hardware emulation.
-
-***************************************************************************/
-
-
-void f1gp_state::video_start()
-{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp_state::get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
-
- m_fg_tilemap->set_transparent_pen(0xff);
-
- save_item(NAME(m_flipscreen));
- save_item(NAME(m_gfxctrl));
- save_item(NAME(m_scroll));
-}
-
-
-void f1gp2_state::video_start()
-{
- m_roz_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp2_state::get_roz_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 64);
- m_fg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(f1gp2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
-
- m_fg_tilemap->set_transparent_pen(0xff);
- m_roz_tilemap->set_transparent_pen(0x0f);
-
- m_fg_tilemap->set_scrolldx(-80, 0);
- m_fg_tilemap->set_scrolldy(-26, 0);
-
- save_item(NAME(m_roz_bank));
- save_item(NAME(m_flipscreen));
- save_item(NAME(m_gfxctrl));
- save_item(NAME(m_scroll));
-}
-
-
-/***************************************************************************
-
- Memory handlers
-
-***************************************************************************/
-
-WRITE16_MEMBER(f1gp_state::rozgfxram_w)
-{
- COMBINE_DATA(&m_rozgfxram[offset]);
- m_gfxdecode->gfx(3)->mark_dirty(offset / 64);
-}
-
-WRITE16_MEMBER(f1gp_state::rozvideoram_w)
-{
- COMBINE_DATA(&m_rozvideoram[offset]);
- m_roz_tilemap->mark_tile_dirty(offset);
-}
-
-WRITE16_MEMBER(f1gp_state::fgvideoram_w)
-{
- COMBINE_DATA(&m_fgvideoram[offset]);
- m_fg_tilemap->mark_tile_dirty(offset);
-}
-
-WRITE16_MEMBER(f1gp_state::fgscroll_w)
-{
- COMBINE_DATA(&m_scroll[offset]);
-
- m_fg_tilemap->set_scrollx(0, m_scroll[0]);
- m_fg_tilemap->set_scrolly(0, m_scroll[1]);
-}
-
-WRITE8_MEMBER(f1gp_state::gfxctrl_w)
-{
- m_flipscreen = data & 0x20;
- m_gfxctrl = data & 0xdf;
-}
-
-WRITE8_MEMBER(f1gp2_state::rozbank_w)
-{
- if (m_roz_bank != data)
- {
- m_roz_bank = data;
- m_roz_tilemap->mark_all_dirty();
- }
-}
-
-
-/***************************************************************************
-
- Display refresh
-
-***************************************************************************/
-
-
-uint32_t f1gp_state::screen_update_f1gp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- screen.priority().fill(0, cliprect);
-
- m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 0, 1);
-
- m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1);
-
- /* quick kludge for "continue" screen priority */
- if (m_gfxctrl == 0x00)
- {
- m_spr_old[0]->turbofrc_draw_sprites(m_sprvram[0], m_sprvram[0].bytes(), 0, bitmap, cliprect, screen.priority(), 0x02);
- m_spr_old[1]->turbofrc_draw_sprites(m_sprvram[1], m_sprvram[1].bytes(), 0, bitmap, cliprect, screen.priority(), 0x02);
- }
- else
- {
- m_spr_old[0]->turbofrc_draw_sprites(m_sprvram[0], m_sprvram[0].bytes(), 0, bitmap, cliprect, screen.priority(), 0x00);
- m_spr_old[1]->turbofrc_draw_sprites(m_sprvram[1], m_sprvram[1].bytes(), 0, bitmap, cliprect, screen.priority(), 0x02);
- }
- return 0;
-}
-
-
-uint32_t f1gp2_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- if (m_gfxctrl & 4) /* blank screen */
- bitmap.fill(m_palette->black_pen(), cliprect);
- else
- {
- switch (m_gfxctrl & 3)
- {
- case 0:
- m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
- m_spr->draw_sprites(m_sprvram[0], 0x2000, screen, bitmap, cliprect);
- m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
- break;
- case 1:
- m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
- m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
- m_spr->draw_sprites(m_sprvram[0], 0x2000, screen, bitmap, cliprect);
- break;
- case 2:
- m_fg_tilemap->draw(screen, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- m_k053936->zoom_draw(screen, bitmap, cliprect, m_roz_tilemap, 0, 0, 1);
- m_spr->draw_sprites(m_sprvram[0], 0x2000, screen, bitmap, cliprect);
- break;
-#ifdef MAME_DEBUG
- case 3:
- popmessage("unsupported priority 3\n");
-#endif
- }
- }
- return 0;
-}
-
-/***************************************************************************
-
- BOOTLEG SUPPORT
-
-***************************************************************************/
-
-// BOOTLEG
-void f1gp_state::f1gpb_draw_sprites( screen_device &screen,bitmap_ind16 &bitmap,const rectangle &cliprect )
-{
- uint16_t *spriteram = m_spriteram;
- int attr_start, start_offset = m_spriteram.bytes() / 2 - 4;
-
- // find the "end of list" to draw the sprites in reverse order
- for (attr_start = 4; attr_start < m_spriteram.bytes() / 2; attr_start += 4)
- {
- if (spriteram[attr_start + 3 - 4] == 0xffff) /* end of list marker */
- {
- start_offset = attr_start - 4;
- break;
- }
- }
-
- for (attr_start = start_offset;attr_start >= 4;attr_start -= 4)
- {
- int code, gfx;
- int x, y, flipx, flipy, color, pri;
-
- x = (spriteram[attr_start + 2] & 0x03ff) - 48;
- y = (256 - (spriteram[attr_start + 3 - 4] & 0x03ff)) - 15;
- flipx = spriteram[attr_start + 1] & 0x0800;
- flipy = spriteram[attr_start + 1] & 0x8000;
- color = spriteram[attr_start + 1] & 0x000f;
- code = spriteram[attr_start + 0] & 0x3fff;
- pri = 0; //?
-
- if((spriteram[attr_start + 1] & 0x00f0) && (spriteram[attr_start + 1] & 0x00f0) != 0xc0)
- {
- printf("attr %X\n",spriteram[attr_start + 1] & 0x00f0);
- code = machine().rand();
- }
-
-/*
- if (spriteram[attr_start + 1] & ~0x88cf)
- printf("1 = %X\n", spriteram[attr_start + 1] & ~0x88cf);
-*/
- if(code >= 0x2000)
- {
- gfx = 1;
- code -= 0x2000;
- }
- else
- {
- gfx = 0;
- }
-
- m_gfxdecode->gfx(1 + gfx)->prio_transpen(bitmap,cliprect,
- code,
- color,
- flipx,flipy,
- x,y,
- screen.priority(),
- pri ? 0 : 0x2,15);
-
- // wrap around x
- m_gfxdecode->gfx(1 + gfx)->prio_transpen(bitmap,cliprect,
- code,
- color,
- flipx,flipy,
- x - 512,y,
- screen.priority(),
- pri ? 0 : 0x2,15);
- }
-}
-
-// BOOTLEG
-uint32_t f1gp_state::screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- uint32_t startx, starty;
- int incxx, incxy, incyx, incyy;
-
- incxy = (int16_t)m_rozregs[1];
- incyx = -incxy;
- incxx = incyy = (int16_t)m_rozregs[3];
- startx = m_rozregs[0] + 328;
- starty = m_rozregs[2];
-
- m_fg_tilemap->set_scrolly(0, m_fgregs[0] + 8);
-
- screen.priority().fill(0, cliprect);
-
- m_roz_tilemap->draw_roz(screen, bitmap, cliprect,
- startx << 13, starty << 13,
- incxx << 5, incxy << 5, incyx << 5, incyy << 5,
- 1, 0, 0);
-
- m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1);
-
- f1gpb_draw_sprites(screen, bitmap, cliprect);
-
- return 0;
-}