Repository navigation
Releases: JRickey/BattleShip
Release list
v1.6
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 byG_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_VTXorG_SETTIMGcommands 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
0x0Eare no longer misread as N64 segmented addresses, fixing an ASLR-dependent intro crash shared by DirectX and OpenGL. - Deterministic N64 trigonometry — game
sinf/cosfcalls 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_CMPdepth-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
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
- @quarrel07 made their first contribution in #252
Full Changelog: v1.5...v1.5.1
v1.5
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
DisableHUDenhancement 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.apkfilename forarm64-v8a. - Adds
BattleShip-android-armeabi-v7a.apkfor 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.shwas 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
sdl2can resolve tosdl2-compat, which loads SDL3 dynamically; the macOS package now bundleslibSDL3.0.dyliband thelibSDL3.dylibsymlink 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 rejectextern "C" externdeclarations.
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 fromssb-decomp-re#10.
libultraship: b3da10da -> 58f22ed4
ec22b3e2- pin TinyCC source revision.f11f123a- load TinyCC mods from memory.e4815835- addWindowFocusEvent.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
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,
.o2rpackaging, 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-Omaxprotrewrite). True three-platform parity. - Character mod hooks (#230) — fighter registry +
FighterEventsurface, reloc/byteswap support for mod-supplied data, and theCharacterEnginehook path. - Engine data exports for mods —
gGCCommonLinksaccessor 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 viaFighterEnvColorQueryEvent). Makes the new mod system actually discoverable. From @Zorkats - Per-PR cross-platform CI build gate (#233) — compiles the
ssb64target 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 aCrop Overscan Bordertoggle + 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 (realEFAULT). 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
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,
.o2rpackaging, 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-Omaxprotrewrite). True three-platform parity. - Character mod hooks (#230) — fighter registry +
FighterEventsurface, reloc/byteswap support for mod-supplied data, and theCharacterEnginehook path. - Engine data exports for mods —
gGCCommonLinksaccessor 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 viaFighterEnvColorQueryEvent). Makes the new mod system actually discoverable. From @Zorkats - Per-PR cross-platform CI build gate (#233) — compiles the
ssb64target 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 aCrop Overscan Bordertoggle + 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 (realEFAULT). 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
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
dereferencedmMaskedTextures.find()->secondunguarded. 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|fontScaleadded 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
Full Changelog: v1.2...v1.3
v1.2
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
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
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.
- ESC Menu Revamp (rebased from #170) by @the-outcaster in #200
- Discord Rich Presence (rebased from #173) by @the-outcaster in #201
- Competitive Ruleset + QoL toggles (rebased from #196) by @the-outcaster in #202
- BGM/SFX/Voice volume sliders + Master (rebased from #162) by @the-outcaster in #203
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
Headline
Added support for the high resolution texture pack SSB Reloaded by @GhostlyDark .
- Download the BattleShip release of the texture pack here
- Open the game,
- Open the escape menu
- Click the Assets tab at the top
- Then click the mods tab on the side
- Check enable for the Hi-Res Texture pack
- Click the "Open Mods Folder" button to open your folder
- Drag and Drop the extracted "SSB Reloaded (BattleShip) folder from the texture pack into your mods folder
- 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