Jump to content


Photo

Audacious


  • Please log in to reply
90 replies to this topic

#1 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 27 June 2010 - 07:41 AM

Hi boys,

like many I wasn't realy pleased by gmplayer. So I cross-compiled and packaged audacious with most it's plugins (obviously the GL plugins are off).
It's on the file archive grab it there.

Post feed-back here :)

#2 Farox

Farox

    GP Mania

  • GP Guru
  • 498 posts
  • Gender:Male
  • Location:Italy
  • Interests:Pandora
    GP2X
    Caanoo

Posted 27 June 2010 - 09:58 AM

Ehi seb you are a porting machine... :D

I wanna test all your game/app but unfortunately my Pandora isn't here.... :(

#3 joseluisjazz

joseluisjazz

    GP Mania

  • GP32 Hardcore
  • PipPipPipPipPip
  • 383 posts

Posted 27 June 2010 - 09:59 AM

Fabulous!

Could I ask you for the steps you made on setting up the environment? the configure commands, and environment variables needed for successfully cross-compiling? I'm trying to port some programs, but I'm still battling with the set up, specially with linking with the right libraries. I'm on debian sid.

For example, for the sake of learning I was just trying to cross-compile audacious and I can't get it to find zlib, nor my system installed one nor the cross-compiled for arm-geabi.

Edited by joseluisjazz, 27 June 2010 - 10:02 AM.


#4 GizmoTheGreen

GizmoTheGreen

    Long(long!) haired Pandorian

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 696 posts
  • Gender:Male

Posted 27 June 2010 - 10:09 AM

can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...

Edited by GizmoTheGreen, 27 June 2010 - 10:33 AM.


#5 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 27 June 2010 - 11:03 AM

Fabulous!

Could I ask you for the steps you made on setting up the environment? the configure commands, and environment variables needed for successfully cross-compiling? I'm trying to port some programs, but I'm still battling with the set up, specially with linking with the right libraries.

I had plan to write something, but I'm not good at this :(
First, I'm a debian/sid user for a long time but my coding skill are weak (I've written my first c code this week in more than 10 years...)
So when I find cpasjuste guide I was quite pleased. He didn't document much because his stuff is obvious to use :
- copie the 3 files somewhere (I choosed ~/Projects/Pandora/setup)
- chmod 755 the 2 *.sh files
- run toolchain.sh and then pnd_libs.sh
Now you've a cross-compiling toolchain installed.
Now you need packaging scripts :
- a script that will generate PXML.xml file for you :)
copy this script to : /usr/local/pandora/arm-2009q3/bin/genpxml with usual 755 file perm on it (toolchain.sh have added this to your PATH)
- a script that create the pnd
copy this script to : /usr/local/pandora/arm-2009q3/bin/pnd_make with usual 755 file perm on it
you may need to tweak this one.
Finally, you'll need to set-up your target : sudo "mkdir -p /mnt/utmp;chown $USER /mnt/utmp"

I added this to my .bashrc too :
pndmake_auto(){
pnd_make -c -p ~/Projects/Pandora/PNDs/$1.pnd -d /mnt/utmp/$1 -i /mnt/utmp/$1/icon.png
}

Easy so far ? :) Let's have a bit of shared knowledge :
/usr/local/pandora/arm-2009q3/bin/arm-none-linux-gnueabi-gcc is your compiler
libs are in : /usr/local/pandora/arm-2009q3/usr/lib
include : /usr/local/pandora/arm-2009q3/usr/include

Choose a simple package to port (I would recommand any SDL games that have no other deps), debian provide many of them at a little "apt-get source" away :) I'll take lbreakout2 as example. But the others lgames should be as easy to port (easy, left some parts from that cake :P ).
Extract it to ~/Projects/Pandora, cd into it :
cd ~/Projects/Pandora/lbreakout2-2.6.1
Set up build variables :
export CPPFLAGS="-I/usr/local/pandora/arm-2009q3/usr/include" LDFLAGS="-L/usr/local/pandora/arm-2009q3/usr/lib -Wl,-rpath,/usr/local/pandora/arm-2009q3/usr/lib"
./configure --host=arm-none-linux-gnueabi --with-gnu-ld --with-sdl-prefix=/usr/local/pandora/arm-2009q3/usr --prefix=/mnt/utmp/lbreakout2
--host tell configure we are cross-compiling to target "arm-none-linux-gnueabi" (begining of our gcc binary)
As most code use predefined (at compile time) path for data-files, we set the prefix to where our pnd will be mounted on the system.

If you don't miss build dependencies on your system and in your target system (/usr/local/pandora/arm-2009q3/*) this should run fine
Now build and install (as a user, no sudo involved...) :
make install

Now build the PXML :
genpxml
Edit it to fit your needs (be sure to read this before changing categories ; may want to remove the cpu-frenquency stuff) :
$EDITOR /mnt/utmp/lbreakout2/PXML.xml
Create an icon named /mnt/utmp/lbreakout2/icon.png
And finally build the pnd :
pndmake_auto lbreakout2

Test and enjoy your newly created games :)

Now, more advanced topic :

- when porting from debian, it's always a good idea to start with dpkg-buildpackage (even if this mean that you'll need to install all the build dependency on your x86 system) as you'll have debian patches applied and this will save you *hours* of hacking

- adding pandora control support :
this thread is your friend. (don't forget that "sed -ibck" is your friend too)

- Missing a header in your target directory :
check that this lib is available on your pandora (opkg list-installed)
if so find here your packages. add them to the library list, run pnd_lib.sh and make again
if not, you'll have to bundle that lib in your pnd (download its source, and install in the same prefix).

- Some libraries don't use standard include directory, let's have a look at my CPPFLAGS for audacious :
export CPPFLAGS="-I/usr/local/pandora/arm-2009q3/usr/include -I/usr/local/pandora/arm-2009q3/usr/include/gtk-2.0 -I/mnt/utmp/audacious/include -I/mnt/utmp/audacious/include/libmowgli -I/usr/local/pandora/arm-2009q3/usr/include/cairo -I/usr/local/pandora/arm-2009q3/usr/include/pango-1.0 -I/usr/local/pandora/arm-2009q3/usr/lib/gtk-2.0/include -I/usr/local/pandora/arm-2009q3/usr/include/atk-1.0 -I/usr/local/pandora/arm-2009q3/usr/include/glib-2.0 -I/usr/local/pandora/arm-2009q3/usr/lib/glib-2.0/include"
If you change this env variable, you'll need to reconfigure (as configure hard-code this in the Makefile)


- pkg_config don't find your package :
first be sure to use arm-none-linux-gnueabi-pkg-config
be sure that the *pc files are pointed out by PKG_CONFIG_PATH (ex : export PKG_CONFIG_PATH=/mnt/utmp/audacious/lib/pkgconfig)

- Save problem :
genpxml have already generated a script to set $HOME in the aufs fixing the nand write problem (which isn't one by the way...)
But some games save hiscores and such in a system wild allready existing file. This won't work because of an aufs bugs with FAT32.
To fix move these files in an other directory in /mnt/utmp/lbreakout2 and edit the launch script to copy them in the right place for the first run.


- Debugging on the pandy :
cd ~/Desktop
CMD=$(awk -F= '/Exec/{print $2}' lbreakout*desktop)

To mount your PND without executing it :
$CMD -m
Unmount with :
$CMD -u

pnd_run also generate a log in /tmp/


ready to see many new ports now :P

Edited by sebt3, 27 June 2010 - 11:07 AM.


#6 GizmoTheGreen

GizmoTheGreen

    Long(long!) haired Pandorian

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 696 posts
  • Gender:Male

Posted 27 June 2010 - 12:17 PM

gotta try this next time i bother firing up arch...
edit: or... get virtual box and fire up arch inside my win7.. xD

Edited by GizmoTheGreen, 27 June 2010 - 12:18 PM.


#7 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 27 June 2010 - 12:56 PM

Hi boys,

like many I wasn't realy pleased by gmplayer. So I cross-compiled and packaged audacious with most it's plugins (obviously the GL plugins are off).
It's on the file archive grab it there.

Post feed-back here :)

Auto reply :D

I was about to report sound problem with high change on screen. Then I discover that this use most of our CPU. Don't know why just yet
There is maybe a reason around this fact :
seb@seb:~/Projects/Pandora/vlc/vlc-1.1.0$ find . -type f -name *h -exec grep float {} \;|wc -l
142


By the way, any mod to split these 2 topics please ?

#8 Alerino

Alerino

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1483 posts

Posted 27 June 2010 - 01:50 PM

Posted Image


it doesn't even crash files containing foreign symbols. needed that
thanxalot

#9 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 27 June 2010 - 03:09 PM

can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...

Sure :
http://dl.openhandhe...i?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)

#10 GizmoTheGreen

GizmoTheGreen

    Long(long!) haired Pandorian

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 696 posts
  • Gender:Male

Posted 27 June 2010 - 04:05 PM


can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...

Sure :
http://dl.openhandhe...i?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)


thanks alot! i know its probably not much better performance wise, but its my fav player :)

#11 joseluisjazz

joseluisjazz

    GP Mania

  • GP32 Hardcore
  • PipPipPipPipPip
  • 383 posts

Posted 27 June 2010 - 05:24 PM

Thankyou setb3! you are gold!

So I finally could cross-compile the fabulous most pager, although it was not as easy as I first thougth, and I'm sure I've done some things in not the best way. I'm open to critics. But anyway, here is the most bin and the complete most package. And here are the slang libs it depends on, and the whole slang package with include files, and plugins, because I'm not sure of what will be needed, if anything. ¿Could someone be kind of try it, to see if it works, please? It's very easy: "$ ./most example.txt". :) Thanks!

I share here the steps I followed, in case it's useful for others:
Spoiler

Edited by joseluisjazz, 27 June 2010 - 05:34 PM.


#12 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 27 June 2010 - 08:33 PM


can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...

Sure :
http://dl.openhandhe...i?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)

I just re-upped DeadBeef with alsa support.

#13 Whynodd

Whynodd

    GP32 User

  • Member
  • PipPipPip
  • 74 posts

Posted 28 June 2010 - 01:21 AM

Just a quick tip:

Save Winamp 2.x Skins like this (this is a copy of the Refugee-Skin of Audacious as a test). Your skin could be in ...\Skins\myskin
Posted Image
customize.org has a huge collection of those old skins. They are *.wsz files. WinRar is able to open those files. Put this bunch of files (that are in the wsz) in the appdata-path just like in the screenshot. Done thanks to the overlay mechanics of pnd ;)
Or save the wsz directly in ...\Skins without extracting.

Edit: Did not work with those skins from customize.org. Their names were listed in the preferences but they did not work, also showed no preview pic in the list. Hmm.

Edited by Whynodd, 28 June 2010 - 01:46 AM.


#14 God Ginrai

God Ginrai

    Godmaster

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 3514 posts

Posted 28 June 2010 - 03:51 AM



can i request deadbeef? :)
oh, right
seems to work nicely here!
though its using OSS. no ALSA...

Sure :
http://dl.openhandhe...i?0,0,0,0,6,114

performence isn't better and still using oss emulation (still have to setup alsa dev env)

I just re-upped DeadBeef with alsa support.


Doesn't write to NAND, does it? (sorry, I probably seem paranoid, but that's because I am ;P)

-God Ginrai

#15 mcobit

mcobit

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 841 posts

Posted 28 June 2010 - 10:25 AM

Hi, Crossfade Plugin doesn't seem to work in Audacious.

If you can get it to work I will be the happiest music-listener, that owns a pandora!

thanks for your efforts!

Edited by mcobit, 28 June 2010 - 10:39 AM.