hardware.inc
hardware.inc copied to clipboard
RGBDS include file for Game Boy hardware definitions
Taking inspiration from [pokecrystal's constants](https://github.com/pret/pokecrystal/blob/2fe0cbbb19df504723934f39473064033c64ef6f/constants/gfx_constants.asm), for example. This would allow them to use `hardware.inc`, as well. (cc @Rangi42)
This PR is a proof-of-concept showing what a `hardware.inc` using constants from pokecrystal would look like. Some of these names can be used for new names for constants down the...
The `PADF_*` and `PADB_*` constants have been around for a long time, but they don't describe any hardware at all. Their values represent the bitfields of the synthetic joypad value...
See #36 and #37 for context. It would be useful to distribute a file whose defines aren't just strictly hardware-related. For distribution convenience, I'd suggest putting it in this same...
some registers have alternative, more "user friendly" names (`rKEY1`, `rNRxx`, CGB palette registers, CGB banking registers) but since `rHDMAx` registers dont have alternative names and (according to hardware.inc and pandocs)...
The hardware.inc convention is for `B_` to be a 0-7 bit value, and `F_` to be the corresponding mask value. A few examples: ```asm DEF LCDCF_OBJ16 EQU %00000100 ; OBJ...
Also moved affected RAMB_RTC_DH bit constants to rRTCREG, since their placement under rRAMB is clearly an error
Pan Docs [say](https://gbdev.io/pandocs/CGB_Registers.html#ff55--hdma5-cgb-mode-only-vram-dma-lengthmodestart): > Reading from Register FF55 [...], a value of $FF indicates that the transfer has completed. and > Reading Bit 7 of FF55 can be used to...
Despite the name of the file, the `_PAD_` symbols are not related to hardware at all. They are a common software convention used by algorithms that aim to make button...
Unifies #72 and #74 as requested.