需要無視でgbsプレイヤーを制作中です。
技術的な旨みとしては結構いいと思うのですけれど
どうなんでしょう。
・Z80カスタムをC言語で作れる
・GBエミュレータの1/10程度を実装したという満足感
とか。
資料は以下のとおり。
・GameBoy Opcode Summary
http://gameboy.mongenel.com/dmg/opcodes.html
・Gameboy CPU (LR35902) instruction set
http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html
現状、0x0200程度ある命令セットの4分の1ぐらいを手直し済。
大雑把にとあるソースコードを写経していて無心でないと身が持たないです。
GBAならその数倍。気が遠くなりそう。
// LD [BC], A IWRAM_CODE void CpuExecInst0x02(void) { MemWriteByte(Cpu.BC.uw, Cpu.AF.b.h); Cpu.cycle += 8; } // RLCA IWRAM_CODE void CpuExecInst0x07(void) { u8 carry = (Cpu.AF.b.h & 0x80) >> 7; Cpu.AF.b.h <<= 1; Cpu.AF.b.h += carry; CpuExecInstFlagC(carry); CpuExecInstFlagClear(FLAGS_NEGATIVE | FLAGS_ZERO | FLAGS_HALFCARRY); Cpu.cycle += 4; }
1,2ヵ月の間、ひたすら命令セット書けって言われたら
頭から何か湧き出しそうです。
gbsのフォーマットはこちらです。
http://www.retrogames.com/music/gbsspec.txt