diff options
Diffstat (limited to 'gbdk/docs/ChangeLog')
| -rw-r--r-- | gbdk/docs/ChangeLog | 272 |
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... |
