Skip to content

EnManager v1 - #37

Merged
ThePlayerRolo merged 19 commits into
ThePlayerRolo:mainfrom
SomeJakeGuy:EnManager
Jul 10, 2026
Merged

EnManager v1#37
ThePlayerRolo merged 19 commits into
ThePlayerRolo:mainfrom
SomeJakeGuy:EnManager

Conversation

@SomeJakeGuy

Copy link
Copy Markdown
Contributor

The long awaited V1

This was a long split where I just spent a lot of time trying to learn my way around and trying to start to make associations where I could. I am open to any and all suggestions here, but I left a lot of comments on things to explain a lot of why/what I was going for. There are several I still have issues with, namely anything to do with TVec3F seems to be weird in this class.

Also, I think _4 of EnManager might be the list of things possible to be spawned and _804 handles maybe spawning them/despawning them in? I wouldnt bet on that just maybe some inital observations.

If you dont like anything, open to any criticism. Before I made any decomp.me links, wanted you to check though things to see if I missed anything easy or anything else before I made those links. Similarly, I tried to make this v1 "small", so I left some things alone (without trying to touch too many other TUs), as well as leaving some stuff to be changed/focused on as a result of this PR I suppose.

@decomp-dev

decomp-dev Bot commented Jul 5, 2026

Copy link
Copy Markdown

Report for GLMP01_01 (9109d21 - 9691e7a)

No changes

Report for GLME01 (9109d21 - 9691e7a)

📈 Matched code: 17.83% (+0.06%, +1200 bytes)
📈 Matched data: 54.85% (+0.00%, +4 bytes)

✅ 21 new matches
Unit Item Bytes Before After
main/Koga/EnManager Koga::EnManager::findLuigiAppearIndex(Koga::ToolData*, unsigned long) +192 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::fn_800E5660(JGeometry::TVec3<float>*, JGeometry::TVec3<float>*, float) +132 0.00% 100.00%
main/Koga/EnManager unkEnManager3::remove(unkEnManager2*) +128 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::loadCharacterInfo(JKRArchive*) +100 0.00% 100.00%
main/Koga/EnManager AppearPointSlot::fn_800E616C(JGeometry::TVec3<float>*) +84 0.00% 100.00%
main/Koga/EnManager unkEnManager3::unkEnManager3() +76 0.00% 100.00%
main/Koga/EnManager unkEnManager3::~unkEnManager3() +64 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::fn_800E96E8(JGeometry::TVec3<float>*, JGeometry::TVec3<float>*) +52 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::fn_800E971C(JGeometry::TVec3<float>*, JGeometry::TVec3<float>*) +52 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::fn_800E977C(long, long) +52 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::fn_800E96B8(JGeometry::TVec3<float>*, JGeometry::TVec3<float>*, float) +48 0.00% 100.00%
main/Koga/EnManager unkEnManager1::fn_800E9B44() +48 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::fn_800E9750(long) +44 0.00% 100.00%
main/Koga/EnManager AppearPointSlot::init(JGeometry::TVec3<float>*, Koga::ToolData*, int) +36 0.00% 100.00%
main/Koga/EnManager unkEnManager1::unkEnManager1() +20 0.00% 100.00%
main/Koga/EnManager ToolDataRef::ToolDataRef(const ToolDataRef*) +20 0.00% 100.00%
main/Unsorted/800627D8 getLuigiAppearPoint() +16 0.00% 100.00%
main/Koga/EnManager Koga::EnManager::fn_800E55F0(long) +16 0.00% 100.00%
main/Koga/EnManager unkEnManager2::unkEnManager2() +12 0.00% 100.00%
main/Unsorted/800627D8 setLuigiAppearPoint(unsigned long) +8 0.00% 100.00%
main/Unsorted/800627D8 .sbss +4 0.00% 100.00%
📈 31 improvements in unmatched items
Unit Item Bytes Before After
main/Koga/EnManager Koga::EnManager::fn_800E46C0() +299 0.00% 93.65%
main/Koga/EnManager ToolDataRef::fn_800E8658(long, long, long) +295 0.00% 85.93%
main/Koga/EnManager Koga::EnManager::fn_800E5E78(const char*) +256 0.00% 80.00%
main/Koga/EnManager Koga::EnManager::fn_800E52BC(Koga::ToolData*) +255 0.00% 95.43%
main/Koga/EnManager Koga::EnManager::fn_800E95C0(long, JGeometry::TVec3<float>*, unsigned short*) +236 0.00% 95.29%
main/Koga/EnManager Koga::EnManager::fn_800E5784(JGeometry::TVec3<float>*, JGeometry::TVec3<float>*) +216 0.00% 94.86%
main/Koga/EnManager Koga::EnManager::fn_800E5488(long) +198 0.00% 90.31%
main/Koga/EnManager ToolDataRef::fn_800E84CC(long) +170 0.00% 67.67%
main/Koga/EnManager Koga::EnManager::~EnManager() +167 0.00% 95.45%
main/Koga/EnManager ToolDataRef::fn_800E82D8(unsigned long) +165 0.00% 82.72%
main/Koga/EnManager unkEnManager2::fn_800E601C() +134 0.00% 98.79%
main/Koga/EnManager Koga::EnManager::EnManager() +122 0.00% 80.66%
main/Koga/EnManager ToolDataRef::findInfoTableName(const char*) +122 0.00% 84.81%
main/Koga/EnManager unkEnManager1::fn_800E9ACC() +119 0.00% 99.60%
main/Koga/EnManager Koga::EnManager::fn_800E5868(long, long) +102 0.00% 95.11%
main/Koga/EnManager ToolDataRef::getName() +92 0.00% 95.83%
main/Koga/EnManager unkEnManager2::unkEnManager2(const ToolDataRef&) +86 0.00% 98.55%
main/Koga/EnManager unkEnManager2::getCreateName() +83 0.00% 57.75%
main/Koga/EnManager unkEnManager1::fn_800E9A58(unsigned long) +68 0.00% 59.10%
main/Koga/EnManager unkEnManager1::~unkEnManager1() +55 0.00% 50.93%
main/Koga/EnManager ToolDataRef::isNameValid() +48 0.00% 45.37%
main/Koga/EnManager ToolDataRef::isNameMoney() +43 0.00% 40.11%
main/Koga/EnManager Koga::EnManager::fn_800E59D4(long) +36 0.00% 81.82%
main/Koga/EnManager Koga::EnManager::fn_800E5ABC(long) +36 0.00% 81.82%
main/Koga/EnManager Koga::EnManager::fn_800E5564(long) +35 0.00% 49.00%
main/Koga/EnManager Koga::EnManager::fn_800E55AC(long) +35 0.00% 51.88%
main/Koga/EnManager Koga::EnManager::fn_800E97B0(long) +27 0.00% 62.73%
main/Koga/EnManager .data +17 0.00% 6.90%
main/Koga/EnManager unkEnManager1::fn_800E9A0C(void*) +17 0.00% 22.58%
main/Koga/EnManager unkEnManager2::fn_800E6134() const +11 0.00% 57.60%

...and 1 more improvements in unmatched items


Report for GLMP01_00 (9109d21 - 9691e7a)

No changes

Report for GLMJ01 (9109d21 - 9691e7a)

No changes

Comment thread include/Unsorted/MoveObj.hpp
JGeometry::TVec3f* fn_800E5564(s32);
u32 fn_800E55AC(s32);
s32 fn_800E55F0(s32); // Gets _0 member from AppearSlot
void* fn_800E5600(s32); // Dynamicaly casts Player to MoveObj

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could be something like playerObj

Comment thread include/Koga/EnManager.hpp
Comment thread include/Koga/EnManager.hpp Outdated
Comment thread include/Unsorted/character.hpp Outdated
Comment thread include/Koga/EnManager.hpp Outdated
Comment thread include/Koga/EnManager.hpp Outdated
Comment thread include/Koga/EnManager.hpp
Comment thread src/Koga/EnManager.cpp Outdated
@ThePlayerRolo

Copy link
Copy Markdown
Owner

please add decomp.me scratches to all non-matchings

@SomeJakeGuy

SomeJakeGuy commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

please add decomp.me scratches to all non-matchings

What about for ones where part of it is because I/we dont know what the datatype of something is yet, such as like fn_800E5564 or fn_800E55AC? I am also realizing i left those as fake matches, ill have to change that, but like those functions could get a decomp.me but does it make sense if noone can complete it right now anyways? Wouldnt that make sense to either a) get rid of the match for now entirely (in order words just delete the function in the cpp and leave it at 0%) or b) just leave it with as much as we know for now, decompile more, come back when we know more, then open a decomp.me when there is more to work off of (if it couldn't be matched)?

Like several functions I left what i knew so far to save people some time, but maybe its better I just leave them at 0 until other progress is made on other files? I will wait for your thoughts on this

@ThePlayerRolo

Copy link
Copy Markdown
Owner

sense if noone can complete it right now anyways? Wouldnt that make sense to either a) get rid of the match for now entirely (in order words just delete the function in

please add decomp.me scratches to all non-matchings

What about for ones where part of it is because I/we dont know what the datatype of something is yet, such as like fn_800E5564 or fn_800E55AC? I am also realizing i left those as fake matches, ill have to change that, but like those functions could get a decomp.me but does it make sense if noone can complete it right now anyways? Wouldnt that make sense to either a) get rid of the match for now entirely (in order words just delete the function in the cpp and leave it at 0%) or b) just leave it with as much as we know for now, decompile more, come back when we know more, then open a decomp.me when there is more to work off of (if it couldn't be matched)?

Like several functions I left what i knew so far to save people some time, but maybe its better I just leave them at 0 until other progress is made on other files? I will wait for your thoughts on this

Ideally you would do scratches for all nonmatchings, and revert fake matches like those intrepert casts

Comment thread src/Koga/EnManager.cpp Outdated
@ThePlayerRolo

ThePlayerRolo commented Jul 9, 2026

Copy link
Copy Markdown
Owner

can you fix the new merge conflicts?

@SomeJakeGuy

Copy link
Copy Markdown
Contributor Author

yes, will address your other comments and handle the merge conflicts later tonight after work :)

@SomeJakeGuy

Copy link
Copy Markdown
Contributor Author

Should be good to go now, let me know if anything else is pending!

Comment thread include/Koga/EnManager.hpp Outdated
@SomeJakeGuy

Copy link
Copy Markdown
Contributor Author

Done

Comment thread src/Koga/EnManager.cpp
@SomeJakeGuy

Copy link
Copy Markdown
Contributor Author

Moved it as a macro!

@ThePlayerRolo
ThePlayerRolo merged commit 748e34e into ThePlayerRolo:main Jul 10, 2026
4 checks passed
@SomeJakeGuy
SomeJakeGuy deleted the EnManager branch August 3, 2026 04:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants