Homebrew How to use the Homebrew Channel as a simple loader for games (skip the emulator menu)

libertyernie

Well-Known Member
OP
Member
Joined
Apr 6, 2011
Messages
112
Trophies
0
XP
334
Country
United States
This probably isn't of interest to most people, but it fits my setup well. I have a Wii U, and most of the games I want to play, I already have copies of (either from eShop or on disc). That leaves a handful of GameCube games and a few SNES games (BS Zelda, I'm looking at you!)

Instead of setting up a loader like Wiiflow or USB Loader GX, I just launch each game from its own Homebrew Channel entry. I've got this working with GameCube games (via Ninendont), Genesis and Game Gear games (via Genesis Plus GX), and NES, SNES, and Game Boy games (through dborth's emulators.)

This isn't so much a tutorial as a way for me to remember this later :)

Nintendont

Use a version of Nintendont that includes my base64 patch. You can get one at: https://github.com/libertyernie/Nintendont/releases/

(If compiling from source, this patch is the one you need.)

Grab NinCFGEditor (it's a Windows application, but it might work on Mono too) and follow these steps:

1. Put the custom Nintendont .dol file in the same folder as NinCFGEditor.exe, and name it boot.dol

2. Put the GameCube game on your SD card as /games/{name of game}/game.iso (like you normally do for Nintendont)

3. Open NinCFGEditor

4. Use the "..." button next to the Game Path entry area to find and select the game's .iso or .gcm file on your SD/USB; the Game ID will be filled in automatically

5. Turn Auto Boot on (and adjust other settings if you want to)

6. Use Tools > Export All Files to save the files to a folder on your SD/USB directly underneath /apps - this should save boot.dol, meta.xml, and icon.png

7. Make any custom edits to meta.xml or icon.png (if you want to)

Genesis Plus GX

Use a recent version of Genesis Plus GX. 1.7.5RC1 might be too old to autoload games properly. Try using genplus_wii.dol from https://github.com/ekeeke/Genesis-Plus-GX/tree/master/builds.

Genesis Plus GX will share at least some settings (e.g. video size and filter) among all games. These are stored in the /genplus folder in your SD card, which it will create if it does not exist.

Make a folder in your /apps folder with boot.dol (the genplus_wii.dol file you downloaded earlier), icon.png, meta.xml, and the rom file. I like to make sure the folder and rom file names don't have spaces.

Example of meta.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1">
<name>Rocket Knight Adventures</name>
<coder></coder>
<version></version>
<release_date></release_date>
<short_description>Sega Genesis</short_description>
<long_description> </long_description>
<arguments>
<arg>sd:/apps/rocketknightadventures/</arg> <!-- This trailing slash is necessary -->
<arg>rocketknightadventures.bin</arg>
</arguments>
<ahb_access/>
</app>

icon.png should be 128x48, with transparency. You'll probably want to make one yourself in a program like GIMP.

Snes9x GX, FCE Ultra GX, VisualBoy Advance GX

You'll need to use a version built some time after 30 July 2018. This means fceugx 3.4.0+, snes9xgx 4.3.8+, and vbagx 2.3.7+. These versions have a patch I contributed to make sure this method of loading games works properly.

These emulators store their settings in an XML file in the app folder, so they will vary depending on the game.

You will want to create some folders on your SD card:
* fceugx/saves
* snes9xgx/saves
* vbagx/saves
* vbagx/borders (optional - for saving Super Game Boy borders in SGB mode so you can use them in GBC mode)

Example of meta.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<app version="1">
<name>Tetris Blast</name>
<coder></coder>
<version></version>
<release_date></release_date>
<short_description>Super Game Boy</short_description>
<long_description> </long_description>
<arguments>
<arg>sd:/apps/tetrisblast</arg>
<arg>tetrisblast.gb</arg>
</arguments>
<ahb_access />
</app>
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,443
Trophies
2
Age
43
Location
Engine room, learning
XP
14,587
Country
France
USBLoaderGX can also benefit from launching a game directly using arguments.
if you set a titleID6 as argument, you get autolaunch.

<arguments>
<arg>SMNP01</arg>
</arguments>

will launch New super Mario Wii automatically, without any GUI, using the settings set in USBloaderGX global+individual settings.
You can make multiple different folders, but it can create issues if the loader is not setup correctly and you might have to store multiple settings (unless you use sd:/config/ path). first setup the loader, then add the TitleID6 to argument.

There's no meta editor, you have to edit it manually, but your nincfgEditor is also launched on computer and need a user action to edit it. the config file is overwritten if you edit your settings/use another loader to launch nintendont. So, you'd require to replace nincfg.bin often.
But you can also set a Gamecube TitleID6, it will launch nintendont, with the setting set in USBLoaderGX. it will generate a new nincfg.bin for each launched game, based on settings stored on the USBLoaderGX settings, no need to use a computer's binary file generator anymore.
<arg>GZLP01</arg> will launch nintendont with generated settings and path to Zelda game.


I'm sure Wiiflow has the same feature.
 
Last edited by Cyan,

libertyernie

Well-Known Member
OP
Member
Joined
Apr 6, 2011
Messages
112
Trophies
0
XP
334
Country
United States
the config file is overwritten if you edit your settings/use another loader to launch nintendont. So, you'd require to replace nincfg.bin often..

I made sure NinCFGEditor could store the nincfg.bin inside the meta.xml as base64. That's actually the only reason my tutorial uses a patched nintendont. It uses that instead of the actual nincfg.bin file.

But if you have USB Loader GX installed already, it's way easier to just use that.
 

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,443
Trophies
2
Age
43
Location
Engine room, learning
XP
14,587
Country
France
you can use these dols into a channel, but you'll lose the arguments feature to launch a different game per channel.
it you want a channel with the argument, you'll need to inject a forwarder per channel to that dol, the forwarder will be the one sending the arguments to the loaded boot.dol on SD card.
 
Last edited by Cyan,

SaulFabre

Wii scene/hacking & Wii VC well-known guy
Member
Joined
Feb 6, 2019
Messages
1,103
Trophies
1
Age
22
Location
Ecuador
Website
saulfabreg-wiivc.blogspot.com
XP
2,431
Country
Ecuador
Thanks a lot about this awesome tutorial!!!

Now this means we can make uninjectable VC games for Wii by just making the emulator autoboot the ROM. I just did that with the Snes9X GX v4.5.2 and the game Star Fox 2 which is extracted from the SNES Classic Mini:

upload_2021-7-5_13-2-44.png


upload_2021-7-5_13-3-27.png


upload_2021-7-5_13-3-52.png


Greetings :)
 

Zorg1996

Active Member
Newcomer
Joined
Jul 14, 2019
Messages
41
Trophies
0
Age
25
XP
391
Country
Peru
Here is a demo that also works perfectly with RetroArch cores, as if it were a Virtual Console Arcade. I'm using the RetroArch Wii mod (RA-HEXAECO-ESP) from SuperrSonic. :)
upload_2021-7-23_19-12-39.jpeg

upload_2021-7-23_19-12-59.jpeg

upload_2021-7-23_19-13-12.jpeg

upload_2021-7-23_19-13-44.jpeg
 
  • Like
Reactions: SaulFabre

SaulFabre

Wii scene/hacking & Wii VC well-known guy
Member
Joined
Feb 6, 2019
Messages
1,103
Trophies
1
Age
22
Location
Ecuador
Website
saulfabreg-wiivc.blogspot.com
XP
2,431
Country
Ecuador
  • Like
Reactions: Zorg1996
General chit-chat
Help Users
  • No one is chatting at the moment.
    Coto @ Coto: C# is a whole new thing, and it's built around the idea of removing all the C bits in the C++...