== GB DEVELOPMENT - Avik Das =========================================== A collection of programs written for the Nintendo Game Boy (GB). The Game Boy Color may also be targetted in the future, though the current state of the project targets only the original Game Boy. Due to the limitations of the hardware, all the programs must be relatively small, so it makes sense to keep them all in the same repository. The included programs are described briefly below, while more elaborate descriptions are provided inside the corresponding directories. ~~ PREREQUISITES ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The programs are written in the appropriate variant of Z80 assembly, using the RGBDS Assembler and Linker. The version of the toolkit used for these programs may be found at https://github.com/bentley/rgbds . The Makefiles assume that the toolkit is on the PATH. To run the program after assembly, a GB emulator is required. The next section outlines possible suitable emulators. The programs are written in vim, and a modeline is present in the source files that gives them the appropriate syntax highlighting. The syntax file is available on the vim scripts website as rgbasm.vim (https://github.com/vim-scripts/rgbasm.vim). ~~ EMULATOR COMPATIBILITY ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The programs are tested on a number of emulators: * gambatte (http://sourceforge.net/projects/gambatte/) This emulator aims to be as accurate as possible, and is therefore the most suitable for testing. This will be the primary target for these programs. * VisualBoy Advance (http://vba-m.com/). The VBA-M fork is preferred, as the original project is now inactive. This emulator is very popular, so it makes sense to ensure compatibility. Additionally, there are some other emulators to note: * mednafen (http://mednafen.sourceforge.net/) This emulator intends to emulate multiple platforms. These programs may not be tested extensively on this emulator, but it remains an option, and the programs may occasionally be tested on it. * JS GameBoy Color Game Center (http://www.grantgalitz.org/gameboy/) This emulator runs in the browser using HTML5 and Javascript. The programs may not be tested extensively on this, but given that the lack of proper checksums caused this emulator to reject older versions of some of the programs when even gambatte did not, it has its place as an additional check. ~~ INCLUDED PROGRAMS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ More detailed descriptions are available in the README files inside the directory containing each program. buttons - A simple test program that shows which button (or multiple buttons) is currently being pressed. This functionality allows testing controllers on emulators. sprite - A simple test program that demonstrates a wide variety of hardware-provided functionality and general programming techniques. stat-interrupt - A program to demonstrate the use of the LCDC Status interrupt in order to achieve some graphical effects that would otherwise be difficult or impossible using the video system in the Game Boy. money-run - An actual game, applying the techniques in the above programs to a fully-playable game.