--- xmil/vram/scrndraw.c 2004/08/17 14:46:37 1.8 +++ xmil/vram/scrndraw.c 2005/02/04 06:42:12 1.12 @@ -1,6 +1,5 @@ #include "compiler.h" #include "scrnmng.h" -#include "sysmng.h" #include "pccore.h" #include "iocore.h" #include "scrndraw.h" @@ -9,7 +8,6 @@ #include "makescrn.h" - SCRN scrn; UINT8 renewalline[SURFACE_HEIGHT+4]; UINT8 screenmap[SURFACE_SIZE]; @@ -32,20 +30,8 @@ void scrndraw_initialize(void) { // ZeroMemory(xmil_pal32, sizeof(xmil_pal32)); xmil_palettes = 0; - scrn.widthmode = SCRNWIDTHMODE_WIDTH40; - updateallline(0x03030303); // updateallline(0x01010101); scrnmng_allflash(); - sysmng_scrnwidth(scrn.widthmode); -} - -void scrndraw_changewidth(REG8 widthmode) { - - if (scrn.widthmode != widthmode) { - scrn.widthmode = widthmode; - sysmng_scrnwidth(widthmode); - updateallline(0x01010101); // fillrenewalline(0x03030303) - } } void scrndraw_changepalette(void) { @@ -53,7 +39,6 @@ void scrndraw_changepalette(void) { #if defined(SUPPORT_8BPP) if (scrnmng_getbpp() == 8) { scrnmng_palchanged(); - updateallline(0x01010101); // fillrenewalline(0x02020202) return; } #endif @@ -63,10 +48,10 @@ void scrndraw_changepalette(void) { // ---- -#if 0 -#if defined(SUPPORT_RASTER) +#if defined(SUPPORT_PALEVENT) static REG8 rasterdraw(SDRAWFN sdrawfn, SDRAW sdraw, int maxy) { + UINT8 rgbp[8]; SINT32 rasterclock; SINT32 clock; PAL1EVENT *event; @@ -74,6 +59,7 @@ static REG8 rasterdraw(SDRAWFN sdrawfn, int nextupdate; int y; + CopyMemory(rgbp, palevent.rgbp, 8); rasterclock = crtc.e.rasterclock8; if (crtc.s.SCRN_BITS & SCRN_24KHZ) { rasterclock = rasterclock * 2; @@ -90,11 +76,12 @@ static REG8 rasterdraw(SDRAWFN sdrawfn, clock += rasterclock; // お弁当はあった? if (clock > (event->clock << 8)) { + pal_update1(rgbp); (*sdrawfn)(sdraw, y); nextupdate = y; // お弁当を食べる while(clock > (event->clock << 8)) { -// ((BYTE *)pal)[event->color] = event->value; + ((UINT8 *)rgbp)[event->rgbp] = event->value; event++; if (event >= eventterm) { break; @@ -103,52 +90,41 @@ static REG8 rasterdraw(SDRAWFN sdrawfn, } } if (y < maxy) { - if (!(np2cfg.LCD_MODE & 1)) { - pal_makeanalog(pal, 0xffff); - } - else { - pal_makeanalog_lcd(pal, 0xffff); - } - if (np2cfg.skipline) { - np2_pal32[0].d = np2_pal32[NP2PAL_SKIP].d; -#if defined(SUPPORT_16BPP) - np2_pal16[0] = np2_pal16[NP2PAL_SKIP]; -#endif - } + pal_update1(rgbp); (*sdrawfn)(sdraw, maxy); } - if (palevent.vsyncpal) { - return(2); - } - else if (nextupdate) { + // 戻すすすす + pal_update1(crtc.s.rgbp); + + if (nextupdate) { for (y=0; yptr; +#if defined(SIZE_QVGA) + sdraw.width = surf->width >> 1; +#else sdraw.width = surf->width; - sdraw.xbytes = surf->xalign * surf->width; +#endif + sdraw.xbytes = surf->xalign * sdraw.width; sdraw.y = 0; sdraw.xalign = surf->xalign; sdraw.yalign = surf->yalign; - ret = 0; -#if 1 - (*fn)(&sdraw, 400); -#else #if !defined(SUPPORT_PALEVENT) (*fn)(&sdraw, 400); #else - if (((dispmode & SCRN64_MASK) != SCRN64_INVALID) || - (palevent.events >= PALEVENTMAX)) { + if ((crtc.e.dispmode & SCRN64_ENABLE) || + (palevent.events >= SUPPORT_PALEVENT)) { (*fn)(&sdraw, 400); } else { ret = rasterdraw(*sdrawfn, &sdraw, 400); } #endif -#endif sddr_exit2: scrnmng_surfunlock(surf);