notaz.gp2x.de
/
picodrive.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
move more globals to PicoInterface
[picodrive.git]
/
platform
/
gp2x
/
emu.c
diff --git
a/platform/gp2x/emu.c
b/platform/gp2x/emu.c
index
7e91361
..
7e9a132
100644
(file)
--- a/
platform/gp2x/emu.c
+++ b/
platform/gp2x/emu.c
@@
-7,8
+7,8
@@
* - 8bpp tile renderer
\r
* In 32x mode:
\r
* - 32x layer is overlayed on top of 16bpp one
\r
* - 8bpp tile renderer
\r
* In 32x mode:
\r
* - 32x layer is overlayed on top of 16bpp one
\r
- * - line internal one done on
Pico
Draw2FB, then mixed with 32x
\r
- * - tile internal one done on
Pico
Draw2FB, then mixed with 32x
\r
+ * - line internal one done on
.
Draw2FB, then mixed with 32x
\r
+ * - tile internal one done on
.
Draw2FB, then mixed with 32x
\r
*/
\r
\r
#include <stdio.h>
\r
*/
\r
\r
#include <stdio.h>
\r
@@
-70,7
+70,7
@@
void pemu_prep_defconfig(void)
void pemu_validate_config(void)
\r
{
\r
if (gp2x_dev_id != GP2X_DEV_GP2X)
\r
void pemu_validate_config(void)
\r
{
\r
if (gp2x_dev_id != GP2X_DEV_GP2X)
\r
- Pico
O
pt &= ~POPT_EXT_FM;
\r
+ Pico
In.o
pt &= ~POPT_EXT_FM;
\r
if (gp2x_dev_id != GP2X_DEV_WIZ)
\r
currentConfig.EmuOpt &= ~EOPT_WIZ_TEAR_FIX;
\r
\r
if (gp2x_dev_id != GP2X_DEV_WIZ)
\r
currentConfig.EmuOpt &= ~EOPT_WIZ_TEAR_FIX;
\r
\r
@@
-83,7
+83,7
@@
void pemu_validate_config(void)
\r
static int get_renderer(void)
\r
{
\r
\r
static int get_renderer(void)
\r
{
\r
- if (PicoAHW & PAHW_32X)
\r
+ if (Pico
In.
AHW & PAHW_32X)
\r
return currentConfig.renderer32x;
\r
else
\r
return currentConfig.renderer;
\r
return currentConfig.renderer32x;
\r
else
\r
return currentConfig.renderer;
\r
@@
-92,14
+92,14
@@
static int get_renderer(void)
static void change_renderer(int diff)
\r
{
\r
int *r;
\r
static void change_renderer(int diff)
\r
{
\r
int *r;
\r
- if (PicoAHW & PAHW_32X)
\r
+ if (Pico
In.
AHW & PAHW_32X)
\r
r = ¤tConfig.renderer32x;
\r
else
\r
r = ¤tConfig.renderer;
\r
*r += diff;
\r
\r
// 8bpp fast is not there (yet?)
\r
r = ¤tConfig.renderer32x;
\r
else
\r
r = ¤tConfig.renderer;
\r
*r += diff;
\r
\r
// 8bpp fast is not there (yet?)
\r
- if ((PicoAHW & PAHW_SMS) && *r == RT_8BIT_FAST)
\r
+ if ((Pico
In.
AHW & PAHW_SMS) && *r == RT_8BIT_FAST)
\r
(*r)++;
\r
\r
if (*r >= RT_COUNT)
\r
(*r)++;
\r
\r
if (*r >= RT_COUNT)
\r
@@
-109,7
+109,7
@@
static void change_renderer(int diff)
}
\r
\r
#define is_16bit_mode() \
\r
}
\r
\r
#define is_16bit_mode() \
\r
- (get_renderer() == RT_16BIT || (PicoAHW & PAHW_32X))
\r
+ (get_renderer() == RT_16BIT || (Pico
In.
AHW & PAHW_32X))
\r
\r
static void (*osd_text)(int x, int y, const char *text);
\r
\r
\r
static void (*osd_text)(int x, int y, const char *text);
\r
\r
@@
-201,7
+201,7
@@
static void draw_pico_ptr(void)
\r
x = pico_pen_x + PICO_PEN_ADJUST_X;
\r
y = pico_pen_y + PICO_PEN_ADJUST_Y;
\r
\r
x = pico_pen_x + PICO_PEN_ADJUST_X;
\r
y = pico_pen_y + PICO_PEN_ADJUST_Y;
\r
- if (!(Pico.video.reg[12]&1) && !(Pico
O
pt & POPT_DIS_32C_BORDER))
\r
+ if (!(Pico.video.reg[12]&1) && !(Pico
In.o
pt & POPT_DIS_32C_BORDER))
\r
x += 32;
\r
\r
if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) {
\r
x += 32;
\r
\r
if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) {
\r
@@
-222,7
+222,7
@@
static unsigned char __attribute__((aligned(4))) rot_buff[320*4*2];
\r
static int EmuScanBegin16_rot(unsigned int num)
\r
{
\r
\r
static int EmuScanBegin16_rot(unsigned int num)
\r
{
\r
- DrawLineDest = rot_buff + (num & 3) * 320 * 2;
\r
+
Pico.est.
DrawLineDest = rot_buff + (num & 3) * 320 * 2;
\r
return 0;
\r
}
\r
\r
return 0;
\r
}
\r
\r
@@
-231,13
+231,13
@@
static int EmuScanEnd16_rot(unsigned int num)
if ((num & 3) != 3)
\r
return 0;
\r
rotated_blit16(g_screen_ptr, rot_buff, num + 1,
\r
if ((num & 3) != 3)
\r
return 0;
\r
rotated_blit16(g_screen_ptr, rot_buff, num + 1,
\r
- !(Pico.video.reg[12] & 1) && !(Pico
O
pt & POPT_EN_SOFTSCALE));
\r
+ !(Pico.video.reg[12] & 1) && !(Pico
In.o
pt & POPT_EN_SOFTSCALE));
\r
return 0;
\r
}
\r
\r
static int EmuScanBegin8_rot(unsigned int num)
\r
{
\r
return 0;
\r
}
\r
\r
static int EmuScanBegin8_rot(unsigned int num)
\r
{
\r
- DrawLineDest = rot_buff + (num & 3) * 320;
\r
+
Pico.est.
DrawLineDest = rot_buff + (num & 3) * 320;
\r
return 0;
\r
}
\r
\r
return 0;
\r
}
\r
\r
@@
-262,14
+262,14
@@
static int EmuScanBegin16_ld(unsigned int num)
if (emu_scan_begin)
\r
return emu_scan_begin(ld_counter);
\r
else
\r
if (emu_scan_begin)
\r
return emu_scan_begin(ld_counter);
\r
else
\r
- DrawLineDest = (char *)g_screen_ptr + 320 * ld_counter * gp2x_current_bpp / 8;
\r
+
Pico.est.
DrawLineDest = (char *)g_screen_ptr + 320 * ld_counter * gp2x_current_bpp / 8;
\r
\r
return 0;
\r
}
\r
\r
static int EmuScanEnd16_ld(unsigned int num)
\r
{
\r
\r
return 0;
\r
}
\r
\r
static int EmuScanEnd16_ld(unsigned int num)
\r
{
\r
- void *oldline = DrawLineDest;
\r
+ void *oldline =
Pico.est.
DrawLineDest;
\r
\r
if (emu_scan_end)
\r
emu_scan_end(ld_counter);
\r
\r
if (emu_scan_end)
\r
emu_scan_end(ld_counter);
\r
@@
-280,7
+280,7
@@
static int EmuScanEnd16_ld(unsigned int num)
ld_left = ld_lines;
\r
\r
EmuScanBegin16_ld(num);
\r
ld_left = ld_lines;
\r
\r
EmuScanBegin16_ld(num);
\r
- memcpy
32(DrawLineDest, oldline, 320 * gp2x_current_bpp / 8 / 4
);
\r
+ memcpy
(Pico.est.DrawLineDest, oldline, 320 * gp2x_current_bpp / 8
);
\r
if (emu_scan_end)
\r
emu_scan_end(ld_counter);
\r
\r
if (emu_scan_end)
\r
emu_scan_end(ld_counter);
\r
\r
@@
-311,11
+311,11
@@
static int make_local_pal_md(int fast_mode)
pallen = 0x100;
\r
}
\r
else if (Pico.est.rendstatus & PDRAW_SONIC_MODE) { // mid-frame palette changes
\r
pallen = 0x100;
\r
}
\r
else if (Pico.est.rendstatus & PDRAW_SONIC_MODE) { // mid-frame palette changes
\r
- bgr444_to_rgb32(localPal+0x40, HighPal);
\r
- bgr444_to_rgb32(localPal+0x80, HighPal+0x40);
\r
+ bgr444_to_rgb32(localPal+0x40,
Pico.est.
HighPal);
\r
+ bgr444_to_rgb32(localPal+0x80,
Pico.est.
HighPal+0x40);
\r
}
\r
else
\r
}
\r
else
\r
- memcpy
32(localPal+0x80, localPal, 0x40
); // for spr prio mess
\r
+ memcpy
(localPal + 0x80, localPal, 0x40 * 4
); // for spr prio mess
\r
\r
return pallen;
\r
}
\r
\r
return pallen;
\r
}
\r
@@
-342,7
+342,7
@@
void pemu_finalize_frame(const char *fps, const char *notice)
int emu_opt = currentConfig.EmuOpt;
\r
int ret;
\r
\r
int emu_opt = currentConfig.EmuOpt;
\r
int ret;
\r
\r
- if (PicoAHW & PAHW_32X)
\r
+ if (Pico
In.
AHW & PAHW_32X)
\r
; // nothing to do
\r
else if (get_renderer() == RT_8BIT_FAST)
\r
{
\r
; // nothing to do
\r
else if (get_renderer() == RT_8BIT_FAST)
\r
{
\r
@@
-354,11
+354,11
@@
void pemu_finalize_frame(const char *fps, const char *notice)
gp2x_video_setpalette(localPal, ret);
\r
}
\r
// a hack for VR
\r
gp2x_video_setpalette(localPal, ret);
\r
}
\r
// a hack for VR
\r
- if (PicoAHW & PAHW_SVP)
\r
- memset32((int *)(PicoDraw2FB+328*8+328*223), 0xe0e0e0e0, 328);
\r
+ if (Pico
In.
AHW & PAHW_SVP)
\r
+ memset32((int *)(Pico
.est.
Draw2FB+328*8+328*223), 0xe0e0e0e0, 328);
\r
// do actual copy
\r
// do actual copy
\r
- vidcpyM2(g_screen_ptr, PicoDraw2FB+328*8,
\r
- !(Pico.video.reg[12] & 1), !(Pico
O
pt & POPT_DIS_32C_BORDER));
\r
+ vidcpyM2(g_screen_ptr, Pico
.est.
Draw2FB+328*8,
\r
+ !(Pico.video.reg[12] & 1), !(Pico
In.o
pt & POPT_DIS_32C_BORDER));
\r
}
\r
else if (get_renderer() == RT_8BIT_ACC)
\r
{
\r
}
\r
else if (get_renderer() == RT_8BIT_ACC)
\r
{
\r
@@
-375,9
+375,9
@@
void pemu_finalize_frame(const char *fps, const char *notice)
osd_text(4, osd_y, notice);
\r
if (emu_opt & EOPT_SHOW_FPS)
\r
osd_text(osd_fps_x, osd_y, fps);
\r
osd_text(4, osd_y, notice);
\r
if (emu_opt & EOPT_SHOW_FPS)
\r
osd_text(osd_fps_x, osd_y, fps);
\r
- if ((PicoAHW & PAHW_MCD) && (emu_opt & EOPT_EN_CD_LEDS))
\r
+ if ((Pico
In.
AHW & PAHW_MCD) && (emu_opt & EOPT_EN_CD_LEDS))
\r
draw_cd_leds();
\r
draw_cd_leds();
\r
- if (PicoAHW & PAHW_PICO)
\r
+ if (Pico
In.
AHW & PAHW_PICO)
\r
draw_pico_ptr();
\r
}
\r
\r
draw_pico_ptr();
\r
}
\r
\r
@@
-472,7
+472,7
@@
static void vid_reset_mode(void)
int gp2x_mode = 16;
\r
int renderer = get_renderer();
\r
\r
int gp2x_mode = 16;
\r
int renderer = get_renderer();
\r
\r
- Pico
O
pt &= ~POPT_ALT_RENDERER;
\r
+ Pico
In.o
pt &= ~POPT_ALT_RENDERER;
\r
emu_scan_begin = NULL;
\r
emu_scan_end = NULL;
\r
\r
emu_scan_begin = NULL;
\r
emu_scan_end = NULL;
\r
\r
@@
-487,7
+487,7
@@
static void vid_reset_mode(void)
gp2x_mode = 8;
\r
break;
\r
case RT_8BIT_FAST:
\r
gp2x_mode = 8;
\r
break;
\r
case RT_8BIT_FAST:
\r
- Pico
O
pt |= POPT_ALT_RENDERER;
\r
+ Pico
In.o
pt |= POPT_ALT_RENDERER;
\r
PicoDrawSetOutFormat(PDF_NONE, 0);
\r
vidcpyM2 = vidcpy_m2;
\r
gp2x_mode = 8;
\r
PicoDrawSetOutFormat(PDF_NONE, 0);
\r
vidcpyM2 = vidcpy_m2;
\r
gp2x_mode = 8;
\r
@@
-497,7
+497,7
@@
static void vid_reset_mode(void)
break;
\r
}
\r
\r
break;
\r
}
\r
\r
- if (PicoAHW & PAHW_32X) {
\r
+ if (Pico
In.
AHW & PAHW_32X) {
\r
// Wiz 16bit is an exception, uses line rendering due to rotation mess
\r
if (renderer == RT_16BIT && (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX)) {
\r
PicoDrawSetOutFormat(PDF_RGB555, 1);
\r
// Wiz 16bit is an exception, uses line rendering due to rotation mess
\r
if (renderer == RT_16BIT && (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX)) {
\r
PicoDrawSetOutFormat(PDF_RGB555, 1);
\r
@@
-510,7
+510,7
@@
static void vid_reset_mode(void)
}
\r
\r
if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) {
\r
}
\r
\r
if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) {
\r
- if ((PicoAHW & PAHW_32X) || renderer == RT_16BIT) {
\r
+ if ((Pico
In.
AHW & PAHW_32X) || renderer == RT_16BIT) {
\r
emu_scan_begin = EmuScanBegin16_rot;
\r
emu_scan_end = EmuScanEnd16_rot;
\r
}
\r
emu_scan_begin = EmuScanBegin16_rot;
\r
emu_scan_end = EmuScanEnd16_rot;
\r
}
\r
@@
-549,12
+549,12
@@
static void vid_reset_mode(void)
\r
Pico.m.dirtyPal = 1;
\r
\r
\r
Pico.m.dirtyPal = 1;
\r
\r
- Pico
O
pt &= ~POPT_EN_SOFTSCALE;
\r
+ Pico
In.o
pt &= ~POPT_EN_SOFTSCALE;
\r
if (currentConfig.scaling == EOPT_SCALE_SW)
\r
if (currentConfig.scaling == EOPT_SCALE_SW)
\r
- Pico
O
pt |= POPT_EN_SOFTSCALE;
\r
+ Pico
In.o
pt |= POPT_EN_SOFTSCALE;
\r
\r
// palette converters for 8bit modes
\r
\r
// palette converters for 8bit modes
\r
- make_local_pal = (PicoAHW & PAHW_SMS) ? make_local_pal_sms : make_local_pal_md;
\r
+ make_local_pal = (Pico
In.
AHW & PAHW_SMS) ? make_local_pal_sms : make_local_pal_md;
\r
}
\r
\r
void emu_video_mode_change(int start_line, int line_count, int is_32cols)
\r
}
\r
\r
void emu_video_mode_change(int start_line, int line_count, int is_32cols)
\r
@@
-569,10
+569,10
@@
void emu_video_mode_change(int start_line, int line_count, int is_32cols)
osd_y = 232;
\r
\r
/* set up hwscaling here */
\r
osd_y = 232;
\r
\r
/* set up hwscaling here */
\r
- Pico
O
pt &= ~POPT_DIS_32C_BORDER;
\r
+ Pico
In.o
pt &= ~POPT_DIS_32C_BORDER;
\r
if (is_32cols && currentConfig.scaling == EOPT_SCALE_HW) {
\r
scalex = 256;
\r
if (is_32cols && currentConfig.scaling == EOPT_SCALE_HW) {
\r
scalex = 256;
\r
- Pico
O
pt |= POPT_DIS_32C_BORDER;
\r
+ Pico
In.o
pt |= POPT_DIS_32C_BORDER;
\r
osd_fps_x = OSD_FPS_X - 64;
\r
}
\r
\r
osd_fps_x = OSD_FPS_X - 64;
\r
}
\r
\r
@@
-607,7
+607,7
@@
void plat_video_toggle_renderer(int change, int is_menu_call)
vid_reset_mode();
\r
rendstatus_old = -1;
\r
\r
vid_reset_mode();
\r
rendstatus_old = -1;
\r
\r
- if (PicoAHW & PAHW_32X)
\r
+ if (Pico
In.
AHW & PAHW_32X)
\r
emu_status_msg(renderer_names32x[get_renderer()]);
\r
else
\r
emu_status_msg(renderer_names[get_renderer()]);
\r
emu_status_msg(renderer_names32x[get_renderer()]);
\r
else
\r
emu_status_msg(renderer_names[get_renderer()]);
\r
@@
-626,7
+626,7
@@
static void RunEventsPico(unsigned int events)
if (ret > 35000)
\r
{
\r
if (pdown_frames++ > 5)
\r
if (ret > 35000)
\r
{
\r
if (pdown_frames++ > 5)
\r
- Pico
P
ad[0] |= 0x20;
\r
+ Pico
In.p
ad[0] |= 0x20;
\r
\r
pico_pen_x = px;
\r
pico_pen_y = py;
\r
\r
pico_pen_x = px;
\r
pico_pen_y = py;
\r
@@
-654,7
+654,7
@@
void plat_update_volume(int has_changed, int is_up)
gp2x_soc_t soc;
\r
\r
soc = soc_detect();
\r
gp2x_soc_t soc;
\r
\r
soc = soc_detect();
\r
- if ((Pico
O
pt & POPT_EN_STEREO) && soc == SOCID_MMSP2)
\r
+ if ((Pico
In.o
pt & POPT_EN_STEREO) && soc == SOCID_MMSP2)
\r
need_low_volume = 1;
\r
\r
if (has_changed)
\r
need_low_volume = 1;
\r
\r
if (has_changed)
\r
@@
-692,7
+692,7
@@
void pemu_sound_start(void)
{
\r
soc = soc_detect();
\r
if (soc == SOCID_POLLUX) {
\r
{
\r
soc = soc_detect();
\r
if (soc == SOCID_POLLUX) {
\r
- P
sndRate = pollux_get_real_snd_rate(P
sndRate);
\r
+ P
icoIn.sndRate = pollux_get_real_snd_rate(PicoIn.
sndRate);
\r
PsndRerate(Pico.m.frame_count ? 1 : 0);
\r
}
\r
\r
PsndRerate(Pico.m.frame_count ? 1 : 0);
\r
}
\r
\r
@@
-707,10
+707,10
@@
void pemu_sound_stop(void)
int i;
\r
\r
/* get back from Pollux pain */
\r
int i;
\r
\r
/* get back from Pollux pain */
\r
- PsndRate += 1000;
\r
+ P
icoIn.
sndRate += 1000;
\r
for (i = 0; i < ARRAY_SIZE(sound_rates); i++) {
\r
for (i = 0; i < ARRAY_SIZE(sound_rates); i++) {
\r
- if (PsndRate >= sound_rates[i]) {
\r
- PsndRate = sound_rates[i];
\r
+ if (P
icoIn.
sndRate >= sound_rates[i]) {
\r
+ P
icoIn.
sndRate = sound_rates[i];
\r
break;
\r
}
\r
}
\r
break;
\r
}
\r
}
\r