GP2X Working Sdl Libraries


nickspoon

vultum stultum habes
(Sorry to get you all excited with the title)

Somebody needs to post what the community wants: a complete working SDL library!

Developers with the working libraries compiled (including _image, _mixer, _ttf etc.) could you please upload them to the file archive or something, we're a bit stuck :).

Thanks!
 
Is building from source out of the question?

GP2X versions of a range of libs (inc. most of the SDL suite) are in Open2x's CVS and if you need help to build them pop into #GP2XDev. A lot of the libs are still being worked on (SDL esp.) to support things like the hardware scaler, blitter. As such it makes a release right now of all the libs a little premature (IMHO).
 
@nickspon: if you get sdl_mixer woring I would like how init'd it and what sound data you used.
 
synkro posted on Dec 13 2005 at 08:02 PM said:
@nickspon: if you get sdl_mixer woring I would like how init'd it and what sound data you used.

Sorry to interrupt, but I've got some wav sounds working like this, although there's a slight delay before I hear the sound:

Code:
  /* initialize SDL */
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_TIMER | SDL_INIT_AUDIO);

  // Open up the Audio
  if(Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, AUDIO_S16, MIX_DEFAULT_CHANNELS, 512) < 0) {
	printf("Unable to open audio!\n");
	exit(1);
  }

  // Pre-load the sound effects */
  Mix_Chunk *pop = NULL;
  pop = Mix_LoadWAV("pop2.wav");  
  Mix_Chunk *pinc = NULL;
  pinc = Mix_LoadWAV("pinc.wav");

These sounds came from Tintagel's Free Sound Archive


I hope this is helpful.
 
Last edited by a moderator:
evening2005 posted on Dec 13 2005 at 09:15 PM said:
synkro posted on Dec 13 2005 at 08:02 PM said:
@nickspon: if you get sdl_mixer woring I would like how init'd it and what sound data you used.

These sounds came from Tintagel's Free Sound Archive

I hope this is helpful.
sorry for the offtopic,
but: woot!, this site is just what I needed.
Im making a movie at school and a was wondering where to get them :).

btw. do you know anymore of these archives with sounds?
 
Last edited by a moderator:
This is the code I use, but it does not work! I get an error:
Unable to initialize audio: Could not open requested file
Can anyone please test this code, maybe I am doing something awfully wrong!

Code:
#include <unistd.h>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>

int main(int argc, char *argv[])
{
	SDL_Surface *screen;  
	Mix_Chunk *sound = NULL;	
	int channel;    
    
	//Initialize BOTH SDL video and SDL audio
	if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) != 0)
	{
  printf("Unable to initialize SDL: %s\n", SDL_GetError());
  return 1;
	}
	
	//Initialize SDL_mixer with our chosen audio settings
	if(Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, AUDIO_S16, MIX_DEFAULT_CHANNELS, 512) != 0)
	{
  printf("Unable to initialize audio: %s\n", Mix_GetError());
  exit(1);
	}
	
	//Load our WAV file from disk
	sound = Mix_LoadWAV("sound.wav");
	if(sound == NULL)
	{
  printf("Unable to load WAV file: %s\n", Mix_GetError());
	}
	
	//Set the video mode to anything, just need a window
	screen = SDL_SetVideoMode(320, 240, 0, SDL_SWSURFACE);
	if (screen == NULL) {
  printf("Unable to set video mode: %s\n", SDL_GetError());
  return 1;
	}
	
	//Play our sound file, and capture the channel on which it is played
	channel = Mix_PlayChannel(-1, sound, 0);
	if(channel == -1) {
  printf("Unable to play WAV file: %s\n", Mix_GetError());
	}
	
	//Wait until the sound has stopped playing
	while(Mix_Playing(channel) != 0);
	
	//Release the memory allocated to our sound
	Mix_FreeChunk(sound);
	
	//Need to make sure that SDL_mixer and SDL have a chance to clean up
	Mix_CloseAudio();
#ifdef GP2X
	chdir("/usr/gp2x");
	execl("gp2xmenu","gp2xmenu",NULL);
#endif
	SDL_Quit();	

	return 0;
}
 
DJWillis posted on Dec 13 2005 at 08:31 PM said:
Is building from source out of the question?

GP2X versions of a range of libs (inc. most of the SDL suite) are in Open2x's CVS and if you need help to build them pop into #GP2XDev. A lot of the libs are still being worked on (SDL esp.) to support things like the hardware scaler, blitter. As such it makes a release right now of all the libs a little premature (IMHO).
But that would give more people the opportunity to start their own development. When a new version will be ready, a simple recompile would be sufficient.
 
Last edited by a moderator:
Better would be a compilation tutorial, so everyone can compile the libraries he sees fit at any time it is required.
 
the sad thhings is that cross-compiling libs is not that easy. I was not able to compile even small things like libsndfile and stuff. that's just plain awful...
 
fragment posted on Dec 14 2005 at 04:38 PM said:
thanks theoddbot, finally got the SDL_mixer working (plays mods atleast)

could you please paste your code/makefile here? because I don't get it to work ;( *puh-leeez*
 
Last edited by a moderator:
It works!!! Thanks very much, theoddbot.

I'm using DevKit on XP. If anyone is interested, here is the LIBS line inside my Makefile:
Code:
LIBS = -L"C:/devkitGP2X/lib" -lSDLmain -lSDL_image -lpng12 -ljpeg -lz -lc -lm -lgcc -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread
Btw, to avoid latency problems, I've had to change chunksize in Mix_OpenAudio. Mine looks like this (128 instead of 4096):
Code:
Mix_OpenAudio(22050, AUDIO_S16, 2, 128)
I expected skipping but music and sound effects play properly. The only thing I don't like is that it's mono instead of stereo. I'll try to see if that patch someone released days ago solves it.

Edit: I forgot to mention that it works for OGG and WAV. Haven't checked other formats, but somebody from GP32Spain reports that XM work as well.
 
Back
Top