=----------------------------------= gcube - Nintendo Gamecube emulator =----------------------------------= This is the second release of gcube, gamecube emulator for linux and windows. Compatibility is still very low so don't expect much. Software requirements: ---------------------- * SDL library 1.2.7 or newer (won't work with older versions): www.libsdl.org * zlib: www.zlib.org * GNU C compiler Hardware requirements: ---------------------- * Something good. I'm developing it on Athlon XP 2.0 with 0.5 GB ram and GeForce 2 GTS, and that is not enough for a full-speed game of pong;) * Video card must support the follwing extensions: - GL_EXT_texture_rectangle or GL_NV_texture_rectangle - GL_IBM_texture_mirrored_repeat Building gcube: --------------- * Before compiling check Makefile for options. * To compile just type 'make' or 'make release' (optimized) (on windows use cygwin and type make -f Makefile.win). * To install, copy gcube to /usr/local/bin. A few notes: ---------------------------------------- * GCM's can be compressed with the supplied utility isopack. Compression uses a very simple method but it is quite effective with some dvd images. For example, size of 'The Legend Of Zelda - Four Swords' decreases from 1.4G to 255M. Other files might not compress that well (if at all). * In order to run most of the SDK demos, a directory containing files needed by the demo will have to be mounted as the root directory of dvd. If a directory named 'dvdroot' is present in the same path as the 'elf' file it will be mounted automagicly. Otherwise, use the --mount option to specify the needed dvdroot. * Only interpreter is implemented at the moment. That means it is slow and You might have to wait a long time before something happens (eg action replay and xrick). * Debugger is integrated with emulator, so it will always pop up whenever a fatal error occurs. Pressing F11 (or using 'x' command) will run the program ignoring the error (if further execution is at all possible). F12 will quit emulator. * Configuration file is kept in users home directory (/home/username on Linux and /documents and settings/username on windows) in file .gcube. * Default keys are: arrows - digital pad keypad 8/5/4/6 - first analog home/end/delete/page down - second analog q/w/a/s/z/x/c - A/B/L/R/X/Y/Z F2 will switch wireframe mode on / off. F1 will disable/enable texture caching (slow workaround until correct texture caching will be implemented). A few notes on the debugger: --------------------------- * To use the file / gcm browser, press right arrow when focus is on code window (left arrow returns to code view). Pressing 'i' will insert gcm or mount a directory. Pressing 'enter' will execute binary file or browse dvd image. While browsing the dvd, press 'd' to dump file to disk. * You can get into the debugger at any point by pressing Ctrl + C. * Debugger is designed to work on a bright background in a 80x25 terminal. By default it won't change the color of the background. You can pass a parameter to select the color mode: 0 - black and white 1 - default with transparent background 2 - white background (prefered on windows) * Type 'help' for a list of commands. You don't have to type the whole command name, just as few letters to distinguish one command from another (so in this case 'h' is enough). Scroll output with PageUp / PageDown. * Use tab to switch between windows, tilde to show / hide selected window, - / + to resize, arrows and page up / page down to scroll. Right and left arrows will change the mode for some windows. * a few keys: F5 - run program F8 - step into F9 - step over F11 - detach from debugger (will ignore breakpoints) F12 - quit * When the focuse is on code window, use ':' to add comments / function names. The map will be saved on exit to 'executable name'.map. * Simple expressions are supported. To place nop at current instruction address use: mem pc nop ('nop' is defined as a constant). You can use function names in expressions. For more information about the debugger, check the source code. Usage tips: ----------- * If You have binfmt_misc support compiled into kernel, copy gcube to /usr/local/bin and put this in some startup script (eg rc.local): echo ":DOL:E::dol::/usr/local/bin/gcube:" >/proc/sys/fs/binfmt_misc/register echo ":GCM:E::gcm::/usr/local/bin/gcube:" >/proc/sys/fs/binfmt_misc/register echo ":IMP:M::\x7fIMP::/usr/local/bin/gcube:" >/proc/sys/fs/binfmt_misc/register You will then be able to run gc-binary files / mini-dvd images just like any other executables. * The easiest way to use it on windows is to make a shortcut to gcube on the desktop and then just drop Your gc-binary files on it. You can also associate gcube with dol / gcm files. Credits... ---------- Big thanks goes to: * Dolwin authors, org and hotquick. If they wouldn't release sources of their emulator, gcube wouldn't exist. * gropeaz / hitmen for Yet Another Gamecube Documentation, also to everyone who contributed to it in any way. * Frank Willie (phx) for PowerPC disassembler. * Every GC homebrew developer releasing sources. * Metalmurphy for gcube homepage and EXEmu.net staff for hosting it. * Great icons by rodimus: www.rodimusconvoy.com Keep in mind this is a beta-quality product. It hasn't been throughoutly tested and may contain bugs. Patches and suggestions are always welcome. monk@mad.scientist.com monk