All stuff so far

This commit is contained in:
simon.kagstrom 2009-01-02 14:45:23 +00:00
parent e361a0f504
commit e0e0d8ffc0
8 changed files with 65 additions and 27 deletions

View File

@ -33,7 +33,7 @@ LDFLAGS = -L$(DEVKITPRO)/SDL/lib -g $(MACHDEP) -Wl,-Map,$(notdir $@).map
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# any extra libraries we wish to link with the project # any extra libraries we wish to link with the project
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
LIBS := -lSDL_ttf -lSDL_mixer -lSDL_image -ljpeg -lpng -lz -lSDL -lfreetype -lfat -lwiiuse -lbte -logc -lm LIBS := -lSDL_image -ljpeg -lpng -lz -lSDL -lfat -lwiiuse -lbte -logc -lm
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# list of directories containing libraries, this must be the top level containing # list of directories containing libraries, this must be the top level containing

View File

@ -146,7 +146,6 @@ private:
#ifdef GEKKO #ifdef GEKKO
double speed_index; double speed_index;
int joystick_key_binding[5]; /* A, B, Plus, Minus, 1 */
#endif #endif
#ifdef __unix #ifdef __unix
@ -167,8 +166,6 @@ public:
void select_disc(); void select_disc();
void bind_key(); void bind_key();
void display_options(); void display_options();
int display_type;
#endif #endif
#ifdef WIN32 #ifdef WIN32

View File

@ -68,7 +68,7 @@ void C64::c64_ctor1(void)
this->fake_key_keytime = 5; this->fake_key_keytime = 5;
this->fake_key_type = 0; this->fake_key_type = 0;
this->menu_font = new Font("/apps/frodo/fonts.png"); this->menu_font = new Font("/apps/frodo/fonts.bmp");
if (!this->menu_font) if (!this->menu_font)
{ {
fprintf(stderr, "Unable to open font\n" ); fprintf(stderr, "Unable to open font\n" );
@ -195,7 +195,7 @@ void C64::bind_key()
int key = menu_select(screen, &key_menu, ~0, NULL); int key = menu_select(screen, &key_menu, ~0, NULL);
#if defined(GEKKO) #if defined(GEKKO)
this->joystick_key_binding[opt] = kcs[key]; ThePrefs.JoystickKeyBinding[opt] = kcs[key];
#endif #endif
} }
menu_fini(&bind_key_menu); menu_fini(&bind_key_menu);
@ -210,7 +210,7 @@ void C64::display_options()
0, 0, DISPLAY_X, DISPLAY_Y); 0, 0, DISPLAY_X, DISPLAY_Y);
int opt = menu_select(screen, &display_menu, ~0, NULL); int opt = menu_select(screen, &display_menu, ~0, NULL);
if (opt >= 0) if (opt >= 0)
this->display_type = opt; ThePrefs.DisplayOption = opt;
menu_fini(&display_menu); menu_fini(&display_menu);
} }
@ -372,21 +372,23 @@ uint8 C64::poll_joystick(int port)
j &= 0xef; // Button j &= 0xef; // Button
if (held & WPAD_BUTTON_HOME) if (held & WPAD_BUTTON_HOME)
this->enter_menu(); this->enter_menu();
if (held & WPAD_BUTTON_A)
exit(1);
if ( (held & WPAD_BUTTON_A) && this->joystick_key_binding[0]) if ( (held & WPAD_BUTTON_A) && ThePrefs.JoystickKeyBinding[0])
TheDisplay->FakeKeyPress(this->joystick_key_binding[0], TheDisplay->FakeKeyPress(ThePrefs.JoystickKeyBinding[0],
false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL); false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL);
if ( (held & WPAD_BUTTON_B) && this->joystick_key_binding[1]) if ( (held & WPAD_BUTTON_B) && ThePrefs.JoystickKeyBinding[1])
TheDisplay->FakeKeyPress(this->joystick_key_binding[1], TheDisplay->FakeKeyPress(ThePrefs.JoystickKeyBinding[1],
false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL); false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL);
if ( (held & WPAD_BUTTON_PLUS) && this->joystick_key_binding[2]) if ( (held & WPAD_BUTTON_PLUS) && ThePrefs.JoystickKeyBinding[2])
TheDisplay->FakeKeyPress(this->joystick_key_binding[2], TheDisplay->FakeKeyPress(ThePrefs.JoystickKeyBinding[2],
false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL); false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL);
if ( (held & WPAD_BUTTON_MINUS) && this->joystick_key_binding[3]) if ( (held & WPAD_BUTTON_MINUS) && ThePrefs.JoystickKeyBinding[3])
TheDisplay->FakeKeyPress(this->joystick_key_binding[3], TheDisplay->FakeKeyPress(ThePrefs.JoystickKeyBinding[3],
false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL); false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL);
if ( (held & WPAD_BUTTON_1) && this->joystick_key_binding[4]) if ( (held & WPAD_BUTTON_1) && ThePrefs.JoystickKeyBinding[4])
TheDisplay->FakeKeyPress(this->joystick_key_binding[4], TheDisplay->FakeKeyPress(ThePrefs.JoystickKeyBinding[4],
false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL); false, TheCIA1->KeyMatrix, TheCIA1->RevMatrix, NULL);

View File

@ -111,7 +111,6 @@ C64Display::C64Display(C64 *the_c64) : TheC64(the_c64)
C64Display::~C64Display() C64Display::~C64Display()
{ {
SDL_Quit(); SDL_Quit();
TTF_Quit();
} }
@ -404,6 +403,8 @@ static void translate_key(SDLKey key, bool key_up, uint8 *key_matrix, uint8 *rev
case SDLK_KP_DIVIDE: c64_key = MATRIX(6,7); break; case SDLK_KP_DIVIDE: c64_key = MATRIX(6,7); break;
case SDLK_KP_ENTER: c64_key = MATRIX(0,1); break; case SDLK_KP_ENTER: c64_key = MATRIX(0,1); break;
default: break;
} }
if (c64_key < 0) if (c64_key < 0)

View File

@ -78,6 +78,9 @@ Prefs::Prefs()
this->JoystickKeyBinding[1] = 0; this->JoystickKeyBinding[1] = 0;
this->JoystickKeyBinding[2] = 0; this->JoystickKeyBinding[2] = 0;
this->JoystickKeyBinding[3] = 0; this->JoystickKeyBinding[3] = 0;
this->JoystickKeyBinding[4] = 0;
this->DisplayOption = 0;
#endif #endif
} }
@ -138,6 +141,8 @@ bool Prefs::operator==(const Prefs &rhs) const
&& this->JoystickKeyBinding[1] == rhs.JoystickKeyBinding[1] && this->JoystickKeyBinding[1] == rhs.JoystickKeyBinding[1]
&& this->JoystickKeyBinding[2] == rhs.JoystickKeyBinding[2] && this->JoystickKeyBinding[2] == rhs.JoystickKeyBinding[2]
&& this->JoystickKeyBinding[3] == rhs.JoystickKeyBinding[3] && this->JoystickKeyBinding[3] == rhs.JoystickKeyBinding[3]
&& this->JoystickKeyBinding[4] == rhs.JoystickKeyBinding[4]
&& this->DisplayOption == rhs.DisplayOption
#endif #endif
); );
} }
@ -312,6 +317,10 @@ void Prefs::Load(char *filename)
JoystickKeyBinding[2] = atoi(value); JoystickKeyBinding[2] = atoi(value);
else if (!strcmp(keyword, "JoystickKeyBinding3")) else if (!strcmp(keyword, "JoystickKeyBinding3"))
JoystickKeyBinding[3] = atoi(value); JoystickKeyBinding[3] = atoi(value);
else if (!strcmp(keyword, "JoystickKeyBinding4"))
JoystickKeyBinding[4] = atoi(value);
else if (!strcmp(keyword, "DisplayOption"))
DisplayOption = atoi(value);
#endif #endif
} }
} }
@ -414,6 +423,9 @@ bool Prefs::Save(char *filename)
fprintf(file, "JoystickKeyBinding1 = %d\n", JoystickKeyBinding[1]); fprintf(file, "JoystickKeyBinding1 = %d\n", JoystickKeyBinding[1]);
fprintf(file, "JoystickKeyBinding2 = %d\n", JoystickKeyBinding[2]); fprintf(file, "JoystickKeyBinding2 = %d\n", JoystickKeyBinding[2]);
fprintf(file, "JoystickKeyBinding3 = %d\n", JoystickKeyBinding[3]); fprintf(file, "JoystickKeyBinding3 = %d\n", JoystickKeyBinding[3]);
fprintf(file, "JoystickKeyBinding4 = %d\n", JoystickKeyBinding[4]);
fprintf(file, "DisplayOption = %d\n", DisplayOption);
#endif #endif
fclose(file); fclose(file);
ThePrefsOnDisk = *this; ThePrefsOnDisk = *this;

View File

@ -116,7 +116,8 @@ private:
#endif #endif
#ifdef GEKKO #ifdef GEKKO
int JoystickKeyBinding[4]; int JoystickKeyBinding[5];
int DisplayOption;
#endif #endif
}; };

View File

@ -1,11 +1,42 @@
#include <SDL_image.h> #include <SDL_image.h>
#include <SDL.h> #include <SDL.h>
#include <SDL_rwops.h>
#include <stdio.h>
#include "bitmap-font.h" #include "bitmap-font.h"
Font::Font(std::string src_file) Font::Font(std::string src_file)
{ {
m_pFontList = SDL_DisplayFormatAlpha(IMG_Load(src_file.c_str())); Uint8 *data = (Uint8*)malloc(2 * 1024*1024);
FILE *fp = fopen(src_file.c_str(), "r");
SDL_RWops *rw;
if (!fp) {
fprintf(stderr, "Could not open fonts\n");
SDL_Delay(1000);
free(data);
exit(1);
}
else
fprintf(stderr, "I could open fonts manually\n");
fread(data, 1, 2 * 1024 * 1024, fp);
rw = SDL_RWFromMem(data, 2 * 1024 * 1024);
if (!rw) {
fprintf(stderr, "Could not create RW: %s\n", SDL_GetError());
exit(1);
}
SDL_Surface *surf = IMG_Load_RW(rw, 0);
if (!surf) {
fprintf(stderr, "Could not load %s\n", src_file.c_str());
SDL_Delay(1000);
exit(1);
}
m_pFontList = surf;
SDL_FreeRW(rw);
free(data);
} }
Font::~Font(void) Font::~Font(void)

View File

@ -33,19 +33,13 @@ extern "C" int main(int argc, char **argv)
return 0; return 0;
} }
fflush(stdout); fflush(stdout);
fatInitDefault();
// Init SDL // Init SDL
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) { if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0) {
fprintf(stderr, "Couldn't initialize SDL (%s)\n", SDL_GetError()); fprintf(stderr, "Couldn't initialize SDL (%s)\n", SDL_GetError());
return 0; return 0;
} }
if (TTF_Init() < 0)
{
fprintf(stderr, "Unable to init TTF: %s\n", TTF_GetError() );
return 0;
}
fatInitDefault();
if (WPAD_Init() != WPAD_ERR_NONE) if (WPAD_Init() != WPAD_ERR_NONE)
{ {
fprintf(stderr, "Failed initializing controllers\n"); fprintf(stderr, "Failed initializing controllers\n");