Just dumping my findings from this Discord thread before I forget about everything.
Existing information
Various symbols related to hidden stairs, especially hidden_stairs_pos in dungeon_generation_info and hidden_stairs_type
Relevant addresses (US)
The following was found by reverse engineering ExecuteMonsterAction switch case 0x26 (ACTION_USE_STAIRS):
0x02338708: bool IsHiddenStairsPosition(struct position* pos)
0x02338850: enum hidden_stairs_type GetHiddenStairsTypeCached()(retrieved from dungeon_generation_info)
0x02338898: void SetDungeonGenerationInfo0xc(enum hidden_stairs_type ty)
So dungeon_generation_info unknown 0xc seems to be the hidden stairs type that is used to load the next floor. Forcing this value to be 1 or 2 via memory editing would probably spawn the player in the Hidden Room or Hidden Bazaar.
Just dumping my findings from this Discord thread before I forget about everything.
Existing information
Various symbols related to hidden stairs, especially
hidden_stairs_posindungeon_generation_infoandhidden_stairs_typeRelevant addresses (US)
The following was found by reverse engineering
ExecuteMonsterActionswitch case 0x26 (ACTION_USE_STAIRS):0x02338708:bool IsHiddenStairsPosition(struct position* pos)0x02338850:enum hidden_stairs_type GetHiddenStairsTypeCached()(retrieved fromdungeon_generation_info)0x02338898:void SetDungeonGenerationInfo0xc(enum hidden_stairs_type ty)So
dungeon_generation_infounknown 0xc seems to be the hidden stairs type that is used to load the next floor. Forcing this value to be 1 or 2 via memory editing would probably spawn the player in the Hidden Room or Hidden Bazaar.