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==
| + | {{notice|'''This page is reserved for feature requests, and general discussion about the page itself. Please ask questions on the [http://forum.wiibrew.org WiiBrew Forums], and please report bugs on the official [http://code.google.com/p/sdl-wii/issues/ Google Code] site.'''}} |
| | | |
− | July 31st, 2008, 03:09 Posted By: wraggster
| + | __TOC__ |
| | | |
− | ilidrissiamine has released several new items of interest to wii developers:
| + | == 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. |
| + | --[[User:Woku|Woku]] 13:07, 12 January 2009 (UTC) |
| | | |
− | This project will introduce many ports of SDL games to the Nintendo Wii and will provide various libraries for SDL developers that extend it.
| + | 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. --[[User:Salehhamadeh|Sal3000]] 11:20, 24 April 2009 (UTC) |
| + | : Someone should write a more thorough tutorial! There's still lots of SDL stuff people could port. --[[User:Tantric|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. [[User:Ensign R|Ensign R]] 02:07, 1 May 2009 (UTC) |
| | | |
− | * SDL_gfx-2.0.17.7z SDL_gfx port to the Nintendo Wii
| + | == __static_initialization_and_destruction_0 error == |
− | * 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
| |
| | | |
| + | When my program is about to begin linking it gets this error: |
| + | <pre> |
| + | File:main.o: In function `__static_initialization_and_destruction_0': |
| + | j:/D0g_Engine/source/main.cpp:11: undefined reference to `Timer::Timer()' |
| + | main.o: In function `SDL_main': |
| + | j:/D0g_Engine/source/main.cpp:15: undefined reference to `cGFXCore::cGFXCore()' |
| + | j:/D0g_Engine/source/main.cpp:22: undefined reference to `cObjectController::cObjectController()' |
| + | j:/D0g_Engine/source/main.cpp:25: undefined reference to `initInput()' |
| + | </pre> |
| + | And so on... |
| | | |
− | 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)
| + | So in short, basically every function/class I've defined doesn't appear to exist to the linker, this code compiles fine for Windows so is there a setting in the makefile or something else I missed to avoid this? |
| | | |
− | Ah you are right. Somehow I missed the second download link! [[User:CarstenK|CarstenK]] 05:03, 1 August 2008 (CEST)
| + | Thanks in advance, [[User:Doogie|Doogie]] 10:31, 3 May 2009 (UTC) |
| | | |
− | ==Example?== | + | == Cannot compile the template == |
| | | |
− | Can someone please write an example of how SDL works with devkitpro please?
| + | I copied the template and all the sdl includes with the libs and dependencies into the libogc folder. I tried to compile it using programmers notepad. |
− | Thanks ahead of time!
| |
| | | |
− | [[User:Akirahedgehog|Akirahedgehog]] 09:49, 12 August 2008 (Central Time)
| + | This is the output: |
| + | <pre> |
| + | > "make" |
| + | template.c |
| | | |
| + | linking ... SDL_template.elf |
| | | |
− | ----
| + | c:/devkitPro/libogc/lib/wii\libSDL.a(SDL_wii_main.o): In function `main': |
| | | |
− | There are no many differances with a pc version.
| + | C:\Users\Daryl\Desktop\Projects\sdl-wii\SDL/src/main/wii/SDL_wii_main.c:68: undefined reference to `MOUSE_Init' |
− | Just include devkitppc headers to use with sdl (fat, wiiuse...)
| |
− | Anyway, there is a blue screen exemple, quit with HOME
| |
| | | |
| + | C:\Users\Daryl\Desktop\Projects\sdl-wii\SDL/src/main/wii/SDL_wii_main.c:69: undefined reference to `KEYBOARD_Init' |
| | | |
− | <source lang="C">
| + | c:/devkitPro/libogc/lib/wii\libSDL.a(SDL_wiievents.o): In function `PumpEvents': |
− | #include <stdlib.h>
| |
− | #include <time.h>
| |
| | | |
− | #include <SDL/sdl.h>
| + | C:\Users\Daryl\Desktop\Projects\sdl-wii\SDL/src/video/wii/SDL_wiievents.c:64: undefined reference to `KEYBOARD_GetEvent' |
− | //#include <SDL/sdl_mixer.h>
| |
− | //#include <SDL/sdl_ttf.h> | |
| | | |
− | #include <gccore.h>
| + | C:\Users\Daryl\Desktop\Projects\sdl-wii\SDL/src/video/wii/SDL_wiievents.c:65: undefined reference to `MOUSE_GetEvent' |
− | #include <wiiuse/wpad.h>
| |
| | | |
| + | collect2: ld returned 1 exit status |
| | | |
− | int main(int argc, char** argv)
| + | make[1]: *** [/c/devkitPro/examples/wii/SDL_template/SDL_template.elf] Error 1 |
− | {
| |
− | 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...)
| + | "make": *** [build] Error 2 |
− | WPAD_Init();
| |
− |
| |
− | // make sure SDL cleans up before exit
| |
− | atexit(SDL_Quit);
| |
− | SDL_ShowCursor(SDL_DISABLE);
| |
| | | |
− | // create a new window
| + | > Process Exit Code: 2 |
− | 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);
| + | > Time Taken: 00:02 |
− |
| + | </pre> |
| | | |
− | return 0;
| + | That question was asked on my SDL Tutorial talk page. I also had that error so I reinstalled Devkit with the older SDL version. How do I update Libogc to the SVN version the right way? So without having this error? [[User:GabberNL|GabberNL]] 17:02, 18 June 2009 (UTC) |
− | }
| + | :Just do a checkout with this path: https://devkitpro.svn.sourceforge.net/svnroot/devkitpro/trunk/libogc<br />It's explain here:https://sourceforge.net/scm/?type=svn&group_id=114505 -[[User:Crayon|Crayon]] 18:45, 18 June 2009 (UTC) |
| | | |
− | void state_in_game(SDL_Surface *screen)
| + | :Very important is order of libs. If wiikeyboard is before SDL it does not work |
− | {
| + | Try this: |
− | int tick_count=0;
| + | -lSDL_ttf -lSDL_gfx -lSDL_mixer -lsmpeg -lSDL_image -lfreetype -ljpeg -lpng -lSDL -lz -lfat -lwiiuse -lwiikeyboard -lbte -logc -lm |
− | int tick_trigger=15;
| + | -[[User:Slappy|Slappy]] <span style="font-size: smaller;" class="autosigned">—Preceding undated comment added 12:08, 31 July 2009 (UTC).</span><!--Template:Undated--> |
− | bool done = false;
| |
| | | |
− | SDL_EnableKeyRepeat(10,10);
| + | == SDL_mixer not in the root makefile == |
| + | Had to make / make install it separately - caused me some pain until I figured it out.[[User:Madmanguruman|Madmanguruman]] 02:07, 28 July 2009 (UTC) |
| | | |
| + | == couple of things == |
| | | |
− | while (!done)
| + | 1) I'm getting an error with devkitPPC_r17-i686-linux.tar.bz2 and SDL Wii 08-04-2009.zip |
− | {
| + | /devkitPPC/bin/../lib/gcc/powerpc-gekko/4.2.4/../../../../powerpc-gekko/include/stdint.h:244: error: conflicting types for 'uintptr_t' |
− | SDL_Event event;
| + | /libogc/include/SDL/SDL_config_minimal.h:39: error: previous declaration of 'uintptr_t' was here |
| + | I commented out that declaration in SDL since they are identical |
| + | 2) the article says to include -lwiikeybord but that library does not seem to be part of latest released libogc (171a?) |
| + | 3) sdl-config would really be great to have. I can share what I'm using, although I don't include a lot of libraries mentioned in Usage section |
| + | [[User:Spec|Spec]] 02:38, 13 August 2009 (UTC) |
| | | |
− | while (SDL_PollEvent(&event))
| + | == SDL_Mixer: Mix_PlayMusic playback is very slow == |
− | {
| + | Hi. I have a strange bug with the SDL_Mixer. When I use the couple of fonction Mix_LoadMUS and Mix_PlayMusic with audio files (Wav or MP3) the SDL lib behaves strangely: All played musics are slowed down and if I whant to get a "good" result I have to increase manualy the pitch of my audio files (+35%)... Someone have an idea ? |
− | switch ( event.type )
| + | --[[User:BScrk|BScrk]] <span style="font-size: smaller;" class="autosigned">—Preceding undated comment added 02:50, 21 October 2009 (UTC).</span><!--Template:Undated--> |
− | {
| + | : That's not a bug. Your files should be encoded to 32khz or 48khz, the audio port code doesn't handle conversion. --[[User:Tantric|Tantric]] 04:59, 21 October 2009 (UTC) |
− | case SDL_QUIT:
| + | :: Indeed, it's work fine using 32Khz encoding ! Thank you --[[User:BScrk|BScrk]] 22 October 2009 |
− | done = true;
| |
− | break;
| |
− | }
| |
− | }
| |
| | | |
− | WPAD_ScanPads();
| + | == sdl_gfx == |
− | u32 held = WPAD_ButtonsHeld(WPAD_CHAN_0);
| |
− |
| |
− | if(held & WPAD_BUTTON_HOME){
| |
− | done=true;
| |
− | }
| |
| | | |
− | tick_count = SDL_GetTicks();
| + | Any chance the sdl_gfx library will ever be fixed for Wii? My program relies heavily on the primitive drawing functions and I'm getting dumps. *sigh* if only sdl_draw supported triangles... [[User:Aeron|Aeron]] 03:20, 6 March 2010 (UTC) |
− | 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);
| |
− | }
| |
− | </source>
| |
| | | |
− | --[[User:TheDrev|TheDrev]] 18:24, 21 October 2008 (UTC)
| + | == This Tutorial Is Broken == |
| + | This tutorial no longer seems to work. I'm getting an assortment of errors. Could someone please add version number or file links that are compatible with this tutorial? <small>—Preceding unsigned comment added by [[User:Wiibrew111|Wiibrew111]] ([[User talk:Wiibrew111|talk]] • [[Special:Contributions/Wiibrew111|contribs]]) 20:39, 26 May 2012 (CEST)</small> |
| + | I noticed that in the WII SDL page (http://wiibrew.org/wiki/SDL_Wii ) the gamecube controller support is not documented. |
| | | |
− | == Bad libs order ? == | + | == Gamecube controller support== |
| | | |
− | I got the following error :
| + | It is not documented, but from the code it seems that SDL Wii should support also the gamecube controllers which should be mapped to SDL joystick 4-7 (Wii controllers are mapped to 0-3), the stick axes and the pad are associated as in the Wii classsic controller and the buttons are with this order: |
| | | |
− | linking ... blastguy_wii_b1.elf
| + | BUTTON 0 = A, |
− | i:/usr/devkitpro/libogc/lib\libSDL.a(SDL_gamecube_main.o): In function `main':
| + | BUTTON 1 = B, |
− | c:\dev\apps\devkitPro\SDL-Port/src/main/gamecube/SDL_gamecube_main.c:59: multipl
| + | BUTTON 2 = X, |
− | e definition of `main'
| + | BUTTON 3 = Y, |
− | i:/usr/devkitpro/libogc/lib\libfreetype.a(gxvfgen.o):d:/Programming/WiiDev/freet
| + | BUTTON 4 = Z, |
− | ype-2.3.6/source/gxvalid/gxvfgen.c:444: first defined here
| + | BUTTON 5 = R, |
− | i:/usr/devkitpro/libogc/lib\libfreetype.a(gxvfgen.o): In function `main':
| + | BUTTON 6 = L, |
− | gxvfgen.c:(.text.main+0xc4): undefined reference to `ft_strncmp'
| + | BUTTON 7 = START |
− | 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
| + | I can not say if the support works since I do not have a gamecube controller to test |
| | | |
− | LIBS := -lSDL_ttf -lSDL_mixer -lSDL_image -ljpeg -lpng -lz -lSDL -lfreetype -lfat -lwiiuse -lbte -logc -lm
| + | [[User:Oibaf|Oibaf]] 1 Jan 2013 (UTC) |
| | | |
− | I changed the lib order in the main page
| + | There were some bugs in the code. Not it is fixed. |
| | | |
− | --[[User:TheDrev|TheDrev]] 15:25, 15 October 2008 (CEST)
| + | [[User:Oibaf|Oibaf]] 28 Oct 2013 (UTC) |
− | | |
− | :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 the .o from a test program is included in the .a
| |
− | Maybe there is a way to use the gcc's archiver to remove that object (I don't know if this is possible...)
| |
− | --[[User:TheDrev|TheDrev]] 09:07, 15 April 2009 (UTC)
| |
− | | |
− | == 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.
| |
− | | |
− | == 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.
| |
− | --[[User:Woku|Woku]] 13:07, 12 January 2009 (UTC)
| |