Super Mario 64 DS VC patcher for improved controls (full analogue movement and camera rotation with right analogue stick)

MikaDubbz

Well-Known Member
OP
Member
Joined
Dec 12, 2017
Messages
3,836
Trophies
1
Age
36
XP
7,149
Country
United States
I found this on Discord and noted it wasn't being talked about here. Use it in conjunction with HIDtoVPAD's ability to remap the GamePad's controls and you can get the best functioning version of Mario 64 DS you can imagine. Like now that this exists, it might become my definitive way to play Mario 64.

Download the homebrew patcher in the Github here: https://github.com/LRFLEW/AM64DS_WiiU
PLEASE, make sure you read the info at the bottom of the page there, if you used Mario 64 DS to install Haxchi/CBHC, DO NOT use the homebrew patcher on your copy of Mario 64 DS, or you will brick.
All Credit for the patcher goes to @LRFLEW (if you see this, I hope you don't mind that I'm posting this topic for your program here, it's so great, and it seems a shame to limit it's reach to Discord).

The patcher gives the left stick full analogue control of Mario/the others, including naturally building up speed instead of having to hold the run button. Furthermore, it makes the right analogue stick rotate the camera left or right instead of having to touch the screen to move the camera, and removes the camera rotation images from the touch screen.

The controls of the VC game are otherwise the same after patching, but if you're like me, parts of how the DS VC games' buttons are mapped do not feel intuitive to Mario 64 DS, especially when compared to the original Mario 64, and unlike other VC menus on the Wii U, DS games do not offer a built-in button remapping feature. So if you download my included config file, and place it in \wiiu\controller on your SD card, launch HIDtoVPAD, hit + on the GamePad and you'll boot back to the Wii U menu with the controls remapped as such:

ZL registers as R, this let's ZL be your crouch/ground pound
ZR registers as L, this let's ZR pull the focus of the camera behind you
L registers as ZR, this let's the little used L be the button that brings up the DS VC menu
Y registers as A, this let's Y be another button to punch and dive, this feels much more true to Mario 64 than using A up to the right of B to punch and dive
R registers as Y, this let's R function as your run button. You no longer really need a run button since your analogue stick naturally makes you run as you push the stick harder, like in the original N64 experience. BUT, you can run in place with the run button to build up speed before moving, not needed for the game necessarily, but it's there if you want it.

The rest of the controls feel natural and stay as they were. I know you essentially have two A buttons, but I think many may still want to naturally hit the real A button for confirming things within the game and playing the minigames. And X still functions as your camera-mode change. You do lose anything mapping as ZL, but that's because ZL did nothing for DS VC games.

Feel free to edit the config file as you desire if any of those buttons aren't how you'd prefer to play the game. Give it all a go, I think this really makes it a definitive way to play not just Mario 64 DS, but perhaps even Mario 64 in general (depending on if you enjoy the additions to the title or not, I do, and you know before you start considering modded versions of the games, or things done with the decompiled build like Render96).


Edit: Finally, follow Vague Rant's guide down here to give Mario 64 DS proper (non stretched) widescreen.
 

Attachments

  • Mario64DSRemapConfig.zip
    242 bytes · Views: 290
Last edited by MikaDubbz,

Lostbhoy

HEY YOU GUYS!
Member
Joined
Aug 23, 2009
Messages
2,458
Trophies
2
Age
44
Location
Scotland
XP
5,055
Country
United Kingdom
Hey Mika this is a great mod and great find again man! I do have one silly question tho... How do i use it?? I put the folder in wii u apps but it doesn't get recognised? There doesn't seem to be any wii u rpx/elf?

I know I'm being dumb lol!!
 

MikaDubbz

Well-Known Member
OP
Member
Joined
Dec 12, 2017
Messages
3,836
Trophies
1
Age
36
XP
7,149
Country
United States
Hey Mika this is a great mod and great find again man! I do have one silly question tho... How do i use it?? I put the folder in wii u apps but it doesn't get recognised? There doesn't seem to be any wii u rpx/elf?

I know I'm being dumb lol!!
You are downloading the patcher from the Github site, right? You want the am64ds.zip file under the releases link on the right side of the github page I linked to.
 
  • Like
Reactions: Lostbhoy

Lostbhoy

HEY YOU GUYS!
Member
Joined
Aug 23, 2009
Messages
2,458
Trophies
2
Age
44
Location
Scotland
XP
5,055
Country
United Kingdom
Lol, i think so!! I have a folder named AM64_WiiU-main and i found one named am64ds.zip when i click v1.0.0 on the page you linked.

Only the am64ds.zip has a wii u executable in it.

Edit... Oh did i dl the source code? Oops!

Yeah got it now man, told you I was being dumb!

Thanks for that and for the config file, I agree this a game changer as I always loved the ds version of this game but yeah, the control scheme sucked and these are just awesome!
 
Last edited by Lostbhoy,

MikaDubbz

Well-Known Member
OP
Member
Joined
Dec 12, 2017
Messages
3,836
Trophies
1
Age
36
XP
7,149
Country
United States
Lol, i think so!! I have a folder named AM64_WiiU-main and i found one named am64ds.zip when i click v1.0.0 on the page you linked.

Only the am64ds.zip has a wii u executable in it.

Edit... Oh did i dl the source code? Oops!
lol yeah, don't get the source code, grab the .zip file above it.
 
  • Like
Reactions: Lostbhoy

emcintosh

On the internet, everyone knows I'm a cat
Member
Joined
Dec 4, 2016
Messages
434
Trophies
0
XP
2,293
Country
United Kingdom
Thanks for telling us about this. When I’m back home with access to my Wii U I’ll give it a go. I’m tempted to try extracting, patching and repacking the rom (or injecting a pre-patched version, as mentioned in the Haxchi workaround) with a 16:9 code and editing the screen layout to widescreen (maybe also with RenderScale=2), as I don’t think the VC has any ion-console cheat support and TCPGecko might get unloaded by HID-to-Vpad. I’ll report on how I get on.

I’ve found a site - https://forums.desmume.org/viewtopic.php?id=10849 - with a possible code for the EUR version, but does anyone have a source for the 16:9 code (not the 16:10 one needed for 3DS)?
 
Last edited by emcintosh,

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,462
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,278
Country
@emcintosh Just a note, the only thing that changes for most aspect ratio cheat codes is the number you're using to replace the original 0x1555. It's calculated as 0x1000*(desired aspect ratio), so 0x1000*4/3 = 0x1555 (after rounding), 0x1000*16/10 = 0x199A, 0x1000*16/9 = 0x1C72, etc. So if you see 199A in a 3DS code, you can replace that with 1C72 for 16:9 widescreen, etc.

However, before doing that, it's worth noting that the way LRFLEW's patched version works actually involves reading some custom patches out of an unused area of the ROM, so you can manually patch in the widescreen code that way and have LRFLEW's mod implement the widescreen hack itself, rather than having two competing code handlers running. LRFLEW's instructions for the USA version:

Ok, so once you get the AM64DS patched ROM, you should see a blob of data that the patcher added starting at file offset 0x65A0. I actually added a small signature to it with the ASCII "AMDS" at 0x65FC. The end of that blob is at 0x6664, and starting from there add the following hex:
Code:
01 00 00 00 30 D0 00 02 72 1C 00 00 01 00 00 80 3C B9 0B 02 55 15 00 00 72 1C 00 00 01 00 00 80 90 C4 10 01 55 15 00 00 72 1C 00 00
If you're wondering how it works, any_pat just uses a string of 32-bit values. First is a length of 32-bit values, with the high bit set indicating an "overlay patch". Second is a memory offset for the patch to be applied. After that is just the series of 32-bit values to write, or pairs of 32-bit values - the first being the current value and the second being the new value - for overlay patches. The any_pat injection keeps going until it reads a length value of 0, where it stops.

So you run the patcher first (because the patcher needs to find a matching ROM), then you can add your own widescreen hack to the ROM after that. Use Laf111's WiiUFtpServer to download the ROM zip and reupload it; ftpiiu_everywhere changes the file permissions and the game will stop working. Here's the result:

sBKnzsRSLpdLzSMqWjXHpKHP


Re: RenderScale, that's not currently possible with the patcher. Super Mario 64 DS is not one of the games which supports the RenderScale value--the hachihachi.rpx (Nintendo DS emulator) build used by SM64DS ignores that setting. LRFLEW's patcher cannot patch any other emulator versions, only the SM64DS one, which means you can't do creative tricks like injecting Mario 64 into an older DS VC title to get RenderScale support.

For what it's worth, I tried running an injected Mario 64 with RenderScale 2 and while it looks nicer, the performance is not worth it. The whole reason RenderScale was disabled was that games run poorly with it enabled, so as expected there is major slowdown when running Mario 64 with RenderScale 2. As such, while it would be theoretically possible to support other hachihachi builds, LRFLEW didn't bother, as the reward is incredibly underwhelming. If you want to display at higher resolutions, stick to using PC emulators; LRFLEW has developed similar patches for those.
 

emcintosh

On the internet, everyone knows I'm a cat
Member
Joined
Dec 4, 2016
Messages
434
Trophies
0
XP
2,293
Country
United Kingdom
the only thing that changes for most aspect ratio cheat codes is the number you're using to replace the original 0x1555. So if you see 199A in a 3DS code, you can replace that with 1C72 for 16:9 widescreen, etc.

However, before doing that, it's worth noting that the way LRFLEW's patched version works actually involves reading some custom patches out of an unused area of the ROM, so you can manually patch in the widescreen code that way and have LRFLEW's mod implement the widescreen hack itself, rather than having two competing code handlers running. So you run the patcher first (because the patcher needs to find a matching ROM), then you can add your own widescreen hack to the ROM after that. Use Laf111's WiiUFtpServer to download the ROM zip and reupload it; ftpiiu_everywhere changes the file permissions and the game will stop working.

Re: RenderScale, that's not currently possible with the patcher. Super Mario 64 DS is not one of the games which supports the RenderScale value--the hachihachi.rpx (Nintendo DS emulator) build used by SM64DS ignores that setting. The whole reason RenderScale was disabled was that games run poorly with it enabled, so as expected there is major slowdown when running Mario 64 with RenderScale 2.

Vague Rant, thank you so much for this additional information. I could have spent many hours trying to identify the multiple reasons why my intended method didn’t work!

I have some questions about how I include a widescreen code in the modifications made by AM64DS. If you don’t have the time to spell things out for a novice, please could you direct me to the AM64 Discord channel for me to do my own research?

To add a widescreen patch, do I only need the 24 hexadecimal characters you quoted rather than the 160 in the code I found? Do I add characters or overwrite existing ones?
 
Last edited by emcintosh,

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,462
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,278
Country
Vague Rant, thank you so much for this additional information. I could have spent many hours trying to identify the multiple reasons why my intended method didn’t work!

I have some questions about how I include a widescreen code in the modifications made by AM64DS. If you don’t have the time to spell things out for a novice, please could you direct me to the AM64 Discord channel for me to do my own research?

To add a widescreen patch, can I just paste the 160 hexadecimal characters of the code I found (inserting or overwriting?)? At the end address you quoted?

I'm not sure if there's a dedicated Discord, I spoke to LRFLEW on the For The Users Discord (Wii U & Switch homebrew dev) in the #wiiu channel.

Honestly I'm only barely able to follow the process myself, but I'll do my best:

First up, just for reference, is LRFLEW's USA Rev 1 widescreen code. I'm going to break it up into lines for what (I think) each one means.

Code:
01 00 00 00 // patch type: memory, length: 1 line
30 D0 00 02 //   first patch memory address: 0x0200D030
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
3C B9 0B 02 //   second patch memory address: 0x020BB93C
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
90 C4 10 01 //   third patch memory address: 0x0110C490 <-- possible typo? starting at 01 seems odd, 02 intended?
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

EDIT: If I'm remembering correctly, the third widescreen code is for local multiplayer mode, so even if that code is wrong, it shouldn't matter on Wii U where we don't have access to multiplayer anyway. /EDIT

So there's three patches going on here, just like the cheat codes, but I personally don't know anything about overlays, etc. so I'm flying blind. Still, it's clear that what this does is pretty close to what the cheat code does, the addresses and values are largely the same. So, just blindly following the USA Rev 1 code even though I don't actually understand it, I think this is what you'd want to put in the Europe ROM:

Code:
01 00 00 00
3C D0 00 02
72 1C 00 00

01 00 00 80
5C 02 0C 02
55 15 00 00
72 1C 00 00

01 00 00 80
70 53 11 01
55 15 00 00
72 1C 00 00

Just in case it's simpler to copy, here's exactly the same values from the above code block but back in a single line:

Code:
01 00 00 00 3C D0 00 02 72 1C 00 00 01 00 00 80 5C 02 0C 02 55 15 00 00 72 1C 00 00 01 00 00 80 70 53 11 01 55 15 00 00 72 1C 00 00

The area where you're pasting that code will be all zeroes and you should over-write them, not insert them. As for whether it's at the same address, I really have no idea. To be certain, the easy way to do it is hit Ctrl+F in your hex editor of choice and look for "AMDS" (without the quotes), the signature LRFLEW's patcher leaves behind in the ROM. In USA Rev 1, this is what that looks like after you've pasted in the code (green highlight will be all zeroes before you have pasted the code):

wideflew.png


(If you're looking a little too closely, you might notice that I'm using 238E instead of 1C72--don't mind me, I'm just running at 20:9 widescreen instead.)

It should be pretty similar in the Europe ROM--if it's not at the same address, it'll be pretty close and you can use the "AMDS" text as a reference to know that you're in the right place.

Once you've got the patch written in and saved, you can zip up your ROM and upload it over the one that's stored on your Wii U with WiiUFtpServer. Don't forget you'll also need to modify your configuration_cafe.json to change the "upper" screen size to a 16:9 resolution, e.g. 1024 576 for a perfect 4x3x integer scale, or 1280 720 if you want to just fill the entire screen. If you go with 1024 576, you can also fit a 256 192 bottom screen on the TV at the same time, so the minimap is on the TV as well, like this:

kTDLIsGQytjvXtrLVuYgGPVI


After replacing the ROM, make sure to use the ZL button menu to reset the game, otherwise it will still be running in 4:3.
 
Last edited by Vague Rant,

GeeBeeYaY

Well-Known Member
Newcomer
Joined
Dec 20, 2015
Messages
83
Trophies
0
Age
44
XP
775
Country
United States
Whoa, This IS a BIG deal. by far the best Christmas present this year! :D
Any chance this patch could be done for playing it on a 3DS too?
 

trogdon

Well-Known Member
Newcomer
Joined
Aug 2, 2010
Messages
64
Trophies
1
XP
454
Country
United States
@emcintosh Just a note, the only thing that changes for most aspect ratio cheat codes is the number you're using to replace the original 0x1555. It's calculated as 0x1000*(desired aspect ratio), so 0x1000*4/3 = 0x1555 (after rounding), 0x1000*16/10 = 0x199A, 0x1000*16/9 = 0x1C72, etc. So if you see 199A in a 3DS code, you can replace that with 1C72 for 16:9 widescreen, etc.

However, before doing that, it's worth noting that the way LRFLEW's patched version works actually involves reading some custom patches out of an unused area of the ROM, so you can manually patch in the widescreen code that way and have LRFLEW's mod implement the widescreen hack itself, rather than having two competing code handlers running. LRFLEW's instructions for the USA version:



So you run the patcher first (because the patcher needs to find a matching ROM), then you can add your own widescreen hack to the ROM after that. Use Laf111's WiiUFtpServer to download the ROM zip and reupload it; ftpiiu_everywhere changes the file permissions and the game will stop working. Here's the result:

sBKnzsRSLpdLzSMqWjXHpKHP


Re: RenderScale, that's not currently possible with the patcher. Super Mario 64 DS is not one of the games which supports the RenderScale value--the hachihachi.rpx (Nintendo DS emulator) build used by SM64DS ignores that setting. LRFLEW's patcher cannot patch any other emulator versions, only the SM64DS one, which means you can't do creative tricks like injecting Mario 64 into an older DS VC title to get RenderScale support.

For what it's worth, I tried running an injected Mario 64 with RenderScale 2 and while it looks nicer, the performance is not worth it. The whole reason RenderScale was disabled was that games run poorly with it enabled, so as expected there is major slowdown when running Mario 64 with RenderScale 2. As such, while it would be theoretically possible to support other hachihachi builds, LRFLEW didn't bother, as the reward is incredibly underwhelming. If you want to display at higher resolutions, stick to using PC emulators; LRFLEW has developed similar patches for those.

I just finished my 150 star play through of Mario 64DS injected into New Super Mario Bros DS with renderscale at 2x, and it ran pretty smoothly except for one instance before the second boss bowser fight dropping the frame rate. Was very playable to me

Would’ve liked this analog mod but I do like the higher rendering resolution. Hopefully one day we can have both!
 

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,462
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,278
Country
I just finished my 150 star play through of Mario 64DS injected into New Super Mario Bros DS with renderscale at 2x, and it ran pretty smoothly except for one instance before the second boss bowser fight dropping the frame rate. Was very playable to me

Would’ve liked this analog mod but I do like the higher rendering resolution. Hopefully one day we can have both!
The slowdown occurs throughout the game, not just in one Bowser fight. It gets particularly bad in certain areas but sure, the game is always playable. Still, if you care enough about the game to want analog controls and increased resolution, it's always going to be better on PC:

https://github.com/LRFLEW/AM64DS_DeSmuME
 

MikaDubbz

Well-Known Member
OP
Member
Joined
Dec 12, 2017
Messages
3,836
Trophies
1
Age
36
XP
7,149
Country
United States
I'm not sure if there's a dedicated Discord, I spoke to LRFLEW on the For The Users Discord (Wii U & Switch homebrew dev) in the #wiiu channel.

Honestly I'm only barely able to follow the process myself, but I'll do my best:

First up, just for reference, is LRFLEW's USA Rev 1 widescreen code. I'm going to break it up into lines for what (I think) each one means.

Code:
01 00 00 00 // patch type: memory, length: 1 line
30 D0 00 02 //   first patch memory address: 0x0200D030
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
3C B9 0B 02 //   second patch memory address: 0x020BB93C
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
90 C4 10 01 //   third patch memory address: 0x0110C490 <-- possible typo? starting at 01 seems odd, 02 intended?
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

EDIT: If I'm remembering correctly, the third widescreen code is for local multiplayer mode, so even if that code is wrong, it shouldn't matter on Wii U where we don't have access to multiplayer anyway. /EDIT

So there's three patches going on here, just like the cheat codes, but I personally don't know anything about overlays, etc. so I'm flying blind. Still, it's clear that what this does is pretty close to what the cheat code does, the addresses and values are largely the same. So, just blindly following the USA Rev 1 code even though I don't actually understand it, I think this is what you'd want to put in the Europe ROM:

Code:
01 00 00 00
3C D0 00 02
72 1C 00 00

01 00 00 80
5C 02 0C 02
55 15 00 00
72 1C 00 00

01 00 00 80
70 53 11 01
55 15 00 00
72 1C 00 00

Just in case it's simpler to copy, here's exactly the same values from the above code block but back in a single line:

Code:
01 00 00 00 3C D0 00 02 72 1C 00 00 01 00 00 80 5C 02 0C 02 55 15 00 00 72 1C 00 00 01 00 00 80 70 53 11 01 55 15 00 00 72 1C 00 00

The area where you're pasting that code will be all zeroes and you should over-write them, not insert them. As for whether it's at the same address, I really have no idea. To be certain, the easy way to do it is hit Ctrl+F in your hex editor of choice and look for "AMDS" (without the quotes), the signature LRFLEW's patcher leaves behind in the ROM. In USA Rev 1, this is what that looks like after you've pasted in the code (green highlight will be all zeroes before you have pasted the code):

View attachment 291542

(If you're looking a little too closely, you might notice that I'm using 238E instead of 1C72--don't mind me, I'm just running at 20:9 widescreen instead.)

It should be pretty similar in the Europe ROM--if it's not at the same address, it'll be pretty close and you can use the "AMDS" text as a reference to know that you're in the right place.

Once you've got the patch written in and saved, you can zip up your ROM and upload it over the one that's stored on your Wii U with WiiUFtpServer. Don't forget you'll also need to modify your configuration_cafe.json to change the "upper" screen size to a 16:9 resolution, e.g. 1024 576 for a perfect 4x3x integer scale, or 1280 720 if you want to just fill the entire screen. If you go with 1024 576, you can also fit a 256 192 bottom screen on the TV at the same time, so the minimap is on the TV as well, like this:

kTDLIsGQytjvXtrLVuYgGPVI


After replacing the ROM, make sure to use the ZL button menu to reset the game, otherwise it will still be running in 4:3.
Thanks for the info on how to patch proper widescreen in too. The combination of all these little hacks are really helping Mario 64 DS be the best game it can be after all these years. Shame about renderscale, but I too have noticed the slowdown when I've tried it with the game before. Plus it was annoying how leaving the game to the home menu would always stall on the loading back to the menu screen when you utilized render scale on any DS VC games.
 
  • Like
Reactions: Vague Rant

one-piece

Well-Known Member
Newcomer
Joined
May 17, 2009
Messages
96
Trophies
1
Location
Mexico
XP
851
Country
Mexico
The slowdown occurs throughout the game, not just in one Bowser fight. It gets particularly bad in certain areas but sure, the game is always playable. Still, if you care enough about the game to want analog controls and increased resolution, it's always going to be better on PC:

I tried the 2x Resolution by injecting the game in to NSMB (EU), it dropped frames badly even in the first level it make my head hurt, is there a better game to inject the game into for it to work with 2x?
As far as i remember, did only NSMB (EU) work with 2x?
 

one-piece

Well-Known Member
Newcomer
Joined
May 17, 2009
Messages
96
Trophies
1
Location
Mexico
XP
851
Country
Mexico
To help anyone who need it, after trying to make this work. the hex values to apply widescreen in the prepatched rom are these in this section-- Thank @Vague Rant

USA Codes:
01 00 00 00 30 D0 00 02 72 1C 00 00 01 00 00 80 3C B9 0B 02 55 15 00 00 72 1C 00 00 01 00 00 80 90 C4 10 01 55 15 00 00 72 1C 00 00

Sin título.png
 
  • Like
Reactions: Chainhunter

Gallaer

Well-Known Member
Member
Joined
Apr 28, 2021
Messages
157
Trophies
0
XP
1,032
Country
United States
I'm not sure if there's a dedicated Discord, I spoke to LRFLEW on the For The Users Discord (Wii U & Switch homebrew dev) in the #wiiu channel.

Honestly I'm only barely able to follow the process myself, but I'll do my best:

First up, just for reference, is LRFLEW's USA Rev 1 widescreen code. I'm going to break it up into lines for what (I think) each one means.

Code:
01 00 00 00 // patch type: memory, length: 1 line
30 D0 00 02 //   first patch memory address: 0x0200D030
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
3C B9 0B 02 //   second patch memory address: 0x020BB93C
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
90 C4 10 01 //   third patch memory address: 0x0110C490 <-- possible typo? starting at 01 seems odd, 02 intended?
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

EDIT: If I'm remembering correctly, the third widescreen code is for local multiplayer mode, so even if that code is wrong, it shouldn't matter on Wii U where we don't have access to multiplayer anyway. /EDIT

So there's three patches going on here, just like the cheat codes, but I personally don't know anything about overlays, etc. so I'm flying blind. Still, it's clear that what this does is pretty close to what the cheat code does, the addresses and values are largely the same. So, just blindly following the USA Rev 1 code even though I don't actually understand it, I think this is what you'd want to put in the Europe ROM:

Code:
01 00 00 00
3C D0 00 02
72 1C 00 00

01 00 00 80
5C 02 0C 02
55 15 00 00
72 1C 00 00

01 00 00 80
70 53 11 01
55 15 00 00
72 1C 00 00

Just in case it's simpler to copy, here's exactly the same values from the above code block but back in a single line:

Code:
01 00 00 00 3C D0 00 02 72 1C 00 00 01 00 00 80 5C 02 0C 02 55 15 00 00 72 1C 00 00 01 00 00 80 70 53 11 01 55 15 00 00 72 1C 00 00

The area where you're pasting that code will be all zeroes and you should over-write them, not insert them. As for whether it's at the same address, I really have no idea. To be certain, the easy way to do it is hit Ctrl+F in your hex editor of choice and look for "AMDS" (without the quotes), the signature LRFLEW's patcher leaves behind in the ROM. In USA Rev 1, this is what that looks like after you've pasted in the code (green highlight will be all zeroes before you have pasted the code):

View attachment 291542

(If you're looking a little too closely, you might notice that I'm using 238E instead of 1C72--don't mind me, I'm just running at 20:9 widescreen instead.)

It should be pretty similar in the Europe ROM--if it's not at the same address, it'll be pretty close and you can use the "AMDS" text as a reference to know that you're in the right place.

Once you've got the patch written in and saved, you can zip up your ROM and upload it over the one that's stored on your Wii U with WiiUFtpServer. Don't forget you'll also need to modify your configuration_cafe.json to change the "upper" screen size to a 16:9 resolution, e.g. 1024 576 for a perfect 4x3x integer scale, or 1280 720 if you want to just fill the entire screen. If you go with 1024 576, you can also fit a 256 192 bottom screen on the TV at the same time, so the minimap is on the TV as well, like this:

kTDLIsGQytjvXtrLVuYgGPVI


After replacing the ROM, make sure to use the ZL button menu to reset the game, otherwise it will still be running in 4:3.
So, how do I do this exactly, a lot of the instructions were extremely confusing and I don't know what tools I need
 

andot

Well-Known Member
Newcomer
Joined
Apr 11, 2017
Messages
57
Trophies
0
Age
43
XP
533
Country
Switzerland
I'm not sure if there's a dedicated Discord, I spoke to LRFLEW on the For The Users Discord (Wii U & Switch homebrew dev) in the #wiiu channel.

Honestly I'm only barely able to follow the process myself, but I'll do my best:

First up, just for reference, is LRFLEW's USA Rev 1 widescreen code. I'm going to break it up into lines for what (I think) each one means.

Code:
01 00 00 00 // patch type: memory, length: 1 line
30 D0 00 02 //   first patch memory address: 0x0200D030
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
3C B9 0B 02 //   second patch memory address: 0x020BB93C
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

01 00 00 80 // patch type: overlay, length: 1 line
90 C4 10 01 //   third patch memory address: 0x0110C490 <-- possible typo? starting at 01 seems odd, 02 intended?
55 15 00 00 //     old value: 0x1555 =  4:3
72 1C 00 00 //     new value: 0x1C72 = 16:9

EDIT: If I'm remembering correctly, the third widescreen code is for local multiplayer mode, so even if that code is wrong, it shouldn't matter on Wii U where we don't have access to multiplayer anyway. /EDIT

So there's three patches going on here, just like the cheat codes, but I personally don't know anything about overlays, etc. so I'm flying blind. Still, it's clear that what this does is pretty close to what the cheat code does, the addresses and values are largely the same. So, just blindly following the USA Rev 1 code even though I don't actually understand it, I think this is what you'd want to put in the Europe ROM:

Code:
01 00 00 00
3C D0 00 02
72 1C 00 00

01 00 00 80
5C 02 0C 02
55 15 00 00
72 1C 00 00

01 00 00 80
70 53 11 01
55 15 00 00
72 1C 00 00

Just in case it's simpler to copy, here's exactly the same values from the above code block but back in a single line:

Code:
01 00 00 00 3C D0 00 02 72 1C 00 00 01 00 00 80 5C 02 0C 02 55 15 00 00 72 1C 00 00 01 00 00 80 70 53 11 01 55 15 00 00 72 1C 00 00

The area where you're pasting that code will be all zeroes and you should over-write them, not insert them. As for whether it's at the same address, I really have no idea. To be certain, the easy way to do it is hit Ctrl+F in your hex editor of choice and look for "AMDS" (without the quotes), the signature LRFLEW's patcher leaves behind in the ROM. In USA Rev 1, this is what that looks like after you've pasted in the code (green highlight will be all zeroes before you have pasted the code):

View attachment 291542

(If you're looking a little too closely, you might notice that I'm using 238E instead of 1C72--don't mind me, I'm just running at 20:9 widescreen instead.)

It should be pretty similar in the Europe ROM--if it's not at the same address, it'll be pretty close and you can use the "AMDS" text as a reference to know that you're in the right place.

Once you've got the patch written in and saved, you can zip up your ROM and upload it over the one that's stored on your Wii U with WiiUFtpServer. Don't forget you'll also need to modify your configuration_cafe.json to change the "upper" screen size to a 16:9 resolution, e.g. 1024 576 for a perfect 4x3x integer scale, or 1280 720 if you want to just fill the entire screen. If you go with 1024 576, you can also fit a 256 192 bottom screen on the TV at the same time, so the minimap is on the TV as well, like this:

kTDLIsGQytjvXtrLVuYgGPVI


After replacing the ROM, make sure to use the ZL button menu to reset the game, otherwise it will still be running in 4:3.
I tried this widescreen patch, but it doesn't work. The image is just stretched.
 

Site & Scene News

Popular threads in this forum

Recent Content

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Sorry for accidentally bending over