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
30
XP
84
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.
 
  • Like
Reactions: ack

Kyim

Member
OP
Newcomer
Joined
Sep 18, 2019
Messages
8
Trophies
0
Age
30
XP
84
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,461
Trophies
1
Location
127.0.0.1
XP
3,103
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
26
XP
303
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
30
XP
84
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,454
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,233
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
30
XP
84
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
30
XP
84
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
3
Trophies
0
XP
27
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,

WaffleFrisbee

New Member
Newbie
Joined
Jul 24, 2023
Messages
1
Trophies
0
Age
22
XP
5
Country
United States
I'm more than interested in getting this functional. I also lack the more technical skills required for this, but I've reached out to multiple folks who have more knowhow in an attempt to get some kind of info, including Kyim.
 

Both_Bear3643

New Member
Newbie
Joined
Jul 29, 2023
Messages
1
Trophies
0
Age
27
XP
13
Country
United States
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.
is that 60fps mod applicable to homebrew on real 3DS?

and i had an i5-3470 and rx 580 running Citra without a hitch. Brutal stuttering on MGS3D at any resolution even pre cheats. RPCS3 and PCSX2 ran MGS3 without a hitch also. Seems to be the game itself.
 

newbiu

New Member
Newbie
Joined
Apr 16, 2023
Messages
3
Trophies
0
XP
27
Country
Antigua and Barbuda
I have used the 60 fps mod on Citra only. It works fine on my PC, I have high-end hardware though. There seems to be a number of videos on YouTube now, suggesting that the recent Vulkan update on Citra Canary has improved performance. And apparently you should switch audio stretching off in Citra's settings (not sure if it affects performance though).
Post automatically merged:

Couple of questions from me to keep this alive:
  • Anyone heard / seen anything further on how we might modify the draw distance?
  • Is there any news on what the upcoming Vol 1 collection will use as a control scheme? If the upcoming PC version can have 3D's crouch controls, probably easiest to play that when it is released.
 
Last edited by newbiu,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    HiradeGirl @ HiradeGirl: Didn't you feel it?