Skip to content

Tiny 3D Engine for the Sega Dreamcast's Visual Memory Unit by Rockin'-B, written in pure LC86k assembly.

License

Notifications You must be signed in to change notification settings

gyrovorbis/tiny3dengine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tiny 3D Engine

Tiny 3D Engine for the Sega Dreamcast's Visual Memory Unit by Thomas Fuchs / The Rockin'-B

Screen Capture 1

Title

Screen Capture 2

VMS Icon

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)