* 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
* 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
* 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.
Refactored everything to be more memory efficient and execute fewer function calls than prior
Also accidentally discovered a significant bug with the audio modes always being forced to stereo so this is definitely 2.1 scope lmao
* Start samples at full velocity when using envelopes that start with a delay of 1
This can help eliminate sample artifacting that happens during a transition between a sudden fade-in into normal volume. It's not completely eliminated due to some processing weirdness, but it's a massive improvement.
* Fix vanilla issue causing misalignment when samples are initialized and played back with low attack values
NOW the artifacting is actually gone for real
* Improve artifacting bugfix
The first solution would've honestly been satisfactory, but this one seems to be slightly more accurate while actually removing code rather than adding it
* Add light configuration settings to BETTER_REVERB
This can reduce runtime demand down to ~75% of the standard demand, at the cost of the configurability of generally more advanced parameters
* Reformat the BETTER_REVERB preset entries to be easier to look at
* :peterVOID:
* haha lol formatting change definitely related to reverb yes this isn't unwarranted at all lmao hehe hoho
* Puppyprint text size
* Update puppyprint.c
* Revert broken render_multi_image changes
* revert multi image tweak
parallel momento
* Update puppyprint debug colors to work with new hexadecimal system
* Puppyprint color reversion to currEnv + some bugfixes
* Remove a pointless color array
* Add forgotten comment
* i can type yes definitely
* Fix some puppyprint formatting edge cases
* Missed one last puppyprint edge case
* Additional strLen check
* Variable length fix + command ignoring strlen
* type changes
* Update puppyprint.c
* Box clamping
* Revamped profiling, fixed right alignment
* Update puppycam2.c
* Deferred printing
* Update puppyprint.c
* Fixed negatives being stupid
* Puppyprint Memory view rework
* Update level_script.c
* tweaks
* Fix new line spacing with different scales
also small bit of optimisation
* Spacing fixes
* Lightweight text option
* puppyprint debug now using light text where applicable
* Update puppyprint.c
* Update puppyprint.c
* level select menu
* merge profilers into one WIP
* Fully ascii compliant
* Finishing touches hopefully
* Update puppyprint.c
* new font
* vanilla font
* o
* Update hud.c
* last kerning fixes
* Requested changes
* requested changes
* fix the j
* requested changes
* change ur clothes
* Update surface_collision.c
* requested changes
* Update puppyprint.h
* Update camera.c
* .
* Update puppyprint.c
* Update puppyprint.c
* Update puppyprint.c
* fix J
* font
* font system rework
* ia4 outline font
* pain
* fix deferred printing
* fix format change
* Add audio profiling to Puppyprint Debug
* Optimize audio profiling substantially
* Minor audio optimizations
* requested changes
* oops accidentally commited 6 lmfao
* Update game_init.c
* Update puppyprint.c
* Update puppyprint.c
* Improve Puppyprint deferred prints
This is safer, more readable, and more runtime efficient all in the same package
* change return type
* fix building with profiler only
* Update profiling.c
* fix upscaled texture rectangles from multi image
---------
Co-authored-by: gheskett <gheskett@gmail.com>
* Bugfix: BETTER_REVERB starts before buffers are ready
* Add support for preset options to be used with BETTER_REVERB
* Some BETTER_REVERB cleanup
* The funny whoops
* Address suggested level script change
* Bugfix: useReverb crashes when disabled
* Allow window size override for vanilla-esque BETTER_REVERB presets
* Remove unnecessary downsampling limit check
* Fix up a few things + some slight reformatting
* Add light documentation to the BETTER_REVERB parameters
* Adjust BETTER_REVERB preset types to make more sense
* Reset BETTER_REVERB data buffer to be unallocated when not in use
* Properly disable BETTER_REVERB when disabling all reverb processing
* Remove an unnecessary BETTER_REVERB ifdef
* Remove D_80332108
* Revise BETTER_REVERB config description
Optimize vibrato to even exceed vanilla's implementation, all without restricting usability from the current implementation. This should save up to about 1ms of audio runtime.
* Imminent fixes for bugs found on master branch (#512)
* The vanilla level checks define for Yoshi is inverted, causing him to require 120 stars when it is off and appear at 0 stars when it's on
* The downwarp fix results in Mario levitating in midair when grabbing Bowser midair. While downwarps should still be fixed, the change should be reverted immediately until a better fix is made.
* Some checks of Mario's floor class were using the wrong defines, which can lead to unexpected behavior in the event anyone wants to reorder surface types. By default the SURFACE_CLASS_SLIPPERY and SURFACE_SLIPPERY defines have the same value, which is why this mistake is hard to notice.
* The firsty frames define was implemented poorly, not allowing for vanilla firsty behavior no matter what the values were set to. This has been reverted, while avoiding the UB in the original vanilla code.
* Removed the ledge grab changes that fix QSLGs and change the false ledgegrab define since Arceveti wanted to in his PR
* Update version to 2.0.4 (#515)
* HackerSM64 2.0.5 (#517)
* Bugfix: race condition with accessing cleared audio memory pools
* Bugfix: skyboxes access tiles out of range when looking straight down (#518)
* Vscode fixes (#516)
* Revert s32 angles and remove Angle typedef usage (#529)
* Fix some surface shadowing (#531)
* Delete rtc.h
* Remove `wait_for_audio_frames()`
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: Arceveti <73617174+Arceveti@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>
* Update VERSION.txt (#534)
Co-authored-by: arthurtilly <32559225+arthurtilly@users.noreply.github.com>
Co-authored-by: axollyon <20480418+axollyon@users.noreply.github.com>
Co-authored-by: Gregory Heskett <gheskett@gmail.com>
Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com>
Co-authored-by: JoshDuMan <40190173+JoshDuMan@users.noreply.github.com>