notaz.gp2x.de
/
libpicofe.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tweak and refactor frontends, menu and config
[libpicofe.git]
/
gp2x
/
emu.c
diff --git
a/gp2x/emu.c
b/gp2x/emu.c
index
7520076
..
625f481
100644
(file)
--- a/
gp2x/emu.c
+++ b/
gp2x/emu.c
@@
-23,6
+23,7
@@
#include "../common/fonts.h"
\r
#include "../common/emu.h"
\r
#include "../common/config.h"
\r
#include "../common/fonts.h"
\r
#include "../common/emu.h"
\r
#include "../common/config.h"
\r
+#include "../common/input.h"
\r
#include "../linux/sndout_oss.h"
\r
#include "version.h"
\r
\r
#include "../linux/sndout_oss.h"
\r
#include "version.h"
\r
\r
@@
-60,6
+61,7
@@
void pemu_prep_defconfig(void)
\r
defaultConfig.CPUclock = default_cpu_clock;
\r
defaultConfig.renderer32x = RT_8BIT_FAST;
\r
\r
defaultConfig.CPUclock = default_cpu_clock;
\r
defaultConfig.renderer32x = RT_8BIT_FAST;
\r
+ defaultConfig.analog_deadzone = 50;
\r
\r
soc = soc_detect();
\r
if (soc == SOCID_MMSP2)
\r
\r
soc = soc_detect();
\r
if (soc == SOCID_MMSP2)
\r
@@
-523,9
+525,10
@@
static void vid_reset_mode(void)
}
\r
else {
\r
PicoDrawSetOutFormat(PDF_NONE, 0);
\r
}
\r
else {
\r
PicoDrawSetOutFormat(PDF_NONE, 0);
\r
- PicoDraw32xSetFrameMode(1,
(renderer == RT_16BIT) ? 1 :
0);
\r
+ PicoDraw32xSetFrameMode(1, 0);
\r
}
\r
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
\r
}
\r
PicoDrawSetOutBuf(g_screen_ptr, g_screen_width * 2);
\r
+ gp2x_mode = 16;
\r
}
\r
\r
if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) {
\r
}
\r
\r
if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) {
\r
@@
-548,12
+551,7
@@
static void vid_reset_mode(void)
else
\r
osd_text = (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) ? osd_text8_rot : osd_text8;
\r
\r
else
\r
osd_text = (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX) ? osd_text8_rot : osd_text8;
\r
\r
- if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX)
\r
- gp2x_mode = -gp2x_mode;
\r
-
\r
gp2x_video_wait_vsync();
\r
gp2x_video_wait_vsync();
\r
- gp2x_video_changemode(gp2x_mode);
\r
-
\r
if (!is_16bit_mode()) {
\r
// setup pal for 8-bit modes
\r
localPal[0xc0] = 0x0000c000; // MCD LEDs
\r
if (!is_16bit_mode()) {
\r
// setup pal for 8-bit modes
\r
localPal[0xc0] = 0x0000c000; // MCD LEDs
\r
@@
-566,6
+564,11
@@
static void vid_reset_mode(void)
else
\r
gp2x_memset_all_buffers(0, 0, 320*240*2);
\r
\r
else
\r
gp2x_memset_all_buffers(0, 0, 320*240*2);
\r
\r
+ if (currentConfig.EmuOpt & EOPT_WIZ_TEAR_FIX)
\r
+ gp2x_mode = -gp2x_mode;
\r
+
\r
+ gp2x_video_changemode(gp2x_mode);
\r
+
\r
Pico.m.dirtyPal = 1;
\r
\r
PicoOpt &= ~POPT_EN_SOFTSCALE;
\r
Pico.m.dirtyPal = 1;
\r
\r
PicoOpt &= ~POPT_EN_SOFTSCALE;
\r
@@
-794,13
+797,15
@@
void pemu_sound_wait(void)
// don't need to do anything, writes will block by themselves
\r
}
\r
\r
// don't need to do anything, writes will block by themselves
\r
}
\r
\r
-void pemu_forced_frame(int
opts, int no_scale
)
\r
+void pemu_forced_frame(int
no_scale, int do_emu
)
\r
{
\r
int po_old = PicoOpt;
\r
\r
doing_bg_frame = 1;
\r
PicoOpt &= ~POPT_ALT_RENDERER;
\r
{
\r
int po_old = PicoOpt;
\r
\r
doing_bg_frame = 1;
\r
PicoOpt &= ~POPT_ALT_RENDERER;
\r
- PicoOpt |= opts|POPT_ACC_SPRITES;
\r
+ PicoOpt |= POPT_ACC_SPRITES;
\r
+ if (!no_scale)
\r
+ PicoOpt |= POPT_EN_SOFTSCALE;
\r
\r
memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);
\r
\r
\r
memset32(g_screen_ptr, 0, g_screen_width * g_screen_height * 2 / 4);
\r
\r
@@
-810,12
+815,12
@@
void pemu_forced_frame(int opts, int no_scale)
PicoDrawSetCallbacks(NULL, NULL);
\r
Pico.m.dirtyPal = 1;
\r
\r
PicoDrawSetCallbacks(NULL, NULL);
\r
Pico.m.dirtyPal = 1;
\r
\r
- if (no_scale == -9)
\r
- // yes I'm lazy, see pemu_forced_frame call below
\r
+ if (do_emu)
\r
PicoFrame();
\r
else
\r
PicoFrameDrawOnly();
\r
\r
PicoFrame();
\r
else
\r
PicoFrameDrawOnly();
\r
\r
+ g_menubg_src_ptr = g_screen_ptr;
\r
doing_bg_frame = 0;
\r
PicoOpt = po_old;
\r
}
\r
doing_bg_frame = 0;
\r
PicoOpt = po_old;
\r
}
\r
@@
-909,6
+914,10
@@
void pemu_loop_prep(void)
unset_lcd_custom_rate();
\r
}
\r
\r
unset_lcd_custom_rate();
\r
}
\r
\r
+ if (gp2x_dev_id == GP2X_DEV_CAANOO)
\r
+ in_set_config_int(in_name_to_id("evdev:pollux-analog"), IN_CFG_ABS_DEAD_ZONE,
\r
+ currentConfig.analog_deadzone);
\r
+
\r
if ((EmuOpt_old ^ currentConfig.EmuOpt) & EOPT_MMUHACK)
\r
gp2x_make_fb_bufferable(currentConfig.EmuOpt & EOPT_MMUHACK);
\r
\r
if ((EmuOpt_old ^ currentConfig.EmuOpt) & EOPT_MMUHACK)
\r
gp2x_make_fb_bufferable(currentConfig.EmuOpt & EOPT_MMUHACK);
\r
\r
@@
-931,8
+940,7
@@
void pemu_loop_end(void)
pemu_sound_stop();
\r
\r
/* do one more frame for menu bg */
\r
pemu_sound_stop();
\r
\r
/* do one more frame for menu bg */
\r
- pemu_forced_frame(POPT_EN_SOFTSCALE, -9);
\r
- g_menubg_src_ptr = g_screen_ptr;
\r
+ pemu_forced_frame(0, 1);
\r
}
\r
\r
const char *plat_get_credits(void)
\r
}
\r
\r
const char *plat_get_credits(void)
\r