Repository navigation
Releases
OpenHomeNX v0.3.7
OpenHomeNX — What it is
OpenHomeNX is a Pokémon hub for Switch homebrew and R36S/ArkOS:
- 🕹️ ROM launcher with a built-in cover art scraper — browse and launch your whole GBA/GB/GBC library straight from the app, with real 2D/3D box art downloaded automatically for every game.
- 🏦 Local cross-gen bank with self-trade evolution — move any Pokémon between 13 stored formats (Gen 1–9), and evolve trade-only Pokémon (Kadabra, held-item lines…) with no second console needed.
- 🔄 Multi-device save sync via the sync server — pair once, and every device you own stays in sync from then on, automatically.
- 🎒 Backpack — full item editing across generations, not just Pokémon.
What's new in this release
🖥️ Self-hosted sync server, now documented and downloadable
ohnx-hub — the small always-on-machine server behind multi-device sync — is now a first-class part of the project: source in the repo, launchers for Windows/Mac/Linux/Raspberry Pi, downloadable from this release. mDNS auto-discovery, pair once from Settings → Developer → Sync, then every device syncs automatically at every boot: whichever side has more real progress (play time, then Pokédex catches) wins, per game, no manual step after pairing.
🔧 Sync reliability fixes
The automatic boot-time sync had two real bugs that could make a device's own progress get silently ignored: it only ever looked at ROM-imported saves, never the native Switch save sitting next to them, and even when it did notice the native save was ahead, the write landed in a throwaway temp copy instead of the real save. Both fixed — verified end-to-end on hardware (Switch ↔ R36S ↔ hub) with FireRed/LeafGreen, the case most likely to hit it.
🔄 Self-updater: same-version reinstall made reliable
A same-version reinstall (used for testing, or a manual downgrade-then-back) could get silently dropped depending on whether the console's loader actually chainloaded into the staged build — invisible, no error shown. Replaced the guesswork with an explicit marker written only once an update is actually applied, so a pending update is never mistaken for stale leftovers again.
🖼️ Gallery: fixed a stale panel after a background sync
A game whose save just got updated by the sync server could go blank in the preview panel and stay that way until you moved the cursor away and back. Now it refreshes on its own.
Download: OpenHomeNX.nro for Switch, OpenHomeNX-r36s-vX.Y.Z.zip for R36S/ArkOS, ohnx-hub-v0.3.7.zip for the optional sync server (extract anywhere and run the matching launcher script).
OpenHomeNX — Cos'è
OpenHomeNX è un hub Pokémon per homebrew Switch e R36S/ArkOS:
- 🕹️ Launcher ROM con scraper copertine integrato — sfoglia e avvia tutta la tua libreria GBA/GB/GBC direttamente dall'app, con vera box art 2D/3D scaricata in automatico per ogni gioco.
- 🏦 Banca locale cross-gen con evoluzione self-trade — sposta qualsiasi Pokémon tra 13 formati di salvataggio (Gen 1–9), ed evolvi i Pokémon che evolvono solo per scambio (Kadabra, linee con oggetto in mano…) senza bisogno di una seconda console.
- 🔄 Sincronizzazione save multi-dispositivo grazie al server — associa una volta, e ogni dispositivo che possiedi resta sincronizzato da quel momento, in automatico.
- 🎒 Zaino — modifica oggetti completa su tutte le generazioni, non solo Pokémon.
Novità di questa release
🖥️ Server di sincronizzazione auto-ospitato, ora documentato e scaricabile
ohnx-hub — il piccolo server su una macchina sempre accesa dietro la sync multi-dispositivo — è ora parte a tutti gli effetti del progetto: sorgente nel repo, launcher per Windows/Mac/Linux/Raspberry Pi, scaricabile da questa release. Scoperta automatica via mDNS, associazione una tantum da Impostazioni → Sviluppatore → Sync, poi ogni dispositivo si sincronizza da solo a ogni avvio: vince, gioco per gioco, il lato con più progresso reale (tempo di gioco, poi catture Pokédex), nessun passaggio manuale dopo l'associazione.
🔧 Fix affidabilità sincronizzazione
La sincronizzazione automatica all'avvio aveva due bug veri che potevano far ignorare in silenzio il progresso reale di un dispositivo: guardava solo i save importati da ROM, mai il save nativo Switch accanto ad essi, e anche quando si accorgeva che il nativo era avanti, la scrittura finiva in una copia temporanea buttata via invece che nel save vero. Entrambi corretti — verificati punta a punta su hardware reale (Switch ↔ R36S ↔ hub) con Rosso Fuoco/Verde Foglia, il caso più esposto al problema.
🔄 Autoupdater: reinstall a stessa versione ora affidabile
Un reinstall a stessa versione (usato per test, o un downgrade seguito da un ripristino) poteva essere scartato in silenzio a seconda che il loader della console avesse davvero fatto il chainload sulla build in attesa — invisibile, nessun errore mostrato. Sostituita la congettura con un marcatore esplicito scritto solo quando un aggiornamento viene davvero applicato, così un aggiornamento in attesa non viene più scambiato per un avanzo vecchio.
🖼️ Galleria: corretto un pannello bloccato dopo una sync in background
Un gioco il cui save era appena stato aggiornato dal server di sincronizzazione poteva restare con il pannello di anteprima vuoto finché non si spostava il cursore altrove e si tornava indietro. Ora si aggiorna da solo.
Download: OpenHomeNX.nro per Switch, OpenHomeNX-r36s-vX.Y.Z.zip per R36S/ArkOS, ohnx-hub-v0.3.7.zip per il server di sincronizzazione opzionale (estrailo ovunque e lancia lo script corrispondente).
OpenHomeNX v0.3.6
OpenHomeNX — What's new
🎮 New device supported: R36S (ArkOS)
OpenHomeNX now runs natively on R36S and similar ArkOS handhelds, not just Nintendo Switch. The interface has been fully redesigned for the 4:3 format (banks, trade, backpack, Pokémon details), not just scaled — controls are natively mapped to the device's pad.
🔄 Sync between devices
Move your Pokémon between Switch and ArkOS (and back) with no cables or PC: the app compares party, play time and Pokédex progress between local and remote, shows you the differences at a glance, and you pick the direction. If you own both the Switch title and the matching ROM of the same game (FireRed/LeafGreen), a second sync keeps that pair aligned too, with an automatic backup before every copy.
🕹️ Also a ROM launcher
The app isn't just for editing saves anymore: you can now browse and launch your whole GBA/GB/GBC ROM library, even titles without a save yet — handy for seeing everything you have instead of having to play first just to make it show up. Editing features (bank, backpack, trade) stay hidden until a real save exists, but the game is always launchable.
🖼️ Real cover art for ROMs
No more generic tiles: the built-in scraper downloads real 2D and 3D cover art for every imported game. Three styles to choose from — your own local art, 2D, or 3D — updated in the background: the app never freezes while fetching, with a live progress bar and instant cancel at any time.
🎨 Two display modes
"Gallery", a grid view with cover art and an accent color per game, or "Classic", more compact — pick whichever you prefer, consistent across both devices.
🔁 Simulated trade (self-trade)
Evolve trade-only Pokémon locally, with a confirmation screen and a preview of the sprite you'll get.
⚙️ Other refinements
Optional exit confirmation, smarter page navigation, background app updates with a progress bar and instant cancel on both platforms, and several reliability fixes for anyone who owns the same game as both a Switch title and an imported ROM.
Download: OpenHomeNX.nro for Switch, OpenHomeNX-r36s-v0.3.6.zip for R36S/ArkOS (extract to the SD card root).
OpenHomeNX — Novità
🎮 Nuovo dispositivo supportato: R36S (ArkOS)
OpenHomeNX ora gira nativamente anche su R36S e handheld simili con ArkOS, non solo su Nintendo Switch. Interfaccia interamente riadattata al formato 4:3 (banche, scambio, zaino, dettaglio Pokémon), non solo scalata — comandi mappati nativamente sul pad del dispositivo.
🔄 Sincronizzazione tra dispositivi
Passa i tuoi Pokémon da Switch ad ArkOS (e viceversa) senza cavi né PC: l'app confronta squadra, tempo di gioco e progressi Pokédex tra locale e remoto, ti mostra a colpo d'occhio le differenze e tu scegli la direzione giusta. Se possiedi sia il titolo Switch che la ROM corrispondente dello stesso gioco (FireRed/LeafGreen), un secondo tipo di sincronizzazione tiene allineato anche quello, con backup automatico prima di ogni copia.
🕹️ Anche launcher di ROM
L'app non serve solo a modificare i salvataggi: da ora puoi sfogliare e avviare tutta la tua libreria di ROM GBA/GB/GBC, anche quelle senza ancora un salvataggio — utile per scoprire subito tutto quello che hai invece di dover prima giocare per farle comparire. Le funzioni di editing (banca, zaino, scambio) restano nascoste finché non esiste un salvataggio vero, ma il gioco resta sempre avviabile.
🖼️ Copertine vere per le ROM
Basta tile generiche: lo scraper integrato scarica copertine 2D e 3D reali per ogni gioco importato. Tre stili a scelta — copertine tue in locale, 2D o 3D — con aggiornamento in background: niente più blocchi dell'app durante lo scaricamento, barra di progresso live e annullamento immediato in qualsiasi momento.
🎨 Due modalità di visualizzazione
"Galleria", vista a griglia con copertine e colori d'accento per ogni gioco, oppure "Classica", più compatta — scegli quella che preferisci, coerente su entrambi i dispositivi.
🔁 Scambio simulato (self-trade)
Fai evolvere i Pokémon che richiedono lo scambio direttamente in locale, con tanto di conferma e anteprima dello sprite del Pokémon che otterrai.
⚙️ Altre rifiniture
Conferma di uscita opzionale, navigazione tra le pagine più intelligente, aggiornamenti dell'app in background con barra di progresso e annullamento immediato su entrambe le piattaforme, e diversi fix di affidabilità per chi possiede lo stesso gioco sia come titolo Switch che come ROM importata.
Download: OpenHomeNX.nro per Switch, OpenHomeNX-r36s-v0.3.6.zip per R36S/ArkOS (estrarre sulla root della SD card).
v0.3.5
0.3.5: Gen1/2 + DS bags, Gen5 write, USUM/ORAS, Gen3 dex & event fixes
- Backpack: full Gen1/2 GB bag support (Red/Blue/Yellow/Gold/Silver/Crystal) — read/write, gift/take, anomaly scan+fix, per-family tabs; item names from PKHeX era-correct tables.
- Backpack: Gen4/5 DS bags (Diamond/Pearl/Platinum/HGSS/BW/B2W2) with per-game pockets, CRC-preserving writes and item DB.
- Gen5 save write-back (saveDS5): all 24 boxes + party, every BW/B2W2 block CRC recomputed; trade evolution and party editing unlocked for Gen5.
- Gen7 USUM and Gen6 ORAS support: load/save, game detection, learnsets, Pokedex registration/status.
- Pokedex: 3DS (X/Y, SM, ORAS, USUM) register + status; Gen3 RSE fixes (redundant seen copies, National Dex VAR/FLAG, sector write guard, per-bank merge).
- Backpack Gen3: per-game event flag offsets (FRLG/Emerald/RS), Eon Ticket on Emerald now gives item+flag, no phantom bag item; National Dex can be disabled again.
- GBA: save counter alternates between banks (never two identical counters).
- Fix: Pokedex now registered also for direct party transfers.
- Remote sync: FireRed/LeafGreen Switch save fixes, end-to-end checksum verification.
0.3.5: zaini Gen1/2 + DS, scrittura Gen5, USUM/ORAS, fix dex ed eventi Gen3
- Zaino: supporto completo borse Gen1/2 GB (Rosso/Blu/Gialla/Oro/Argento/Cristallo) — lettura/scrittura, regala/riprendi, scansione+fix anomalie, tab per famiglia; nomi oggetto dalle tabelle PKHeX corrette per l'epoca.
- Zaino: borse DS Gen4/5 (Diamante/Perla/Platino/HGSS/BW/B2W2) con tasche per gioco, scritture che preservano i CRC e DB oggetti.
- Scrittura save Gen5 (saveDS5): 24 box + squadra, tutti i CRC dei blocchi BW/B2W2 ricalcolati; evoluzione per scambio e modifica squadra sbloccate per Gen5.
- Supporto Gen7 USUM e Gen6 ORAS: load/save, rilevamento gioco, learnset, registrazione/stato Pokedex.
- Pokedex: registrazione + stato per 3DS (X/Y, SM, ORAS, USUM); fix Gen3 RSE (copie seen ridondanti, VAR/FLAG National Dex, guardia scrittura settori, unione per banco).
- Zaino Gen3: offset flag eventi per gioco (FRLG/Smeraldo/RS), Eon Ticket su Smeraldo ora dà oggetto+flag, niente oggetto fantasma in borsa; National Dex di nuovo disattivabile.
- GBA: il contatore di salvataggio si alterna tra i due banchi (mai due contatori identici).
- Fix: Pokedex registrato anche per trasferimenti diretti in squadra.
- Sync remoto: fix save FireRed/LeafGreen su Switch, verifica checksum end-to-end.
v0.3.4
0.3.4: remote sync + backpack events, dock icons, Pokedex fix
- Remote sync over LAN via Filebrowser (Box Remoto + DevSync): picker + 3 big buttons (no spam), token reuse (2h), fallback for Filebrowser root scope, Italian feminine forms, ROM handling with save+ROM co-location in sdmc:/roms, immediate GUI refresh, HTTP 400 encoding fix, LAN scan cancellable with B.
- Backpack: FRLG Aurora/Mistico and RSE/Smeraldo Aurora/Mistico/OldSeaMap/Eon + Ruby/Sapphire Eon Ticket + Mystery Event (Southern Island) and National Dex as events — save flags at SaveBlock1+0xEE0 and SaveBlock2+0x19, no ROM patch needed.
- Dock: Box Remoto / DevSync icons + status-bar link indicator, stale device watchdog, fix for lost Box Remoto uploads.
- Pokedex: fix for R/S/E not updating when moving from cross-gen bank.
- GBC Crystal/Silver 32816 byte save with RTC extra now handled.
0.3.4: sync remoto + eventi zaino, icone dock, fix Pokedex
- Sync remoto via Filebrowser con picker + 3 bottoni, riuso token, fallback, forme femminili, gestione ROM, ecc.
- Zaino: eventi FRLG/RSE, Mystery Event, National Dex come eventi.
- Dock: icone Box Remoto/DevSync + indicatore link.
- Pokedex: fix per R/S/E da banca cross-gen.
- GBC Crystal/Silver 32816 byte con extra RTC ora gestito.
v0.3.3
0.3.3: dock reorder + i18n dock labels, cross-gen transfer polish, self-trade, national dex unlock
- Self-trade + trade item display fix + national dex unlock
- Dock: persistent bottom dock, reorder via Y with jelly animation, ZL+ZR on triggers, dock to first icon
- Unified selector focus (GSFocus) + dock settings in Impostazioni > Aspetto
- Dock popup SaveMenu/Trade in Classic layout + i18n dock labels with shadow + Zoom/Radial menu hidden in Gallery layout
- fix: Spring/jelly animation for hidden rows in Settings > Appearance
0.3.3: riordino dock + etichette dock i18n, rifiniture cross-gen, self-trade, undo national dex
- Self-trade + fix visualizzazione oggetto di scambio + unlock national dex
- Dock: dock inferiore persistente, riordino con Y + animazione jelly, ZL+ZR sui trigger, dock verso prima icona
- Focus selettore unificato (GSFocus) + dock in Impostazioni > Aspetto
- Popup dock SaveMenu/Trade in layout Classica + etichette dock i18n con ombra + voci Zoom/Menu radiale nascoste in layout Galleria
- fix: animazione molla/jelly per le righe nascoste in Impostazioni > Aspetto
v0.3.2
0.3.2: Gen3 backpack (RSE/FRLG), commitSave safe, log trim, exit hook
- Gen3 backpack: catalog tabs (Balls/MN/MT/Consumables/Special/Berries) on the left; right side shows game list then the chosen game's REAL bag; atomic gifting (max stack / Base=Key protected), one-time backup per game, persist+commit treated as failure; anomaly scan + journal per {item,pocket}, fix with confirmation; fix opening on non-backpack games, takeBack per pocket, stock-zero clears, qty clamped, audit focus forced to left
- commitSave() now returns bool: failure no longer silent
- debug.log: trim in place (no .tail) + clearLog
- main: applet OnExitRequest hook -> clean shutdown (fix hbl crash)
Bugfixes included in this build:
- fix: party 6 slots (navigation with gaps)
- fix: commitSave only on save:/ (sdmc saves no longer fail)
0.3.2: zaino Gen3 (RSE/FRLG), commitSave sicuro, log trim, exit hook
- zaino Gen3: catalogo a tab (Sfere/MN/MT/Consumabili/Speciali/Bacche) a sinistra; destra lista giochi poi zaino VERO del gioco scelto; regalo atomico (stack max / Base=Key protetto), backup una-tantum per gioco, persist+commit come fallimento; verifica anomalie + giornale per {item,tasca}, fix con conferma; fix apertura su gioco non-zaino, takeBack per tasca, stock-zero svuota, qty clampata, focus verifica
- commitSave() ora ritorna bool: fallimento non più silenzioso
- debug.log: trim in place (niente .tail) + clearLog
- main: hook applet OnExitRequest -> shutdown pulito (fix crash hbl)
Bugfix inclusi in questo build:
- fix: party 6 slot (navigazione con buchi)
- fix: commitSave solo su save:/ (salvataggi su sdmc non falliscono più)
0.3.1.1
0.3.1.1 — cfg fixes & gallery preload
- Fixed settings writes on existing files (FatFs truncate).
- Gallery preloads disk cache at boot (no more pop-in).
- Unified update.cfg lookup.
0.3.1.1 — fix cfg e preload galleria
- Sistemate le scritture dei cfg su file esistenti (truncate FatFs).
- La galleria precarica la cache a boot (niente pop-in).
- Lookup update.cfg unificato.
0.3.1
0.3.1 — Launcher & beta channel
- Install launcher in Settings → System (works in applet mode too).
- Update channel Stable/Beta in Settings → Update.
- Classic RSE zoom fix; update bar always reaches 100%.
0.3.1 — Launcher e canale beta
- Installa launcher in Impostazioni → Sistema (anche in applet).
- Canale update Stabile/Beta in Impostazioni → Aggiornamento.
- Fix zoom RSE in classica; barra update sempre al 100%.
0.3.0
0.3.0 — New Gallery mode & other optimizations
- Gallery default on first launch (list + preview with party/OT/Pokédex); Classic remains selectable in Settings → Appearance.
- Favorites: ZR in Gallery toggles star (accent color), stable order on top (favorites.cfg).
- Zoom fix: fixed bar, Stick/←→ adjust, contextual hint.
- README reorganized 1:1 EN/IT + gallery/classic screenshots.
0.3.0 — nuova modalità grafica e altre ottimizzazioni
- Galleria default alla prima apertura (lista + preview con party/OT/Pokédex); Classica resta selezionabile da Impostazioni → Aspetto.
- Preferiti: ZR in Galleria toggla stella (colore accent), ordine stabile in cima (favorites.cfg).
- Fix zoom: barra fissa, Stick/←→ regolano, hint contestuale.
- README riorganizzato 1:1 EN/IT + screenshot galleria/classica.
v0.2.98
About: riga GB/GBC/GBA, descrizioni piu leggibili. Dettaglio mon spaziato.