---
title: C64 Hardware Demo — MUD64 Reference
description: 24-sprite mux · raster splits · color bars · hi-res/MC draw · math · SID
export:
  html: dist/c64-hardware-demo.html
  screen:
    microtext: out/DECK64.VLT
    json: out/c64-hardware-demo.json
  c64:
    prg: out/deck64.prg
    sid: out/team_dc.sid
---

::: hero
eyebrow: MUD64 · C64 HARDWARE API
title: Team DC Silicon Demo
subtitle: Spec reference module — export hooks for real hardware
cta:
  - [MUD64-SPEC](../mud64-spec.html)
  - [Play CRT player](../mud64-player.html)
:::

::: callout canon
**Spec-only reference** — `++ c64.*` blocks below define export manifests.
Web player runs text frames; hardware codegen ships via Flight Deck export (roadmap).
:::

::: screen-module
name: DECK64.DEM
start: 1
machine: c64pal
mode: 3
charset: petscii
font: C64 Pro Mono
border: #352879
bg: #352879
fg: #6c5eb5
features: sprites,raster,draw,sid,math
embed: https://homebrewz.live
:::

++ c64.sprites name=crew capacity=24
max_visible 24
hardware_slots 8
irq_mode raster
sort_by y_descending

pool gemzy
    def assets/sprites/gemzy_12x21.spr
    anim flip 4fps
    path sine x=120 amp=40 period=120 uses sin,cos

pool ceedee
    def assets/sprites/ceedee_12x21.spr
    anim bob y=8 period=60

pool cursy
    def assets/sprites/cursy_12x21.spr
    path linear x=0 y=0 dx=1 dy=0

slot 0..7 hardware
slot 8..23 multiplex pool=gemzy,ceedee,cursy rotate

frame_bind 1 enable pool=gemzy,ceedee,cursy count=24
frame_bind 99 disable all

++ c64.raster name=wishart_fx
irq base=$31

split line=120 action scroll_y=2
split line=199 action mode=hires bank=0

colorbars
    start_line 0
    end_line 250
    palette c64_16
    speed 1
    target border,bg

frame_bind 1 colorbars on
frame_bind 50 colorbars off

++ c64.draw name=vault_shield
mode hires
buffer $2000 size $1F40
clear color 0
line 40 40 280 160 color 2
triangle 80 60 240 60 160 140 color 3 fill
rect 16 16 304 184 color 14 stroke
blit assets/petscii/shield.bin x=96 y=52
char_multicolor row=12 col=8 screencode=$A0 colorpair=1,2,3

++ c64.draw name=mc_scroll
mode multicolor
buffer $D000 size $1F40
fill 0 0 160 200 color 4
text_mode overlay row=24 col=0
    "TEAM DC · NO CASH NO CODE"

++ c64.math name=deck_tables precision=8.8
table sin 256 entries range 0..360
table cos 256 entries range 0..360
table atan2 64 entries
fn lerp a b t -> fixed
fn distance x1 y1 x2 y2 -> fixed
bind pool=gemzy path=sine uses sin,cos

++ c64.sid name=team_dc_theme chip=6581
player Goattracker2 export=sid/team_dc.sid

voices
    0 lead
    1 bass
    2 pad
    3 sfx

sfx bank vault_sfx
    blip   freq=$800 wave=pulse dur=8
    clack  freq=$200 wave=noise dur=12
    raaawk arpeggio C-E-G wave=tri dur=60

filter
    cutoff 800
    resonance 12
    mode lowpass

frame_bind 1  play team_dc_theme loop
frame_bind 10 sfx clack
frame_bind 25 sfx raaawk
frame_bind 99 stop all

::: frame id=1
draw: vault_shield layer=background
sprites: enable crew x24
sound: play team_dc_theme
cmd: |
  $NOTE C3
  $VOICE 1
text: |
  *** TEAM DC SILICON DEMO ***
  --------------------------
  24-SPRITE MULTIPLEXOR .... ACTIVE
  RASTER SPLIT + COLOR BARS  ON
  HI-RES SHIELD @ $2000  .... DRAWN
  SID THEME ................ PLAYING
  
  PRESS ANY KEY CHIEF
prompt: key
branches: |
  default: 10
:::

::: frame id=10
draw: mc_scroll layer=overlay
sprites: enable gemzy x12
sound: sfx clack
text: |
  COMMANDER BETA SHADES: CLACK
  
  12 GEMZY SPRITES · MC BITMAP SCROLLER
  FIXED-POINT SINE PATH · LUT ACTIVE
prompt: key
branches: |
  default: 25
:::

::: frame id=25
sound: sfx raaawk
cmd: $FILTER ON $SOUND 3 60
text: |
  RAAAWWK FOR GLORY!!!
  
  MAGICK NUMBAH: 64000
  ALL SUBSYSTEMS NOMINAL
prompt: key
branches: |
  default: 99
:::

::: frame id=99
end: true
sprites: disable all
sound: stop all
text: |
  *** MODULE END ***
  
  EXPORT: DECK64.DEM
  SILICON AWAITS
prompt: none
:::

++ screen.microtext export=DECK64.VLT
; MUD64 + hardware binds — text frames only in Microtext paste
*1
*** TEAM DC SILICON DEMO ***
!
=99
............................
*99
$END
............................

::: cta
title: Read the full hardware API
body: Section 10 of MUD64-SPEC — sprites, raster, draw, math, SID.
button: [MUD64-SPEC](../mud64-spec.html) primary
button: [PETSCII reference](https://style64.org/petscii/)
:::
