gbdk-2020
gbdk-2020のコードリーディングを行ったメモ書き
概要
sdccはすでにGameBoy開発をサポートするライブラリを含んでいるが、リンカは壊れていてバンクシステムをサポートしていない。
数年前、link-gbz80を古いままにすることでsdccをアップデートしてもリンクが可能なことがわかった。このgbdk-2020こそがそのアップデートを行ったものだ。
ツール構成
gbdkを構成するツールについての説明(gbdk-2020/binに生成される実行ファイル)
table:table
name description
as-gbz80 アセンブラ 古いものをそのまま利用(新しいものだと.orgに問題アリ)
lcc retargetableコンパイラ 最新のsdcc, sdccp, sdasgbをサポートするものに変更
link-gbz80 リンカ バンクシステムをサポートするため古いまま
SDCC/sdcc コンパイラ 古いものは置き換えて最新のsdccを利用する
SDCC/sdccp プリプロセッサ 最新版を利用
lcc
gbdkでgb ROMをbuildするときに呼び出されるのがこのlcc
内部ではSDCCでコンパイルできるようにソースコードを修正し、SDCCコンパイラを呼び出してgbファイルを出力している
table:lcc/
gb.c SDCCを使ったgbz80のためのコマンドを生成する
lcc.c gb.cで作ったコマンドを実行する