Skip to content

AuzFox/ERA-3D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

101 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ERA-3D

ERA-3D is a 3D fantasy console inspired by 5th generation video game consoles such as the Nintendo 64 and Sony Playstation.

Warning

ERA-3D is still in early development, expect unfinished UI and missing features!

Specifications

Display:   640x360
Memory:    8MiB general purpose RAM, memory-mapped assets (textures, audio, models)
Textures:  64KiB texture cache, 128x128 (RGBA32) and 256x256 (8 bit indexed) modes
Rendering: Maximum of ~16k triangles per frame*, OpenGL 1.1 fixed-function style graphics API
Effects:
    - Programmable 4-cycle Color Combiner
    - Color blending
    - Depth, scissor, & stencil testing
    - 3-point texture filtering
    - Per-vertex lighting
    - Depth-based fog
    - Framebuffer rendering (Render to texture)
Audio:     8 tracks, 11.025khz IMA ADPCM stereo audio sample playback, audio synthesis**
Scripting: Custom langauge similar to C

*  Triangle rendering limit is not yet implemented and is subject to change
** Audio subsystem is not yet implemented and subject to change

API Sample

ERA-3D rendering a triangle

enum {
    // RGBA32 color constants
    BLACK = 0x000000FF,
    RED   = 0xFF0000FF,
    GREEN = 0x00FF00FF,
    BLUE  = 0x0000FFFF
};

void draw() {
    // set clear color
    clearColor1i(BLACK);

    // clear color, depth, and stencil buffers
    clear(BUFFER_ALL);

    // configure Color Combiner (CC) to ignore textures and only use vertex colors
    ccPreset(CC_PRESET_SHADE);

    pushMatrix();
        
        // begin constructing a mesh using triangles
        begin(TRIANGLES);
            
            // vertex 1
            color1i(RED);
            vertex3f(0.0, 1.0, 0.0);

            // vertex 2
            color1i(GREEN);
            vertex3f(-1.0, -1.0, 0.0);

            // vertex 3
            color1i(BLUE);
            vertex3f(1.0, -1.0, 0.0);
        
        // end the mesh
        end();
    
    popMatrix();
}

Documentation

Check out the ERA-3D Docs!

Building

For building instructions, see the Building page of the documentation.

Libraries Used

License

ERA-3D is licensed under the zlib license. See the LICENSE file for the full license text.

About

N64-Inspired 3D Fantasy Console

Resources

Stars

Watchers

Forks

Releases

Contributors

Languages