From 5b36428539e8d50152f58292bc4d27060727ce81 Mon Sep 17 00:00:00 2001 From: Not6 Date: Sun, 5 Mar 2017 22:39:47 +0100 Subject: [PATCH] some cleanup --- libretro/core-mapper.c | 444 ++++++++++----------------------------- libretro/libretro-core.c | 15 ++ libretro/platform.c | 4 +- 3 files changed, 128 insertions(+), 335 deletions(-) diff --git a/libretro/core-mapper.c b/libretro/core-mapper.c index b0bffa4..d0bf8d9 100644 --- a/libretro/core-mapper.c +++ b/libretro/core-mapper.c @@ -56,22 +56,25 @@ int MOUSE_EMULATED=1; #else int MOUSE_EMULATED=-1; #endif -int MAXPAS=6,SHIFTON=-1,MOUSEMODE=-1,PAS=4; +int SHIFTON=-1,MOUSEMODE=-1,PAS=4; int SND=1; //SOUND ON/OFF -static int firstps=0; int pauseg=0; //enter_gui int touch=-1; // gui mouse btn //JOY int al[2][2];//left analog1 int ar[2][2];//right analog1 unsigned char MXjoy[2]; // joy -int NUMjoy=1; -int NUMDRV=1; + +#define JOYRANGE_UP_VALUE -16384 /* Joystick ranges in XY */ +#define JOYRANGE_DOWN_VALUE 16383 +#define JOYRANGE_LEFT_VALUE -16384 +#define JOYRANGE_RIGHT_VALUE 16383 + +extern int a5200_joyhack; //MOUSE extern int pushi; // gui mouse btn int gmx,gmy; //gui mouse -int c64mouse_enable=0; int mouse_wu=0,mouse_wd=0; //KEYBOARD char Key_Sate[512]; @@ -128,29 +131,8 @@ long GetTicks(void) #endif } - int slowdown=0; -void gui_poll_events(void) -{ - Ktime = GetTicks(); - - if(Ktime - LastFPSTime >= 1000/50) - { - slowdown=0; - frame++; - LastFPSTime = Ktime; - - co_switch(mainThread); - - } -} - -void retro_mouse(int a,int b) {} -void retro_mouse_but0(int a) {} -void retro_mouse_but1(int a) {} -void enter_options(void) {} - #if defined(ANDROID) || defined(__ANDROID__) #define DEFAULT_PATH "/mnt/sdcard/" #else @@ -163,7 +145,6 @@ void enter_options(void) {} #endif -int STATUTON=-1; #define RETRO_DEVICE_ATARI_KEYBOARD RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_KEYBOARD, 0) #define RETRO_DEVICE_ATARI_JOYSTICK RETRO_DEVICE_SUBCLASS(RETRO_DEVICE_JOYPAD, 1) @@ -181,7 +162,6 @@ void texture_init(void) gmy=(retroh/2)-1; } -int bitstart=0; int pushi=0; //mouse button int keydown=0,keyup=0; int KBMOD=-1; @@ -191,7 +171,6 @@ int CTRLON=-1; extern unsigned short int bmp[400*300]; extern unsigned atari_devices[ 2 ]; -#include "pokeysnd.h" extern int UI_is_active; extern int CURRENT_TV; @@ -202,7 +181,6 @@ void retro_sound_update() if (! UI_is_active) { Sound_Callback(SNDBUF, 1024*2*2); - //POKEYSND_Process(SNDBUF,snd_sampler_pal); for(x=0;x> 4] &= ~bit_values2[0x25 & 7]; // key needs to be SHIFTed - -Key_Sate[key]=1; - //keyboard_matrix[(unsigned char)key >> 4] &= ~bit_values2[(unsigned char)key & 7]; // key is being held down - + ; + Key_Sate[key]=1; + // key is being held down } else { if(SHIFTON==1) - ;//keyboard_matrix[0x25 >> 4] |= bit_values2[0x25 & 7]; // make sure key is unSHIFTed -Key_Sate[key]=0; - //keyboard_matrix[(unsigned char)key >> 4] |= bit_values2[(unsigned char)key & 7]; - + ; + Key_Sate[key]=0; + // key is being RELEASE } - } -void retro_key_down(int key) -{ - int code; -/* - if(key<512) - code=KeySymToCPCKey[key]; - else code = CPC_KEY_NULL; - CPC_SetKey(code); -*/ -} - -void retro_key_up(int key) -{ - int code; -/* - if(key<512) - code=KeySymToCPCKey[key]; - else code = CPC_KEY_NULL; - CPC_ClearKey(code); -*/ -} - -static int joy0_flag[6]={0,0,0,0,0,0}; - //0x01,0x02,0x04,0x08,0x80 0x40 - // UP DWN LEFT RGT BTN0 BTN1 - // 0 1 2 3 4 5 -void retro_joy0_test(unsigned char joy0) -{ - - if(joy0&0x01 && joy0_flag[0]==0 ){ - //keyboard_matrix[(unsigned char)0x90 >> 4] &= ~bit_values2[(unsigned char)0x90 & 7]; - joy0_flag[0]=1; - } - else if(joy0_flag[0]){ - //keyboard_matrix[(unsigned char)0x90 >> 4] |= bit_values2[(unsigned char)0x90 & 7]; - joy0_flag[0]=0; - } - - if(joy0&0x02 && joy0_flag[1]==0 ){ - //keyboard_matrix[(unsigned char)0x91 >> 4] &= ~bit_values2[(unsigned char)0x91 & 7]; - joy0_flag[1]=1; - } - else if(joy0_flag[1]){ - //keyboard_matrix[(unsigned char)0x91 >> 4] |= bit_values2[(unsigned char)0x91 & 7]; - joy0_flag[1]=0; - } - - if(joy0&0x04 && joy0_flag[2]==0 ){ - //keyboard_matrix[(unsigned char)0x92 >> 4] &= ~bit_values2[(unsigned char)0x92 & 7]; - joy0_flag[2]=1; - } - else if(joy0_flag[2]){ - //keyboard_matrix[(unsigned char)0x92 >> 4] |= bit_values2[(unsigned char)0x92 & 7]; - joy0_flag[2]=0; - } - - if(joy0&0x08 && joy0_flag[3]==0 ){ - //keyboard_matrix[(unsigned char)0x93 >> 4] &= ~bit_values2[(unsigned char)0x93 & 7]; - joy0_flag[3]=1; - } - else if(joy0_flag[3]){ - //keyboard_matrix[(unsigned char)0x93 >> 4] |= bit_values2[(unsigned char)0x93 & 7]; - joy0_flag[3]=0; - } - - if(joy0&0x40 && joy0_flag[5]==0 ){ - //keyboard_matrix[(unsigned char)0x95 >> 4] &= ~bit_values2[(unsigned char)0x95 & 7]; - joy0_flag[5]=1; - } - else if(joy0_flag[5]){ - //keyboard_matrix[(unsigned char)0x95 >> 4] |= bit_values2[(unsigned char)0x95 & 7]; - joy0_flag[5]=0; - } - - if(joy0&0x80 && joy0_flag[4]==0 ){ - //keyboard_matrix[(unsigned char)0x94 >> 4] &= ~bit_values2[(unsigned char)0x94 & 7]; - joy0_flag[4]=1; - } - else if(joy0_flag[4]){ - //keyboard_matrix[(unsigned char)0x94 >> 4] |= bit_values2[(unsigned char)0x94 & 7]; - joy0_flag[4]=0; - } - -} - - void retro_virtualkb(void) { // VKBD @@ -332,9 +219,8 @@ void retro_virtualkb(void) if(oldi!=-1) { - //retro_key_up(oldi); - vkbd_key(oldi,0); - oldi=-1; + vkbd_key(oldi,0); + oldi=-1; } if(SHOWKEY==1) @@ -410,83 +296,69 @@ void retro_virtualkb(void) } else if(i==-5) { - //FLIP DSK PORT 1-2 - NUMDRV=-NUMDRV; oldi=-1; } else if(i==-6) { - //Exit - retro_deinit(); - oldi=-1; - exit(0); + //Exit + //retro_deinit(); + oldi=-1; + //SHUTDOWN + } else if(i==-7) { - //SNA SAVE - // snapshot_save (RPATH); + oldi=-1; } else if(i==-8) { - //PLAY TAPE - // play_tape(); + oldi=-1; } else { - if(i==0x25 /*i==-10*/) //SHIFT + if(i==RETROK_LSHIFT) //SHIFT { -// if(SHIFTON == 1)retro_key_up(RETROK_RSHIFT); -// else retro_key_down(RETROK_LSHIFT); SHIFTON=-SHIFTON; oldi=-1; } - else if(i==0x27/*i==-11*/) //CTRL + else if(RETROK_LCTRL) //CTRL { -// if(CTRLON == 1)retro_key_up(RETROK_LCTRL); -/// else retro_key_down(RETROK_LCTRL); CTRLON=-CTRLON; oldi=-1; } - else if(i==-12) //RSTOP + else if(i==-12) //RSTOP { -// if(RSTOPON == 1)retro_key_up(RETROK_ESCAPE); -// else retro_key_down(RETROK_ESCAPE); + //(RETROK_ESCAPE); RSTOPON=-RSTOPON; oldi=-1; } - else if(i==-13) //GUI + else if(i==-13) //GUI { - // pauseg=1; - - SHOWKEY=-SHOWKEY; - Screen_SetFullUpdate(0); - oldi=-1; + SHOWKEY=-SHOWKEY; + oldi=-1; } - else if(i==-14) //JOY PORT TOGGLE + else if(i==-14) //JOY PORT TOGGLE { - //cur joy toggle - //cur_port++;if(cur_port>2)cur_port=1; SHOWKEY=-SHOWKEY; oldi=-1; } else { oldi=i; - //retro_key_down(oldi); - vkbd_key(oldi,1); + vkbd_key(oldi,1); } } } - } + } } @@ -494,7 +366,6 @@ void retro_virtualkb(void) void Screen_SetFullUpdate(int scr) { if(scr==0 ||scr>1)memset(Retro_Screen, 0, sizeof(Retro_Screen)); - // if(scr>0)memset(bmp,0,sizeof(bmp)); } void Process_key() @@ -507,12 +378,12 @@ void Process_key() if(memcmp( Key_Sate,old_Key_Sate , sizeof(Key_Sate) ) ) for(i=0;i<320;i++) if(Key_Sate[i] && Key_Sate[i]!=old_Key_Sate[i] ) - { + { +/* if(i==RETROK_F12){ - //play_tape(); continue; } -/* + if(i==RETROK_RCTRL){ //CTRLON=-CTRLON; printf("Modifier crtl pressed %d \n",CTRLON); @@ -523,23 +394,23 @@ void Process_key() printf("Modifier shift pressed %d \n",SHIFTON); continue; } -*/ + if(i==RETROK_LALT){ //KBMOD=-KBMOD; printf("Modifier alt pressed %d \n",KBMOD); continue; } -//printf("press: %d \n",i); - retro_key_down(i); - + //printf("press: %d \n",i); + //retro_key_down(i); +*/ } else if ( !Key_Sate[i] && Key_Sate[i]!=old_Key_Sate[i] ) { - if(i==RETROK_F12){ - //kbd_buf_feed("|tape\nrun\"\n^"); - continue; - } /* + if(i==RETROK_F12){ + continue; + } + if(i==RETROK_RCTRL){ CTRLON=-CTRLON; printf("Modifier crtl released %d \n",CTRLON); @@ -550,54 +421,21 @@ void Process_key() printf("Modifier shift released %d \n",SHIFTON); continue; } -*/ + if(i==RETROK_LALT){ - KBMOD=-KBMOD; +// KBMOD=-KBMOD; printf("Modifier alt released %d \n",KBMOD); continue; } -//printf("release: %d \n",i); - retro_key_up(i); +*/ + //printf("release: %d \n",i); + //retro_key_up(i); } memcpy(old_Key_Sate,Key_Sate , sizeof(Key_Sate) ); } -/* -void Print_Statut(void) -{ - DrawFBoxBmp(bmp,0,CROP_HEIGHT,CROP_WIDTH,STAT_YSZ,RGB565(0,0,0)); - - Draw_text(bmp,STAT_DECX+40 ,STAT_BASEY,0xffff,0x8080,1,2,40,(SND>0?"SND":"")); - Draw_text(bmp,STAT_DECX+80 ,STAT_BASEY,0xffff,0x8080,1,2,40,"F:%d",dwFPS); - Draw_text(bmp,STAT_DECX+120,STAT_BASEY,0xffff,0x8080,1,2,40,"DSK%c",NUMDRV>0?'A':'B'); - if(ZOOM>-1) - Draw_text(bmp,(384-Mres[ZOOM].x)/2,(272-Mres[ZOOM].y)/2,0xffff,0x8080,1,2,40,"x:%3d y:%3d",Mres[ZOOM].x,Mres[ZOOM].y); -} -*/ - - -/* -In joy mode -L3 GUI LOAD -R3 GUI SNAP -L2 STATUS ON/OFF -R2 AUTOLOAD TAPE -L CAT -R RESET -SEL MOUSE/JOY IN GUI -STR ENTER/RETURN -A FIRE1/VKBD KEY -B RUN -X FIRE2 -Y VKBD ON/OFF -In Keayboard mode -F8 LOAD DSK/TAPE -F9 MEM SNAPSHOT LOAD/SAVE -F10 MAIN GUI -F12 PLAY TAPE -*/ int Retro_PollEvent() { @@ -605,9 +443,11 @@ int Retro_PollEvent() // INDEX 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 int SAVPAS=PAS; - int i; - static int vbt[16]={0x0,0x0,0x0,0x0,0x01,0x02,0x04,0x08,0x80,0x40,0x0,0x0,0x0,0x0,0x0,0x0}; - //MXjoy[0]=0; + int i,j; + static int vbt[2][16]={ + {0x0,0x0,0x0,0x0,0x01,0x02,0x04,0x08,0x80,0x40,0x0,0x0,0x0,0x0,0x0,0x0}, + {0x0,0x0,0x0,0x0,0x01,0x02,0x04,0x08,0x80,0x40,0x0,0x0,0x0,0x0,0x0,0x0}, + }; input_poll_cb(); @@ -618,128 +458,72 @@ int Retro_PollEvent() if(SHOWKEY==-1 && pauseg==0)Process_key(); - -if(pauseg==0){ // if emulation running //Joy mode + for(j=0;j<2;j++){ for(i=4;i<10;i++) { - if( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i)) - MXjoy[0] |= vbt[i]; // Joy press - else if( MXjoy[0]&vbt[i])MXjoy[0] &= ~vbt[i]; // Joy press + if( input_state_cb(j, RETRO_DEVICE_JOYPAD, 0, i)) + MXjoy[j] |= vbt[j][i]; // Joy press + else if( MXjoy[j]&vbt[j][i])MXjoy[j] &= ~vbt[j][i]; // Joy press } - if(SHOWKEY==-1)retro_joy0_test(MXjoy[0]); + } + + if(a5200_joyhack) //hack for robotron right analog act as Joy1 + { + //emulate Joy1 with joy analog right + ar[0][0] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_X)); + ar[0][1] = (input_state_cb(0, RETRO_DEVICE_ANALOG, RETRO_DEVICE_INDEX_ANALOG_RIGHT, RETRO_DEVICE_ID_ANALOG_Y)); + + int x=ar[0][0]; + int y=ar[0][1]; + + /* Directions */ + + if (ar[0][1] <= JOYRANGE_UP_VALUE) + MXjoy[1] |= 0x01; + else if (ar[0][1] >= JOYRANGE_DOWN_VALUE) + MXjoy[1] |= 0x02; + + if (ar[0][0] <= JOYRANGE_LEFT_VALUE) + MXjoy[1] |= 0x04; + else if (ar[0][0] >= JOYRANGE_RIGHT_VALUE) + MXjoy[1] |= 0x08; + } -if(atari_devices[0]==RETRO_DEVICE_ATARI_JOYSTICK){ + if(atari_devices[0]==RETRO_DEVICE_ATARI_JOYSTICK){ //shortcut for joy mode only - i=1;//show vkbd toggle - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) - { - mbt[i]=0; - SHOWKEY=-SHOWKEY; - } + //Button B Y SLT STA + // 0 1 2 3 + for(i=0;i<4;i++){ - i=3;// START - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) - { - mbt[i]=0; - // kbd_buf_feed("\n"); - } + if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) + mbt[i]=1; + else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) + { + mbt[i]=0; + if(i==2)MOUSE_EMULATED=-MOUSE_EMULATED; + } + } + //Button L R L2 R2 L3 R3 + // 10 11 12 13 14 15 + for(i=10;i<16;i++){ -/* - i=10;//type DEL / ZOOM - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - ZOOM++;if(ZOOM>4)ZOOM=-1; + if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) + mbt[i]=1; + else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ) + { + mbt[i]=0; + if(i==14)SHOWKEY=-SHOWKEY; + } + } - } -*/ + }//if atari_devices=joy - i=0;//type RUN" - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - // kbd_buf_feed("RUN\""); - } - - i=10;//Type CAT\n - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - // kbd_buf_feed("CAT\n"); - //Screen_SetFullUpdate(); - } - - i=12;//show/hide statut - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - STATUTON=-STATUTON; - // Screen_SetFullUpdate(); - } - - i=13;//auto load tape - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - // kbd_buf_feed("|tape\nrun\"\n^"); - } - - i=11;//reset - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - //emu_reset(); - } - - i=2;//mouse/joy toggle - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - MOUSE_EMULATED=-MOUSE_EMULATED; - } - - // L3 -> gui load - if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, 14)){ - - } - // R3 -> gui snapshot - if (input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, 15)){ - - } - -}//if atari_devices=joy - - -}// if pauseg=0 -else{ - // if in gui - - i=2;//mouse/joy toggle - if ( input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) && mbt[i]==0 ) - mbt[i]=1; - else if ( mbt[i]==1 && ! input_state_cb(0, RETRO_DEVICE_JOYPAD, 0, i) ){ - mbt[i]=0; - MOUSE_EMULATED=-MOUSE_EMULATED; - } - -} if(MOUSE_EMULATED==1){ @@ -757,10 +541,10 @@ else{ slowdown=1; } else { -//printf("-----------------%d \n",pauseg); + //printf("-----------------%d \n",pauseg); mouse_wu = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELUP); mouse_wd = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_WHEELDOWN); -if(mouse_wu || mouse_wd)printf("-----------------MOUSE UP:%d DOWN:%d\n",mouse_wu, mouse_wd); + //if(mouse_wu || mouse_wd)printf("-----------------MOUSE UP:%d DOWN:%d\n",mouse_wu, mouse_wd); mouse_x = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_X); mouse_y = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_Y); mouse_l = input_state_cb(0, RETRO_DEVICE_MOUSE, 0, RETRO_DEVICE_ID_MOUSE_LEFT); @@ -773,14 +557,14 @@ if(mouse_wu || mouse_wd)printf("-----------------MOUSE UP:%d DOWN:%d\n",mouse_wu mmbL=1; pushi=1; - touch=1; + touch=1; } else if(mmbL==1 && !mouse_l) { mmbL=0; pushi=0; - touch=-1; + touch=-1; } if(mmbR==0 && mouse_r){ @@ -790,14 +574,6 @@ if(mouse_wu || mouse_wd)printf("-----------------MOUSE UP:%d DOWN:%d\n",mouse_wu mmbR=0; } -if(pauseg==0 && c64mouse_enable){ -/* - mouse_move((int)mouse_x, (int)mouse_y); - mouse_button(0,mmbL); - mouse_button(1,mmbR); -*/ -} - gmx+=mouse_x; gmy+=mouse_y; if(gmx<0)gmx=0; @@ -806,7 +582,7 @@ if(pauseg==0 && c64mouse_enable){ if(gmy>retroh-1)gmy=retroh-1; - if(SHOWKEY && pauseg==0)retro_virtualkb(); + if(SHOWKEY==1 && pauseg==0)retro_virtualkb(); return 1; diff --git a/libretro/libretro-core.c b/libretro/libretro-core.c index 01adc82..d54985b 100644 --- a/libretro/libretro-core.c +++ b/libretro/libretro-core.c @@ -17,6 +17,7 @@ int retroh=300; unsigned atari_devices[ 2 ]; int autorun5200=0; +int a5200_joyhack=0; int RETROJOY=0,RETROPT0=0,RETROSTATUS=0,RETRODRVTYPE=0; int retrojoy_init=0,retro_ui_finalized=0; @@ -80,11 +81,16 @@ void retro_set_environment(retro_environment_t cb) "atari800_opt1", "Autodetect A5200 CartType; disabled|enabled" , }, + { + "atari800_opt2", + "Joy hack A5200 for robotron; disabled|enabled" , + }, { "atari800_resolution", "Internal resolution; 336x240|320x240|384x240|384x272|384x288|400x300", }, + { NULL, NULL }, }; @@ -105,6 +111,15 @@ static void update_variables(void) autorun5200 = 1; } + var.key = "atari800_opt2"; + var.value = NULL; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (strcmp(var.value, "enabled") == 0) + a5200_joyhack = 1; + } + var.key = "atari800_resolution"; var.value = NULL; diff --git a/libretro/platform.c b/libretro/platform.c index 0b0aabe..ffdfcad 100644 --- a/libretro/platform.c +++ b/libretro/platform.c @@ -46,7 +46,7 @@ extern int UI_is_active; static int swap_joysticks = FALSE; int PLATFORM_kbd_joy_0_enabled = TRUE; /* enabled by default, doesn't hurt */ -int PLATFORM_kbd_joy_1_enabled = FALSE; /* disabled, would steal normal keys */ +int PLATFORM_kbd_joy_1_enabled = TRUE;//FALSE; /* disabled, would steal normal keys */ extern unsigned char MXjoy[2]; // joy extern int mbt[16]; extern int retro_sound_finalized; @@ -255,6 +255,7 @@ static void get_platform_PORT(unsigned char *s0, unsigned char *s1) stick0 &= INPUT_STICK_BACK; } if (PLATFORM_kbd_joy_1_enabled) { + if (MXjoy[1]&0x04) stick1 &= INPUT_STICK_LEFT; if (MXjoy[1]&0x08) @@ -263,6 +264,7 @@ static void get_platform_PORT(unsigned char *s0, unsigned char *s1) stick1 &= INPUT_STICK_FORWARD; if (MXjoy[1]&0x02) stick1 &= INPUT_STICK_BACK; + } if (swap_joysticks) {