Super Smash Bros. arriva su PC con il progetto “BattleShip”, un porting nativo che non si limita a replicare l’esperienza originale ma rappresenta anche un caso concreto di evoluzione tecnologica nello sviluppo software.

A differenza dell’emulazione, per anni unica alternativa per giocare ai titoli Nintendo su hardware diverso da quello originale, questo progetto permette di eseguire il gioco direttamente su computer, sfruttando un’architettura moderna in grado di migliorare prestazioni, compatibilità e possibilità di espansione.
BattleShip è costruito su una decompilazione del gioco originale e utilizza tecnologie come libultraship per il rendering, l’audio e gli input nativi su PC, insieme a strumenti dedicati all’estrazione delle risorse dalla ROM durante la fase di compilazione.
Il risultato è un’applicazione compatibile con macOS (anche su Apple Silicon), Linux e Windows, che non include alcun asset proprietario: tutti i dati appartenenti a Nintendo vengono estratti localmente dall’utente a partire da una ROM specifica, la versione NTSC-U v1.0.
Senza una copia originale del gioco, il progetto non può essere compilato né eseguito, mantenendo così un approccio più corretto dal punto di vista legale.
Uno degli aspetti più sorprendenti è che il porting è stato realizzato interamente con il supporto dell’intelligenza artificiale.
Lo sviluppatore JRickey ha spiegato che il progetto ha richiesto poco più di 25 giorni di lavoro, durante i quali agenti AI hanno generato, testato e migliorato gran parte del codice in autonomia.
Il ruolo umano si è concentrato principalmente sulla supervisione, sull’organizzazione e sulla gestione del flusso di sviluppo.
Questo approccio dimostra come strumenti avanzati possano accelerare enormemente processi complessi, pur basandosi su fondamenta costruite negli anni dalla community, come la decompilazione, il motore grafico e l’estrazione degli asset.
Dal punto di vista tecnico, il progetto è strutturato su tre livelli distinti: il codice originale decompilato, che mantiene la logica del gioco; un livello intermedio che adatta le funzionalità dell’hardware Nintendo 64 agli standard moderni; e infine un runtime nativo per PC che gestisce rendering, audio e input.
Le risorse del gioco non vengono lette direttamente dalla ROM durante l’esecuzione, ma vengono convertite in un formato ottimizzato durante la build e poi caricate dinamicamente, migliorando l’efficienza generale.
Il processo di sviluppo si è basato fortemente su strumenti automatizzati di debugging e confronto con emulatori, permettendo di individuare e correggere errori complessi come problemi di endianness, gestione dei puntatori e differenze tra compilatori moderni e quelli originali dell’epoca Nintendo 64. Questo metodo ha reso possibile un avanzamento rapido anche senza l’uso di debugger tradizionali.
BattleShip non è solo un porting, ma anche una dimostrazione pratica del potenziale dell’AI nello sviluppo software.
L’obiettivo dello sviluppatore era duplice: imparare concretamente la programmazione in C/C++ e dimostrare che progetti di questa portata possono essere affrontati con strumenti moderni, riducendo drasticamente le barriere di accesso.
Il risultato è un progetto indipendente, non affiliato né supportato da Nintendo, pensato come esperimento tecnico e iniziativa di preservazione.
Guida
È necessaria una copia legale della ROM di Super Smash Bros. versione NTSC-U 1.0:
- SHA-1: e2929e10fccc0aa84e5776227e798abc07cedabf
- MD5: f7c52568a31aadf26e14dc2b6416b2ed
Al primo avvio, la procedura guidata integrata nell’app chiederà di trascinare la ROM in formato .z64 / .v64 / .n64. Le risorse verranno estratte una sola volta e salvate localmente nella cache, quindi non sarà necessario fornire nuovamente la ROM in seguito.
Nessun dato di proprietà Nintendo è inclusa o distribuita con questa versione. Se non si possiede la ROM, questo software non può essere utilizzato.
Changelog
Patch rilasciata sopra la v0.5-beta — risolve il problema #43: il file .dmg macOS della v0.5-beta andava in crash all’avvio su qualsiasi Mac che non avesse esattamente la stessa configurazione Homebrew dello sviluppatore, perché package-macos.sh distribuiva il binario con percorsi assoluti alle librerie dylib (/opt/homebrew/...) incorporati nei comandi di caricamento.
Ora lo script di packaging include le dylib di Homebrew dentro Contents/Frameworks/ tramite dylibbundler e riscrive gli install_names in @executable_path/../Frameworks/ (694e3cf). Le build Linux e Windows restano invariate rispetto alla v0.5-beta.
Grande rilascio con ottime PR e contributi da parte di @Jameriquiah, @the-outcaster e @Kriix08.
- Sistema di build più robusto basato su CMake, che dovrebbe aiutare chi aveva problemi con lo script PowerShell originale.
- Nuovo menu più allineato a SoH.
- Ora è possibile disattivare il Tap Jump nel nuovo menu!
- Nuove risorse per sostituire quelle scadenti.
Novità: menu ESC in gioco + modernizzazione del sistema di costruzione (PR #37)
@Jameriquiah ha portato il menu ESC di SoH/2S2H e ha riscritto il sistema di build basandolo sui target di CMake. Premere ESC durante il gioco per aprire il nuovo menu: controlli, impostazioni e miglioramenti del gameplay sono tutti lì ora. I vecchi wrapper build.sh / build.ps1 sono stati ritirati a favore di cmake --build build --target ….
- Inclusi i font Montserrat e Inconsolata per il menu, così da avere una tipografia corretta già al primo avvio. (
2a4b61c) - Cinque correzioni successive alla revisione del merge: errore di build su macOS dovuto a narrowing-cast, mismatch dei controlli BeginChild/EndChild, modale ImGui per la conferma della ri-estrazione, pulizia dei commenti nella documentazione e negli script. (
a7e1eb7)
Novità: Primo miglioramento del gameplay specifico per port — Disabilita Tap Jump per porta (PR #39)
@the-outcaster ha contribuito aggiungendo un’opzione per disabilitare il tap-jump per singola porta del controller. L’opzione può essere trovata in ESC → Gameplay.
Definito anche un approccio, con un commit successivo, per mantenere questo tipo di modifiche fuori dal codice decompilato quando possibile. Il modello è il seguente: (CVar registrata in port/enhancements/, accessor richiamato da un unico blocco #ifdef PORT nel file decompilato). (5c3e6bf, 7d8e203)
Illustrazione corretta: il logo BATTLESHIP di Kriix08 (#25)
- L’icona provvisoria e il banner DMG di scarsa qualità sono stati rimossi. Il nuovo splendido logo realizzato da
@Kriix08ora viene utilizzato per l’icona dell’app (PNG/ICNS/ICO) e per il banner dell’installer DMG su macOS. (62105cc)
Audio
Per Claude:
- Il suono Star-KO non produce più quel fastidioso rumore (#38).
fgm_unkveniva interpretato con una struttura errata, quindi i valori float del decadimento dell’inviluppo venivano letti come ~0 → ampiezza costante. È stato sostituito con un parser a stride fisso di 16 byte con corretta conversione dei float da BE a LE. La maggior parte degli effetti sonori era troppo breve per notarlo; il sustain di 150 frame del suono Star-KO lo rendeva invece evidente. (8b76629) - Questo corregge anche il suono errato delle rotolate dei personaggi e una serie di altri problemi audio non tracciati. Il gioco ora dovrebbe suonare molto meglio. Se senti ancora qualche rumore strano o fastidioso, segnala pure un nuovo problema.
Logica di gioco / combattenti
Per Claude:
- Il flash della texture della F-Smash di Pikachu funziona di nuovo (#30). Il primo tentativo di correzione è stato annullato: eseguiva un byte-swap di 8 byte direttamente nel file, corrompendo i token di rilocazione adiacenti nei personaggi in cui il padding finale non era zero (il CSS andava in crash per tutti tranne Pikachu). La correzione finale restituisce un buffer statico di 8 byte con i 6 byte corretti e non modifica mai la memoria del file. (
945889e,1f2b694,435c944) - Risolto anche il problema di “leak” nella macchina a stati della schermata risultati BTT/BTP (#27). Quattro variabili globali di avanzamento (
CommonAdvanceTic,BonusShowNextTic,BonusAdvanceTic,BonusNum) venivano ereditate dallo stage 1P precedente nella schermata risultati BTT — su N64 ogni rientro nella scena azzera la BSS dell’overlay tramite DMA, mentre su PC gli overlay sono linkati staticamente. Sintomo: schermata risultati bloccata con audio in loop. Ora vengono resettate sotto#ifdef PORTinsc1PStageClearInitVars. (6746f3d)
Build / packaging
Per Claude:
Il nuovo flusso di build ha fatto emergere una serie di problemi specifici per piattaforma. Tutte e tre le piattaforme sono state verificate completamente end-to-end prima del rilascio.
Windows
- Errore di parsing di
build.ps1su PowerShell 5.1 (#28). I caratteri non ASCII nello script venivano interpretati come Windows-1252 su installazioni standard di Windows 10/11. Il file è stato ripulito rendendolo ASCII e aggiunto#Requires -Version 5.1per evitare regressioni. Inoltre sono stati rafforzati diversi aspetti: rilevamento degli stub di WindowsApps sia perpython.exeche perpy.exe, modifica diErrorActionPreferenceper evitare che la redirezione dello stderr nativo sopprima messaggi di errore dettagliati, e risolte varie particolarità di PowerShell 5.1. (bec6baa) RealAppBundlePathora è implementato su Windows tramiteGetModuleFileNameW, così che lo zip portatile, estratto in qualsiasi posizione, riesca a risolvere correttamente font e ROM. (6a9197d)- Impostato
CMAKE_INSTALL_PREFIX=BattleShip, così le righe di log mostranoAppBundlePath = BattleShipinvece diC:/Program Files (x86)/ssb64. (ce162df)
Linux / AppImage
- Risoluzione dei percorsi AppImage: è stato spostato
RealAppBundlePathfuori dafirst_run.cpp, così il menu ESC riesce a trovare i font inclusi nel layout di mount di AppImage. (8e622c7) - Le AppImage compilate localmente su distribuzioni della serie DT_RELR (Fedora 38+, Ubuntu 23.10+, Arch, Steam Deck Holo) non vanno più in SIGSEGV durante
_dl_init. Il patchelf 0.15 incluso in linuxdeploy e il binutils 2.34 per lo stripping sono più vecchi delle relocation relative compatte e corrompono.relr.dyn. Ora il sistema rileva l’host e usa il patchelf di sistema con linuxdeploy, saltando il pass di stripping difettoso. La CI (jammy, glibc 2.35) non è interessata. (08972c2)
macOS
- Il file
.dmgnon va più in crash all’avvio su Mac senza la stessa configurazione Homebrew dello sviluppatore (#43).package-macos.shdistribuiva il binario con comandi di caricamento che puntavano a percorsi assoluti tipo/opt/homebrew/opt/sdl2/lib/libSDL2-2.0.0.dylib(ecc.), che dyld non riesce a risolvere su macchine prive di quel prefisso. Ora vengono incluse direttamente nel bundle SDL2 / GLEW / libzip / tinyxml2 / spdlog / fmt e le loro dipendenze transitive dentroContents/Frameworks/tramitedylibbundler, gli install_name vengono riscritti in@executable_path/../Frameworks/, e il bundle viene firmato come unità. Aggiunto anche un controllo in fase di build che fallisce esplicitamente se rimane qualsiasi riferimento a/opt/homebrew. Linux e Windows erano già coperti (linuxdeploy / copia DLL vcpkg), macOS era l’eccezione. (694e3cf) - Fix packaging
.app: il path del sidecar torch era relativo dentro la strutturaContents/MacOSdel bundle, quindi l’estrazione silenziosa si interrompeva conexit 127prima dell’esecuzione di torch. Ora è stato reso un path assoluto. (0ed1ba8) - I font del menu sono stati inclusi nel bundle e copiati in
Contents/Resources/assets/custom/fonts/, così il menu ESC ha finalmente una tipografia corretta. (0ed1ba8)
Cross-platform
- Il path del log per l’estrazione degli asset è stato reso assoluto — il pattern shell
cd workingDir && torch ... > logPathsi rompeva quandologPathera relativo. (8e622c7) - Audit del packaging Linux + Windows: entrambi gli script ora includono
assets/custom/fonts/, in linea con la correzione fatta per macOS. (6a9197d)
Chiusi
#25, #27, #28, #30, #37, #38, #39, #43
Download: Battleship v0.5.1-beta (Windows)
Download: Battleship v0.5.1-beta (Linux AppImage)
Download: Battleship v0.5.1-beta (macOS)
Download: Source code Battleship v0.5.1-beta
Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale. Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.🔥 Prodotti in promozione e articoli più venduti: Xbox Series
Vedi altri prodotti Xbox Series
Ultimo aggiornamento 2026-05-18 / Link di affiliazione / Immagini da Amazon Product Advertising API
![[Scena Switch] Rilasciato Switchroot LineageOS Downloader v1.0.3: download più stabili, fix checksum e nuovi file Android](https://www.biteyourconsole.net/wp-content/uploads/SwitchRootLineageOS-238x178.webp)


![[Scena Switch] Rilasciato Switchroot LineageOS Downloader v1.0.3: download più stabili, fix checksum e nuovi file Android](https://www.biteyourconsole.net/wp-content/uploads/SwitchRootLineageOS-100x75.webp)
