summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/video/gb_lcd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/video/gb_lcd.h')
-rw-r--r--src/mess/video/gb_lcd.h215
1 files changed, 0 insertions, 215 deletions
diff --git a/src/mess/video/gb_lcd.h b/src/mess/video/gb_lcd.h
deleted file mode 100644
index 31bd0c30403..00000000000
--- a/src/mess/video/gb_lcd.h
+++ /dev/null
@@ -1,215 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Wilbert Pol
-/*****************************************************************************
- *
- * video/gb_lcd.h
- *
- ****************************************************************************/
-
-#ifndef __GB_LCD_H__
-#define __GB_LCD_H__
-
-#include "emu.h"
-
-
-#define _NR_GB_VID_REGS 0x40
-
-
-struct layer_struct {
- UINT8 enabled;
- UINT8 *bg_tiles;
- UINT8 *bg_map;
- UINT8 xindex;
- UINT8 xshift;
- UINT8 xstart;
- UINT8 xend;
- /* GBC specific */
- UINT8 *gbc_map;
- INT16 bgline;
-};
-
-
-class gb_lcd_device : public device_t,
- public device_video_interface
-{
-public:
- gb_lcd_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
- gb_lcd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
-
- UINT32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- DECLARE_READ8_MEMBER(vram_r);
- DECLARE_WRITE8_MEMBER(vram_w);
- DECLARE_READ8_MEMBER(oam_r);
- DECLARE_WRITE8_MEMBER(oam_w);
- virtual DECLARE_READ8_MEMBER(video_r);
- virtual DECLARE_WRITE8_MEMBER(video_w);
-
- // FIXME: remove it when proper sgb support is added
- void set_sgb_hack(bool val) { m_sgb_border_hack = val ? 1 : 0; }
-
-protected:
- inline void plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color);
-
- void select_sprites();
- virtual void update_sprites();
- virtual void update_scanline();
-
- // device-level overrides
- virtual void device_start();
- virtual void device_reset();
- void common_start();
- void common_reset();
-
- // pointer to the main system
- cpu_device *m_maincpu;
-
- // state variables
- bitmap_ind16 m_bitmap;
-
- UINT8 m_sgb_atf_data[4050]; /* (SGB) Attributes files */
- UINT32 m_sgb_atf;
- UINT16 m_sgb_pal_data[4096];
- UINT8 m_sgb_pal_map[20][18];
- UINT16 m_sgb_pal[128];
- UINT8 *m_sgb_tile_data;
- UINT8 m_sgb_tile_map[2048];
- UINT8 m_sgb_window_mask;
-
- // this is temporarily needed for a bunch of games which draw the border differently...
- int m_sgb_border_hack;
-
- int m_window_lines_drawn;
-
- UINT8 m_vid_regs[_NR_GB_VID_REGS];
- UINT8 m_bg_zbuf[160];
-
- UINT16 m_cgb_bpal[32]; /* CGB current background palette table */
- UINT16 m_cgb_spal[32]; /* CGB current sprite palette table */
-
- UINT8 m_gb_bpal[4]; /* Background palette */
- UINT8 m_gb_spal0[4]; /* Sprite 0 palette */
- UINT8 m_gb_spal1[4]; /* Sprite 1 palette */
-
- /* Things used to render current line */
- int m_current_line; /* Current line */
- int m_cmp_line; /* Compare line */
- int m_sprCount; /* Number of sprites on current line */
- int m_sprite[10]; /* References to sprites to draw on current line */
- int m_previous_line; /* Previous line we've drawn in */
- int m_start_x; /* Pixel to start drawing from (inclusive) */
- int m_end_x; /* Pixel to end drawing (exclusive) */
- int m_mode; /* Keep track of internal STAT mode */
- int m_state; /* Current state of the video state machine */
- int m_lcd_irq_line;
- int m_triggering_line_irq;
- int m_line_irq;
- int m_triggering_mode_irq;
- int m_mode_irq;
- int m_delayed_line_irq;
- int m_sprite_cycles;
- int m_scrollx_adjust;
- int m_oam_locked;
- int m_vram_locked;
- int m_pal_locked;
- int m_hdma_enabled;
- int m_hdma_possible;
- struct layer_struct m_layer[2];
- emu_timer *m_lcd_timer;
- int m_gbc_mode;
-
- UINT8 *m_vram; // Pointer to VRAM
- UINT8 *m_oam; // Pointer to OAM memory
- UINT8 m_gb_tile_no_mod;
- UINT32 m_gb_chrgen_offs; // GB Character generator
- UINT32 m_gb_bgdtab_offs; // GB Background character table
- UINT32 m_gb_wndtab_offs; // GB Window character table
- UINT32 m_gbc_chrgen_offs; // CGB Character generator
- UINT32 m_gbc_bgdtab_offs; // CGB Background character table
- UINT32 m_gbc_wndtab_offs; // CGB Window character table
- int m_vram_bank;
-
- TIMER_CALLBACK_MEMBER(video_init_vbl);
- virtual TIMER_CALLBACK_MEMBER(lcd_timer_proc);
- virtual void videoptr_restore();
- void save_gb_video();
- void increment_scanline();
- void lcd_switch_on();
-};
-
-
-class mgb_lcd_device : public gb_lcd_device
-{
-public:
- mgb_lcd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
-protected:
-
- // device-level overrides
- virtual void device_start();
-};
-
-
-class sgb_lcd_device : public gb_lcd_device
-{
-public:
- sgb_lcd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- void sgb_io_write_pal(int offs, UINT8 *data);
-
-protected:
-
- // device-level overrides
- virtual void device_start();
- virtual void device_reset();
-
- virtual void update_sprites();
- virtual void update_scanline();
- void refresh_border();
-};
-
-
-class cgb_lcd_device : public gb_lcd_device
-{
-public:
- cgb_lcd_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- virtual DECLARE_READ8_MEMBER(video_r);
- virtual DECLARE_WRITE8_MEMBER(video_w);
-
-protected:
-
- // device-level overrides
- virtual void device_start();
- virtual void device_reset();
-
- virtual void update_sprites();
- virtual void update_scanline();
-
- virtual TIMER_CALLBACK_MEMBER(lcd_timer_proc);
- virtual void videoptr_restore();
- void hdma_trans(UINT16 length);
-};
-
-
-extern const device_type GB_LCD_DMG;
-extern const device_type GB_LCD_MGB;
-extern const device_type GB_LCD_SGB;
-extern const device_type GB_LCD_CGB;
-
-
-#define MCFG_GB_LCD_DMG_ADD(_tag ) \
- MCFG_DEVICE_ADD( _tag, GB_LCD_DMG, 0 )
-
-#define MCFG_GB_LCD_MGB_ADD(_tag ) \
- MCFG_DEVICE_ADD( _tag, GB_LCD_MGB, 0 )
-
-#define MCFG_GB_LCD_SGB_ADD(_tag ) \
- MCFG_DEVICE_ADD( _tag, GB_LCD_SGB, 0 )
-
-#define MCFG_GB_LCD_CGB_ADD(_tag ) \
- MCFG_DEVICE_ADD( _tag, GB_LCD_CGB, 0 )
-
-
-#endif /* GB_LCD_H_ */