summaryrefslogtreecommitdiffstats
path: root/gbdk/docs/ChangeLog
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-06-02 15:28:40 +0200
committerLouis Burda <quent.burda@gmail.com>2022-06-02 15:28:40 +0200
commit5bc16063c29aa4d3d287ebd163ccdbcbf54c4f9f (patch)
treec131f947a37b3af2d14d41e9eda098bdec2d061c /gbdk/docs/ChangeLog
parent78a5f810b22f0d8cafa05f638b0cb2e889824859 (diff)
downloadcscg2022-gearboy-master.tar.gz
cscg2022-gearboy-master.zip
Added submodule filesHEADmaster
Diffstat (limited to 'gbdk/docs/ChangeLog')
-rw-r--r--gbdk/docs/ChangeLog272
1 files changed, 272 insertions, 0 deletions
diff --git a/gbdk/docs/ChangeLog b/gbdk/docs/ChangeLog
new file mode 100644
index 00000000..ff1f58b9
--- /dev/null
+++ b/gbdk/docs/ChangeLog
@@ -0,0 +1,272 @@
+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...