libElysianVMU 1.6.0
Full-featured, accurate, cross-platform library emulating the Dreamcast's Visual Memory Unit
Loading...
Searching...
No Matches
evmu_lcd.h File Reference

Go to the source code of this file.

Data Structures

struct  EvmuLcdClass
 
struct  EvmuLcd
 

Macros

#define EVMU_LCD_NAME   "lcd"
 
Type System

Type UUID and cast operators

#define EVMU_LCD_TYPE   (GBL_TYPEID(EvmuLcd))
 
#define EVMU_LCD(self)   (GBL_CAST(EvmuLcd, self))
 
#define EVMU_LCD_CLASS(klass)   (GBL_CLASS_CAST(EvmuLcd, klass))
 
#define EVMU_LCD_GET_CLASS(self)   (GBL_CLASSOF(EvmuLcd, self))
 
Display Constants

Constants used to define display characteristics

#define EVMU_LCD_PIXEL_WIDTH   48
 
#define EVMU_LCD_PIXEL_HEIGHT   32
 
#define EVMU_LCD_ICON_COUNT   4
 
Emulator Settings

Constants used to define emulation behavior

#define EVMU_LCD_GHOSTING_FRAMES   100
 
#define EVMU_LCD_SCREEN_REFRESH_DIVISOR   199
 

Typedefs

typedef GblEnum EVMU_LCD_REFRESH_RATE
 
typedef GblEnum EVMU_XRAM_BANK
 
typedef GblFlags EVMU_LCD_ICONS
 

Enumerations

enum  EVMU_LCD_REFRESH_RATE
 
enum  EVMU_XRAM_BANK
 
enum  EVMU_LCD_ICONS
 

Functions

GblType EvmuLcd_type (void)
 

Detailed Description

EvmuLcd display circuit + back-end rendering signals.

Encompasses the API for rendering to and reading from the VMU's liquid crystal display screen. The API offers:

  • reading from and writing to pixels
  • enabling and disabling icons
  • enabling and disabling filters and effects
  • enabling and disabling screen refresh
  • changing screen refresh rate
  • synchronous event-driven callbacks for back-end drawing

    Todo:
    • Pixel ghosting still needs some work
    • update screen when in sleep mode
    • access/control XRAM bank
Author
2023 Falco Girgis

Definition in file evmu_lcd.h.

Macro Definition Documentation

◆ EVMU_LCD

#define EVMU_LCD (   self)    (GBL_CAST(EvmuLcd, self))

Casts GblInstance to EvmuLcd.

Definition at line 33 of file evmu_lcd.h.

◆ EVMU_LCD_CLASS

#define EVMU_LCD_CLASS (   klass)    (GBL_CLASS_CAST(EvmuLcd, klass))

Casts GblClass to EvmuLcdClass.

Definition at line 34 of file evmu_lcd.h.

◆ EVMU_LCD_GET_CLASS

#define EVMU_LCD_GET_CLASS (   self)    (GBL_CLASSOF(EvmuLcd, self))

Get EvmuLcdClass from GblInstance

Definition at line 35 of file evmu_lcd.h.

◆ EVMU_LCD_GHOSTING_FRAMES

#define EVMU_LCD_GHOSTING_FRAMES   100

Frame duration for pixel ghosting effect.

Definition at line 53 of file evmu_lcd.h.

◆ EVMU_LCD_ICON_COUNT

#define EVMU_LCD_ICON_COUNT   4

Number of icons

Definition at line 46 of file evmu_lcd.h.

◆ EVMU_LCD_NAME

#define EVMU_LCD_NAME   "lcd"

Peripheral GblObject name.

Definition at line 38 of file evmu_lcd.h.

◆ EVMU_LCD_PIXEL_HEIGHT

#define EVMU_LCD_PIXEL_HEIGHT   32

Screen resolution (height/columns)

Definition at line 45 of file evmu_lcd.h.

◆ EVMU_LCD_PIXEL_WIDTH

#define EVMU_LCD_PIXEL_WIDTH   48

Screen resolution (width/rows)

Definition at line 44 of file evmu_lcd.h.

◆ EVMU_LCD_SCREEN_REFRESH_DIVISOR

#define EVMU_LCD_SCREEN_REFRESH_DIVISOR   199

Number of physical refreshes to skip before redrawing

Definition at line 54 of file evmu_lcd.h.

◆ EVMU_LCD_TYPE

#define EVMU_LCD_TYPE   (GBL_TYPEID(EvmuLcd))

Type UUID for EvmuLcd.

Definition at line 32 of file evmu_lcd.h.

Typedef Documentation

◆ EVMU_LCD_ICONS

LCD Screen Icons.

Definition at line 77 of file evmu_lcd.h.

◆ EVMU_LCD_REFRESH_RATE

Refresh rate for the LCD Screen.

Definition at line 64 of file evmu_lcd.h.

◆ EVMU_XRAM_BANK

XRAM Bank Numbers.

Definition at line 70 of file evmu_lcd.h.

Enumeration Type Documentation

◆ EVMU_LCD_ICONS

Enumerator
EVMU_LCD_ICONS_NONE 

No Icon.

EVMU_LCD_ICON_FILE 

File Icon (Notepad)

EVMU_LCD_ICON_GAME 

Game Icon (Card)

EVMU_LCD_ICON_CLOCK 

Clock Icon (Analog Clock)

EVMU_LCD_ICON_FLASH 

Flash Icon (!)

EVMU_LCD_ICONS_ALL 

All Icons.

Definition at line 77 of file evmu_lcd.h.

77 {
79 EVMU_LCD_ICON_FILE = 0x1,
80 EVMU_LCD_ICON_GAME = 0x2,
84};
@ EVMU_LCD_ICON_FLASH
Flash Icon (!)
Definition evmu_lcd.h:82
@ EVMU_LCD_ICON_CLOCK
Clock Icon (Analog Clock)
Definition evmu_lcd.h:81
@ EVMU_LCD_ICON_GAME
Game Icon (Card)
Definition evmu_lcd.h:80
@ EVMU_LCD_ICON_FILE
File Icon (Notepad)
Definition evmu_lcd.h:79
@ EVMU_LCD_ICONS_ALL
All Icons.
Definition evmu_lcd.h:83
@ EVMU_LCD_ICONS_NONE
No Icon.
Definition evmu_lcd.h:78

◆ EVMU_LCD_REFRESH_RATE

Enumerator
EVMU_LCD_REFRESH_83HZ 

83Hz Refresh rate

EVMU_LCD_REFRESH_166HZ 

166Hz Refresh rate

Definition at line 64 of file evmu_lcd.h.

64 {
67};
@ EVMU_LCD_REFRESH_166HZ
166Hz Refresh rate
Definition evmu_lcd.h:66
@ EVMU_LCD_REFRESH_83HZ
83Hz Refresh rate
Definition evmu_lcd.h:65

◆ EVMU_XRAM_BANK

Enumerator
EVMU_XRAM_BANK_LCD_TOP 

Top (0) Bank.

EVMU_XRAM_BANK_LCD_BOTTOM 

Bottom (1) Bank.

EVMU_XRAM_BANK_ICON 

Icon (2) Bank.

Definition at line 70 of file evmu_lcd.h.

70 {
74};
@ EVMU_XRAM_BANK_LCD_BOTTOM
Bottom (1) Bank.
Definition evmu_lcd.h:72
@ EVMU_XRAM_BANK_ICON
Icon (2) Bank.
Definition evmu_lcd.h:73
@ EVMU_XRAM_BANK_LCD_TOP
Top (0) Bank.
Definition evmu_lcd.h:71

Function Documentation

◆ EvmuLcd_type()

GblType EvmuLcd_type ( void  )

Returns the GblType UUID associated with EvmuLcd.