mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-28 15:56:51 +00:00
bcf2694f93
* Make func_800C213C match original ROM The C code for this function was very close to done, and was functionally equivalent to the ROM. This commit uses a few tricks to convince the compiler to allocate the same registers as the original ROM. The two tricks used are: 1. Introduced a new temporary variable "yinc". 2. Added a "do while(0) {}" line in two places. Both of these ideas came from the decomp-permuter tool. I took the do/while idea and guess as to what it might have been in the original code. I imagined that the "do while(0) {}" was probably left over from a standard multi-line macro, which for some reason had an empty body. I further suggest that maybe the empty body is because it was a feature compiled out during RELEASE builds - perhaps a debug logging macro. * Use simpler code for func_800C213C Replaced dummy LOG macro with "do {} while(0);". This version makes less assumptions about what the original code looked like. |
||
---|---|---|
.. | ||
non_matchings | ||
overlays/data/ovl_map_mark_data | ||
__osDisableInt.s | ||
__osGetCause.s | ||
__osGetFpcCsr.s | ||
__osGetSR.s | ||
__osProbeTLB.s | ||
__osRestoreInt.s | ||
__osSetCompare.s | ||
__osSetFpcCsr.s | ||
__osSetSR.s | ||
__osSetWatchLo.s | ||
bcmp.s | ||
bcopy.s | ||
bzero.s | ||
code_800D71F0.s | ||
dmadata.s | ||
entry.s | ||
exceptasm.s | ||
fp.s | ||
guMtxF2L.s | ||
guMtxIdent.s | ||
guMtxIdentF.s | ||
guMtxL2F.s | ||
guNormalize.s | ||
guScale.s | ||
guTranslate.s | ||
ipl3.s | ||
mio0.s | ||
osGetCount.s | ||
osInvalDCache.s | ||
osInvalICache.s | ||
osMapTLBRdb.s | ||
osSetIntMask.s | ||
osUnmapTLBAll.s | ||
osWritebackDCache.s | ||
osWritebackDCacheAll.s | ||
rom_header.s |