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

HeadstrongWolf

Well-Known Member
Newcomer
Joined
Mar 20, 2017
Messages
60
Trophies
0
Age
28
Location
Water Temple.
XP
237
Country
United States
Kinda unrelated, but started looking into the widescreen patch. I got lost when I needed to hex edit and whatnot, and was a little disappointed I couldn't proceed.

But then I found this tool
https://github.com/phacoxcll/VCNDSLayout/releases/tag/alpha-2
So I stretched the screen so there was less unused space on the gamepad. For now, that's fine with me.

...But now all the virtual console menus are in Spanish? Which, I don't know if I did something when editing the Strings.json... But it's not a dealbreaker.
 

princessvini

Well-Known Member
Newcomer
Joined
Jan 18, 2019
Messages
46
Trophies
0
Age
28
XP
681
Country
France
I just sucess putting the resolution x2 on Kingdom hearts nds games that i injected myself and i wonder if its possible to map the buttons too ?
 

Kirbeast

Active Member
Newcomer
Joined
Feb 17, 2016
Messages
31
Trophies
0
Age
24
XP
223
Country
United States
Will try to put together a more granular, step-by-step process. This guide will specifically assume you have the USA version, because that's what I have and I've already offered as much as I can for the Europe release.

Requirements​

Installed to your Wii U​

  • official Super Mario 64 DS (USA) Virtual Console release
    it doesn't need to be legitimately purchased, but it cannot be an injection​
  • some manner of CFW
    Mocha, Haxchi, Tiramisu, whatever floats your boat​

Added to wiiu/apps on your SD card​

Installed on your PC​

  • an FTP client
    FileZilla is a popular choice​
  • a text editor
    Notepad is fine, but if you do a lot of technical editing like this you may want to consider something like Notepad++
  • a hex editor
    Maël Hörz's HxD is a popular choice on Windows and the one I normally use​

Directions​

  1. Set up all the requirements. Have Super Mario 64 DS installed on your Wii U, download the patcher and FTP server above and place them on your Wii U's SD card in the wiiu/apps folder with your other Wii U homebrew apps. Have your Wii U running a custom firmware. Make sure you have an FTP client and a hex editor on your PC.
  2. Open the Homebrew Launcher on your Wii U and run LRFLEW's AM64DS patcher. Once it has scanned your system and found Super Mario 64 DS, confirm that you want to apply the patch.
  3. Return to the Homebrew Launcher and run Laf111's WiiUFtpServer.
  4. In your PC's FTP client, connect to the Wii U and navigate to storage_usb/usr/title/00050000/101C3400/content/0010
    Remember, this is for the USA release. For Japan, it's 101C3300 and Europe is 101C3500, but I'm not going to be covering those versions any further. Leave your FTP client running, you'll need it again soon.​
  5. Download configuration_cafe.json and rom.zip.
  6. Using your text editor of choice, open configuration_cafe.json and manually edit the layout to accommodate your top screen being 16:9 instead of 4:3. This is kind of complicated and will require you to do some math. For reference, here's the layout I use:
    Code:
                        "name_string_id": "VCM_LAYOUT_1_NAME"
                    },
                    {
                        "screen": [
                            {
                                "source": "upper",
                                "rotation": 0,
                                "size": "1024 576",
                                "target": "tv",
                                "position": "0 72"
                            },
                            {
                                "source": "lower",
                                "rotation": 0,
                                "size": "256 192",
                                "target": "tv",
                                "position": "1024 456"
                            },
                            {
                                "source": "lower",
                                "rotation": 0,
                                "size": "512 384",
                                "target": "drc",
                                "position": "171 48"
                            }
                        ],
    Result:

    View attachment 291542

    The layout you use is up to you. You may not want this specific layout, and you may not want to do it in LAYOUT_1 either. Modify the "size" and "position" values for each screen until you have what you want in the layout position you want. The "size" is how big the screen should be, the "target" is whether it's on the TV or GamePad, and the "position" is where on the screen you want the top left of the DS screen to be. The resolution of DS Virtual Console is 1280 by 720, so that's as high as you should go.

    I'm not going to walk you through every possible layout, but here's another one some people might want:​
    Code:
     "name_string_id": "VCM_LAYOUT_1_NAME"
                    },
                    {
                        "screen": [
                            {
                                "source": "upper",
                                "rotation": 0,
                                "size": "1280 720",
                                "target": "tv",
                                "position": "0 0"
                            },
                            {
                                "source": "lower",
                                "rotation": 0,
                                "size": "640 480",
                                "target": "drc",
                                "position": "107 0"
                            }
                        ],
    Result:

    sBKnzsRSLpdLzSMqWjXHpKHP


    This one fills the entire TV with the top screen and a 4:3 area of the GamePad with the bottom screen. You have multiple layouts, so you can configure both of these in different layout slots if you like.​
  7. Open rom.zip and copy WUP-N-DASE.srl out of the zip and into the parent folder (where your configuration_cafe.json and rom.zip are).
  8. Open WUP-N-DASE.srl with your hex editor. In case you couldn't tell, this is the Super Mario 64 DS ROM.
  9. Navigate to 0x6664 in the ROM. In HxD, you can just press Ctrl+G and type in 6664 then hit Enter to jump to this location. Write the following data into that location:
    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
    In HxD, you can press Ctrl+B (not V! or right click and select "Paste write" to overwrite this data. You must not "insert" the data (paste normally) or your ROM will just completely stop working. It should look roughly like this when you're done:

    View attachment 291542
  10. Save your modified ROM and then copy it back into rom.zip, replacing the old one.
  11. Back in your FTP client, upload your modified configuration_cafe.json and rom.zip back to where you downloaded them from (storage_usb/usr/title/00050000/101C3400/content/0010). Again, replace the versions that are already there.
  12. Return to the Wii U Menu by exiting WiiUFtpServer and the Homebrew Launcher.
  13. Launch your Super Mario 64 DS Virtual Console title. Reset the game from the ZR menu and select one of your custom widescreen layouts.
  14. Play Super Mario 64 DS with analog controls in widescreen.
Thank you very much for this guide! it was really helpful.


I noticed that some the instructions for editing the configuration_cafe.json are a bit unclear. There are 10 different layouts you can edit. After a bit of digging with VCNDSLayout Editor I found that VCM_LAYOUT_9_EXPLANATION is the default layout with the top screen on the TV and the bottom on the Wii U Game Pad. Lining up with the explanation in the virtual console menu.
Here is the configuration I used to full screen the TV and the Wii U Game pad.
JSON:
"desc_string_id": "VCM_LAYOUT_9_EXPLANATION"
                },
                {
                    "screen": [
                        {
                            "source": "upper",
                            "rotation": 0,
                            "size": "1280 720",
                            "target": "tv",
                            "position": "0 0"
                        },
                        {
                            "source": "lower",
                            "rotation": 0,
                            "size": "854 480",
                            "target": "drc",
                            "position": "0 0"
                        }
                    ],



Something else I messed with is the pixel art upscaler
JSON:
"Display": {
            "PixelArtUpscaler": 4,
            "Brightness": 80
        },
This makes the sharpness of the pixels look more rounded. Not that is necessarily looks any better. It's up to you if it looks better. I set mine to 4 for a "less pixelated" look.
 
General chit-chat
Help Users
  • K3N1 @ K3N1:
    Yeah but that's art not porn
  • Veho @ Veho:
    It depends on where you live.
  • Veho @ Veho:
    In Murrica it's considered hardcore porn.
  • K3N1 @ K3N1:
    Isn't it now what site you're on these days and you'll instantly be slayed if it's Twitter?
  • The Real Jdbye @ The Real Jdbye:
    i've seen lots of porn on twitter
  • K3N1 @ K3N1:
    Yes but it mostly involves trying to get someone cancelled
  • Veho @ Veho:
    Twitter doesn't give a fuck any more, the only thing that will get you banned there is criticizing Musk.
  • Skelletonike @ Skelletonike:
    Tbf, there's too much censorship nowadays.
  • K3N1 @ K3N1:
    Hate censorship hurt feelings
  • K3N1 @ K3N1:
    Life might be like a box of chocolates but it sure doesn't taste like it
  • Veho @ Veho:
    Censorship hurts my feefees.
  • Veho @ Veho:
    I can't even say we need to exterminate the lesser races without some pearl clutching woke librul getting mad at me.
  • K3N1 @ K3N1:
    I can't even say chocolate without being called a racist
  • Skelletonike @ Skelletonike:
    Friday is so far away.
  • Veho @ Veho:
    Friday is a state of mind.
  • Veho @ Veho:
    What does Friday have that other days don't?
  • Skelletonike @ Skelletonike:
    The weekend
  • Skelletonike @ Skelletonike:
    I need another weekend.
  • Visceral_88getsONE_STAR @ Visceral_88getsONE_STAR:
    visceral_88 is kind of a worthless person u know?
  • Veho @ Veho:
    Lick the car?
  • Veho @ Veho:
    Can the car be a... van? :creep:
    Veho @ Veho: Can the car be a... van? :creep: