2458 Commits

Author SHA1 Message Date
Michel Iwaniec
3303094718 NES: Reduce zeropage usage by merging flag for oam validity and forced blanking to one byte (#753) 2025-03-24 00:35:02 +00:00
Michel Iwaniec
79bd1341eb NES: Double-buffered deferred LCD ISR support for less graphics glitches, at expense of more RAM usage. (#751)
- Define new constant .MAX_DEFERRED_ISR_CALLS as .MAX_LCD_ISR_CALLS+1

- Refactor vsync function for double-buffering, and have it flip the read index at completion

- Refactor .do_lcd_ppu_reg_writes, and rename to .do_hblank_writes

- Remove scroll glitch mitigation in .do_hblank_writes, as no longer needed

- Redefine __lcd_isr_ arrays sizes as 2*.MAX_DEFERRED_ISR_CALLS

- remove redundant ZP variable __crt0_disableNMI, as no longer needed

- TAB -> space conversion
2025-03-21 14:35:24 +00: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
bbbbbr
a2aa923973 Merge pull request #749 from bbbbbr/megaduck/laptop_io_updates
MegaDuck: Updated on duck laptop IO commands, expose a few vars
- Printer command labeled and some query commands for the init result
- Run cart command labeled
2025-03-13 01:59:15 -07:00
bbbbbr
692aec8b2d MegaDuck: Updated on duck laptop IO commands, expose a few vars
- Printer command labeled and some query commands for the init result
- Run cart command labeled
2025-03-13 01:55:39 -07:00
Toxa
2997e027c6 Merge pull request #747 from michel-iwaniec/nes_add_TIM_support-v2
NES: Timer interrupt emulation + support for set_interrupts(...)
2025-03-10 17:17:34 +03: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
3fb3b2046e Merge pull request #746 from bbbbbr/emu_debug_example
Example: EmuDebug: fix register addition getting treated as dereferencing pointer in bgb and emulicious
2025-03-06 18:51:11 -08:00
bbbbbr
330d45aee6 Example: EmuDebug: fix register addition getting treated as dereferencing pointer in bgb and emulicious 2025-03-06 18:50:14 -08:00
Toxa
e8c732dfe0 Merge branch 'develop' of https://github.com/gbdk-2020/gbdk-2020 into develop 2025-02-24 23:02:47 +03:00
Toxa
bd99d4ce69 SMS/GG: Timer interrupt emulation 2025-02-24 23:02:36 +03:00
bbbbbr
a036f2a93f Merge pull request #744 from bbbbbr/docs_4_3_next
Docs: EMU_printf: Note %c vars should not be cast when passing
2025-01-23 01:50:30 -08:00
bbbbbr
459dbfbff4 Docs: EMU_printf: Note %c vars should not be cast when passing
- Improve EMU_printf in example with more detailed version
2025-01-23 01:48:47 -08:00
Toxa
4ff8549fda force --no-optsdcc-in-asm while building the library and in the lcc 2025-01-19 02:25:53 +03:00
bbbbbr
6192c9e97c Merge pull request #743 from bbbbbr/lcc/sdas_n_flag_to_N_flag
sdcc: sdas: update deprecated n flag to N flag
2025-01-17 17:10:17 -08:00
bbbbbr
1588744860 sdcc: sdas: update deprecated n flag to N flag 2025-01-17 17:09:15 -08:00
bbbbbr
27d8af923a Merge pull request #742 from gbdk-2020/build-linux-arm64
Build linux arm64
2025-01-16 14:42:29 -08:00
bbbbbr
19bf7b339f Build: add linux arm64 to Build Examples 2025-01-16 14:29:22 -08:00
bbbbbr
bc44ef14e7 Build: Initial linux arm 64 2025-01-16 14:24:07 -08:00
bbbbbr
bc9429d002 Merge pull request #741 from bbbbbr/tools/png2hicolor_updates
png2hicolorgb: updates + add option -s to specify variable/symbol name in C output
gbdk-next
2025-01-11 02:00:57 -08:00
bbbbbr
f17422b3ec png2hicolorgb: add support for -s to specify variable/symbol name in C output 2025-01-11 01:58:27 -08:00
bbbbbr
4512564d78 png2hicolorgb: merge in upstream changes
- Added --palendbit : Sets unused bit .15 = 1 for last u16 entry in palette data indicating end, instead of having to count or check the current scanline. 
- Added --addendcolor=N: Appends 32 x color N (in hex BGR555, 64 extra bytes total) in the palette data to clear the background and avoid artifacts on source images that are shorter than the screen height. 
- Added --precompiled mode
2025-01-11 01:20:31 -08:00
bbbbbr
22f287b1b6 Examples: MegaDuck Laptop: document speech command phrase numbers (#740) 2025-01-09 00:08:31 -08: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
d20401df9b romusage: brief/sumamrized mode: fix for counting headers multiple times (#736) 2024-12-20 01:32:56 -08:00
Toxa
2d32eedb6e SMS/GG: Improve metasprite clipping by Y, change coordinate type to signed int16 2024-12-17 22:39:10 +03:00
Michel Iwaniec
d2a4c10458 NES: Fix bug with set_bkg_1bpp_data not working in buffered mode (#734)
Replace direct PPUADDR / PPUDATA writes with calls to _set_vram_byte.
2024-12-16 21:16:31 +00:00
bbbbbr
632f66f4ce romusage: upgrade from 1.3.0 to 1.3.1 (#733)
# Version 1.3.1
- Experimental support for GBDK's flavor of NES (`-p:NES1"`) .noi/.map files
2024-12-15 01:35:40 -08:00
bbbbbr
5963e5ae19 CI/CD: macos 12 deprecated, change to 13 (#732) 2024-12-08 22:41:17 -08:00
Toxa
64cd76351b GB: prevent halt bug triggering if hblank_copy_vram() was called at the unlucky moment 2024-12-05 19:41:27 +03:00
Brett Inman
021069becb Improve logo example (#623)
* Logos example documentation and tweaks

* same filename

---------

Co-authored-by: Brett Inman <5668414+brettinman@users.noreply.github.com>
2024-11-19 17:45:02 +03:00
Larold
a964a84cc3 Feature/text & dialogue example (#712)
Text and dialog examples by larold
(Looks good, merging)
2024-11-17 16:25:17 -08:00
bbbbbr
ba0f17ca5b Merge pull request #729 from bbbbbr/lcc/noi_add_missing_mkbinlist_args
LCC: NES target: turn on missing makebin arguments (mkbinlist)
2024-11-17 02:25:01 -08:00
bbbbbr
6d9291502d LCC: NES target: turn on missing makebin arguments (mkbinlist) 2024-11-17 02:24:11 -08:00
Toxa
c2a3488821 SM83/Z80: register usage hints for the RNG functions 2024-11-13 17:33:43 +03:00
bbbbbr
c97d278cd4 Merge pull request #727 from bbbbbr/mbc7_misc_docs
Update and correct docs and comments related to MBC7
2024-11-09 23:04:36 -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
2dba64d663 Merge pull request #723 from bbbbbr/examples/mbc7_accelerometer
Examples: MBC7 support and example
2024-10-23 03:11:49 -07:00
bbbbbr
cd9be14784 Export _vbl_done for z80 platforms as well
- Also fix incorrect flag state comment for gb version
2024-10-23 03:05:34 -07:00
bbbbbr
0e2243641b Examples: MBC7 support and example 2024-10-23 01:47:38 -07:00
Michel Iwaniec
fbd7653313 NES: Fix bugs with non-multiple-of-2 (/4) map width in set_bkg_submap_attributes (#722)
* Add +1 before shift in inline function set_bkg_submap_attributes
* Add-with carry after right-shift of width in set_bkg_submap_attributes_nes16x16
2024-10-20 00:59:54 +01:00
Michel Iwaniec
d009bfeeda NES: Fix bug with multiple column attribute updates (#721)
* Make sure that each column re-adds PPU lo offset instead of storing it
* Wrap functionality in a macro WRITEVERT
2024-10-20 00:10:49 +01:00
Michel Iwaniec
0c243451c5 NES: Refactor NES palette setting functions for smaller code (#720)
* Refactor set_bkg_palette / set_sprite_palette
* Refactor set_bkg_palette_entry / set_sprite_palette_entry
2024-10-19 22:57:08 +01:00
Michel Iwaniec
94793354ab NES: Add reset function for compatibility (#719) 2024-10-16 00:57:33 +01:00
Michel Iwaniec
2de8c0dc5b NES: Add delay function for compatibility (#718) 2024-10-15 14:44:17 +01:00
bbbbbr
2a65101b1b Merge pull request #717 from gbdk-2020/romusage/update_130
romusage: upgrade from 1.2.8 to 1.3.0
2024-10-11 23:51:53 -07:00
bbbbbr
fc8cd5b9ca romusage: upgrade from 1.2.8 to 1.3.0
# Version 1.3.0
- `-b:HEXVAL:[...]` Set hex bytes treated as Empty in ROM files (.gb/etc) (default `FF`(255), ex use 255 AND 0: `-b:FF:00`
- Improve error messaging
- Allow filename at any location in option arguments

# Version 1.2.9
- `-nMEM` Hide memory regions with case sensitive substring (ex hide all RAM: `-nMEM:RAM`)
2024-10-11 23:50:59 -07:00
bbbbbr
1c1c8f9b47 Merge pull request #716 from gbdk-2020/megaduck/laptop_examples
Examples: MegaDuck Laptop: Speech example
2024-10-05 22:45:54 -07:00
bbbbbr
2b1bfdc841 Examples: MegaDuck Laptop: Speech example
- Also fix up missing end of file lines in makefile.targets for other two examples
2024-10-05 22:31:22 -07:00
bbbbbr
3688b18fc7 Merge pull request #715 from gbdk-2020/megaduck/laptop_examples
MegaDuck laptop examples (kbd, rtc)
2024-10-02 03:41:53 -07:00