CHANGES (19903B)
1 Refresh 16 (Two years later...) 2 1.) remove capstone from readme, slight update (#1212) 3 2.) Update ido static recomp (#1211) 4 3.) Fix misleading pointer (#1209) 5 4.) update outdated link (#1208) 6 5.) Match iQue (#1207) 7 6.) iQue matching except BSS (#1124) 8 7.) Create LICENSE.md 9 8.) Reorganize and apply licenses to some of the tools/ programs per discussions with their author(s). (#1203) 10 9.) Fix rumble_init libultra includes and checks (#1195) 11 10.) Stacksize moved to defines (#1199) 12 11.) Renamings we were too lazy to make a PR for for 3 years (#1198) 13 12.) Fix spelling error in sound.h comment (#1197) 14 13.) Update instrument sample names (#1196) 15 14.) Object Labeling, Behavior Params, and Cleanup (#1193) 16 15.) Significantly more Libultra Cleanup (#1192) 17 16.) Typedefs for area Terrain Data and Rooms (#1178) 18 17.) Allow spaces in filename for vadpcm_enc (#1175) 19 18.) Label all warp nodes (#1191) 20 19.) Remove hardware.h (#1190) 21 20.) Document __osSetHWintrRoutine (#1186) 22 21.) Change 3 space indent to 4 space indent and cleanup (#1189) 23 22.) Libultra cleanup and labelling (#1188) 24 23.) in-game menu renaming (#1187) 25 24.) AVOID_UB fixes and cleanup (#1185) 26 27 Refresh 15 (mostly a hotfix for RSP microcode selection) 28 29 1.) Renamed frame_buffer funcs and _ZBUFFER (#1184) 30 2.) RSP Microcode Hotfix (#1183) 31 3.) Label osSetTimer.c (#1182) 32 4.) Fix styling (#1177) 33 5.) Rename all `FrameBuffer` variants to `Framebuffer` (#1176) 34 6.) Remove (WIP) from sh. 35 7.) Allow both archives and ELF objects to be patched (#1127) 36 37 Refresh 14 38 39 1.) Label whomp and some object fields (#1174) 40 2.) Generate MIO0 object files using binutils `ld` instead of `as` (#1173) 41 3.) Bowser documentation (#1166) 42 4.) Fix comment syntax in 00_sound_player.0 (#1172) 43 5.) Rename in-game menu variables (#1163) 44 6.) Document double red coin sound and JP sound glitch (#1170) 45 7.) Document different bug in external.c (#1168) 46 8.) updated names/types of octagonal platform data (#1164) 47 9.) Label a number of unnamed variables. (#1169) 48 10.) Document JP PU sound glitch (#1167) 49 11.) Set model ids to spawn_triangle_break_particles (#1165) 50 12.) Fix borders in clear_frame_buffer (#1162) 51 13.) Fix seq header files for 64-bit (#1161) 52 14.) Game_init.c remaining doc (#1158) 53 15.) Label a couple static variables in sound_init.c (#1159) 54 16.) Properly define dialog values (status, flags, cutscenes) (#1153) 55 17.) Label all of amp's assets. (#1018) 56 18.) Split audio/synthesis.c into Shindou/non-Shindou files (#1144) 57 19.) Avoid CC_CHECK warnings when using gcc (#1157) 58 20.) level_select_menu.c => title_screen.c (#1152) 59 21.) Use C preprocessor on assembly files (#1126) 60 22.) Replace output_level_headers.py with sed equivalent (#1109) 61 23.) Fix CC_CHECK warnings related to unused symbols and UB (#1155) 62 24.) Define remaining floor lower limit values (#1147) 63 25.) use r+b mode for libultra.a patch tool (#1148) 64 26.) Use proper values for gPrevFrameObjectCount ifs (#1146) 65 27.) Some minor bowser.inc.c labelling. (#1150) 66 28.) fix king bob-omb texture pointers (#1145) 67 29.) Split audio/load.c into Shindou/non-Shindou files (#1143) 68 30.) Small Shindou audio cleanups (#1142) 69 31.) Fix endians in ALSeqData (#1141) 70 32.) Document S8 decoder rsp operation and some more (#1139) 71 33.) Fix Shindou synthesis_process_note fake match (#1140) 72 34.) More audio documentation, for the new rsp code and other fixes (#1138) 73 35.) Build fixes for macOS: cpp, clang, recomp, aiff_extract_codebook (#1135) 74 36.) Add ENABLE_RUMBLE to config.h (#1122) 75 37.) Reduce recomp memory consumption by using smaller disassembly blocks (#1128) 76 38.) Makefile fixes (#1123) 77 39.) Update README.md 78 40.) Update README.md 79 41.) Reflect current decompilation status 80 42.) Allow both archives and ELF objects to be patched (#1127) 81 43.) Remove WIP mention in README for sh version. 82 83 Refresh 13 2 84 85 - No more nonmatchings remain for all builds including Shindou. 86 87 1.) Shindou OK (#1118) 88 2.) Match shindou sequence_player_process_sequence (#1117) 89 3.) Match func_sh_802f4e50 (#1116) 90 91 Refresh 13 92 93 - No more nonmatchings remain for US, JP, or EU builds. Three(!!!) remain for Shindou (SH). 94 95 *) SHINDOU MATCHING (#1081) 96 *) Makefile gcc fixes (#1114) 97 98 1.) Update diff.py (#1113) 99 2.) Add support for generating C arrays from n64graphics and add Texture typedef (#1032) 100 3.) Update README and Dockerfile with recomp info (#1105) 101 4.) Support building tools with MSYS2 (#1112) 102 5.) Support building tools with clang and macOS (#1106) 103 6.) Clean tools directory when running distclean target (#1104) 104 7.) Make build output cleaner (#1095) 105 8.) Added 2 surface defines to bowser.inc.c (#1111) 106 9.) fix fake matchings (#1108) 107 10.) Use statically recompiled IDO instead of qemu-irix (#1099) 108 11.) Add VERBOSE=1 to Jenkinsfile 109 12.) updated intro_geo to use layer defines for geo flags (#1090) 110 13.) Fix F3DZEX (#1097) 111 14.) layer_transpose should take an s8 (#1093) 112 15.) Fix tools/ build (#1082) 113 16.) Relabel and document fish.inc.c (#1077) 114 17.) Ensure all calls to .py files use $(PYTHON) (#1080) 115 18.) Name Mario, Peach, and instrument sound files (#1078) 116 19.) Goddard labeling, part 2 (#1076) 117 20.) Fix envfx_snow and envfx_bubbles fake matches (#1075) 118 21.) Use array subscripts instead of pointer math in 2 files (#1074) 119 22.) refactor Makefile a bit (#1068) 120 23.) Further improvements on field names (#1059) 121 24.) Label and document manta_ray.inc.c (#1073) 122 25.) Fix level_script and behavior fake matches (#1072) 123 26.) Proper cell defines and more floor lower limit values. (#1065) 124 27.) Document and re-label some goddard/intro code (#1069) 125 28.) Match remaining functions (#1070) 126 29.) match 'spawn_special_objects' (#1071) 127 30.) Document parts of external.c and format sound defines (#1067) 128 129 Refresh 12 130 131 1.) Debug box improvements (#1066) 132 2.) Improve 'geo_render_mirror_mario' (#1064) 133 3.) Cleanup and small labeling (#1063) 134 4.) Anim renames and other related renames (#1062) 135 5.) remove do while 0 and make one line comments consistent (#1061) 136 6.) fixed typo in segments.h (#1060) 137 7.) Name unknown fields (from public repo) (#1058) 138 8.) Change 'void *' to 'struct MainPoolState *' (#1057) 139 9.) Fix type of freeList (#1056) 140 10.) Newer version of diff script (#1055) 141 11.) Add stubbed_printfs based on unused audio strings (#1054) 142 12.) Fix comment in paintings.c (#1053) 143 13.) Add defines for hardcoded cell/floor height values (#1051) 144 14.) Update README.md: Remove GitHub specific Markdown syntax (#1052) 145 15.) Properly label interation status that handle's Bowser's shockwave attack (#1050) 146 147 Refresh 11 148 1.) Make geo_process_level_of_detail endian-independent (#1049) 149 2.) Label oMoveFlags and slight cleanup. (#1046) 150 3.) Avoid UB in synthesis_resample_and_mix_reverb (#1048) 151 4.) Change some void * to correct type (#1047) 152 5.) Remove oPathedWaypointsS16 and convert all paths to Trajectory struct. (#1045) 153 6.) Mr Blizzard documentation, Tox Box Unks (#1042) 154 7.) Pipe input to textconv. (#1041) 155 8.) Remove erroneous long double casts from audiofile.cpp (#1039) 156 9.) Replace fixed dialogID in play_dialog_sound to DIALOG_COUNT (#1040) 157 158 Refresh #10.1 159 1.) Diff update (#1033) 160 2.) Fix texture dimensions for exclamation boxes (#1034) 161 3.) Fix armips compilation on Windows by changing order of inclusion files (#1035) 162 4.) Embed libaudiofile into the repo as a single file (#1036) 163 5.) Fix some tools issues found while compiling on MSYS2 (#1037) 164 165 Refresh #10 166 1.) GCC 9 noreturn UB fixes (#961) 167 2.) List supported binutils variants in README.md (#960) 168 3.) fix fly guy's possible values for target roll 169 4.) clarify that 1 is an exclusive bound in random_float (#962) 170 5.) replace unkB8 with prevNumStarsForDialog (#963) 171 6.) Replace "BulletBillUnkF8" with "BulletBillInitialMoveYaw" (#966) 172 7.) Renamed more warp behaviors and spawn types (#949) 173 8.) EU bss cleanups (#965) 174 9.) Add -fno-zero-initialized-in-bss to GCC CFLAGS (#968) 175 10.) Use empty .SECONDARY target instead of .PRECIOUS (#964) 176 11.) Match EU seq_channel_layer_process_script (#969) 177 12.) Fix version variable overwriting bug for non-matching compilations (#974) 178 13.) small bhv_collect_star_init labeling (#972) 179 14.) Align SI DMA command buffers, add more names to osCont code (#973) 180 15.) Minor for loop fix in playback.c (#976) 181 16.) Add Docker config (Public #36) 182 17.) Fix usage output crash for skyconv (#977) 183 18.) Cleanup tools and their build flags (#978) 184 19.) Print more detailed file reading error messages in extract_assets (#982) 185 20.) Remove asmdiff (#983) 186 21.) Fixed tabledesign makefile bug (#985) 187 22.) Improve first-diff.py (#987) 188 23.) Bring in some enhancements such as widescreen enhancements (#981) 189 24.) Fix background shadow border if widescreen in shade_screen (#988) 190 25.) Merge common EU sections in osExceptionPreamble (#990) 191 26.) Introduce the NO_SEGMENTED_MEMORY define (#989) 192 27.) NO_SEGMENTED_MEMORY comments (#992) 193 28.) Introduce f3dex2e and a GBI_FLOATS setting (#993) 194 29.) Audio uses signed 16-bit integers as samples, not unsigned (#995) 195 30.) Assemble RSP ucode with armips (#970) 196 31.) Label Mr. Blizzard, Yoshi, Whomp, Wiggler, Wood Piece oFields. (#996) 197 32.) update crash enhancement (#1003) 198 33.) Update README.md to use new public Discord server invite 199 34.) Label variables in act_idle. (#1005) 200 35.) Fix a typo in camera.h (#1009) 201 36.) Fixed up profiler.c (#1010) 202 37.) Add -d to first-diff.py (#1012) 203 38.) Fix typo in first-diff.py (#1013) 204 39.) Remove binutils 2.27 dependency check (#1015) 205 40.) Update armips to v0.11.0 tag and add generator script (#1004) 206 41.) Extract IPL3 font from ROM (#1011) 207 42.) Documented audio playback flags (#1021) 208 43.) Change RSP register notation to dollar-prefixed numbers (#1022) 209 44.) Only check for QEMU_IRIX in Makefile when compiling with IDO (#1023) 210 45.) Clean up header files and update function prototypes (#1000) 211 46.) Named local variables in geo_update_layer_transparency (#1019) 212 47.) Extract crash screen font textures from EU and SH ROMs (#1025) 213 48.) Use ACTIVE_FLAG defines where appropriate (#1026) 214 49.) Changed type of actor collision from s16 to Collision (#1024) 215 50.) Implement sqrtf in assembly file (#1028) 216 51.) Rename Struct8032FCE8 as OpenableGrill and identify data members (#1029) 217 52.) Fix some mistakes in the abi doc (#1031) 218 53.) The README.md PR (#979) 219 220 Refresh #8 221 1.) Use INT_STATUS_ macros for oInteractStatus (#911) 222 2.) Update bullet_bill.inc.c (#912) 223 3.) Make geo.c in levels nonconst to reduce diffs with gcc enhancement patch in future (#913) 224 4.) Improve process_level_music_dynamics (#915) 225 5.) add AVOID_UB define for fixing libultra aliasing. (#916) 226 6.) const hack to TARGET_N64 and tweak ld script (#918) 227 7.) Replace raw level/course numbers with defines (#919) 228 8.) Label all graph node flags. (#920) 229 9.) readme.md capitalization 230 10.) The Big Function PR (Part 5) (#910) 231 11.) Label hardware registers (#922) 232 12.) Match EU synthesis_process_note (#923) 233 13.) Some quick value changes (#909) 234 14.) Added sequence player defines (#926) 235 15.) Shindou diffs 2 [merge game.c and display.c, required for SH] (#927) 236 16.) Match synthesis_process_notes and use -sopt for synthesis.c (#928) 237 17.) Fix mips64-binutils for Fedora 31 and similar Linux distros (#931) 238 18.) Update first-diff.py to work with Shindou (#933) 239 19.) Labelled behavior_script.c (#929) 240 20.) shindou diffs up to level_update (#932) 241 21.) Update diff.py and diff_settings.py to work with SH (#936) 242 22.) Add some Shindou resources to extract_assets.py (#939) 243 23.) Label and document gd_math.c (#930) 244 24.) Label all of Mario's actions. (#941) 245 25.) Label all particles. (#940) 246 26.) Renamed death related warpBhvs (#942) 247 27.) Small Shindou differences (#945) 248 28.) match player_performed_grab_escape_action in all versions (#943) 249 29.) add main alignment (aglab2, #947) 250 30.) Match a bunch of fake EU matchings (#944) 251 31.) Shindou diffs round 4 (#937) 252 32.) Easy PAL fake matchings (#946) 253 33.) Merge object_helpers and object_helpers2 headers (#948) 254 34.) match cap_check_quicksand (#950) 255 35.) Shindou crash screen diffs (#938) 256 36.) Thread6 (#951) 257 37.) Correct IPL3 function and label addresses (#952) 258 38.) Add COMPILER flag for Makefile and add official mips gcc support. (#953) 259 39.) add align to sequence_00 (fixes gcc build) (#957) 260 40.) Fixed itty bitty typo (#959) 261 262 Refresh #7 263 1.) update README.md (#861) 264 2.) [eu] fix decompilation bugs in synthesis_process_note (#862) 265 3.) Label and document Snufit.inc.c (#863) 266 4.) Label and document Snufit.inc.c (#863) 267 5.) Match append_bubble_vertex_buffer, append_snowflake_vertex_buffer (#860) 268 6.) Compile audio/effects.c with -sopt (#870) 269 7.) Match handle_dialog_text_and_pages (#872) 270 8.) Remove improperly used LEVEL_SA define. (#875) 271 9.) Remove unused EU ASM files (#873) 272 10.) Shindou build flag support (#876) 273 11.) The Big Function PR (Part 1) (#864) 274 12.) "Re-document" file_select and star_select for EU (#877) 275 13.) Document paintings.c (#868) 276 14.) Minor interaction.c labelling/documentation. (#882) 277 15.) Match synthesis_execute, prepare_reverb_ring_buffer, func_eu_802e00d8 (#886) 278 16.) The Big Function PR (Part 2) (#874) 279 17.) Additional painting documentation (#883) 280 18.) Some EU audio labelling (#885) 281 19.) Bring synthesis_do_one_audio_update a bit closer to matching (#887) 282 20.) Misleading comment, this actually contols Bowser's init action (#889) 283 21.) Match synthesis_do_one_audio_update (#890) 284 22.) Remove unneeded if(1) in synthesis_do_one_audio_update (#891) 285 23.) Match synthesis_resample_and_mix_reverb (#893) 286 24.) Set LANG=C (#896) 287 25.) Match note_apply_headset_pan_effects (#897) 288 26.) Match play_sequence (#898) 289 27.) Match sequence_channel_enable (#899) 290 28.) Match sequence_player_process_sequence (#900) 291 29.) Match (eu) alloc_bank_or_seq (#901) 292 30.) Match alloc_bank_or_seq (#903) 293 31.) Update README.md (again) 294 32.) Documented behaviour/fish.inc.c & blue_fish.inc.c (#894) 295 33.) Labelled 4 behavior files, made object_helper functions consistent (#881) 296 34.) Add a make target for .copt (#902) 297 35.) The Big Function PR (Part 3) (#888) 298 36.) The Big Function PR (Part 4) (#906) 299 37.) Rename src/audio/memory.c -> heap.c (#907) 300 38.) Fix BBH texture (#908) 301 302 Refresh #6 303 1.) Make tools work on MinGW (#804) 304 2.) Document mario_misc (#628) 305 3.) add patch_libmalloc.py script to work around compiler crashes (#811) 306 4.) Label the coffins file. (#829) 307 5.) Convert enhancements into patches (#827) 308 6.) Document Tweester.inc.c (#840) 309 7.) EU OK and cleanup EU (#782) 310 311 Refresh #5 312 1.) mem_error_screen.inc.c updated for C (#775) 313 2.) updated patch_libultra_math to work directly on libultra.a (#781) 314 3.) Enhancement: Debug boxes (#783) 315 4.) Label effects MemoryPool (#784) 316 5.) Use full-width characters for JP text and rename mislabeled stuff (#772) 317 6.) Small asset extraction fixes (#785) 318 7.) Fix incremental asset extraction after the last PR (#790) 319 8.) Labelled behavior script commands, tidied up behavior scripts and ren… 320 9.) Document camera.c (#741) 321 10.) Fix a HMC texture asset (#795) 322 11.) Fix UB in angle conversion for paintings. Needed for pc-port. (#796) 323 12.) Fix PSS texture assets (#801) 324 13.) Fix some camera typos (#802) 325 326 Refresh #4 327 1.) Label screen_transition.c (#737) 328 2.) Revamp macros (#738) 329 3.) Simplify the cake makefile logic (#739) 330 4.) Move zbuffer to C (#742) 331 5.) Audio blob endian/64-bit fixes (#740) 332 6.) Ub fixes (#745) 333 7.) process_level_music_dynamics: slightly better stack and regalloc (#746) 334 8.) move level order specific definitions out to levels/level_defines.h (#743) 335 9.) Renamed some mislabelled sound effects (#748) 336 10.) Very minor white space fixes in Mario.c (#752) 337 11.) Renamed GRAVITY to OBJ_PHYSICS (#755) 338 12.) Use defined macros instead of literal values for interactions in behavior_data.c (#754) 339 13.) iQue Player console detection + full support (#756) 340 14.) Fix Goddard Mario head for little endian etc. (#757) 341 15.) Small bits of audio doc (#749) 342 16.) Update diff script (#750) 343 17.) Nicer format for course/dialog text, enum for dialog IDs (#753) 344 18.) first-diff: store most recent mtime during check (#759) 345 19.) Use Lights1 struct for light values (#760) 346 20.) Detect mips64-elf in diff.py (#761) 347 21.) Name display lists in gd renderer.c (#764) 348 22.) Document a variety of PU type crashes. (#765) 349 23.) Label object_behaviors. (#716) 350 24.) Update swoop.inc.c (#767) 351 25.) Label tilting_pyramid.inc.c (#768) 352 26.) Label red_coin.inc.c (#770) 353 27.) Use more level defines (#758) 354 28.) Named Mario actions 6, 7, and 8 and noted causes of hands-free holding glitch (#769) 355 356 Refresh #3 357 1.) Small bits of sound sample labelling 358 2.) Append 'b' to fopen calls in n64graphics to satisfy Windows 359 3.) Document synthesis.c and abi.h 360 4.) Remove gbi_old.h and use gbi.h instead for F3D_OLD 361 5.) Fix and change most values used by f3d commands 362 6.) Convert actors to C 363 7.) Make extract_assets.py fail on bad baserom 364 8.) Fix some (pragma-ignored) warnings 365 9.) Convert trig tables and data/ buffers into C 366 10.) Document intro behaviors and some of camera.c 367 11.) Match dma_sample_data 368 12.) Convert levels, bin, text, goddard_tex_dl to C 369 13.) Remove .bss size hardcoding 370 14.) Add mips64 fallback and alt dump option to diff.sh 371 15.) Convert behavior_data to C 372 16.) Get rid of the enum in behavior_data. 373 17.) Change more values used by f3d commands 374 18.) Document game/skybox.c 375 19.) Actors levels fixup 376 20.) Convert Mario animations to C (kind of) 377 22.) generate skybox data from 248x248 images 378 23.) 64-bit fixes 379 24.) Move demo data to C 380 25.) Change uintptr_t to GeoLayout for actors 381 26.) Move libc includes to include/libc/ 382 383 Refresh #2a (hotfix) 384 Changes from Refresh #2: 385 386 1.) Fixed text Makefile dependencies" 387 388 Refresh #2 389 Changes from Refresh #1: 390 391 1.) Label src/game/behaviors/boo.inc.c 392 2.) Verify half of audio_defines.h 393 3.) Label ingame_menu.c and some dialog stuff 394 4.) Improve handle_dialog_text_and_pages EU non-matching 395 5.) Fix texture format for water splash/sparkle 396 6.) Merge ucode.bin and ucode_unk.bin 397 7.) 64-bit fixes 398 8.) [AUDIO] Match func_80316928 399 9.) Documented bug in Tuxie's mother's code 400 10.) [AUDIO] Slightly closer matching for process_level_music_dynamics 401 11.) Name channel scripts in sequence 0 402 12.) Nicer error message when sha1sum doesn't match 403 13.) Refactor object fields 404 14.) Document file_select.c 405 15.) Document star_select.c 406 16.) Add uncompressed string support to textconv 407 17.) Document main_menu geo and leveldata 408 18.) Document hud.c and rename char textures 409 19.) Correct gSPTextureRectangle values 410 20.) Linker script wildcard 411 - Fixes "undefined reference to x in discarded section y" linker errors. 412 - Also means that you no longer have to add linker script entries for source files. 413 21.) Reference qemu-irix package and add project structure 414 - Installing qemu-irix is as simple as installing the provided Debian package on the GitHub "Releases" tab 415 (https://github.com/n64decomp/qemu-irix). 416 - Old qemu-irix installs are unaffected by this change, and it is still possible to install qemu-irix with the older method. 417 418 Refresh #1 419 Changes from initial release: 420 421 1.) More README cleanups and documentation 422 2.) Fix .gitignore in tools/ 423 3.) More README cleanups and corrections 424 4.) oUnk190 -> oInteractionSubtype 425 5.) Normalize line endings 426 6.) Replace bank_sets.s by sequences.json + build magic 427 7.) Fix tabledesign in .gitignore 428 8.) Cleaned and documented arrays in audio/ 429 9.) Change minimum Python 3 requirement in README.md to 3.6 430 10.) Remove whitespace in ingame_menu.c, save_file.c, and star_select.c 431 11.) Documentation comment style fixed 432 12.) sm64.map -> sm64.version.map (ex: sm64.us.map) 433 13.) Decompile EU versions of HUD and obj behaviors 434 14.) Label ukiki.inc.c and ukiki_cage.inc.c 435 15.) Add missing OS header includes 436 16.) Fix alignment issue in model_ids.h 437 17.) A bunch of behavior changes: 438 a.) Made styles consistent with function names (ex: BehBehaviorLoop -> beh_behavior_loop) 439 b.) Split obj_behaviors_2.c into multiple .inc.c files in behaviors/ 440 c.) bhvHauntedRoomCheck -> bhvCoffinManager 441 18.) Update README.md notes on WSL and add links 442 19.) Added tidy.sh and also bracing around single-line ifs and loops