The performance indicators at the bottom of the screen are handled by a class named "JUTProcBar".
I haven't studied the code for them very thoroughly, but the data it shows is related to two main things:
- Frame rate/how long it takes to do specific things
- How much space is available in specific Heaps
The fourth controller is also used for debug things. Don't know what for exactly.
Anyway, about the map select: It's a scene on its own, and handled by the following functions:
dScnMenu_Create(scene_class *)
dScnMenu_Draw(menu_of_scene_class *)
dScnMenu_Execute(menu_of_scene_class *)
dScnMenu_IsDelete(menu_of_scene_class *)
dScnMenu_Delete(menu_of_scene_class *)
phase_1(menu_of_scene_class *)
phase_2(menu_of_scene_class *)
All the scene management stuff is handled by functions prefixed with
fopScn. In particular, this is the function that executes a scene change:
bool fopScnM_ChangeReq(scene_class *currentSceneCls, short newSceneID, short unk1, unsigned short unk2);
The scene ID is actually a profile ID (the profile is obtained using the function fpcPf_Get(short)). The profile is a small structure that tells the game how to construct a specific object/scene/etc.
Here are all the ones I can find:
5 - ScnLogo
6 - ScnMenu
7, 8, 9 - ScnPly variations
10/0xA, 11/0xB - ScnTitle
12/0xC, 13/0xD - ScnName
14/0xE, 15/0xF - ScnOpen
20/0x14 - ScnRoom
But unfortunately, there's no function that calls fopScnM_ChangeReq with 6

So the map select menu is totally inactive, even when the debug mode is enabled using version >= 0x91.
The code in the TCRF article works by changing profile 12 so it makes a ScnMenu instead of ScnName.
If there's anything else you'd like me to look at in the code, let me know...
____________________