Skip to content

Releases: HackerN64/HackerSM64

v2.4.0

Choose a tag to compare

@gheskett gheskett released this 12 Sep 16:58
8953c07

HackerSM64 2.4.0 - Minor Feature Update

What's Changed

New Features:

  • Overhauled crash screen to be more accurate and useful
  • New compression formats introduced
    • LZ4T (new default, much more efficient than YAY0)
    • GZIP Deflate
  • Build support for ARM64 MacOS
  • Added proper build support for CI textures in PNG form
  • Build support introduced for preswapped textures
  • New detection for system capabilities, such as Framebuffer Emulation
  • Added custom library for RTC (real-time clock), pulled from n64-libc library
  • New geo command added for cylindrical billboarding
  • New draw_sprite() function for rendering textures of any size to the screen (replaces render_multi_image())
  • Added new macro for creating debug assertions that take in sprintf-like arguments (assertf())

Bugfixes:

  • HackerSM64 now building on newer versions of GCC
  • Stabilize the building of HackerSM64 repos when using MinGW / decomplicator
  • Rumble support now stable
  • Sign interaction range restored to what it was in vanilla SM64
  • Fix crash when warping to end screen from any level's area other than Area 1
  • Fix ability to escape from chuckya grab
  • Fix issue with inverted floating platform buoyancy in JRB
  • Other minor fixes not listed here

Other Changes:

  • Various new assertions and safety checks introduced throughout the codebase
  • libpl1 updated to latest version (adds new RHDC and SD Card capabilities)
  • Vanilla camera overrides reworked to be more usable within hacks
  • Added soundbank cross-compatibility with sample naming format from Refresh 16
  • All instances of TODO keyword removed from repo (making them more relevant when used within hacks)
  • Disabled infinite stairs warp by default when UNLOCK_ALL disabled
  • Enforce use of 'ED' cartridge ID in header for more broad flashcart / emulator capability support
  • HackerSM64 README simplified
  • Other minor features not listed here

Full Commit Changelog: v2.3.0...v2.4.0

v2.3.0

Choose a tag to compare

@gheskett gheskett released this 04 Jul 03:34
9ef9452

HackerSM64 2.3.0 - Minor Feature Update

What's Changed

New Features / Optimizations

  • Added support for Windows MinGW build
  • Add support for a user-defined config_local.h file
  • Add support for additional audio sfx channels (for getting around existing priority conflicts when adding voice acting for example)
  • Platform Displacement 2.1
  • Remove destination warp node requirement
  • Pressing L in debug fly mode heals Mario
  • Change default compression type from rnc1 to yay0
  • Collision memory optimizations (saves up to 130KB of RAM at no cost)

Smaller Tweaks

  • Change test emulator from mupen64plus to parallel-launcher
  • Update libpl submodule
  • Add mips64-none-elf- to automatically detected prefixes
  • fixlights.py: added support for ripgrep
  • Makefile now properly ignores .inc.c files in most directories
  • Improve DEATH_ON_EXIT_COURSE define
  • Label unlabelled audio func (func_80321080 to stop_secondary_music)
  • Use G_TF_POINT on 3D billboard numbers

Bugfixes

  • Address armips.cpp compiler error and resolve audiofile.cpp warnings for newer versions of GCC
  • Fix fixlights.py compiler error on Python 3.12
  • Fix possible assemble_sound.py build corruption issues
  • Fix segmentation fault issue with MinGW build system (and rare cases with Linux), most likely caused by use of execl
  • Purge debug box flags that no longer exist in Puppycam
  • Fix a blue coin duplication bug
  • EASIER_LONG_JUMPS: only long jump with A+Z while running
  • Restart music upon set_background_music() call if BETTER_REVERB preset changes
  • Fix spawned coins not being collectible until after the peak of their arc

v2.2.0

Choose a tag to compare

@gheskett gheskett released this 02 Mar 14:57
3e5d14e

HackerSM64 2.2.0 - Minor Feature Update

What's Changed

New Features / Optimizations

  • Add libpl submodule (toggleable via Makefile define)
  • Add a define for slope fix (buffers jump inputs for jump kicking around steep slopes)
  • Add define to skip file select
  • Objects using throwmatrix now display their rotations even when the game is paused
  • Improve behavior of wall collision checks between different cells (#734)
  • Add function alignment flag to Makefile to hopefully minimize performance lottery
  • Significant runtime/memory optimizations to lightweight BETTER_REVERB implementation
  • Clean up and slightly optimize audio synthesis code
  • Reduce size of CALL_NATIVE behavior command
  • Remove Puppylights and OBJECTS_REJ define
  • Toggle some of the HackerSM64 default configuration defines to be more in line with vanilla behavior

Bugfixes

  • Fix a potential vanilla floating point crash with audio pitch bend table
  • Fix issues related to objects dying in lava
  • Fix issue with wall sliding at negative speed
  • Fix various rendering bugs with Puppyprint
  • Fix vanilla bug with obj_init_animation referencing the current object rather than the object being passed in as an argument
  • Potential other small fixes not listed here

v2.1.3

Choose a tag to compare

@gheskett gheskett released this 27 Jan 18:03
05bbe16

Hotfix release

What's Changed

  • Add DEBUG_ASSERTIONS define and enable it by default, to help make debugging fatal issues easier
  • Fix rumble-related issues, including a complete build failure
  • Disable unrelated buttons controlling Save & Quit menu and pausing
  • Fix weird text rendering on Project64 GLideN64
  • Fix silhouette occlusion layers rendering twice
  • Fix boos accelerating upwards during textbox (vanilla bug)
  • Add relevant model ID asserts to level script load commands
  • Add assert for invalid geo layout commands to reduce chances of rabbit hole crashes
  • Preserve vanilla reverb downsampling behavior whenever BETTER_REVERB isn't in use (mostly for documentation purposes)
  • Define changes for transitions, with some bug fixes
  • Update dockerfile to Ubuntu 22.04, as 18.04 is EOL

v2.1.2

Choose a tag to compare

@thecozies thecozies released this 27 Sep 21:56
7de18d1
  • Fix issue with flips that causes compilation to fail if the repository is stored on a Windows-based partition (e.g. the C drive)
  • Fix lakitu cloud jumpscare when watching Peach intro

v2.1.1

Choose a tag to compare

@gheskett gheskett released this 26 Sep 18:13
b8f770a

Hotfix release

What's Changed

  • Fixed a major bug with mat stack fix, involving an out-of-bounds array index
  • Fixed a typo in floats.h

v2.1.0

Choose a tag to compare

@thecozies thecozies released this 25 Sep 23:41
31d46d4

New to HackerSM64 2.1

HackerSM64 v2.1.0 has a wide variety of bug fixes and huge performance improvements overall. We recommend that any hacks on v2.0.0 or above upgrade to this version - especially if you have console compatibility in mind. Make sure to check out a new branch when seeing if you can pull in changes. If you need help merging, let us know in #sm64-v2-1-0-upgrade-help if you get caught or run into any issues! We have also added new features that should help with development, testing, or just giving you some new options to play around with.

Features

  • Added native Gamecube Controller support (on console, if a GC controller is in port 2 it will be used as the primary controller)
  • Support using 4 controllers at once
  • Replaced unused 0C bank with an improved version of aglab's / scut's extended 0C bank with better naming and all instruments
  • Added WORLDSPACE_LIGHTING define
  • Added functionality to the hidden red coin star's second behavior param that allows a set number of red coins to be collected before the star spawns
  • Add define to disable pitch shifting of Mario's voice clips (useful for voice replacements)
  • Added define for previewable blue coins
  • Emulator detection
  • Add "no cap music restart" define
  • Add (emu-only) RCVI hack
  • baserom can now optionally be placed in ~/.local/share/HackerSM64 instead of the root of the repository

Performance

  • Matrix stack fix (improves performance massively)
  • Clear only used dynamic cells (huge performance improvement with x4 bounds)
  • Input processing greatly reduced
  • Disable Stereo Headset Effects and stub out all known code references via define
  • Culling improvements + GRAPH_RENDER_INVISIBLE check change
  • Overhauled BETTER_REVERB to be more performant and versatile
  • Vibrato optimizations
  • Improve performance when world scale is 1
  • Max audio note counts can be set for both console and emulator
  • Objects can use static collision

Misc improvements

  • Puppyprint rewrite (new Puppyprint and Puppyprint debug features)
  • Added RCP hang check
  • Improvements to controller detection
  • Improved console check and Wii VC check
  • Raycasts actually work now
  • Added a define to change the frustratio
  • Simplified the lives define
  • Added functions to set the floating point rounding mode and to enable/disable floating point exceptions
  • Added make rebuildtools (Rebuild tools without requiring a full make distclean)
  • Added new config option to use the the japanese red coin sound effect

Bug fixes

  • Minor texture fixes
  • Restored dialog scrolling to vanilla controls
  • Fixed some vanilla level checks
  • Fix 100 coin stars spawning inside ceilings, as well as being able to spawn multiple 100 coin stars
  • General room related fixes
  • Fixed mirror mario
  • Fixed file select copy button bug

v2.0.9

Choose a tag to compare

@thecozies thecozies released this 23 Sep 21:47
b6d83b3

Old release - catching up on releases from 2.0.3 to 2.0.9

What's Changed

Full Changelog: v2.0.3...v2.0.9