Skip to content

Instantly share code, notes, and snippets.

View tobiasvl's full-sized avatar
🦀
Learning Rust

Tobias V. Langhoff tobiasvl

🦀
Learning Rust
View GitHub Profile
@tobiasvl
tobiasvl / install_aseprite.sh
Last active January 19, 2024 00:35
The commands to build aseprite on Fedora
# Copied from https://github.com/aseprite/aseprite/blob/master/INSTALL.md#skia-on-linux
sudo yum install -y gcc-c++ cmake ninja-build libX11-devel libXcursor-devel mesa-libGL-devel fontconfig-devel
mkdir $HOME/deps
cd $HOME/deps
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
git clone -b aseprite-m71 https://github.com/aseprite/skia.git
export PATH="${PWD}/depot_tools:${PATH}"
cd skia

CHIP-8 extensions and compatibility

This document is intended as a well-sourced and exhaustive documentation of all extensions to CHIP-8. They all use the standard CHIP-8 interpreter as a base, mentioning what additions and changes they make to that common base.

This list is mostly for historical purposes; few of the extensions listed here had a considerable number of programs written for them. It could serve as a reference for CHIP-8 emulator/interpreter developers who want to support the various incompatible instructions and behaviors that have cropped up in different interpreters over the decades. Perhaps the instructions listed here can also inspire someone to make their own modern CHIP-8 extension (of which there have been a couple, see the bottom of the list).

A note on modern implementations

The only CHIP-8 extensions in active use today (beyond basic CHIP-8) are Super-CHIP 1.1 and the relative newcomer XO-CHIP.

@tobiasvl
tobiasvl / to_c_or_not_to_c.md
Last active February 22, 2023 14:24 — forked from ISSOtm/to_c_or_not_to_c.md
Writeup discussing when to use RGBDS or GBDK.

In the past few years, it seems that, as retro gaming has grown in popularity, programming for older platforms has also gained traction. A popular platform is the Game Boy, both for its nostalgia and (relative) ease to program for.

When someone wants to make their own game, one of the first problems they will encounter is picking the tools they will use. There are two main options: either use GBDK (Game Boy Development Kit) and the language C, or RGBDS (Rednex Game Boy Development System) and the Game Boy's assembly language.

The purpose of this document is to provide my insights and experience, and help you make the better choice if you're starting a new project. I will also provide some "good practice" tips, both for C and ASM, if you have already made up your mind or are already using one of these.

Overview

@tobiasvl
tobiasvl / GB_SRAM.asm
Last active February 20, 2023 22:48
RGBDS routine for verifying, clearing and loading SRAM in a Game Boy game
; Based on nitro2k01's code from https://forums.nesdev.org/viewtopic.php?t=14631
; Changes:
; - Retains all registers, so a call to this routine can be added anywhere
; - Instead of saving all WRAM, just save a set number of bytes (c)
; Usage:
; - On boot, call LoadSRAM (will init and zero SRAM if needed, then load from SRAM)
; - When saving, call SaveSRAM (and then potentially LoadSRAM.sramOK)
LoadSRAM:
call EnableSram
; *******************************************************************
; *** ***
; *** VIP2K Chip 8 interpreter ***
; *** ***
; *** This software is copyright 2008 by Marcel van Tongeren ***
; *** You have permission to use, modify, copy, and distribute ***
; *** this software so long as this copyright notice is retained. ***
; *** This software may not be used in commercial applications ***
; *** without express written permission from the author. ***
; *******************************************************************
-rw-r--r--. 1 tvl tvl 5246976 Sep 19 2005 Assorted/01. Anberlin - Ready Fuels.mp3
-rw-r--r--. 1 tvl tvl 6584320 Jan 28 2006 Assorted/01 Boulevard of Broken Songs (Green Day vs. Oasis vs. Travis vs. Eminem).mp3
-rw-r--r--. 1 tvl tvl 5504546 Sep 8 2005 Assorted/01. Era - Ameno (Remix).mp3
-rw-r--r--. 1 tvl tvl 4996345 Apr 12 2007 Assorted/01 I've got the power.mp3
-rw-r--r--. 1 tvl tvl 5320502 Sep 8 2005 Assorted/03. Era - The Mass.mp3
-rwxr-xr-x. 1 tvl tvl 7959453 Jul 29 2007 Assorted/03 Oriental Dark Flight.mp3
-rw-r--r--. 1 tvl tvl 6235670 Sep 19 2005 Assorted/04. Damien Rice - Cannonball.mp3
-rw-r--r--. 1 tvl tvl 6750336 Sep 8 2005 Assorted/04. Disturbed - Down With the Sickness.mp3
-rw-r--r--. 1 tvl tvl 2884438 May 4 2007 Assorted/04 - time is on my side.mp3
-rw-r--r--. 1 tvl tvl 5060608 Sep 19 2005 Assorted/05. Anberlin - Glass To The Arson.mp3
drwxr-xr-x. 5 tvl tvl 4096 Feb 9 2008 !!!
drwx------. 2 tvl tvl 4096 Feb 24 2007 120 Days
drwxr-xr-x. 2 tvl tvl 12288 Jul 8 2008 (1997-02-10) “FINAL FANTASY Ⅶ” Original Sound Track (SSCX-10004) [Ogg Vorbis]
-rwxr-xr-x. 1 tvl tvl 3686400 Jul 28 2007 27 Wily Stage.mp3
drwxr-xr-x. 2 tvl tvl 4096 Jan 24 2007 50 Hertz
drwxr-xr-x. 3 tvl tvl 4096 Aug 27 2007 8bit betty
drwx------. 2 tvl tvl 4096 Mar 5 2008 8bitmayhem
drwxr-xr-x. 4 tvl tvl 4096 Mar 18 2008 Air
drwxr-xr-x. 3 tvl tvl 4096 Aug 31 2006 All-Time Quarterback
drwxr-xr-x. 3 tvl tvl 4096 Jan 10 2006 Ambo
[
{
"backcolor": "#C2C3C7",
"name": "PICO-8 devkit keyboard",
"author": "tobiasvl",
"switchMount": "cherry",
"switchBrand": "cherry",
"switchType": "MX1A-G1xx"
},
[