blob: 2597166f95c84cf9ee58d5abd7af716bf5d6a87c (
plain) (
tree)
|
|
// license:BSD-3-Clause
// copyright-holders:Robert Hildinger
#ifndef MAME_VIDEO_STARFIELD_05XX_H
#define MAME_VIDEO_STARFIELD_05XX_H
// used by galaga, bosconian, and their various clones
class starfield_05xx_device : public device_t
{
public:
starfield_05xx_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock);
void enable_starfield(uint8_t on);
void set_scroll_speed(uint8_t index_x, uint8_t index_y);
void set_active_starfield_sets(uint8_t set_a, uint8_t set_b);
void set_starfield_config(uint16_t off_x, uint16_t off_y, uint16_t lim_x);
void draw_starfield(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip);
protected:
virtual void device_start() override;
virtual void device_reset() override;
private:
uint16_t get_next_lfsr_state(uint16_t lfsr);
uint8_t m_enable;
uint16_t m_lfsr;
uint16_t m_pre_vis_cycle_count;
uint16_t m_post_vis_cycle_count;
uint8_t m_set_a;
uint8_t m_set_b;
uint16_t m_offset_x;
uint16_t m_offset_y;
uint16_t m_limit_x;
};
DECLARE_DEVICE_TYPE(STARFIELD_05XX, starfield_05xx_device)
#endif // MAME_VIDEO_STARFIELD_05XX_H
|