Difference between revisions of "Talk:SDL Wii"

From WiiBrew
Jump to navigation Jump to search
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

  1. include <stdlib.h>
  2. include <time.h>
  1. include <SDL/sdl.h>

//#include <SDL/sdl_mixer.h> //#include <SDL/sdl_ttf.h>

  1. include <gccore.h>
  2. 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)