summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/prehisle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/prehisle.cpp')
-rw-r--r--src/mame/video/prehisle.cpp190
1 files changed, 0 insertions, 190 deletions
diff --git a/src/mame/video/prehisle.cpp b/src/mame/video/prehisle.cpp
deleted file mode 100644
index dc4289e520d..00000000000
--- a/src/mame/video/prehisle.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Bryan McPhail
-/***************************************************************************
-
- Prehistoric Isle video routines
-
- Emulation by Bryan McPhail, mish@tendril.co.uk
-
-***************************************************************************/
-
-#include "emu.h"
-#include "includes/prehisle.h"
-
-#include "screen.h"
-
-
-WRITE16_MEMBER(prehisle_state::fg_vram_w)
-{
- COMBINE_DATA(&m_fg_vram[offset]);
- m_fg_tilemap->mark_tile_dirty(offset);
-}
-
-WRITE16_MEMBER(prehisle_state::tx_vram_w)
-{
- COMBINE_DATA(&m_tx_vram[offset]);
- m_tx_tilemap->mark_tile_dirty(offset);
-}
-
-void prehisle_state::fg_scrolly_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_fg_scrolly);
- m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
-}
-
-void prehisle_state::fg_scrollx_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_fg_scrollx);
- m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
-}
-
-void prehisle_state::bg_scrolly_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_bg_scrolly);
- m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
-}
-
-void prehisle_state::bg_scrollx_w(offs_t offset, u16 data, u16 mem_mask)
-{
- COMBINE_DATA(&m_bg_scrollx);
- m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
-}
-
-
-/* tile layout
-0 xxxx.... color
-0 ....x... flip x
-0 .....xxx gfx code high bits
-1 xxxxxxxx gfx code low bits
-*/
-TILE_GET_INFO_MEMBER(prehisle_state::get_bg_tile_info)
-{
- int const offs = tile_index * 2;
- int const attr = m_tilemap_rom[offs + 1] + (m_tilemap_rom[offs] << 8);
- int const code = attr & 0x7ff;
- int const color = attr >> 12;
- int const flags = (attr & 0x800) ? TILE_FLIPX : 0;
-
- SET_TILE_INFO_MEMBER(1, code, color, flags);
-}
-
-/* tile layout
-0 xxxx.... ........ color
-0 ....x... ........ flip y
-0 .....xxx xxxxxxxx gfx code
-*/
-TILE_GET_INFO_MEMBER(prehisle_state::get_fg_tile_info)
-{
- int const attr = m_fg_vram[tile_index];
- int const code = attr & 0x7ff;
- int const color = attr >> 12;
- int const flags = (attr & 0x800) ? TILE_FLIPY : 0;
-
- SET_TILE_INFO_MEMBER(2, code, color, flags);
-}
-
-/* tile layout
-0 xxxx.... ........ color
-0 ....xxxx xxxxxxxx gfx code
-*/
-TILE_GET_INFO_MEMBER(prehisle_state::get_tx_tile_info)
-{
- int const attr = m_tx_vram[tile_index];
- int const code = attr & 0xfff;
- int const color = attr >> 12;
-
- SET_TILE_INFO_MEMBER(0, code, color, 0);
-}
-
-void prehisle_state::video_start()
-{
- // ROM-based background layer
- m_bg_tilemap = &machine().tilemap().create(
- *m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_bg_tile_info), this),
- TILEMAP_SCAN_COLS, // scan order
- 16, 16, // tile size
- 1024, 32); // tilemap size
-
- // RAM-based foreground layer (overlays most sprites)
- m_fg_tilemap = &machine().tilemap().create(
- *m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_fg_tile_info), this),
- TILEMAP_SCAN_COLS, // scan order
- 16, 16, // tile size
- 256, 32); // tilemap size
- m_fg_tilemap->set_transparent_pen(15);
-
- // text layer
- m_tx_tilemap = &machine().tilemap().create(
- *m_gfxdecode,
- tilemap_get_info_delegate(FUNC(prehisle_state::get_tx_tile_info), this),
- TILEMAP_SCAN_ROWS, // scan order
- 8, 8, // tile size
- 32, 32); // tilemap size
- m_tx_tilemap->set_transparent_pen(15);
-
- /* register for saving */
- save_item(NAME(m_bg_scrollx));
- save_item(NAME(m_bg_scrolly));
- save_item(NAME(m_fg_scrollx));
- save_item(NAME(m_fg_scrolly));
-}
-
-/* sprite layout
-
-0 .......x xxxxxxxx y, other bits unused?
-1 .......x xxxxxxxx x, other bits unused?
-2 x....... ........ flip y
-2 .x...... ........ flip x
-2 ..x..... ........ ?
-2 ...xxxxx xxxxxxxx gfx code
-3 xxxx.... ........ color+priority, other bits unknown
-*/
-void prehisle_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- uint16_t const *const spriteram16 = m_spriteram;
-
- for (int offs = 1024 - 4; offs >= 0; offs -= 4)
- {
- uint16_t const attr = spriteram16[offs + 2];
- uint16_t const code = attr & 0x1fff;
- uint16_t const color = spriteram16[offs + 3] >> 12;
- uint32_t const priority = (color < 0x4) ? 0 : GFX_PMASK_1; // correct?
- bool flipx = attr & 0x4000;
- bool flipy = attr & 0x8000;
- int16_t sx = spriteram16[offs + 1] & 0x1ff;
- int16_t sy = spriteram16[offs] & 0x1ff;
-
- // coordinates are 9-bit signed
- if (sx & 0x100) sx = -0x100 + (sx & 0xff);
- if (sy & 0x100) sy = -0x100 + (sy & 0xff);
-
- if (flip_screen())
- {
- sx = 240 - sx;
- sy = 240 - sy;
- flipx = !flipx;
- flipy = !flipy;
- }
-
- m_gfxdecode->gfx(3)->prio_transpen(
- bitmap, cliprect,
- code, color,
- flipx, flipy,
- sx, sy,
- screen.priority(), priority,
- 15); // transparent pen
- }
-}
-
-uint32_t prehisle_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
-{
- screen.priority().fill(0, cliprect);
-
- m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0);
- m_fg_tilemap->draw(screen, bitmap, cliprect, 0, 1);
- draw_sprites(screen, bitmap, cliprect);
- m_tx_tilemap->draw(screen, bitmap, cliprect, 0);
- return 0;
-}