summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/video/k001604.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/video/k001604.h')
-rw-r--r--src/mame/video/k001604.h35
1 files changed, 11 insertions, 24 deletions
diff --git a/src/mame/video/k001604.h b/src/mame/video/k001604.h
index 744ff33816e..8c87d571dd5 100644
--- a/src/mame/video/k001604.h
+++ b/src/mame/video/k001604.h
@@ -13,14 +13,10 @@ class k001604_device : public device_t, public device_gfx_interface
public:
k001604_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- // configuration
- void set_layer_size(int size) { m_layer_size = size; }
- void set_roz_size(int size) { m_roz_size = size; }
- void set_txt_mem_offset(int offs) { m_txt_mem_offset = offs; }
- void set_roz_mem_offset(int offs) { m_roz_mem_offset = offs; }
-
- void draw_back_layer( bitmap_rgb32 &bitmap, const rectangle &cliprect );
- void draw_front_layer( screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect );
+ void draw_tilemap(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, bool front, tilemap_t* tilemap);
+
+ void draw_back_layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void draw_front_layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void tile_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
uint32_t tile_r(offs_t offset);
void char_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
@@ -33,27 +29,18 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
private:
- // internal state
- int m_layer_size; // 0 -> width = 128 tiles, 1 -> width = 256 tiles
- int m_roz_size; // 0 -> 8x8, 1 -> 16x16
- int m_txt_mem_offset;
- int m_roz_mem_offset;
-
- tilemap_t *m_layer_8x8[2];
- tilemap_t *m_layer_roz;
+ // internal state
+ tilemap_t* m_fg_tilemap;
+ tilemap_t* m_bg_tilemap8;
+ tilemap_t* m_bg_tilemap16;
std::unique_ptr<uint32_t[]> m_tile_ram;
std::unique_ptr<uint32_t[]> m_char_ram;
std::unique_ptr<uint32_t[]> m_reg;
- TILEMAP_MAPPER_MEMBER(scan_layer_8x8_0_size0);
- TILEMAP_MAPPER_MEMBER(scan_layer_8x8_0_size1);
- TILEMAP_MAPPER_MEMBER(scan_layer_8x8_1_size0);
- TILEMAP_MAPPER_MEMBER(scan_layer_8x8_1_size1);
- TILEMAP_MAPPER_MEMBER(scan_layer_roz_256);
- TILEMAP_MAPPER_MEMBER(scan_layer_roz_128);
- TILE_GET_INFO_MEMBER(tile_info_layer_8x8);
- TILE_GET_INFO_MEMBER(tile_info_layer_roz);
+ TILE_GET_INFO_MEMBER(tile_info_fg);
+ TILE_GET_INFO_MEMBER(tile_info_bg8);
+ TILE_GET_INFO_MEMBER(tile_info_bg16);
};
DECLARE_DEVICE_TYPE(K001604, k001604_device)