Difference between revisions of "Talk:SDL Wii"

From WiiBrew
Jump to navigation Jump to search
(→‎How to port?: +1 for a tutorial on SDL)
(archive discussions)
Line 1: Line 1:
News from [http://www.dcemu.co.uk/sdl-wii-ports-released-127263.html DCEmu]
+
{{Archive box|[[/Archive 1]]}}
  
==SDL Wii Ports Released==
+
__TOC__
 
 
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. --[[User:Vader347|vader347]] 00:19, 1 August 2008 (CEST)
 
 
 
Ah you are right. Somehow I missed the second download link! [[User:CarstenK|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!
 
 
 
[[User:Akirahedgehog|Akirahedgehog]] 09:49, 12 August 2008 (Central Time)
 
 
 
 
 
----
 
 
 
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
 
 
 
 
 
<source lang="C">
 
#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(640, 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;
 
            }
 
        }
 
 
 
        //With SDL_Event, the wiimote is detected as a mouse, to use wiiuse/wpad to handle inputs
 
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 tick
 
 
    }  //end while
 
 
SDL_Quit();
 
exit(EXIT_SUCCESS);
 
}
 
</source>
 
 
 
--[[User:TheDrev|TheDrev]] 18:24, 21 October 2008 (UTC)
 
 
 
== 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
 
 
 
I changed the lib order in the main page
 
 
 
--[[User:TheDrev|TheDrev]] 15:25, 15 October 2008 (CEST)
 
 
 
:Your libfreetype is either buggy, or was built incorrectly.  You shouldn't have a main() in this library.--[[User:Michael|Michael]] 15:05, 13 April 2009 (UTC)
 
 
 
I grabbed the lib included in libwiisprite, Apparently a .o having a main function comes from a test program is included in the .a
 
I've removed the object with $ ar d libfreetype.a gxvfgen.o  It should have resolved the linker error
 
--[[User:TheDrev|TheDrev]] 09:07, 15 April 2009 (UTC)
 
:Nice, thanks for that tip with ar.  That's useful to know. --[[User:Michael|Michael]]
 
 
 
== Threads? ==
 
 
 
This is a great port, and I'm sure it will help porting go a lot smoother for some people.
 
However, there is no threads support. I did find a way around this (although, it makes it slower, because no threads) but I would greatly appreciate if someone added thread support to this. It'll make a bunch of ports a lot faster. Thanks --[[User:SquidMan|SquidMan]] 02:00, 17 December 2008 (UTC)
 
 
 
[[User:Yohanes|Yohanes]] has '''added threads''' and '''USB keyboard''' support to the SDL library while porting [[WiiApple|an apple ][e SDL based emulator]] to the wii.  You can find his SDL code here [http://tinyhack.com/wii/wiiapple/ http://tinyhack.com/wii/wiiapple/] 11, January, 2009. <small>—Preceding unsigned comment added by [[User:Nowhereman|Nowhereman]] ([[User talk:Nowhereman|talk]] • [[Special:Contributions/Nowhereman|contribs]]) 21:53, 11 January 2009 (UTC)</small>
 
 
 
== sdl-config ==
 
 
 
It looks like sdl-config needs to be located in bin/ not in lib/. It worked for me after putting it in $DEVKITPPC/bin. The paths in sdl-config seems to be hard-coded "-L/c/dev/apps/devkitPro/libogc/lib/wii" etc - should be dependent on location of libogc and devkitpro.
 
 
 
:Right, sdl-config is just a shell script for handling includes, flags, etc more easily, the important thing is just to have sdl-config in your PATH
 
  --with-sdl-prefix=PFX  Prefix where SDL is installed (optional)
 
  --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)
 
are maybe what set the path before compiling the lib...
 
 
 
 
 
--[[User:TheDrev|TheDrev]] 09:24, 15 April 2009 (UTC)
 
  
 
== How to port? ==
 
== How to port? ==

Revision as of 21:40, 1 May 2009

How to port?

Hi. How do I port games with this? Would I be able to port e.g. SuperTux? What is need and what is to do? Ehhhm, I just read I should use my good old friend google to find out. --Woku 13:07, 12 January 2009 (UTC)

To port a game, you must first have its source code. Then change the events that use the keyboard or the mouse and replace them with wiimote controls from wiiuse. --Sal3000 11:20, 24 April 2009 (UTC)

Someone should write a more thorough tutorial! There's still lots of SDL stuff people could port. --Tantric 15:34, 24 April 2009 (UTC)
As someone who just finished re-writing a great portion of SDL-Wii I think you're a great candidate! ;) Seriously though I would love to see a good tutorial or even just an API reference written. I am madly reading the main SDL tutorial in the hope of figuring out if I can attempt to port the Intellivision emulator jzInTV to the Wii, a programme that thankfully already uses SDL. My biggest problem, aside from never using SDL before, is emulation of the 12+ button keypad. Anyway bring on a good tutorial / reference it would certainly help me in my quest - if I ever really start it. Ensign R 02:07, 1 May 2009 (UTC)

Image

Hello,

I just managed SDL to work on my wii, and i've made a little program with controller input. I've made it so, that it will show a red background when i push on the right button. What i want is to show a photo when i press the right button. How can i do that? Do I need to include SDL_image? And what's the function i have to use?

Thanks, GabberNL 14:25, 28 April 2009 (UTC)