Dolphin, the GameCube and Wii emulator - Forums

Full Version: Improving the player polygons and LOD
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi guys,
In theory, is there any way to change the lod in a game with the code?
So we can manipulate when (or if at all) the game switches to lower polygon model?

Thanks Smile
To help speculate,I know it can be done on N64 because Super Smash Bros. has low-poly models when zoomed out but some plugins don't show them while I think GLideN64 can actually disable LOD via the built-in feature checkbox,allowing you to always view the better models.
I found 2 codes for it a while back,one forces the low-res to always be shown,the other code forces hi-res models to always show,these kinds of codes are MUCH more difficult to find in Gamecube and Wii games.

An option to disable LOD would be essential for better quality visuals for things like the horrific lowest-res Princess Peach model of Super Mario Galaxy when seeing her at a large distance via free look.
I know this one because of a YT channel that shows a closer look at several games and their certain touches of attention to detail that is highly unexpected for those games,one instance being other model sections that would never get seen but are still fully modeled out inside of the object.
Thanks Ben.
Yeah, I think it should be perfectly doable and it would shoot my game to the stars Smile

If only I could do it myself :'(
Hi guys,

so here's nicely visible how the game use lower polygons for player when they are far from the camera.

https://youtu.be/FR9QRmGARE4


What I would really love to do is "force" the game always use the best player model (stage 1) At any range from the camera.

Do you guys think it would be possible with some smart code?

Thanks in advance for any suggestions.
I doubt there's a universal code, but I'm sure you could make them for specific games. Couldn't you find a unique, static object that gets LOD applied to it and then cheat search for addresses that change exactly when the LOD changes, use that to find the code that switches between them, and make a code that way?

Alternatively, if the LOD is based on camera position vs model then you could maybe follow the camera position address. I did this for camera based draw distances in Xenoblade.
Hi, thanks for response!

Ya, I'm sure it's based on the camera position, how far or close your are currently from the player model.
As seen in the video it looks like there are exactly 3 versions of player models with different number of polygons.

If I upload the save states in these 3 positions/frames when the game change the polygons..
Do you think you would be that kind and look at it when you have some time? I don't have any experience with the codes unfortunately Sad

Just let me know if it's possible please, not sure if I'm asking to much Smile
I would buy you any game of your choice on Steam as a little thanks, if we get it working..

Thanks for your time.
I'm busy working on other things right now. You could use Dolphin's cheat manager -> cheat search to see if you can narrow down the addresses. Set it to 32 bits and delete the 0x0. Run it like in that video and leave it on one LOD, hit New scan and then set it to Equal and keep hitting next scan 20 times. Then change LOD, select Not Equal, hit next once. Set Equal, Hit next scan while moving the camera, but NOT changing LOD. Change LOD again and run Not Equal once. etc. etc.

You only scan once with not equal when the LOD changes. You want some scans while moving the camera with no changing LOD, so it'll exclude camera values when you hit next scan. You should only hit New Scan once, unless you want to reset and start over.
Yay! That looks super difficult to me.
I'll follow your list and do my best Smile

Thank you very much.
When the LOD changes, some address changes. You're just doing a scan with it set to Equal when the LOD hasn't changed to discard values that are changing. Then when the LOD does change, the address changes, and you use Not Equal once to discard values that haven't changed. Equal/Not Equal compares the current values to the values that were present the last time you hit "next scan"

Maybe that explains it a little better.
I couldn't find it with the memory search either, so don't feel bad about that.  It was way harder than I thought it would be, but I was able to find the player position and then delete code associated with it until the LOD changed. Then I played with the area that changed LOD.  This is a first attempt, so test it out and let me know if more work needs to be done.

NTSC

$LOD maybe
04D946C0 60000000
04D946C4 60000000
04D946C8 60000000
04D946CC 60000000
04D946D0 60000000


/edit That first code seems buggy. Use this instead. Also you can change the 50000000 to change the LOD. This Float value compares to the player's distance to determine the LOD. 0 = Worst LOD always on. 47ef4200 = Normal. 4AA00000 is probably the maximumx (no LOD), but I set it to 50000000 to be sure.

AR or Gecko code
$LOD2
048170C8 50000000