notaz.gp2x.de
/
fceu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
SIG_IGN->SIG_DFL, fixes usb storage mode
[fceu.git]
/
drivers
/
gp2x_test
/
minimal.c
diff --git
a/drivers/gp2x_test/minimal.c
b/drivers/gp2x_test/minimal.c
index
a32a08f
..
f753a80
100644
(file)
--- a/
drivers/gp2x_test/minimal.c
+++ b/
drivers/gp2x_test/minimal.c
@@
-199,9
+199,9
@@
void gp2x_init(void)
{
printf("entering init()\n"); fflush(stdout);
{
printf("entering init()\n"); fflush(stdout);
- gp2x_screen = malloc(320*240*2);
+ gp2x_screen = malloc(320*240*2
+ 32
);
if(gp2x_screen == NULL) return;
if(gp2x_screen == NULL) return;
- memset(gp2x_screen, 0, 320*240*2);
+ memset(gp2x_screen, 0, 320*240*2
+ 32
);
if(SDL_Init(SDL_INIT_NOPARACHUTE))
{
if(SDL_Init(SDL_INIT_NOPARACHUTE))
{
@@
-235,6
+235,7
@@
void gp2x_deinit(void)
SDL_QuitSubSystem(SDL_INIT_VIDEO);
SDL_Quit();
SDL_QuitSubSystem(SDL_INIT_VIDEO);
SDL_Quit();
+ free(gp2x_screen);
if (sounddev > 0) close(sounddev);
gp2x_usbjoy_deinit();
}
if (sounddev > 0) close(sounddev);
gp2x_usbjoy_deinit();
}
@@
-282,7
+283,14
@@
void spend_cycles(int c)
usleep(c/200);
}
usleep(c/200);
}
+/* don't scale, just convert */
void soft_scale(void *dst, unsigned short *pal, int line_offs, int lines)
{
void soft_scale(void *dst, unsigned short *pal, int line_offs, int lines)
{
+ unsigned char *src = (unsigned char *)dst + (line_offs + lines) * 320;
+ unsigned short *dest = (unsigned short *)dst + (line_offs + lines) * 320;
+ int count = lines*320;
+
+ while (count--)
+ *(--dest) = pal[*(--src)];
}
}