How hailtododongo/pyrite64 works
Pyrite64 combines a visual game editor with an N64 runtime. The main workflow is authoring a project’s assets, scenes, objects, and node graphs in the editor, then running the resulting game through the N64 engine. The graph also shows documented import, rendering, collision, audio, and toolchain capabilities. Source evidence is sampled and incomplete, so some documented subsystem links use the README; unsampled implementation details are not inferred.
Main entry points: main.cpp Editor application · assetManager.cpp Asset manager · sceneManager.cpp Runtime scene management · drawLayer.h Runtime renderer
Components 32
Editor
- Editor application
src/main.cpp - Project launcher
src/editor/pages/launcher.cpp - Scene editor
src/editor/pages/editorScene.cpp - 3D viewport
src/editor/pages/parts/viewport3D.cpp
Project authoring
- Project state
src/project/project.h - Asset manager
src/project/assetManager.cpp - Scene manager
src/project/scene/sceneManager.cpp - Scene and objects
src/project/scene/scene.cpp - Scene components
src/project/component/types/compNodeGraph.cpp - Node graphs
src/project/graph/graph.cpp - Model import
src/project/assetManager.cpp
Editor services
- Thumbnail cache
src/editor/thumbnailCache.h - Undo history
src/editor/undoRedo.h - Editor renderer
src/renderer/pipeline.cpp - Framebuffers
src/renderer/framebuffer.h - Toolchain setup
src/utils/toolchain.h
N64 runtime
- Runtime scene management
n64/engine/src/scene/sceneManager.cpp - Runtime renderer
n64/engine/include/renderer/drawLayer.h - Default pipeline
n64/engine/src/renderer/pipelineDefault.cpp - HDR and bloom
n64/engine/src/renderer/pipelineHDRBloom.cpp - Big-texture pipeline
n64/engine/src/renderer/pipelineBigTex.cpp - Collision engine
n64/engine/src/collision/collisionScene.cpp - Audio engine
n64/engine/src/audio/audioManager.cpp - Video swap chain
n64/engine/include/vi/swapChain.h
Shared utilities
- Filesystem utilities
src/utils/fs.h - JSON utilities
src/utils/json.h - Code parser
src/utils/codeParser.cpp - Logging
src/utils/logger.h - Runtime logging
n64/engine/include/lib/logger.h - Process utilities
src/utils/proc.h - JSON builder
src/utils/jsonBuilder.h
Other components
- Game creator
Connections 31
- Game creator → Editor application: uses
- Editor application → Project launcher: starts
src/main.cpp - Editor application → Scene editor: opens
src/main.cpp - Editor application → Thumbnail cache: creates
src/main.cpp - Game creator → Scene editor: authors
- Scene editor → 3D viewport: presents
- Scene editor → Scene manager: edits
- Project state → Asset manager: manages
- Project state → Scene manager: manages
src/project/scene/sceneManager.cpp - Scene manager → Scene and objects: loads
src/project/scene/sceneManager.cpp - Scene and objects → Scene components: uses
- Game creator → Node graphs: scripts
- Asset manager → Model import: imports
src/project/assetManager.cpp - Asset manager → Code parser: parses scripts
src/project/assetManager.cpp - Asset manager → Thumbnail cache: invalidates
src/project/assetManager.cpp - Scene manager → Undo history: clears history
src/project/scene/sceneManager.cpp - Thumbnail cache → Framebuffers: renders previews
src/editor/thumbnailCache.h - Editor renderer → Framebuffers: uses
src/renderer/pipeline.cpp - Editor application → Toolchain setup: scans
src/main.cpp - Editor application → Project state: hosts
- Game creator → Runtime scene management: runs game
- Runtime scene management → Runtime renderer: renders scene
- Runtime scene management → Collision engine: handles collision
- Runtime scene management → Audio engine: handles audio
- Runtime renderer → Default pipeline: draws frames
- Runtime renderer → HDR and bloom: supports HDR
n64/engine/src/renderer/pipelineHDRBloom.cpp - Runtime renderer → Big-texture pipeline: supports big textures
n64/engine/src/renderer/pipelineBigTex.cpp - HDR and bloom → Video swap chain: sets buffers
n64/engine/src/renderer/pipelineHDRBloom.cpp - Big-texture pipeline → Video swap chain: uses buffers
n64/engine/src/renderer/pipelineBigTex.cpp - JSON utilities → Filesystem utilities: reads files
src/utils/json.h - Code parser → Filesystem utilities: uses
src/utils/codeParser.cpp