Skip to content

Release hardware.inc version 4.10 #50

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 27 commits into from
May 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
df469b5
Update actions/checkout to v4
Rangi42 May 13, 2025
384fd9d
Update hardware.inc to version 4.10.0
Rangi42 May 13, 2025
f4b0d53
Use shorter register heading dash comments
Rangi42 May 14, 2025
2ed8496
Update more registers
Rangi42 May 14, 2025
d7a3af8
More registers
Rangi42 May 14, 2025
f662df2
Add HDMA registers
Rangi42 May 14, 2025
ded2c62
Fix VDMA (aka HDMA or GDMA) constants
Rangi42 May 15, 2025
8bbf15b
Finish $FFxx registers
Rangi42 May 15, 2025
4bc1f39
Finish cartridge MBC registers
Rangi42 May 15, 2025
dbe2383
Finish deprecated constants
Rangi42 May 15, 2025
fc84097
Start porting some constants from gb-bootroms
Rangi42 May 15, 2025
3233aaa
Finish CPU values on bootup and interrupt vector addresses
Rangi42 May 15, 2025
77c4186
Finish screen-related constants
Rangi42 May 15, 2025
baf5e18
Finish OAM constants
Rangi42 May 15, 2025
33ce4b9
Fix spacing
Rangi42 May 15, 2025
cbbabcd
Update change log
Rangi42 May 15, 2025
1f750f1
Add `BGP_SGB_TRANSFER`
Rangi42 May 15, 2025
8751947
Consistently use `[r/w]` not `[rw]`
Rangi42 May 15, 2025
f424cad
Comment on how to fill header with zeros
Rangi42 May 16, 2025
849fe17
Note which values RGBFIX "sets" by not overwriting zeros
Rangi42 May 16, 2025
6c6ed14
Remove extra space
Rangi42 May 16, 2025
e29541b
Define `rRTCREG`
Rangi42 May 16, 2025
9a4fcfd
Fix comment
Rangi42 May 16, 2025
0d8f86f
Updated history change log
Rangi42 May 16, 2025
aa8b70d
Suggestions from code review
Rangi42 May 18, 2025
076e287
Use `rb` for OAM field offsets
Rangi42 May 18, 2025
78635fe
Update date of last revision
avivace May 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/testing.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
macos-testing:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Install RGBDS
run: |
brew install rgbds
Expand All @@ -18,7 +18,7 @@ jobs:
windows-testing:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Install RGBDS
run: |
# Find the URL of the latest Win64 release with the GitHub API
Expand All @@ -30,4 +30,4 @@ jobs:
Expand-Archive rgbds.zip
- name: Run rgbasm on hardware.inc
run: |
rgbds/rgbasm.exe hardware.inc
rgbds/rgbasm.exe hardware.inc
86 changes: 86 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# History

- **Rev 1.1** - 1997-07-15
- Added define check
- **Rev 1.2** - 1997-07-18
- Added revision check macro
- **Rev 1.3** - 1997-07-19
- Updated syntax for RGBASM 1.05
- **Rev 1.4** - 1997-07-27
- Updated subroutine prefixes
- **Rev 1.5** - 1997-08-15
- Added `_HRAM` constant
- Added `PAD*` constants for `rP1` register
- Added `CART*` MBC constants
- Added `NINTENDO_LOGO` macro
- **Rev 1.6** - 1997-11-30
- Added `rDIV`, `rTIMA`, `rTMA`, and `rTAC` registers
- **Rev 1.7** - 1998-01-31
- Added `_SCRN0` and `_SCRN1` constants
- **Rev 1.8** - 1998-02-15
- Added `rSB` and `rSC` registers
- **Rev 1.9** - 1998-02-16
- Converted I/O registers to `$FFxx` format
- **Rev 2.0**
- Added GBC registers
- **Rev 2.1**
- Added MBC5 and cart RAM enable/disable constants
- **Rev 2.2**
- Fixed `NR42`, `NR43`, and `NR44` constants
- **Rev 2.3**
- Fixed incorrect `_HRAM` constant
- **Rev 2.4** - 2013-04-27 *(AntonioND)*
- Added some `CART_*` MBC constants
- **Rev 2.5** - 2015-05-03 *(AntonioND)*
- Fixed formatting
- **Rev 2.6** - 2016-04-09 *(AntonioND)*
- Added GBC `OAMF_*` and `CART_*` constants
- **Rev 2.7** - 2019-01-19 *(ISSOtm)*
- Added `rPCM12` and `rPCM34` registers
- **Rev 2.8** - 2019-02-03 *(Álvaro Cuesta)*
- Added flag values for audio registers
- **Rev 2.9** - 2020-02-28
- Added `P1F_*` flag values for `rP1F` register
- **Rev 3.0** - 2020-08-27 *(Blitter Object)*
- Register ordering
- Byte-based sizes
- OAM additions
- General cleanup
- **Rev 4.0** - 2021-05-03 *(Eievui)*
- Updated to use RGBASM 0.5.0 syntax
- Changed `IEF_LCDC` to `IEF_STAT`
- **Rev 4.1** - 2021-08-16 *(rondnelson99)*
- Added more flags, bit number constants, and offset constants for OAM and window positions
- **Rev 4.2** - 2021-09-04 *(ISSOtm)*
- Added CH3- and CH4-specific audio registers flags
- **Rev 4.3** - 2021-11-07 *(Eievui)*
- Deprecate VRAM address constants
- **Rev 4.4** - 2022-01-11 *(avivace)*
- Deprecate VRAM `CART_SRAM_2KB` constant
- **Rev 4.5** - 2022-03-03 *(sukus)*
- Added bit number definitions for `OCPS`, `BCPS` and `LCDC`
- **Rev 4.6** - 2022-06-15
- Added MBC3 registers and special values
- **Rev 4.7.0** - 2022-06-27
- Added alternate names for some constants
- **Rev 4.7.1** - 2022-07-05
- Added `RPB_LED_ON` constant
- **Rev 4.8.0** - 2022-10-25 *(zlago)*
- Changed background addressing constants
- **Rev 4.8.1** - 2023-04-29 *(rbong)*
- Added `rOPRI`
- **Rev 4.9.0** - 2023-06-24 *(sukus)*
- Added definitions for interrupt vectors
- **Rev 4.9.1** - 2023-09-11
- Added repository link and CC0 waiver notice
- **Rev 4.9.2** - 2024-08-18 *(DevEd)*
- Corrected `CART_ROM_MBC5_BAT` to `CART_ROM_MBC5_RAM`
- **Rev 4.10.0** - 2025-05-19 *(Rangi42)*
- Added `rKEY0`, `rBANK`, and `rRTCREG` registers
- Added `rJOYP`, `rVDMA_*`, and `rWBK` register aliases
- Added `HARDWARE_INC_VERSION` string constant
- Added many more bit number, flag, and value constants
- Deprecate `IEB_HILO` and `IEF_HILO` in favor of `IEB_JOYPAD` and `IEF_JOYPAD`
- Deprecate memory region and cartridge header constants
- Changed formatting and reorganized sections
- Moved revision history to separate HISTORY.md file
22 changes: 10 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,28 @@
# `hardware.inc`

### Game Boy Hardware definitions
## Game Boy hardware definitions

`hardware.inc` has been the standard include file containing Game Boy hardware definitions for use in [RGBDS](https://rgbds.gbdev.io) projects for over 20 years.

The file was originally created by Jeff Frohwein in 1997, who still hosts [his latest version (2.3)](http://www.devrs.com/gb/files/hardware.zip) on his great [Dev'rs](http://devrs.com) website.
The file was originally created by Jeff Frohwein in 1997.
Although Jeff tried to track version updates with a rudimentary change log at the top of the file, people have made small changes throughout the years, often without bumping the version number.

Although Jeff tried to version control the file with a rudimentary change log at the top of the file, people have added small changes throughout the years, often without bumping the version number.

This repo has become the new official reference for `hardware.inc`, using [@AntonioND](http://github.com/AntonioND)'s fork as the baseline.
This repository has become the official reference for `hardware.inc`, using [@AntonioND](https://github.com/AntonioND)'s fork as the baseline.

## Contributing

This repository's `master` branch should be considered production;
Each commit represents a new release, requiring the embedded version number to be bumped (and an entry to be added to the changelog at the beginning of the file).

We follow [semantic versioning](https://semver.org);
Breaking changes (such as those in [72ec03f](https://github.com/gbdev/hardware.inc/commit/72ec03f835e72be83a1ef189a4a9eac0fbdf39e2)) increase the major version, backwards-compatible changes (typically additions) only increase the minor version, and bugfixes only increase the patch level.
This repository's `master` branch should be considered the production version.
Each commit represents a new release, so each one should update the embedded version number in `hardware.inc` and the change log in `HISTORY.md`.

Changes to the comments should be considered a bugfix.
We follow [semantic versioning](https://semver.org).
Breaking changes increase the major version, backwards-compatible changes (typically new additions) only increase the minor version, and bug fixes (including changes to the comments) only increase the patch level.
(An example of a breaking change is when `hardware.inc` 4.0 updated its syntax for compatibility with RGBDS 0.5.0, breaking compatibility with older RGBDS versions.)

## Contributors

* Jones (created the original `hardware.inc`, now lost)
* Carsten Sørensen (whose ideas Jeff based his file on)
* Jeff Frohwein
* AntonioND
* BlitterObjectBob, tobiasvl, ISSOtm, avivace, Eievui, QuinnPainter, rondnelson99, daid, Hacktix, sukus21, alvaro-cuesta, basxto
* BlitterObjectBob, tobiasvl, ISSOtm, Rangi42, avivace, Eievui, QuinnPainter, rondnelson99, daid, Hacktix, sukus21, alvaro-cuesta, basxto
* Probably lots of other people who have added to the file throughout the years
Loading