Permalink
Cannot retrieve contributors at this time
207 lines (192 sloc)
11.1 KB
| 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... |