README.md (5678B)
1# GBDK-2020 2GBDK is a cross-platform development kit for sm83 and z80 based gaming consoles. It includes libraries, toolchain utilities and the [SDCC](http://sdcc.sourceforge.net/) C compiler suite. 3 4__Supported Consoles:__ [(see docs)](https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_supported_consoles.html) 5- Nintendo Gameboy / Game Boy Color 6- Analogue Pocket 7- Sega Master System & Game Gear 8- Mega Duck / Cougar Boy 9 10 11## Current Release 12<a href="https://github.com/gbdk-2020/gbdk-2020/releases/latest/download/gbdk-win.zip"><img src="https://img.shields.io/badge/Windows-0078D6?style=for-the-badge&logo=windows&logoColor=white" alt="GBDK-2020 Windows Release"></a> 13<a href="https://github.com/gbdk-2020/gbdk-2020/releases/latest/download/gbdk-linux64.tar.gz"><img src="https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black" alt="GBDK-2020 Linux Release"></a> 14<a href="https://github.com/gbdk-2020/gbdk-2020/releases/latest/download/gbdk-macos.zip"><img src="https://img.shields.io/badge/mac%20os-000000?style=for-the-badge&logo=apple&logoColor=white" alt="GBDK-2020 MacOS Release"></a> 15 16<!-- <a href="https://hub.docker.com"><img src="https://img.shields.io/badge/Docker-2CA5E0?style=for-the-badge&logo=docker&logoColor=white" alt="Docker"></a> --> 17 18Upgrading to a new version? Check the [Migration notes](https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_migrating_versions.html). You can find older versions [here](https://github.com/gbdk-2020/gbdk-2020/releases). 19 20For a full list of changes see the [ChangeLog](https://github.com/gbdk-2020/gbdk-2020/blob/master/docs/ChangeLog) file or [online Docs](https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_releases.html). 21 22 23## Build status 24[![GBDK Build and Package](https://github.com/gbdk-2020/gbdk-2020/actions/workflows/gbdk_build_and_package.yml/badge.svg?branch=develop)](https://github.com/gbdk-2020/gbdk-2020/actions/workflows/gbdk_build_and_package.yml) 25 26 27## Docs 28GBDK includes extensive [documentation](https://gbdk-2020.github.io/gbdk-2020/docs/api). A good place to begin is the [Getting Started Section](https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_getting_started.html). 29 30Check the [Links and Third-Party Tools Section](https://gbdk-2020.github.io/gbdk-2020/docs/api/docs_links_and_tools.html) for a list of recommended emulators, graphics tools, music drivers and more. 31 32For SDCC you can check its [website](http://sdcc.sourceforge.net/) and the [manual](http://sdcc.sourceforge.net/doc/sdccman.pdf) 33 34 35## Usage 36Most users will only need to download and unzip the latest [release](https://github.com/gbdk-2020/gbdk-2020/releases) 37 38Then go to the examples folder and build them (with `compile.bat` on Windows or running `make`). They are a good starting point. 39 40The sources in this repo are only needed if you want to re-compile GBDK-2020 yourself instead of using the release binaries linked above. 41 42 43## Discord servers 44* [gbdk/zgb Discord](https://discord.gg/XCbjCvqnUY) - For help with using GBDK (and ZGB), discussion and development of gbdk-2020 45 46* [gbdev Discord](https://discordapp.com/invite/tKGMPNr) - There is a #gbdk channel and also people with a lot of Game Boy development knowledge 47* [SMS Power! Discord](https://discord.gg/h5xrKUK) - Additional SMS & Game Gear discussion and resources. 48 49## Forums 50- [The Game Boy Development Forum](https://gbdev.gg8.se/forums/) - A good place to search for Game Boy related answers. 51- [SMS Power! Forum](https://www.smspower.org/) - Additional SMS & Game Gear discussion and resources. 52 53 54## Current status 55- Updated CRT and library that suits better for game development 56- SDCC Versions 57 - Current GBDK-2020 versions require SDCC patches for z80 SMS/Game Gear support. So SDCC nightlies/snapshot builds cannot be used if you want to target SMS/Game Gear. Instead use the [Patched SDCC Builds](https://github.com/gbdk-2020/gbdk-2020-sdcc/releases/tag/sdcc-12539-patched). 58 - In addition, recent SDCC nightlies/snapshot builds have switched to a new calling convention which is not well tested with GBDK-2020 and there may be bugs. It's recommended to not use versions after build #12539 at this time. 59- The compiler driver **lcc** supports the latest sdcc toolchain. 60 61 62## Origin 63Over the years people have been complaining about all the GBDK issues caused by a very old version of SDCC (the compiler). This is a proper attempt of updating it while also keeping all the old functionallity working, like support for banked code and data and so on. 64 65The last version in the OLD repo is [2.96](https://sourceforge.net/projects/gbdk/files/gbdk/2.96/) although releases are available until 2.95-3. Version [2.96](https://sourceforge.net/projects/gbdk/files/gbdk/2.96/) is the starting point of this repo. 66 67 68# Build instructions 69Unless you are interested on recompiling the sources for some reason (like fixing some bugs) **you don't need to build GBDK** 70 71- **Windows only**: Download and install [mingw](http://mingw-w64.org/) 72- Clone, download this repo or just get the source form the [releases](https://github.com/gbdk-2020/gbdk-2020/releases) 73- Download and install the **PATCHED** [sdcc builds](https://github.com/gbdk-2020/gbdk-2020-sdcc/releases/tag/sdcc-12539-patched) from the separate repo for that (https://github.com/gbdk-2020/gbdk-2020-sdcc/releases/tag/sdcc-12539-patched). 74- On Linux **don't use package managers** The latest release available won't work, you need to compile or download one of the nightlies 75- Create **SDCCDIR** environment variable, that points into the folder, where you installed sdcc 76- Open command prompt or a terminal, go to the root directory of the repo and run **make**