Future Retro Fusion (FRF) development fork / enhancement stack for ProTracker 2.3F on Amiga 68k.
This project keeps the classic ProTracker workflow and Paula playback path while extending the program for modern accelerated Amiga systems, especially PiStorm/Emu68-style machines with USB MIDI and RTG graphics.
Upstream: ProTracker 2.3F by Olav Sørensen / 8bitbubsy
FRF enhancement series: Future Retro Fusion, 2026
Current development patch set: v2.14.4
Last assembly-verified base: v2.14.2
- CAMD-based MIDI input for modern Amiga MIDI stacks and USB MIDI devices.
- Low-latency MIDI scheduling with a dedicated service path.
- CAMD task priority management with original priority restored on shutdown.
- System realtime/common/SysEx filtering before note handling.
- MIDI-first wake ordering so incoming notes are serviced ahead of RTG refresh work.
- Cooperative MIDI service points during expensive RTG conversion.
- Legacy serial MIDI path retained as a fallback.
- Strict 640×512×8-bit CLUT Picasso96 target.
- Exact 2×2 expansion of ProTracker's native 320×256 display.
- Fast-memory RTG framebuffer rather than consuming Chip RAM.
- Live ProTracker palette translated to the RTG display.
- Native-screen fallback retained if RTG initialization fails.
- Full ProTracker sprite compositing, including editor cursor behavior and edge clipping.
- VU meter gradient palette expansion.
- RTG refresh support during blocking GUI operations.
The native ProTracker UI is not a simple flat bitmap. The FRF renderer reconstructs important Copper-era behavior so the RTG version still looks and behaves like ProTracker:
- Pattern display plane switching based on the active playback position.
- Pattern viewport sourced from
TextBitplane+5560. - Copper modulo/repeat band emulation.
- Bottom pattern-plane cutoff behavior.
- Sampler waveform third-plane mapping restored from logical y=139.
- Sampler repeat/modulo mapping reconstructed.
- Native bottom-row/full-frame handling retained.
- Field-aware editor cursor geometry.
- Three-character note cursor.
- One-character subfield cursor with a one-logical-pixel surround.
- Filename/text-entry caret restoration.
- Live character-by-character P96 presentation while ProTracker is inside blocking text-entry loops.
- Alt+Return switches between private fullscreen RTG and a Workbench window.
- Workbench window uses real Intuition window semantics:
- drag bar,
- depth gadget,
- zoom/minimise-style alternate rectangle,
- GimmeZeroZero inner drawing area,
- exact 640×512 inner target where possible.
- Workbench palette is protected; RGB32 staging avoids modifying the public screen palette.
- Window-relative mouse coordinate support is derived from
GZZMouseX/Y.
The v2.14.4 development patch addresses issues discovered during real Amiga testing of the first Workbench-window implementation:
- Intuition must continue receiving RAWMOUSE events in windowed mode so the real Amiga pointer can move normally.
- Fullscreen mode retains ProTracker's traditional exclusive mouse handling.
- The ProTracker software pointer is suppressed completely in Workbench-window mode.
- Tracker input follows the Intuition pointer only while it is inside the window's inner area.
- Workbench rendering is moved toward normal window/RastPort ownership instead of treating the public screen like a private framebuffer.
- Window close / mode-switch paths explicitly clear mouse state and are designed to avoid stale tracker pixels remaining on the Workbench after exit.
v2.14.4 is the current development patch set and still needs final hardware validation.
The v2.14.2 source generated and assembled successfully with vasm 2.0b / M68k backend:
ptrunback: 182 bytes
ptcode: 155836 bytes
ptcamd: 1762 bytes
ptrtg: 3898 bytes
ptdata: 24728 bytes
ptbssc: 27400 bytes
ptbss: 12574 bytes
P96 RTG V2.14.2 WINDOW + TEXT + SAMPLER + FULLFRAME BUILD PASSED
The v2.14.4 patcher/build scripts in this repository are the next development stage.
apply_camd_usb_midi_v11.py
apply_camd_low_latency_v12_1.py
apply_p96_rtg_v2_10_2_native_controls.py
apply_p96_rtg_v2_11_midi_scheduler.py
apply_p96_rtg_v2_12_dynamic_display_midi.py
apply_p96_rtg_v2_13_1_cursor_window_toggle.py
apply_p96_rtg_v2_14_2_selfcheck_fix.py
apply_p96_rtg_v2_14_4_window_anchor_fix.py
47_build_p96_rtg_v2_14_2_selfcheck_fix.sh
49_build_p96_rtg_v2_14_4_window_anchor_fix.sh
bootstrap_upstream.sh
publish_github.sh
The patches are intentionally staged. Each stage documents and verifies one group of changes rather than hiding the complete modification history inside a monolithic generated source file.
- Linux or another host capable of running the patch scripts.
- Python 3.
vasmm68k_motwith Amiga hunk output support.- A clone of the upstream
8bitbubsy/pt23frepository.
Bootstrap the upstream source:
./bootstrap_upstream.shThen build the current FRF development stack:
chmod +x 49_build_p96_rtg_v2_14_4_window_anchor_fix.sh
./49_build_p96_rtg_v2_14_4_window_anchor_fix.shThe build pipeline reconstructs all earlier FRF stages before applying the newest patch, and performs a large structural preflight before invoking vasm.
Future Retro Fusion's goal with this branch is not to turn ProTracker into a different tracker. The goal is to preserve the original ProTracker feel while making it practical on a modern accelerated Amiga setup:
- Paula remains central to playback.
- Original tracker workflows remain recognizable.
- Native timing/display assumptions are reconstructed rather than casually removed.
- RTG and USB MIDI are integrated without making the classic path disposable.
- Fast-RAM-heavy systems such as PiStorm/Emu68 are treated as first-class targets.
This work is based on ProTracker 2.3F, the continuation/re-source of the classic ProTracker 2 series by Olav Sørensen (8bitbubsy).
Upstream repository:
The upstream project includes major work of its own, including fast-Amiga-safe timing fixes, 128 KiB sample support and many bug fixes. FRF's CAMD/P96 work sits on top of that foundation.
The upstream project is distributed under the BSD 3-Clause License. The original copyright and license terms are retained in LICENSE.
Future Retro Fusion branding identifies this modification/integration series; it does not replace or obscure the upstream authorship.
Future Retro Fusion develops and modernizes classic-computing software, emulators, display pipelines and Amiga-focused tools while preserving the character of the original systems.
GitHub: https://github.com/futureretrofusion
Contact: futureretrofusion1984@gmail.com