Joypad as joystick as default, FBZX Wii for Window can be installed everywhere

This commit is contained in:
fabio.olimpieri 2013-04-07 07:12:12 +00:00
parent 24c37cf1ac
commit f931efe19e
5 changed files with 75 additions and 33 deletions

View File

@ -29,6 +29,7 @@
#include "computer.h" #include "computer.h"
#include "VirtualKeyboard.h" #include "VirtualKeyboard.h"
#include "menu_sdl.h" #include "menu_sdl.h"
#include "emulator.h"
#include<SDL/SDL_image.h> #include<SDL/SDL_image.h>
#ifdef GEKKO #ifdef GEKKO
@ -73,35 +74,46 @@ void VirtualKeyboard_init(SDL_Surface *screen)
VirtualKeyboard.sel_x = 64; VirtualKeyboard.sel_x = 64;
VirtualKeyboard.sel_y = 100; VirtualKeyboard.sel_y = 100;
vkb_is_init = -1; vkb_is_init = -1;
char *image_path;
tmp_surface=IMG_Load("/fbzx-wii/fbzx/Spectrum_keyboard.png"); image_path=myfile("fbzx/Spectrum_keyboard.png");
tmp_surface=IMG_Load(image_path);
free(image_path);
if (tmp_surface == NULL) {printf("Impossible to load keyboard image\n"); return;} if (tmp_surface == NULL) {printf("Impossible to load keyboard image\n"); return;}
image_kbd=SDL_DisplayFormat(tmp_surface); image_kbd=SDL_DisplayFormat(tmp_surface);
SDL_FreeSurface (tmp_surface); SDL_FreeSurface (tmp_surface);
image_path=myfile("fbzx/symbol_shift.png");
tmp_surface=IMG_Load("/fbzx-wii/fbzx/symbol_shift.png"); tmp_surface=IMG_Load(image_path);
free(image_path);
if (tmp_surface == NULL) {printf("Impossible to load symbol shift image\n"); return;} if (tmp_surface == NULL) {printf("Impossible to load symbol shift image\n"); return;}
image_sym=SDL_DisplayFormat(tmp_surface); image_sym=SDL_DisplayFormat(tmp_surface);
SDL_FreeSurface (tmp_surface); SDL_FreeSurface (tmp_surface);
image_path=myfile("fbzx/caps_shift.png");
tmp_surface=IMG_Load("/fbzx-wii/fbzx/caps_shift.png"); tmp_surface=IMG_Load(image_path);
free(image_path);
if (tmp_surface == NULL) {printf("Impossible to load caps shift image\n"); return;} if (tmp_surface == NULL) {printf("Impossible to load caps shift image\n"); return;}
image_caps=SDL_DisplayFormat(tmp_surface); image_caps=SDL_DisplayFormat(tmp_surface);
SDL_FreeSurface (tmp_surface); SDL_FreeSurface (tmp_surface);
tmp_surface=IMG_Load("/fbzx-wii/fbzx/Spectrum_keyboard_small.png"); image_path=myfile("fbzx/Spectrum_keyboard_small.png");
tmp_surface=IMG_Load(image_path);
free(image_path);
if (tmp_surface == NULL) {printf("Impossible to load keyboard small image\n"); return;} if (tmp_surface == NULL) {printf("Impossible to load keyboard small image\n"); return;}
image_kbd_small=SDL_DisplayFormat(tmp_surface); image_kbd_small=SDL_DisplayFormat(tmp_surface);
SDL_FreeSurface (tmp_surface); SDL_FreeSurface (tmp_surface);
tmp_surface=IMG_Load("/fbzx-wii/fbzx/symbol_shift_small.png"); image_path=myfile("fbzx/symbol_shift_small.png");
tmp_surface=IMG_Load(image_path);
free(image_path);
if (tmp_surface == NULL) {printf("Impossible to load symbol shift small image\n"); return;} if (tmp_surface == NULL) {printf("Impossible to load symbol shift small image\n"); return;}
image_sym_small=SDL_DisplayFormat(tmp_surface); image_sym_small=SDL_DisplayFormat(tmp_surface);
SDL_FreeSurface (tmp_surface); SDL_FreeSurface (tmp_surface);
tmp_surface=IMG_Load("/fbzx-wii/fbzx/caps_shift_small.png"); image_path=myfile("fbzx/caps_shift_small.png");
tmp_surface=IMG_Load(image_path);
free(image_path);
if (tmp_surface == NULL) {printf("Impossible to load caps shift small image\n"); return;} if (tmp_surface == NULL) {printf("Impossible to load caps shift small image\n"); return;}
image_caps_small=SDL_DisplayFormat(tmp_surface); image_caps_small=SDL_DisplayFormat(tmp_surface);
SDL_FreeSurface (tmp_surface); SDL_FreeSurface (tmp_surface);

View File

@ -99,6 +99,8 @@ void computer_init () { //Called only on start-up
ordenador.videosystem = 0; //PAL ordenador.videosystem = 0; //PAL
ordenador.joystick[0] = 1; //Kemposton ordenador.joystick[0] = 1; //Kemposton
ordenador.joystick[1] = 0; // Cursor ordenador.joystick[1] = 0; // Cursor
ordenador.joypad_as_joystick[0]= 1;
ordenador.joypad_as_joystick[1]= 1;
ordenador.vk_auto = 0; //Vk called by + ordenador.vk_auto = 0; //Vk called by +
ordenador.vk_rumble = 1; //enabled ordenador.vk_rumble = 1; //enabled
ordenador.rumble[0] = 0; ordenador.rumble[0] = 0;

View File

@ -242,7 +242,12 @@ unsigned char InitNetwork()
int load_zxspectrum_picture() int load_zxspectrum_picture()
{ {
image=IMG_Load("/fbzx-wii/fbzx/ZXSpectrum48k.png"); char *image_path;
image_path=myfile("fbzx/ZXSpectrum48k.png");
image=IMG_Load(image_path);
free(image_path);
if (image == NULL) {printf("Impossible to load image\n"); return 0;} if (image == NULL) {printf("Impossible to load image\n"); return 0;}
@ -307,25 +312,17 @@ void SDL_Fullscreen_Switch()
FILE *myfopen(char *filename,char *mode) { FILE *myfopen(char *filename,char *mode) {
char tmp[4096]; char path[MAX_PATH_LENGTH];
FILE *fichero; FILE *fichero;
int length;
fichero=fopen(filename,mode); strcpy(path,getenv("HOME"));
if (fichero!=NULL) { length=strlen(path);
return (fichero); if ((length>0)&&(path[length-1]!='/'))
} strcat(path,"/");
sprintf(tmp,"/usr/share/%s",filename); strcat(path,filename);
fichero=fopen(tmp,mode); printf("opening %s\n",path);
if (fichero!=NULL) { fichero=fopen(path,mode);
return (fichero);
}
sprintf(tmp,"/usr/local/share/%s",filename);
fichero=fopen(tmp,mode);
if (fichero!=NULL) {
return (fichero);
}
sprintf(tmp,"/fbzx-wii/%s",filename);
fichero=fopen(tmp,mode);
if (fichero!=NULL) { if (fichero!=NULL) {
return (fichero); return (fichero);
} }
@ -333,6 +330,22 @@ FILE *myfopen(char *filename,char *mode) {
return (NULL); return (NULL);
} }
char *myfile(char *filename) {
char *path;
int length;
path=(char *)malloc(MAX_PATH_LENGTH);
strcpy(path,getenv("HOME"));
length=strlen(path);
if ((length>0)&&(path[length-1]!='/'))
strcat(path,"/");
strcat(path,filename);
return (path);
}
char *load_a_rom(char **filenames) { char *load_a_rom(char **filenames) {
char **pointer; char **pointer;
@ -786,7 +799,7 @@ void load_config_network(struct computer *object) {
unsigned char smb_enable=0, ftp_enable=0, FTPPassive=0; unsigned char smb_enable=0, ftp_enable=0, FTPPassive=0;
unsigned int FTPPort=21; unsigned int FTPPort=21;
fconfig = fopen("/fbzx-wii/fbzx.net","rb"); fconfig = myfopen("fbzx.net","rb");
if (fconfig==NULL) { if (fconfig==NULL) {
return; return;
} }
@ -1190,7 +1203,16 @@ int main(int argc,char *argv[])
#endif #endif
#ifdef MINGW #ifdef MINGW
if(!getenv("HOME")) putenv("HOME=/fbzx-wii"); char path_home[MAX_PATH_LENGTH];
int i;
strcpy(path_home,"HOME=");
getcwd(path_home+5, MAX_PATH_LENGTH-5);
for (i=4; path_home[i]!=0;i++)
if (path_home[i]=='\\') path_home[i]='/';
printf("%s\n",path_home);
putenv(path_home);
#endif #endif
#ifdef GEKKO #ifdef GEKKO

View File

@ -56,6 +56,7 @@ int load_config(struct computer *object, char *filename);
int save_config(struct computer *object, char *filename); int save_config(struct computer *object, char *filename);
int save_config_game(struct computer *object, char *filename, int overwrite); int save_config_game(struct computer *object, char *filename, int overwrite);
FILE *myfopen(char *filename,char *mode); FILE *myfopen(char *filename,char *mode);
char *myfile(char *filename);
void init_sdl(); void init_sdl();
void init_sound(); void init_sound();
void init_screen(int resx,int resy,int depth,int fullscreen,int dblbuffer,int hwsurface); void init_screen(int resx,int resy,int depth,int fullscreen,int dblbuffer,int hwsurface);

View File

@ -86,7 +86,6 @@ static SDL_Surface *real_screen;
#define IS_SUBMENU(p_msg) ( (p_msg)[0] == '^' ) #define IS_SUBMENU(p_msg) ( (p_msg)[0] == '^' )
#define IS_TEXT(p_msg) ( (p_msg)[0] == '#' || (p_msg)[0] == ' ' ) #define IS_TEXT(p_msg) ( (p_msg)[0] == '#' || (p_msg)[0] == ' ' )
#define IS_MARKER(p_msg) ( (p_msg)[0] == '@' ) #define IS_MARKER(p_msg) ( (p_msg)[0] == '@' )
#define FONT_PATH "/fbzx-wii/fbzx/FreeMono.ttf"
static int is_inited = 0; static int is_inited = 0;
static TTF_Font *menu_font16, *menu_font20, *menu_font8, *menu_font10; static TTF_Font *menu_font16, *menu_font20, *menu_font8, *menu_font10;
@ -1492,12 +1491,18 @@ static TTF_Font *read_font(const char *path, int font_size)
void font_init() void font_init()
{ {
char *font_path;
TTF_Init(); TTF_Init();
font_path=myfile("fbzx/FreeMono.ttf");
menu_font16 = read_font(FONT_PATH, 16); menu_font16 = read_font(font_path, 16);
menu_font20 = read_font(FONT_PATH, 20); menu_font20 = read_font(font_path, 20);
menu_font8 = read_font(FONT_PATH, 8); menu_font8 = read_font(font_path, 8);
menu_font10 = read_font(FONT_PATH, 10); menu_font10 = read_font(font_path, 10);
free(font_path);
} }
void menu_init(SDL_Surface *screen) void menu_init(SDL_Surface *screen)