Skip to content

Releases: MatyMeatBoy/SS2Recomp

v0.2.4 — Direct EXE package and online development groundwork

Choose a tag to compare

@MatyMeatBoy MatyMeatBoy released this 12 Oct 20:04

v0.2.4 — Direct EXE package and online development groundwork

The Windows ZIP now opens directly with ShiningSoul2Recomp.exe at its root.
It contains no BAT entry points or nested build directory. SDL2, assets and Mods
stay beside the executable; internal recovery helpers remain under tools.
The experimental launcher locates those helpers in both the release layout
and existing developer builds.

All v0.2.3 RAW palette and adaptive widescreen fixes are retained, including
the state-5 field margins and mirrored equipment background.

Online development

The source now includes the decomp-backed EU link-block/checksum contract, a
bounded application-message assembler, and an opt-in streaming/prediction
backend with authoritative recovery. This backend is disabled by default;
ordinary experimental rooms retain their existing behavior. Discord-linked
rooms do not yet use the new backend.

Portable rollback tests passed 1,619 corrections across 2–4 players. Four native
instances also passed changing inputs with added local proxy delay and a
separate three-second network interruption, finishing with identical snapshots.
These are boot/menu tests, not sustained online dungeon combat or a claim of
perfect responsiveness. See docs/MODERN_ONLINE.md for activation and limits.

Start

Extract the complete ZIP, open ShiningSoul2Recomp.exe, select your own verified
Europe ROM and original GBA BIOS, then use the launcher. No ROM, BIOS, save,
credentials or private logs are included. Preserve your existing user data.

v0.2.3 — Adaptive widescreen refinements and RAW colors

Choose a tag to compare

@MatyMeatBoy MatyMeatBoy released this 12 Oct 19:53

v0.2.3 — Adaptive widescreen refinements and RAW colors

Rapid horizontal movement could display unrelated scenery or floating signs in
the expanded field margins. The authored-map renderer now reconciles the game's
full camera with the current scanline scroll, preventing a 256-pixel ring jump
during camera updates. Native game logic and the original viewport are unchanged.

Presentation

  • The equipment menu's animated decorative background now reflects into both
    widescreen margins as part of the main Adaptive Widescreen package.
  • Inventory cells, cursor and statistics retain their original positions.
  • Field transitions mask the expanded scenery while the original game closes
    its scene windows; sprites keep correct coordinates at the right screen edge.
  • RAW is the default palette mode, including launches that bypass the launcher.
  • The retired separate equipment-background package is removed from new builds.

Validation

  • Supplied state 5: 480 continuous movement frames at 480x160 and 1,800 at
    284x160, reversing direction without releasing movement.
  • The 480-frame comparison found no changes in guest-state hashes or native
    viewport pixel hashes.
  • Both traces reported FULLY_STATIC with no dispatch misses or interpreted instructions.
  • PPU regression fixtures passed camera/scroll phase mismatches, mirrored
    inventory pixels, UI isolation, right-edge sprites and closed scene masks.
  • Equipment-menu enabled/disabled comparison: 300 frames with matching guest
    and native viewport hashes, as documented in the equipment validation report.
  • Final release executable: a further 480-frame state-5 trace passed. Four
    native experimental peers recovered from a three-second network cut at
    tick 45 and completed tick 120 with identical final snapshots.

These checks cover the recorded routes, not every map or the entire game.

Online status

Existing experimental LAN/Hamachi recovery and Discord-linked recomp-net lobbies
remain available. This release does not introduce the new decomp-backed online
architecture. Existing confirmed-input play may wait or slow down under network
latency. Modern asynchronous gameplay synchronization is a separate development
effort; no zero-latency or seamless-reconnection claim is made here.

Installation

Extract the full ZIP and open build/ShiningSoul2Recomp.exe. Supply your own
verified Europe ROM and original GBA BIOS, then enable Adaptive Widescreen in
Mods. Keep your existing saves and credentials separately when updating.

The ZIP excludes ROMs, BIOS dumps, user saves, save states, credentials and logs.

v0.2.2 — Salas experimentales y conexiones ICE

Choose a tag to compare

@MatyMeatBoy MatyMeatBoy released this 12 Oct 06:42

v0.2.2 — Salas experimentales y conexiones ICE

Crear una sala experimental con un puerto ocupado cerraba el launcher y el
error quedaba en un registro oculto. Ahora se comprueba el puerto antes de salir
del formulario: puedes cambiarlo y reintentar allí mismo. Los fallos posteriores
del supervisor muestran un aviso con los registros.

LAN / Hamachi

Abre build/ShiningSoul2Recomp.exe y Netplay (experimental). El anfitrión
selecciona 2–4 jugadores y crea la sala. Cada invitado usa otro asiento, la misma
sala y puerto, y la IPv4 de Hamachi del anfitrión. Para dos instancias en un mismo
PC, crea solamente un anfitrión; la segunda debe entrar como invitado a
127.0.0.1. Si el puerto está ocupado o reservado, elige otro y comunícalo a todos.

La sala inicial cambia a 24683 para separar los archivos de recuperación de
la versión anterior. Conserva los archivos antiguos: esta versión no borra ni
convierte partidas de otra identidad de compilación.

La espera de jugadores y la reconexión muestran un panel en el juego, incluso
en pantalla completa. El perfil sigue siendo TCP con controles confirmados:
pausa mientras falta un participante, conserva checkpoints y admite reentrada.
No promete ausencia de latencia, rollback imperceptible ni migración del host.

Salas de Discord / recomp-net

Se habilita libjuice estático y se incorpora el traspaso de los agentes ICE
conectados del lobby a la sesión GBA. Antes, el motor intentaba abrir UDP por
direcciones convencionales sin adoptar el transporte indicado por el launcher.
Ahora conserva los agentes hasta que el motor los recibe, valida los asientos y
libera los recursos si no se puede iniciar la sesión.

Validación

  • Dos instancias desde el launcher experimental: 90 ticks, cierre correcto y
    estados finales idénticos.
  • Cuatro instancias desde el launcher experimental: 120 ticks, corte de red de
    tres segundos y recuperación con estados finales idénticos.
  • Puerto ocupado: error visible en el formulario; el launcher permanece abierto.
  • Prueba de biblioteca ICE: tres sesiones adoptan las conexiones de la sala y
    los invitados intercambian datagramas a través del host.
  • Lobby online real: dos instancias en el mismo PC, login almacenado, conexión
    ICE, vista 16:9 y checkpoint confirmado idéntico en tick 120.

Estas pruebas breves no equivalen a una sesión larga de combate entre países.
ROM, BIOS, partidas, credenciales y registros privados no forman parte del ZIP.

v0.2.1 — Launcher con netplay experimental LAN/Hamachi

Choose a tag to compare

@MatyMeatBoy MatyMeatBoy released this 11 Oct 20:24

v0.2.1 — Netplay experimental dentro del launcher

Esta versión reúne la configuración LAN/Hamachi y la recuperación automática
en el botón Netplay (experimental). No hace falta ejecutar BAT de anfitrión,
invitado ni Online Seguro. El botón NETPLAY conserva las salas de recomp-net
y el inicio de sesión con Discord; ese transporte sigue siendo independiente
del nuevo perfil recuperable.

Para jugar hoy

  1. Todos descargan y extraen el ZIP completo, usando la misma versión y sus
    propias ROM europea y BIOS. Ejecutan build/ShiningSoul2Recomp.exe o el acceso
    Jugar ShiningSoul2Recomp.bat.
  2. Para Hamachi, todos entran a la misma red privada y permiten el programa en
    el firewall de esa red. Abren Netplay (experimental).
  3. El anfitrión elige la cantidad de jugadores, Anfitrión (jugador 1) y
    Crear sala. Comparte su IPv4 de Hamachi, ID de sala y puerto TCP.
  4. Cada invitado elige la misma cantidad de jugadores, sala y puerto, su asiento
    distinto e introduce la IP del anfitrión. Pulsa Conectar.
  5. Una vez presentes todos, entran al multijugador dentro del juego y aceptan.

Los valores iniciales son sala 24681 y puerto 19740. Para empezar otra
partida, o si ven un error de identidad tras actualizar, elijan otra sala.
Para retomar una sala, conserven build/netplay/recovery y sus credenciales.

Cambios

  • Panel integrado para 2–4 jugadores, asiento, IP/DNS, sala, puerto y vista.
  • Vista 16:9 inicialmente seleccionada desde el botón experimental.
  • Supervisor interno que vuelve a iniciar la sesión tras un crash de Windows.
    Los cierres normales son voluntarios y no se relanzan.
  • Logs del supervisor y del juego junto a los archivos privados de recuperación.
  • Portada original solicitada, reemplazando la ilustración anterior.
  • El ZIP incluye imágenes, fuentes y avisos del launcher para que funcione en
    otro PC. Se retiran los BAT online separados del paquete y del repositorio.
  • Parches de interfaz y runtime conservados en el repositorio para reconstruir.

Pruebas y límites

Se verifican arranque desde el launcher oculto, recuperación tras crash y
comparación de estados completos. La evidencia y reproducción están en
NETPLAY_VALIDATION.md.

El modo experimental es TCP directo para LAN/VPN/Hamachi. El botón NETPLAY
utiliza el transporte anterior para las salas de Internet: no hereda esta
recuperación. No se ha validado una partida entre casas ni Discord en vivo.
Durante un corte se pausa; una conexión lenta puede generar retraso. El host
original debe volver; todavía no hay migración automática del host.

ROM, BIOS, partidas, estados y credenciales no se incluyen. Las licencias de
dependencias y recursos se distribuyen con el paquete; gbarecomp conserva
PolyForm Noncommercial 1.0.0. No se atribuye FULLY_STATIC a estas pruebas
multijugador sin un reporte de cobertura correspondiente.

v0.2.0 — Netplay directo con recuperación automática

Choose a tag to compare

@MatyMeatBoy MatyMeatBoy released this 11 Oct 19:54

v0.2.0 — Recuperación automática de salas

Release experimental para Windows x64. Si un jugador pierde la conexión, la sala
pausa los avances confirmados y espera su regreso. Al reconectar, todos recuperan
el mismo estado completo de las consolas y del cable. Los demás jugadores no
necesitan crear otra partida.

Cambios

  • Nuevo perfil directo TCP con --netplay-safe, para 2–4 jugadores.
  • Confirmación de controles y comparación de estados antes de confirmar cada frame.
  • Restauración automática ante una divergencia transitoria; los errores persistentes
    se detienen explícitamente en lugar de continuar partidas diferentes.
  • Checkpoints atómicos y diario de controles confirmado en disco: el host original
    puede reiniciarse y reconstruir la sesión, conservando sus archivos.
  • Reconexión con credenciales de asiento, comprobación de build, ROM y BIOS, y
    generaciones que descartan mensajes antiguos.
  • Los BAT online supervisan el proceso y lo reinician tras un crash de Windows.
    Cerrar la ventana voluntariamente no provoca un reinicio.
  • Nuevos Online Host.bat y Online Invitado.bat, con parámetros de sala,
    número de jugadores y asiento. Colores originales y vista 16:9 sin estirar.

Uso

Extrae todo el ZIP. Abre primero Jugar ShiningSoul2Recomp.bat y selecciona tu
propia ROM europea y BIOS. Para dos jugadores, el anfitrión abre Online Host.bat
y el invitado abre Online Invitado.bat e introduce la IP alcanzable del host.
Hamachi sirve como red privada; permite el puerto TCP 19740 en el firewall.

Para cuatro jugadores, desde una terminal en la carpeta extraída:

"Online Host.bat" -Players 4 -Session 24680
"Online Invitado.bat" -Players 4 -Seat 1 -Session 24680 -HostAddress 25.x.x.x

Los otros invitados usan -Seat 2 y -Seat 3. Todos deben usar la misma versión,
ROM, BIOS, cantidad de jugadores e ID de sala. Conserva build/netplay/recovery;
usa otro -Session para empezar una sala nueva. No compartas las credenciales.

Validación y límites

Pasaron las pruebas locales de reinicio del host (3 consolas), divergencia
provocada (3), reentrada de invitado (4), crash con reinicio automático (2) y
corte TCP de 65 segundos (3). En cada ejecución los estados finales completos
coincidieron entre todos los participantes. Las escenas cubren arranque y
selección de clases con controles diferentes; no combate enlazado prolongado.

Consulta las pruebas y
el protocolo para escenarios, resultados y reproducción.
Las pruebas locales no equivalen a una sesión prolongada entre casas.

Este perfil confirma cada frame: una conexión lenta puede introducir retraso;
no se promete rollback imperceptible. El host original debe regresar con sus
archivos y una dirección alcanzable. No hay migración del host a otro PC.
Lobby, relay y Discord conservan el transporte anterior; esta recuperación se
aplica al modo directo. Faltan pruebas de combate prolongado y Hamachi real.

El ZIP contiene ejecutables y configuración pública; no incluye ROM, BIOS,
partidas, savestates ni credenciales. La recompilación y el motor de ejecución
provienen de gbarecomp y sus dependencias; no se afirma cobertura FULLY_STATIC
para estos escenarios multijugador.
Las licencias de dependencias se incluyen en licenses; gbarecomp utiliza
PolyForm Noncommercial 1.0.0 y mantiene sus propios términos.

ShiningSoul2Recomp v0.1.1

Choose a tag to compare

@MatyMeatBoy MatyMeatBoy released this 11 Oct 09:32

ShiningSoul2Recomp v0.1.1 — 2026-10-11

Release visual y de netplay para Shining Soul II Europe AU2P.

Incluido

  • Ejecutable Windows x64 recompilado estáticamente.
  • Launcher basado en recomp-ui para elegir ROM, BIOS, ajustes y mods.
  • Vista adaptativa 16:9 en escenas de campo, con mapa real a izquierda y
    derecha del área GBA original.
  • HUD y paneles laterales reposicionados sin deformar sprites.
  • Compatibilidad de mapas tanto descomprimidos en EWRAM como referenciados
    directamente desde ROM.
  • Netplay directo de 2, 3 y 4 jugadores sobre el cable emulado.
  • Modo delay-sync para sesiones grandes y modo rollback seleccionable.
  • Checkpoints emparejados para guardar y reanudar una sesión completa.
  • Validación de identidad de ROM, BIOS, compilación y configuración de cable.
  • Pruebas silenciosas reproducibles para vista, transporte, pérdida, jitter y
    rollback.
  • Portada propia del launcher con identidad ShiningSoul2Recomp; se eliminaron
    referencias visuales y textuales heredadas de otros proyectos.

Resultados de validación

Se ejecutaron cuatro procesos independientes en loopback. Cada proceso simuló
cuatro consolas y usó un asiento distinto. En delay-sync y rollback se probaron
240 ticks con 45 ms de latencia, ±15 ms de jitter y 1,5 % de pérdida simulada.
Los cuatro procesos terminaron correctamente y produjeron el mismo checkpoint
emparejado, byte por byte.

La prueba de vista cargó el savestate de una zona con escenario real fuera de
los 240 píxeles nativos. El proveedor verificó tres mapas de 90x40 tiles y una
cámara común; las capturas mostraron contenido distinto al desplazarse a la
izquierda y a la derecha. Los estados de prueba adicionales también terminaron
con FULLY_STATIC y cero dispatch misses.

Limitaciones conocidas

  • El BIOS y la ROM deben ser proporcionados por cada usuario.
  • El netplay entre PCs reales todavía necesita una sesión externa prolongada;
    la prueba publicada aquí es una simulación de red local con impedimentos.
  • Menús, diálogos y cinemáticas que no exponen un mapa de campo compatible se
    muestran centrados dentro de la vista ancha.
  • La reconexión y el reanudar desde un checkpoint están implementados en la
    infraestructura, pero requieren validación con una caída real durante una
    partida de cuatro PCs.
  • El modo rollback de cuatro jugadores es experimental; delay-sync es el modo
    recomendado para una primera sesión.

Instalación legal

No se distribuyen ROM, BIOS, saves, savestates ni dumps derivados. Consulta
README.md para hashes requeridos y la configuración de red.