All Projects → JohnEarnest → Octo

JohnEarnest / Octo

Licence: mit
A Chip8 IDE

Programming Languages

javascript
184084 projects - #8 most used programming language
assembler
53 projects

Projects that are alternatives of or similar to Octo

B8
BASIC8 - The Fantasy Computer/Console!
Stars: ✭ 144 (-65.63%)
Mutual labels:  game-development, retrogaming
kpspemu
PSP Emulator written in Kotlin for JVM, JS and Native. Can work as PWA.
Stars: ✭ 57 (-86.4%)
Mutual labels:  emulator, homebrew
Awesome Gbdev
Contribute
Stars: ✭ 3,016 (+619.81%)
Mutual labels:  game-development, retrogaming
Pixelvision8
Pixel Vision 8's core philosophy is to teach retro game development with streamlined workflows. PV8 is also a platform that standardizes 8-bit fantasy console limitations built on top of the open-source C# game engine based on MonoGame.
Stars: ✭ 773 (+84.49%)
Mutual labels:  game-development, retrogaming
chip8emu
A Terminal Based Chip-8 Emulator
Stars: ✭ 28 (-93.32%)
Mutual labels:  emulator, retrogaming
Zabuyaki
Zabuyaki, old-school side-scrolling beat 'em up
Stars: ✭ 91 (-78.28%)
Mutual labels:  game-development, retrogaming
faucon
NVIDIA Falcon Microprocessor Suite
Stars: ✭ 28 (-93.32%)
Mutual labels:  emulator, toolchain
Openemu
🕹 Retro video game emulation for macOS
Stars: ✭ 13,369 (+3090.69%)
Mutual labels:  retrogaming, emulator
homebrew-i386-elf-toolchain
Homebrew formulas for buildling a valid GCC toolchain for the i386-elf target.
Stars: ✭ 62 (-85.2%)
Mutual labels:  toolchain, homebrew
rombundler
A tiny libretro frontend to release homebrews as executables
Stars: ✭ 49 (-88.31%)
Mutual labels:  emulator, homebrew
Quadplay
The quadplay✜ fantasy console
Stars: ✭ 563 (+34.37%)
Mutual labels:  game-development, emulator
Webmsx
WebMSX - Online MSX Emulator
Stars: ✭ 269 (-35.8%)
Mutual labels:  retrogaming, emulator
Virtualc64
VirtualC64 is a cycle-accurate C64 emulator for macOS
Stars: ✭ 229 (-45.35%)
Mutual labels:  retrogaming, emulator
Opensurge
A fun 2D retro platformer inspired by Sonic games and a game creation system.
Stars: ✭ 143 (-65.87%)
Mutual labels:  game-development, homebrew
Emupedia.github.io
The purpose of Emupedia is to serve as a nonprofit meta-resource, hub and community for those interested mainly in video game preservation which aims to digitally collect, archive and preserve games and software to make them available online accessible by a user-friendly UI that simulates several retro operating systems for educational purposes.
Stars: ✭ 206 (-50.84%)
Mutual labels:  retrogaming, emulator
Nxdk
The cross-platform, open-source SDK to develop for original Xbox: *new* xdk
Stars: ✭ 200 (-52.27%)
Mutual labels:  toolchain, homebrew
Retrograde Android
Play retro video games on your Android TV!
Stars: ✭ 114 (-72.79%)
Mutual labels:  retrogaming, emulator
Snowflake
❄️ 🎮 Extensible Emulator Frontend written in C# and Javascript
Stars: ✭ 185 (-55.85%)
Mutual labels:  retrogaming, emulator
mamesaver
Mamesaver is a mame emulated screensaver - get all the good ol' games playing their demo modes while you procrastinate and enjoy!
Stars: ✭ 26 (-93.79%)
Mutual labels:  emulator, retrogaming
Rust Psp
Rust on PSP. Panic and allocation support. Access PSP system libraries.
Stars: ✭ 265 (-36.75%)
Mutual labels:  game-development, homebrew

Octo

Title Image

Octo is a high-level assembler for the Chip8 virtual machine, complete with an environment for testing programs, and tools for sharing your creations. Read about the project on Itch.io!

IDE Screenshot

Links

General information:

Third-party tools and references:

Third-party games, programs and libraries:

If you've built a project on, with, or for Octo and you'd like to have a link added to this list, submit a pull request!

Command Line Mode

The Octo assembler can also be used as a command-line tool via a Node.js frontend:

$ ./octo
usage: octo [--decompile] [--options <file.json>] <source> [<destination>]
       if <source> has a .gif extension, unpack an existing octo cartridge.
       if <destination> has a .gif extension, create an octo cartridge file.
       if <destination> has an .html extension, create a standalone HTML5 build.
       if the specified options file does not exist, a new template will be created.

$ cat simple.8o
	: main
		va := 1
		vb := 2

$ ./octo simple.8o simple.ch8

$ hexdump simple.ch8
	0000000 6a 01 6b 02
	0000004

The --decompile option can be used to send an existing Chip8 binary through Octo's general-purpose decompiler.

The --options option allows you to specify a JSON file with settings for all of Octo's feature flags and palette configuration, which will be used for exports and as hints during decompilation. If the specified file does not exist, a template will be created with default settings.

If you're interested in using Octo from the command line, you might like c-octo.

Sharing Your Programs

Octo has a share feature which stores source code and configuration metadata and produces a URL you can share with others. By default, Octo stores programs in its own backend, indexed based on a key.

Using the "Save HTML" button in the "Binary Tools" panel of the toolbox, you can generate a single HTML file containing the Octo emulator and your program, allowing you to easily host a game yourself or on sites like Itch.io. Octo can be configured to offer adaptive multitouch controls, making your games playable on mobile devices and tablets!

Screenshot of HTML export dialog

Octo can also save "Cartridges" which embed programs and their metadata in an animated GIF. Cartridges are easy to share via email or image hosting sites, and include the source code of your programs, so others can riff on your creations:

Cartridge Example

Finally, Doct is an experimental tool for building standalone binaries which run Octo programs. Give it a whirl!

Licensing

Octo, along with all its associated documentation, examples and tooling, are made available under the MIT license. See LICENSE.txt for additional details. If for any reason this is insufficiently flexible or permissive for some application, please contact John Earnest with your request. Contributions to this repository are welcome, with the understanding that they will fall under the same licensing conditions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].