Homebrew ROM Hack Defeating Devolution

Axido

Maker of TRASLApp
Member
Joined
Feb 12, 2014
Messages
1,300
Trophies
2
Age
32
XP
4,281
Country
Germany
No offense, but this seems unnecessary in multiple ways. First of all, the ap feature that Devolution introduced was (at least in my opinion) pretty cool. I didn't even know that you could save data on your Wiimote until Devolution made me transfer my validation over from a Wii to a Wii U. Also, why even bother if you basically made the application do what Nintendon't... err, does?
 

bobmcjr

Well-Known Member
OP
Member
Joined
Apr 26, 2013
Messages
1,156
Trophies
1
XP
3,207
Country
United States
No offense, but this seems unnecessary in multiple ways. First of all, the ap feature that Devolution introduced was (at least in my opinion) pretty cool. I didn't even know that you could save data on your Wiimote until Devolution made me transfer my validation over from a Wii to a Wii U. Also, why even bother if you basically made the application do what Nintendon't... err, does?
I could be wrong but I don't believe that Devo writes data to the Wii remote. I didn't fully RE that section, but I believe it's a hash of some serial/other unique info only present on 1st-party Wii remotes (includes Wii Motion Plus remotes). The validation data is stored in the DVV and the 4-byte hash per Wii remote can be seen when you decrypt it, specifically the second set of 16 bytes in the encrypted area. It seems to be consistent per Wii remote, as while looking at my old DVVs, I saw the two Wii remotes I had connected but depending on what order they were connected, the data would swap places.

But as I mentioned before, it only works with 1st-party Wii remotes so if you're stuck with one of the now-ubiquitous 3rd-party ones, you could not use Devolution on your Wii U or Family Wii.

And you're right, Devolution and its AP is very technically cool. Which is what made it so fun to try to defeat.

And again, if absolutely nothing else, game compatibility is different between Devolution and Nintendont. In general Nintendont is probably the better choice, but there are extreme edge cases where Devolution has the better QoL.
 

bobmcjr

Well-Known Member
OP
Member
Joined
Apr 26, 2013
Messages
1,156
Trophies
1
XP
3,207
Country
United States
Couldn't someone distribute an xdelta patch instead of an 8gb docker process?
The problem is that Devolution's real payload that I'm modifying is scrambled and compressed in the original loader.bin, and the decompression algorithm is not understood so we just run and poke a bit of Devolution in a special emulator in the docker container.

An xdelta patch between the original loader.bin and new loader.bin would basically just contain the entire copyrighted program which cannot be distributed.
 

bobmcjr

Well-Known Member
OP
Member
Joined
Apr 26, 2013
Messages
1,156
Trophies
1
XP
3,207
Country
United States

pedro702

Well-Known Member
Member
Joined
Mar 3, 2014
Messages
12,719
Trophies
2
Age
33
XP
8,693
Country
Portugal
Devolution wasn't made for people like you, it was made for people who actually buy the games they want to play.
Entitled pirates like you give the homebrew scene a bad rep. Devs are fully in their right to do whatever they want with their creations, if you don't like what they made then go ahead and make something better. People whining about or begging for stuff like this has turned devs away from the scene many times in the past. This behavior is the real cancer.
the only problem i see is everyone who only has family wii or wiimini or just a wiiu could never use devolution since only wiis with gc ports can read gc discs to check if they are legit or not, so you cut the userbase by a lot imo.
 

hippy dave

BBMB
Member
Joined
Apr 30, 2012
Messages
9,858
Trophies
2
XP
28,904
Country
United Kingdom
This is nice to see, always a nice landmark when something that "couldn't" be cracked gets cracked.
I'm guessing there's no way to play GC games on Wii U gamepad using the gamepad's controls with this?
 

bobmcjr

Well-Known Member
OP
Member
Joined
Apr 26, 2013
Messages
1,156
Trophies
1
XP
3,207
Country
United States
This is nice to see, always a nice landmark when something that "couldn't" be cracked gets cracked.
I'm guessing there's no way to play GC games on Wii U gamepad using the gamepad's controls with this?
I never kept up with how Wii VC homebrew works, but it still requires launching through something with AHBPROT, IOS58, and access to an SD card or a USB drive.

Since the Wii remote check isn't necessary anymore on a Wii U and if Wii VC simulates a classic controller or something, it could work?

Back in the day I just played Devo on the gamepad with my DualShock 3.
 
  • Like
Reactions: hippy dave

Exidous

Well-Known Member
Member
Joined
Mar 2, 2021
Messages
320
Trophies
0
Age
44
XP
695
Country
United States
Devolution wasn't made for people like you, it was made for people who actually buy the games they want to play.
Entitled pirates like you give the homebrew scene a bad rep. Devs are fully in their right to do whatever they want with their creations, if you don't like what they made then go ahead and make something better. People whining about or begging for stuff like this has turned devs away from the scene many times in the past. This behavior is the real cancer.
Well, at least you carry on the original dev's arrogance, hubris, and pretension in his absence.

Custom code with all-but-crippled applications is quickly disregarded. No disrespect intended to @bobmcjr 's accomplishment but this is a curiosity at this point, rather than a big breakthrough for users. And that's a function of the near-complete irrelevance of Devolution, which has been the case for years now.

DIOS MIOS, flawed as it was, did enormously more for the Wii scene than Devolution, despite representing a fraction of the coding effort. The arrogance of Devolution's original creator's - and your - view squandered much.

Scenes are powered by practicality, not utterly fanciful social engineering locking away features.
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,256
Trophies
4
Location
Space
XP
13,812
Country
Norway
Well, at least you carry on the original dev's arrogance, hubris, and pretension in his absence.

Custom code with all-but-crippled applications is quickly disregarded. No disrespect intended to @bobmcjr 's accomplishment but this is a curiosity at this point, rather than a big breakthrough for users. And that's a function of the near-complete irrelevance of Devolution, which has been the case for years now.

DIOS MIOS, flawed as it was, did enormously more for the Wii scene than Devolution, despite representing a fraction of the coding effort. The arrogance of Devolution's original creator's - and your - view squandered much.

Scenes are powered by practicality, not utterly fanciful social engineering locking away features.
I'm all for what the OP did here but I'm against people shitting on someone just because they chose to make their software the way they wanted to make it. You're of course free to hate the software if you don't like its functionality, though. Devs deserve our respect for releasing anything at all, even if it isn't to everyone's taste. Because otherwise, they might just stop releasing things.
 
Last edited by The Real Jdbye,

N7Kopper

Lest we forget... what Nazi stood for.
Member
Joined
Aug 24, 2014
Messages
975
Trophies
0
Age
30
XP
1,294
Country
United Kingdom
Well, at least you carry on the original dev's arrogance, hubris, and pretension in his absence.

Custom code with all-but-crippled applications is quickly disregarded. No disrespect intended to @bobmcjr 's accomplishment but this is a curiosity at this point, rather than a big breakthrough for users. And that's a function of the near-complete irrelevance of Devolution, which has been the case for years now.

DIOS MIOS, flawed as it was, did enormously more for the Wii scene than Devolution, despite representing a fraction of the coding effort. The arrogance of Devolution's original creator's - and your - view squandered much.

Scenes are powered by practicality, not utterly fanciful social engineering locking away features.
Indeed. Preservation is piracy. By definition. To preserve software, you need to - for all practical purpose - revoke the copyright holder's ability to remove it from public access. Without piracy, most of us would have no choice but to accept revisionist history from woke pricks. (As an example. Song of the South, anyone? Or how Birth of a Nation was showered with awards from the woke pricks of its day, but nowadays they're embarrassed by that fact) Disney, the copyright holders of the former, have shoved it in the vault for political reasons; piracy allows you to watch it and make your own decision on the matter. It also provides a vital layer of cultural insulation against the Orwellian practice of censoring stuff in the rerelease, especially for much older stuff. Sociopolitical reasons for the defence of piracy aside, disc drives and discs don't last forever either, but raw data can be copied anywhere and everywhere. As technically impressive as Devolution's DRM was, it would have been better for tueiji to just make it a compatibility layer that runs discs. 1:1 dumps are big, you know; especially for the era that Devo released in. You know what program is perfectly capable of loading original discs? Nintendont. The piracy one. DIOS-MIOS Lite (the SD Card version) also supports disc loading, but that's a function of MIOS normally so...

What else does Nintendont have over Devolution? Much improved compatiblility. Cheat codes, although not perfect, most support codes like widescreen work. Inate widescreen patching (though sometimes codes are better), 480p patching for PAL60 games (sadly no 576p for PAL50 like Swiss, but still), BBA support for Phantasy Star (as opposed to slow-as-balls modem support), the ability to trim the garbage data from your copies (Do you know how wasteful most 1:1 GCN dumps are?) - Devolution now has that thanks to this crack.

What does Devolution have over Nintendont? Devo can run physical and virtual memory card ports at the same time. It can also support Bluetooth controllers while also linking GBAs. Honestly, if Devo supported original discs and widescreen/progressive patches, I'd use it for more stuff.
 

RetroGen

Well-Known Member
Member
Joined
Jul 17, 2022
Messages
181
Trophies
0
Location
Home
XP
698
Country
Canada
This is nice to see, always a nice landmark when something that "couldn't" be cracked gets cracked.
I'm guessing there's no way to play GC games on Wii U gamepad using the gamepad's controls with this?

Nintendont works with Wii U gamepad controls: See the "release-wiivc-injector-script-gc-wii-homebrew-support" thread.

Not expecting any such additional features with Devolution; but you never know....
 
  • Like
Reactions: hippy dave

bobmcjr

Well-Known Member
OP
Member
Joined
Apr 26, 2013
Messages
1,156
Trophies
1
XP
3,207
Country
United States
Must be obscure then. I never knew that. Thanks, Extrems! 576p is something I've really needed for a while.
Yeah it's not in the current release of USB Loader GX but should be in the next one. The sample loader currently just forces it if you want to try it out.
 
  • Like
Reactions: N7Kopper

V800

Well-Known Member
Member
Joined
May 16, 2022
Messages
232
Trophies
0
Age
32
Location
Vigo
XP
682
Country
Spain
How do you enable options in Devolution? I only get mount Sd or Usb at the beggining and that's it. I would like to use my Ds3 wirelessly to play Mario Sunshine.
 

RetroGen

Well-Known Member
Member
Joined
Jul 17, 2022
Messages
181
Trophies
0
Location
Home
XP
698
Country
Canada
Quote from the readme.txt packaged with the original version:

DEVOLUTION: What is it and how do you use it?

Devolution is a loader designed to run Gamecube games on a Wii. Dolphin was the codename
for the Gamecube, Revolution was the codename for the Wii, add them together = Devolution.
Although most Wii models include backwards compatibility for Gamecube games it is rather
limited; support for several Gamecube peripherals is missing, the original wired
controllers must be used, unreliable memory cards are still required for saving games...
It seemed like it should be possible to do things better. So I did...

Devolution currently offers the following enhancements to the regular "Gamecube on Wii"
experience:
- Alternative mediums for loading games (SD and USB)
- Alternative controllers (Wiimote with classic controller, WiiU Pro Controller, PS3
controller, OUYA controller, XBOX360 wired controller+chatpad, USB/BT keyboard, WiiU
USB Gamecube Adapter)
- Alternative mediums as memory cards (SD / USB / NAND)
- Emulation of the Gamecube modem hardware using the Wii's networking hardware (wifi or
wired) for online play
- Emulation of the Gamecube BBA hardware using the Wii's networking hardware (wifi or
wired) for LAN play
- Wii Family Edition and WiiU support
- Screenshot captures
- Playtime recording on the system menu's daily log
- Horizontal stretching to accomodate underscan areas on newer TVs.

To get started using Devolution you need a GC compatible Wii with working disc drive and
HBC installed, some physical Gamecube games and their matching .iso files (stored in a
directory called /games on a USB drive or SD card) and the Devolution sample loader app
(which was in the .zip file with this readme).
The following process describes how to load an individual game for the first time:
Step 1: Remove any discs from the Wii.
Step 2: Launch the Devolution loader app from HBC.
Step 3: Press Y or X to mount a USB drive or SD card, depending on what you're using to
store your games (if using a Wiimote press 1 or 2; if using a Classic Controller press x
or a).
Step 4: Use the DPAD to scroll up or down through the .iso files in your /games directory
until you've decided which one to play. Press A (b on a classic controller) to launch it
and the screen should go blank; a short time later the blue slot led should repeatedly
flash twice followed by staying off for a few seconds.
Step 5 (OPTIONAL): If you plan on playing the game on other Wii or WiiU consoles, you will
need to connect one or more wiimotes to the wii now. If the wiimotes are not currently
paired with this Wii just press the red sync button on both the wii and the wiimote and
wait for it to connect. Once connected it should have one light flashing on and off
repeatedly.
Step 6: Insert the original Gamecube disc for the game you are loading. The wii should
read it for a few seconds then the slot led should flash five times.
Step 7: After a short wait the game should start. If instead Devolution exits back to
HBC, check to make sure the .iso file is a clean, identical copy of the disc's data.

In the future when you launch this game using Devolution it should start without needing
to insert the original disc. However if you launch the game on a different Wii/WiiU, you
will need to perform Step 5 (connect one of the same wiimotes used in the original
process) instead of being able to skip boths Steps 5 and 6. Only wiimotes may be used for
this purpose, not WiiU Pro controllers nor PS3/OUYA/XBOX controllers. No guarantees are made
for the behaviour of third-party wiimotes.

If you wish to repeat the original process for a game that has already been played (for
example to link it with different wiimotes), remove any discs from the wii and hold the
reset button when you choose the game to launch. Release the reset button only when the
slot led starts the two-flashes sequence and continue from Step 5.
Note that any games verified prior to Devolution r200 (the first build with wiimote
support) must be re-verified for use with r200 or later. Games verified with later versions
of Devolution will not be compatible with earlier versions of Devolution.

Analog sticks on all controllers are calibrated when they are first connected. Make
sure the sticks are in the neutral position when plugging in PS3 USB / classic / XBOX
controllers or wirelessly connecting PS3 BT / WiiU Pro / OUYA controllers. If a stick is not
centered correctly you will need to disconnect the controller and reconnect it.

If a WiiU USB Gamecube adapter is detected it will act as a substitute for real
Gamecube controller ports. Each individual slot can still be emulated by other controllers.
The USB Gamecube adapter supports wired/wavebird controllers only, it does not support
the GBA link cable or Gamecube keyboard. If the grey USB cable is not connected the USB
Gamecube adapter will not support rumble for wired controllers (wavebird controllers do
not have a rumble feature).

While a game is running, a connected controller can be active or inactive. If it has a
constantly lit LED it is currently active and will send input to the game. If the LED is
flashing on and off, it is inactive (this is the default state).
The position of the LED indicates which Gamecube slot the controller is currently tied
to. The HOME button (or PS/OUYA/XBOX button) is used to toggle between active/inactive
states. A Wiimote by itself cannot go active, it must have a classic controller (either
original or pro) attached.
When a controller is inactive there are several key sequences that perform special
functions (see below for OUYA and XBOX combinations):
- PLUS/START: change the controller's Gamecube slot to the next available (inactive) slot.
- MINUS/SELECT + DPAD LEFT: Toggle the global widescreeen setting.
- MINUS/SELECT + DPAD UP: If the game is currently asking to switch discs, load the
next .iso file (performs the same function as pressing the Eject button).
- MINUS/SELECT + DPAD DOWN: Simulate pressing the Gamecube's Reset button.
- MINUS/SELECT + DPAD RIGHT: Toggle the Slot Led activity indicator setting.
- MINUS/SELECT + A/CIRCLE: Toggle the global rumble setting for all emulated controllers.
This can be used to override the system global Wiimote rumble setting (which is set by
bringing up the home screen for any official wii software).
- MINUS/SELECT + B/CROSS: Toggle the screen dimmer.

PS3 controllers support two extra functions:
- L1 + R1: When the PS3 controller is connected to the wii via USB this will write the
wii's Bluetooth address to the controller's memory so it can be used wirelessly. This only
needs to be done once (until the address is overwritten).
- L3 + R3: Exit Devolution (performs the same function as pressing the power button).

OUYA controllers support the following functions when inactive:
- Touchpad single press: change the controller's Gamecube slot to the next available
(inactive) slot.
- Home button hold/long press: Exit Devolution.
- L1 + DPAD LEFT: Toggle the global widescreen setting.
- L1 + DPAD UP: If the game is currently asking to switch discs, load the next .iso file
(performs the same function as pressing the Eject button).
- L1 + DPAD DOWN: Simulate pressing the Gamecube's Reset button.
- L1 + DPAD RIGHT: Toggle the Slot Led activity indicator setting.
- L1 + A: Toggle the global rumble setting for all emulated controllers.
- L1 + O: Toggle the screen dimmer.
The OUYA controller indicates the current Gamecube controller slot that it is connected to
by the number of LEDs lit on the controller rather than the position of a single LED i.e.
1 LED = slot 1, 2 LEDs = slot 2 etc.
When the OUYA controller is active the L1 or R3 (right-stick click) function as the start
button. The OUYA controller does not support rumble since it has no motor.

XBOX 360 controllers support the following functions when inactive:
- START: change the controller's Gamecube slot to the next available (inactive) slot.
- L3 + R3: Exit Devolution.
- BACK + DPAD LEFT: Toggle the global widescreen setting.
- BACK + DPAD UP: If the game is currently asking to switch discs, load the next .iso file.
- BACK + DPAD DOWN: Simulate pressing the Gamecube's Reset button.
- BACK + DPAD RIGHT: Toggle the Slot Led activity indicator setting.
- BACK + B: Toggle the global rumble setting for all emulated controllers.
- BACK + A: Toggle the screen dimmer.
The XBOX 360 controller supports rumble and use of the analog triggers. The default button
mapping is as follows:
XBOX A = Gamecube A
XBOX B = Gamecube X
XBOX Y = Gamecube Y
XBOX X = Gamecube B
If the CONFIG_D_BUTTONS flag is used the following mapping will apply:
XBOX A = Gamecube B
XBOX B = Gamecube A
XBOX Y = Gamecube X
XBOX Y = Gamecube Y
Only original wired XBOX 360 controllers are supported, third party wired controllers may
work but have not been tested. XBOX 360 wireless USB dongles or wireless controllers are
not supported.

When a WiiU Pro or Wiimote+Classic Controller is active, pressing the L button (or ZL for
the original classic controller) will toggle the "C-Stick Trigger" mode - when it is
active, pressing the right stick up emulates pressing the right analog trigger and
pressing the right stick down emulates pressing the left analog trigger.
PS3, OUYA and XBOX controllers fully support emulating the Gamecube controller's analog
triggers by using their own triggers.

For Wiimotes and the WiiU Pro controller, pressing the power button simulates pressing the
console's power button and will exit Devolution. This simulation is performed by the
hardware, such as when a Wiimote is used to turn the console on.

New Wii controllers can be synced to the Wii at any time by pressing both red sync
buttons. Do not attempt to use the "1+2" syncing method. Note that the controllers
probably won't stay paired to the wii after exiting Devolution since it doesn't touch the
wiimote records in the system files. However the wiimotes should support one-touch
reconnection while Devolution is running.

When using a Wiimote+Classic Controller, the Wiimote will rumble to match the emulated
Gamecube controller - this is intentional, since there are "retro" classic controllers
that feature a built-in Wiimote. There's no way to distinguish them from the software's
point of view.

PS3 controllers support both Bluetooth (wireless) and USB (wired) connections. A USB
connection must be used first so the Wii's BT address can be written to the controller (by
pressing L1 and R1 together). L2 and R2 are fully functional as analog triggers.

The battery state for Wiimote/OUYA controllers is monitored while they are active, if the
battery is sensed to be low the LEDs will blink off-on every 10 seconds.

A USB or Bluetooth keyboard can also be connected to emulate a Gamecube keyboard.
Control + Alt + F12/Return/Enter is used to toggle the keyboard between active and inactive
states. It also supports these special functions:
- Control + Alt + Delete/Numpad.: Exit Devolution.
- Control + Alt + Left: Widescreen toggle.
- Control + Alt + Up: Simulate Eject button (for disc swap).
- Control + Alt + Down: Simulate Reset button.
- Control + Alt + Right: Slot LED activity indicator toggle.
- Control + Alt + A: Toggle the global rumble setting for all emulated controllers.
- Control + Alt + B: Toggle the screen dimmer.
To connect a keyboard via Bluetooth press the red sync button on the wii followed by
the sync/connect button on the keyboard. You can test if the keyboard is connected
by toggling the capslock or numlock and checking if the status LEDs on the keyboard
change.

A chatpad fitted to a wired XBOX360 controller can also be used to emulate a Gamecube
keyboard. GREEN button + Enter is used to toggle the chatpad between active and inactive
states. It has no other special functions since they can be accessed using the attached
controller. Only the first detected wired XBOX360 controller can be used with a chatpad.
An attached chatpad always occupies a Gamecube controller slot, even when inactive. To
free the slot for use with other controllers the chatpad must be detached.

To capture a screenshot of the currently running game your wii must be connected to a
network (using either wifi or a wired adapter). Using a PC on the same network, open
a web browser and enter the wii's IP address in the address bar. If you're using a
windows PC with windows networking enabled (or the computer's operating system supports
NETBIOS name lookups) you can just enter "gc_devo" instead of the IP address, which
should automatically find the Wii. A page should appear showing the current disc's name
and three links at the bottom:
- XFB Screenshot: This will show the current game screen inside the web browser.
- 5s Auto Refresh: The same as XFB Screenshot, but will automatically refresh every 5
seconds.
- Direct Download: This links directly to the current game screen as a .BMP file, for
easy downloading to the PC.
The resolution of the screenshot depends on the current size of the framebuffer being
used by the game, there is no scaling applied. Note that retrieving screenshots may
cause minor interruptions to gameplay or audio playback.

BBA Emulation is supported for the following games that use LAN play:
- Mario Kart Double Dash
- Kirby's Air Ride
- 1080 Avalanche
Mixing systems that use wired and wireless networking may work but is not recommended
due to games using TTL (time-to-live) values of 1, which may prevent data packets
from being forwarded between networks.
LAN play/BBA emulation is compatible with Gamecubes using real BBA hardware.

The following games have their own specialized widescreen patches, this means they
should properly support 16:9 mode without any glitches or bad behaviour often observed
when using the generic widescreen patch:
- Phantasy Star Online (Episode 1+2)
- Mario Kart: Double Dash
- The Legend of Zelda: Wind Waker (full game and demo)
- The Legend of Zelda: Twilight Princess
- Super Smash Bros. Melee
- Animal Crossing
- Resident Evil 4
- Metal Gear Solid: The Twin Snakes
- Ultimate Spider-Man
- Starfox Assault
 
  • Like
Reactions: JuanMena and V800

bobmcjr

Well-Known Member
OP
Member
Joined
Apr 26, 2013
Messages
1,156
Trophies
1
XP
3,207
Country
United States
How do you enable options in Devolution? I only get mount Sd or Usb at the beggining and that's it. I would like to use my Ds3 wirelessly to play Mario Sunshine.
The DS3 should just work after you launch a game and connect it over USB, then iirc press the PS button to pair it.

If you want the other options though you should use a loader like USB Loader GX (otherwise you'd have to recompile it to change the options).
 
  • Like
Reactions: V800

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: @SylverReZ, Indeed lol