Widescreen cheats for DS games on 3DS

Discussion in '3DS - Flashcards & Custom Firmwares' started by Vague Rant, Jul 11, 2019.

Loading...
  1. deisuke1234

    deisuke1234 Advanced Member

    Newcomer
    3
    Mar 4, 2016
    Sorry well just a question would you mind to teach me or do you know where I can learn to make this advanced code
     
  2. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    @deisuke1234 Basically what you need to do is find something reliable in memory that tells you when the top screen is in 3D vs. when the bottom screen is in 3D. One approach to do this would be to use the RAM Search in DeSmuME, and search for something that's "equal to previous value" or "not equal to previous value", depending on whether the screen has switched since the last time you searched.

    So let's say address 0x02002200 contains 0xFF08 when the top screen is in 3D, and 0x0D0A when the bottom screen is in 3D, and 0x02002300 is the aspect ratio offset. These are all just examples, they're not meaningful addresses or values. You'd have to find values that work for the specific game in question. Using those examples though, the code you'd use for the 3DS would look like this:
    Code:
    92002200 0000FF08 | if 0x02002200 == 0xFF08       | if top screen is 3D
    92002300 00001555 |   and if 0x02002300 == 0x1555 |   and if aspect ratio is 4:3
    12002300 00001999 |      set 0x02002300 to 0x1999 |     set aspect ratio to 16:10
    D2000000 00000000 | endif                         | endif
    92002200 00000D0A | if 0x02002200 == 0x0D0A       | if bottom screen is 3D
    92002300 00001999 |   and if 0x02002300 == 0x1999 |   and if aspect ratio is 16:10
    12002300 00001555 |      set 0x02002300 to 0x1555 |     set aspect ratio to 4:3
    D2000000 00000000 | endif                         | endif
    So you end up having a "widescreen hack" and sort of a "reverse widescreen hack" in the same code. When the top screen is 3D, the game is switched to widescreen mode, but when the bottom screen is 3D, it gets switched back to 4:3.
     
    deisuke1234 likes this.
  3. deisuke1234

    deisuke1234 Advanced Member

    Newcomer
    3
    Mar 4, 2016
    Thanks for the explanination i wounder am i thinking correctly if i do this solving it.

    step 1 find the adresss 1555
    step 2 change the 1555 to 14562 just to check i have got the right adress
    step 3 restart the game with the new value and try to search for 14562
    step 4 try to see if i can find any adress that changes to 1555
    and last step try to change that value as well.
     
  4. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    Not quite, @deisuke1234. The stuff about checking which screen is currently displaying 3D stuff is completely separate from searching for 0x1555. You need to search for a top/bottom screen value, which could be anything, it's not a specific number like 0x1555 for aspect ratio.

    The DS can only render 3D on one screen at a time*, so what this part of the process is about is finding which screen is currently the one which is using 3D stuff. So you just have to play the game and do things which make the game switch screens, then search using (if you're running DeSmuME) the radio buttons "not equal" and "previous value".

    This will slowly bring down the number of results, but there's going to be tons because you're not searching using a specific value. Eventually, you'll hopefully find an address which reliably holds one value if the top screen is in 3D, and a different value if the bottom screen is in 3D. Once you know which screen is currently 3D, you can adjust the aspect ratio depending on whether it's the top (16:10/0x1999) or the bottom (4:3/0x1555).

    *Dual-screen 3D games like Animal Crossing, Dragon Ball Origins or Gauntlet are actually swapping back and forth once per frame, so each screen gets updated at half the normal rate (60 FPS-->30FPS), but they're still technically following the rule that only one screen is rendering 3D in any given frame.
     
    deisuke1234 likes this.
  5. deisuke1234

    deisuke1234 Advanced Member

    Newcomer
    3
    Mar 4, 2016
    I noticed also that the game got alot of pointers but I managed to find a adress that changes the zoom in for the game. For example if you change the value to 1200 you can see how inzoomed the game map is.
     
  6. CheatFreak47

    CheatFreak47 Catgirl Expert

    Member
    9
    Oct 11, 2011
    United States
    Michigan, USA
    I made a new widescreen code for Sims 2 DS, and it turned out to not be as straight forward as some other games (1555 -> 1999 doesn't work here)

    The game seems to process video vertically for some reason, so the only solution is to adjust that and then edit the camera zoom restrictions to allow you to zoom slightly more out to essentially get the HOR+ that you want with widescreen.
    pic


    Code:
    Sims 2, The (USA) (En,Fr,De,Es,It)
    
    ::16:10 Widescreen for 3DS
    0213A0F0 00046000
    9213A08C 000000FF
    1213A08C 00000133
    D2000000 00000000
    
    
    Sims 2, The (Europe) (En,Fr,De,Es,It)
    
    ::16:10 Widescreen for 3DS
    0213A230 00046000
    9213A1CC 000000FF
    1213A1CC 00000133
    D2000000 00000000
    
    
    Sims 2, The - Hachamecha Hotel Life (Japan)
    
    ::16:10 Widescreen for 3DS
    02139D10 00046000
    92139CAC 000000FF
    12139CAC 00000133
    D2000000 00000000
    
    
    @Vague Rant feel free to add these to the OP for everyone.
     
    Last edited by CheatFreak47, Aug 13, 2019
    Dartz150, Robz8 and Vague Rant like this.
  7. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    Wow, awesome stuff, @CheatFreak47! Added those to the OP, impressive work.

    Yeah, there's a few games that a couple of us have looked at with no success that seem not to use the 0x1555 system at all, but for me that's the end of the road, I have no idea what to do with them. Metroid Prime: Hunters is the most obvious one, we've had multiple requests for it but none of us has been able to figure it out.

    On the subject of hor+/vert-, another thing we've noticed is that several of Griptonite's games adjust their camera zoom based on how much of the scenery is visible, so widescreening them causes the camera to zoom in/gives us a vert- appearance:
    • Assassin's Creed II: Discovery
    • Ben 10 Ultimate Alien: Cosmic Carnage
    • Daniel X: The Ultimate Power
    • Iron Man 2
    • Spider-Man: Web of Shadows
    • X-Men Origins: Wolverine
    If you were interested in taking a look at Metroid or any of the Griptonite games I'm sure it'd be greatly appreciated, I know I have no idea how to fix them. :) But no worries if not, we've all survived without widescreen up 'til now.
     
  8. CheatFreak47

    CheatFreak47 Catgirl Expert

    Member
    9
    Oct 11, 2011
    United States
    Michigan, USA
    Interesting, I'll have a look sometime, Sims 2 is also a Griptonite game, it was just made after Griptonite was absorbed into Amaze Entertainment, so I bet the solution is either similar or the same.
     
    Robz8 and Vague Rant like this.
  9. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    I've been looking at Metroid again and seeing if I could find anything aspect-ratio-ish. There seems to be a lot of camera-based things around 0x020DAD00 (USA version).
    • 0x020DAD58: earthquake effect?
    • 0x020DAD5C: camera zoom
    • 0x020DAD78: aspect ratio? but image becomes cropped
    • 0x020DAD80: left border
    • 0x020DAD84: wonky geometry
    • 0x020DADA8: shadows
    Mostly just noting these down to mess around with again later when I have the time.
     
    Last edited by Vague Rant, Aug 22, 2019 at 4:43 PM
    CheatFreak47 likes this.
  10. Robz8

    Robz8 Coolest of TWL

    Member
    18
    Oct 1, 2010
    United States
    Updated codes:

    Pokémon - Version Or HeartGold/Argent SoulSilver (France)/Edicion Oro HeartGold/Plata SoulSilver (Spain)
    Code:
    16:10 Widescreen for 3DS
    921F031C 0000D008
    92022F80 00001999
    12022F80 00001555
    D2000000 00000000
    921F031C 00001C20
    92022F80 00001555
    12022F80 00001999
    D2000000 00000000
    
    Pokémon - Goldene Edition HeartGold/Silberne Edition SoulSilver (Germany)
    Code:
    16:10 Widescreen for 3DS
    921F02DC 0000D008
    92022F80 00001999
    12022F80 00001555
    D2000000 00000000
    921F02DC 00001C20
    92022F80 00001555
    12022F80 00001999
    D2000000 00000000
    
    Pokémon - Versione Oro HeartGold/Argento SoulSilver (Italy)
    Code:
    16:10 Widescreen for 3DS
    921F029C 0000D008
    92022F80 00001999
    12022F80 00001555
    D2000000 00000000
    921F029C 00001C20
    92022F80 00001555
    12022F80 00001999
    D2000000 00000000
    
    Pocket Monsters - HeartGold/SoulSilver (Japan)
    Code:
    16:10 Widescreen for 3DS
    921F37D4 0000D008
    92022C20 00001999
    12022C20 00001555
    D2000000 00000000
    921F37D4 00001C20
    92022C20 00001555
    12022C20 00001999
    D2000000 00000000
    
    Pocket Monsters - HeartGold/SoulSilver (Korea)
    Code:
    16:10 Widescreen for 3DS
    921F0CFC 0000D008
    92022F4C 00001999
    12022F4C 00001555
    D2000000 00000000
    921F0CFC 00001C20
    92022F4C 00001555
    12022F4C 00001999
    D2000000 00000000
    
    All disable widescreen on the bottom screen part of the title screen.
     
    Brawl345 and Vague Rant like this.
  11. Brawl345

    Brawl345 GBAtemp Advanced Fan

    Member
    8
    Jan 14, 2012
    Germany
    Can someone please make a widescreen code for New Super Mario Bros.? Woud love to play Newer DS in Widescreen! Thanks!
     
  12. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    @Brawl345 Unfortunately, New Super Mario Bros. is a 2D game, so making a widescreen hack for it would involve rewriting the engine of the game to render more. Somebody did make an assembly rewrite to have the engine render to 16:9, so it's almost certainly possible to do the same for 3DS, but it would take somebody with a deep understanding of how the game works and the knowledge and talent to make ASM hacks for that to be done. That's a far more complicated task than any of the codes in this thread currently, so you might be waiting quite a while.
     
    Brawl345 likes this.
  13. deisuke1234

    deisuke1234 Advanced Member

    Newcomer
    3
    Mar 4, 2016
    Unless someone has extremely lucky and find the address through random search xD.
     
  14. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    @deisuke1234 A 2D game doesn't just have "an address" to make it widescreen, it's not like a 3D game where we can modify the parameters of the virtual camera. 2D games are rendering tiles directly to the framebuffer, the way 2D game development on the DS works is almost entirely unrelated to the way 3D works. For games where it's even possible, which is likely pretty few, it takes many lines of assembly to rewrite the game to a) render more tiles than the game was designed for and b) render its tiles to a different aspect ratio.

    Here's what gamemasterplc's 16:9 NSMB assembly code looks like:
    Code:
    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
    This cheat literally rewrites the code of the game itself, it's not just changing a simple camera parameter.
     
    Last edited by Vague Rant, Aug 16, 2019
  15. sks316

    sks316 Meloetta, the Melody Pokémon!

    Member
    10
    Nov 28, 2013
    United States
    Unova
    Do you think a patch for any of these games could be possible?
    Pokemon Ranger
    Sonic Rush
    Mario Party DS
     
  16. deisuke1234

    deisuke1234 Advanced Member

    Newcomer
    3
    Mar 4, 2016
    Pokémon ranger might be possible since it involves 3d IF i remember correctly either way I could give it a try
     
  17. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    @sks316 Pokémon Ranger is an almost certain no because it looks like a pre-rendered 2D game, plus gameplay is all on the touch screen anyway, there's only an overworld map on the top screen--obviously the only one that's wider on a 3DS.

    Sonic Rush is another one that's probably somewhere between a likely no and a certain no: the two problems there are a) the game is just a 3D Sonic on a 2D backdrop, so it has almost all the same limitations as 2D games, and b) the gameplay spans across both screens simultaneously, and we can't make one screen widescreen and the other not for games like that anyway.

    Mario Party DS has already got a widescreen code (it's in this thread under the "Dual-screen games" spoiler on the first page), but it's not really usable on a 3DS because the gameplay is all over the place--some minigames are on the top screen, some are on the bottom, and some are on both screens simultaneously.

    The kinds of games that are good candidates for widescreen are:
    • entirely or almost entirely in 3D
    • entirely or almost entirely played on the top screen, with the bottom screen used as a secondary screen like an inventory, map, etc.
     
  18. deisuke1234

    deisuke1234 Advanced Member

    Newcomer
    3
    Mar 4, 2016
    @Vague Rant

    [​IMG]

    Naruto - Ninja Destiny (Europe)
    Code:
    16:10 Widescreen for 3DS
    92191EEC 00001555
    12191EEC 00001999
    D2000000 00000000
    
     
    Vague Rant likes this.
  19. Vague Rant
    OP

    Vague Rant Deceptively cute

    Member
    7
    Aug 7, 2008
    Melbourne
    Nice job! Working backwards from your code I was also able to make the title screen, character select and story cutscenes widescreen by hitting another address. Added to the OP! :D
     
    deisuke1234 and Robz8 like this.
  20. dripfish

    dripfish Newbie

    Newcomer
    1
    Aug 16, 2019
    Canada
    I’m sorry if this is a dumb question but would a patch be available for any of the fire emblem games on the ds? The game is played on the bottom screen but the touch controls are optional from what I remember. I’ve only played the first 2 chapters but I have played all of the fe games on the 3ds
     
Loading...