1 // license:BSD-3-Clause
2 // copyright-holders:David Haywood
3 #ifndef MAME_INCLUDES_BIGSTRKB_H
4 #define MAME_INCLUDES_BIGSTRKB_H
5 
6 #pragma once
7 
8 #include "emupal.h"
9 #include "tilemap.h"
10 
11 class bigstrkb_state : public driver_device
12 {
13 public:
bigstrkb_state(const machine_config & mconfig,device_type type,const char * tag)14 	bigstrkb_state(const machine_config &mconfig, device_type type, const char *tag)
15 		: driver_device(mconfig, type, tag),
16 		m_maincpu(*this, "maincpu"),
17 		m_gfxdecode(*this, "gfxdecode"),
18 		m_palette(*this, "palette"),
19 		m_videoram2(*this, "videoram2"),
20 		m_videoram3(*this, "videoram3"),
21 		m_videoram(*this, "videoram"),
22 		m_spriteram(*this, "spriteram"),
23 		m_vidreg1(*this, "vidreg1"),
24 		m_vidreg2(*this, "vidreg2")
25 	{ }
26 
27 	required_device<cpu_device> m_maincpu;
28 	required_device<gfxdecode_device> m_gfxdecode;
29 	required_device<palette_device> m_palette;
30 
31 	required_shared_ptr<uint16_t> m_videoram2;
32 	required_shared_ptr<uint16_t> m_videoram3;
33 	required_shared_ptr<uint16_t> m_videoram;
34 	required_shared_ptr<uint16_t> m_spriteram;
35 	required_shared_ptr<uint16_t> m_vidreg1;
36 	required_shared_ptr<uint16_t> m_vidreg2;
37 
38 	tilemap_t *m_tilemap;
39 	tilemap_t *m_tilemap2;
40 	tilemap_t *m_tilemap3;
41 
42 	void videoram_w(offs_t offset, uint16_t data);
43 	void videoram2_w(offs_t offset, uint16_t data);
44 	void videoram3_w(offs_t offset, uint16_t data);
45 
46 	TILEMAP_MAPPER_MEMBER(bg_scan);
47 	TILE_GET_INFO_MEMBER(get_tile_info);
48 	TILE_GET_INFO_MEMBER(get_tile2_info);
49 	TILE_GET_INFO_MEMBER(get_tile3_info);
50 
51 	virtual void video_start() override;
52 
53 	uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54 	void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect );
55 	void bigstrkb(machine_config &config);
56 	void bigstrkb_map(address_map &map);
57 };
58 
59 #endif // MAME_INCLUDES_BIGSTRKB_H
60