
PANTHEON
Unified Path 1 game engine for the Sony® PlayStation 2. VU1-native. Locked 60 FPS.
"Imagination unleashed."
Boot → world · Loop from retail PS2 capture
PCSX2 v2.7.x emulation at native 640×480 — Boot luma ramp reveal into treadmill loop, skydome timecycle progression, and orbit camera telemetry at locked 60 FPS
v1.0.1-Beta — Scale Phase
Pantheon Phase 2 ships the 31×31 Dynamic Treadmill — a player-anchored tile grid that maintains Y=0.0f ground invariant at locked 60 FPS. Zero-pop boot sequence. Path 1 VU1 rendering pipeline. Hardware-gated audio (IOP/SPU2). Ready for texturing (Phase 3).
What's New in v1.0.1
World Expansion
- 31×31 Dynamic Treadmill — player-anchored tile snapping; origin resets to nearest tile boundary; Y=0.0f ground clamp maintained across all 60 FPS frames
- Zero-pop Boot Sequence — Path 1 world render gated until luma-ramp reveal completes; eliminates Z-fight flicker on boot
- Mesh Slicing —
hrc2ps2.pyauto-partitions geometry into VU1-safe batches (≤72 vertices per draw)
Audio Pipeline (Hardware-Gated)
- SPU2/LIBSD/AUDSRV initialization
- IOP streaming — conditional compile under
PANTHEON_HARDWARE_TARGETflag - PCSX2 builds run clean (audio disabled in emulation)
- Retail PS2 hardware ready for audio payload integration
Build Profiles
- Hybrid (default) — CPU GIF floor + Path 1 skydome (avoids coplanar Z-fight)
- Strict Path 1 — VU1 renders all geometry; CPU GIF overlay disabled
Phase 1 Baseline Retained (v1.0.0-Beta)
- Boot title — 94BILLY luma ramp reveal sequence
- Timecycle skydome — San Andreas-style 8-slot weather + 4-channel RGB interpolation
- Walkable floor — Path 1 mesh rendering (tiled instancing + hybrid CPU deck where enabled)
- Orbit camera — Spherical telemetry, deadzone + smoothing
- DualShock input — Analog pad capture and edge detection
Path 1 Architecture
Pantheon enforces a strict Path 1 pipeline: the Emotion Engine sequences 128-bit DMA/VIF command chains; VU1 executes shader.vsm (a bespoke VLIW microprogram compiled with dvp-as) that transforms vertices, packs GIF tags, and fires XGKICK directly to the Graphics Synthesizer. Geometry is authored in Softimage 3D (or optionally Blender), crunched offline via hrc2ps2.py and obj2ps2.py, and delivered as C arrays.
The EE never touches a vertex.
Build
git clone https://github.com/94BILLY/PANTHEON.git
cd PANTHEON
make -f Makefile.worldOutput: floor.elf
Run in PCSX2 2.7.x or deploy to real PS2 hardware via OPL/FreeMcBoot.
Requirements: ps2sdk · ee-gcc 15.2.0 · dvp-as · Python 3.x
Setup guide: [GETTING_STARTED.md](GETTING_STARTED.md)
Next Phase: Phase 3 — Texturing
- STQ Coordinate Extraction — Softimage 3D → C array payload
- VU1 Texture Sampling — VRAM uploads, GS register config
- Full Asset Pipeline — Diffuse + normal map integration
Core Files
| File | Purpose |
|---|---|
pantheon_path1_contract.h |
EE ↔ VU1 compile-time memory layout contract |
pantheon_vram.h / pantheon_vram.c |
GS VRAM allocator (linear word-bump over 4 MB) |
shader.vsm |
VU1 microprogram — transform, matrix math, GIF packing, XGKICK |
floor.c |
EE conductor — DMA sequencing, boot, world loop, tile treadmill |
hrc2ps2.py |
Softimage 3D .hrc → C array mesh cruncher with auto-slicing |
Documentation
| Document | Content |
|---|---|
[GETTING_STARTED.md](https://claude.ai/chat/GETTING_STARTED.md) |
Build setup, PCSX2 config, profile flags, asset pipeline |
[BETA_RELEASE.md](https://claude.ai/chat/BETA_RELEASE.md) |
v1.0.1-Beta scope, acceptance criteria, treadmill implementation |
[BASELINE_ACCEPTANCE.md](https://claude.ai/chat/BASELINE_ACCEPTANCE.md) |
Phase 1 + Phase 2 acceptance gates and test procedures |
[FLIGHT_LOG.md](https://claude.ai/chat/FLIGHT_LOG.md) |
Development journal — debugging log, learnings, architecture decisions |
[DOCS_INDEX.md](https://claude.ai/chat/DOCS_INDEX.md) |
Full documentation index |
[CHANGELOG.md](https://claude.ai/chat/CHANGELOG.md) |
Release history |
Media
Gallery (Retail PS2 captures):
[docs/media/VIEW_PANTHEON_MEDIA.html](https://claude.ai/chat/docs/media/VIEW_PANTHEON_MEDIA.html) — Stills and loops under docs/media/
Logo generation:
Source: [docs/pantheon-oculus-straight-on-zenith.png](https://claude.ai/chat/docs/pantheon-oculus-straight-on-zenith.png)
Generator: [tools/generate_pantheon_zenith_logos.py](https://claude.ai/chat/tools/generate_pantheon_zenith_logos.py)
Details: [docs/LOGO.md](https://claude.ai/chat/docs/LOGO.md)
Repository Policy
Public technical record. No LICENSE file; all rights reserved.
- Maintainer: [94BILLY](https://github.com/94BILLY) is the sole project owner. In GitHub: Settings → Collaborators (and org membership) should list only 94BILLY for write access; remove any other users with push access if they appear.
- Issues, pull requests, and unsolicited contributions are not accepted
- Redistribution requires written permission from 94BILLY
- Source code and assets are provided for educational and reference purposes
Audience
This codebase is targeted at developers comfortable with:
- PS2SDK and
ps2-gcc - Emotion Engine (EE Core, DMA, VIF)
- Vector Unit 1 (VU1, microcode, VLIW instruction pairing)
- Graphics Synthesizer (GIF packets, register writes, GS memory layout)
- Bare-metal C (no OS abstractions, direct hardware access)
Entry point: Start with pantheon_path1_contract.h and shader.vsm.
github.com/94BILLY/PANTHEON
94BILLY · 94billy.com/PANTHEON
© 2026 94BILLY · All rights reserved
GitHub repository metadata
Description (one line):
Bare-metal Path 1 PlayStation 2 engine. VU1 microcode. Softimage 3D pipeline. 60 FPS. v1.0.1-Beta: Dynamic treadmill.
Topics:
ps2 playstation2 ps2sdk homebrew vu1 path1 gamedev openworld softimage bare-metal demoscene
Language:
C (95%), Assembly (5%)
Built with discipline. No shortcuts. No compromises.
Start with [pantheon_path1_contract.h](https://claude.ai/chat/pantheon_path1_contract.h) and [shader.vsm](https://claude.ai/chat/shader.vsm).


