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,

Hambrew

Well-Known Member
Member
Joined
Oct 9, 2018
Messages
597
Trophies
0
Location
Yoyle City
XP
1,596
Country
United States
the hype is real-
Widescreen Action Replay Code List
IMPORTANT, The following codes are accurate formula's but don't accept decimal spaces, so they will be slightly off but not noticably.
Crafting your own Widescreen Code! If you want to try craft your own code for any game not listed, you need to know a bit of debugging first, the following is not a noob-proof or in depth tutorial.
One method is to use DeSmuME's RAM Searcher to search for the value of 1555 (HEX) or 5461 (DEC) and just trial and error of changing them to 1C71 (16:9) until one works.
If you find out which one works, take its address (which should start with 02) and simply follow the following format, test it, and if it works, good job! Let us know your code and what game and i'll add it to the list.
Format:
<Address but change starting 02 with 52> 00001555
<Address with starting 02> 00001C71
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 below codes as an example. Code List:
  • Mario Kart DS (In race only) 520775D0 00001555
    020775D0 00001C71
    D2000000 00000000
    by @KazoWAR
  • Pokémon Diamond/Pearl 5201E9E4 00001555
    0201E9E4 00001C71
    D2000000 00000000
    by ?
  • Pokémon Platinum 5202022C 00001555
    0202022C 00001C71
    D2000000 00000000
    by ?
  • Pokémon HeartGold/SoulSilver 52022F80 00001555
    02022F80 00001C71
    D2000000 00000000
    by ?
  • Pokémon Black 52282308 00001555
    02282308 00001C71
    D2000000 00000000
    by @KazoWAR
  • Pokémon White 52282328 00001555
    02282328 00001C71
    D2000000 00000000
    by @KazoWAR
  • Pokémon Black 2 5226FE50 00001555
    0226FE50 00001C71
    D2000000 00000000
    by @KazoWAR
  • Pokémon White 2 5226FE90 00001555
    0226FE90 00001C71
    D2000000 00000000
    by @KazoWAR
  • Sonic & Sega All-Stars Racing 52039288 00001555
    02039288 00001C71
    D2000000 00000000
    by @RadDude McCoolguy
  • Star Fox Command 52324998 00001555
    02324998 00001C71
    D2000000 00000000
    by @RadDude McCoolguy
  • The Legend of Zelda: Phantom Hourglass
NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO I WANTED TO PLAY MYSIMS AND PORTAL DS IN 420:69 ASPECT RATIO
 

fintogive

Member
Newcomer
Joined
Nov 3, 2016
Messages
5
Trophies
0
Age
33
XP
82
Country
United States
i was wondering when people would figure this out :P i sorta invented the whole widescreen codes on DS back in 2011 starting with mkds and this code 12147e04 00003D30 and later this 020775D0 00001C71. mid last year i had discovered thats the widescreen value was universal with most ds games. but not all of them. heck even homebrews like dscraft have the 00001555 value. so heres a complete list of games that ive made the widescreen codes for. ive been working on them and quietly releasing them via deadskullzjr cheat code data base for NDS which can be found on this site.

There all verified fully functional by me. a few ds games used slightly different values for example animal crossing had 1548 instead of 1555. wile others require pointer codes. i noticed looking some of the codes above that people had already posted will not work on the entire game with out a pointer. and yeah i know some of the codes below are already posted i didn't feel like fishing them out.



16.9 widescreen codes.

mario kart ds Widescreen 2.1
020775D0 00001C71
0208A068 E3A00AAA - (this part fixes the countdown numbers being stretched)

diddy kong racing DS (U) widescreen
02018A08 00001C71
02018D8C 00001C71

dragon ball ultimate kai (J) widescreen
0207B220 00001C71
02061380 00001C71
020AD6B4 00001C71

CN racing DS (U) widescreen
021D6854 00001C71

Pokemon diamond pearl (U) widescreen
0201E9E4 00001c71

final fantasy III (U) widescreen
02030AFC 00001c71

final fantasy IV (U) widescreen
02040644 00001C71
020CF37C 00001C71

mkds demo (U) widescreen 2.0
020466B0 00001C71

pokemon platinum (U) widescreen
0202022C 00001c71

pokemon heart gold soul silver widescreen (U)
02022F80 00001c71

dragon ball origins 1.1 (U) widescreen
0202A7A0 00001C71
0202B864 00001C71
02088D0C 00001C71
020894AC 00001C71

dragon ball origins 2 (U) widescreen
0209CAD0 00001C71
0203765C 00001C71

GTA china town wars (U) widescreen
A21E0DAC 00000000
020C225C 00001C71
D2000000 00000000

ridge racer DS (U) widescreen
02027738 00001C71

asphalt urban GT (U) (widescreen)
02033620 00001C71

asphalt urban GT 2 (U) widescreen
02034444 00001C71
02047B34 00001c71

animal crossing DS 1.0 (U) widescreen
0203B734 00001C71

ray man (DS) widescreen
0206BB24 00001c71

super monkey ball touch and roll (U) widescreen
02059BD0 00001C71
02059D64 00001C71

radiant historia (U) widescreen
020C468C 00001C71
020C4568 00001C71

dragon quest xi (U) widescreen
0202E088 00001C71

kingdom hearts 258 2 days (U) widescreen
02023C9C 00001c71

need for speed underground 2 (U) widescreen
02017804 00001c71

mario sonic winter games (U) widescreen
02031D54 00001c71

assassins creed chronicles (U) widescreen
020509B4 00001c71

Assassin's Creed II (U)
022D211C 00001c71

Okamiden (U) widescreen
02280DEC 00001c71

zelda phantom hour glass (U) widescreen
92101A64 00001555
02101A64 00001C71
D2000000 00000000

Zelda spirit tracks (U) rev 1.0 widescreen
12078164 00001C71
ZST (U) rev 1.1
12078198 00001C71

death jr (U) widescreen
0206ADA0 00001c71

pac world 3 (U) widescreen
02046074 00001c71

Nicktoons unite (U) widescreen
020F42BC 00001c71

pac n roll (U) widescreen
02033594 00001c71

Tomodachi Collection (JP) widescreen
0202A558 00001c71

mario 3 on 3 hoops (U) widescreen
020A4FC4 00001c71
020A65BC 00001c71


dragon quest monster joker (U) widescreen
021C71F8 00001c71
021DA590 00001c71

dragon quest monster joker 2 (U) widescreen
021C5F04 00001C71
021D3FA0 00001C71

final fantasy XII widescreen(U)
0202A6E8 00001c71

spectrobes beyond the portals widescreen
02075DD0 00001c71
020CE178 00001c71

starwars forces unleashed II widescreen (U)
0208A964 00001c71
0208AAB8 00001c71
0208AB5C 00001c71

starwars Battlefront Elite Squadron widescreen (U)
02033F34 00001c71

My sims agents widescreen (U)
0206B408 00001c71

call of duty world at war widescreen (U)
020213E0 00001c71

call of duty modern warfare 3 widescreen (U)
0201F74C 00001c71

call of duty modern warfare mobilized widescreen (U)
020216D0 00001c71

call of duty 4 MW widescreen (U)
0202B5FC 00001c71

call of duty black ops widescreen (U)
0201EF0C 00001c71

Snowboard Kids DS widescreen (U)
0202C974 00001c71
0208AE7C 00001c71
0209FDE8 00001c71

gauntlet DS U widescreen (U)
5202C248 00001555
0202C248 00001C71
D2000000 00000000



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

mario party ds (U) Widescreen
52036CB8 E59F3018
02013AF0 00001C71
02036CD8 00001C71
D2000000 00000000
5217CB2C E59F31CC
0217CD00 00001C71
D2000000 00000000
52182360 E59F3C8C
02182FF4 00000E38
02182FF8 00001C71
D2000000 00000000

super mario 64 ds (E) widescreen
520209C4 E59D0094
020209C8 E3A09C15
0200D03C 00001C71
D2000000 00000000
520B21E8 E59F00E8
020B227C E3A02B07
D2000000 00000000
5211530C E59F205C
02115370 00001C71
D2000000 00000000
 

Asia81

Yuri Lover ~
Member
Joined
Nov 15, 2014
Messages
6,656
Trophies
3
Age
29
XP
3,490
Country
France
Link is wrong in your tool, it redirect to a 404 and fail to download
1561065780-desktop.png


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

And your link is ok but doesn't contain any release/artifact (or I don't see a download link...).
 

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,258
Trophies
1
Location
Ireland
Website
github.com
XP
5,036
Country
Ireland
Link is wrong in your tool, it redirect to a 404 and fail to download
1561065780-desktop.png


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

And your link is ok but doesn't contain any release/artifact (or I don't see a download link...).
Ok odd, the link in the app is a bit broken, but the internal code itself should work, regardless, its failing because there is no artifact like you said theres none to download, they delete them after x days of the build being done I think :/

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

It's possible to do something like this on 3DS? D:
I wish ;-;, Ages back there was an april fools of someone doing it on MKDS, it was cool, but yeah I don't think this would be possible without a complete edit to NTR stuff
 

eXoNecro

New Member
Newbie
Joined
Jun 14, 2017
Messages
4
Trophies
0
XP
476
Country
France
Link is wrong in your tool, it redirect to a 404 and fail to download

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

And your link is ok but doesn't contain any release/artifact (or I don't see a download link...).

Ok odd, the link in the app is a bit broken, but the internal code itself should work, regardless, its failing because there is no artifact like you said theres none to download, they delete them after x days of the build being done I think :/

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


I wish ;-;, Ages back there was an april fools of someone doing it on MKDS, it was cool, but yeah I don't think this would be possible without a complete edit to NTR stuff

Same problem here...
There is not a way to do it anyway?
 

lilbud

Member
Newcomer
Joined
Sep 29, 2018
Messages
7
Trophies
0
Age
24
XP
184
Country
United States
With the program failing to download a new copy (since the latest build on Appveyor failed). Is there a way to get this program to see a copy of Desmume downloaded manually?
 

ecaep42

Well-Known Member
Newcomer
Joined
Aug 24, 2015
Messages
59
Trophies
0
XP
233
Country
United States
Ok odd, the link in the app is a bit broken, but the internal code itself should work, regardless, its failing because there is no artifact like you said theres none to download, they delete them after x days of the build being done I think :/
They do not delete builds, the latest build for desmume has failed to compile which is why it's a 404. I'd suggest looking through their api documentation to see if they have a link for the history and parse through that instead.

With the program failing to download a new copy (since the latest build on Appveyor failed). Is there a way to get this program to see a copy of Desmume downloaded manually?
Go to the AppVeyor for DeSmuME and download it from the build history.
 
Last edited by ecaep42,

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,258
Trophies
1
Location
Ireland
Website
github.com
XP
5,036
Country
Ireland
They do not delete builds, the latest build for desmume has failed to compile which is why it's a 404. I'd suggest looking through their api documentation to see if they have a link for the history and parse through that instead.


Go to the AppVeyor for DeSmuME and download it from the build history.
I see my bad, but they do delete
upload_2019-7-19_23-52-5.png
 

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,463
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,302
Country
Just wanted to mention that this formula multiplies by 100 then divides by 100; that part of the formula isn't actually doing anything. Really it's just:

oAH / oAW * oD * cAW / cAH

None of the parentheses are actually necessary either because all of the operations are division or multiplication, so the result is the same regardless of what order you do them in.
 
  • Like
Reactions: PRAGMA

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    ButterScott101 @ ButterScott101: +1