Giter Site home page Giter Site logo

catufunwa / rgbds Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gbdev/rgbds

0.0 0.0 0.0 2.42 MB

Rednex Game Boy Development System - An assembly toolchain for the Nintendo Game Boy & Game Boy Color

Home Page: https://rednex.github.io/rgbds/

License: MIT License

C 56.24% Assembly 14.27% Shell 2.02% Makefile 1.45% Yacc 6.99% Roff 17.84% Dockerfile 0.08% Awk 0.35% CMake 0.75%

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.

1. Installing RGBDS

1.1 Windows

Windows builds are available in the releases page on GitHub here.

Extract the zip and then add the executable directory to the path. For example:

path %PATH%;C:\Programs\rgbds-0.3.8-win64\win64

Alternatively, the RGBDS executables can be simply dropped in the folder of the project they're used in.

If you require the latest version in development, it should be possible to compile RGBDS with MinGW or Cygwin by following the instructions to build it on UNIX systems.

1.2 macOS

You can build RGBDS by following the instructions below. However, if you would prefer not to build RGBDS yourself, you may also install it using Homebrew.

To install the latest release, use:

brew install rgbds

To install RGBDS with all of the current changes in development (as seen on the master branch on GitHub), use:

brew install rgbds --HEAD

1.3 Arch Linux

To install RGBDS through the AUR run

yaourt -S rgbds

1.4 Other UNIX-like systems

No official binaries of RGBDS are distributed for these systems, you must follow the simple instructions below to compile and install it.

2. Building RGBDS from source

RGBDS can be built in UNIX-like systems by following the instructions below.

2.1 Dependencies

RGBDS requires yacc, libpng and pkg-config to be installed.

On macOS, install the latter two with Homebrew:

brew install libpng pkg-config

On other Unixes, use the built-in package manager. For example, on Debian or Ubuntu:

sudo apt-get install byacc flex pkg-config libpng-dev

You can test if libpng and pkg-config are installed by running pkg-config --cflags libpng: if the output is a path, then you're good, and if it outputs an error then you need to install them via a package manager.

2.2 Build process

To build the programs, run in your terminal:

make

Then, to install the compiled programs and manual pages, run (with appropriate privileges, e.g, with sudo):

make install

After installation, you can read the manuals with the man command. E.g.,

man 7 rgbds

There are some variables in the Makefile that can be redefined by the user. The variables described below can affect installation behavior when given on the make command line. For example, to install RGBDS in your home directory instead of systemwide, run the following:

make install PREFIX=$HOME

To do a verbose build, run:

make Q=

This is the complete list of user-defined variables:

  • PREFIX: Location where RGBDS will be installed. Defaults to /usr/local.
  • bindir: Location where the binaries will be installed. Defaults to ${PREFIX}/bin.
  • mandir: Location where the manpages will be installed. Defaults to ${PREFIX}/share/man.
  • DESTDIR: This is prepended to all paths during the installation. It is mainly used for packaging.
  • Q: Whether to quiet the build or not. To make the build more verbose, clear this variable. Defaults to @.
  • STRIP: Whether to strip the installed binaries of debug symbols or not. Defaults to -s.
  • BINMODE: Permissions of the installed binaries. Defaults to 755.
  • MANMODE: Permissions of the installed manpages. Defaults to 644.
  • CHECKPATCH: Path of the script checkpatch.pl of the Linux kernel. Defaults to ../linux/scripts/checkpatch.pl. You can retrieve that script from here.

3 History

  • Around 1997, Carsten Sorensen (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.

rgbds's People

Contributors

issotm avatar antoniond avatar bentley avatar dbrotz avatar ben10do avatar vegard avatar stag019 avatar meithecatte avatar jl2210 avatar yenatch avatar sanqui avatar obskyr avatar mattcurrie avatar qguv avatar aaaaaa123456789 avatar clach04 avatar jidoc01 avatar mid-kid avatar gy741 avatar pikalaxalt avatar benhetherington avatar braydenm303 avatar solidtux avatar frarees avatar jasonyuan869 avatar zedkos avatar huderlem avatar phs avatar rangi42 avatar superusercode 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.