Skip to content

V.03: Paprium: fix 0x81 decompression (subway etc.) + 48kHz CDDA playback

Latest

Choose a tag to compare

@MisterPezz82 MisterPezz82 released this 21 Jun 23:12

This is a hacky way to experience Paprium (WaterMelon) on MiSTer — not a faithful reproduction of the cartridge. Paprium's custom DATENMEISTER chipset is not reproduced. This port takes the same approach as the EverDrive Pro workaround: it runs the mega-ppm replacement MCU firmware and uses MD+ CDDA for the music instead of the original DT128M16VA1LT chipset. Think of it as "Paprium, EverDrive-Pro style, on MiSTer."

With that understood, it is hardware-verified on DE10-Nano: it boots, renders correctly, plays CDDA background music, and plays the full per-channel cartridge sound effects. The SVP chip (Virtua Racing) is retained. (managed to make it all fit)

Changelog

Latest build (2026-06-22)

v0.3

  • Subway / graphics (firmware decompressor):swapped a core decompression routine - Rewrote the firmware for the MCU using fix from
    FBNeo's correct 0x81 LZ decompressor in the rebuilt firmware (the Krikzz fix mega-ppm itself doesn't have). - Thanks for Krikzz for pointing me in the correct direction with this

  • CDDA speed/pitch: Music should now play at correct speed and pitch (48 kHz, matching your WAVs) — no more slow-motion/low pitch.

v0.2

  • Battery save now works — Paprium's 4 KB SRAM save persists across power-off (wired into the standard MiSTer .sav path).

  • No more reset workaround — once a save exists, the fake 8-bit intro is skipped automatically on boot.

  • CDDA +10 dB — background music boosted so it sits up with the cartridge SFX.

Initial release (2026-06-21)

First hardware-verified build: boot, correct graphics, CDDA music, full per-channel cartridge SFX, SVP retained.
Saves
Saves persist normally now. Turn on Autosave in the OSD (or use OSD → Save Backup RAM after playing) so progress is written to the .sav. After your first save, the fake 8-bit intro is skipped automatically on boot — no reset needed.

How it works
Console vs MCU split. The 68000 / VDP-DMA / Z80 use the core's stock cartridge path on SDRAM port 1. The Paprium MCU (NEORV32) uses SDRAM port 2 (normally the SVP's). They share one writable SDRAM-backed 8 MiB ROM plus a 2 MiB decompression workspace; the 68000-MCU mailbox and MCU work RAM are on-chip.

Decompression / graphics. The MCU decompresses graphics into the workspace; the 68000/VDP read them back through the streaming window via an auto-incrementing pointer.

Background music (CDDA). The MCU's native MD+ commands are bridged to the core's MD+ engine and CDDA mixer by paprium_mdp_adapter.sv, with an EverDrive-FIFO stub so mdp_init() completes. No ROM audio conversion is required.

Sound effects. Paprium's own self-contained cartridge PCM engine (eight channels, each with a FIFO and per-channel sample-rate / pitch / pan / volume) is ported as audio_sfx.sv and mixed with FM/PSG and CDDA at the top level.

ROM and WAV assets are not included. Bring your own Paprium dump and audio files.