gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit 5c3df55198b4c555f794c39d8baad18608b0d65c parent 1c4a6e16edef5fd54bab68bed72a901c38c778ba Author: Michel Iwaniec <46843052+michel-iwaniec@users.noreply.github.com> Date: Sat, 18 Nov 2023 15:21:05 +0000 Merge pull request #597 from michel-iwaniec/nes_docs_ram_note Add cautionary warning about smaller RAM resources on NES to docs Diffstat:
| M | docs/pages/06b_supported_consoles.md | 6 | +++++- |
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/docs/pages/06b_supported_consoles.md b/docs/pages/06b_supported_consoles.md @@ -355,7 +355,11 @@ Most notably: * The base NES system has no support for any scanline interrupts. And cartridge mappers that add scanline interrupts do so using wildly varying solutions * There's no easy way to determine the current scanline or CPU-to-PPU alignment meaning timed code is often required on the NES * The PAL variant of the NES has very different CPU / PPU timings, as do the Dendy clone and other clone systems - +* The stock 2 kB CPU RAM is just 1/4th the 8kB CPU RAM on a Game Boy + - Free RAM after accounting for ZP, stack, OAM page and system variables further cuts this in half + - This means a lot of GB code will need to be carefully optimized for RAM usage when ported to the NES + - In particular, make sure to use the "const" modifier for arrays that are read-only, to make sure they don't end up in RAM + To provide an easier experience, gbdk-nes attempts to hide most of these quirks so that in theory the programming experience for gbdk-nes should be as close as possible to that of the GB/GBC. However, to avoid surprises it is recommended to familiarize yourself with the NES-specific quirks and implementation choices mentioned here. This entire section is written as a guide on porting GB projects to NES. If you are new to GBDK, you may wish to familiarize yourself with using GBDK for GB development first as the topics covered will make a lot more sense after gaining experience with GB development.
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.