mirror of
https://github.com/gbdk-2020/gbdk-2020.git
synced 2026-03-14 11:18:27 +01:00
308 lines
15 KiB
Plaintext
308 lines
15 KiB
Plaintext
gbdk-4.1.1
|
|
- Library fixes/improvements
|
|
- Fixed RGB() and RGB8() macros
|
|
|
|
gbdk-4.1.0
|
|
- Experimental Support for MSXDOS and NES. These are not yet fully functional
|
|
- SDCC
|
|
- The `gbz80` port was renamed to to `sm83`. Some projects may require updates
|
|
- The default calling convention changed in SDCC 4.2
|
|
- See 4.1.0 Release in "Migrating to new GBDK Versions" in the docs
|
|
- Library fixes/improvements
|
|
- SGB: Use longer wait between the SGB packet transfers
|
|
- SMS/GG: less screen artifacts on startup, cgb_compatibility()
|
|
- Fixed: get_sprite_data(), get_bkg_data(), get_win_data() when @LCDCF_BG8000 bit of LCDC_REG is set
|
|
- Toolchain
|
|
- png2asset: Many new tileset and processing features
|
|
-tiles_only, -maps_only, -metasprites_only, -source_tileset, -keep_duplicate_tiles, -bin, -transposed, -spr16x16msx, -use_nes_attributes, -use_nes_colors
|
|
- gbcompress
|
|
- Bug fixes and added --bank=<num>
|
|
- lcc
|
|
- Add -yoA if no ROM size specified with -autobank
|
|
- Fixed broken `-E` Preprocess only flag
|
|
- Added makecom for post-processing msxdos binaries
|
|
- bankpack
|
|
- Added -reserve=<bank>:<size> to reserve space during packing
|
|
- ihxcheck
|
|
- Check and warn for bank overflows under specific conditions
|
|
- Examples
|
|
- Added example for APA image mode with more than 256 tiles
|
|
- Added SGB Sound Effects example
|
|
- Changed to new WAV sound example
|
|
- Updated documentation
|
|
- Licensing
|
|
- Status of licensing clarified with consent from GBDK original authors, added licensing folder
|
|
|
|
gbdk-4.0.6
|
|
- Support for MegaDuck
|
|
- Library fixes/improvements
|
|
- fix RNG for SMS/GG
|
|
- check for overflow in metasprites handling routines
|
|
- set_*_based_tiles() / set_*_based_submap() set tilemaps using tile offset
|
|
- add_low_priority_TIM() set timer ISR handler that allows nested interrupts
|
|
- rename gb/BGB_emu.h into gb/EMU_debug.h
|
|
- Intellisense-friendly headers (hide SDCC dialect features)
|
|
- other minor fixes
|
|
- Toolchain
|
|
- png2mtspr
|
|
- support for 4bpp graphics and SGB borders
|
|
- new -tile_origin parameter
|
|
- Updated documentation
|
|
|
|
gbdk-4.0.5
|
|
- Support for Sega Master Sysyem/Sega Game Gear
|
|
- z80 library which provide compatibility layer as well as platform-specific functions
|
|
- support for the new targets on the toolchain side
|
|
- cross-platform examples (gnu make is required)
|
|
- Library fixes/improvements
|
|
- low level register/constant definitions for all targets
|
|
- DEVICE_* constants
|
|
- BANK* macros
|
|
- some headers were moved from gb/* into gbdk/*
|
|
- bcd.h, console.h, far_ptr.h, font.h, gbdecompress.h, metasprites.h
|
|
- new headers:
|
|
- gbdk/platform.h: includes specific platform headers depending on the target
|
|
- gbdk/incbin.h: INCBIN* macros for including of raw binary data
|
|
- gbdk/rledecompress.h: RLE decompression functions
|
|
- itoa()/uitoa()/ltoa()/ultoa() require radix parameter (GB target ignores it and assumes radix is 10)
|
|
- fixed get_bkg_tile_xy()
|
|
- other minor fixes/enhancements
|
|
- Toolchain
|
|
- lcc
|
|
- ability to pass target port/platform
|
|
- support for linker files
|
|
- bankpack
|
|
- support for linker files
|
|
- support for SMS/GG specifics
|
|
- png2mtspr was renamed to png2asset
|
|
- tilemaps/tiledata export without metasprite descriptors
|
|
- CGB support
|
|
- support for RLE compression in gbcompress
|
|
- New examples
|
|
- cross-platform examples
|
|
- INCBIN example
|
|
- on-the-fly RLE data decompression example
|
|
- Updated documentation
|
|
|
|
gbdk-4.0.4
|
|
- Updated documentation
|
|
- Library was improved
|
|
- Switch to standard types declared in stdint.h and stdbool.h
|
|
- separate cgb.h and sgb.h from gb.h (possible breaking change)
|
|
- get_vram_byte(), get_win_tile_xy(), get_bkg_tile_xy(), set_tile_data()
|
|
- fix broken decompression to VRAM routines
|
|
- Multiple minor improvements
|
|
- png2mtspr improvements and bug fixes
|
|
- support for code relocation with bankpack
|
|
- support for link scripts in lcc
|
|
- support for C input into gbcompress
|
|
- other lcc frontend improvements
|
|
|
|
gbdk-4.0.3
|
|
- Updated documentation, including the PDF version
|
|
- Library was improved
|
|
- Metasprites support (see example)
|
|
- GBCompress decompressor included (see example)
|
|
- Large map scrolling helper functions (see example)
|
|
- Multiple minor improvements
|
|
- New tools
|
|
- png2mtspr converts png images into metasprite structs
|
|
- gbcompress compression utility, compatible with GBTD/GBMB
|
|
|
|
gbdk-4.0.2
|
|
- Updated documentation
|
|
- Library was improved
|
|
- Linking with stdio.h does not require that much rom now
|
|
- Default font is changed to the smaller one (102 characters), that leaves space for user tiles
|
|
- Fixed broken support for multiplying longs
|
|
- Multiple minor improvements
|
|
- New bankpack feature, allows automatic bank allocation for data and code, see banks_autobank example, feature is in beta state, use with care
|
|
- Lcc improvements
|
|
|
|
gbdk-4.0.1
|
|
- Updated documentation
|
|
- IHX is checked for correctness before the makebin stage. That allows to warn about overwriting the same ROM addresses (SDCC toolchain does not check this anymore).
|
|
- Library was improved
|
|
- set_*_tiles() now wrap maps around horizontal and vertical boundaries correctly
|
|
- new fill_*_rect() functions to clear rectangle areas
|
|
- runtime initialization code now does not initialize whole WRAM with zeros anymore, that allows BGB to raise exceptions when code tries to read WRAM that was not written before.
|
|
- enhanced SGB support
|
|
- joypad_init()/joypad_ex() support for multiple joypads
|
|
- SGB border example
|
|
- _current_bank variable is updated when use bank switching macros
|
|
- Reorganized examples: each example is in separate folder now, that simplifies understanding.
|
|
- Lcc improvements
|
|
|
|
gbdk-4.0
|
|
- GBDK now requires SDCC 4.0.3 or higher, that has fully working toolchain. Old link-gbz80 linker is not used anymore, sdldgb and makebin are used to link objects and produce binary roms; maccer tool is no longer needed either
|
|
- SDCC 4.0.3 has much better code generator which produces smaller and faster code. Code is twice faster
|
|
- SOURCE LEVEL DEBUGGING is possible now! Native toolchain produces *.CDB files that contain detailed debug info. Look for EMULICIOUS extension for vs.code. It supports breakpoints, watches, inspection of local variables, and more!
|
|
- SDCC 4.0.4 has fixed RGBDS support; library is not updated to support that in full yet, but it is possible to assemble and link code emitted by SDCC with RGBDS
|
|
- New banked trampolines are used, they are faster and smaller
|
|
- New (old) initialization for non-constant arrays do NOT require 5 times larger rom space than initialized array itself, SDCC even tries to compress the data
|
|
- Library was improved
|
|
- itoa/ltoa functions were rewritten, div/mod is not required now which is about 10 times faster
|
|
- sprite functions are inline now, which is faster up to 12 times and produces the same or smaller code; .OAM symbol is renamed into _shadow_OAM that allows accessing shadow OAM directly from C code
|
|
- interrupt handling was revised, it is now possible to make dedicated ISR's, that is important for time-sensitive handlers such as HBlank.
|
|
- printf/sprintf were rewritten and splitted, print functions are twice faster now and also requre less rom space if you use sprintf() only, say, in bgb_emu.h
|
|
- crash_handler.h - crash handler that allows to detect problems with ROMs after they are being released (adapted handler, originally written by ISSOtm)
|
|
- improved and fixed string.h
|
|
- many other improvements and fixes - thanks to all contributors!
|
|
- Revised examples
|
|
- Improved linux support
|
|
- Lcc has been updated
|
|
- it works with the latest version of sdcc
|
|
- quoted paths with spaces are working now
|
|
|
|
gbdk-3.2
|
|
- support for BCD numbers
|
|
- support for far pointers, that allow to call functions in other banks by pointer
|
|
- some useful parts of native SDCC library are merged into GBDK (stdint, limits, stdbool, setjmp, stdatomic and so on)
|
|
|
|
gbdk-3.1
|
|
- Banked functions are working!
|
|
- Check this [post](https://gbdev.gg8.se/forums/viewtopic.php?id=700) for more info
|
|
- Check the examples/gb/banked code for basic usage
|
|
- USE_SFR_FOR_REG is the default now [check here why](https://gbdev.gg8.se/forums/viewtopic.php?id=697)
|
|
- Fixed examples that were not compiling in the previous version and some improvements in a few of them. Removed all warnings caused by changing to the new SDCC
|
|
- Fixed bug in lcc that was causing some files in the temp folder not being deleted
|
|
- Removed as-gbz80 (the lib is now compiled with sdasgb thanks to this [workaround](https://github.com/Zal0/gbdk-2020/commit/d2caafa4a66eb08998a14b258cb66af041a0e5c8))
|
|
- Profile support with bgb emulator
|
|
- Basic support including <gb/bgb_emu.h> and using the macros BGB_PROFILE_BEGIN and BGB_PROFILE_END. More info in this [post](https://gbdev.gg8.se/forums/viewtopic.php?id=703)
|
|
- For full profiling [check this repo](https://github.com/untoxa/bgb_profiling_toolkit/blob/master/readme.md) and this [post](https://gbdev.gg8.se/forums/viewtopic.php?id=710)
|
|
|
|
gbdk-3.00
|
|
Updated SDCC to v4.0
|
|
The new linker is not working so the old version is still there
|
|
There is an issue with sdagb compiling drawing.s (the JP in
|
|
line 32 after ".org .MODE_TABLE+4*.G_MODE" it's writing more
|
|
than 4 bytes invading some addresses required by input.s:41)
|
|
Because of this, all .s files in libc have been assembled
|
|
with the old as-gbz80 and that's why it is still included
|
|
|
|
gbdk-2.96
|
|
* Many changes. Code generated is now much more reliable and
|
|
passes all of sdcc's regression suite. Added support for large
|
|
sets of local variables (>127 bytes). Added full 32 bit long
|
|
support. Still no floating pt support.
|
|
|
|
gbdk-2.95-3
|
|
* Stopped lcc with sdcc from leaking .cdb files all across
|
|
/tmp.
|
|
* Optimised < and > for 16 bit varibles.
|
|
* Added a new lexer to sdcc. Compiling files with large
|
|
initalised arrays takes 31% of the time (well, at least
|
|
samptest.c does :)
|
|
|
|
gbdk-2.95-2
|
|
* Added model switching support
|
|
--model-medium uses near (16 bit) pointers for data, and
|
|
banked calls for anything not declared as 'nonbanked'
|
|
--model-small uses near (16 bit) pointers for data and
|
|
calls. Nothing uses banked calls. 'nonbanked' functions
|
|
are still placed in HOME. Libraries are under lib/medium
|
|
and lib/small.
|
|
* Added the gbdk version to 'sdcc --version'
|
|
* Changed the ways globals are exported, reducing the amount
|
|
of extra junk linked in.
|
|
* Turned on the optimisations in flex. Large constant arrays
|
|
like tile data should compile a bit faster.
|
|
|
|
gbdk-2.95
|
|
* Fixed 'a >> c' for c = [9..15]
|
|
* Fixed 'a << c' for c = [9..15]
|
|
* no$gmb doesn't support labels of > 32 chars. The linker now
|
|
trims all labels to 31 chars long.
|
|
* Fixed wait_vbl for the case where you miss a vbl
|
|
* Fixed + and - for any type where sizeof == 2 and one of the
|
|
terms was on the stack. This includes pointers and ints. Fixes
|
|
the text output bug in the examples. Should be faster now as
|
|
well. Note that + and - for longs is still broken.
|
|
* Fixed the missing */ in gb.h
|
|
* Added basic far function support. Currently only works for isas
|
|
and rgbasm. See examples/gb/far/*
|
|
* bc is now only pushed if the function uses it. i.e. something
|
|
like:
|
|
int silly(int i)
|
|
{
|
|
return i;
|
|
}
|
|
will not have the push bc; pop bc around it.
|
|
* Better rgbasm support. Basically:
|
|
o Use "sdcc -mgbz80 --asm=rgbds file.c" for each file.c
|
|
o Use "sdcc -mgbz80 --asm=rgbds crt0.o gbz80.lib gb.lib file1.o file2.o..."
|
|
|
|
to link everything together. The .lib files are generated using
|
|
astorgb.pl and sdcc to turn the gbdk libraries into something
|
|
rgbds compatible.
|
|
The libraries are _not_ fully tested. Trust nothing. But give it
|
|
a go :)
|
|
* Ran a spell checker across the README and ChangeLog
|
|
|
|
gbdk-2.94
|
|
* Fixed
|
|
#define BLAH 7 // Unterminated ' error
|
|
in sdcpp
|
|
* Fixed
|
|
SCY_REG += 2, SCY_REG -= 5
|
|
(add and subtract in indirect space) as they were both quite broken.
|
|
* externs and static's now work as expected.
|
|
* You can now specify which bank code should be put into using a
|
|
#pragma e.g:
|
|
#pragma bank=HOME
|
|
Under rgbds and asxxxx putting code in the HOME bank will force
|
|
the code into bank 0 - useful for library functions. The most
|
|
recent #pragma bank= will be the one used for the whole file.
|
|
* Fixed an interesting bug in the caching of lit addresses
|
|
* Added support for accessing high registers directly using the
|
|
'sfr' directive. See libc/gb/sfr.s and gb/hardware.h for an
|
|
example. It should be possible with a bit of work to make high
|
|
ram directly usable by the compiler; at the moment it is
|
|
experimental. You can test sfr's by enabling USE_SFR_FOR_REG=1
|
|
* Added remove_VBL etc functions.
|
|
* Documented the libs - see the gbdk-doc tarball distributed
|
|
seperatly.
|
|
* Two dimensional arrays seem to be broken.
|
|
|
|
gbdk-2.93
|
|
* Added multi-bank support into the compiler - The old -Wf-boxx
|
|
and -Wf-baxx options now work
|
|
* Has preliminary support for generating rgbds and ISAS compatible
|
|
assembler. Try -W--asm=rgbds or -W--asm=isas. The ISAS code is
|
|
untested as I dont have access to the real assembler.
|
|
* RSH is fixed
|
|
* AND is fixed
|
|
* The missing parts of 2.1.0's libs are there. Note: They are
|
|
untested.
|
|
* The dscan demo now fully works (with a hack :)
|
|
* There is a bug with cached computed values which are later used
|
|
as pointers. When the value is first used as a BYTE arg, then
|
|
later as a pointer the pointer fails as the high byte was never
|
|
computed and is now missing. A temporary fix is to declare
|
|
something appropriate as 'volatile' to stop the value being
|
|
cached. See dscan.c/bombs() for an example.
|
|
|
|
gbdk-2.92-2:
|
|
* win32 only. Takes care of some of the install bugs, including:
|
|
- Now auto detects where it is installed.
|
|
This can be overridden using set GBDKDIR=...
|
|
- Problems with the installer (now uses WinZip)
|
|
- Problems with the temp directory
|
|
Now scans TMP, TEMP, TMPDIR and finally c:\tmp
|
|
- cygwin1.dll and 'make' are no longer required
|
|
gbdk is now built using mingw32 which is win32 native
|
|
make.bat is automagically generated from the Makefile
|
|
- I've reverted to using WORD for signed 16 bit etc.
|
|
GBDK_2_COMPAT is no longer required.
|
|
|
|
gbdk-2.92:
|
|
* All the examples now work (with a little bit of patching :)
|
|
* Fixed problem with registers being cached instead of being
|
|
marked volatile.
|
|
* More register packing - should be a bit faster.
|
|
* You can now install somewhere except c:\gbdk | /usr/lib/gbdk
|
|
* Arrays initialised with constant addresses a'la galaxy.c now
|
|
work.
|
|
* Fixed minor bug with 104$: labels in as.
|
|
* Up to 167d/s...
|