Talk:SDL Wii: Difference between revisions
No edit summary |
|||
Line 27: | Line 27: | ||
[[User:Akirahedgehog|Akirahedgehog]] 09:49, 12 August 2008 (Central Time) | [[User:Akirahedgehog|Akirahedgehog]] 09:49, 12 August 2008 (Central Time) | ||
------------------------------------ | |||
Really, there are no many differances with a pc version. | |||
Just include devkitppc headers to use with sdl (fat, wiiuse...) | |||
Anyway, there is a blue screen exemple, quit with HOME | |||
#include <stdlib.h> | |||
#include <time.h> | |||
#include <SDL/sdl.h> | |||
//#include <SDL/sdl_mixer.h> | |||
//#include <SDL/sdl_ttf.h> | |||
#include <gccore.h> | |||
#include <wiiuse/wpad.h> | |||
int main(int argc, char** argv) | |||
{ | |||
SDL_Surface *screen=NULL; | |||
srand(time(NULL)); | |||
// initialize SDL video | |||
if ( SDL_Init( SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0 ) | |||
{ | |||
fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError() ); | |||
exit(EXIT_FAILURE); | |||
} | |||
fatInitDefault(); //for read files (level, serialized structs...) | |||
WPAD_Init(); | |||
// make sure SDL cleans up before exit | |||
atexit(SDL_Quit); | |||
SDL_ShowCursor(SDL_DISABLE); | |||
// create a new window | |||
screen = SDL_SetVideoMode(480, 480, 16, SDL_DOUBLEBUF); | |||
if ( !screen ) | |||
{ | |||
fprintf(stderr, "Unable to set video: %s\n", SDL_GetError()); | |||
exit(EXIT_FAILURE); | |||
} | |||
state_in_game(screen); | |||
return 0; | |||
} | |||
void state_in_game(SDL_Surface *screen) | |||
{ | |||
int tick_count=0; | |||
int tick_trigger=15; | |||
bool done = false; | |||
SDL_EnableKeyRepeat(10,10); | |||
while (!done) | |||
{ | |||
SDL_Event event; | |||
while (SDL_PollEvent(&event)) | |||
{ | |||
switch ( event.type ) | |||
{ | |||
case SDL_QUIT: | |||
done = true; | |||
break; | |||
} | |||
} | |||
WPAD_ScanPads(); | |||
u32 held = WPAD_ButtonsHeld(WPAD_CHAN_0); | |||
if(held & WPAD_BUTTON_HOME){ | |||
done=true; | |||
} | |||
tick_count = SDL_GetTicks(); | |||
if (tick_count > tick_trigger) | |||
{ | |||
tick_trigger = tick_count; | |||
SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 50, 150)); | |||
SDL_Flip(screen); | |||
} //end thick | |||
} //end while | |||
SDL_Quit(); | |||
exit(EXIT_SUCCESS); | |||
} | |||
== Bad libs order ? == | == Bad libs order ? == |
Revision as of 20:16, 21 October 2008
News from DCEmu
SDL Wii Ports Released
July 31st, 2008, 03:09 Posted By: wraggster
ilidrissiamine has released several new items of interest to wii developers:
This project will introduce many ports of SDL games to the Nintendo Wii and will provide various libraries for SDL developers that extend it.
- SDL_gfx-2.0.17.7z SDL_gfx port to the Nintendo Wii
- SDL_ttf-2.0.9.7z SDL_ttf port to the Nintendo Wii with its Freetype port
- SDL_image.7z Slightly modified SDL_image port to accept various types (libjpeg required)
- libjpeg.7z libjpeg port to the Nintendo Wii
http://code.google.com/p/sdl-wii-ports/downloads/list
Those are the ones are already on the page. I think that the only reason wraggster made that post was because he saw this wiki page. --vader347 00:19, 1 August 2008 (CEST)
Ah you are right. Somehow I missed the second download link! CarstenK 05:03, 1 August 2008 (CEST)
Example?
Can someone please write an example of how SDL works with devkitpro please? Thanks ahead of time!
Akirahedgehog 09:49, 12 August 2008 (Central Time)
Really, there are no many differances with a pc version. Just include devkitppc headers to use with sdl (fat, wiiuse...) Anyway, there is a blue screen exemple, quit with HOME
- include <stdlib.h>
- include <time.h>
- include <SDL/sdl.h>
//#include <SDL/sdl_mixer.h> //#include <SDL/sdl_ttf.h>
- include <gccore.h>
- include <wiiuse/wpad.h>
int main(int argc, char** argv)
{
SDL_Surface *screen=NULL; srand(time(NULL));
// initialize SDL video if ( SDL_Init( SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0 ) { fprintf(stderr, "Unable to init SDL: %s\n", SDL_GetError() ); exit(EXIT_FAILURE); }
fatInitDefault(); //for read files (level, serialized structs...) WPAD_Init();
// make sure SDL cleans up before exit atexit(SDL_Quit); SDL_ShowCursor(SDL_DISABLE);
// create a new window screen = SDL_SetVideoMode(480, 480, 16, SDL_DOUBLEBUF); if ( !screen ) { fprintf(stderr, "Unable to set video: %s\n", SDL_GetError()); exit(EXIT_FAILURE); }
state_in_game(screen);
return 0;
}
void state_in_game(SDL_Surface *screen) {
int tick_count=0; int tick_trigger=15;
bool done = false;
SDL_EnableKeyRepeat(10,10);
while (!done) { SDL_Event event;
while (SDL_PollEvent(&event)) { switch ( event.type ) { case SDL_QUIT: done = true; break; } }
WPAD_ScanPads();
u32 held = WPAD_ButtonsHeld(WPAD_CHAN_0);
if(held & WPAD_BUTTON_HOME){ done=true; }
tick_count = SDL_GetTicks(); if (tick_count > tick_trigger) { tick_trigger = tick_count; SDL_FillRect(screen, 0, SDL_MapRGB(screen->format, 0, 50, 150));
SDL_Flip(screen); } //end thick
} //end while
SDL_Quit(); exit(EXIT_SUCCESS); }
Bad libs order ?
I got the following error :
linking ... blastguy_wii_b1.elf i:/usr/devkitpro/libogc/lib\libSDL.a(SDL_gamecube_main.o): In function `main': c:\dev\apps\devkitPro\SDL-Port/src/main/gamecube/SDL_gamecube_main.c:59: multipl e definition of `main' i:/usr/devkitpro/libogc/lib\libfreetype.a(gxvfgen.o):d:/Programming/WiiDev/freet ype-2.3.6/source/gxvalid/gxvfgen.c:444: first defined here i:/usr/devkitpro/libogc/lib\libfreetype.a(gxvfgen.o): In function `main': gxvfgen.c:(.text.main+0xc4): undefined reference to `ft_strncmp' collect2: ld returned 1 exit status make[1]: *** [/i/Documents/developpement/test_sdl_plus_ttf.elf] Error 1 make: *** [build] Error 2
when -lfreetype is included before -lSDL, the right order should be
LIBS := -lSDL_ttf -lSDL_mixer -lSDL_image -ljpeg -lpng -lz -lSDL -lfreetype -lfat -lwiiuse -lbte -logc -lm
Please confime that before make the change on the page.
--TheDrev 15:25, 15 October 2008 (CEST)