Sonic 3 & Knuckles sprite font — type it, scale it, save it
Output —·Scale 4×
Frame 1/100Gif Motion ROM stock
Letter style
Pixel scale 4×
Alignment
Letter spacing 0
Line spacing 0
Edge padding 0
Palette
Recolours the letters only, never the
background. The custom picker derives the whole ramp — shadow, highlight, outline —
from one face colour, snapped to the Genesis palette's 36-step channels.
SavedSaving keeps the sheet
palette and any per-line assignments together, in this browser only.
Per line
Background
Transparent stays transparent in PNG, WebP and AVIF
Intro
Plays the S&K opening ahead of the text. The Death Egg comes down
onto the volcano while the island rises to meet it, Sonic falls in after, then Knuckles and
the ground slide up from the bottom and he lands — the order the ROM does it in. It all hangs
on Camera_Y_pos_P2: the background, the mountain sprite and the egg's resting place are
all positioned from it, so the egg settles on $F0 − 128 = $70
and stays stuck to the terrain as the scene rides up. Speeds are scaled up from the ROM's,
keeping their ratios; adds 65 frames ahead of the text.
Text position 176Output locks to the Genesis frame, 320×224, and the background
colour swatches no longer apply. 176 is where the ROM puts & KNUCKLES — banner rest
$D4 plus the $5C subtitle offset, less the $80 sprite-space origin. The background also
scrolls up 16px over the first 16 frames, which is V_scroll_value in the original
making room for the subtitle.
Entry distance 96
Initial velocity 4
Acceleration 0.25
Bounciness 0.5
Amplitude 100%
Headroom auto
Timebase
GIF delays are whole centiseconds, so it can hit PAL exactly
(100 frames at 2cs = 2.00s) but can only approximate NTSC by resampling to 83 frames
(1.66s). APNG delays are a fraction, so it expresses 59.92 Hz exactly as 100/5992 —
pick APNG if the timing matters. Video is a real-time capture and is approximate either way.
Defaults are read from Obj_TitleBanner_Main in the Sonic 3 & Knuckles
disassembly: 96px entry, 4px/frame initial velocity, 0.25px/frame² spring, velocity halved
on each zero crossing. Stock values settle in 100 frames.
GIF and APNG are exact and
lossless. WebM and MP4 are lossy real-time captures — WebM keeps transparency, MP4 does not
(H.264 has no alpha, so transparent areas go black; pick a background colour first).