Coder Social home page Coder Social logo

bity-8 / bity-8 Goto Github PK

View Code? Open in Web Editor NEW
14.0 14.0 0.0 229 KB

Yet Another Fantasy Console.

License: GNU General Public License v3.0

Lua 9.92% Rust 85.31% Shell 0.89% Python 3.89%
console emulator fantasy-console retro retrogaming video-game video-game-development

bity-8's Introduction

BITY-8 is a fantasy console comparable to many others fantasy consoles: PICO-8, TIC-80, LICO-12, PV8, and many more!

To understand what a fantasy console, imagine the old Nintendo Entertainment System. Now put that console into a program. Shazam! You have an emulator.

The difference between an emulator and a fantasy console is that the hardware for the fantasy console has never existed before, but it could!

Fantasy consoles are slowly gaining popularity because they are fun to play with and fun to develop with. Begin your BITY-8 journey today!

Hardware Specifications

Main Specs

Specs may slightly change during alpha. But most are set in stone.

Cartridge: 256KB expandable space
Code:      Lua 5.2, cartridge stores source code
Display:   192x144 screen
           4-bit rewritable palette
           60 FPS
Input:     D-pad, A, B, START, SELECT
           4 controllers
Memory:    256KB read area
           64KB  read/write area
Music:     32 2-byte note measures, 4 measure staves
           0-255 staves
Map:       96x72 8-bit cell maps
           0-31 maps
Sprite:    96x72 4-bit pixel sheets
           0-63 sheets
Sound:     4 channel
           8 instruments (128 samples, 8-bit amplitudes)
           88-key (piano) range
           60 notes a second
           4 default waves (square, sawtooth, triangle, noise)
           4 custom waves

Standard Library

Here is the list of supported standard library functions so far:

_peek _poke _mset _mcpy
_max _min _floor _ceil
_sin _cos _atan2
_sqrt _abs
_rand
_and _or _xor _not
_rotl
_draw_rect _draw_line

Note that the standard library is still in alpha, and may change at any time.

Running Alpha

This assumes that you already have rust installed on your system. If you don't, see this.

Next, make sure you have both the sdl2 and sdl2_gfx developer packages installed on your system. On Arch Linux, this looks like:

sudo pacman -S sdl2 sdl2_gfx

If you have a different operating system/package manager, you may want to consult this page.

After meeting those two requirements, it should be simple to run BITY-8 on your machine:

# Clone the repo
git clone https://github.com/bity-8/bity-8.git

# Go into the demo directory.
cd bity-8/bity-8/assets/demo

# Compile the demo program.
./comp.sh

# And run the demo program with BITY-8!
cargo run out.b8

That's it, you have the alpha version of BITY-8 running on your machine now.

bity-8's People

Contributors

alanxoc3 avatar joshbackstein avatar mikahjc avatar

Stargazers

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

Watchers

 avatar  avatar

bity-8's Issues

Implement playing songs.

From what I understand, we may only have playing measures/small sections working, but we may not have playing a full fledged song working. But we might. If we don't have it working, then we need to implement it. If we do have it working, then we should document it.

Cleanup this project

This project has been in a working state for 2 years, but it hasn't been in a presentable state. I want to work on documentation and cleaning up unused files.

For this issue, There are 2 things I want:

  • Cleanup example files.
  • Cleanup README & documentation.

Make a startup logo screen.

We need a boot screen to give our fantasy console a bity-8 "vibe". This is a thing for every other fantasy console, so it should be a thing for us too!

Load pallete from sprite sheet.

We thought about how this should work, but according to an old TODO file, we haven't actually implemented it. If we have implemented it, then it should be documented. Otherwise we need to both implement and document this feature.

Gif support

We should definitely have GIF support for BITY-8. So there would be a way you can record your game into a gif!

Improve error messages.

This was written a while ago, but I'm guessing the error messages are sub-ideal. We should definitely try to make user friendly error messages with what the program can do now.

Make draw_rect more efficient than draw_line

This should be the case, as line logic is more complex than rectangle logic. This was written a while ago, but I'm guessing this means that draw_rect works by doing multiple calls to draw_line. This will have to be researched into a little whatever the case.

Put the font in memory.

Again, this was written a while ago. I'm guessing this means that the font isn't available in memory when you run the game. It should be available, so that a user's program can both modify and/or read the font.

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.