PunEmu
Multi-Emulator Wii-mode iso
v1.0 September 01 2010
v1.1 December 16 2010
main.dol, emulator modifications, iso composition giantpune
visual stylings neorame
banner wiithemeteam
testing giantpune, markehmus, XFlak
This disc images is designed to allow loading of emulators and roms via the DIP in IOS. Redirection of the calls to DIP can be used to have roms & emulators being read from different medium. It uses a fakesigned partition, so any IOS that is to read the disc must allow fakesigned TMD, etc. There is nowhere other than the TMD that specifies a certain IOS, so whatever IOS the iso is booted with is used for all emulators.
These methods have been tested and are working ( keeping in mind the fakesign stuff )
DVD drive + DVD-r + System menu
WODE + NTFS/WBFS/FAT + System menu or GeckoOS
neogamma beta9 + cIOS249 v20 & 21beta5 + WBFS HDD
cfgloader + cIOS222v4 / 249v20 + WBFS /FAT HDD
UsbloaderGX + cIOS222v4 / 249v20 + WBFS /FAT HDD
* When the library was written & tested that mounts the dvd filesystem, I tested with an iso with over 7000 files. Everything seemed to work fine. In most cases, the fst is left in memory and takes up space that could be used for other things. Its size is derectly affected by the number of files & folders and the length of their names. My iso with 7002 files used ~0.25MB to store the fst, which seeed to work fine. I have not tried to push the limit and see exactly how many files can be put in the iso before stuff starts to not work right ( the wii only has so much memory ), but 7000 files seems like enough to encompass cheat files, roms, emulators, gamegenies, and whatever else.
* The iso itself contains 6 executables, and each of those contains a small dol-booter, so there are 12 dols total, and each time one of them starts, it receives the IOS in whatever state it was in when the last dol finished using it. If there is anything left open by 1 or more dols, these things can eventually pile up from switching between dols many times. While I have done simple testing switching back and forth between the dols, I have not sat down and tried to switch back and forth until something went wrong.
* when started via neogamma, the wiimote does not always work in the first dol, and video mode is sometimes set to 480i. After loading an emulator, everything works as expected. It seems to be caused by some patch neogamma does and is not caused by anything in this iso.
* using cIOS222v4, and possibly some other versions, the disc check fails; just stick any disc in the drive.
* The emulators contained in the iso are largely written by others. I have made changes to the code to to make them work in this iso. Keep in mind that these are modifications of the original work. Any bugs encountered in these emulators should probably not be reported to their creators, as I have changed enough code that the bug may be my fault.
* Most of the emulators use an argument given at startup to determine where they were loaded from, and then try to use that argument to decide where to save/load settings. If you press the "A" button to start one, an argument will be sent telling the program that it was loaded from the SD card, and it will then try to use the SD card to load settings. If you press "1" ( "Y" on GC/CC ) the program will be told that it was started from the USB drive, and try to load its settings from there. Using the "alt-dol" trick should work to start individual dols, but it does not pass any arguments, so things might now work as expected.
* Since fakesigning is required to create the partition, the "sane IOS" check has been removed from some emulators. If the user has some stupid stuff going on in their IOS, I believe it to be their fault if anything unexpected happens because of this.
* The disc is made possible by open-source software. It is used in the executables as well as used to assemble the disc image.
* CHEATS!! I spent a good bit of time messing with the cheat stuff in this iso. It includes things like allowing cheats to be loaded from the iso, creating new formats for cheats, converting existing codes into the new format, adding support for these cheats, and building a cheater menu in the sega emulator. Included are 726 NES, 289 sega, and 898 SNES cheat files with ~30,000 codes. Obviously I didn't test them all. I have only spot tested these cheats and so far they seem to work. Also changed is the ability to load gamegenie roms from the iso. If you have a NES game genie rom, place it at "dvd:/fcuegx/gg.rom", and place the sega one at "dvd:/genplus/ggenie.bin".
main.dol
based on the demo template in libwiigui by tantric
dol loading code from dimok
sexy images by neorame
uses a fst devotab losely based on one by Joseph Jordan
images are adjusted based on console region & aspect ratio settings
nes.dol
based off FCE-ultra-gx svn r507
removed update check
removed "load startup iso" and "sane ios" code
changed dvd:/ to read from modified devotab
change exit code to load main.dol from DIP
don't keep checking if a disc is in the drive, just assume it should be after the first check
look for cht files from the same device the current rom is loaded from
fix bug for cheats with long descriptions ( raise name limit from 50 to 256 )
snes.dol
based off Snes9x-gx svn r625
removed update check
removed "load startup iso" and "sane ios" code
changed dvd:/ to read from modified devotab
change exit code to load main.dol from DIP
don't keep checking if a disc is in the drive, just assume it should be after the first check
load cheat from whatever device rom is loaded from, not from the save device
add support for reading game genie codes from a file "/cheats/<rom_name>.ggp"
.cht files are read first, then .ggp. so the .cht cheats will appear at the top of the list
fix bug for cheats with long descriptions
raised max cheats & length of cheat descriptions ( only for GG/PAR codes )
gba.dol
based off Vba-gx svn r494
removed update check
removed "load startup iso" and "sane ios" code
changed dvd:/ to read from modified devotab
change exit code to load main.dol from DIP
don't keep checking if a disc is in the drive, just assume it should be after the first check
sega.dol
based off gensplus-gx svn r501
sd card must be present for this emulator to be used
changed all dvd read commends use the dvd:/ devotab
change exit behavior to reload main.dol
added dvddir to config. !!this changes the size of the config file and SHOULD still be compatible with config files created by the official version, but it might be a good idea to backup the original config just in case!!
fixed bug where screenshots were not displayed for roms that dont have a 3-letter extension
added a kickass cheat engine - uses the .ggp cheat format i made up
replaced old game-genie menu with a sexy cheat menu
support 350 codes with up to 5 entries each ( big memory waster :) )
load cheats from "<rom_device>/genplus/cheats/<rom_name>.ggp"
look for ggenie.bin first on SD card, then on whatever device the rom is loaded from
n64.dol
based off Wii64 beta 1.1 "Honey"
no fst devotab here; instead read the fst and provide listings of each directory 1 at a time. Then forget the fst while playing games to free up memory
check that argc > 0 before trying to check argv[0][0] for anything ( crash fix )
change exit code to load main.dol from DIP
skip exit confirmation, just leave
apploader.img
opensource apploader from the Wii disc template from team twiizers/gc linux.
The disc image is built using wit & QtWitGui. Actually, this disc is the reason I wrote QtWitGui in the first place. Wit is a great tool to manipulate images, but it is CLI only, and quite frankly I suck at typing. After creating 10 or 15 test images, I got tired of typing all the commands, so the QtWitGui was born.
emulator homepages
http://code.google.com/p/fceugc/
http://code.google.com/p/vba-wii/
http://code.google.com/p/snes9x-gx/
http://code.google.com/p/genplus-gx/
http://code.google.com/p/mupen64gc/
apploader
Open-Source Apploader, ISO template
iso tools
WIT: Wiimms ISO Tools
http://code.google.com/p/qtwitgui/
All NES cheats came from the 2010-08-10 pack here
Mighty Mo's World. I just wrote a small program to convert the xml format into cht format. Cheats converted from gamegenie codes contain "[GGC]" at the end of their description. I read that in this emulator, the gamegenie codes are slower to apply than simple address-poke ones. I don't know how much this affects performance on the Wii hardware, but if there are more than 1 version of a code, I would suggest using the one that doesnt have "[GGC]" at the end of it.
SNES ".cht" files were provided by XFlak. I came up with a new format for storing / loading pro action replay (PAR) & gamegenie codes from a file and displaying those codes in the SNES cheat menu. The codes are stored in ".ggp" files. I have converted 16390 codes for 602 games into this format from the BSNES 2010-09-05 pack at the same URL as the NES pack. However, due to the way snes9x handles cheats, some cheats work initially and then the effect "wears off".
http://code.google.com/p/snes9x-gtk/issues/detail?id=53 . I have disabled loading of the PAR cheats, but the game genie codes seem to work pretty well. There is 1 small block of code to change to enable the PAR codes if somebody wants to play around with those. Even without them, there still are 11106 gamegenie codes for 486 games as well as the ones in the ".cht" files.
Sega cheats are stored in the ".ggp" format as well. I converted a collection that claimed to be the complete official game-genie book from galoob, as well as a good bit from
Welcome to GSCentral - Fight The System. This came out to be ~15,000 codes for 684 games. Codes had obviously been typed by hand and copy/pasted a few times, so it is likely erroroneous in several places. I did some random testing, and most of them work as expected.
Source -
gbatemp.net/punemu