--- np2/io/gdc_sub.c 2004/02/18 03:56:57 1.12 +++ np2/io/gdc_sub.c 2004/02/20 15:20:30 1.15 @@ -20,6 +20,8 @@ typedef struct { SINT16 y2; } VECTDIR; +const UINT32 gdcplaneseg[4] = {VRAM_E, VRAM_B, VRAM_R, VRAM_G}; + static UINT16 gdc_rt[RT_TABLEMAX+1]; static const VECTDIR vectdir[16] = { @@ -85,7 +87,7 @@ REG8 gdcbitreverse(REG8 data) { #endif -void gdcsub_init(void) { +void gdcsub_initialize(void) { int i; @@ -107,11 +109,11 @@ static void calc_gdcslavewait(UINT dots) SINT32 clk; clk = dots; - if (pccore.baseclock != PCBASECLOCK20) { - clk *= 27648; + if (pccore.cpumode & CPUMODE_8MHZ) { + clk *= 22464; } else { - clk *= 22464; + clk *= 27648; } clk *= pccore.multiple; clk /= 15625; @@ -546,7 +548,7 @@ void gdcsub_write(void) { } gdcs.grphdisp |= (BYTE)updatebit; - ptr += vramplaneseg[(adrs >> 14) & 3]; + ptr += gdcplaneseg[(adrs >> 14) & 3]; adrs = (adrs & 0x3fff) << 1; calc_gdcslavewait(leng);