Coder Social home page Coder Social logo

gyrovorbis / tiny3dengine Goto Github PK

View Code? Open in Web Editor NEW
19.0 2.0 4.0 870 KB

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

Home Page: http://www.rockin-b.de/

License: Other

C 1.80% Assembly 84.95% SWIG 13.20% Batchfile 0.05%
3d-engine 8bit dreamcast-vmu visual-memory visual-memory-unit vms vmu assembly

tiny3dengine's Introduction

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)

tiny3dengine's People

Contributors

gyrovorbis avatar jvstsx avatar wtetzner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.