mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
fix FAKE_IN_GP2X
git-svn-id: file:///home/notaz/opt/svn/PicoDrive@711 be3aeb3a-fb24-0410-a615-afba39da0efa
This commit is contained in:
parent
f2cf84723f
commit
c18c15aed7
2 changed files with 51 additions and 45 deletions
|
@ -36,50 +36,9 @@ static const char * const in_gp2x_keys[IN_GP2X_NBUTTONS] = {
|
||||||
[BTN_PUSH] = "PUSH"
|
[BTN_PUSH] = "PUSH"
|
||||||
};
|
};
|
||||||
|
|
||||||
static int in_gp2x_get_mmsp2_bits(void);
|
|
||||||
static int in_gp2x_get_wiz_bits(void);
|
|
||||||
|
|
||||||
static void in_gp2x_probe(void)
|
|
||||||
{
|
|
||||||
gp2x_soc_t soc;
|
|
||||||
|
|
||||||
soc = soc_detect();
|
|
||||||
switch (soc)
|
|
||||||
{
|
|
||||||
case SOCID_MMSP2:
|
|
||||||
in_gp2x_get_bits = in_gp2x_get_mmsp2_bits;
|
|
||||||
break;
|
|
||||||
case SOCID_POLLUX:
|
|
||||||
gpiodev = open("/dev/GPIO", O_RDONLY);
|
|
||||||
if (gpiodev < 0) {
|
|
||||||
perror("in_gp2x: couldn't open /dev/GPIO");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
in_gp2x_get_bits = in_gp2x_get_wiz_bits;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
in_register(IN_PREFIX "GP2X pad", IN_DRVID_GP2X, -1, (void *)1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void in_gp2x_free(void *drv_data)
|
|
||||||
{
|
|
||||||
if (gpiodev >= 0) {
|
|
||||||
close(gpiodev);
|
|
||||||
gpiodev = -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static int in_gp2x_get_bind_count(void)
|
|
||||||
{
|
|
||||||
return IN_GP2X_NBUTTONS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int in_gp2x_get_mmsp2_bits(void)
|
static int in_gp2x_get_mmsp2_bits(void)
|
||||||
{
|
{
|
||||||
#ifndef FAKE_IN_GP2X
|
|
||||||
extern volatile unsigned short *gp2x_memregs;
|
extern volatile unsigned short *gp2x_memregs;
|
||||||
int value;
|
int value;
|
||||||
value = gp2x_memregs[0x1198>>1] & 0xff; // GPIO M
|
value = gp2x_memregs[0x1198>>1] & 0xff; // GPIO M
|
||||||
|
@ -92,10 +51,6 @@ static int in_gp2x_get_mmsp2_bits(void)
|
||||||
value = ~value & 0x08c0ff55;
|
value = ~value & 0x08c0ff55;
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
#else
|
|
||||||
extern int current_keys;
|
|
||||||
return current_keys;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int in_gp2x_get_wiz_bits(void)
|
static int in_gp2x_get_wiz_bits(void)
|
||||||
|
@ -124,6 +79,56 @@ static int in_gp2x_get_wiz_bits(void)
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef FAKE_IN_GP2X
|
||||||
|
static int in_gp2x_get_fake_bits(void)
|
||||||
|
{
|
||||||
|
extern int current_keys;
|
||||||
|
return current_keys;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void in_gp2x_probe(void)
|
||||||
|
{
|
||||||
|
gp2x_soc_t soc;
|
||||||
|
|
||||||
|
soc = soc_detect();
|
||||||
|
switch (soc)
|
||||||
|
{
|
||||||
|
case SOCID_MMSP2:
|
||||||
|
in_gp2x_get_bits = in_gp2x_get_mmsp2_bits;
|
||||||
|
break;
|
||||||
|
case SOCID_POLLUX:
|
||||||
|
gpiodev = open("/dev/GPIO", O_RDONLY);
|
||||||
|
if (gpiodev < 0) {
|
||||||
|
perror("in_gp2x: couldn't open /dev/GPIO");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
in_gp2x_get_bits = in_gp2x_get_wiz_bits;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
#ifdef FAKE_IN_GP2X
|
||||||
|
in_gp2x_get_bits = in_gp2x_get_fake_bits;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
in_register(IN_PREFIX "GP2X pad", IN_DRVID_GP2X, -1, (void *)1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void in_gp2x_free(void *drv_data)
|
||||||
|
{
|
||||||
|
if (gpiodev >= 0) {
|
||||||
|
close(gpiodev);
|
||||||
|
gpiodev = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int in_gp2x_get_bind_count(void)
|
||||||
|
{
|
||||||
|
return IN_GP2X_NBUTTONS;
|
||||||
|
}
|
||||||
|
|
||||||
/* returns bitfield of binds of pressed buttons */
|
/* returns bitfield of binds of pressed buttons */
|
||||||
int in_gp2x_update(void *drv_data, int *binds)
|
int in_gp2x_update(void *drv_data, int *binds)
|
||||||
{
|
{
|
||||||
|
|
|
@ -30,6 +30,7 @@ static int scr_changed = 0, scr_w = SCREEN_WIDTH, scr_h = SCREEN_HEIGHT;
|
||||||
int mix_32_to_16l_level;
|
int mix_32_to_16l_level;
|
||||||
int crashed_940 = 0;
|
int crashed_940 = 0;
|
||||||
int default_cpu_clock = 123;
|
int default_cpu_clock = 123;
|
||||||
|
void *gp2x_memregs = NULL;
|
||||||
|
|
||||||
/* gtk */
|
/* gtk */
|
||||||
struct gtk_global_struct
|
struct gtk_global_struct
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue