Skip to content

Releases: JRickey/BattleShip

v1.6

Choose a tag to compare

@github-actions github-actions released this 12 Aug 03:19

v1.6 — CPU Classic Co-op partner, interpolated high framerate, and a major Fast3D accuracy/stability pass

This release adds a CPU partner option for Classic Co-op and an opt-in interpolated 120/180/240 FPS presentation mode. It also includes a substantial Fast3D and memory-safety pass: more accurate intro rendering, deterministic N64 trigonometry, and fixes for textureless or corrupted fighters, stages, and particles that could eventually crash the game.

New Features

1. CPU partner in Classic Co-op

Classic Co-op can now fill the second-player slot with a CPU partner, allowing solo players to use the co-op route without a second controller. Contributed by @the-outcaster through decomp PR #13.

2. Enhanced Framerate (Interpolated)

An opt-in graphics setting can present the game at 120, 180, or 240 FPS while game logic, physics, input, and audio remain locked to the original 60 Hz tick rate.

  • Interpolates object and camera matrices between game ticks.
  • Includes teleport, flip, and large-transform guards to avoid interpolation artifacts.
  • Automatically steps down the presentation rate when the host cannot sustain the requested frame budget.
  • Applies immediately from Settings → Graphics → Enhanced Framerate (Interpolated).
  • Preserves authored freeze frames and the original 60 Hz game clock.

Gameplay and Audio

  • Final Destination music selection — Final Destination now honors the selected or shuffled track instead of always falling back to its default music. Contributed by @the-outcaster in #256.

Rendering Accuracy

  • Opening desk-to-stage explosion (#10) — Fast3D now emulates SSB64's color-image-to-Z-buffer technique, including RDP rectangle depth behavior and framebuffer persistence. The transition now reveals the next scene through the expanding Smash-logo silhouette instead of relying on port-specific workarounds.
  • Montage flash geometry (#72) — restored near-plane trivial rejection so off-camera climax quads no longer smear into large gold wedges.
  • Opening-scene pacing (#136) — sustained over-budget RCP work now uses a carry model, removing repeated freeze/advance/freeze stutter while preserving authored hardware stalls.
  • RDP depth semantics — depth comparison now follows Z_CMP, rather than being enabled solely by G_ZBUFFER, restoring the red starburst border around the opening explosion.
  • DirectX intro explosion — fixed corner smears caused by redirect-depth draws outside the intended clip region.
  • Widescreen intro transition — preserves prior-frame history correctly instead of clearing the transition exterior to black.
  • OpenGL fighter intro cards — restores missing fighter-name cards by resetting leaked color-write state before framebuffer presentation.

Stability and Data Correctness

  • Textureless/corrupted fighter and stage family — runtime texture fixups no longer byte-swap past texel data into live model descriptors, relocation tokens, or animation data. This fixes a family of flat or missing fighters/objects, corrupted stage backgrounds and particles, and later scene crashes.
  • Texture-cache reuse — cached textures are content-verified so recycled game buffers cannot silently display stale texels; particle working buffers now evict renderer caches before reuse.
  • Relocation chain hardening — relocation tokens can no longer be mistaken for G_VTX or G_SETTIMG commands as slot generations increase. Chain walks now validate bounds and stop safely instead of corrupting assets or exhausting the token table during long sessions.
  • 64-bit display-list pointer handling — native host pointers whose address happens to contain segment byte 0x0E are no longer misread as N64 segmented addresses, fixing an ASLR-dependent intro crash shared by DirectX and OpenGL.
  • Deterministic N64 trigonometry — game sinf/cosf calls now use libultra's original Cody-Waite implementations instead of platform-dependent host libm behavior, keeping physics and animation calculations consistent across platforms.
  • Additional corruption guards — clamps an out-of-bounds fighter-scale seed, clears stale effect-file pointers between scenes, and restores low-address guards on Linux.
  • Android OpenGL ES compatibility — redirect-depth rendering now uses the GLES depth-clear API and avoids unsupported desktop depth-clamp state, restoring release builds for both Android ABIs.

Developer and Diagnostic Improvements

  • GBI traces can now start at a selected VI frame and include matrix, vertex, and texture payloads, per-draw flush markers, and VI frame numbers.
  • Added OpenGL framebuffer capture and expanded RCP/interpolation diagnostics for graphics regression work.
  • Automated README download and star-history charts were refreshed throughout the release cycle.

Submodule Changes

decomp: dbc69f44 → a79173a9

  • CPU partner support for Classic Co-op.
  • Matrix recording hooks for interpolated presentation.
  • Original opening-room transition restored now that Fast3D supports its hardware behavior.
  • Fighter-scale bounds fix, stale effect-file cleanup, and diagnostic scene-heap mode.
  • Endian-safe libultra trigonometry tables.
  • Widescreen opening-transition history preservation.

libultraship: 37f13c97 → cdb279c5

  • Color-image-to-Z emulation and RDP rectangle-depth behavior.
  • Correct Z_CMP depth-test gating and near-plane rejection.
  • Content-verified texture caching and restored low-address pointer guards.
  • DirectX redirect-depth clipping and widescreen framebuffer persistence.
  • OpenGL fighter-name presentation fix.
  • 64-bit display-list pointer/segment disambiguation.
  • OpenGL ES depth-operation compatibility for Android.

torch

  • Unchanged: 8060a909.

Contributors

Thanks to @the-outcaster for the CPU Classic Co-op partner and Final Destination music-selection fix.

Full Changelog: v1.5.1...v1.6

v1.5.1

Choose a tag to compare

@github-actions github-actions released this 13 Jul 21:19
65c3caf

What's Changed

  • fix(android): armeabi-v7a install + boot fixes (minSdk floor, AAudio gate, ImGui JNI) by @JRickey in #251
  • macOS: Retina-crisp menu fonts, press-and-hold fix, correct bundle version by @quarrel07 in #252
  • Fix the Reset button / Ctrl+Cmd-R: register the missing reset command by @quarrel07 in #253

New Contributors

Full Changelog: v1.5...v1.5.1

v1.5

Choose a tag to compare

@github-actions github-actions released this 06 Jul 19:23

This release ships better Android touch/menu behavior and always landscape, a 32 bit Android ARMv7a release target, signed and notarized macOS release executables, no more Windows defender false positives, improvements to the Mod Manager, a HUD toggle, and an option to mute the game when the window loses focus.

New Features

1. Android controls and menu improvements (#249)

The Android overlay is less intrusive and easier to operate on real devices.

  • Auto-hiding menu button - the on-screen menu affordance fades out instead of staying permanently over gameplay.
  • Back/Select menu shortcut - Android Back and controller Select can now open the menu.
  • Landscape/fullscreen handling - the activity keeps the game locked to landscape and cooperates with SDL fullscreen resizing behavior.
  • Touch overlay polish - analog stick stays in the same place always.

2. Mod Manager refresh and deleted-mod handling (#236)

The Script Mods panel has been folded into the broader Assets section and now behaves more like a live manager instead of a static list.

  • Rescan support - the UI can rescan installed mods without restarting the game.
  • Hot-reload cleanup - deleted mods are reflected correctly instead of lingering in the menu.
  • Mod registry plumbing - new port/mods/ModRegistry.* tracks mod entries for the menu and runtime reload path.

3. Disable HUD option (#246)

A new enhancement lets players hide the in-game HUD.

  • Adds the port-side DisableHUD enhancement and menu checkbox.
  • Includes the decomp-side guards needed for the toggle to actually suppress HUD drawing.

4. Mute on focus loss (#237)

A new focus-control option can mute the game while the window is inactive and restore the previous master volume when focus returns.

  • Uses libultraship's new WindowFocusEvent.
  • The integration fixes a double-focus-loss edge case so the saved volume is not overwritten with the muted value.

5. Android arm64 and armeabi-v7a release APKs

The release now ships separate Android APKs for modern 64-bit devices and older 32-bit ARM devices.

  • Keeps the historical BattleShip-android.apk filename for arm64-v8a.
  • Adds BattleShip-android-armeabi-v7a.apk for 32-bit ARM devices.

Quality-of-Life improvements

  • Training Mode extra-stage scrolling - Training Mode can scroll the extra-stage page correctly, including Android CSS icon support.
  • CSS empty-slot guard - empty P3/P4 fighter slots no longer reactivate into invalid state.
  • Android emulator helper - scripts/android-emulator.sh was expanded for easier local Android iteration.

Release and Packaging

  • TinyCC static-linking on Windows - TinyCC is linked into the Windows modding build to reduce antivirus false-positive risk from shipping the tinycc.dll in the release.
  • TinyCC mod loading from memory - libultraship now supports loading TinyCC mods from memory and pins the TinyCC source revision used by the build.
  • macOS signing and notarization - release builds now import the Developer ID certificate, sign the app, notarize the package, and retry notarization polling when Apple's service is slow.
  • Styled macOS DMGs restored - CI now requires the polished drag-to-Applications DMG window with the background art and larger icons, while still using a timeout so Finder automation cannot hang the release forever.
  • macOS SDL3 bundling - Homebrew's current sdl2 can resolve to sdl2-compat, which loads SDL3 dynamically; the macOS package now bundles libSDL3.0.dylib and the libSDL3.dylib symlink needed on clean Macs.
  • Release artifact matrix cleanup - release builds produce US/JP macOS DMGs, US/JP Linux AppImages, US/JP Windows zips, and both Android APKs.
  • Release checksums and attestations - release artifacts continue to be published with SHA256 sums and provenance attestations.

Bug Fixes

  • Focus-loss volume restore - repeated focus-lost events no longer replace the saved master volume with 0.
  • Android landscape/fullscreen sizing - Android now keeps the activity in the intended orientation and avoids SDL resize behavior that could leave the touch/game area wrong.
  • Training Mode stage-scroll issues - extra Training Mode stages can be reached reliably.
  • P3/P4 CSS null fighter state - empty player slots are skipped instead of being reactivated with invalid fighter data.
  • CSS costume/null-fkind guards - costume lookup paths now guard against unregistered fighter kinds, and reused fighter GObjs have their world position re-applied correctly.
  • Co-Op Classic Master Hand/challenger behavior - partner control and challenger-duel stock/win-loss handling are corrected.
  • macOS "Failed loading SDL3 library" launch crash - release DMGs now include SDL3 when the bundled SDL2 dylib is the sdl2-compat wrapper.
  • Modern libstdc++ compatibility in libultraship - LUS PR #6 adds the missing <cstdint> include and fixes the event ID declaration macro so newer GCC/libstdc++ combinations do not reject extern "C" extern declarations.

Submodule Changes

decomp: 676f840a -> 25f9a8c9

  • 68755588f - fix co-op Master Hand P2 control and 2-player challenger duels.
  • 6c1183086 - skip empty VS fighter slots.
  • 76a034d8b - allow Training Mode extra-stage page scroll.
  • 7bd0cfc77 - add disable-HUD guards.
  • 7783bf83c - fix Android v7a ILP32 decomp compatibility.
  • 25f9a8c9e - merge CSS costume/null-fkind guards from ssb-decomp-re#10.

libultraship: b3da10da -> 58f22ed4

  • ec22b3e2 - pin TinyCC source revision.
  • f11f123a - load TinyCC mods from memory.
  • e4815835 - add WindowFocusEvent.
  • 58f22ed4 - merge GCC 16 / modern libstdc++ compatibility fixes from LUS PR #6.

torch

  • Unchanged: 8060a909.

Contributors

Thanks to @Zorkats for the Mod Manager refresh and focus-loss mute option, @the-outcaster for the Disable HUD option, and @RakugaKid for the Android menu/control improvements.

v1.4.1-hotfix

Choose a tag to compare

@github-actions github-actions released this 18 Jun 03:39

Hotfix: P2 frozen on Master Hand in Co-Op Classic mode, added 2P for challenger fight, added contributors to port credits menu.

I'm really excited to bring this release to everyone. There's a host of new features and quality of life improvements from myself and a lot of other contributors.

NOTE: This release contains a .dll for tiny c, a C compiler by Fabrice Bellard, creator of FFmpeg. This is compiled directly from upstream and might be flagged as a false positive by Windows Defender.

Headline: This is the modding release. It ships a native C mod system that works on Windows, Linux, and macOS, with documentation and example mods. Alongside it: Classic Co-op (2-player local Classic mode), a music shuffler + selection screen, Z-cancel assist options, the hi-res texture pack is supported on Android, and a fix that makes the game fill the whole window.

New Features

1. Native C mod support - cross platform

The big feature. Write mods in C, compiled at runtime through TinyCC, packaged into .o2r, with hot-reload for development and tooling to convert PNG/WAV assets. Brought to you by @Mickemoose, with expansion to cross-platform by me.

  • Engine foundation — runtime TinyCC compilation, .o2r packaging, hot reload, asset converters.
  • Cross-platform hook backend — replaced the Windows-only MinHook with funchook (Windows x64, Linux x64/arm64, macOS arm64) behind the existing per-mod hot-reload chain interface. Bundled-capstone bumped 4.0.2→5.0.1 so it builds on CMake ≥ 4.
  • macOS Apple Silicon detours — lifted all three W^X barriers that blocked runtime prologue patching on signed __TEXT (mach_vm_protect + VM_PROT_COPY, JIT entitlements, Mach-O maxprot rewrite). True three-platform parity.
  • Character mod hooks (#230) — fighter registry + FighterEvent surface, reloc/byteswap support for mod-supplied data, and the CharacterEngine hook path.
  • Engine data exports for mods — gGCCommonLinks accessor and the MP ground-collision data pointer exposed through the mod bridge (stage bounds, fighter list).
  • The event system (port/hooks/, EngineEvent + FighterEvent) ships on every target; only TinyCC scripting is gated off on Android (DISABLE_SCRIPTING).

2. Classic Co-op - 2-player Classic mode (#229)

Bring a friend to play the original Classic mode with you. Friendly fire can be enabled or disabled. Original CSS assets are reused at runtime for a truly native feel. Your P2 appears in the VS screen along with you prior to each stage. The feature is enabled by default, from me..

3. Music shuffler + music selection screen

Randomize the stage background music or select a track yourself from a new in-game selection screen in VS modes. From @the-outcaster

4. Z-cancel assist options (#219)

Checkbox options for Auto Z-Cancel and Flash on Failed Z-Cancel. Practice practice practice! By @the-outcaster

5. Hi-res texture support on Android + in-place .zip packs (#235)

The SSB Reloaded texture pack can now be dropped into your mods folder as the .zip it's distributed as.

On android, you can enable hi-res support in the menu. Download the .zip. Then, on your phone screen, hold the BattleShip icon to select the hi-res pack.

Quality-of-Life improvements

  • Input & controls UI cleanup (#216) — renamed the input/controls tabs and widened the ESC-menu left column for readability. (the-outcaster)
  • Modding guide + worked example (#234) — docs/modding.md: the three extension models (event listeners, function detours, fighter query/override events), a full firing-site event catalog, gotchas, plus the playertint example mod (per-player fighter tint via FighterEnvColorQueryEvent). Makes the new mod system actually discoverable. From @Zorkats
  • Per-PR cross-platform CI build gate (#233) — compiles the ssb64 target on Windows/Linux/macOS for every PR and push to main, catching platform-specific breaks (e.g. Windows-only mod loaders) before review. From @Zorkats

Bug Fixes

  • Game now fills the window — SSB64 bakes a 10px title-safe overscan inset on every side; on a desktop window that showed up as a black frame. Cropped at present time in Gui::DrawGame, with a Crop Overscan Border toggle + H/V sliders under Settings → Enhancements (default on; skipped in pixel-perfect mode).
  • Multi-gamepad "second pad dead" family — plug-and-play port routing no longer reverts on device events; the Nth new pad auto-assigns to the first free port; ports 2–4 get default mappings at init; identical controllers get unique input-editor IDs.
  • Crash-handler lost its backtrace — the readability probe wrote to /dev/null, which never copies from the source buffer, so it reported every address readable; the FP walk then stepped onto a coroutine guard page and SIGBUS'd inside the signal handler. Reworked to probe via a self-pipe (real EFAULT). Coroutine-stack crashes now produce a full backtrace.
  • Yoshi's Story clouds vanished when stage hazards were disabled (#220) — Yoshi's Story is whitelisted from the hazard process-pause and its cloud-evaporation timer is frozen instead of stopped. From @the-outcaster

Contributors

@Zorkats had his first contribution to the project!

Full Changelog: v1.3...v1.4

v1.4

Choose a tag to compare

@github-actions github-actions released this 17 Jun 20:47

I'm really excited to bring this release to everyone. There's a host of new features and quality of life improvements from myself and a lot of other contributors.

Headline: This is the modding release. It ships a native C mod system that works on Windows, Linux, and macOS, with documentation and example mods. Alongside it: Classic Co-op (2-player local Classic mode), a music shuffler + selection screen, Z-cancel assist options, the hi-res texture pack is supported on Android, and a fix that makes the game fill the whole window.

New Features

1. Native C mod support - cross platform

The big feature. Write mods in C, compiled at runtime through TinyCC, packaged into .o2r, with hot-reload for development and tooling to convert PNG/WAV assets. Brought to you by @Mickemoose, with expansion to cross-platform by me.

  • Engine foundation — runtime TinyCC compilation, .o2r packaging, hot reload, asset converters.
  • Cross-platform hook backend — replaced the Windows-only MinHook with funchook (Windows x64, Linux x64/arm64, macOS arm64) behind the existing per-mod hot-reload chain interface. Bundled-capstone bumped 4.0.2→5.0.1 so it builds on CMake ≥ 4.
  • macOS Apple Silicon detours — lifted all three W^X barriers that blocked runtime prologue patching on signed __TEXT (mach_vm_protect + VM_PROT_COPY, JIT entitlements, Mach-O maxprot rewrite). True three-platform parity.
  • Character mod hooks (#230) — fighter registry + FighterEvent surface, reloc/byteswap support for mod-supplied data, and the CharacterEngine hook path.
  • Engine data exports for mods — gGCCommonLinks accessor and the MP ground-collision data pointer exposed through the mod bridge (stage bounds, fighter list).
  • The event system (port/hooks/, EngineEvent + FighterEvent) ships on every target; only TinyCC scripting is gated off on Android (DISABLE_SCRIPTING).

2. Classic Co-op - 2-player Classic mode (#229)

Bring a friend to play the original Classic mode with you. Friendly fire can be enabled or disabled. Original CSS assets are reused at runtime for a truly native feel. Your P2 appears in the VS screen along with you prior to each stage. The feature is enabled by default, from me..

3. Music shuffler + music selection screen

Randomize the stage background music or select a track yourself from a new in-game selection screen in VS modes. From @the-outcaster

4. Z-cancel assist options (#219)

Checkbox options for Auto Z-Cancel and Flash on Failed Z-Cancel. Practice practice practice! By @the-outcaster

5. Hi-res texture support on Android + in-place .zip packs (#235)

The SSB Reloaded texture pack can now be dropped into your mods folder as the .zip it's distributed as.

On android, you can enable hi-res support in the menu. Download the .zip. Then, on your phone screen, hold the BattleShip icon to select the hi-res pack.

Quality-of-Life improvements

  • Input & controls UI cleanup (#216) — renamed the input/controls tabs and widened the ESC-menu left column for readability. (the-outcaster)
  • Modding guide + worked example (#234) — docs/modding.md: the three extension models (event listeners, function detours, fighter query/override events), a full firing-site event catalog, gotchas, plus the playertint example mod (per-player fighter tint via FighterEnvColorQueryEvent). Makes the new mod system actually discoverable. From @Zorkats
  • Per-PR cross-platform CI build gate (#233) — compiles the ssb64 target on Windows/Linux/macOS for every PR and push to main, catching platform-specific breaks (e.g. Windows-only mod loaders) before review. From @Zorkats

Bug Fixes

  • Game now fills the window — SSB64 bakes a 10px title-safe overscan inset on every side; on a desktop window that showed up as a black frame. Cropped at present time in Gui::DrawGame, with a Crop Overscan Border toggle + H/V sliders under Settings → Enhancements (default on; skipped in pixel-perfect mode).
  • Multi-gamepad "second pad dead" family — plug-and-play port routing no longer reverts on device events; the Nth new pad auto-assigns to the first free port; ports 2–4 get default mappings at init; identical controllers get unique input-editor IDs.
  • Crash-handler lost its backtrace — the readability probe wrote to /dev/null, which never copies from the source buffer, so it reported every address readable; the FP walk then stepped onto a coroutine guard page and SIGBUS'd inside the signal handler. Reworked to probe via a self-pipe (real EFAULT). Coroutine-stack crashes now produce a full backtrace.
  • Yoshi's Story clouds vanished when stage hazards were disabled (#220) — Yoshi's Story is whitelisted from the hazard process-pause and its cloud-evaporation timer is frozen instead of stopped. From @the-outcaster

Contributors

@Zorkats had his first contribution to the project!

Full Changelog: v1.3...v1.4

v1.3

Choose a tag to compare

@github-actions github-actions released this 10 Jun 04:17

Headline

No new features this time, just cleanup. This is also Fable's (Mythos) first few commits on the repository, with a full codebase audit. Got a lot done android wise, along with a nice fix on older generated BattleShip.o2r's causing issues with an update on the game. This one is pretty heavy and fun to read through some of these commits. Full tally below. For the near future, I'd like to focus dev time on a nice big new feature.

Fable's Bug Fixes:

libultraship

  • Metal heap overflow (critical, macOS): DrawTriangles had no bounds
    check on the per-frame vertex pool — draw-heavy frames silently wrote past
    a 4.9 MB buffer. Now guarded (drops the draw + logs).
  • Metal GPU leak: one MTLDepthStencilState leaked per depth-mode change
    (constant churn in this game). Released properly.
  • Crash on texture-replacement miss: all 12 ImportTexture* paths
    dereferenced mMaskedTextures.find()->second unguarded. Guarded helper.
  • WASAPI use-after-free (Windows): device-change callback never
    unregistered; Windows could call into a destroyed audio player.
  • Texture cache perf: hash used only the address; bump-heap address
    reuse degraded lookups toward linear scans. Now hashes all key fields.

Port layer

  • Coroutine stacks get mmap PROT_NONE guard pages (macOS/Linux/Android):
    stack overflow is now an immediate diagnosable SIGSEGV instead of silent
    heap corruption. Plus destroy-while-running guards (POSIX UAF / Win32
    thread-kill) and thread_local current-coroutine pointers.
  • Crash handler hardening: the frame-pointer walk now probes memory
    readability (write-to-/dev/null EFAULT trick) before dereferencing — a
    corrupt chain used to re-fault with the signal blocked → silent SIGKILL,
    no log.
  • POSIX shell quoting in first-run extraction ($/backticks in paths),
    save-file padding failure handling, realloc-OOM in the reloc pointer
    table, halfswap-range dedup on the per-joint hot path, deleted a dead
    root os.cpp that duplicated pre-bugfix controller code.
  • Windows updater anchored to the install dir (was CWD — broken for
    Start-Menu launches) + download-URL validation.
  • Audio bridge: ADPCM book field validation (heap overrun on corrupt
    CTL data), per-player BGM buffer allocation.
  • GUI/hires: operator-precedence bug in dump dedup, racy CRC table
    init, ImGui menu empty-vector/null-tooltip crashes, int-overflow guard
    in CSS asset conversion.

Android

  • Use-after-free across Activity relaunch: touch-overlay virtual
    joystick statics survived SDL_Quit; first touch after relaunch hit a
    freed handle. Now reset in PortShutdown.
  • 64 MB leak: Torch's Companion singleton (holding the whole ROM)
    leaked into the game process after extraction. Freed.
  • density|fontScale added to configChanges (multi-window density change
    was recreating the Activity mid-frame), ACTION_CANCEL stuck-stick fix,
    InputManager-listener + menu-poller lifecycle leaks fixed, staged ROM
    actually deleted post-extraction, display bounds queried instead of
    hardcoded 1080p.

And one nice little fix from GPT 5.5

  • [codex] Fix Android ultrawide relaunch support by @JRickey in #226

Full Changelog: v1.2...v1.3

v1.2

Choose a tag to compare

@github-actions github-actions released this 27 May 04:29

Headline

New VS stages! Simply scroll right on stage select in VS mode to find 3 new stages, previously gated by single player only. These include: Final Destination, Metal Caverns, and Battlefield

v1.1

Choose a tag to compare

@github-actions github-actions released this 24 May 16:36

Headline

First Android release. I only have an android emulator to test on, so controllers, suspending the app, and other android specific things I am unable to test on my own. This is a first draft release for the android version, so if you find a problem please open an issue on GitHub.

Full Changelog: v1.0...v1.1

v1.0

Choose a tag to compare

@github-actions github-actions released this 24 May 04:26
58c77e2

Headline

It's the v1.0 release. I finally feel comfortable dropping the -beta suffix and publishing a full v1.0 version.

I am very happy with the drop-off in bug reports, the stability, the quality, and enhanced features in the port.

Feature Highlights

Great new quality of life changes by @the-outcaster. Improved menus, discord rich, comp ruleset, and audio sliders.

Bug Fix Highlights

One linux specific issue with Wayland that was unreported, and one major gameplay visual bug with grabs on sloped surfaces / stages. It was particularly noticeable with pikachu grabbing samus on dreamland. The root cause was a floating point precision issue where the original game handled it gracefully but it was exposed on modern compilers and operating systems. Last visual bug was a misrender on the preview for dreamland in stage select.

  • fix(linux): Wayland icon gate + Zebes acid / effect stale dl_link family by @JRickey in #199
  • fix(grab): port engine-only subset of TC grab-coupling geometry fixes by @JRickey in #204
  • fix(grab): Euler-extract gimbal-lock tolerance — actual fix for the reported grab inversion by @JRickey in #205
  • fix(grab): expand gimbal-lock tolerance to sibling sites + revert PR #204 by @JRickey in #206
  • Fix Dream Land CSS preview water/puddle z-fight by @JRickey in #207

Full Changelog: v0.9.4-beta...v1.0

v0.9.4-beta

Choose a tag to compare

@github-actions github-actions released this 20 May 01:11

Headline

Added support for the high resolution texture pack SSB Reloaded by @GhostlyDark .

  1. Download the BattleShip release of the texture pack here
  2. Open the game,
  3. Open the escape menu
  4. Click the Assets tab at the top
  5. Then click the mods tab on the side
  6. Check enable for the Hi-Res Texture pack
  7. Click the "Open Mods Folder" button to open your folder
  8. Drag and Drop the extracted "SSB Reloaded (BattleShip) folder from the texture pack into your mods folder
  9. Relaunch the game and enjoy!

Huge thanks to @GhostlyDark for his help in bringing support for his pack over to BattleShip. His github release is available here

Other Changes

New Japanese icon for the Japanese executable, provided by @Kriix08

Full Changelog: v0.9.3-beta...v0.9.4-beta