Skip to content

Releases: gascarcella/dcb_decomp

Digimon Digital Card Battle PC port v0.1.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 11:30
198ca25

The launcher and the PC port of Digimon Digital Card Battle, built from juandav's decompilation (ReGame-Labs/dcb_decomp) on psxstack, for Linux and for Windows. A work in progress (docs/STATUS.md).
Bring your own disc image of Digimon Digital Card Battle (PS1, USA, SLUS-01328) as a .cue and .bin: the launcher checks its SHA-1. No game data is included.

Linux x86_64: dcb-*-linux-x86_64.AppImage: chmod +x it, then run it (the launcher). Needs glibc 2.39 or newer (Ubuntu 24.04, Fedora 40, Debian 13 or later).
Windows x86_64: dcb-*-windows-x86_64.zip: unzip, run dcb-launcher.exe (unsigned: SmartScreen's "More info", "Run anyway"). Windows 10 or newer. Tested on Linux under Wine only, not yet on real Windows: reports are welcome in the issues.
The .debug file and the -debug.zip are the programs' debug info for crash reports (not needed to play).

What's Changed

  • Set the fork up for the PC port: scripts, CI, CLAUDE.md, docs, psxstack by @gascarcella in #1
  • M0: the port skeleton and the host-compile probe (#2) by @gascarcella in #5
  • docs: the hooking strategy is the s32p typedef; upstream not asked yet by @gascarcella in #6
  • psxstack: pin v0.3.0; the game side without its workarounds by @gascarcella in #7
  • The emulator oracle and the replay scripts (#3) by @gascarcella in #8
  • M1 step 1: the hook header (include/port.h) and the declarations by @gascarcella in #10
  • M1 step 2: pointer casts in subseg, endseg, openseg by @gascarcella in #13
  • M1 step 2: EVOSEG and SUGSEG pointer casts by @gascarcella in #14
  • M1 step 2: src/main's pointer casts and the shared prototypes by @gascarcella in #16
  • M1 step 2: pointer casts in kawseg and saiseg by @gascarcella in #15
  • port/include/gte.h: the 40 GTE macros on psxstack's software GTE by @gascarcella in #9
  • M1 step 2: the overlays' last cast sites by @gascarcella in #17
  • port: the executable's game .bss as generated C (port_bss.py) by @gascarcella in #12
  • M1 step 3: the last host-compile diagnostics (heap, scratchpad, OMD words, script registers, decls, #11) by @gascarcella in #18
  • M1 step 3a: the task scheduler on the host (startup.s's glue over psxstack's fibers) by @gascarcella in #19
  • M1 step 3c: the overlay loader hook, the adapter's probes, the busy-waits by @gascarcella in #21
  • M1 step 4: pin psxstack v0.3.1, the port links and boots headless to the title by @gascarcella in #27
  • M1: checkpoints without an image, serials volatile, the port test gates boot and title (#24) by @gascarcella in #28
  • M1: dialogs are one Dialog on the host; new_game and first_duel run to their end (#23) by @gascarcella in #29
  • Oracle: volatile ranges for never-written heap and the starter card; all four scripts gate the port test (#24) by @gascarcella in #32
  • M2: the port's VRAM and pictures against the emulator's at every checkpoint by @gascarcella in #34
  • M1 closed: psxstack v0.3.3, random_index, the heap aligned on the host, the sanitizer gates CI (#25) by @gascarcella in #35
  • The duel's views and heap sizes on the host: the first round of the tutorial duel runs (#30, #31) by @gascarcella in #38
  • M2: the window build and the launcher, ready for a play-test by @gascarcella in #40
  • M2: align the VRAM dumps on the game's state (scroll position, message arrows), new registration dumps (#33) by @gascarcella in #41
  • Views outside the duel and EVOSEG's TMD readers (#36, #22) by @gascarcella in #42
  • psxstack: pin v0.3.4 by @gascarcella in #43
  • Release path: Windows cross-build, AppImage and Windows zip, draft release on a tag by @gascarcella in #48
  • #26: the opening movie plays at the emulator's pace; the frame gap is the stack's timing stand-ins by @gascarcella in #50
  • first_duel_play: the tutorial duel replayed to its end, presses synchronised on the duel's state (#37) by @gascarcella in #53
  • M4: saves move both ways between the port and the emulator by @gascarcella in #49
  • M3: the emulator's SPU write traces; LIBSND and the SPU replayed on its timeline match them by @gascarcella in #52
  • state.c: the profile's span copies address the struct, not a member (the release build) by @gascarcella in #54

New Contributors

Full Changelog: https://github.com/gascarcella/dcb_decomp/commits/v0.1.0