Skip to content

Repository files navigation

Future Retro Fusion — ProTracker 2.3F CAMD + Picasso96 RTG

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

What Future Retro Fusion adds

CAMD / USB MIDI

  • 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.

Picasso96 RTG output

  • 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.

Native display behavior reconstructed for RTG

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.

Cursor and text-entry restoration

  • 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.

Fullscreen ↔ Workbench window mode

  • 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.

v2.14.4 window/input/VRAM safety work

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.

Proven build state

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.

Repository layout

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.

Build

Requirements

  • Linux or another host capable of running the patch scripts.
  • Python 3.
  • vasmm68k_mot with Amiga hunk output support.
  • A clone of the upstream 8bitbubsy/pt23f repository.

Bootstrap the upstream source:

./bootstrap_upstream.sh

Then 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.sh

The build pipeline reconstructs all earlier FRF stages before applying the newest patch, and performs a large structural preflight before invoking vasm.

Design goals

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.

Credits and upstream

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.

Licensing

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

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

About

Future Retro Fusion ProTracker 2.3F: CAMD USB MIDI, low-latency scheduling, Picasso96 RTG and Workbench enhancements for Amiga 68k

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages