314 Commits

Author SHA1 Message Date
bbbbbr
3dc38b6403 Docs: PDF for 4.5.0 2025-12-27 17:57:05 -08:00
bbbbbr
a5bff5a9e8 Docs: 4.5.0: Regenerate content 2025-12-27 17:53:11 -08:00
bbbbbr
5794b92df4 Docs: Update for NES fill_bkg_rect fix commit 2025-12-27 17:50:29 -08:00
bbbbbr
3e43f3e6b3 Docs: Update Changelog and Release Notes for 4.5.0 release 2025-12-21 02:03:29 -08:00
bbbbbr
913dc5453d Docs: web css: make code highlights stand out more, reduce animation times 2025-12-10 15:56:19 -08:00
bbbbbr
37283004f1 Docs: toolchain settings update 2025-12-06 02:22:00 -08:00
bbbbbr
29e436c835 Docs: Update changelog / migration through Dec 5, 2025
- Enable readable anchors in doxyfile
- Minor MegaDuck printer docs updates
- ZX0 compression updates
2025-12-06 02:19:42 -08:00
bbbbbr
ab1cd3a802 Merge pull request #841 from bbbbbr/docs/doxygen-awesome-theme
docs: html: minor css tweaks for link opacity and UL/OL top margin
2025-11-26 20:25:56 -08:00
bbbbbr
efc4846444 docs: html: minor css tweaks for link opacity and UL/OL top margin 2025-11-26 20:25:24 -08:00
bbbbbr
c9c1249ff8 Examples: new sram bank pragma example
- Minor related docs updates
2025-11-26 16:06:10 -08:00
bbbbbr
15c99f0929 Docs: fix makebin SRAM bank param docs
Also harmonize all cart RAM to cart SRAM
2025-11-26 02:04:20 -08:00
bbbbbr
541367b8d2 Docs: add readable link patch for doxygen 1.9.2
- Makes readable function name links instead of md5 hashes of the links
2025-11-25 23:53:14 -08:00
bbbbbr
50e4bacf48 Docs: allow explicit path to doxygen command
- Change min ver to 1.9.2
2025-11-25 03:03:16 -08:00
bbbbbr
5d94e1ab15 Docs: switch to doxygen-awesome theme 2025-11-25 01:51:59 -08:00
bbbbbr
1e1a7cc415 Docs: explanation of new dataseg pragma and sfr for HRAM vars (#827) 2025-10-30 03:07:13 -07:00
bbbbbr
cd459e8e0b Docs: Minor edits for updated APA mode ISRs, SMS/GG VDP migration note 2025-07-25 01:04:21 -07:00
bbbbbr
b0837f2cbf Merge branch 'master' into develop 2025-05-19 14:06:50 -07:00
bbbbbr
0767534dfd Docs: update for NES description 2025-05-14 01:14:44 -07:00
Michel Iwaniec
5fb3f54bba NES: Simplify description of palette fading caveat in docs 2025-05-14 08:21:11 +01:00
bbbbbr
103141d550 Docs: PDF for 4.4.0 2025-05-09 23:53:40 -07:00
bbbbbr
fb7d08c760 Docs: 4.4.0 release notes month 2025-05-09 23:52:22 -07:00
bbbbbr
d87fbe7f10 Docs: regenerate documentation for gbdk 4.4.0 2025-05-09 23:47:16 -07:00
bbbbbr
54ca569a8b Docs: update toolchain settings 2025-05-09 23:43:28 -07:00
Michel Iwaniec
5acc7cfbae NES: Improve TIMER interrupt emulation (#774)
- Move TIM ISR emulation to dedicated function .tim_emulation and dedicated file timer_isr.s

- Make TIM ISR emulation save entirety of ALL_REGTEMPS_BEGIN to ALL_REGTEMPS_END

- Improve emulation to allow average TIM rate to be faster compared to vblank rate

- Add support for consistent average TIM rate on PAL, for a less system-dependent timer

- Add support for different base dividers defined by GB-like TAC_REG variable

- Add defines values for "vblank parity mode" to global.s and nes.h

- Update crt0 init code to set TMA_REG to vblank parity mode correctly for PAL/Dendy

- Update documentation, describing the improved GB TIM emulation and vblank parity mode

- Update cross-platform IRQ example to better showcase the emulation
2025-05-06 11:40:17 +01:00
bbbbbr
19c384da19 Bankpack: Fix bug with large file count
- File descriptor/handle leak from non-closure during format detection
- Also don't open the file twice, just once
2025-05-02 18:03:28 -07:00
bbbbbr
f831132b66 Bankpack: Fix incorrect array growth size (credit RodrigoCard)
- Also same issue in romusage, makecom
2025-05-02 11:36:52 -07:00
Michel Iwaniec
2b633b83cd NES: Refactor display_on / display_off and deferred isr code (#768)
- Move code for deferred isr buffer building to separate function .deferred_isr_run in file deferred_isr.s

- Introduce function .deferred_isr_reset to write shadow regs as first (VBL) buffer entry

- Add new subroutine .deferred_isr_reset_and_init that runs .deferred_isr_reset and .deferred_isr_run twice

- Drain buffer when DISPLAY_OFF is called, by making sure a single NMI execution happens before screen is turned off in vblank

- Change DISPLAY_OFF to write only DISPLAY_OFF flag and PPUMASK, but leave shadow_PPU_MASK unchanged

- Call .deferred_isr_reset_and_init in DISPLAY_ON when display changes from off to on

- Make DISPLAY_ON run run VBL / LCD handlers to reinitialize buffers when display switches from off to on

- Change early-out in NMI handler to rely on DISPLAY_OFF flag instead of shadow_PPUMASK

- Remove mentioned of manual-draining caveat in docs, as it no longer applies

- Add minor size/speed optimization of frame counter increment in NMI, to prevent branch penalties / incorrect system detection
2025-04-27 10:38:06 +01:00
bbbbbr
0f073ab408 Docs: text changelog, other minor updates 2025-04-25 00:04:39 -07:00
Michel Iwaniec
03613b5550 NES: Make sure TIM ISR handlers are thread-safe (#760)
* NES: Make sure TIM ISR handlers are thread-safe

- Backup and restore REGTEMP area when calling TIM ISR in vblank

- Update irq example to use #pragma nooverlay for tim handler

- Add warning and explanation about having to use #pragma for TIM handlers in NES section of docs

- Add @anchor to docs, and a code example for #pragma nooverlay

- Update irq.c with `#pragma nooverlay` only being applied if NINTENDO_NES is defined

- Add more detailed comment of `#pragma nooverlay` in irq.c

- Add reference to docs in gb.h

- Add similar reference to nes.h
2025-04-22 08:36:41 +01:00
bbbbbr
d50dd3a00c Docs: Update SDCC manual to 4.5.2 2025-04-21 02:54:05 -07:00
bbbbbr
f33c2b6e3a Docs: start of 4.4.0 release and migration notes, toolchain settings
- Minor LCC comment for deprecated flag
2025-04-21 02:42:26 -07:00
Michel Iwaniec
ac571c1dab NES: Align coordinates and scanline counting in LCD ISR implementation with GB, add SCX / SCY / LYC defines (#755)
NES: Align coordinates and scanline counting in LCD ISR implementation with GB, add SCX / SCY / LYC defines

- Change definition of _lcd_scanline to be -1 less than current, aligning with GB LYC register

- Change definition of _bkg_scroll_y to match GB's SCY, being relative to current scanline

- Refactor do_hblank_writes, delay_fractional and delay_to_scanline subroutines in crt0

- Add "#define LYC_REG" and "#define LY_REG" as aliases of _lcd_scanline

- Add #defines for SCX and SCY to alias _bkg_scroll_x / _bkg_scroll_y shadow variables

- Change text scroller example to use LYC_REG / SCX / SCY instead of _lcd_scanline / move_bkg, remove redundant #ifdefs

- Add subtle shake in y direction to text scroller example, to check that GB / NES coordinates match

- Update "From Game Boy to NES" section's descriptions of LCD handlers

- Update "Migrating to new GBDK versions" with a short description of bkg_scroll_y changing from absolute to relative Y coordinates for 4.4.0
2025-03-30 23:43:39 +01:00
Michel Iwaniec
4a714bec8c NES: Move .nes header functionality out of makebin (#750)
NES: Move .nes header functionality out of makebin

- Move all .nes header related functionality into a new utility gbdk-support/makenes

- Update LCC to use makenes for .postproc member of build process, with mapper30 header parameters hard-coded for now

- Update makefiles to build makenes

- Add Makefile commands to generate output for the toolchain settings doc page

- Add documentation section for makenes in 06_toolchain.md
2025-03-21 00:00:13 +00:00
Michel Iwaniec
37186a5b7a NES: Timer interrupt emulation + support for set_interrupts(...)
- Add add_TIM / remove_TIM functions to nes.h

- Refactor implementation in lcd.s to support add_TIM / remove_TIM

- Add TMA_REG / TIMA_REG / TAC_REG vars to emulate GB hardware timer register

- Add call to TIM function at end of NMI handler in crt0.s, and make it use TMA_REG / TIMA_REG vars

- Add implementation for set_interrupts in lcd.s, replacing JMP instruction with RTS when disabled

- Enable NES target in examples/cross-platform/irq and replace delay(1000) call with 60 vsyncs

- Update examples/cross-platform/scroller and examples/cross-platform/irq to use set_interrupts

- Update documentation to describe use-cases and limitations of TIM handler
2025-03-09 03:07:44 +00:00
bbbbbr
a994a6acf5 Docs: improvements to MBC header chart to clarify cart SRAM, battery and saving (#737) 2024-12-29 22:19:21 -08:00
bbbbbr
5c190e014b Update and correct docs and comments related to MBC7
- Source info (pandocs) looks accidentally wrong
- No Rumble, no RAM, no Battery - just ACCELEROMETER and EEPROM
2024-11-09 23:03:37 -08:00
bbbbbr
6c0995334f Docs: misc links, tool output
- Add Banjo for SMS/GG music driver
- Links to Mega Duck tech docs
- Clarify that png2asset -spr16x16 is for MSX only
2024-08-08 19:55:48 -07:00
bbbbbr
4bc0e9910f Add gallery preview screenshot 2024-07-30 00:48:22 -07:00
bbbbbr
8b2971020d Docs: MBC chart: Add SRAm max size 2024-07-14 02:58:59 -07:00
bbbbbr
a12e33425f Merge pull request #697 from gbdk-2020/develop
merge 4.3.0 develop to master
2024-06-08 00:38:22 -07:00
bbbbbr
c9c134fb8a Docs: Update PDF 2024-06-08 00:17:45 -07:00
bbbbbr
f1d1faec05 Docs: regen faq, releases, supported consoles 2024-06-08 00:17:07 -07:00
bbbbbr
f369790c01 Docs: migration notes: add missing NES context for chagned api call 2024-06-08 00:16:51 -07:00
Michel Iwaniec
47680ea185 * Docs: Update NES section of "supported consoles" with typo / grammar fixes 2024-06-08 07:42:09 +01:00
bbbbbr
d3de434ed2 Merge pull request #692 from michel-iwaniec/update_release_notes_430
* Update release notes to be a bit more verbose for NES
2024-06-07 18:01:36 -07:00
bbbbbr
f167be6083 docs: release notes: remove bcd entry for GB 2024-06-07 18:01:13 -07:00
bbbbbr
cdc23c667e Docs: FAQ: add explanation for undefined global linker warning, re-arrange a bit 2024-06-07 17:58:25 -07:00
Michel Iwaniec
706441ec22 * Update release notes to be a bit more verbose for NES 2024-06-08 00:31:03 +01:00
bbbbbr
3501b3b93f Docs: 4.3.0: Regenerate content 2024-06-07 00:26:09 -07:00
bbbbbr
94aee7c4f9 Docs: Update gbdk_manual.pdf 2024-06-07 00:25:09 -07:00