Modifying A Wii Game

StarMiner

Member
OP
Newcomer
Joined
Aug 19, 2021
Messages
6
Trophies
0
Age
20
XP
28
Country
Canada
Hey all,

I'm quite new to the modding community for Wii, although I have managed to simply download Newer Super Mario Bros Wii onto my Wii in the past.

I'm looking to find a way to modify New Super Mario Bros. Wii's code. Here's a specific explanation of what I want to change:

Limit of 5 lives instead of 99

Disable Bubbling Completely

Disable All Controllers when a Bowser Minion comes out of its spinning rotation stage

I've seen tutorials on changing the map and level layout which seems quite straight forward, but none on how to change the inner code of NSMBW.

I've also gotten as far as to use WiiScrubber to access the files, but all the files are either .arc, .breff, .breft, and more.

To further state that I'm desperate to do this, I do have coding experience if needed. I'm only a noob to the Wii.

Any help is greatly appreciated!

Also @FAST6191 I've seen great answers from you, I would love any support :)

- StarMiner
 
Last edited by StarMiner,
  • Like
Reactions: BlazeMasterBM

Nikokaro

Lost philosopher... searching for a way out...
Member
Joined
Feb 3, 2020
Messages
2,184
Trophies
1
Location
Nautilus (under) Lake Como, Italy 🇮🇹
XP
6,748
Country
Italy
Hello and welcome lad.:mellow:
I note with regret that no one has welcomed you yet, so I'll step in.
In truth I had decided to welcome only those who introduce themselves as it should be done in the right way, and not immediately declaring their needs and technical problems. Moreover, I have no sympathy for the most modern consoles.
But compassion pushed me to act, as always...

annoiato.gif
 

StarMiner

Member
OP
Newcomer
Joined
Aug 19, 2021
Messages
6
Trophies
0
Age
20
XP
28
Country
Canada
Hello and welcome lad.:mellow:
I note with regret that no one has welcomed you yet, so I'll step in.
In truth I had decided to welcome only those who introduce themselves as it should be done in the right way, and not immediately declaring their needs and technical problems. Moreover, I have no sympathy for the most modern consoles.
But compassion pushed me to act, as always...

View attachment 273495

Thanks for the welcome! And sorry for not introducing myself, I'll do that here:

My name is StarMiner, I'm a young adult, and I've been playing the Wii console for 10 years now and just half a year ago got into programming. I'm always looking to expand my knowledge around the PC and other places. I also really enjoy making the impossible possible, if possible of course :)
 
  • Like
Reactions: Nikokaro

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
Most do better to approach things on a more abstract basis than specific games, though certainly do check

5 lives instead of 99 can probably be done with a cheat.

Indeed if there is an infinite lives code already you can probably twist it to be what you seek; most modern cheat engines have a "IF this location equals (or less than/greater than in even better offerings) this then do this cheat"
Should not be hard to do the infinite lives cheat but in turn set a value low if it is greater than another. This is rarely done (most times people use it to dodge issues with infinite time) but people wanting challenge modes is usually when it is seen.

Not sure what bubbling is though a search gives me
https://www.mariowiki.com/Bubble#New_Super_Mario_Bros._Wii
Sounds like it is a state things can happen in. I don't know how it works beyond that but if you can find something that pops the bubbles, or if they are on a timer then set that to a super low value if greater than to mean it pops say next frame.

"Disable All Controllers when a Bowser Minion comes out of its spinning rotation stage"
This arguably falls under controller state. There is a possibility with cheats but this might be more something to look for in code.
The way I would do it with a cheat is to find the debounced section* for the controller state, and some indicator of the even you care about there (there will be something in memory that changes with the state mentioned there, don't know what and as long as it changes reliably you don't really care). The cheat again would be IF this value corresponding to state is this then set all the control inputs in the debounced to not pressed. I don't know if this game does wiimotes as well as classic and gamecube stuff as they might all be different affairs needing their own version of the cheat.


*most consoles since... ages ago will have the code copy the controller state to normal memory and operate on that. Saves timing issues and issues where the switch (which is mechanical after all) might read one value for a fraction of a frame and then another for another fraction. If you have ever had a dying mouse double click when you did not want then same idea, however it also happens during normal use and is only really a failure when it goes beyond what a setup is designed to handle.

All these have equivalents inside the game code that would arguably be more elegant forms of hack, and frankly I would still start by finding most of the cheat related stuff up there and then working that either into hardpatched cheats** or editing the code that fiddles with them.

**classical speaking most cheat engines you would have heard the name of like the gameshark, action replay, codebreaker, goldfinger... work by once a frame doing the cheat (usually a write to a specific memory location). The alternative is game genie which usually changes what the system sees as a ROM and why such codes are harder to make/rarely seen but usually more potent. Hardpatching a cheat tends to involve making a proto cheat engine somewhere the game will run (see vblanks for the most popular effort -- it is a thing that happens once a frame), or finding the instructions that edit the value you care about (infinite lives can be had by finding what subtracts from the lives counter and changing that to something doing nothing, see also NOP operation, though it can be many things if there are many ways to die). In the case of the control thing then you might add something that checks for the value that is something fixed/obvious when the state you care about is happening and then disabling reads, less ideal but probably still workable is you add something that checks that value to all the control reads normally.

If you are not familiar with cheats then https://web.archive.org/web/20080309104350/http://etk.scener.org/?op=tutorial is for the GBA but cheats work much the same whether you are on an early 80s computer or a PC game released yesterday (though PC security in the modern world can make it marginally trickier).
I don't have a great reference for Wii cheat formats (for older stuff I usually go with enhacklopedia https://web.archive.org/web/20191123185806/https://doc.kodewerx.org/ ) but http://wiigeckocodes.github.io/codetypedocumentation.html looks like a reasonable thing here.
 
  • Like
Reactions: StarMiner

StarMiner

Member
OP
Newcomer
Joined
Aug 19, 2021
Messages
6
Trophies
0
Age
20
XP
28
Country
Canada
Most do better to approach things on a more abstract basis than specific games, though certainly do check

5 lives instead of 99 can probably be done with a cheat.

Indeed if there is an infinite lives code already you can probably twist it to be what you seek; most modern cheat engines have a "IF this location equals (or less than/greater than in even better offerings) this then do this cheat"
Should not be hard to do the infinite lives cheat but in turn set a value low if it is greater than another. This is rarely done (most times people use it to dodge issues with infinite time) but people wanting challenge modes is usually when it is seen.

This is amazing! Thanks so much. I don't understand half the things said but you've given great explanations on how to find them so I'll get to work on that as soon as I can! May respond back to this thread if I get very stuck and will state the full conclusion to this problem if/once I get it working.
 
  • Like
Reactions: BlazeMasterBM

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    I @ idonthave: :)