ROM Hack Increasing Metal Gear Solid 3D's Draw Distance [CTRPF/Gateway]

Kyim

Member
OP
Newcomer
Joined
Sep 18, 2019
Messages
8
Trophies
0
Age
29
XP
73
Country
United Kingdom
Hello all! New here.

I'm working on a code to increase the draw/render distance for Metal Gear Solid 3D Snake Eater v 1.0 for use on Citra. I'm attempting to use IdaPro to disassemble the .3DS file and locate what I assume is a float responsible for said draw distance. To my understanding I should only have to change one value. But.
I'm at a loss.

IdaPro doesn't seem to play well with the .3DS format, or perhaps I am simply doing it wrong. No methods/functions are displayed, I can't find any indication of the renderer's processes, the the decomplied code that is pumped out is, to me, illegible. I've been modding games for over a decade but this method is very new to me.

The end goal is to at the very least, increase the draw distance of grass to a more realistic degree, as PCs can most likely handle it.

All of the documentation/tutorials I can find mostly address very basic value injection or go over the ol' "Search>Change Something>Search>Repeat" method for narrowing down values but, akin to what one might do with Cheat Engine. To my knowledge, the render distance is a static float, so I have no method to isolate it.

I've chatted with Leo, the creator of Project Restoration for Majora's Mask 3D, which his what lead me here.

If anyone has any tips, suggestion, input, or links to tutorials that you feel may be beneficial, I'd greatly appreciate it.
 

Kyim

Member
OP
Newcomer
Joined
Sep 18, 2019
Messages
8
Trophies
0
Age
29
XP
73
Country
United Kingdom
100+ views and no replies. Is this the wrong section for this topic? I will gladly move it if there is a more appropriate place to post about this.
 

OkazakiTheOtaku

no thanks, I don't want a custom title
Member
Joined
Jul 20, 2016
Messages
1,460
Trophies
1
Location
127.0.0.1
XP
3,092
Country
Japan
Are you trying to disassemble the .3ds file directly? A .3ds file is just an archive, it isn't the executable itself. Extract the .3ds and try to disassemble the binary in the exefs
 
D

Deleted-481927

Guest
idk the answer but i'd love this MGS3D is a great game (and ofc original)

im wondering if n3ds clock could make it run 30fps?
 

Naails

Member
Newcomer
Joined
Nov 11, 2016
Messages
16
Trophies
0
Age
25
XP
147
Country
Hey, I think that the problem is that the .3DS format (probably it is actually a cxi) isn't an executable, but a file containing all the game assets, the banner, manual etc.
The actual executable is the code.bin, that is located inside the ExFS. I'll link a very good wiki where it explains it in beautiful detail and explains how to extract and decrypt everything: https://github.com/ihaveamac/3DS-rom-tools/wiki
 

Kyim

Member
OP
Newcomer
Joined
Sep 18, 2019
Messages
8
Trophies
0
Age
29
XP
73
Country
United Kingdom
Are you trying to disassemble the .3ds file directly? A .3ds file is just an archive, it isn't the executable itself. Extract the .3ds and try to disassemble the binary in the exefs
That is exactly what I was doing. Butts, I feel thick. Thanks for pointing that out, Okazaki! :)

idk the answer but i'd love this MGS3D is a great game (and ofc original)

im wondering if n3ds clock could make it run 30fps?
Yes! Overclocking is possible, but will drain the battery like no other. Personally, I feel that emulation is a preferable method for higher FPS.

Hey, I think that the problem is that the .3DS format (probably it is actually a cxi) isn't an executable, but a file containing all the game assets, the banner, manual etc.
The actual executable is the code.bin, that is located inside the ExFS. I'll link a very good wiki where it explains it in beautiful detail and explains how to extract and decrypt everything:
That is exactly the problem! And this wiki looks quite helpful! I'll look into it right away. Thank you, Pachemapache!

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

can you give an example (in the form of an screenshot) of the render distance issue?
I don't think I have the user rights to post images yet, but the render distance for grass is roughly 3-4 meters from the player character in most areas barring the area wherein one fights The End. Therein the draw distance is roughly 10 meters.
 

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,423
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
2,908
Country
Yes! Overclocking is possible, but will drain the battery like no other. Personally, I feel that emulation is a preferable method for higher FPS.
As far as I know, the game has a hardcoded 20 FPS cap, so no amount of overclocking will get you 30 FPS, it will just help with smoothing out some of the dips below 20 FPS.
 
  • Like
Reactions: Kyim

Kyim

Member
OP
Newcomer
Joined
Sep 18, 2019
Messages
8
Trophies
0
Age
29
XP
73
Country
United Kingdom
As far as I know, the game has a hardcoded 20 FPS cap, so no amount of overclocking will get you 30 FPS, it will just help with smoothing out some of the dips below 20 FPS.
Right, like the 15 FPS drops during cutscenes and such. I remember reading something about Luma3DS helping with this, but I could be wrong.
 
  • Like
Reactions: Vague Rant
D

Deleted-481927

Guest
That is exactly what I was doing. Butts, I feel thick. Thanks for pointing that out, Okazaki! :)


Yes! Overclocking is possible, but will drain the battery like no other. Personally, I feel that emulation is a preferable method for higher FPS.


That is exactly the problem! And this wiki looks quite helpful! I'll look into it right away. Thank you, Pachemapache!

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


I don't think I have the user rights to post images yet, but the render distance for grass is roughly 3-4 meters from the player character in most areas barring the area wherein one fights The End. Therein the draw distance is roughly 10 meters.
is the fps locked?
 

Kyim

Member
OP
Newcomer
Joined
Sep 18, 2019
Messages
8
Trophies
0
Age
29
XP
73
Country
United Kingdom
So, after many months of searching, I managed to get this code snippet from a great modder who claims to have figured out how to increase the draw distance of grass in MGS3D, but he does not want to release the mod for personal reasons, instead preferring to just give this as a hint.


#"ENEMY" "EAR" 1 # 敵の耳 0=OPEN 1=CLOSE
#"PLANTS" "GRASS" 2 # 草セット 0=PS2 1=3DS 2=OFF
#"PLANTS" "TREES" 1 # 木セット 0=NORMAL 1=ALL_OFF 2=ALL_ON 3=NAME 4=CAMERA

Apparently he edited something called "debug.cnf"

He says he used HxD and Cheat Engine to achieve the desired effect. I have no idea how to apply this information. If anyone can make sense of this, please let me know.
 
Last edited by Kyim,

newbiu

New Member
Newbie
Joined
Apr 16, 2023
Messages
2
Trophies
0
XP
13
Country
Antigua and Barbuda
Resurrecting this. The 3DS version of MGS3 on Citra is now probably the best way to play the game (until a remake arrives at least). The last part is improving the drawing distance of grass and foliage IMO.

We already have:
  • 60 fps mod
  • Complete overhaul of textures, on par with the HD edition (thank you OP!)
  • Better control scheme than any other version (you can move when prone and you do not have touch sensitive buttons on 3DS)
If someone more knowledgeable could help on this, it would be greatly appreciated! I would be happy to help where I can too, although I have never modded anything.
 
Last edited by newbiu,
General chit-chat
Help Users
  • SylverReZ @ SylverReZ:
    Hope they made lots of spaget
  • K3N1 @ K3N1:
    Chill dog
  • SylverReZ @ SylverReZ:
    Chilli dog
  • Skelletonike @ Skelletonike:
    Damn, I'm loving the new zelda.
  • xtremegamer @ xtremegamer:
    loving the new zelda, i started a game, it was so fucking good, so i
    am waiting on my friend to get home so we can start a new one together
  • Skelletonike @ Skelletonike:
    I just dislike that they don't let me choose the voices before the game starts. Happened with botw as well, had to change to japanese and restart.
  • K3N1 @ K3N1:
    But the important question is can you choose gender
  • Skelletonike @ Skelletonike:
    Same way you can choose Gerald's gender.
  • Skelletonike @ Skelletonike:
    *Geralt, damn autocorrect.
  • Psionic Roshambo @ Psionic Roshambo:
    But can he be trans? Lol
  • K3N1 @ K3N1:
    Zelda transforms into link
  • Psionic Roshambo @ Psionic Roshambo:
    Link I'm not the princess your looking for.... *Pulls a crying game*
  • K3N1 @ K3N1:
    *skirt up* it's exactly what I always wanted
  • Skelletonike @ Skelletonike:
    Just scanned all my zelda amiibos, took a while but didn't get anything that cool, did get the lon lon ranch hylian fabrics though.
  • Skelletonike @ Skelletonike:
    It was pretty funny when I scanned wolf link and got a shit load of meat.
  • K3N1 @ K3N1:
    @Skelletonike, btw I ran that custom for mgs4 on the deck I'm amazed it got that far in game
  • K3N1 @ K3N1:
    Plug in*
  • K3N1 @ K3N1:
    Your favorite activity
  • BentlyMods @ BentlyMods:
    My fav actvity is:

    mario-dancing.gif
  • Psionic Roshambo @ Psionic Roshambo:
    Do the Mario lol
  • K3N1 @ K3N1:
    🍑
  • K3N1 @ K3N1:
    Whoever developed Bramble was smoking that good shit fucking gnomes
    K3N1 @ K3N1: Whoever developed Bramble was smoking that good shit fucking gnomes