Milkytracker 0.90.85


Jul 17, 2010
BC, Canada
Hey, Wiz users! I've ported Milkytracker for the Wiz, need beta testers, but I cannot compile it myself after days of trying and getting nowhere, and I'm going on vacation very soon, so I can't work on trying to compile it any more as I'm quite busy with other matters. I'd like to relax and not worry about it.

Unfortunately, I do not own a GP2X Wiz myself; only its successor. I am aware that the controls and button orders are different between the two consoles, but I've done by best to guess which buttons are which based on the button orders of both the GP2X F200 and the Caanoo.

All of the control-related changes I've made are in milkytracker/src/tracker/sdl/SDL_Main.cpp. You can find the button assignments between lines 288 and 300 of this file, which I will quote below. If you find that the button layout is not as it should be according to the button layout I've listed below, please change the numbers on the left side of the equals sign in this area, and tell me the correct button assignments so I can update the source code.

In addition, exiting currently does not work properly on the Caanoo version, though I'm not sure about the Wiz version. Feel free to try to fix this. USB input devices and USB storage devices should work. However, I have only tested USB keyboards on the Caanoo version. Also, TV output is working on the Caanoo version.

As for other changes I have made, I've changed the milkytracker/src/tracker/TrackerConfig.cpp and /milkytracker/src/tracker/TrackerSettings.cpp files. I have changed some of the default settings, like using the internal file browser by default, and I've also changed the default layout according to my tastes. Feel free to edit these to your liking. Also, your settings will probably not save on exit, which is why I've changed the default settings.

SDL_Main.cpp; lines 286-301.
#ifdef __WIZ__
enum WizButtons {
WIZ_BTN_A = 4,
WIZ_BTN_X = 5,
WIZ_BTN_B = 6,
WIZ_BTN_Y = 7,
WIZ_BTN_L = 8,
WIZ_BTN_R = 9,

What the button layout should be:
D-pad: mouse movement
A: mouse click (hold for right click)
B: tab (move cursor to the next channel to the right)
X: delete
Y: backspace
Select: escape (stop playback)
Menu: enter (start playback from the top of the current pattern)
Hold: should be mapped to nothing; should only perform the hold function
L: spacebar (toggle rec mode)
R: spacebar (toggle rec mode)

-Here are the options I used with ./configure, adapted from the GP2X version's. Make sure you adjust the paths for your setup:
./configure --without-alsa --without-jack CXXFLAGS="-D__LOWRES__ -D__WIZ__ -I/GPH_SDK/include -I/GPH_SDK/DGE/include/SDL -O2 -fomit-frame-pointer -msoft-float" SDL_LIBS="-lSDL -lpthread" CFLAGS="-D__LOWRES__ -D__WIZ__ -O2 -fomit-frame-pointer -msoft-float" AR=/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/arm-linux-ar CXX=/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/arm-linux-g++ CC=/GPH_SDK/tools/gcc-4.0.2-glibc-2.3.6/arm-linux/bin/arm-linux-gcc --host=arm-linux LDFLAGS="-L/GPH_SDK/lib/target -static" CPPFLAGS="-D__LOWRES__ -D__WIZ__ -I/GPH_SDK/include -I/GPH_SDK/DGE/include/SDL" --prefix=/projects/milkytracker/ --program-suffix=.gpe

-You may have to define the path to CPP or CXX in ./configure.

-You may have to install zziplib and you may have to add some of these options:
ZZIP_LIBS="-lz -lzzip -Wl -Bsymbolic-functions"

-You may have to install the patch that disables the program's dependency on zzip, as well as a couple of others, available on the downloads section of the official Milkytracker website.

-Make sure you have sdl_config. You may have to specify it's location with SDL_CONFIG=/path/to/sdl-config. I have included the sdl-config from the Caanoo's SDK in case you need it. Please edit it if needed.

If you have any questions, do not hesitate to contact me via PM or post them here. I'll gladly answer any question to the best of my knowledge. I'm leaving Thursday, but if I have time, I'll use airport WiFi if available. ;)

Due to the limitations of my internet connection, I am forced to upload only the files that I have changed. Please copy them into the official source code linked below into the correct paths listed below, overwriting the existing files. I am terribly sorry for this inconvenience. I have tried several times to upload the complete source code, failing each time.

Changed files:

Official source code:

sdl-config you may not need this if you already have it in your SDK or toolchain, but it is needed. It's not specific to this source code. Put this anywhere, but specify the location in ./configure.

SDL_Main.cpp goes in milkytracker/src/tracker/sdl/

TrackerSettings.cpp goes in milkytrcker/src/tracker/

TrackerConfig.cpp goes in milkytracker/src/tracker/

EDIT: Thanks to everyone who has downloaded it already!