No i havnt added a good solution yet. Like Dave mentioned I would also like to take a look at the method used in gpsp and see it can be used. To be honest there is a double scaling, but its only in the vertical direction. The gp2x hw scaler was supposed to used to do the horizontal scaling. But i removed that line, so you only get the vertical.
Actually, that "vertical scaling" was the "deformed video mode". In this mode, vertical scaling was in software and horizontal scaling in hardware, as Pickle says
It should be NOT difficult to add horizontal scaling in software. In file gp2x.c, wiz.c, whatever you called, add this function at the beginning:
CODE
static byte tmpline[160*2*4]; // up to pelsize=4 systems
void scaleline2x(void *dst, void *src){
byte *t=tmpline;
int tmpx=160;
while(tmpx--){
MEMCPY(t, src, fb.pelsize);
MEMCPY(t+fb.pelsize, src, fb.pelsize);
t+=fb.pelsize*2;
src+=fb.pelsize;
}
MEMCPY(dst, t, 320*fb.pelsize);
}
And change the MEMCPY lines inside cases 4 and 3 of the switch(options.scaling) in function vid_begin (lines 178, 182, 185 and 197 in my original gp2x.c) for:
CODE
scaleline2x(s, fs);
For example, case 3 (double size) is now:
CODE
case 3: //DOUBLE SIZE
tempy=120;
fs=fakescreen+options.voffset*fb.pitch; //+fb.offset(==0);
s=(void *)gp2x_video_RGB[0].screen16;
while(tempy--){
scaleline2x(s, fs);
MEMCPY(s+320*fb.pelsize, s, 320*fb.pelsize);
s+=2*320*fb.pelsize;
fs+=fb.pitch;
}
break;
There we are: deformed and double modes in Wiz! Sure, they are not the most popular modes and this solution will cost some megahertzs. But it is just a matter or minutes to code!
QUOTE
Also I dont think anyone has noticed, but theres an overlay text option that itsnt working with wiz_lib. I saw it work with the SDL video.
To print texts on screen, the Gp2x used the text functions from the original minimal library and maybe they are not compatible with wiz_lib. In the SDL version that functions are directly taken from wiz_lib, so you can just copy fontdata8x8 and print_text() from sdl.c, and they should work.
Most messages are not important: volume and so. But sometimes there is a question to the user ("Are you sure that you want to save the game?") and I think that you must show these questions on the screen.
QUOTE
Overclock does work if anyone wants to play around with it. You can underclock if you want. If anyone thinks we really need to go below 200 Mhz let me know.
If we add software scaling or solve the diagonal issue, we will need more freq for sure
Besides, there are some games that need more CPU even in Gp2x (Alone in the Dark, Shantae...) Setting freq to 300MHz is not a bad idea, and the Wiz does not run out of batteries as fast as the Gp2x