Repository: n64decomp/sm64 Branch: master Commit: 9921382a68bb Files: 3376 Total size: 32.8 MB Directory structure: gitextract_1x861l3r/ ├── .clang-format ├── .clang-tidy ├── .gitattributes ├── .gitignore ├── CHANGES ├── Dockerfile ├── Doxyfile ├── Jenkinsfile ├── LICENSE.md ├── Makefile ├── Makefile.split ├── README.md ├── actors/ │ ├── amp/ │ │ ├── anims/ │ │ │ ├── animation.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bird/ │ │ ├── anims/ │ │ │ ├── anim_050008D0.inc.c │ │ │ ├── anim_050009D0.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── blargg/ │ │ ├── anims/ │ │ │ ├── anim_05006070.inc.c │ │ │ ├── anim_05006154.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── blue_coin_switch/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── blue_fish/ │ │ ├── anims/ │ │ │ ├── anim_0301C298.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bobomb/ │ │ ├── anims/ │ │ │ ├── anim_080237FC.inc.c │ │ │ ├── anim_08023954.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bomb/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── boo/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── boo_castle/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── book/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bookend/ │ │ ├── anims/ │ │ │ ├── anim_050023F4.inc.c │ │ │ ├── anim_05002510.inc.c │ │ │ ├── anim_05002528.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bowling_ball/ │ │ └── geo.inc.c │ ├── bowser/ │ │ ├── anims/ │ │ │ ├── anim_060445EC.inc.c │ │ │ ├── anim_060453C8.inc.c │ │ │ ├── anim_06045D28.inc.c │ │ │ ├── anim_0604671C.inc.c │ │ │ ├── anim_0604675C.inc.c │ │ │ ├── anim_06048200.inc.c │ │ │ ├── anim_06049880.inc.c │ │ │ ├── anim_0604A8E4.inc.c │ │ │ ├── anim_0604B178.inc.c │ │ │ ├── anim_0604B8CC.inc.c │ │ │ ├── anim_0604D184.inc.c │ │ │ ├── anim_0604E5A0.inc.c │ │ │ ├── anim_0604F030.inc.c │ │ │ ├── anim_0604FF4C.inc.c │ │ │ ├── anim_06050530.inc.c │ │ │ ├── anim_060514E8.inc.c │ │ │ ├── anim_06051C68.inc.c │ │ │ ├── anim_06052680.inc.c │ │ │ ├── anim_06052D94.inc.c │ │ │ ├── anim_060534F4.inc.c │ │ │ ├── anim_06053B8C.inc.c │ │ │ ├── anim_06054290.inc.c │ │ │ ├── anim_06054950.inc.c │ │ │ ├── anim_06055210.inc.c │ │ │ ├── anim_06055984.inc.c │ │ │ ├── anim_06056774.inc.c │ │ │ ├── anim_06057678.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── flames_data.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bowser_flame/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bowser_key/ │ │ ├── anims/ │ │ │ ├── anim_course_exit.inc.c │ │ │ ├── anim_unlock_door.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── breakable_box/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bub/ │ │ ├── anims/ │ │ │ ├── anim_0601233C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bubba/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bubble/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bullet_bill/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bully/ │ │ ├── anims/ │ │ │ ├── anim_050042A4.inc.c │ │ │ ├── anim_050043D8.inc.c │ │ │ ├── anim_05004598.inc.c │ │ │ ├── anim_050046F4.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── burn_smoke/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── butterfly/ │ │ ├── anims/ │ │ │ ├── anim_030055B0.inc.c │ │ │ ├── anim_03005698.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── cannon_barrel/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── cannon_base/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── cannon_lid/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── capswitch/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── chain_ball/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── chain_chomp/ │ │ ├── anims/ │ │ │ ├── anim_06025160.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── chair/ │ │ ├── anims/ │ │ │ ├── anim_0500576C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── checkerboard_platform/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── chillychief/ │ │ ├── anims/ │ │ │ ├── anim_060032EC.inc.c │ │ │ ├── anim_06003420.inc.c │ │ │ ├── anim_060035E0.inc.c │ │ │ ├── anim_0600373C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── chuckya/ │ │ ├── anims/ │ │ │ ├── anim_0800AF68.inc.c │ │ │ ├── anim_0800B1A8.inc.c │ │ │ ├── anim_0800B4A8.inc.c │ │ │ ├── anim_0800B9F8.inc.c │ │ │ ├── anim_0800BBEC.inc.c │ │ │ ├── anim_0800C058.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── clam_shell/ │ │ ├── anims/ │ │ │ ├── anim_05001654.inc.c │ │ │ ├── anim_0500172C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── coin/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── common0.c │ ├── common0.h │ ├── common0_geo.c │ ├── common1.c │ ├── common1.h │ ├── common1_geo.c │ ├── cyan_fish/ │ │ ├── anims/ │ │ │ ├── anim_0600E24C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── dirt/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── door/ │ │ ├── anims/ │ │ │ ├── anim_03015208.inc.c │ │ │ ├── anim_03015440.inc.c │ │ │ ├── anim_03015458.inc.c │ │ │ ├── anim_03015690.inc.c │ │ │ ├── anim_030156A8.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── dorrie/ │ │ ├── anims/ │ │ │ ├── anim_0600E18C.inc.c │ │ │ ├── anim_0600E9BC.inc.c │ │ │ ├── anim_0600F620.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── exclamation_box/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── exclamation_box_outline/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── explosion/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── eyerok/ │ │ ├── anims/ │ │ │ ├── anim_0500D270.inc.c │ │ │ ├── anim_0500DF50.inc.c │ │ │ ├── anim_0500E1D8.inc.c │ │ │ ├── anim_0500E99C.inc.c │ │ │ ├── anim_0500F3D8.inc.c │ │ │ ├── anim_0500F3F0.inc.c │ │ │ ├── anim_0500FCCC.inc.c │ │ │ ├── anim_050116CC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── flame/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── flyguy/ │ │ ├── anims/ │ │ │ ├── anim_08011A4C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── fwoosh/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── goomba/ │ │ ├── anims/ │ │ │ ├── anim_0801DA34.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── group0.c │ ├── group0.h │ ├── group0_geo.c │ ├── group1.c │ ├── group1.h │ ├── group10.c │ ├── group10.h │ ├── group10_geo.c │ ├── group11.c │ ├── group11.h │ ├── group11_geo.c │ ├── group12.c │ ├── group12.h │ ├── group12_geo.c │ ├── group13.c │ ├── group13.h │ ├── group13_geo.c │ ├── group14.c │ ├── group14.h │ ├── group14_geo.c │ ├── group15.c │ ├── group15.h │ ├── group15_geo.c │ ├── group16.c │ ├── group16.h │ ├── group16_geo.c │ ├── group17.c │ ├── group17.h │ ├── group17_geo.c │ ├── group1_geo.c │ ├── group2.c │ ├── group2.h │ ├── group2_geo.c │ ├── group3.c │ ├── group3.h │ ├── group3_geo.c │ ├── group4.c │ ├── group4.h │ ├── group4_geo.c │ ├── group5.c │ ├── group5.h │ ├── group5_geo.c │ ├── group6.c │ ├── group6.h │ ├── group6_geo.c │ ├── group7.c │ ├── group7.h │ ├── group7_geo.c │ ├── group8.c │ ├── group8.h │ ├── group8_geo.c │ ├── group9.c │ ├── group9.h │ ├── group9_geo.c │ ├── haunted_cage/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── heart/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── heave_ho/ │ │ ├── anims/ │ │ │ ├── anim_05014F28.inc.c │ │ │ ├── anim_05015118.inc.c │ │ │ ├── anim_05015334.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── hoot/ │ │ ├── anims/ │ │ │ ├── anim_050053EC.inc.c │ │ │ ├── anim_05005750.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── impact_ring/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── impact_smoke/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── king_bobomb/ │ │ ├── anims/ │ │ │ ├── anim_0500BDFC.inc.c │ │ │ ├── anim_0500C2AC.inc.c │ │ │ ├── anim_0500C520.inc.c │ │ │ ├── anim_0500C774.inc.c │ │ │ ├── anim_0500CFCC.inc.c │ │ │ ├── anim_0500D5B0.inc.c │ │ │ ├── anim_0500D978.inc.c │ │ │ ├── anim_0500DDD8.inc.c │ │ │ ├── anim_0500E10C.inc.c │ │ │ ├── anim_0500F078.inc.c │ │ │ ├── anim_0500F6C8.inc.c │ │ │ ├── anim_0500FE18.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── klepto/ │ │ ├── anims/ │ │ │ ├── anim_05005E44.inc.c │ │ │ ├── anim_05007574.inc.c │ │ │ ├── anim_050079B0.inc.c │ │ │ ├── anim_05007E34.inc.c │ │ │ ├── anim_050086C0.inc.c │ │ │ ├── anim_05008A18.inc.c │ │ │ ├── anim_05008CE4.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── koopa/ │ │ ├── anims/ │ │ │ ├── anim_0600CC24.inc.c │ │ │ ├── anim_0600CFB8.inc.c │ │ │ ├── anim_0600D518.inc.c │ │ │ ├── anim_0600D804.inc.c │ │ │ ├── anim_0600DD90.inc.c │ │ │ ├── anim_0600E32C.inc.c │ │ │ ├── anim_0600E928.inc.c │ │ │ ├── anim_0600F3EC.inc.c │ │ │ ├── anim_0600FB1C.inc.c │ │ │ ├── anim_06010258.inc.c │ │ │ ├── anim_06010634.inc.c │ │ │ ├── anim_06010E48.inc.c │ │ │ ├── anim_060110D8.inc.c │ │ │ ├── anim_0601134C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── koopa_flag/ │ │ ├── anims/ │ │ │ ├── anim_06001010.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── koopa_shell/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── lakitu_cameraman/ │ │ ├── anims/ │ │ │ ├── anim_060058E0.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── lakitu_enemy/ │ │ ├── anims/ │ │ │ ├── anim_05013EDC.inc.c │ │ │ ├── anim_050140E8.inc.c │ │ │ ├── anim_050142E0.inc.c │ │ │ ├── anim_050144BC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── leaves/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── mad_piano/ │ │ ├── anims/ │ │ │ ├── anim_05009A04.inc.c │ │ │ ├── anim_05009AFC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── manta/ │ │ ├── anims/ │ │ │ ├── anim_05008CFC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── mario/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── mario_cap/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── metal_box/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── mips/ │ │ ├── anims/ │ │ │ ├── anim_06013248.inc.c │ │ │ ├── anim_0601369C.inc.c │ │ │ ├── anim_060139F8.inc.c │ │ │ ├── anim_06014B94.inc.c │ │ │ ├── anim_0601561C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── mist/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── moneybag/ │ │ ├── anims/ │ │ │ ├── anim_06005AD8.inc.c │ │ │ ├── anim_06005BEC.inc.c │ │ │ ├── anim_06005C98.inc.c │ │ │ ├── anim_06005D3C.inc.c │ │ │ ├── anim_06005E44.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── monty_mole/ │ │ ├── anims/ │ │ │ ├── anim_05004FEC.inc.c │ │ │ ├── anim_0500527C.inc.c │ │ │ ├── anim_050054B0.inc.c │ │ │ ├── anim_050062B0.inc.c │ │ │ ├── anim_050065C0.inc.c │ │ │ ├── anim_050065D8.inc.c │ │ │ ├── anim_05006880.inc.c │ │ │ ├── anim_05006B10.inc.c │ │ │ ├── anim_05006DB8.inc.c │ │ │ ├── anim_05007230.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── monty_mole_hole/ │ │ └── model.inc.c │ ├── mr_i_eyeball/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── mr_i_iris/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── mushroom_1up/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── number/ │ │ └── geo.inc.c │ ├── peach/ │ │ ├── anims/ │ │ │ ├── anim_0500C638.inc.c │ │ │ ├── anim_0500E6B4.inc.c │ │ │ ├── anim_0500ED94.inc.c │ │ │ ├── anim_0500F474.inc.c │ │ │ ├── anim_0500FE84.inc.c │ │ │ ├── anim_05011050.inc.c │ │ │ ├── anim_05012F40.inc.c │ │ │ ├── anim_05015468.inc.c │ │ │ ├── anim_05016798.inc.c │ │ │ ├── anim_05018664.inc.c │ │ │ ├── anim_0501B328.inc.c │ │ │ ├── anim_0501C404.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── pebble/ │ │ └── model.inc.c │ ├── penguin/ │ │ ├── anims/ │ │ │ ├── anim_050079E4.inc.c │ │ │ ├── anim_05007DCC.inc.c │ │ │ ├── anim_050087C0.inc.c │ │ │ ├── anim_05008B5C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── piranha_plant/ │ │ ├── anims/ │ │ │ ├── anim_06017C38.inc.c │ │ │ ├── anim_06017D88.inc.c │ │ │ ├── anim_060187B0.inc.c │ │ │ ├── anim_06018BA8.inc.c │ │ │ ├── anim_06019854.inc.c │ │ │ ├── anim_0601A014.inc.c │ │ │ ├── anim_0601AAE4.inc.c │ │ │ ├── anim_0601AF34.inc.c │ │ │ ├── anim_0601B634.inc.c │ │ │ ├── anim_0601C304.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── pokey/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── poundable_pole/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── power_meter/ │ │ └── model.inc.c │ ├── purple_switch/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── sand/ │ │ └── model.inc.c │ ├── scuttlebug/ │ │ ├── anims/ │ │ │ ├── anim_0601504C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── seaweed/ │ │ ├── anims/ │ │ │ ├── anim_0600A4BC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── skeeter/ │ │ ├── anims/ │ │ │ ├── anim_06005D44.inc.c │ │ │ ├── anim_06006B70.inc.c │ │ │ ├── anim_060071E0.inc.c │ │ │ ├── anim_06007DC8.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── small_key/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── smoke/ │ │ └── model.inc.c │ ├── snowman/ │ │ ├── anims/ │ │ │ ├── anim_0500CED8.inc.c │ │ │ ├── anim_0500D100.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── snufit/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── sparkle/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── sparkle_animation/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── spindrift/ │ │ ├── anims/ │ │ │ ├── anim_050006AC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── spiny/ │ │ ├── anims/ │ │ │ ├── anim_05016E94.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── spiny_egg/ │ │ ├── anims/ │ │ │ ├── anim_050157CC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── springboard/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── star/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── stomp_smoke/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── sushi/ │ │ ├── anims/ │ │ │ ├── anim_0500AE3C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── swoop/ │ │ ├── anims/ │ │ │ ├── anim_06006E88.inc.c │ │ │ ├── anim_060070B8.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── test_platform/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── thwomp/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── toad/ │ │ ├── anims/ │ │ │ ├── anim_06008F7C.inc.c │ │ │ ├── anim_06009310.inc.c │ │ │ ├── anim_060099F0.inc.c │ │ │ ├── anim_0600A0D0.inc.c │ │ │ ├── anim_0600B66C.inc.c │ │ │ ├── anim_0600CE78.inc.c │ │ │ ├── anim_0600E414.inc.c │ │ │ ├── anim_0600FB40.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── tornado/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── transparent_star/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── treasure_chest/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── tree/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── ukiki/ │ │ ├── anims/ │ │ │ ├── anim_0500D658.inc.c │ │ │ ├── anim_0500DC80.inc.c │ │ │ ├── anim_0500DDEC.inc.c │ │ │ ├── anim_0500EACC.inc.c │ │ │ ├── anim_0500EEA8.inc.c │ │ │ ├── anim_0500F530.inc.c │ │ │ ├── anim_0500FC84.inc.c │ │ │ ├── anim_0501006C.inc.c │ │ │ ├── anim_050103F4.inc.c │ │ │ ├── anim_05012ABC.inc.c │ │ │ ├── anim_05014BE4.inc.c │ │ │ ├── anim_050153C4.inc.c │ │ │ ├── anim_0501576C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── unagi/ │ │ ├── anims/ │ │ │ ├── anim_0500FBF4.inc.c │ │ │ ├── anim_05010488.inc.c │ │ │ ├── anim_05010B54.inc.c │ │ │ ├── anim_05011488.inc.c │ │ │ ├── anim_05011890.inc.c │ │ │ ├── anim_05011D40.inc.c │ │ │ ├── anim_0501280C.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── walk_smoke/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── warp_collision/ │ │ └── collision.inc.c │ ├── warp_pipe/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── water_bubble/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── water_mine/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── water_ring/ │ │ ├── anims/ │ │ │ ├── anim_06013F64.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── water_splash/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── water_wave/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── whirlpool/ │ │ └── model.inc.c │ ├── white_particle/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── white_particle_small/ │ │ └── model.inc.c │ ├── whomp/ │ │ ├── anims/ │ │ │ ├── anim_060202DC.inc.c │ │ │ ├── anim_060209EC.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── wiggler_body/ │ │ ├── anims/ │ │ │ ├── anim_0500C760.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── wiggler_head/ │ │ ├── anims/ │ │ │ ├── anim_0500EC74.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── wooden_signpost/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── yellow_sphere/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── yellow_sphere_small/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── yoshi/ │ │ ├── anims/ │ │ │ ├── anim_050233A4.inc.c │ │ │ ├── anim_05023E4C.inc.c │ │ │ ├── anim_050240E8.inc.c │ │ │ ├── data.inc.c │ │ │ └── table.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ └── yoshi_egg/ │ ├── geo.inc.c │ └── model.inc.c ├── asm/ │ ├── boot.s │ ├── decompress.s │ ├── entry.s │ ├── ipl3_font.s │ └── rom_header.s ├── assets/ │ ├── anims/ │ │ ├── anim_00.inc.c │ │ ├── anim_01_02.inc.c │ │ ├── anim_03.inc.c │ │ ├── anim_04.inc.c │ │ ├── anim_05.inc.c │ │ ├── anim_06.inc.c │ │ ├── anim_07_08.inc.c │ │ ├── anim_09.inc.c │ │ ├── anim_0A.inc.c │ │ ├── anim_0B_0C.inc.c │ │ ├── anim_0D.inc.c │ │ ├── anim_0E.inc.c │ │ ├── anim_0F_10.inc.c │ │ ├── anim_11.inc.c │ │ ├── anim_12.inc.c │ │ ├── anim_13.inc.c │ │ ├── anim_14.inc.c │ │ ├── anim_15.inc.c │ │ ├── anim_16.inc.c │ │ ├── anim_17.inc.c │ │ ├── anim_18.inc.c │ │ ├── anim_19.inc.c │ │ ├── anim_1A.inc.c │ │ ├── anim_1B.inc.c │ │ ├── anim_1C.inc.c │ │ ├── anim_1D.inc.c │ │ ├── anim_1E.inc.c │ │ ├── anim_1F.inc.c │ │ ├── anim_20.inc.c │ │ ├── anim_21.inc.c │ │ ├── anim_22.inc.c │ │ ├── anim_23.inc.c │ │ ├── anim_24.inc.c │ │ ├── anim_25.inc.c │ │ ├── anim_26.inc.c │ │ ├── anim_27.inc.c │ │ ├── anim_28.inc.c │ │ ├── anim_29.inc.c │ │ ├── anim_2A.inc.c │ │ ├── anim_2B.inc.c │ │ ├── anim_2C_2D.inc.c │ │ ├── anim_2E.inc.c │ │ ├── anim_2F.inc.c │ │ ├── anim_30.inc.c │ │ ├── anim_31.inc.c │ │ ├── anim_32.inc.c │ │ ├── anim_33.inc.c │ │ ├── anim_34.inc.c │ │ ├── anim_35.inc.c │ │ ├── anim_36.inc.c │ │ ├── anim_37.inc.c │ │ ├── anim_38.inc.c │ │ ├── anim_39.inc.c │ │ ├── anim_3A.inc.c │ │ ├── anim_3B.inc.c │ │ ├── anim_3C_3D.inc.c │ │ ├── anim_3E.inc.c │ │ ├── anim_3F.inc.c │ │ ├── anim_40.inc.c │ │ ├── anim_41.inc.c │ │ ├── anim_42.inc.c │ │ ├── anim_43.inc.c │ │ ├── anim_44.inc.c │ │ ├── anim_45_46.inc.c │ │ ├── anim_47.inc.c │ │ ├── anim_48.inc.c │ │ ├── anim_49.inc.c │ │ ├── anim_4A.inc.c │ │ ├── anim_4B.inc.c │ │ ├── anim_4C.inc.c │ │ ├── anim_4D_4E.inc.c │ │ ├── anim_4F.inc.c │ │ ├── anim_50.inc.c │ │ ├── anim_51.inc.c │ │ ├── anim_52.inc.c │ │ ├── anim_53.inc.c │ │ ├── anim_54.inc.c │ │ ├── anim_55.inc.c │ │ ├── anim_56_57.inc.c │ │ ├── anim_58.inc.c │ │ ├── anim_59.inc.c │ │ ├── anim_5A.inc.c │ │ ├── anim_5B.inc.c │ │ ├── anim_5C.inc.c │ │ ├── anim_5D.inc.c │ │ ├── anim_5E.inc.c │ │ ├── anim_5F.inc.c │ │ ├── anim_60.inc.c │ │ ├── anim_61.inc.c │ │ ├── anim_62.inc.c │ │ ├── anim_63.inc.c │ │ ├── anim_64.inc.c │ │ ├── anim_65.inc.c │ │ ├── anim_66.inc.c │ │ ├── anim_67.inc.c │ │ ├── anim_68.inc.c │ │ ├── anim_69.inc.c │ │ ├── anim_6A.inc.c │ │ ├── anim_6B.inc.c │ │ ├── anim_6C.inc.c │ │ ├── anim_6D.inc.c │ │ ├── anim_6E.inc.c │ │ ├── anim_6F_70.inc.c │ │ ├── anim_71.inc.c │ │ ├── anim_72_73.inc.c │ │ ├── anim_74.inc.c │ │ ├── anim_75.inc.c │ │ ├── anim_76.inc.c │ │ ├── anim_77.inc.c │ │ ├── anim_78.inc.c │ │ ├── anim_79.inc.c │ │ ├── anim_7A.inc.c │ │ ├── anim_7B.inc.c │ │ ├── anim_7C.inc.c │ │ ├── anim_7D.inc.c │ │ ├── anim_7E.inc.c │ │ ├── anim_7F.inc.c │ │ ├── anim_80.inc.c │ │ ├── anim_81.inc.c │ │ ├── anim_82.inc.c │ │ ├── anim_83.inc.c │ │ ├── anim_84.inc.c │ │ ├── anim_85.inc.c │ │ ├── anim_86.inc.c │ │ ├── anim_87.inc.c │ │ ├── anim_88_89.inc.c │ │ ├── anim_8A.inc.c │ │ ├── anim_8B.inc.c │ │ ├── anim_8C.inc.c │ │ ├── anim_8D.inc.c │ │ ├── anim_8E_8F.inc.c │ │ ├── anim_90.inc.c │ │ ├── anim_91.inc.c │ │ ├── anim_92.inc.c │ │ ├── anim_93.inc.c │ │ ├── anim_94.inc.c │ │ ├── anim_95.inc.c │ │ ├── anim_96.inc.c │ │ ├── anim_97.inc.c │ │ ├── anim_98.inc.c │ │ ├── anim_99.inc.c │ │ ├── anim_9A.inc.c │ │ ├── anim_9B.inc.c │ │ ├── anim_9C.inc.c │ │ ├── anim_9D.inc.c │ │ ├── anim_9E.inc.c │ │ ├── anim_9F.inc.c │ │ ├── anim_A0.inc.c │ │ ├── anim_A1.inc.c │ │ ├── anim_A2.inc.c │ │ ├── anim_A3.inc.c │ │ ├── anim_A4.inc.c │ │ ├── anim_A5.inc.c │ │ ├── anim_A6.inc.c │ │ ├── anim_A7.inc.c │ │ ├── anim_A8.inc.c │ │ ├── anim_A9.inc.c │ │ ├── anim_AA.inc.c │ │ ├── anim_AB.inc.c │ │ ├── anim_AC.inc.c │ │ ├── anim_AD.inc.c │ │ ├── anim_AE.inc.c │ │ ├── anim_AF.inc.c │ │ ├── anim_B0.inc.c │ │ ├── anim_B1.inc.c │ │ ├── anim_B2.inc.c │ │ ├── anim_B3.inc.c │ │ ├── anim_B4.inc.c │ │ ├── anim_B5_B6.inc.c │ │ ├── anim_B7.inc.c │ │ ├── anim_B8.inc.c │ │ ├── anim_B9.inc.c │ │ ├── anim_BA.inc.c │ │ ├── anim_BB.inc.c │ │ ├── anim_BC_BD.inc.c │ │ ├── anim_BE.inc.c │ │ ├── anim_BF.inc.c │ │ ├── anim_C0.inc.c │ │ ├── anim_C1.inc.c │ │ ├── anim_C2.inc.c │ │ ├── anim_C3.inc.c │ │ ├── anim_C4.inc.c │ │ ├── anim_C5.inc.c │ │ ├── anim_C6.inc.c │ │ ├── anim_C7.inc.c │ │ ├── anim_C8.inc.c │ │ ├── anim_C9.inc.c │ │ ├── anim_CA.inc.c │ │ ├── anim_CB_CC.inc.c │ │ ├── anim_CD.inc.c │ │ ├── anim_CE.inc.c │ │ ├── anim_CF.inc.c │ │ └── anim_D0.inc.c │ └── demo_data.json ├── assets.json ├── bin/ │ ├── cave.c │ ├── debug_level_select.c │ ├── effect.c │ ├── eu/ │ │ ├── translation_de.c │ │ ├── translation_en.c │ │ └── translation_fr.c │ ├── fire.c │ ├── generic.c │ ├── grass.c │ ├── inside.c │ ├── machine.c │ ├── mountain.c │ ├── outside.c │ ├── segment2.c │ ├── sky.c │ ├── snow.c │ ├── spooky.c │ ├── title_screen_bg.c │ └── water.c ├── charmap.txt ├── charmap_menu.txt ├── data/ │ └── behavior_data.c ├── diff.py ├── diff_settings.py ├── enhancements/ │ ├── README.md │ ├── RecordDemo.js │ ├── crash.patch │ ├── debug_box.patch │ ├── fps.patch │ ├── mem_error_screen.patch │ └── record_demo.patch ├── extract_assets.py ├── first-diff.py ├── format.sh ├── include/ │ ├── PR/ │ │ ├── R4300.h │ │ ├── abi.h │ │ ├── gbi.h │ │ ├── gs2dex.h │ │ ├── gu.h │ │ ├── ique.h │ │ ├── libaudio.h │ │ ├── libultra.h │ │ ├── mbi.h │ │ ├── os.h │ │ ├── os_ai.h │ │ ├── os_cache.h │ │ ├── os_cont.h │ │ ├── os_eeprom.h │ │ ├── os_exception.h │ │ ├── os_internal.h │ │ ├── os_libc.h │ │ ├── os_message.h │ │ ├── os_misc.h │ │ ├── os_motor.h │ │ ├── os_pfs.h │ │ ├── os_pi.h │ │ ├── os_rdp.h │ │ ├── os_thread.h │ │ ├── os_time.h │ │ ├── os_tlb.h │ │ ├── os_vi.h │ │ ├── rcp.h │ │ ├── rdb.h │ │ ├── sptask.h │ │ ├── ucode.h │ │ └── ultratypes.h │ ├── behavior_data.h │ ├── command_macros_base.h │ ├── config.h │ ├── course_table.h │ ├── dialog_ids.h │ ├── eu_translation.h │ ├── geo_commands.h │ ├── gfx_dimensions.h │ ├── helper_macros.h │ ├── level_commands.h │ ├── level_misc_macros.h │ ├── level_table.h │ ├── libc/ │ │ ├── math.h │ │ ├── stdarg.h │ │ ├── stddef.h │ │ ├── stdio.h │ │ ├── stdlib.h │ │ └── string.h │ ├── macro_presets.h │ ├── macro_presets.inc.c │ ├── macros.h │ ├── macros.inc │ ├── make_const_nonconst.h │ ├── mario_animation_ids.h │ ├── mario_geo_switch_case_ids.h │ ├── model_ids.h │ ├── moving_texture_macros.h │ ├── object_constants.h │ ├── object_fields.h │ ├── platform_info.h │ ├── prevent_bss_reordering.h │ ├── segment_symbols.h │ ├── segments.h │ ├── seq_ids.h │ ├── seq_macros.inc │ ├── sm64.h │ ├── sounds.h │ ├── special_presets.h │ ├── special_presets.inc.c │ ├── surface_terrains.h │ ├── text_menu_strings.h.in │ ├── text_strings.h.in │ ├── textures.h │ ├── trig_tables.inc.c │ ├── types.h │ └── ultra64.h ├── levels/ │ ├── bbh/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ └── model.inc.c │ │ │ ├── 11/ │ │ │ │ └── model.inc.c │ │ │ ├── 12/ │ │ │ │ └── model.inc.c │ │ │ ├── 13/ │ │ │ │ └── model.inc.c │ │ │ ├── 14/ │ │ │ │ └── model.inc.c │ │ │ ├── 15/ │ │ │ │ └── model.inc.c │ │ │ ├── 16/ │ │ │ │ └── model.inc.c │ │ │ ├── 17/ │ │ │ │ └── model.inc.c │ │ │ ├── 18/ │ │ │ │ └── model.inc.c │ │ │ ├── 19/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 20/ │ │ │ │ └── model.inc.c │ │ │ ├── 21/ │ │ │ │ └── model.inc.c │ │ │ ├── 22/ │ │ │ │ └── model.inc.c │ │ │ ├── 23/ │ │ │ │ └── model.inc.c │ │ │ ├── 24/ │ │ │ │ └── model.inc.c │ │ │ ├── 25/ │ │ │ │ └── model.inc.c │ │ │ ├── 26/ │ │ │ │ └── model.inc.c │ │ │ ├── 27/ │ │ │ │ └── model.inc.c │ │ │ ├── 28/ │ │ │ │ └── model.inc.c │ │ │ ├── 29/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 30/ │ │ │ │ └── model.inc.c │ │ │ ├── 31/ │ │ │ │ └── model.inc.c │ │ │ ├── 32/ │ │ │ │ └── model.inc.c │ │ │ ├── 33/ │ │ │ │ └── model.inc.c │ │ │ ├── 34/ │ │ │ │ └── model.inc.c │ │ │ ├── 35/ │ │ │ │ └── model.inc.c │ │ │ ├── 36/ │ │ │ │ └── model.inc.c │ │ │ ├── 37/ │ │ │ │ └── model.inc.c │ │ │ ├── 38/ │ │ │ │ └── model.inc.c │ │ │ ├── 39/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ ├── movtext.inc.c │ │ │ └── room.inc.c │ │ ├── coffin/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── merry_go_round/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── mesh_elevator/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── moving_bookshelf/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── staircase_step/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ ├── tilting_trap_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── tumbling_platform_far/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── tumbling_platform_near/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bitdw/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── large_platform/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── macro.inc.c │ │ │ ├── narrow_path_platform/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── octogonal_platform/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── platform_with_hill/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── platforms_and_tilting/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── platforms_and_tilting_2/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── quartz_crystal/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── quartzy_path_1/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── quartzy_path_2/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── quartzy_path_fences/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── staircase_slope_and_platform/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── starting_platform/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── track_for_pyramid_platforms/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── wooden_bridge_and_fences/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ └── wooden_platform/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── collapsing_stairs_1/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── collapsing_stairs_2/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── collapsing_stairs_3/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── collapsing_stairs_4/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── collapsing_stairs_5/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── ferris_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── ferris_wheel_axle/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ ├── seesaw_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sliding_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── square_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── texture.inc.c │ ├── bitfs/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 11/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 12/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 13/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 14/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 15/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 16/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 17/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 18/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 19/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 20/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ ├── movtext.inc.c │ │ │ └── trajectory.inc.c │ │ ├── elevator/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── moving_square_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── platform_on_track/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── seesaw_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sinking_cage_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sinking_cage_pole/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sinking_platforms/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sliding_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── stretching_platform/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── texture.inc.c │ │ ├── tilting_square_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── tumbling_platform_far/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── tumbling_platform_near/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bits/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 11/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 12/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 13/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 14/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 15/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 16/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 17/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 18/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 19/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 20/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 21/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 22/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 23/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 24/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 25/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 26/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 27/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 28/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 29/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 30/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 31/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 32/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── bob/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── trajectory.inc.c │ │ ├── chain_chomp_gate/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── grate_door/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ ├── seesaw_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── texture.inc.c │ ├── bowser_1/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── bowser_2/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ ├── texture.inc.c │ │ └── tilting_platform/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── bowser_3/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── bomb_stand/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── falling_platform_1/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_10/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_2/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_3/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_4/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_5/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_6/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_7/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_8/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_platform_9/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── castle_courtyard/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ ├── movtext.inc.c │ │ │ └── spire/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── castle_grounds/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ └── model.inc.c │ │ │ ├── 11/ │ │ │ │ ├── anim.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 12/ │ │ │ │ └── model.inc.c │ │ │ ├── 13/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── movtext.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── castle_inside/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 10/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 11/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 12/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 13/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 14/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 15/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 16/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 17/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 18/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 19/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 20/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 21/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 22/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 23/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 24/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 25/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 26/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 8/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 9/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ └── room.inc.c │ │ │ ├── 2/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 10/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 11/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 12/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 13/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 14/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 15/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 8/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 9/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ ├── pendulum/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ └── room.inc.c │ │ │ └── 3/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ └── model.inc.c │ │ │ ├── 11/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ ├── movtext.inc.c │ │ │ ├── room.inc.c │ │ │ └── trajectory.inc.c │ │ ├── clock_hour_hand/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── clock_minute_hand/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── painting.inc.c │ │ ├── script.c │ │ ├── star_door/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ ├── trap_door/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── water_level_pillar/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── ccm/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 10/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ ├── 3.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ ├── 3.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 8/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 9/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ ├── movtext.inc.c │ │ │ │ └── trajectory.inc.c │ │ │ └── 2/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── trajectory.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── ropeway_lift/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── script.c │ │ ├── snowman_base/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── snowman_head/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ └── geo.inc.c │ │ └── texture.inc.c │ ├── cotmc/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── movtext.inc.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── course_defines.h │ ├── ddd/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ └── movtext.inc.c │ │ │ └── 2/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── movtext.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── pole/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── sub_door/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── 3.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── submarine/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ └── texture.inc.c │ ├── ending/ │ │ ├── geo.c │ │ ├── header.h │ │ ├── leveldata.c │ │ └── script.c │ ├── entry.c │ ├── entry.h │ ├── hmc/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ └── model.inc.c │ │ │ ├── 11/ │ │ │ │ └── model.inc.c │ │ │ ├── 12/ │ │ │ │ └── model.inc.c │ │ │ ├── 13/ │ │ │ │ └── model.inc.c │ │ │ ├── 14/ │ │ │ │ └── model.inc.c │ │ │ ├── 15/ │ │ │ │ └── model.inc.c │ │ │ ├── 16/ │ │ │ │ └── model.inc.c │ │ │ ├── 17/ │ │ │ │ └── model.inc.c │ │ │ ├── 18/ │ │ │ │ └── model.inc.c │ │ │ ├── 19/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 20/ │ │ │ │ └── model.inc.c │ │ │ ├── 21/ │ │ │ │ └── model.inc.c │ │ │ ├── 22/ │ │ │ │ └── model.inc.c │ │ │ ├── 23/ │ │ │ │ └── model.inc.c │ │ │ ├── 24/ │ │ │ │ └── model.inc.c │ │ │ ├── 25/ │ │ │ │ └── model.inc.c │ │ │ ├── 26/ │ │ │ │ └── model.inc.c │ │ │ ├── 27/ │ │ │ │ └── model.inc.c │ │ │ ├── 28/ │ │ │ │ └── model.inc.c │ │ │ ├── 29/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 30/ │ │ │ │ └── model.inc.c │ │ │ ├── 31/ │ │ │ │ └── model.inc.c │ │ │ ├── 32/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── grill_door/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── macro.inc.c │ │ │ ├── movtext.inc.c │ │ │ ├── painting.inc.c │ │ │ ├── room.inc.c │ │ │ └── trajectory.inc.c │ │ ├── arrow_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── arrow_platform_button/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── elevator_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── rolling_rock/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rolling_rock_fragment_1/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rolling_rock_fragment_2/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── intro/ │ │ ├── geo.c │ │ ├── header.h │ │ ├── leveldata.c │ │ └── script.c │ ├── jrb/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ ├── movtext.inc.c │ │ │ │ └── trajectory.inc.c │ │ │ └── 2/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── movtext.inc.c │ │ ├── falling_pillar/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── falling_pillar_base/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── floating_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── rock/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── sliding_box/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ ├── unused_lid/ │ │ │ └── collision.inc.c │ │ └── wooden_ship/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── level_defines.h │ ├── level_headers.h.in │ ├── level_rules.mk │ ├── lll/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 10/ │ │ │ │ │ ├── collision.inc.c │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 11/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 12/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 13/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 14/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 15/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 8/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 9/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── light.inc.c │ │ │ │ └── macro.inc.c │ │ │ └── 2/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ ├── movtext.inc.c │ │ │ └── trajectory.inc.c │ │ ├── collapsing_wooden_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── drawbridge_part/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── long_wooden_bridge/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── moving_octagonal_mesh_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── puzzle_piece/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rolling_log/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_block_fire_bars/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_hexagonal_ring/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── sinking_rectangular_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sinking_rock_block/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sinking_square_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ ├── tilting_square_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── volcano_falling_trap/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── wooden_float_large/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── wooden_float_small/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── menu/ │ │ ├── geo.c │ │ ├── header.h │ │ ├── leveldata.c │ │ └── script.c │ ├── pss/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── rr/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 11/ │ │ │ │ ├── 1.inc.c │ │ │ │ ├── 2.inc.c │ │ │ │ └── geo.inc.c │ │ │ ├── 12/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 13/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 14/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 15/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 16/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 17/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 18/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 19/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 20/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 21/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 6/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 7/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── trajectory.inc.c │ │ ├── cruiser_wing/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── donut_block/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── elevator_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── flying_carpet/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── l_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── octagonal_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── pyramid_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_bridge_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── seesaw_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── sliding_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── swinging_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ ├── tricky_triangles_1/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── tricky_triangles_2/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── tricky_triangles_3/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── tricky_triangles_4/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── tricky_triangles_5/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── sa/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── scripts.c │ ├── scripts.h │ ├── sl/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ └── movtext.inc.c │ │ │ └── 2/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ ├── snow_mound/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ ├── unused_cracked_ice/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── unused_ice_shard/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── ssl/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ └── movtext.inc.c │ │ │ ├── 2/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ └── movtext.inc.c │ │ │ └── 3/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── eyerok_col/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── grindel/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── moving_pyramid_wall/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── pyramid_elevator/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── pyramid_top/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── spindel/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ └── tox_box/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── thi/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ ├── collision.inc.c │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ ├── movtext.inc.c │ │ │ │ └── trajectory.inc.c │ │ │ ├── 2/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ └── movtext.inc.c │ │ │ └── 3/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── totwc/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── cloud/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ └── texture.inc.c │ ├── ttc/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── movtext.inc.c │ │ ├── clock_hand/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── elevator_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── large_gear/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── large_treadmill/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── pendulum/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── pit_block/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── pit_block_2/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── push_block/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_cube/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_hexagon/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_prism/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_triangle/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── small_gear/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── small_treadmill/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── spinner/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── texture.inc.c │ ├── ttm/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 10/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 11/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 12/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 13/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 14/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 15/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 16/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 17/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 18/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 19/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 20/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 21/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 4/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 5/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 6/ │ │ │ │ │ ├── 1.inc.c │ │ │ │ │ ├── 2.inc.c │ │ │ │ │ └── geo.inc.c │ │ │ │ ├── 7/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 8/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 9/ │ │ │ │ │ ├── geo.inc.c │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ ├── movtext.inc.c │ │ │ │ ├── painting.inc.c │ │ │ │ └── trajectory.inc.c │ │ │ ├── 2/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── macro.inc.c │ │ │ ├── 3/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── macro.inc.c │ │ │ └── 4/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── blue_smiley/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── moon_smiley/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rolling_log/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── slide_exit_podium/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── star_cage/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── star_smiley/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ └── yellow_smiley/ │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── vcutm/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── macro.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── script.c │ │ ├── seesaw/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── texture.inc.c │ ├── wdw/ │ │ ├── areas/ │ │ │ ├── 1/ │ │ │ │ ├── 1/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 2/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── 3/ │ │ │ │ │ └── model.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ ├── macro.inc.c │ │ │ │ └── movtext.inc.c │ │ │ └── 2/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── movtext.inc.c │ │ ├── arrow_lift/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── double_arrows/ │ │ │ └── model.inc.c │ │ ├── express_elevator/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── hidden_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── rectangular_floating_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── rotating_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── script.c │ │ ├── square_floating_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── texture.inc.c │ │ └── water_level_diamond/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ ├── wf/ │ │ ├── areas/ │ │ │ └── 1/ │ │ │ ├── 1/ │ │ │ │ └── model.inc.c │ │ │ ├── 10/ │ │ │ │ ├── 1.inc.c │ │ │ │ ├── 2.inc.c │ │ │ │ ├── collision.inc.c │ │ │ │ └── geo.inc.c │ │ │ ├── 11/ │ │ │ │ ├── collision.inc.c │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 12/ │ │ │ │ ├── 1.inc.c │ │ │ │ ├── 2.inc.c │ │ │ │ └── geo.inc.c │ │ │ ├── 13/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 14/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 15/ │ │ │ │ ├── 1.inc.c │ │ │ │ ├── 2.inc.c │ │ │ │ ├── 3.inc.c │ │ │ │ └── geo.inc.c │ │ │ ├── 16/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 17/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 18/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 19/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 2/ │ │ │ │ └── model.inc.c │ │ │ ├── 3/ │ │ │ │ └── model.inc.c │ │ │ ├── 4/ │ │ │ │ └── model.inc.c │ │ │ ├── 5/ │ │ │ │ ├── 1.inc.c │ │ │ │ ├── 2.inc.c │ │ │ │ └── geo.inc.c │ │ │ ├── 6/ │ │ │ │ ├── 1.inc.c │ │ │ │ ├── 2.inc.c │ │ │ │ └── geo.inc.c │ │ │ ├── 7/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 8/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── 9/ │ │ │ │ ├── geo.inc.c │ │ │ │ └── model.inc.c │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ ├── macro.inc.c │ │ │ └── movtext.inc.c │ │ ├── beta_extending_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── breakable_wall_left/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── breakable_wall_right/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── extending_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── geo.c │ │ ├── header.h │ │ ├── kickable_board/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── large_bomp/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── level.yaml │ │ ├── leveldata.c │ │ ├── rotating_platform/ │ │ │ └── collision.inc.c │ │ ├── rotating_wooden_platform/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── script.c │ │ ├── sliding_platform/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── small_bomp/ │ │ │ ├── 1.inc.c │ │ │ ├── 2.inc.c │ │ │ ├── collision.inc.c │ │ │ └── geo.inc.c │ │ ├── texture.inc.c │ │ ├── tower_door/ │ │ │ ├── collision.inc.c │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ ├── tumbling_bridge_far/ │ │ │ ├── geo.inc.c │ │ │ └── model.inc.c │ │ └── tumbling_bridge_near/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ └── model.inc.c │ └── wmotr/ │ ├── areas/ │ │ └── 1/ │ │ ├── collision.inc.c │ │ ├── geo.inc.c │ │ ├── macro.inc.c │ │ └── model.inc.c │ ├── geo.c │ ├── header.h │ ├── level.yaml │ ├── leveldata.c │ ├── script.c │ └── texture.inc.c ├── lib/ │ ├── asm/ │ │ ├── __osDisableInt.s │ │ ├── __osExceptionPreamble.s │ │ ├── __osGetCause.s │ │ ├── __osGetSR.s │ │ ├── __osProbeTLB.s │ │ ├── __osRestoreInt.s │ │ ├── __osSetCompare.s │ │ ├── __osSetFpcCsr.s │ │ ├── __osSetSR.s │ │ ├── __osSetWatchLo.s │ │ ├── __os_eu_802ef550.s │ │ ├── bcopy.s │ │ ├── bzero.s │ │ ├── guMtxF2L.s │ │ ├── guMtxIdentF.s │ │ ├── guNormalize.s │ │ ├── guScale.s │ │ ├── guTranslate.s │ │ ├── iQueKernelCalls.s │ │ ├── llmuldiv_gcc.s │ │ ├── osGetCount.s │ │ ├── osInvalDCache.s │ │ ├── osInvalICache.s │ │ ├── osMapTLB.s │ │ ├── osMapTLBRdb.s │ │ ├── osSetIntMask.s │ │ ├── osUnmapTLBAll.s │ │ ├── osWritebackDCache.s │ │ ├── osWritebackDCacheAll.s │ │ ├── parameters.s │ │ └── sqrtf.s │ ├── rsp.s │ └── src/ │ ├── NaN.c │ ├── _Ldtob.c │ ├── _Litob.c │ ├── _Printf.c │ ├── __osAiDeviceBusy.c │ ├── __osAtomicDec.c │ ├── __osDequeueThread.c │ ├── __osDevMgrMain.c │ ├── __osGetCurrFaultedThread.c │ ├── __osPiCreateAccessQueue.c │ ├── __osResetGlobalIntMask.c │ ├── __osSetGlobalIntMask.c │ ├── __osSetHWintrRoutine.c │ ├── __osSiCreateAccessQueue.c │ ├── __osSiDeviceBusy.c │ ├── __osSiRawReadIo.c │ ├── __osSiRawStartDma.c │ ├── __osSiRawWriteIo.c │ ├── __osSpDeviceBusy.c │ ├── __osSpGetStatus.c │ ├── __osSpRawStartDma.c │ ├── __osSpSetPc.c │ ├── __osSpSetStatus.c │ ├── __osSyncPutChars.c │ ├── __osViGetCurrentContext.c │ ├── __osViInit.c │ ├── __osViSwapContext.c │ ├── alBnkfNew.c │ ├── bstring.h │ ├── contramread.c │ ├── contramwrite.c │ ├── controller.h │ ├── crc.c │ ├── epidma.c │ ├── guLookAtRef.c │ ├── guMtxF2L.c │ ├── guNormalize.c │ ├── guOrthoF.c │ ├── guPerspectiveF.c │ ├── guRotateF.c │ ├── guScaleF.c │ ├── guTranslateF.c │ ├── kdebugserver.c │ ├── kdebugserver_stack.c │ ├── ldiv.c │ ├── leointerrupt.c │ ├── libaudio_internal.h │ ├── libgcc/ │ │ ├── _cmpdi2.c │ │ ├── _divdi3.c │ │ ├── _fixdfdi.c │ │ ├── _fixsfdi.c │ │ ├── _fixunsdfdi.c │ │ ├── _fixunssfdi.c │ │ ├── _floatdidf.c │ │ ├── _floatdisf.c │ │ ├── _moddi3.c │ │ ├── _udivdi3.c │ │ ├── _umoddi3.c │ │ ├── libgcc2.inc │ │ └── longlong.h │ ├── libultra_internal.h │ ├── math/ │ │ ├── cosf.c │ │ ├── llconv.c │ │ ├── llmuldiv.c │ │ └── sinf.c │ ├── motor.c │ ├── new_func.h │ ├── osAi.h │ ├── osAiGetLength.c │ ├── osAiSetFrequency.c │ ├── osAiSetNextBuffer.c │ ├── osCartRomInit.c │ ├── osContInit.c │ ├── osContInternal.h │ ├── osContStartReadData.c │ ├── osCreateMesgQueue.c │ ├── osCreatePiManager.c │ ├── osCreateThread.c │ ├── osCreateViManager.c │ ├── osDestroyThread.c │ ├── osDriveRomInit.c │ ├── osEPiRawReadIo.c │ ├── osEPiRawStartDma.c │ ├── osEPiRawWriteIo.c │ ├── osEepromLongRead.c │ ├── osEepromLongWrite.c │ ├── osEepromProbe.c │ ├── osEepromRead.c │ ├── osEepromWrite.c │ ├── osGetThreadPri.c │ ├── osGetTime.c │ ├── osInitialize.c │ ├── osInitializeIQueWrapper.c │ ├── osJamMesg.c │ ├── osLeoDiskInit.c │ ├── osPfsIsPlug.c │ ├── osPiGetCmdQueue.c │ ├── osPiRawReadIo.c │ ├── osPiRawStartDma.c │ ├── osPiStartDma.c │ ├── osRecvMesg.c │ ├── osSendMesg.c │ ├── osSetEventMesg.c │ ├── osSetThreadPri.c │ ├── osSetTime.c │ ├── osSetTimer.c │ ├── osSpTaskLoadGo.c │ ├── osSpTaskYield.c │ ├── osSpTaskYielded.c │ ├── osStartThread.c │ ├── osSyncPrintf.c │ ├── osTimer.c │ ├── osViBlack.c │ ├── osViData.c │ ├── osViSetEvent.c │ ├── osViSetMode.c │ ├── osViSetSpecialFeatures.c │ ├── osViSwapBuffer.c │ ├── osViTable.c │ ├── osVirtualToPhysical.c │ ├── osYieldThread.c │ ├── osint.h │ ├── pfsgetstatus.c │ ├── piint.h │ ├── printf.h │ ├── sprintf.c │ └── string.c ├── rename_sym.sh ├── rsp/ │ ├── audio.s │ ├── fast3d.s │ ├── gbi.inc │ ├── rsp_defs.inc │ └── rspboot.s ├── sm64.cn.sha1 ├── sm64.eu.sha1 ├── sm64.jp.sha1 ├── sm64.ld ├── sm64.sh.sha1 ├── sm64.us.sha1 ├── sound/ │ ├── README.md │ ├── sequences/ │ │ └── 00_sound_player.s │ ├── sequences.json │ ├── sound_banks/ │ │ ├── 00.json │ │ ├── 01_terrain.json │ │ ├── 02_water.json │ │ ├── 03.json │ │ ├── 04.json │ │ ├── 05.json │ │ ├── 06.json │ │ ├── 07.json │ │ ├── 08_mario.json │ │ ├── 09.json │ │ ├── 0A_mario_peach.json │ │ ├── 0B.json │ │ ├── 0C.json │ │ ├── 0D.json │ │ ├── 0E.json │ │ ├── 0F.json │ │ ├── 10.json │ │ ├── 11.json │ │ ├── 12.json │ │ ├── 13.json │ │ ├── 14_piranha_music_box.json │ │ ├── 15.json │ │ ├── 16_course_start.json │ │ ├── 17.json │ │ ├── 18.json │ │ ├── 19.json │ │ ├── 1A.json │ │ ├── 1B.json │ │ ├── 1C_endless_stairs.json │ │ ├── 1D_bowser_organ.json │ │ ├── 1E.json │ │ ├── 1F.json │ │ ├── 20.json │ │ ├── 21.json │ │ ├── 22.json │ │ ├── 23.json │ │ ├── 24.json │ │ └── 25.json │ └── sound_data.c ├── src/ │ ├── audio/ │ │ ├── audio_session_presets_sh.c │ │ ├── copt/ │ │ │ └── seq_channel_layer_process_script_copt.inc.c │ │ ├── data.c │ │ ├── data.h │ │ ├── effects.c │ │ ├── effects.h │ │ ├── external.c │ │ ├── external.h │ │ ├── globals_start.c │ │ ├── heap.c │ │ ├── heap.h │ │ ├── internal.h │ │ ├── load.c │ │ ├── load.h │ │ ├── load_sh.c │ │ ├── playback.c │ │ ├── playback.h │ │ ├── port_eu.c │ │ ├── port_sh.c │ │ ├── seqplayer.c │ │ ├── seqplayer.h │ │ ├── shindou_debug_prints.c │ │ ├── synthesis.c │ │ ├── synthesis.h │ │ └── synthesis_sh.c │ ├── buffers/ │ │ ├── buffers.c │ │ ├── buffers.h │ │ ├── framebuffers.c │ │ ├── framebuffers.h │ │ ├── gfx_output_buffer.c │ │ ├── gfx_output_buffer.h │ │ ├── zbuffer.c │ │ └── zbuffer.h │ ├── engine/ │ │ ├── behavior_script.c │ │ ├── behavior_script.h │ │ ├── geo_layout.c │ │ ├── geo_layout.h │ │ ├── graph_node.c │ │ ├── graph_node.h │ │ ├── graph_node_manager.c │ │ ├── level_script.c │ │ ├── level_script.h │ │ ├── math_util.c │ │ ├── math_util.h │ │ ├── stub.c │ │ ├── surface_collision.c │ │ ├── surface_collision.h │ │ ├── surface_load.c │ │ └── surface_load.h │ ├── game/ │ │ ├── area.c │ │ ├── area.h │ │ ├── behavior_actions.c │ │ ├── behavior_actions.h │ │ ├── behaviors/ │ │ │ ├── activated_bf_plat.inc.c │ │ │ ├── amp.inc.c │ │ │ ├── animated_floor_switch.inc.c │ │ │ ├── arrow_lift.inc.c │ │ │ ├── bbh_haunted_bookshelf.inc.c │ │ │ ├── bbh_merry_go_round.inc.c │ │ │ ├── bbh_tilting_trap.inc.c │ │ │ ├── beta_boo_key.inc.c │ │ │ ├── beta_bowser_anchor.inc.c │ │ │ ├── beta_chest.inc.c │ │ │ ├── beta_fish_splash_spawner.inc.c │ │ │ ├── beta_holdable_object.inc.c │ │ │ ├── beta_trampoline.inc.c │ │ │ ├── bird.inc.c │ │ │ ├── blue_coin.inc.c │ │ │ ├── blue_fish.inc.c │ │ │ ├── bobomb.inc.c │ │ │ ├── bomp.inc.c │ │ │ ├── boo.inc.c │ │ │ ├── boo_cage.inc.c │ │ │ ├── boulder.inc.c │ │ │ ├── bouncing_fireball.inc.c │ │ │ ├── bowling_ball.inc.c │ │ │ ├── bowser.inc.c │ │ │ ├── bowser_bomb.inc.c │ │ │ ├── bowser_falling_platform.inc.c │ │ │ ├── bowser_flame.inc.c │ │ │ ├── bowser_key.inc.c │ │ │ ├── bowser_key_cutscene.inc.c │ │ │ ├── bowser_puzzle_piece.inc.c │ │ │ ├── break_particles.inc.c │ │ │ ├── breakable_box.inc.c │ │ │ ├── breakable_box_small.inc.c │ │ │ ├── breakable_wall.inc.c │ │ │ ├── bub.inc.c │ │ │ ├── bubba.inc.c │ │ │ ├── bubble.inc.c │ │ │ ├── bullet_bill.inc.c │ │ │ ├── bully.inc.c │ │ │ ├── butterfly.inc.c │ │ │ ├── camera_lakitu.inc.c │ │ │ ├── cannon.inc.c │ │ │ ├── cannon_door.inc.c │ │ │ ├── cap.inc.c │ │ │ ├── capswitch.inc.c │ │ │ ├── castle_cannon_grate.inc.c │ │ │ ├── castle_flag.inc.c │ │ │ ├── castle_floor_trap.inc.c │ │ │ ├── celebration_star.inc.c │ │ │ ├── chain_chomp.inc.c │ │ │ ├── checkerboard_platform.inc.c │ │ │ ├── chuckya.inc.c │ │ │ ├── clam.inc.c │ │ │ ├── clock_arm.inc.c │ │ │ ├── cloud.inc.c │ │ │ ├── coffin.inc.c │ │ │ ├── coin.inc.c │ │ │ ├── collide_particles.inc.c │ │ │ ├── controllable_platform.inc.c │ │ │ ├── corkbox.inc.c │ │ │ ├── cruiser.inc.c │ │ │ ├── ddd_pole.inc.c │ │ │ ├── ddd_sub.inc.c │ │ │ ├── ddd_warp.inc.c │ │ │ ├── decorative_pendulum.inc.c │ │ │ ├── donut_platform.inc.c │ │ │ ├── door.inc.c │ │ │ ├── dorrie.inc.c │ │ │ ├── drawbridge.inc.c │ │ │ ├── elevator.inc.c │ │ │ ├── end_birds_1.inc.c │ │ │ ├── end_birds_2.inc.c │ │ │ ├── enemy_lakitu.inc.c │ │ │ ├── exclamation_box.inc.c │ │ │ ├── explosion.inc.c │ │ │ ├── express_elevator.inc.c │ │ │ ├── eyerok.inc.c │ │ │ ├── falling_pillar.inc.c │ │ │ ├── falling_rising_platform.inc.c │ │ │ ├── ferris_wheel.inc.c │ │ │ ├── fire_piranha_plant.inc.c │ │ │ ├── fire_spitter.inc.c │ │ │ ├── fish.inc.c │ │ │ ├── fishing_boo.inc.c │ │ │ ├── flame.inc.c │ │ │ ├── flame_mario.inc.c │ │ │ ├── flamethrower.inc.c │ │ │ ├── floating_box.inc.c │ │ │ ├── floating_platform.inc.c │ │ │ ├── fly_guy.inc.c │ │ │ ├── flying_bookend_switch.inc.c │ │ │ ├── goomba.inc.c │ │ │ ├── grand_star.inc.c │ │ │ ├── grill_door.inc.c │ │ │ ├── ground_particles.inc.c │ │ │ ├── haunted_chair.inc.c │ │ │ ├── heave_ho.inc.c │ │ │ ├── hidden_star.inc.c │ │ │ ├── hoot.inc.c │ │ │ ├── horizontal_grindel.inc.c │ │ │ ├── intro_lakitu.inc.c │ │ │ ├── intro_peach.inc.c │ │ │ ├── intro_scene.inc.c │ │ │ ├── jrb_ship.inc.c │ │ │ ├── jumping_box.inc.c │ │ │ ├── kickable_board.inc.c │ │ │ ├── king_bobomb.inc.c │ │ │ ├── klepto.inc.c │ │ │ ├── koopa.inc.c │ │ │ ├── koopa_shell.inc.c │ │ │ ├── koopa_shell_underwater.inc.c │ │ │ ├── lll_floating_wood_piece.inc.c │ │ │ ├── lll_hexagonal_ring.inc.c │ │ │ ├── lll_octagonal_rotating_mesh.inc.c │ │ │ ├── lll_rotating_hex_flame.inc.c │ │ │ ├── lll_sinking_rectangle.inc.c │ │ │ ├── lll_sinking_rock_block.inc.c │ │ │ ├── lll_volcano_flames.inc.c │ │ │ ├── mad_piano.inc.c │ │ │ ├── manta_ray.inc.c │ │ │ ├── metal_box.inc.c │ │ │ ├── mips.inc.c │ │ │ ├── moat_drainer.inc.c │ │ │ ├── moat_grill.inc.c │ │ │ ├── moneybag.inc.c │ │ │ ├── monty_mole.inc.c │ │ │ ├── moving_coin.inc.c │ │ │ ├── mr_blizzard.inc.c │ │ │ ├── mr_i.inc.c │ │ │ ├── mushroom_1up.inc.c │ │ │ ├── music_touch.inc.c │ │ │ ├── orange_number.inc.c │ │ │ ├── piranha_bubbles.inc.c │ │ │ ├── piranha_plant.inc.c │ │ │ ├── platform_on_track.inc.c │ │ │ ├── pokey.inc.c │ │ │ ├── pole.inc.c │ │ │ ├── pole_base.inc.c │ │ │ ├── purple_switch.inc.c │ │ │ ├── pyramid_elevator.inc.c │ │ │ ├── pyramid_top.inc.c │ │ │ ├── pyramid_wall.inc.c │ │ │ ├── racing_penguin.inc.c │ │ │ ├── recovery_heart.inc.c │ │ │ ├── red_coin.inc.c │ │ │ ├── reds_star_marker.inc.c │ │ │ ├── rolling_log.inc.c │ │ │ ├── rotating_octagonal_plat.inc.c │ │ │ ├── rotating_platform.inc.c │ │ │ ├── scuttlebug.inc.c │ │ │ ├── seaweed.inc.c │ │ │ ├── seesaw_platform.inc.c │ │ │ ├── shock_wave.inc.c │ │ │ ├── skeeter.inc.c │ │ │ ├── sl_snowman_wind.inc.c │ │ │ ├── sl_walking_penguin.inc.c │ │ │ ├── sliding_platform.inc.c │ │ │ ├── sliding_platform_2.inc.c │ │ │ ├── snow_mound.inc.c │ │ │ ├── snowman.inc.c │ │ │ ├── snufit.inc.c │ │ │ ├── sound_ambient.inc.c │ │ │ ├── sound_birds.inc.c │ │ │ ├── sound_sand.inc.c │ │ │ ├── sound_spawner.inc.c │ │ │ ├── sound_volcano.inc.c │ │ │ ├── sound_waterfall.inc.c │ │ │ ├── sparkle_spawn.inc.c │ │ │ ├── sparkle_spawn_star.inc.c │ │ │ ├── spawn_star.inc.c │ │ │ ├── spawn_star_exit.inc.c │ │ │ ├── spindel.inc.c │ │ │ ├── spindrift.inc.c │ │ │ ├── spiny.inc.c │ │ │ ├── square_platform_cycle.inc.c │ │ │ ├── star_door.inc.c │ │ │ ├── static_checkered_platform.inc.c │ │ │ ├── strong_wind_particle.inc.c │ │ │ ├── sushi.inc.c │ │ │ ├── swing_platform.inc.c │ │ │ ├── switch_hidden_objects.inc.c │ │ │ ├── swoop.inc.c │ │ │ ├── thi_top.inc.c │ │ │ ├── thwomp.inc.c │ │ │ ├── tilting_inverted_pyramid.inc.c │ │ │ ├── tower_door.inc.c │ │ │ ├── tower_platform.inc.c │ │ │ ├── tox_box.inc.c │ │ │ ├── treasure_chest.inc.c │ │ │ ├── tree_particles.inc.c │ │ │ ├── triplet_butterfly.inc.c │ │ │ ├── ttc_2d_rotator.inc.c │ │ │ ├── ttc_cog.inc.c │ │ │ ├── ttc_elevator.inc.c │ │ │ ├── ttc_moving_bar.inc.c │ │ │ ├── ttc_pendulum.inc.c │ │ │ ├── ttc_pit_block.inc.c │ │ │ ├── ttc_rotating_solid.inc.c │ │ │ ├── ttc_spinner.inc.c │ │ │ ├── ttc_treadmill.inc.c │ │ │ ├── tumbling_bridge.inc.c │ │ │ ├── tuxie.inc.c │ │ │ ├── tweester.inc.c │ │ │ ├── ukiki.inc.c │ │ │ ├── ukiki_cage.inc.c │ │ │ ├── unagi.inc.c │ │ │ ├── unused_particle_spawn.inc.c │ │ │ ├── unused_poundable_platform.inc.c │ │ │ ├── warp.inc.c │ │ │ ├── water_bomb.inc.c │ │ │ ├── water_bomb_cannon.inc.c │ │ │ ├── water_mist.inc.c │ │ │ ├── water_mist_particle.inc.c │ │ │ ├── water_objs.inc.c │ │ │ ├── water_pillar.inc.c │ │ │ ├── water_ring.inc.c │ │ │ ├── water_splashes_and_waves.inc.c │ │ │ ├── water_wave.inc.c │ │ │ ├── wdw_water_level.inc.c │ │ │ ├── whirlpool.inc.c │ │ │ ├── white_puff.inc.c │ │ │ ├── white_puff_explode.inc.c │ │ │ ├── whomp.inc.c │ │ │ ├── wiggler.inc.c │ │ │ ├── wind.inc.c │ │ │ └── yoshi.inc.c │ │ ├── camera.c │ │ ├── camera.h │ │ ├── cn_common_syms_1.c │ │ ├── cn_common_syms_2.c │ │ ├── crash_screen.c │ │ ├── debug.c │ │ ├── debug.h │ │ ├── debug_course.c │ │ ├── debug_course.h │ │ ├── decompress.h │ │ ├── envfx_bubbles.c │ │ ├── envfx_bubbles.h │ │ ├── envfx_snow.c │ │ ├── envfx_snow.h │ │ ├── game_init.c │ │ ├── game_init.h │ │ ├── geo_misc.c │ │ ├── geo_misc.h │ │ ├── hud.c │ │ ├── hud.h │ │ ├── ingame_menu.c │ │ ├── ingame_menu.h │ │ ├── interaction.c │ │ ├── interaction.h │ │ ├── level_geo.c │ │ ├── level_geo.h │ │ ├── level_update.c │ │ ├── level_update.h │ │ ├── macro_special_objects.c │ │ ├── macro_special_objects.h │ │ ├── main.c │ │ ├── main.h │ │ ├── mario.c │ │ ├── mario.h │ │ ├── mario_actions_airborne.c │ │ ├── mario_actions_airborne.h │ │ ├── mario_actions_automatic.c │ │ ├── mario_actions_automatic.h │ │ ├── mario_actions_cutscene.c │ │ ├── mario_actions_cutscene.h │ │ ├── mario_actions_moving.c │ │ ├── mario_actions_moving.h │ │ ├── mario_actions_object.c │ │ ├── mario_actions_object.h │ │ ├── mario_actions_stationary.c │ │ ├── mario_actions_stationary.h │ │ ├── mario_actions_submerged.c │ │ ├── mario_actions_submerged.h │ │ ├── mario_misc.c │ │ ├── mario_misc.h │ │ ├── mario_step.c │ │ ├── mario_step.h │ │ ├── memory.c │ │ ├── memory.h │ │ ├── moving_texture.c │ │ ├── moving_texture.h │ │ ├── obj_behaviors.c │ │ ├── obj_behaviors.h │ │ ├── obj_behaviors_2.c │ │ ├── obj_behaviors_2.h │ │ ├── object_collision.c │ │ ├── object_collision.h │ │ ├── object_helpers.c │ │ ├── object_helpers.h │ │ ├── object_list_processor.c │ │ ├── object_list_processor.h │ │ ├── paintings.c │ │ ├── paintings.h │ │ ├── platform_displacement.c │ │ ├── platform_displacement.h │ │ ├── print.c │ │ ├── print.h │ │ ├── profiler.c │ │ ├── profiler.h │ │ ├── rendering_graph_node.c │ │ ├── rendering_graph_node.h │ │ ├── rumble_init.c │ │ ├── rumble_init.h │ │ ├── save_file.c │ │ ├── save_file.h │ │ ├── screen_transition.c │ │ ├── screen_transition.h │ │ ├── segment2.h │ │ ├── segment7.h │ │ ├── shadow.c │ │ ├── shadow.h │ │ ├── skybox.c │ │ ├── skybox.h │ │ ├── sound_init.c │ │ ├── sound_init.h │ │ ├── spawn_object.c │ │ ├── spawn_object.h │ │ ├── spawn_sound.c │ │ └── spawn_sound.h │ ├── goddard/ │ │ ├── bad_declarations.h │ │ ├── debug_utils.c │ │ ├── debug_utils.h │ │ ├── draw_objects.c │ │ ├── draw_objects.h │ │ ├── dynlist_proc.c │ │ ├── dynlist_proc.h │ │ ├── dynlists/ │ │ │ ├── anim_group_1.c │ │ │ ├── anim_group_2.c │ │ │ ├── anim_mario_eyebrows_1.c │ │ │ ├── anim_mario_lips_1.c │ │ │ ├── anim_mario_lips_2.c │ │ │ ├── anim_mario_mustache_left.c │ │ │ ├── anim_mario_mustache_right.c │ │ │ ├── animdata.h │ │ │ ├── dynlist_macros.h │ │ │ ├── dynlist_mario_face.c │ │ │ ├── dynlist_mario_master.c │ │ │ ├── dynlist_test_cube.c │ │ │ ├── dynlist_unused.c │ │ │ ├── dynlists.h │ │ │ ├── dynlists_mario_eyebrows_mustache.c │ │ │ └── dynlists_mario_eyes.c │ │ ├── gd_macros.h │ │ ├── gd_main.c │ │ ├── gd_main.h │ │ ├── gd_math.c │ │ ├── gd_math.h │ │ ├── gd_memory.c │ │ ├── gd_memory.h │ │ ├── gd_types.h │ │ ├── joints.c │ │ ├── joints.h │ │ ├── objects.c │ │ ├── objects.h │ │ ├── old_menu.c │ │ ├── old_menu.h │ │ ├── particles.c │ │ ├── particles.h │ │ ├── renderer.c │ │ ├── renderer.h │ │ ├── sfx.c │ │ ├── sfx.h │ │ ├── shape_helper.c │ │ ├── shape_helper.h │ │ ├── skin.c │ │ ├── skin.h │ │ ├── skin_movement.c │ │ └── skin_movement.h │ └── menu/ │ ├── debug_level_select.h │ ├── file_select.c │ ├── file_select.h │ ├── intro_geo.c │ ├── intro_geo.h │ ├── star_select.c │ ├── star_select.h │ ├── title_screen.c │ └── title_screen.h ├── text/ │ ├── cn/ │ │ ├── courses.h │ │ └── dialogs.h │ ├── de/ │ │ ├── courses.h │ │ └── dialogs.h │ ├── debug_text.inc.c │ ├── define_courses.inc.c │ ├── define_text.inc.c │ ├── fr/ │ │ ├── courses.h │ │ └── dialogs.h │ ├── jp/ │ │ ├── courses.h │ │ └── dialogs.h │ └── us/ │ ├── courses.h │ └── dialogs.h ├── tools/ │ ├── .gitignore │ ├── Makefile │ ├── aifc_decode.c │ ├── aiff_extract_codebook.c │ ├── apply_patch.sh │ ├── armips.cpp │ ├── asm-processor/ │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── add-test.sh │ │ ├── asm_processor.py │ │ ├── build.py │ │ ├── compile-test.sh │ │ ├── prelude.inc │ │ ├── run-tests.sh │ │ └── tests/ │ │ ├── ascii.c │ │ ├── ascii.objdump │ │ ├── comments.c │ │ ├── comments.objdump │ │ ├── force.c │ │ ├── force.objdump │ │ ├── kpic-o1.c │ │ ├── kpic-o1.objdump │ │ ├── kpic-o2.c │ │ ├── kpic-o2.objdump │ │ ├── label-sameline.c │ │ ├── label-sameline.objdump │ │ ├── large.c │ │ ├── large.objdump │ │ ├── late_rodata_align.c │ │ ├── late_rodata_align.objdump │ │ ├── late_rodata_doubles.c │ │ ├── late_rodata_doubles.objdump │ │ ├── late_rodata_doubles_mips1.c │ │ ├── late_rodata_doubles_mips1.objdump │ │ ├── late_rodata_jtbl.c │ │ ├── late_rodata_jtbl.objdump │ │ ├── late_rodata_jtbl_mips1.c │ │ ├── late_rodata_jtbl_mips1.objdump │ │ ├── late_rodata_misaligned_doubles.c │ │ ├── late_rodata_misaligned_doubles.objdump │ │ ├── line-continuation-separate-file.s │ │ ├── line-continuation.asmproc.d │ │ ├── line-continuation.c │ │ ├── line-continuation.objdump │ │ ├── o0.c │ │ ├── o0.objdump │ │ ├── o2.c │ │ ├── o2.objdump │ │ ├── pascal.objdump │ │ ├── pascal.p │ │ ├── static-global.c │ │ ├── static-global.objdump │ │ ├── static.c │ │ ├── static.objdump │ │ ├── test1.c │ │ ├── test1.objdump │ │ ├── test2.c │ │ ├── test2.objdump │ │ ├── test3.c │ │ └── test3.objdump │ ├── assemble_sound.py │ ├── audiofile/ │ │ ├── Makefile │ │ ├── audiofile.cpp │ │ ├── audiofile.h │ │ └── aupvlist.h │ ├── calc_bss.sh │ ├── clang-tidy.sh │ ├── create_patch.sh │ ├── demo_data_converter.py │ ├── determine-endian-bitwidth.c │ ├── disassemble_sound.py │ ├── extract_data_for_mio.c │ ├── gen_asset_list.cpp │ ├── hashtable.c │ ├── hashtable.h │ ├── ido-static-recomp/ │ │ ├── .clang-format │ │ ├── .gitignore │ │ ├── DOCS.md │ │ ├── Makefile │ │ ├── README.md │ │ ├── elf.h │ │ ├── header.h │ │ ├── helpers.h │ │ ├── libc_impl.c │ │ ├── libc_impl.h │ │ ├── recomp.cpp │ │ └── tools/ │ │ └── rabbitizer/ │ │ ├── .clang-format │ │ ├── .clang-tidy │ │ ├── .gitattributes │ │ ├── .github/ │ │ │ └── workflows/ │ │ │ ├── ci.yml │ │ │ └── make.yml │ │ ├── .gitignore │ │ ├── .gitrepo │ │ ├── LICENSE │ │ ├── MANIFEST.in │ │ ├── Makefile │ │ ├── README.md │ │ ├── cplusplus/ │ │ │ ├── include/ │ │ │ │ ├── analysis/ │ │ │ │ │ ├── LoPairingInfo.hpp │ │ │ │ │ └── RegistersTracker.hpp │ │ │ │ ├── instructions/ │ │ │ │ │ ├── InstrId.hpp │ │ │ │ │ ├── InstructionBase.hpp │ │ │ │ │ ├── InstructionCpu.hpp │ │ │ │ │ ├── InstructionR5900.hpp │ │ │ │ │ ├── InstructionRsp.hpp │ │ │ │ │ ├── OperandType.hpp │ │ │ │ │ └── Registers.hpp │ │ │ │ └── rabbitizer.hpp │ │ │ └── src/ │ │ │ ├── analysis/ │ │ │ │ ├── LoPairingInfo.cpp │ │ │ │ └── RegistersTracker.cpp │ │ │ └── instructions/ │ │ │ ├── InstrId.cpp │ │ │ ├── InstructionBase.cpp │ │ │ ├── InstructionCpu.cpp │ │ │ ├── InstructionR5900.cpp │ │ │ └── InstructionRsp.cpp │ │ ├── include/ │ │ │ ├── analysis/ │ │ │ │ ├── RabbitizerLoPairingInfo.h │ │ │ │ ├── RabbitizerRegistersTracker.h │ │ │ │ └── RabbitizerTrackedRegisterState.h │ │ │ ├── common/ │ │ │ │ ├── Abi.inc │ │ │ │ ├── RabbitizerConfig.h │ │ │ │ ├── RabbitizerVersion.h │ │ │ │ └── Utils.h │ │ │ ├── instructions/ │ │ │ │ ├── InstrCategory.inc │ │ │ │ ├── RabbitizerInstrDescriptor.h │ │ │ │ ├── RabbitizerInstrId.h │ │ │ │ ├── RabbitizerInstrSuffix.h │ │ │ │ ├── RabbitizerInstruction.h │ │ │ │ ├── RabbitizerInstructionR5900.h │ │ │ │ ├── RabbitizerInstructionRsp.h │ │ │ │ ├── RabbitizerOperandType.h │ │ │ │ ├── RabbitizerRegister.h │ │ │ │ ├── instr_id/ │ │ │ │ │ ├── RabbitizerInstrId_cpu.inc │ │ │ │ │ ├── RabbitizerInstrId_r5900.inc │ │ │ │ │ ├── RabbitizerInstrId_rsp.inc │ │ │ │ │ ├── cpu/ │ │ │ │ │ │ ├── cpu_cop0.inc │ │ │ │ │ │ ├── cpu_cop0_bc0.inc │ │ │ │ │ │ ├── cpu_cop0_tlb.inc │ │ │ │ │ │ ├── cpu_cop1.inc │ │ │ │ │ │ ├── cpu_cop1_bc1.inc │ │ │ │ │ │ ├── cpu_cop1_fpu_d.inc │ │ │ │ │ │ ├── cpu_cop1_fpu_l.inc │ │ │ │ │ │ ├── cpu_cop1_fpu_s.inc │ │ │ │ │ │ ├── cpu_cop1_fpu_w.inc │ │ │ │ │ │ ├── cpu_normal.inc │ │ │ │ │ │ ├── cpu_regimm.inc │ │ │ │ │ │ └── cpu_special.inc │ │ │ │ │ ├── r5900/ │ │ │ │ │ │ ├── r5900_cop0_tlb.inc │ │ │ │ │ │ ├── r5900_cop1_fpu_s.inc │ │ │ │ │ │ ├── r5900_cop2.inc │ │ │ │ │ │ ├── r5900_cop2_bc2.inc │ │ │ │ │ │ ├── r5900_cop2_special1.inc │ │ │ │ │ │ ├── r5900_cop2_special2.inc │ │ │ │ │ │ ├── r5900_mmi.inc │ │ │ │ │ │ ├── r5900_mmi_0.inc │ │ │ │ │ │ ├── r5900_mmi_1.inc │ │ │ │ │ │ ├── r5900_mmi_2.inc │ │ │ │ │ │ ├── r5900_mmi_3.inc │ │ │ │ │ │ ├── r5900_normal.inc │ │ │ │ │ │ ├── r5900_regimm.inc │ │ │ │ │ │ └── r5900_special.inc │ │ │ │ │ └── rsp/ │ │ │ │ │ ├── rsp_cop0.inc │ │ │ │ │ ├── rsp_cop2.inc │ │ │ │ │ ├── rsp_cop2_vu.inc │ │ │ │ │ ├── rsp_normal.inc │ │ │ │ │ ├── rsp_normal_lwc2.inc │ │ │ │ │ ├── rsp_normal_swc2.inc │ │ │ │ │ ├── rsp_regimm.inc │ │ │ │ │ └── rsp_special.inc │ │ │ │ ├── operands/ │ │ │ │ │ ├── RabbitizerOperandType_cpu.inc │ │ │ │ │ ├── RabbitizerOperandType_r5900.inc │ │ │ │ │ └── RabbitizerOperandType_rsp.inc │ │ │ │ └── registers/ │ │ │ │ ├── RabbitizerRegister_Cop0.inc │ │ │ │ ├── RabbitizerRegister_Cop1Control.inc │ │ │ │ ├── RabbitizerRegister_Cop1N32.inc │ │ │ │ ├── RabbitizerRegister_Cop1N64.inc │ │ │ │ ├── RabbitizerRegister_Cop1O32.inc │ │ │ │ ├── RabbitizerRegister_Cop2.inc │ │ │ │ ├── RabbitizerRegister_GprN32.inc │ │ │ │ ├── RabbitizerRegister_GprO32.inc │ │ │ │ ├── RabbitizerRegister_R5900VF.inc │ │ │ │ ├── RabbitizerRegister_R5900VI.inc │ │ │ │ ├── RabbitizerRegister_RspCop0.inc │ │ │ │ ├── RabbitizerRegister_RspCop2.inc │ │ │ │ ├── RabbitizerRegister_RspCop2Control.inc │ │ │ │ ├── RabbitizerRegister_RspGpr.inc │ │ │ │ └── RabbitizerRegister_RspVector.inc │ │ │ └── rabbitizer.h │ │ ├── pyproject.toml │ │ ├── r5900test.c │ │ ├── rabbitizer/ │ │ │ ├── Config.pyi │ │ │ ├── Enum.pyi │ │ │ ├── InstrCategory.pyi │ │ │ ├── InstrId.pyi │ │ │ ├── LoPairingInfo.pyi │ │ │ ├── RegGprN32.pyi │ │ │ ├── RegGprO32.pyi │ │ │ ├── RegistersTracker.pyi │ │ │ ├── TrackedRegisterState.pyi │ │ │ ├── Utils.pyi │ │ │ ├── __init__.pyi │ │ │ ├── enums/ │ │ │ │ ├── enums_utils.c │ │ │ │ ├── enums_utils.h │ │ │ │ ├── rabbitizer_enum_Abi.c │ │ │ │ ├── rabbitizer_enum_InstrCategory.c │ │ │ │ ├── rabbitizer_enum_InstrId.c │ │ │ │ ├── rabbitizer_type_Enum.c │ │ │ │ └── registers/ │ │ │ │ ├── rabbitizer_enum_GprN32.c │ │ │ │ └── rabbitizer_enum_GprO32.c │ │ │ ├── py.typed │ │ │ ├── rabbitizer.pyi │ │ │ ├── rabbitizer_global_config.c │ │ │ ├── rabbitizer_module.c │ │ │ ├── rabbitizer_module.h │ │ │ ├── rabbitizer_submodule_Utils.c │ │ │ ├── rabbitizer_type_Instruction.c │ │ │ ├── rabbitizer_type_LoPairingInfo.c │ │ │ ├── rabbitizer_type_RegistersTracker.c │ │ │ └── rabbitizer_type_TrackedRegisterState.c │ │ ├── registersTrackerTest.c │ │ ├── rsptest.c │ │ ├── setup.cfg │ │ ├── setup.py │ │ ├── src/ │ │ │ ├── analysis/ │ │ │ │ ├── RabbitizerLoPairingInfo.c │ │ │ │ ├── RabbitizerRegistersTracker.c │ │ │ │ └── RabbitizerTrackedRegisterState.c │ │ │ ├── common/ │ │ │ │ ├── RabbitizerConfig.c │ │ │ │ ├── RabbitizerVersion.c │ │ │ │ └── Utils.c │ │ │ └── instructions/ │ │ │ ├── RabbitizerInstrDescriptor.c │ │ │ ├── RabbitizerInstrId.c │ │ │ ├── RabbitizerInstrSuffix.c │ │ │ ├── RabbitizerInstruction/ │ │ │ │ ├── RabbitizerInstruction.c │ │ │ │ ├── RabbitizerInstruction_Disassemble.c │ │ │ │ ├── RabbitizerInstruction_Examination.c │ │ │ │ └── RabbitizerInstruction_ProcessUniqueId.c │ │ │ ├── RabbitizerInstructionR5900/ │ │ │ │ ├── RabbitizerInstructionR5900.c │ │ │ │ └── RabbitizerInstructionR5900_ProcessUniqueId.c │ │ │ ├── RabbitizerInstructionRsp/ │ │ │ │ ├── RabbitizerInstructionRsp.c │ │ │ │ └── RabbitizerInstructionRsp_ProcessUniqueId.c │ │ │ └── RabbitizerRegister.c │ │ ├── test.c │ │ └── tests/ │ │ └── cplusplus/ │ │ └── test.cpp │ ├── ido5.3_compiler/ │ │ ├── LICENSE.md │ │ ├── lib/ │ │ │ └── rld │ │ └── usr/ │ │ ├── bin/ │ │ │ └── cc │ │ └── lib/ │ │ ├── acpp │ │ ├── as0 │ │ ├── as1 │ │ ├── cfe │ │ ├── copt │ │ ├── err.english.cc │ │ ├── ugen │ │ ├── ujoin │ │ ├── uld │ │ ├── umerge │ │ ├── uopt │ │ └── usplit │ ├── ique_egcs/ │ │ ├── as │ │ ├── cc1 │ │ ├── cpp │ │ └── gcc │ ├── ique_ld/ │ │ └── mips64-elf-ld │ ├── mario_anims_converter.py │ ├── patch_elf_32bit.c │ ├── patch_libmalloc.py │ ├── rasm2armips.py │ ├── revert_patch.sh │ ├── sdk-tools/ │ │ ├── README.md │ │ ├── adpcm/ │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── quant.c │ │ │ ├── sampleio.c │ │ │ ├── util.c │ │ │ ├── vadpcm.h │ │ │ ├── vadpcm_dec.c │ │ │ ├── vadpcm_enc.c │ │ │ ├── vdecode.c │ │ │ ├── vencode.c │ │ │ └── vpredictor.c │ │ └── tabledesign/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── codebook.c │ │ ├── estimate.c │ │ ├── print.c │ │ ├── tabledesign.c │ │ └── tabledesign.h │ ├── seq_decoder.py │ ├── skyconv.c │ ├── sm64tools/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── libmio0.c │ │ ├── libmio0.h │ │ ├── n64cksum.c │ │ ├── n64cksum.h │ │ ├── n64graphics.c │ │ ├── n64graphics.h │ │ ├── n64graphics_ci_dir/ │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── exoquant/ │ │ │ │ ├── exoquant.c │ │ │ │ └── exoquant.h │ │ │ ├── n64graphics_ci.c │ │ │ ├── n64graphics_ci.h │ │ │ ├── utils.c │ │ │ └── utils.h │ │ ├── sm64tools.LICENSE │ │ ├── stb/ │ │ │ ├── stb_image.h │ │ │ └── stb_image_write.h │ │ ├── utils.c │ │ └── utils.h │ ├── textconv.c │ ├── utf8.c │ ├── utf8.h │ └── util/ │ ├── audiofile_strip.patch │ ├── generate_armips_cpp.py │ └── generate_audiofile_cpp.py ├── undefined_syms.txt └── util.mk ================================================ FILE CONTENTS ================================================ ================================================ FILE: .clang-format ================================================ IndentWidth: 4 Language: Cpp AlignAfterOpenBracket: Align SortIncludes: false ColumnLimit: 104 PointerAlignment: Right AllowShortFunctionsOnASingleLine: false AllowShortIfStatementsOnASingleLine: false BinPackArguments: true BinPackParameters: true SpaceAfterCStyleCast: true BreakBeforeBraces: Attach BreakBeforeTernaryOperators: true BreakBeforeBinaryOperators: NonAssignment Cpp11BracedListStyle: false IndentCaseLabels: true AlignTrailingComments: true UseTab: Never ================================================ FILE: .clang-tidy ================================================ --- Checks: '-*,readability-braces-around-statements' WarningsAsErrors: '' HeaderFilterRegex: '(src|include|enhancements)\/.*\.h$' FormatStyle: 'file' CheckOptions: ================================================ FILE: .gitattributes ================================================ # Set the default behavior, in case people don't have core.autocrlf set. * text=auto # List text files in case git doesn't characterize correctly *.c text *.h text *.s text *.in text *.js text *.md text *.py text *.sh text *.ld text *.inc text *.txt text *.json text *.yaml text # Same for binary *.bin binary *.m64 binary *.png binary *.aiff binary ================================================ FILE: .gitignore ================================================ # Object files *.o *.obj *.elf # Linker output *.ilk *.exp # Precompiled Headers *.gch *.pch # Libraries *.lib *.a *.la *.lo # Shared objects (inc. Windows DLLs) *.dll *.so *.so.* *.dylib # Executables *.exe *.out *.app *.hex # Debug files *.dSYM/ *.su *.idb *.pdb # datadump /tools/ddump/* # Text editor remnants *.swp .vscode/* # General project-specific ignores doxygen/doxygen/* build/* *.dump *.mio0 *.z64 *.map .assets-local.txt # Assets. Generally ignored, but ones with "custom" in the name are fine. /levels/**/*.png /actors/**/*.png /textures/**/*.png /assets/**/*.bin /sound/**/*.m64 /sound/**/*.aiff !/levels/**/*custom*.png !/levels/**/*custom*/**/*.png !/actors/**/*custom*.png !/actors/**/*custom*/**/*.png !/textures/**/*custom*.png !/textures/**/*custom*/**/*.png !/sound/**/*custom*.m64 !/sound/**/*custom*/**/*.m64 !/sound/**/*custom*.aiff !/sound/**/*custom*/**/*.aiff !/assets/**/*custom*.bin !/assets/**/*custom*/**/*.bin ================================================ FILE: CHANGES ================================================ Refresh 16 (Two years later...) 1.) remove capstone from readme, slight update (#1212) 2.) Update ido static recomp (#1211) 3.) Fix misleading pointer (#1209) 4.) update outdated link (#1208) 5.) Match iQue (#1207) 6.) iQue matching except BSS (#1124) 7.) Create LICENSE.md 8.) Reorganize and apply licenses to some of the tools/ programs per discussions with their author(s). (#1203) 9.) Fix rumble_init libultra includes and checks (#1195) 10.) Stacksize moved to defines (#1199) 11.) Renamings we were too lazy to make a PR for for 3 years (#1198) 12.) Fix spelling error in sound.h comment (#1197) 13.) Update instrument sample names (#1196) 14.) Object Labeling, Behavior Params, and Cleanup (#1193) 15.) Significantly more Libultra Cleanup (#1192) 16.) Typedefs for area Terrain Data and Rooms (#1178) 17.) Allow spaces in filename for vadpcm_enc (#1175) 18.) Label all warp nodes (#1191) 19.) Remove hardware.h (#1190) 20.) Document __osSetHWintrRoutine (#1186) 21.) Change 3 space indent to 4 space indent and cleanup (#1189) 22.) Libultra cleanup and labelling (#1188) 23.) in-game menu renaming (#1187) 24.) AVOID_UB fixes and cleanup (#1185) Refresh 15 (mostly a hotfix for RSP microcode selection) 1.) Renamed frame_buffer funcs and _ZBUFFER (#1184) 2.) RSP Microcode Hotfix (#1183) 3.) Label osSetTimer.c (#1182) 4.) Fix styling (#1177) 5.) Rename all `FrameBuffer` variants to `Framebuffer` (#1176) 6.) Remove (WIP) from sh. 7.) Allow both archives and ELF objects to be patched (#1127) Refresh 14 1.) Label whomp and some object fields (#1174) 2.) Generate MIO0 object files using binutils `ld` instead of `as` (#1173) 3.) Bowser documentation (#1166) 4.) Fix comment syntax in 00_sound_player.0 (#1172) 5.) Rename in-game menu variables (#1163) 6.) Document double red coin sound and JP sound glitch (#1170) 7.) Document different bug in external.c (#1168) 8.) updated names/types of octagonal platform data (#1164) 9.) Label a number of unnamed variables. (#1169) 10.) Document JP PU sound glitch (#1167) 11.) Set model ids to spawn_triangle_break_particles (#1165) 12.) Fix borders in clear_frame_buffer (#1162) 13.) Fix seq header files for 64-bit (#1161) 14.) Game_init.c remaining doc (#1158) 15.) Label a couple static variables in sound_init.c (#1159) 16.) Properly define dialog values (status, flags, cutscenes) (#1153) 17.) Label all of amp's assets. (#1018) 18.) Split audio/synthesis.c into Shindou/non-Shindou files (#1144) 19.) Avoid CC_CHECK warnings when using gcc (#1157) 20.) level_select_menu.c => title_screen.c (#1152) 21.) Use C preprocessor on assembly files (#1126) 22.) Replace output_level_headers.py with sed equivalent (#1109) 23.) Fix CC_CHECK warnings related to unused symbols and UB (#1155) 24.) Define remaining floor lower limit values (#1147) 25.) use r+b mode for libultra.a patch tool (#1148) 26.) Use proper values for gPrevFrameObjectCount ifs (#1146) 27.) Some minor bowser.inc.c labelling. (#1150) 28.) fix king bob-omb texture pointers (#1145) 29.) Split audio/load.c into Shindou/non-Shindou files (#1143) 30.) Small Shindou audio cleanups (#1142) 31.) Fix endians in ALSeqData (#1141) 32.) Document S8 decoder rsp operation and some more (#1139) 33.) Fix Shindou synthesis_process_note fake match (#1140) 34.) More audio documentation, for the new rsp code and other fixes (#1138) 35.) Build fixes for macOS: cpp, clang, recomp, aiff_extract_codebook (#1135) 36.) Add ENABLE_RUMBLE to config.h (#1122) 37.) Reduce recomp memory consumption by using smaller disassembly blocks (#1128) 38.) Makefile fixes (#1123) 39.) Update README.md 40.) Update README.md 41.) Reflect current decompilation status 42.) Allow both archives and ELF objects to be patched (#1127) 43.) Remove WIP mention in README for sh version. Refresh 13 2 - No more nonmatchings remain for all builds including Shindou. 1.) Shindou OK (#1118) 2.) Match shindou sequence_player_process_sequence (#1117) 3.) Match func_sh_802f4e50 (#1116) Refresh 13 - No more nonmatchings remain for US, JP, or EU builds. Three(!!!) remain for Shindou (SH). *) SHINDOU MATCHING (#1081) *) Makefile gcc fixes (#1114) 1.) Update diff.py (#1113) 2.) Add support for generating C arrays from n64graphics and add Texture typedef (#1032) 3.) Update README and Dockerfile with recomp info (#1105) 4.) Support building tools with MSYS2 (#1112) 5.) Support building tools with clang and macOS (#1106) 6.) Clean tools directory when running distclean target (#1104) 7.) Make build output cleaner (#1095) 8.) Added 2 surface defines to bowser.inc.c (#1111) 9.) fix fake matchings (#1108) 10.) Use statically recompiled IDO instead of qemu-irix (#1099) 11.) Add VERBOSE=1 to Jenkinsfile 12.) updated intro_geo to use layer defines for geo flags (#1090) 13.) Fix F3DZEX (#1097) 14.) layer_transpose should take an s8 (#1093) 15.) Fix tools/ build (#1082) 16.) Relabel and document fish.inc.c (#1077) 17.) Ensure all calls to .py files use $(PYTHON) (#1080) 18.) Name Mario, Peach, and instrument sound files (#1078) 19.) Goddard labeling, part 2 (#1076) 20.) Fix envfx_snow and envfx_bubbles fake matches (#1075) 21.) Use array subscripts instead of pointer math in 2 files (#1074) 22.) refactor Makefile a bit (#1068) 23.) Further improvements on field names (#1059) 24.) Label and document manta_ray.inc.c (#1073) 25.) Fix level_script and behavior fake matches (#1072) 26.) Proper cell defines and more floor lower limit values. (#1065) 27.) Document and re-label some goddard/intro code (#1069) 28.) Match remaining functions (#1070) 29.) match 'spawn_special_objects' (#1071) 30.) Document parts of external.c and format sound defines (#1067) Refresh 12 1.) Debug box improvements (#1066) 2.) Improve 'geo_render_mirror_mario' (#1064) 3.) Cleanup and small labeling (#1063) 4.) Anim renames and other related renames (#1062) 5.) remove do while 0 and make one line comments consistent (#1061) 6.) fixed typo in segments.h (#1060) 7.) Name unknown fields (from public repo) (#1058) 8.) Change 'void *' to 'struct MainPoolState *' (#1057) 9.) Fix type of freeList (#1056) 10.) Newer version of diff script (#1055) 11.) Add stubbed_printfs based on unused audio strings (#1054) 12.) Fix comment in paintings.c (#1053) 13.) Add defines for hardcoded cell/floor height values (#1051) 14.) Update README.md: Remove GitHub specific Markdown syntax (#1052) 15.) Properly label interation status that handle's Bowser's shockwave attack (#1050) Refresh 11 1.) Make geo_process_level_of_detail endian-independent (#1049) 2.) Label oMoveFlags and slight cleanup. (#1046) 3.) Avoid UB in synthesis_resample_and_mix_reverb (#1048) 4.) Change some void * to correct type (#1047) 5.) Remove oPathedWaypointsS16 and convert all paths to Trajectory struct. (#1045) 6.) Mr Blizzard documentation, Tox Box Unks (#1042) 7.) Pipe input to textconv. (#1041) 8.) Remove erroneous long double casts from audiofile.cpp (#1039) 9.) Replace fixed dialogID in play_dialog_sound to DIALOG_COUNT (#1040) Refresh #10.1 1.) Diff update (#1033) 2.) Fix texture dimensions for exclamation boxes (#1034) 3.) Fix armips compilation on Windows by changing order of inclusion files (#1035) 4.) Embed libaudiofile into the repo as a single file (#1036) 5.) Fix some tools issues found while compiling on MSYS2 (#1037) Refresh #10 1.) GCC 9 noreturn UB fixes (#961) 2.) List supported binutils variants in README.md (#960) 3.) fix fly guy's possible values for target roll 4.) clarify that 1 is an exclusive bound in random_float (#962) 5.) replace unkB8 with prevNumStarsForDialog (#963) 6.) Replace "BulletBillUnkF8" with "BulletBillInitialMoveYaw" (#966) 7.) Renamed more warp behaviors and spawn types (#949) 8.) EU bss cleanups (#965) 9.) Add -fno-zero-initialized-in-bss to GCC CFLAGS (#968) 10.) Use empty .SECONDARY target instead of .PRECIOUS (#964) 11.) Match EU seq_channel_layer_process_script (#969) 12.) Fix version variable overwriting bug for non-matching compilations (#974) 13.) small bhv_collect_star_init labeling (#972) 14.) Align SI DMA command buffers, add more names to osCont code (#973) 15.) Minor for loop fix in playback.c (#976) 16.) Add Docker config (Public #36) 17.) Fix usage output crash for skyconv (#977) 18.) Cleanup tools and their build flags (#978) 19.) Print more detailed file reading error messages in extract_assets (#982) 20.) Remove asmdiff (#983) 21.) Fixed tabledesign makefile bug (#985) 22.) Improve first-diff.py (#987) 23.) Bring in some enhancements such as widescreen enhancements (#981) 24.) Fix background shadow border if widescreen in shade_screen (#988) 25.) Merge common EU sections in osExceptionPreamble (#990) 26.) Introduce the NO_SEGMENTED_MEMORY define (#989) 27.) NO_SEGMENTED_MEMORY comments (#992) 28.) Introduce f3dex2e and a GBI_FLOATS setting (#993) 29.) Audio uses signed 16-bit integers as samples, not unsigned (#995) 30.) Assemble RSP ucode with armips (#970) 31.) Label Mr. Blizzard, Yoshi, Whomp, Wiggler, Wood Piece oFields. (#996) 32.) update crash enhancement (#1003) 33.) Update README.md to use new public Discord server invite 34.) Label variables in act_idle. (#1005) 35.) Fix a typo in camera.h (#1009) 36.) Fixed up profiler.c (#1010) 37.) Add -d to first-diff.py (#1012) 38.) Fix typo in first-diff.py (#1013) 39.) Remove binutils 2.27 dependency check (#1015) 40.) Update armips to v0.11.0 tag and add generator script (#1004) 41.) Extract IPL3 font from ROM (#1011) 42.) Documented audio playback flags (#1021) 43.) Change RSP register notation to dollar-prefixed numbers (#1022) 44.) Only check for QEMU_IRIX in Makefile when compiling with IDO (#1023) 45.) Clean up header files and update function prototypes (#1000) 46.) Named local variables in geo_update_layer_transparency (#1019) 47.) Extract crash screen font textures from EU and SH ROMs (#1025) 48.) Use ACTIVE_FLAG defines where appropriate (#1026) 49.) Changed type of actor collision from s16 to Collision (#1024) 50.) Implement sqrtf in assembly file (#1028) 51.) Rename Struct8032FCE8 as OpenableGrill and identify data members (#1029) 52.) Fix some mistakes in the abi doc (#1031) 53.) The README.md PR (#979) Refresh #8 1.) Use INT_STATUS_ macros for oInteractStatus (#911) 2.) Update bullet_bill.inc.c (#912) 3.) Make geo.c in levels nonconst to reduce diffs with gcc enhancement patch in future (#913) 4.) Improve process_level_music_dynamics (#915) 5.) add AVOID_UB define for fixing libultra aliasing. (#916) 6.) const hack to TARGET_N64 and tweak ld script (#918) 7.) Replace raw level/course numbers with defines (#919) 8.) Label all graph node flags. (#920) 9.) readme.md capitalization 10.) The Big Function PR (Part 5) (#910) 11.) Label hardware registers (#922) 12.) Match EU synthesis_process_note (#923) 13.) Some quick value changes (#909) 14.) Added sequence player defines (#926) 15.) Shindou diffs 2 [merge game.c and display.c, required for SH] (#927) 16.) Match synthesis_process_notes and use -sopt for synthesis.c (#928) 17.) Fix mips64-binutils for Fedora 31 and similar Linux distros (#931) 18.) Update first-diff.py to work with Shindou (#933) 19.) Labelled behavior_script.c (#929) 20.) shindou diffs up to level_update (#932) 21.) Update diff.py and diff_settings.py to work with SH (#936) 22.) Add some Shindou resources to extract_assets.py (#939) 23.) Label and document gd_math.c (#930) 24.) Label all of Mario's actions. (#941) 25.) Label all particles. (#940) 26.) Renamed death related warpBhvs (#942) 27.) Small Shindou differences (#945) 28.) match player_performed_grab_escape_action in all versions (#943) 29.) add main alignment (aglab2, #947) 30.) Match a bunch of fake EU matchings (#944) 31.) Shindou diffs round 4 (#937) 32.) Easy PAL fake matchings (#946) 33.) Merge object_helpers and object_helpers2 headers (#948) 34.) match cap_check_quicksand (#950) 35.) Shindou crash screen diffs (#938) 36.) Thread6 (#951) 37.) Correct IPL3 function and label addresses (#952) 38.) Add COMPILER flag for Makefile and add official mips gcc support. (#953) 39.) add align to sequence_00 (fixes gcc build) (#957) 40.) Fixed itty bitty typo (#959) Refresh #7 1.) update README.md (#861) 2.) [eu] fix decompilation bugs in synthesis_process_note (#862) 3.) Label and document Snufit.inc.c (#863) 4.) Label and document Snufit.inc.c (#863) 5.) Match append_bubble_vertex_buffer, append_snowflake_vertex_buffer (#860) 6.) Compile audio/effects.c with -sopt (#870) 7.) Match handle_dialog_text_and_pages (#872) 8.) Remove improperly used LEVEL_SA define. (#875) 9.) Remove unused EU ASM files (#873) 10.) Shindou build flag support (#876) 11.) The Big Function PR (Part 1) (#864) 12.) "Re-document" file_select and star_select for EU (#877) 13.) Document paintings.c (#868) 14.) Minor interaction.c labelling/documentation. (#882) 15.) Match synthesis_execute, prepare_reverb_ring_buffer, func_eu_802e00d8 (#886) 16.) The Big Function PR (Part 2) (#874) 17.) Additional painting documentation (#883) 18.) Some EU audio labelling (#885) 19.) Bring synthesis_do_one_audio_update a bit closer to matching (#887) 20.) Misleading comment, this actually contols Bowser's init action (#889) 21.) Match synthesis_do_one_audio_update (#890) 22.) Remove unneeded if(1) in synthesis_do_one_audio_update (#891) 23.) Match synthesis_resample_and_mix_reverb (#893) 24.) Set LANG=C (#896) 25.) Match note_apply_headset_pan_effects (#897) 26.) Match play_sequence (#898) 27.) Match sequence_channel_enable (#899) 28.) Match sequence_player_process_sequence (#900) 29.) Match (eu) alloc_bank_or_seq (#901) 30.) Match alloc_bank_or_seq (#903) 31.) Update README.md (again) 32.) Documented behaviour/fish.inc.c & blue_fish.inc.c (#894) 33.) Labelled 4 behavior files, made object_helper functions consistent (#881) 34.) Add a make target for .copt (#902) 35.) The Big Function PR (Part 3) (#888) 36.) The Big Function PR (Part 4) (#906) 37.) Rename src/audio/memory.c -> heap.c (#907) 38.) Fix BBH texture (#908) Refresh #6 1.) Make tools work on MinGW (#804) 2.) Document mario_misc (#628) 3.) add patch_libmalloc.py script to work around compiler crashes (#811) 4.) Label the coffins file. (#829) 5.) Convert enhancements into patches (#827) 6.) Document Tweester.inc.c (#840) 7.) EU OK and cleanup EU (#782) Refresh #5 1.) mem_error_screen.inc.c updated for C (#775) 2.) updated patch_libultra_math to work directly on libultra.a (#781) 3.) Enhancement: Debug boxes (#783) 4.) Label effects MemoryPool (#784) 5.) Use full-width characters for JP text and rename mislabeled stuff (#772) 6.) Small asset extraction fixes (#785) 7.) Fix incremental asset extraction after the last PR (#790) 8.) Labelled behavior script commands, tidied up behavior scripts and ren… 9.) Document camera.c (#741) 10.) Fix a HMC texture asset (#795) 11.) Fix UB in angle conversion for paintings. Needed for pc-port. (#796) 12.) Fix PSS texture assets (#801) 13.) Fix some camera typos (#802) Refresh #4 1.) Label screen_transition.c (#737) 2.) Revamp macros (#738) 3.) Simplify the cake makefile logic (#739) 4.) Move zbuffer to C (#742) 5.) Audio blob endian/64-bit fixes (#740) 6.) Ub fixes (#745) 7.) process_level_music_dynamics: slightly better stack and regalloc (#746) 8.) move level order specific definitions out to levels/level_defines.h (#743) 9.) Renamed some mislabelled sound effects (#748) 10.) Very minor white space fixes in Mario.c (#752) 11.) Renamed GRAVITY to OBJ_PHYSICS (#755) 12.) Use defined macros instead of literal values for interactions in behavior_data.c (#754) 13.) iQue Player console detection + full support (#756) 14.) Fix Goddard Mario head for little endian etc. (#757) 15.) Small bits of audio doc (#749) 16.) Update diff script (#750) 17.) Nicer format for course/dialog text, enum for dialog IDs (#753) 18.) first-diff: store most recent mtime during check (#759) 19.) Use Lights1 struct for light values (#760) 20.) Detect mips64-elf in diff.py (#761) 21.) Name display lists in gd renderer.c (#764) 22.) Document a variety of PU type crashes. (#765) 23.) Label object_behaviors. (#716) 24.) Update swoop.inc.c (#767) 25.) Label tilting_pyramid.inc.c (#768) 26.) Label red_coin.inc.c (#770) 27.) Use more level defines (#758) 28.) Named Mario actions 6, 7, and 8 and noted causes of hands-free holding glitch (#769) Refresh #3 1.) Small bits of sound sample labelling 2.) Append 'b' to fopen calls in n64graphics to satisfy Windows 3.) Document synthesis.c and abi.h 4.) Remove gbi_old.h and use gbi.h instead for F3D_OLD 5.) Fix and change most values used by f3d commands 6.) Convert actors to C 7.) Make extract_assets.py fail on bad baserom 8.) Fix some (pragma-ignored) warnings 9.) Convert trig tables and data/ buffers into C 10.) Document intro behaviors and some of camera.c 11.) Match dma_sample_data 12.) Convert levels, bin, text, goddard_tex_dl to C 13.) Remove .bss size hardcoding 14.) Add mips64 fallback and alt dump option to diff.sh 15.) Convert behavior_data to C 16.) Get rid of the enum in behavior_data. 17.) Change more values used by f3d commands 18.) Document game/skybox.c 19.) Actors levels fixup 20.) Convert Mario animations to C (kind of) 22.) generate skybox data from 248x248 images 23.) 64-bit fixes 24.) Move demo data to C 25.) Change uintptr_t to GeoLayout for actors 26.) Move libc includes to include/libc/ Refresh #2a (hotfix) Changes from Refresh #2: 1.) Fixed text Makefile dependencies" Refresh #2 Changes from Refresh #1: 1.) Label src/game/behaviors/boo.inc.c 2.) Verify half of audio_defines.h 3.) Label ingame_menu.c and some dialog stuff 4.) Improve handle_dialog_text_and_pages EU non-matching 5.) Fix texture format for water splash/sparkle 6.) Merge ucode.bin and ucode_unk.bin 7.) 64-bit fixes 8.) [AUDIO] Match func_80316928 9.) Documented bug in Tuxie's mother's code 10.) [AUDIO] Slightly closer matching for process_level_music_dynamics 11.) Name channel scripts in sequence 0 12.) Nicer error message when sha1sum doesn't match 13.) Refactor object fields 14.) Document file_select.c 15.) Document star_select.c 16.) Add uncompressed string support to textconv 17.) Document main_menu geo and leveldata 18.) Document hud.c and rename char textures 19.) Correct gSPTextureRectangle values 20.) Linker script wildcard - Fixes "undefined reference to x in discarded section y" linker errors. - Also means that you no longer have to add linker script entries for source files. 21.) Reference qemu-irix package and add project structure - Installing qemu-irix is as simple as installing the provided Debian package on the GitHub "Releases" tab (https://github.com/n64decomp/qemu-irix). - Old qemu-irix installs are unaffected by this change, and it is still possible to install qemu-irix with the older method. Refresh #1 Changes from initial release: 1.) More README cleanups and documentation 2.) Fix .gitignore in tools/ 3.) More README cleanups and corrections 4.) oUnk190 -> oInteractionSubtype 5.) Normalize line endings 6.) Replace bank_sets.s by sequences.json + build magic 7.) Fix tabledesign in .gitignore 8.) Cleaned and documented arrays in audio/ 9.) Change minimum Python 3 requirement in README.md to 3.6 10.) Remove whitespace in ingame_menu.c, save_file.c, and star_select.c 11.) Documentation comment style fixed 12.) sm64.map -> sm64.version.map (ex: sm64.us.map) 13.) Decompile EU versions of HUD and obj behaviors 14.) Label ukiki.inc.c and ukiki_cage.inc.c 15.) Add missing OS header includes 16.) Fix alignment issue in model_ids.h 17.) A bunch of behavior changes: a.) Made styles consistent with function names (ex: BehBehaviorLoop -> beh_behavior_loop) b.) Split obj_behaviors_2.c into multiple .inc.c files in behaviors/ c.) bhvHauntedRoomCheck -> bhvCoffinManager 18.) Update README.md notes on WSL and add links 19.) Added tidy.sh and also bracing around single-line ifs and loops ================================================ FILE: Dockerfile ================================================ FROM ubuntu:18.04 as build RUN apt-get update && \ apt-get install -y \ binutils-mips-linux-gnu \ build-essential \ git \ pkgconf \ python3 RUN mkdir /sm64 WORKDIR /sm64 ENV PATH="/sm64/tools:${PATH}" CMD echo 'usage: docker run --rm --mount type=bind,source="$(pwd)",destination=/sm64 sm64 make VERSION=us -j4\n' \ 'see https://github.com/n64decomp/sm64/blob/master/README.md for advanced usage' ================================================ FILE: Doxyfile ================================================ # Doxyfile 1.8.14 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. # # All text after a double hash (##) is considered a comment and is placed in # front of the TAG it is preceding. # # All text after a single hash (#) is considered a comment and will be ignored. # The format is: # TAG = value [value, ...] # For lists, items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (\" \"). #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all text # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv # built into libc) for the transcoding. See # https://www.gnu.org/software/libiconv/ for the list of possible encodings. # The default value is: UTF-8. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by # double-quotes, unless you are using Doxywizard) that should identify the # project for which the documentation is generated. This name is used in the # title of most generated pages and in a few other places. # The default value is: My Project. PROJECT_NAME = "Super Mario 64 Source" # The PROJECT_NUMBER tag can be used to enter a project or revision number. This # could be handy for archiving the generated documentation or if some version # control system is used. PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. PROJECT_BRIEF = "A Super Mario 64 decompilation, brought to you by a bunch of clever folks." # With the PROJECT_LOGO tag one can specify a logo or an icon that is included # in the documentation. The maximum height of the logo should not exceed 55 # pixels and the maximum width should not exceed 200 pixels. Doxygen will copy # the logo to the output directory. PROJECT_LOGO = doxygen/logo.png # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path # into which the generated documentation will be written. If a relative path is # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. OUTPUT_DIRECTORY = doxygen/doxygen/ # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where # putting all generated files in the same directory would otherwise causes # performance problems for the file system. # The default value is: NO. CREATE_SUBDIRS = YES # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII # characters to appear in the names of generated files. If set to NO, non-ASCII # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode # U+3044. # The default value is: NO. ALLOW_UNICODE_NAMES = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, # Ukrainian and Vietnamese. # The default value is: English. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. # The default value is: YES. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator that is # used to form the text in various listings. Each string in this list, if found # as the leading text of the brief description, will be stripped from the text # and the result, after processing the whole list, is used as the annotated # text. Otherwise, the brief description is used as-is. If left blank, the # following values are used ($name is automatically replaced with the name of # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. ABBREVIATE_BRIEF = "The $name class" \ "The $name widget" \ "The $name file" \ is \ provides \ specifies \ contains \ represents \ a \ an \ the # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief # description. # The default value is: NO. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. # The default value is: NO. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. FULL_PATH_NAMES = YES # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. # Stripping is only done if one of the specified strings matches the left-hand # part of the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the path to # strip. # # Note that you can specify absolute paths here, but also relative paths, which # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which # header file to include in order to use a class. If left blank only the name of # the header file containing the class definition is used. Otherwise one should # specify the list of include paths that are normally passed to the compiler # using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't # support long names like on DOS, Mac, or CD-ROM. # The default value is: NO. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the # first line (until the first dot) of a Javadoc-style comment as the brief # description. If set to NO, the Javadoc-style will behave just like regular Qt- # style comments (thus requiring an explicit @brief command for a brief # description.) # The default value is: NO. JAVADOC_AUTOBRIEF = YES # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first # line (until the first dot) of a Qt-style comment as the brief description. If # set to NO, the Qt-style will behave just like regular Qt-style comments (thus # requiring an explicit \brief command for a brief description.) # The default value is: NO. QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a # multi-line C++ special comment block (i.e. a block of //! or /// comments) as # a brief description. This used to be the default behavior. The new default is # to treat a multi-line C++ comment block as a detailed description. Set this # tag to YES if you prefer the old behavior instead. # # Note that setting this tag to YES also means that rational rose comments are # not recognized any more. # The default value is: NO. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the # documentation from any documented member that it re-implements. # The default value is: YES. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new # page for each member. If set to NO, the documentation of a member will be part # of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen # uses this value to replace tabs by spaces in code fragments. # Minimum value: 1, maximum value: 16, default value: 4. TAB_SIZE = 4 # This tag can be used to specify a number of aliases that act as commands in # the documentation. An alias has the form: # name=value # For example adding # "sideeffect=@par Side Effects:\n" # will allow you to put the command \sideeffect (or @sideeffect) in the # documentation, which will result in a user-defined paragraph with heading # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines (in the resulting output). You can put ^^ in the value part of an # alias to insert a newline as if a physical newline was in the original file. ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For # instance, some of the names that are used will be different. The list of all # members will be omitted, etc. # The default value is: NO. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored # for that language. For instance, namespaces will be presented as packages, # qualified scopes will look different, etc. # The default value is: NO. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources. Doxygen will then generate output that is tailored for Fortran. # The default value is: NO. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for VHDL. # The default value is: NO. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: # Fortran. In the later case the parser tries to guess whether the code is fixed # or free formatted code, this is the default for Fortran type files), VHDL. For # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable # documentation. See http://daringfireball.net/projects/markdown/ for details. # The output of markdown processing is further processed by doxygen, so you can # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in # case of backward compatibilities issues. # The default value is: YES. MARKDOWN_SUPPORT = YES # When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up # to that level are automatically included in the table of contents, even if # they do not have an id attribute. # Note: This feature currently applies only to Markdown headings. # Minimum value: 0, maximum value: 99, default value: 0. # This tag requires that the tag MARKDOWN_SUPPORT is set to YES. TOC_INCLUDE_HEADINGS = 0 # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can # be prevented in individual cases by putting a % sign in front of the word or # globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should set this # tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); # versus func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. # The default value is: NO. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. # The default value is: NO. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip (see: # https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen # will parse them like normal C++ but will assume all classes use public instead # of private inheritance when no explicit protection keyword is present. # The default value is: NO. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate # getter and setter methods for a property. Setting this option to YES will make # doxygen to replace the get and set methods by a property in the documentation. # This will only work if the methods are indeed getting or setting a simple # type. If this is not the case, or you want to show the methods anyway, you # should set this option to NO. # The default value is: YES. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO # If one adds a struct or class to a group and this option is enabled, then also # any nested class or struct is added to the same group. By default this option # is disabled and one has to add nested compounds explicitly via \ingroup. # The default value is: NO. GROUP_NESTED_COMPOUNDS = NO # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent # subgrouping. Alternatively, this can be done per class using the # \nosubgrouping command. # The default value is: YES. SUBGROUPING = YES # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions # are shown inside the group in which they are included (e.g. using \ingroup) # instead of on a separate page (for HTML and Man pages) or section (for LaTeX # and RTF). # # Note that this feature does not work in combination with # SEPARATE_MEMBER_PAGES. # The default value is: NO. INLINE_GROUPED_CLASSES = NO # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions # with only public data fields or simple typedef fields will be shown inline in # the documentation of the scope in which they are defined (i.e. file, # namespace, or group documentation), provided this scope is documented. If set # to NO, structs, classes, and unions are shown on a separate page (for HTML and # Man pages) or section (for LaTeX and RTF). # The default value is: NO. INLINE_SIMPLE_STRUCTS = NO # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or # enum is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically be # useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. # The default value is: NO. TYPEDEF_HIDES_STRUCT = NO # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This # cache is used to resolve symbols given their name and scope. Since this can be # an expensive process and often the same symbol appears multiple times in the # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small # doxygen will become slower. If the cache is too large, memory is wasted. The # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 # symbols. At the end of a run doxygen will report the cache usage and suggest # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. # Note: This will also disable the warnings about undocumented members that are # normally produced when WARNINGS is set to YES. # The default value is: NO. EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO # If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO # If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined # locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are # included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base name of # the file that contains the anonymous namespace. By default anonymous namespace # are hidden. # The default value is: NO. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all # undocumented members inside documented classes or files. If set to NO these # members will be included in the various overviews, but no documentation # section is generated. This option has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set # to NO, these classes will be included in the various overviews. This option # has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend # (class|struct|union) declarations. If set to NO, these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any # documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation that is typed after a # \internal command is included. If the tag is set to NO then the documentation # will be excluded. Set it to YES to include the internal documentation. # The default value is: NO. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file # names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. # The default value is: system dependent. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with # their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO # If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will # append additional text to a page's title, such as Class Reference. If set to # YES the compound reference will be hidden. # The default value is: NO. HIDE_COMPOUND_REFERENCE= NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. SHOW_INCLUDE_FILES = YES # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each # grouped member an include statement to the documentation, telling the reader # which file to include in order to use the member. # The default value is: NO. SHOW_GROUPED_MEMB_INC = NO # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include # files with double quotes in the documentation rather than with sharp brackets. # The default value is: NO. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the # documentation for inline members. # The default value is: YES. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member # name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the # (brief and detailed) documentation of class members so that constructors and # destructors are listed first. If set to NO the constructors will appear in the # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief # member documentation. # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting # detailed member documentation. # The default value is: NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy # of group names into alphabetical order. If set to NO the group names will # appear in their defined order. # The default value is: NO. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by # fully-qualified names, including namespaces. If set to NO, the class list will # be sorted only by class name, not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the alphabetical # list. # The default value is: NO. SORT_BY_SCOPE_NAME = NO # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper # type resolution of all parameters of a function it will reject a match between # the prototype and the implementation of a member function even if there is # only one candidate or it is obvious which candidate to choose by doing a # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still # accept a match between prototype and implementation in such cases. # The default value is: NO. STRICT_PROTO_MATCHING = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo # list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test # list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional documentation # sections, marked by \if ... \endif and \cond # ... \endcond blocks. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the # documentation. If the initializer consists of more lines than specified here # it will be hidden. Use a value of 0 to hide initializers completely. The # appearance of the value of individual variables and macros / defines can be # controlled using \showinitializer or \hideinitializer command in the # documentation regardless of this setting. # Minimum value: 0, maximum value: 10000, default value: 30. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at # the bottom of the documentation of classes and structs. If set to YES, the # list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This # will remove the Files entry from the Quick Index and from the Folder Tree View # (if specified). # The default value is: YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces # page. This will remove the Namespaces entry from the Quick Index and from the # Folder Tree View (if specified). # The default value is: YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command command input-file, where command is the value of the # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. To create the layout file # that represents doxygen's defaults, run doxygen with the -l option. You can # optionally specify a file name after the option, if omitted DoxygenLayout.xml # will be used as the name of the layout file. # # Note that if you run doxygen from a directory containing a file called # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib # extension is automatically appended if omitted. This requires the bibtex tool # to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the # search path. See also \cite for info how to create references. CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated to # standard output by doxygen. If QUIET is set to YES this implies that the # messages are off. # The default value is: NO. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. # The default value is: YES. WARNINGS = YES # If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. WARN_IF_UNDOCUMENTED = YES # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some parameters # in a documented function, or documenting parameters that don't exist or using # markup commands wrongly. # The default value is: YES. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return # value. If set to NO, doxygen will only warn about wrong or incomplete # parameter documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO # If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when # a warning is encountered. # The default value is: NO. WARN_AS_ERROR = NO # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated # and the warning text. Optionally the format may contain $version, which will # be replaced by the version of the file (if it could be obtained via # FILE_VERSION_FILTER) # The default value is: $file:$line: $text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning and error # messages should be written. If left blank the output is written to standard # error (stderr). WARN_LOGFILE = #--------------------------------------------------------------------------- # Configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. INPUT = # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses # libiconv (or the iconv built into libc) for the transcoding. See the libiconv # documentation (see: https://www.gnu.org/software/libiconv/) for the list of # possible encodings. # The default value is: UTF-8. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and # *.h) to filter out the source-files in the directories. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # read by doxygen. # # If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, # *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, # *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, # *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, # *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. FILE_PATTERNS = *.c \ *.cc \ *.cxx \ *.cpp \ *.c++ \ *.java \ *.ii \ *.ixx \ *.ipp \ *.i++ \ *.inl \ *.idl \ *.ddl \ *.odl \ *.h \ *.hh \ *.hxx \ *.hpp \ *.h++ \ *.cs \ *.d \ *.php \ *.php4 \ *.php5 \ *.phtml \ *.inc \ *.m \ *.markdown \ *.md \ *.mm \ *.dox \ *.py \ *.pyw \ *.f90 \ *.f95 \ *.f03 \ *.f08 \ *.f \ *.for \ *.tcl \ *.vhd \ *.vhdl \ *.ucf \ *.qsf # The RECURSIVE tag can be used to specify whether or not subdirectories should # be searched for input files as well. # The default value is: NO. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should be # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. # # Note that relative paths are relative to the directory from which doxygen is # run. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded # from the input. # The default value is: NO. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test # # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. EXAMPLE_PATTERNS = * # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands # irrespective of the value of the RECURSIVE tag. # The default value is: NO. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or directories # that contain images that are to be included in the documentation (see the # \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command: # # # # where is the value of the INPUT_FILTER tag, and is the # name of an input file. Doxygen will then use the output that the filter # program writes to standard output. If FILTER_PATTERNS is specified, this tag # will be ignored. # # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: pattern=filter # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. # # Note that for custom extensions or not directly supported extensions you also # need to set EXTENSION_MAPPING for the extension otherwise the files are not # properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. FILTER_SOURCE_FILES = NO # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and # it is also possible to disable source filtering for a specific pattern using # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will be # generated. Documented entities will be cross-referenced with these sources. # # Note: To get rid of all source code in the generated output, make sure that # also VERBATIM_HEADERS is set to NO. # The default value is: NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. # The default value is: NO. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any # special comment blocks from generated source code fragments. Normal C, C++ and # Fortran comments will always remain visible. # The default value is: YES. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES then for each documented # function all documented functions referencing it will be listed. # The default value is: NO. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES then for each documented function # all documented entities called/used by that function will be listed. # The default value is: NO. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set # to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. REFERENCES_LINK_SOURCE = YES # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the # source code will show a tooltip with additional information such as prototype, # brief description and links to the definition and documentation. Since this # will make the HTML file larger and loading of large files a bit slower, you # can opt to disable this feature. # The default value is: YES. # This tag requires that the tag SOURCE_BROWSER is set to YES. SOURCE_TOOLTIPS = YES # If the USE_HTAGS tag is set to YES then the references to source code will # point to the HTML generated by the htags(1) tool instead of doxygen built-in # source browser. The htags tool is part of GNU's global source tagging system # (see https://www.gnu.org/software/global/global.html). You will need version # 4.8.6 or higher. # # To use it do the following: # - Install the latest version of global # - Enable SOURCE_BROWSER and USE_HTAGS in the config file # - Make sure the INPUT points to the root of the source tree # - Run doxygen as normal # # Doxygen will invoke htags (and that will in turn invoke gtags), so these # tools must be available from the command line (i.e. in the search path). # # The result: instead of the source browser generated by doxygen, the links to # source code will now point to the output of htags. # The default value is: NO. # This tag requires that the tag SOURCE_BROWSER is set to YES. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a # verbatim copy of the header file for each class for which an include is # specified. Set to NO to disable this. # See also: Section \class. # The default value is: YES. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all # compounds will be generated. Enable this if the project contains a lot of # classes, structs, unions or interfaces. # The default value is: YES. ALPHABETICAL_INDEX = YES # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in # which the alphabetical index list will be split. # Minimum value: 1, maximum value: 20, default value: 5. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of # it. # The default directory is: html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each # generated HTML page (for example: .htm, .php, .asp). # The default value is: .html. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a user-defined HTML header file for # each generated HTML page. If the tag is left blank doxygen will generate a # standard header. # # To get valid HTML the header file that includes any scripts and style sheets # that doxygen needs, which is dependent on the configuration options used (e.g. # the setting GENERATE_TREEVIEW). It is highly recommended to start with a # default header using # doxygen -w html new_header.html new_footer.html new_stylesheet.css # YourConfigFile # and then modify the file new_header.html. See also section "Doxygen usage" # for information on how to generate the default header that doxygen normally # uses. # Note: The header is subject to change so you typically have to regenerate the # default header when upgrading to a newer version of doxygen. For a description # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard # footer. See HTML_HEADER for more information on how to generate a default # footer and what special commands can be used inside the footer. See also # section "Doxygen usage" for information on how to generate the default footer # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of # the HTML output. If left blank doxygen will generate a default style sheet. # See also section "Doxygen usage" for information on how to generate the style # sheet that doxygen normally uses. # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as # it is more robust and this tag (HTML_STYLESHEET) will in the future become # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_STYLESHEET = # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. # Note: The order of the extra style sheet files is of importance (e.g. the last # style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note # that these files will be copied to the base HTML output directory. Use the # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these # files. In the HTML_STYLESHEET file, use the file name only. Also note that the # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # https://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 # purple, and 360 is red again. # Minimum value: 0, maximum value: 359, default value: 220. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors # in the HTML output. For a value of 0 the output will use grayscales only. A # value of 255 will produce the most vivid colors. # Minimum value: 0, maximum value: 255, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the # luminance component of the colors in the HTML output. Values below 100 # gradually make the output lighter, whereas values above 100 make the output # darker. The value divided by 100 is the actual gamma applied, so 80 represents # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not # change the gamma. # Minimum value: 40, maximum value: 240, default value: 80. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this # to YES can help to show when doxygen was last run and thus if the # documentation is up to date. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = NO # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via Javascript. If disabled, the navigation index will # consists of multiple levels of tabs that are statically embedded in every HTML # page. Disable this option to support browsers that do not have Javascript, # like the Qt help browser. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_MENUS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_DYNAMIC_SECTIONS = NO # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries # shown in the various tree structured indices initially; the user can expand # and collapse entries dynamically later on. Doxygen will expand the tree to # such a level that at most the specified number of entries are visible (unless # a fully collapsed tree already exceeds this amount). So setting the number of # entries 1 will produce a full collapsed tree by default. 0 is a special value # representing an infinite number of entries and will result in a full expanded # tree by default. # Minimum value: 0, maximum value: 9999, default value: 100. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_INDEX_NUM_ENTRIES = 100 # If the GENERATE_DOCSET tag is set to YES, additional index files will be # generated that can be used as input for Apple's Xcode 3 integrated development # environment (see: https://developer.apple.com/tools/xcode/), introduced with # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a # Makefile in the HTML output directory. Running make will produce the docset in # that directory and running make install will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at # startup. See https://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_DOCSET = NO # This tag determines the name of the docset feed. A documentation feed provides # an umbrella under which multiple documentation sets from a single provider # (such as a company or product suite) can be grouped. # The default value is: Doxygen generated docs. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_FEEDNAME = "Doxygen generated docs" # This tag specifies a string that should uniquely identify the documentation # set bundle. This should be a reverse domain-name style string, e.g. # com.mycompany.MyDocSet. Doxygen will append .docset to the name. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_BUNDLE_ID = org.doxygen.Project # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. # The default value is: org.doxygen.Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. # The default value is: Publisher. # This tag requires that the tag GENERATE_DOCSET is set to YES. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three # additional HTML index files: index.hhp, index.hhc, and index.hhk. The # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on # Windows. # # The HTML Help Workshop contains a compiler that can convert all HTML output # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML # files are now used as the Windows 98 help format, and will replace the old # Windows help format (.hlp) on all Windows platforms in the future. Compressed # HTML files also contain an index, a table of contents, and you can search for # words in the documentation. The HTML workshop also contains a viewer for # compressed HTML files. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_HTMLHELP = NO # The CHM_FILE tag can be used to specify the file name of the resulting .chm # file. You can add a path in front of the file if the result should not be # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated # (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO # The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated # (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members to # the table of contents of the HTML help documentation and to the tree view. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help # (.qch) of the generated HTML documentation. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify # the file name of the resulting .qch file. The path specified is relative to # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace # (see: http://doc.qt.io/qt-4.8/qthelpproject.html#namespace). # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt # Help Project output. For more information please see Qt Help Project / Virtual # Folders (see: http://doc.qt.io/qt-4.8/qthelpproject.html#virtual-folders). # The default value is: doc. # This tag requires that the tag GENERATE_QHP is set to YES. QHP_VIRTUAL_FOLDER = doc # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom # filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom # Filters (see: http://doc.qt.io/qt-4.8/qthelpproject.html#custom-filters). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://doc.qt.io/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To # install this plugin and make it available under the help contents menu in # Eclipse, the contents of the directory containing the HTML and XML files needs # to be copied into the plugins directory of eclipse. The name of the directory # within the plugins directory should be the same as the ECLIPSE_DOC_ID value. # After copying Eclipse needs to be restarted before the help appears. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_ECLIPSEHELP = NO # A unique identifier for the Eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have this # name. Each documentation set should have its own identifier. # The default value is: org.doxygen.Project. # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. ECLIPSE_DOC_ID = org.doxygen.Project # If you want full control over the layout of the generated HTML pages it might # be necessary to disable the index and replace it with your own. The # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top # of each HTML page. A value of NO enables the index and the value YES disables # it. Since the tabs in the index contain the same information as the navigation # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. DISABLE_INDEX = NO # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. If the tag # value is set to YES, a side panel will be generated containing a tree-like # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the # HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has # the same information as the tab index, you could consider setting # DISABLE_INDEX to YES when enabling this option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. GENERATE_TREEVIEW = NO # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. # # Note that a value of 0 will completely suppress the enum values from appearing # in the overview section. # Minimum value: 0, maximum value: 20, default value: 4. # This tag requires that the tag GENERATE_HTML is set to YES. ENUM_VALUES_PER_LINE = 4 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used # to set the initial width (in pixels) of the frame in which the tree is shown. # Minimum value: 0, maximum value: 1500, default value: 250. # This tag requires that the tag GENERATE_HTML is set to YES. TREEVIEW_WIDTH = 250 # If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of LaTeX formulas included as images in # the HTML documentation. When you change the font size after a successful # doxygen run you need to manually remove any form_*.png images from the HTML # output directory to force them to be regenerated. # Minimum value: 8, maximum value: 50, default value: 10. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANSPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are not # supported properly for IE 6.0, but are supported on all modern browsers. # # Note that when changing this option you need to delete any form_*.png files in # the HTML output directory before the changes have effect. # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # https://www.mathjax.org) which uses client side Javascript for the rendering # instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. USE_MATHJAX = NO # When MathJax is enabled you can set the default output format to be used for # the MathJax output. See the MathJax site (see: # http://docs.mathjax.org/en/latest/output.html) for more details. # Possible values are: HTML-CSS (which is slower, but has the best # compatibility), NativeMML (i.e. MathML) and SVG. # The default value is: HTML-CSS. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_FORMAT = HTML-CSS # When MathJax is enabled you need to specify the location relative to the HTML # output directory using the MATHJAX_RELPATH option. The destination directory # should contain the MathJax.js script. For instance, if the mathjax directory # is located at the same level as the HTML output directory, then # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax # Content Delivery Network so you can quickly see the result without installing # MathJax. However, it is strongly recommended to install a local copy of # MathJax from https://www.mathjax.org before deployment. # The default value is: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/ # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax # extension names that should be enabled during MathJax rendering. For example # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and # should work on any modern browser. Note that when using HTML help # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) # there is already a search function so this one should typically be disabled. # For large projects the javascript based search engine can be slow, then # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to # search using the keyboard; to jump to the search box use + S # (what the is depends on the OS and browser, but it is typically # , /