notaz.gp2x.de
/
gpsp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cpu clock setup, save rom dir, cleanups
[gpsp.git]
/
video.c
diff --git
a/video.c
b/video.c
index
7415c76
..
457a7b5
100644
(file)
--- a/
video.c
+++ b/
video.c
@@
-105,7
+105,6
@@
SDL_Surface *hw_screen;
#endif
SDL_Surface *screen;
const u32 video_scale = 1;
#endif
SDL_Surface *screen;
const u32 video_scale = 1;
-extern void gp2x_flush_cache(void *beginning_addr, void *end_addr, int flags);
#define get_screen_pixels() \
((u16 *)screen->pixels) \
#define get_screen_pixels() \
((u16 *)screen->pixels) \
@@
-3339,6
+3338,12
@@
void flip_screen()
void flip_screen()
{
void flip_screen()
{
+ if((screen_scale == scaled_aspect) &&
+ (resolution_width == small_resolution_width) &&
+ (resolution_height == small_resolution_height))
+ {
+ upscale_aspect(gpsp_gp2x_screen, screen_pixels);
+ }
pollux_video_flip();
screen_pixels = (u16 *)gpsp_gp2x_screen + screen_offset;
}
pollux_video_flip();
screen_pixels = (u16 *)gpsp_gp2x_screen + screen_offset;
}
@@
-3437,9
+3442,7
@@
void flip_screen()
{
SDL_BlitSurface(screen, NULL, hw_screen, NULL);
}
{
SDL_BlitSurface(screen, NULL, hw_screen, NULL);
}
- /* it is unclear if this syscall takes virtual or physical addresses,
- * but using virtual seems to work for me. */
- gp2x_flush_cache(hw_screen->pixels, hw_screen->pixels + 320*240, 0);
+ warm_cache_op_all(WOP_D_CLEAN);
}
#else
SDL_Flip(screen);
}
#else
SDL_Flip(screen);
@@
-3564,7
+3567,7
@@
void init_video()
screen = SDL_CreateRGBSurface(SDL_HWSURFACE, 240 * video_scale,
160 * video_scale, 16, 0xFFFF, 0xFFFF, 0xFFFF, 0);
screen = SDL_CreateRGBSurface(SDL_HWSURFACE, 240 * video_scale,
160 * video_scale, 16, 0xFFFF, 0xFFFF, 0xFFFF, 0);
-
gp2x_load_mmuhack(
);
+
warm_change_cb_upper(WCB_C_BIT|WCB_B_BIT, 1
);
#else
screen = SDL_SetVideoMode(240 * video_scale, 160 * video_scale, 16, 0);
#endif
#else
screen = SDL_SetVideoMode(240 * video_scale, 160 * video_scale, 16, 0);
#endif
@@
-3692,13
+3695,19
@@
void video_resolution_large()
void video_resolution_small()
{
void video_resolution_small()
{
- screen_offset = 320*40 + 40;
+ if(screen_scale == scaled_aspect)
+ screen_offset = 320*(80 - 14) + 80;
+ else
+ screen_offset = 320*40 + 40;
resolution_width = 240;
resolution_height = 160;
resolution_width = 240;
resolution_height = 160;
- fb_use_buffers(
999
);
+ fb_use_buffers(
3
);
clear_screen(0);
flip_screen();
clear_screen(0);
flip_screen();
+ clear_screen(0);
+ flip_screen();
+ clear_screen(0);
}
void set_gba_resolution(video_scale_type scale)
}
void set_gba_resolution(video_scale_type scale)
@@
-3731,7
+3740,7
@@
void video_resolution_large()
resolution_height = 240;
SDL_ShowCursor(0);
resolution_height = 240;
SDL_ShowCursor(0);
-
gp2x_load_mmuhack(
);
+
warm_change_cb_upper(WCB_C_BIT|WCB_B_BIT, 1
);
#else
screen = SDL_SetVideoMode(480, 272, 16, 0);
resolution_width = 480;
#else
screen = SDL_SetVideoMode(480, 272, 16, 0);
resolution_width = 480;
@@
-3763,7
+3772,7
@@
void video_resolution_small()
SDL_ShowCursor(0);
SDL_ShowCursor(0);
-
gp2x_load_mmuhack(
);
+
warm_change_cb_upper(WCB_C_BIT|WCB_B_BIT, 1
);
#else
screen = SDL_SetVideoMode(small_resolution_width * video_scale,
small_resolution_height * video_scale, 16, 0);
#else
screen = SDL_SetVideoMode(small_resolution_width * video_scale,
small_resolution_height * video_scale, 16, 0);