Giter VIP home page Giter VIP logo

rgbds's Introduction

RGBDS

RGBDS (Rednex Game Boy Development System) is a free assembler/linker package for the Game Boy and Game Boy Color. It consists of:

  • rgbasm (assembler)
  • rgblink (linker)
  • rgbfix (checksum/header fixer)
  • rgbgfx (PNG‐to‐Game Boy graphics converter)

This is a fork of the original RGBDS which aims to make the programs more like other UNIX tools.

This toolchain is maintained on GitHub.

The documentation of this toolchain can be viewed online here, it is generated from the man pages found in this repository. The source code of the website itself is on GitHub as well under the repo rgbds-www.

If you want to contribute or maintain RGBDS, and have questions regarding the code, its organisation, etc. you can find me on GBDev or via mail at rgbds at eldred dot fr.

1. Installing RGBDS

The installation procedure is available online for various platforms. Building from source is possible using make or cmake; follow the link for more detailed instructions.

make
sudo make install
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build

2. RGBDS Folder Organization

The RGBDS source code file structure somewhat resembles the following:

.
├── .github/
│   ├── actions/
│   │   └── ...
│   └── workflows/
│       └── ...
├── contrib/
│   ├── zsh_compl/
│   │   └── ...
│   └── ...
├── include/
│   └── ...
├── man/
│   └── ...
├── src/
│   ├── asm/
│   │   └── ...
│   ├── extern/
│   │   └── ...
│   ├── fix/
│   │   └── ...
│   ├── gfx/
│   │   └── ...
│   ├── link/
│   │   └── ...
│   ├── CMakeLists.txt
│   └── ...
├── test/
│   ├── ...
│   └── run-tests.sh
├── .clang-format
├── CMakeLists.txt
├── Makefile
└── README.rst
  • .github/ - files and scripts related to the integration of the RGBDS codebase with GitHub.
    • actions/ - scripts used by workflow files.
    • workflows/ - CI workflow description files.
  • contrib/ - scripts and other resources which may be useful to users and developers of RGBDS.
    • zsh_compl contains tab completion scripts for use with zsh. Put them somewhere in your fpath, and they should auto-load.
    • bash_compl contains tab completion scripts for use with bash. Run them with source somewhere in your .bashrc, and they should load every time you open a shell.
  • include/ - header files for each respective C files in src.
  • man/ - manual pages.
  • src/ - source code of RGBDS.
    • Note that the code unique to each RGBDS tool is stored in its respective subdirectory (rgbasm -> src/asm/, for example). src/extern/ contains code imported from external sources.
  • test/ - testing framework used to verify that changes to the code don't break or modify the behavior of RGBDS.
  • .clang-format - code style for automated formatting with clang-format. The C code does not currently follow this style, but all C++ code should.

3. History

  • Around 1997, Carsten Sørensen (AKA SurfSmurf) writes ASMotor as a general-purpose assembler/linker system for DOS/Win32
  • Around 1999, Justin Lloyd (AKA Otaku no Zoku) adapts ASMotor to read and produce GBZ80 assembly/machine code, and releases this version as RGBDS.
  • 2009, Vegard Nossum adapts the code to be more UNIX-like and releases this version as rgbds-linux on GitHub.
  • 2010, Anthony J. Bentley forks that repository. The fork becomes the reference implementation of rgbds.
  • 2017, Bentley's repository is moved to a neutral name.
  • 2018, codebase relicensed under the MIT license.
  • 2020, repository is moved to the gbdev organisation. The rgbds.gbdev.io website serving documentation and downloads is created.

4. Acknowledgements

RGBGFX generates palettes using algorithms found in the paper "Algorithms for the Pagination Problem, a Bin Packing with Overlapping Items" (GitHub, MIT license), by Aristide Grange, Imed Kacem, and Sébastien Martin.

rgbds's People

Contributors

issotm avatar antoniond avatar rangi42 avatar bentley avatar meithecatte avatar dbrotz avatar ben10do avatar vegard avatar stag019 avatar jl2210 avatar yenatch avatar sanqui avatar daid avatar obskyr avatar aaaaaa123456789 avatar eievui5 avatar avivace avatar jidoc01 avatar dannye avatar clach04 avatar qguv avatar mattcurrie avatar benhetherington avatar daknig avatar pikalaxalt avatar anderoonies avatar gy741 avatar mid-kid avatar scnorton avatar martendo 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.