* Added emulator detection
* Fixed missing assignments
* Disable interrupts around the count factor test
* Added more comments to emutest
* Changed PJ64 enum values so the versions work as a bitfield
* Updated README
* Fixed comments
* Updated enum values so you can safely AND and OR all emulator version flags together
* Remove redundant gIsConsole, gIsVC, and gCacheEmulated global variables
* Changed console check to be more future proof against Ares
* Use assembly file instead of casting to a function pointer
* Moved round_double_to_float back to its own compilation unit
* Moved the ParallelN64 check before the Ares check for better future-proofing
* Align pj64_get_count_factor_asm with cache lines... not that it actually matters for pj64
* Adjusted some comments
* Made emulator check thread-safe on emulators that emulate PI timings
* Added gIsConsole macro for backwards compatibility
* Added cen64 to INSTANT_INPUT_BLACKLIST
* Updated comment
* Dynamic collision fixes + actual OR_LONG
Dynamic collision will now check Mario´s vertical distance seperately, this is done to implement a check for when mario is above an object, in which case the collision distance is expanded by 2000 units to avoid shadows not appearing.
Or long works correctly now, replaces the behaviour command NOP_1.
* Micro optimzation
Avoids sqrtf by using the squared lateral distance and squaring the the collision distance for the comparison.
* Requested changes
* minor change
* Re ordering
* How
* Add SET_ECHO level script command + minor BETTER_REVERB refactoring
* Add Puppyprint debug page for trying out different BETTER_REVERB presets and configurations
Also fix a missing Puppyprint enum that was causing issues
* Modify Puppyprint BETTER_REVERB page + other minor improvements
* Swap order of RSP commands to allow reverb downsampling to sound more similar to that of without downsampling
* yeet undefined_syms; IPL3 documentation; theoretical addition of checksum skip and initial DMA length/location change
* another comment about how to set dma len
* comment is now correct in ultratypes
* do the rename
* remove insinuations that ipl3 can be modified
---------
Co-authored-by: someone2639 <someone2639@gmail.com>
* Culling improvements + earlier GRAPH_RENDER_INVISIBLE check
GRAPH_RENDER_INVISIBLE is now checked during geo_process_object before any uncessesary transformation is applied to
the object, translation is still calculated for sound even if the object is invisible.
Half fov is now computed during geo_process_perspective.
Vertical culling has been added (only when bellow the screen to prevent shadow´s being culled).
Emulators have basically infinite culling aspect ratio to prevent early culling with widescreen viewport hacks.
Default culling radius is now a define.
This was written by both me and Kaze Emanuar, he provided the suggestion to use absf and informed me of
integer division being remarkably slow (although it´s only used once during geo_process_perspective).
* Badly placed new line (major fix)
* integer
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
* parenthesis
doesn´t affect order of operation, just for code quality
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
* uncessary whitespace
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
---------
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Now its just part of HackerSM64 entirely, and HackerSM64 will be the source of all changes (as long as said changes can reasonably apply to homebrew games)
* Disable stereoheadseteffects and stub out all known code references via define
By effect this also completely removes Headset sound options from the game config, as it serves no purpose whatsoever compared to stereo.
Because it's stubbed out everywhere rather than only the necessary locations to prevent it, this should boost audio runtime slightly for everything, not just the stuff that actively used it.
* Rename DISABLE_HEADSET_STEREO_EFFECTS to ENABLE_HEADSET_STEREO_EFFECTS
* Reorganize and reduce audio Note struct
* Add performance to define description
* Rename ENABLE_HEADSET_STEREO_EFFECTS to ENABLE_STEREO_HEADSET_EFFECTS
Vanilla's ramping table sounds absolutely horrendous, most noticeably when it comes to slow volume fade-ins/outs. By default, precision has been increased by 4x vanilla US, which overall has an insignificant impact on performance. This is still half as precise as EU's volume ramping table, that's about the point where additional memory and performance aspects are impacted more significantly.
This allows sounds to start instantly without any fade-in. Using new soundbanks with delay values of 0 will not compile with base decomp, but old decomp-compliant soundbanks will work with this commit.