Skip to content

Decompile MainSelect overlay#8

Merged
Yanis002 merged 4 commits intozeldaret:mainfrom
Yanis002:mainselect
Jan 11, 2026
Merged

Decompile MainSelect overlay#8
Yanis002 merged 4 commits intozeldaret:mainfrom
Yanis002:mainselect

Conversation

@Yanis002
Copy link
Copy Markdown
Collaborator

Decompilation of the file select overlay, I reached around 90% completion I believe. I need to move on something new but I'll try to clean-up stuff before merging 🧹

@Yanis002 Yanis002 marked this pull request as draft January 10, 2026 18:58
@decomp-dev
Copy link
Copy Markdown

decomp-dev bot commented Jan 10, 2026

Report for eur (8adcd6e - a68932e)

📈 Matched code: 1.00% (+0.45%, +20544 bytes)
📈 Linked code: 0.36% (+0.09%, +4232 bytes)
📈 Matched data: 22.14% (+20.82%, +281904 bytes)
📈 Linked data: 0.16% (+0.02%, +284 bytes)

✅ 252 new matches
Unit Item Bytes Before After
src/019_MainSelect/FileSelectSubScreen .bss +281604 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::~FileSelectMain() +512 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::~FileSelectMain() +504 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived3 UnkSystem1_ov019_Derived3::vfunc_1C(unsigned int, int, int) +504 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived2 UnkSystem1_ov019_Derived2::vfunc_1C(unsigned int, int, int) +496 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c757c() +492 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cdcb8() +468 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived1 UnkSystem1_ov019_Derived1::vfunc_1C(unsigned int, int, int) +428 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7000() +380 0.00% 100.00%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::vfunc_08() +340 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7910() +308 0.00% 100.00%
src/019_MainSelect/FileSelectMicTest UnkStruct_ov019_020d24c8_28_270::UnkStruct_ov019_020d24c8_28_270() +292 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectManager::vfunc_10(int, int, int) +288 0.00% 100.00%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::func_ov019_020cf73c(int, int) +288 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c9c70() +280 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::~FileSelectOptions() +280 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived1 UnkSystem1_ov019_Derived1::vfunc_20(int, int, int) +272 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::~FileSelectOptions() +272 0.00% 100.00%
src/019_MainSelect/FileSelectOptions UnkStruct_ov019_020d24c8_2C_24::~UnkStruct_ov019_020d24c8_2C_24() +256 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectSubScreen::~FileSelectSubScreen() +244 0.00% 100.00%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::~FileSelectSubScreen() +236 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd7f8() +220 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c8b74() +216 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectManager::~FileSelectManager() +208 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c8454() +208 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7c70() +204 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectManager::~FileSelectManager() +200 0.00% 100.00%
src/019_MainSelect/FileSelectOptions UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce414() +200 0.00% 100.00%
src/019_MainSelect/019_SaveManager SaveFile::func_ov019_020d0d50() +200 0.00% 100.00%
src/019_MainSelect/019_SaveManager SaveFile::func_ov019_020d0c90(int) +192 0.00% 100.00%

...and 222 more new matches

📈 58 improvements in unmatched functions
Unit Item Bytes Before After
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c9e08() +1891 0.00% 85.84%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c92dc() +1852 0.00% 87.21%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020ca940() +1845 0.00% 87.40%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c8c4c() +1643 0.00% 97.84%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c854c() +1341 0.00% 97.51%
src/019_MainSelect/019_UnkSubStruct9 UnkSubStruct9::func_ov019_020cbc0c() +1156 0.00% 46.95%
src/019_MainSelect/FileSelectMain FileSelectMain::FileSelectMain() +957 0.00% 38.86%
src/019_MainSelect/FileSelectOptions UnkStruct_ov019_020d24c8_2C_24::UnkStruct_ov019_020d24c8_2C_24(GameModeManagerBase_104_0C*, int) +940 0.00% 83.35%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd8d4() +773 0.00% 99.69%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c72a0() +699 0.00% 95.50%
src/019_MainSelect/FileSelectMain .data +696 0.00% 88.78%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::FileSelectSubScreen() +686 0.00% 79.88%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7dc8() +642 0.00% 81.52%
src/019_MainSelect/FileSelectMicTest FileSelectMicTest::vfunc_08() +628 0.00% 93.55%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cce30() +581 0.00% 70.17%
src/019_MainSelect/FileSelectOptions FileSelectOptions::FileSelectOptions(int) +499 0.00% 75.17%
src/019_MainSelect/019_SaveManager SaveFile::func_ov019_020d1808(int) +477 0.00% 70.69%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd16c() +468 0.00% 68.16%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c6e3c() +399 0.00% 88.45%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c82c4() +399 0.00% 99.90%
src/019_MainSelect/FileSelectMain FileSelectMain::vfunc_08() +371 0.00% 91.14%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020ca6a4() +359 0.00% 99.89%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd614() +334 0.00% 89.92%
src/019_MainSelect/019_SaveManager SaveFile::SaveFile() +327 0.00% 99.89%
src/019_MainSelect/FileSelectMicTest FileSelectMicTest::FileSelectMicTest() +323 0.00% 91.80%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7a44() +309 0.00% 61.40%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd41c() +299 0.00% 63.01%
src/019_MainSelect/FileSelectManager FileSelectManager::func_ov019_020c503c() +283 0.00% 94.60%
src/019_MainSelect/FileSelectOptions .data +227 0.00% 96.61%
src/019_MainSelect/FileSelectMicTest FileSelectMicTest::func_ov019_020ceaac() +223 0.00% 77.54%

...and 28 more improvements in unmatched functions


Report for jp (8adcd6e - a68932e)

📈 Matched code: 0.99% (+0.44%, +20368 bytes)
📈 Matched data: 22.12% (+20.80%, +281904 bytes)

✅ 247 new matches
Unit Item Bytes Before After
src/019_MainSelect/FileSelectSubScreen .bss +281604 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::~FileSelectMain() +512 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::~FileSelectMain() +504 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived3 UnkSystem1_ov019_Derived3::vfunc_1C(unsigned int, int, int) +504 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived2 UnkSystem1_ov019_Derived2::vfunc_1C(unsigned int, int, int) +496 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c757c() +492 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cdcb8() +468 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived1 UnkSystem1_ov019_Derived1::vfunc_1C(unsigned int, int, int) +428 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7000() +380 0.00% 100.00%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::vfunc_08() +340 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7910() +308 0.00% 100.00%
src/019_MainSelect/FileSelectMicTest UnkStruct_ov019_020d24c8_28_270::UnkStruct_ov019_020d24c8_28_270() +292 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectManager::vfunc_10(int, int, int) +288 0.00% 100.00%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::func_ov019_020cf73c(int, int) +288 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c9c70() +280 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::~FileSelectOptions() +280 0.00% 100.00%
src/019_MainSelect/019_UnkSystem1_ov019_Derived1 UnkSystem1_ov019_Derived1::vfunc_20(int, int, int) +272 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::~FileSelectOptions() +272 0.00% 100.00%
src/019_MainSelect/FileSelectOptions UnkStruct_ov019_020d24c8_2C_24::~UnkStruct_ov019_020d24c8_2C_24() +256 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectSubScreen::~FileSelectSubScreen() +244 0.00% 100.00%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::~FileSelectSubScreen() +236 0.00% 100.00%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd7f8() +220 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c8b74() +216 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectManager::~FileSelectManager() +208 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c8454() +208 0.00% 100.00%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7c70() +204 0.00% 100.00%
src/019_MainSelect/FileSelectManager FileSelectManager::~FileSelectManager() +200 0.00% 100.00%
src/019_MainSelect/FileSelectOptions UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce414() +200 0.00% 100.00%
src/019_MainSelect/019_SaveManager SaveFile::func_ov019_020d0d50() +200 0.00% 100.00%
src/019_MainSelect/019_SaveManager SaveFile::func_ov019_020d0c90(int) +192 0.00% 100.00%

...and 217 more new matches

📈 57 improvements in unmatched functions
Unit Item Bytes Before After
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c9e08() +1891 0.00% 85.84%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c92dc() +1852 0.00% 87.21%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020ca940() +1845 0.00% 87.40%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c8c4c() +1643 0.00% 97.84%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c854c() +1341 0.00% 97.51%
src/019_MainSelect/019_UnkSubStruct9 UnkSubStruct9::func_ov019_020cbc0c() +1156 0.00% 46.95%
src/019_MainSelect/FileSelectMain FileSelectMain::FileSelectMain() +957 0.00% 38.86%
src/019_MainSelect/FileSelectOptions UnkStruct_ov019_020d24c8_2C_24::UnkStruct_ov019_020d24c8_2C_24(GameModeManagerBase_104_0C*, int) +940 0.00% 83.35%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd8d4() +773 0.00% 99.69%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c72a0() +699 0.00% 95.50%
src/019_MainSelect/FileSelectSubScreen FileSelectSubScreen::FileSelectSubScreen() +686 0.00% 79.88%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7dc8() +642 0.00% 81.52%
src/019_MainSelect/FileSelectMicTest FileSelectMicTest::vfunc_08() +628 0.00% 93.55%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cce30() +581 0.00% 70.17%
src/019_MainSelect/FileSelectOptions FileSelectOptions::FileSelectOptions(int) +499 0.00% 75.17%
src/019_MainSelect/019_SaveManager SaveFile::func_ov019_020d1808(int) +477 0.00% 70.69%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd16c() +468 0.00% 68.16%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c6e3c() +399 0.00% 88.45%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c82c4() +399 0.00% 99.90%
src/019_MainSelect/FileSelectMain FileSelectMain::vfunc_08() +371 0.00% 91.14%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020ca6a4() +359 0.00% 99.89%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd614() +334 0.00% 89.92%
src/019_MainSelect/019_SaveManager SaveFile::SaveFile() +327 0.00% 99.89%
src/019_MainSelect/FileSelectMicTest FileSelectMicTest::FileSelectMicTest() +323 0.00% 91.80%
src/019_MainSelect/FileSelectMain FileSelectMain::func_ov019_020c7a44() +309 0.00% 61.40%
src/019_MainSelect/FileSelectOptions FileSelectOptions::func_ov019_020cd41c() +299 0.00% 63.01%
src/019_MainSelect/FileSelectManager FileSelectManager::func_ov019_020c503c() +283 0.00% 94.60%
src/019_MainSelect/FileSelectOptions .data +227 0.00% 96.61%
src/019_MainSelect/FileSelectMicTest FileSelectMicTest::func_ov019_020ceaac() +223 0.00% 77.54%
src/019_MainSelect/FileSelectOptions UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce4dc() +205 0.00% 64.11%

...and 27 more improvements in unmatched functions

@Yanis002 Yanis002 marked this pull request as ready for review January 11, 2026 00:26
@Yanis002 Yanis002 linked an issue Jan 11, 2026 that may be closed by this pull request
@Yanis002 Yanis002 merged commit 1713ffc into zeldaret:main Jan 11, 2026
3 checks passed
@Yanis002 Yanis002 deleted the mainselect branch January 11, 2026 01:25
Yanis002 added a commit to Yanis002/st that referenced this pull request Feb 3, 2026
* match wstring.c

* match math_api.c, mbstring.c, mem.c and mem_funcs.c

* more progress

* build issues

* fix non-matching issues

* reorganise files

* match fdlibm (+ libc progress)

* fix jp build

* solved some non-matchings and progress

* removed types.h usage in libc

* match data and add missing delinks for jp
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.

Decompile 019_MainSelect

1 participant