BattleShip v0.5.1-beta
Patch release on top of v0.5-beta — fixes #43: the v0.5-beta macOS .dmg crashed on launch on any Mac without the developer's exact Homebrew layout, because package-macos.sh shipped the binary with absolute /opt/homebrew/... dylib paths embedded in its load commands. The package script now bundles the Homebrew dylibs into Contents/Frameworks/ via dylibbundler and rewrites install_names to @executable_path/../Frameworks/ (694e3cf). Linux + Windows builds are unchanged from v0.5-beta.
Big release with some great PR's and contributions from
@Jameriquiah
@the-outcaster
@Kriix08
-
More robust build system centered on CMake, should help those having issues with the original powershell script.
-
Newer menu aligning more closely with SoH.
-
Tap Jump can be disabled in the new menu!
-
New assets to replace the garbage I made.
New: in-game ESC menu + build-system modernization (PR #37)
@Jameriquiah ported SoH/2S2H's ESC menu over and rewrote the build system around CMake targets. Hit ESC in-game to bring up the new menu — controls, settings, gameplay enhancements all live there now. The old build.sh / build.ps1 wrappers have been retired in favor of cmake --build build --target ….
- Bundled Montserrat + Inconsolata menu fonts so the menu actually has typography on a fresh checkout (
2a4b61c) - Five review fixes on top of the merge: macOS narrowing-cast build break, BeginChild/EndChild guard mismatch, ImGui modal for re-extract confirmation, doc / script comment cleanup (
a7e1eb7)
New: first port-specific gameplay enhancement — per-port Disable Tap Jump (PR #39)
This one makes me particularly happy as not a huge smash player, because this is the first real port specific enhancement, and I wouldn't have considered it a feature if it wasn't brought up and PR'd.
@the-outcaster contributed a per-controller-port toggle to disable tap-jump. Find it in ESC → Gameplay. I've set a pattern with a follow up commit to keep things like this outside the decomp code whenever possible. The pattern is as follows: (CVar registered in port/enhancements/, accessor called from a single #ifdef PORT block in the decomp file). (5c3e6bf, 7d8e203)
Proper artwork — Kriix08's BATTLESHIP logo (#25)
The placeholder garbage icon and DMG banner are gone. @Kriix08's beautiful new logo art now drives the app icon (PNG/ICNS/ICO) and the macOS DMG installer banner. (62105cc)
Audio
Per Claude:
-
Star-KO chime no longer produces that awful noise (#38).
fgm_unkwas being parsed with the wrong shape, so envelope decay floats decoded as ~0 → constant amplitude. Switched to a flat 16-byte-stride parser with proper BE→LE float swaps. Most SFX were too short to notice; the Star-KO chime's 150-frame sustain made it audible. (8b76629) -
This also fixes fighter rolls having an incorrect sound and a slew of other untracked audio issues. The game should sound way better now. If you still hear some weird god awful noise, please make another issue for it.
Game logic / fighters
Per Claude:
- Pikachu F-Smash texture flash works again (#30). The first attempt at this fix was reverted — it bswapped 8 bytes back into the file image and corrupted adjacent reloc tokens for fighters where the trailing pad wasn't zero (CSS lock-in crashed for everyone except Pikachu). The shipping fix returns a static 8-byte buffer with the corrected 6 bytes and never modifies file memory. (
945889e,1f2b694,435c944) - BTT/BTP result screen state-machine leak fixed (#27). Four advance-tic globals (
CommonAdvanceTic,BonusShowNextTic,BonusAdvanceTic,BonusNum) leaked from the prior 1P stage into the BTT result screen — on N64 each scene re-entry re-DMA's overlay BSS to zero, but PC has overlays statically linked. Symptom: result screen "froze" with audio looping. Now reset under#ifdef PORTinsc1PStageClearInitVars. (6746f3d)
Build / packaging
Per Claude:
The new build flow shook out a pile of platform-specific issues. All three platforms verified end-to-end before tagging.
Windows
build.ps1parse failure on PS 5.1 (#28). Non-ASCII characters in the script were being read as Windows-1252 on stock Win10/11. Stripped to ASCII and added#Requires -Version 5.1so it can't regress. Also hardened: WindowsApps stub detection for bothpython.exeandpy.exe,ErrorActionPreferencechange so native stderr redirection doesn't suppress rich error messages, several PS 5.1 quirks worked around. (bec6baa)RealAppBundlePathnow implemented for Windows viaGetModuleFileNameWso the portable zip extracted anywhere resolves fonts and ROM correctly (6a9197d)CMAKE_INSTALL_PREFIX=BattleShipso log lines readAppBundlePath = BattleShipinstead ofC:/Program Files (x86)/ssb64(ce162df)
Linux / AppImage
- AppImage path resolution: hoisted
RealAppBundlePathout offirst_run.cppso the ESC menu finds bundled fonts under the AppImage mount layout (8e622c7) - Locally-built AppImages on DT_RELR-era distros (Fedora 38+, Ubuntu 23.10+, Arch, Steam Deck Holo) no longer SIGSEGV in
_dl_init. linuxdeploy's bundled patchelf 0.15 and binutils-2.34-era strip predate compact relative relocations and corrupt.relr.dyn. Now sniffs the host and hands linuxdeploy the system patchelf + skips the broken strip pass. CI (jammy, glibc 2.35) is unaffected. (08972c2)
macOS
.dmgno longer crashes on launch on Macs without the developer's Homebrew layout (#43).package-macos.shwas shipping the binary with absolute/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib(etc.) load commands, which dyld can't resolve on a user's machine without that exact prefix. Now bundles SDL2 / GLEW / libzip / tinyxml2 / spdlog / fmt and their transitive deps intoContents/Frameworks/viadylibbundler, rewrites install_names to@executable_path/../Frameworks/, and codesigns the bundle as a unit. Adds a build-time guard that fails loudly if any/opt/homebrewreference survives. Linux + Windows packaging already handled this (linuxdeploy / vcpkg DLL copy); macOS was the outlier. (694e3cf).apppackaging fix: torch sidecar path was relative under the bundle'sContents/MacOSlayout, so silent extraction aborted withexit 127before torch ran. Now absolute-ized (0ed1ba8)- Bundled menu fonts copied into
Contents/Resources/assets/custom/fonts/so the ESC menu has typography (0ed1ba8)
Cross-platform
- Asset-extraction log path absolute-ized — the
cd workingDir && torch ... > logPathshell pattern was breaking whenlogPathwas relative (8e622c7) - Linux + Windows packaging audit: both scripts now bundle
assets/custom/fonts/matching the macOS fix (6a9197d)
Closes
#25, #27, #28, #30, #37, #38, #39, #43
Acknowledgements
Huge thanks to the third-party contributors who made this release happen. A great day 2!
- @Jameriquiah — PR #37: build-system modernization + ESC menu port
- @the-outcaster — PR #39: per-port Disable Tap Jump
- @Kriix08 — BATTLESHIP icon + DMG banner artwork (closing #25)
Much Love