diff --git a/CGDOOM-minisdk/CGDOOM/platform.h b/CGDOOM-minisdk/CGDOOM/platform.h index 48fc44a..834365d 100644 --- a/CGDOOM-minisdk/CGDOOM/platform.h +++ b/CGDOOM-minisdk/CGDOOM/platform.h @@ -44,6 +44,15 @@ enum { almost always 4 kiB-aligned, and only occasionally not */ #define FLASH_INDEX_SIZE ((FLASH_END-FLASH_FS_HINT) / 4096) +//--- +// Display driver access +//--- + +/* Whether to use direct-DD access rather than intermediate VRAM. Enabling this + option will provide the unused VRAM as additonal heap. (Comment out to + disable.) */ +#define CGDOOM_DIRECT_R61524 + //--- #include "keyboard.hpp" diff --git a/cgdoom/i_video.c b/cgdoom/i_video.c index 532654a..4f2f49f 100644 --- a/cgdoom/i_video.c +++ b/cgdoom/i_video.c @@ -73,88 +73,6 @@ static const uint16_t gBasePalette[256] = { /* Current palette (accounting for gamma correction) */ static uint16_t gPalette[256]; -//#ifndef CG_EMULATOR -#if 0 // this doesn't work - -//#define SYNCO() __asm__ volatile("SYNCO\n\t":::"memory"); //doesn't compile -#define SYNCO() -#define PRDR *(volatile unsigned char *)0xA405013C -#define LCDC *(volatile unsigned short*)0xB4000000 - -#define LCD_GRAM_X 0x200 -#define LCD_GRAM_Y 0x201 -#define LCD_GRAM 0x202 -#define LCD_WINDOW_LEFT 0x210 -#define LCD_WINDOW_RIGHT 0x211 -#define LCD_WINDOW_TOP 0x212 -#define LCD_WINDOW_BOTTOM 0x213 - -static void SelectLCDReg(unsigned short reg) -{ - SYNCO(); - PRDR &= ~0x10; - SYNCO(); - LCDC = reg; - SYNCO(); - PRDR |= 0x10; - SYNCO(); - return; -} - -static void WriteLCDReg(unsigned short reg, unsigned short value) -{ - SelectLCDReg(reg); - LCDC = value; - return; -} - -static unsigned short ReadLCDReg(unsigned short reg) -{ - SelectLCDReg(reg); - return LCDC; -} - -void I_Flip (void) -{ - unsigned j=0,i = 320*200; - while(i--) - { - LCDC = gwPallette[screens[0][j]]; - j++; - } -} - -void I_InitGraphics(void) -{ - WriteLCDReg(LCD_WINDOW_LEFT, (396 - 320)/2); - WriteLCDReg(LCD_WINDOW_RIGHT, (396 - 320)/2 + 319); - WriteLCDReg(LCD_WINDOW_TOP, (224 - 200) / 2); - WriteLCDReg(LCD_WINDOW_BOTTOM, (224 - 200) / 2 + 199); -} - -void I_ShutdownGraphics(void) -{ - - WriteLCDReg(LCD_WINDOW_LEFT, (396 - 384)/2); - WriteLCDReg(LCD_WINDOW_RIGHT, (396 - 384)/2 + 383); - WriteLCDReg(LCD_WINDOW_TOP, (224 - 216) / 2); - WriteLCDReg(LCD_WINDOW_BOTTOM, (224 - 216) / 2 + 215); -} -#else - -void I_Flip (void) -{ - int x,y; - for(y=0;y