Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gyrovorbis/tiny3dengine
Tiny 3D Engine for the Sega Dreamcast's Visual Memory Unit by Rockin'-B, written in pure LC86k assembly.
https://github.com/gyrovorbis/tiny3dengine
3d-engine 8bit assembly dreamcast-vmu visual-memory visual-memory-unit vms vmu
Last synced: 3 months ago
JSON representation
Tiny 3D Engine for the Sega Dreamcast's Visual Memory Unit by Rockin'-B, written in pure LC86k assembly.
- Host: GitHub
- URL: https://github.com/gyrovorbis/tiny3dengine
- Owner: gyrovorbis
- License: other
- Created: 2023-02-28T01:07:19.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-08-20T21:19:21.000Z (over 1 year ago)
- Last Synced: 2024-08-02T14:05:13.084Z (6 months ago)
- Topics: 3d-engine, 8bit, assembly, dreamcast-vmu, visual-memory, visual-memory-unit, vms, vmu
- Language: Assembly
- Homepage: http://www.rockin-b.de/
- Size: 850 KB
- Stars: 19
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-dreamcast - Tiny 3D Engine - Full-fledged 3D rendering engine by The Rockin'-B (VMU)
README
# Tiny 3D Engine
Tiny 3D Engine for the Sega Dreamcast's Visual Memory Unit by Thomas Fuchs / The Rockin'-B
## Features
* Generic Matrix Transform Stack
* Translation, Rotation, Scaling Operations
* Perspective Projection Matrix
* Multiple Geometry Types
* Fast Lookup Table-Based SIN/COS Functions
* Rendering Functions for Points and Lines
* Clipping Routines
* 16-Bit Addition (with Carry) of 2 Twos-Compliment Integers
* 16-Bit Multiplicaton of 2 Twos-Compliment Integers
* 16-Bit Division of 2 Twos-Compliment Integers
* Dot Product for 3D/4D Vectors## History
The Tiny3D engine was developed from 2003 to 2006 by Thomas Fuchs, aka "The Rockin'-B," who was a well-known indie developer within the Sega Dreamcast VMU and Sega Saturn homebrew communities. It was originally released for download on his site, http://www.rockin-b.de/, where it stayed for many years, until the links eventually broke sometime around 2010.For years, Tiny3D engine was just an incredibly impressive ROM circulating around without any source code, with The Rockin'-B seemingly disappearing from the homebrew scene and his website. In 2023, I was finally able to contact him, and he has graciously supplied the VMU development scene with his original source tree, including source code, documentation, binaries, and a rigorous history of his work. I have uploaded it here so that it may be preserved and can benefit other VMU developers in the future.
## Building
The project has been migrated away from building with Marcus Comstedt's original aslc86k assembler and to the newer, Waterbear assembler, which is fully cross-platform and has several additional features.To build, simply cd into the cloned repository, then run:
$ waterbear assemble src/3d.s -o Tiny3D.vms
## References
Within the doc folder lies a wealth of useful information, used during the development of the engine. These include varoius presentations and PDFs on the math routines and integer algorithms.## Future Work and Optimizations
Within The Rockin'-B's carefully kept notes (CHANGELOG) lies a treasure trove of information along with a list of potential and in-progress ideas for various performance optimizations which could still be implemented.## ROMs
The binary ROM images are available for download and can be used with any VMU emulator or loaded onto the actual device, using something such as DreamShell or VMU Explorer.
* 3D.VMI (Web Browser Info Format)
* 3D.VMS (Web Browser File Format)
* 3D.DCI (Nexus Memory Card Format)