1 // license:BSD-3-Clause
2 // copyright-holders:Lee Taylor
3 // thanks-to:John Clegg,Tomasz Slanina
4 #ifndef MAME_INCLUDES_TRAVRUSA_H
5 #define MAME_INCLUDES_TRAVRUSA_H
6 
7 #pragma once
8 
9 #include "emupal.h"
10 #include "tilemap.h"
11 
12 class travrusa_state : public driver_device
13 {
14 public:
travrusa_state(const machine_config & mconfig,device_type type,const char * tag)15 	travrusa_state(const machine_config &mconfig, device_type type, const char *tag) :
16 		driver_device(mconfig, type, tag),
17 		m_videoram(*this, "videoram"),
18 		m_spriteram(*this, "spriteram"),
19 		m_maincpu(*this, "maincpu"),
20 		m_gfxdecode(*this, "gfxdecode"),
21 		m_palette(*this, "palette")
22 	{ }
23 
24 	void shtrider(machine_config &config);
25 	void travrusa(machine_config &config);
26 	void shtriderb(machine_config &config);
27 
28 	void init_shtridra();
29 	void init_motorace();
30 	void init_shtridrb();
31 
32 private:
33 	/* memory pointers */
34 	required_shared_ptr<uint8_t> m_videoram;
35 	required_shared_ptr<uint8_t> m_spriteram;
36 
37 	/* video-related */
38 	tilemap_t*             m_bg_tilemap;
39 	int                  m_scrollx[2];
40 	void travrusa_videoram_w(offs_t offset, uint8_t data);
41 	void travrusa_scroll_x_low_w(uint8_t data);
42 	void travrusa_scroll_x_high_w(uint8_t data);
43 	void travrusa_flipscreen_w(uint8_t data);
44 	uint8_t shtridrb_port11_r();
45 	TILE_GET_INFO_MEMBER(get_tile_info);
46 	virtual void machine_reset() override;
47 	virtual void video_start() override;
48 	void travrusa_palette(palette_device &palette) const;
49 	void shtrider_palette(palette_device &palette) const;
50 	uint32_t screen_update_travrusa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51 	void set_scroll();
52 	void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
53 	required_device<cpu_device> m_maincpu;
54 	required_device<gfxdecode_device> m_gfxdecode;
55 	required_device<palette_device> m_palette;
56 
57 	void main_map(address_map &map);
58 };
59 
60 #endif // MAME_INCLUDES_TRAVRUSA_H
61