Tutorial  Updated

How to play NDS Games in HD Widescreen (16:9, 21:9, 32:9)!

c8Cp7XCK_o.png

~ Pokémon Diamond Version in 3840x1080 HD (32:9 1080p) with 3D Rasterized in x16 Native Resolution (Captured from Retroarch DeSmuME core)

Notes


  1. If you made a cheat code using the old formula (the one @PRAGMA made) then please update your code to the new formula below which is way more accurate and fixes im-proportionate pixels.
  2. Make sure both the Cheat Code and Emulator Window aspect ratio's match or the frames may look stretched.

Supported Systems


  • DeSmuME on Windows using DeSmuMAR, or DeSmuME on any PC OS however you will need to manually configure DeSmuME to allow window stretching and manually stretch the window to be the Aspect Ratio you wish for.
  • Any core on Retroarch as you can force a specific aspect ratio in Retroarch settings.
  • DrasticDS on Mobile as it allows you to stretch the emulator display.
  • Probably others too! Perhaps MelonDS?

General steps for non-specific systems


  1. Stretch the emulator's output to be the wanted Aspect Ratio. Either by code, settings, wrapper applications, or manually.
  2. Add a cheat code (which can be found below) for the games and Aspect Ratio you wish to use.
  3. Done, run the game, as long as the cheat code works, and the emulator's output is the correct Aspect Ratio, it should look great!

Tutorial for DeSmuME on Windows using DeSmuMAR


  1. Download DeSmuMAR, copy it to C:/Program Files/DeSmuME (Create folder if needed).
    For Windows 8.1 and older: Right-click DeSmuMAR.exe -> Properties -> Compatibility Tab -> Tick "Run this program as an Administrator" checkbox -> Save.
  2. Open DeSmuMAR and it will ask you if you want to download the latest official master branch Dev Build (Auto-build from from an official AppVeyor link).
    Say (y) to download it or (n) for instructions on manually downloading DeSmuME for DeSmuMAR integration.
  3. Right-click DeSmuME.exe -> Properties -> Compatibility Tab -> Tick "Run this program as an Administrator" checkbox -> Save.
    If DeSmuME doesn't get write permission while being inside the "C:/Program Files" directory then it cant save! By doing the above with the Properties, DeSmuME will always require Administrator permission to run, which prevents the problem of saving and such not working without your realizing. Regardless if you're using DeSmuMAR or not, I recommend doing this!
  4. Open DeSmuMAR.exe and enter in the Aspect Ratio and Resolution (Size) you wish to use. It will then open DeSmuME with the exact size you asked for! It will also change various DeSmuME settings to ensure it's able to be opened to the Aspect Ratio and Resolution you specified. All this, automatically! The next time you open DeSmuMAR it will automatically apply the same Aspect Ratio and Resolution, this can be changed by deleting "DeSmuMAR.ini" and re-opening.
  5. Read on below for instructions on getting an Action Replay Cheat Code to use, a cheat code is required or the game will look stretched. When adding a Cheat Code, make sure you tick "turn on code" and if the ROM already booted, reset the ROM to apply the cheat code.
Done! Now, always open DeSmuMAR.exe instead of DeSmuME.exe from now on. You can even associate it as the default application for .nds ROMs or drag and drop supported files onto DeSmuMAR.exe and it will work!

NOTE:
  • View -> LCDs Layout -> Only Horizontal and One LCD options are supported at the moment.
  • If you want a better viewing enjoyment, then I recommend you fiddling with Config -> 3D Settings -> "General Options" Area -> "GPU Scaling Factor". This option changes the resolution of 3D objects, essentially the bigger the scaling factor, the less pixelated 3D objects will be.
  • For Pixel-based games like Zelda, Pokémon, I don't recommend using Texture Scaling as it just makes them less crisp by scaling and using a blur kernel, it doesn't really make them look better at all, if not worse.

Example 16:9 Action Replay Cheat Codes for a handful of popular games



520775D0 00001555
020775D0 00001C72
D2000000 00000000
by @KazoWAR
5201E9E4 00001555
0201E9E4 00001C72
D2000000 00000000
by ?
5202022C 00001555
0202022C 00001C72
D2000000 00000000
by ?
52022F80 00001555
02022F80 00001C72
D2000000 00000000
by ?
52282308 00001555
02282308 00001C72
D2000000 00000000
by @KazoWAR
52282328 00001555
02282328 00001C72
D2000000 00000000
by @KazoWAR
5226FE50 00001555
0226FE50 00001C72
D2000000 00000000
by @KazoWAR
5226FE90 00001555
0226FE90 00001C72
D2000000 00000000
by @KazoWAR
52039288 00001555
02039288 00001C72
D2000000 00000000
by @RadDude McCoolguy
52324998 00001555
02324998 00001C72
D2000000 00000000
by @RadDude McCoolguy
52101A64 00001555
02101A64 00001C72
D2000000 00000000
-
Side effects:
- Chickens (and possibly other entities) can walk through walls a bit near the top of the screen, possibly game breaking I dont know.
- Some NPC's eyes are glitched out and are 100% round and black, they look like zombies.
by @RadDude McCoolguy

For more, check the replies of this thread, or look below for information on crafting your own code.

Crafting your own Widescreen Code!


To craft your own cheat code, there's a fair bit involved and a lot of trial and error, you will need to have a bit of time on your hands if you haven't done something like it before.

The general idea is to look for ROUND(0x1000 * 0x04 / 0x03) which is 0x1555/5461 in the games RAM while a 3D object is loaded into view.

0x1555 is the HEX value for the camera's aspect ratio, which is 4:3. Usually this value wouldn't change, but we gonna do it anyway to trick the game into thinking our "Nintendo DS" has a 16:9 (or other) display, to get it to render 3D objects accordingly.

First things first we need to find out the HEX value for the aspect ratio we want. Down below I put the formula for calculating the HEX value for any aspect ratio you want. Do that to get the HEX value for an Aspect Ratio that would be obvious, I tend to go for something outrageous like 32:9.

Now we need to find the address that holds the 1555 value. I like to use DeSmuME's RAM Searcher to search for the original 4:3 HEX value which as explained earlier is 1555(h). More than one address will show so you will have to just trial & error every one of them until it works.

Change each address's value to the test HEX value we calculated earlier with the formula, and once it actually works, write down the address you changed, it should start with "02". Enter the address into the Cheat Code Format below to finish crafting your cheat code. Feel free to change the Aspect Ratio HEX value you used in debugging with the value you actually want, it still needs to be HEX calculated with the formula below.

Code:
{Address but change the starting "02" with "52"} 00001555
{Address} 0000{Aspect Ratio HEX Value}
D2000000 00000000

While it will just work with the Address and the value of whatever aspect ratio you want, it will be applied every frame even when it may not be in use (Thanks @KazoWAR for the tip)
The first and third line essentially just does a pre-check before trying to overwrite them.
If you're confused by the format, just take a look at the above pre-made cheat codes as an example.

Aspect Ratio Value Formula by (@Vague Rant)



chart.png

HEX(ROUND(0x1000 * WIDTH / HEIGHT))

0x1000 == 4096
ROUND == round to the nearest whole number
HEX == convert decimal to hex (base10 to base16)


e.g.
HEX(ROUND(0x1000 * 16 / 9)) == 0x1C72


Common result values using this formula to spare you time:
  • 16:9 - 0x1C72
  • 16:10 - 0x199A
  • 18:9/2:1 - 0x2000
  • 21:9 - 0x2555
  • 32:9 - 0x38E4
 
Last edited by PRAGMA,

Aorin

New Member
Newbie
Joined
Oct 1, 2020
Messages
1
Trophies
0
XP
42
Country
Greece
Hey guys, I searched without much hope for 16:9 NDS games but then I was surprised by this thread.
How can I get AR codes working via Retroarch Desmume core?

The cht cheat files look like this, in this particular case SM64DS, inside Retroarch's cheats directory:

cheat20_desc = "Hold L+R+LEFT to Play as Wario"
cheat20_code = "94000130+000000DF+22096121+00000002+D0000000+00000000"
cheat20_enable = false
cheat21_desc = "Hold L+R+RIGHT to Play as Luigi"
cheat21_code = "94000130+000000EF+22096121+00000001+D0000000+00000000"
cheat21_enable = false
cheat22_desc = "Hold L+R+DOWN to Play as Mario"
cheat22_code = "94000130+0000007F+22096121+00000000+D0000000+00000000"
 
Last edited by Aorin,

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,259
Trophies
1
Location
Ireland
Website
github.com
XP
5,071
Country
Ireland
Hey guys, I searched without much hope for 16:9 NDS games but then I was surprised by this thread.
How can I get AR codes working via Retroarch Desmume core?

The cht cheat files look like this, in this particular case SM64DS, inside Retroarch's cheats directory:

cheat20_desc = "Hold L+R+LEFT to Play as Wario"
cheat20_code = "94000130+000000DF+22096121+00000002+D0000000+00000000"
cheat20_enable = false
cheat21_desc = "Hold L+R+RIGHT to Play as Luigi"
cheat21_code = "94000130+000000EF+22096121+00000001+D0000000+00000000"
cheat21_enable = false
cheat22_desc = "Hold L+R+DOWN to Play as Mario"
cheat22_code = "94000130+0000007F+22096121+00000000+D0000000+00000000"

You can add cheats within Retroarch, but, here's an example.

52282328 00001555
02282328 00001C72
D2000000 00000000


The above code is for Pokemon White.

Replace all new lines with a +:

52282328 00001555+02282328 00001C72+D2000000 00000000

Replace all spaces with a +:

52282328+00001555+02282328+00001C72+D2000000+00000000

Then put that in the RetroArch add cheat UI, or, just add it to the cheat file manually.
 
  • Like
Reactions: aorin1 and Zense

aorin1

New Member
Newbie
Joined
Jun 26, 2016
Messages
3
Trophies
0
Age
38
XP
58
Country
Brazil
i didnt make these but i added them here just for the heck of it.

new super mario bros (U) widescreen
52062358 E1854804
0200DC5C E3A00EC3
0200AE48 E3A03000
0200AE4C E3A01000
02062338 E3A0C015
02062340 E0050C95
02062350 E1A00000
02062348 E1A05425
02000C00 E1844A0E
02000C04 E3A00015
02000C08 E0040490
02000C0C E1A04224
02000C10 EA02B3C6
D2000000 00000000
520D1BEC 00001555
020D1BEC 00001BFF
D2000000 00000000
520ADB30 E59F0014
020ADB2C EAFD4C33
D2000000 00000000

I didn't test other codes from this guy's post, but the one I tried above didn't work for the US version of NSMB DS, any hints?
 

Milozaki

Well-Known Member
Member
Joined
Feb 10, 2018
Messages
118
Trophies
0
Age
22
Website
milozaki.de
XP
1,661
Country
Germany
Hey, I'm trying to get 16: 9 working for Inazuma Eleven 2, but for me only the bottom screen is stretching for whatever reason.
I have tried all values with 1555, but I don't know what to do next.
Can anyone please help me?
 

Milozaki

Well-Known Member
Member
Joined
Feb 10, 2018
Messages
118
Trophies
0
Age
22
Website
milozaki.de
XP
1,661
Country
Germany
Okay nevermind I figured out, here are 32:9 codes for some Inazuma Eleven games (ONYL BOTTOM SCREEN!)

Inazuma Eleven 2 NDS

5208B7F0 00001555
0208B7F0 000038E4
D2000000 00000000

Inazuma Eleven 1 NDS

52089000 00001555
02089000 000038E4
D2000000 00000000

Inazuma Eleven 1 Japanese NDS

52081DCC 00001555
02081DCC 000038E4
D2000000 00000000

Inazuma Eleven 1 Silver Demo NDS

520A4174 00001555
020A4174 000038E4
D2000000 00000000

Inazuma Eleven 1Gold Demo NDS

5209CDA8 00001555
0209CDA8 000038E4
D2000000 00000000

Inazuma Eleven 2 Platinum Demo NDS

521828A8 00001555
021828A8 000038E4
D2000000 00000000


Inazuma Eleven 3 Japanese NDS

52059FA8 00001555
02059FA8 000038E4
D2000000 00000000

created by Milozaki
 

snazsnazi

New Member
Newbie
Joined
Nov 14, 2020
Messages
4
Trophies
0
Age
29
XP
52
Country
Italy
Hello to everyone, I'm not very expert in building up the formula, I would like to build a Pokémon Platino 16:9 rom ITALIAN version, can anyone guide me? I've already tried the code with the ENG version and it works very well
 

TheSubaru

New Member
Newbie
Joined
Nov 25, 2020
Messages
1
Trophies
0
Age
23
XP
43
Country
Colombia
Se podría el de new super mario y el de kingdom hearts re coded

--------------------- MERGED ---------------------------

Se pude el de new super mario y el de kingdom hearts re coded
 

SomewhataWeeb

New Member
Newbie
Joined
Dec 14, 2020
Messages
1
Trophies
0
Age
124
XP
46
Country
United Kingdom
Anyone got a European 16:9 code for Animal Crossing Wild World? I'm from the UK and I can't get my hands on an American copy.
 

slysonji

New Member
Newbie
Joined
Jan 25, 2021
Messages
1
Trophies
0
Age
34
XP
46
Country
United States
Hello.

Whenever I try to make my aspect ratio 16:9, I get this message:

Oh no! The Aspect Ratio and Resolution you chose would result in a DeSmuME window that is bigger than your display.
To reduce the size, try reduce the resolution or use a smaller aspect ratio
Since you are trying to use the same aspect ratio for DeSmuME as your Screen, i'm assuming you want to go fullscreen, if this is the case, you should lower the resolution or set the screens amount to "One LCD" in DeSmuME as that will help lower the window size.
If your curious, you tried to resize DeSmuME to 2560x1440
That size is: 0 pixels wider & 0 pixels taller than your display :O

I have One LCD on and tried Horizontal as well, still won't even start. I have a 2560x1440 display. What's the issue here?
 
  • Like
Reactions: Razor1993

UppityPython

New Member
Newbie
Joined
Jan 27, 2021
Messages
2
Trophies
0
Age
25
XP
49
Country
Canada
@PRAGMA

Hey there. I’ve been trying to follow this guide and finally just got it to work on my phone. However I noticed it stretches out the text boxes when talking to NPCs too. Is there a way to fix this?

Thanks again!
 
Last edited by UppityPython,

haxx64

New Member
Newbie
Joined
Mar 1, 2021
Messages
1
Trophies
0
Age
29
XP
43
Country
United States
Hey PRAGMA, thanks for making this cool little program. You might want to add that you have to download .NET Core 3.1 runtime for this to open, because I wasn't even getting any sort of error when opening DeSmuMAR without it.

Cheers
 
  • Like
Reactions: PRAGMA

mattyxarope

Well-Known Member
Member
Joined
Jan 15, 2019
Messages
547
Trophies
0
XP
2,032
Country
United States
I've tried the phantom hourglass code, but it doesn't seem to work in buildings - anyone else notice that? After exiting the building it glitches and stays stretched out...

In using Drastic and the code listed from the main page. I realize it might be a Drastic specific issue, though, as when I save the game using a save state, then load that state, it works again. Not sure what's up. It's definitely related to going in and out of buildings.

Also - it changes back to the correct aspect ratio when changing items... Weird.
 
Last edited by mattyxarope,

TSP184

Well-Known Member
Newcomer
Joined
Oct 26, 2018
Messages
77
Trophies
0
XP
827
Country
France
Hello. I've tried to run DeSmuMAR as an administator, but it only opens a cmd window that immediately gets closed. Does anyone know how to fix this ?
 

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,259
Trophies
1
Location
Ireland
Website
github.com
XP
5,071
Country
Ireland
Hello. I've tried to run DeSmuMAR as an administator, but it only opens a cmd window that immediately gets closed. Does anyone know how to fix this ?
That's happening to me, too. I don't know why.

If you open PowerShell as Admin, then type
Code:
cd "C:/folder/where/desmumar/is"
and then proceed to type
Code:
.\DeSmuMAR.exe
it should then provide you with a log of text. If so, what does it state?
 
  • Like
Reactions: TSP184

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Veho @ Veho: Also the use of mirrors to make the cabinet look empty, very effective. +1