cscg22-gearboy

CSCG 2022 Challenge 'Gearboy'
git clone https://git.sinitax.com/sinitax/cscg22-gearboy
Log | Files | Refs | sfeed.txt

10_release_notes.md (28658B)


      1@page docs_releases GBDK Releases
      2
      3The GBDK 2020 releases can be found on Github:
      4https://github.com/gbdk-2020/gbdk-2020/releases
      5
      6
      7# GBDK 2020 Release Notes
      8## GBDK 2020 4.0.6
      9  2022/02
     10  - Building GBDK
     11    - Changed to target older version of macOS (10.10) when building for better compatibility
     12  - Platforms
     13    - Added support for Mega Duck / Cougar Boy (`duck`). See @ref docs_supported_consoles
     14  - Library
     15    - Added @ref memcmp()
     16    - Added @ref add_low_priority_TIM() function for timer interrupts which allow nesting for GB/CGB
     17    - Added @ref set_bkg_based_tiles(), @ref set_bkg_based_submap(), @ref set_win_based_tiles(), @ref set_win_based_submap() for when a map's tiles don't start at VRAM index zero
     18    - Added @ref clock() for SMS/GG
     19    - Added macro definitions for SDCC features:
     20      - `#define SFR     __sfr`
     21      - `#define AT(A)   __at(A)`
     22    - Added check for OAM overflow to metasprite calls for GB/CGB
     23    - Added constant definitions @ref PSG_LATCH, @ref PSG_CH0, @ref PSG_CH1, @ref PSG_CH2, @ref PSG_CH3, @ref PSG_VOLUME for SMS/GG
     24    - Renamed `bgb_emu.h` to `emu_debug.h` and BGB_* functions to EMU_*.
     25      - Aliases for the BGB_* ones and a `bgb_emu.h` shim are present for backward compatibility
     26    - Changed headers to wrap SDCC specific features (such as `NONBANKED`) with `#ifdef __SDCC`
     27    - Changed @ref rand() and @ref arand() to return `uint8_t` instead of `int8_t` (closer to the standard)
     28    - Fixed declaration for @ref PCM_SAMPLE and definition for @ref AUD3WAVE
     29    - Fixed definition of `size_t` to be `unsigned int` instead of  `int`
     30    - Fixed @ref vmemcpy() and @ref memmove() for SMS/GG
     31    - Fixed random number generation for SMS/GG
     32    - Fixed letter `U` appearing as `K` for min font
     33    - Fixed define name in crash_handler.h
     34    - Exposed @ref __rand_seed
     35  - Toolchain / Utilities
     36    - @ref utility_png2asset "png2asset"
     37      - Added SMS/GG graphics format support
     38      - Added 4bpp and SGB borders
     39      - Added warning when image size is not an even multiple of tile size
     40      - Added `-tile_origin` offset option for when map tiles do not start at tile 0 in VRAM
     41      - Added `*_TILE_COUNT` definition to output
     42      - Fixed CGB `...s_map_attributes` type definition in output
     43      - Fixed values for `num_palettes` in output
     44      - Fixed incorrect `TILE_COUNT` value when not `-using_structs`
     45    - @ref lcc
     46      - Changed @ref makebin flags to turn off Nintendo logo copy for GB/CGB (use version in crt instead)
     47      - Fixed lcc handling of makebin `-x*` arguments
     48  - Examples
     49    - Added logo example (cross-platform)
     50    - Added @ref ISR_VECTOR example of a raw ISR vector with no dispatcher for GB/CGB
     51    - Changed sgb_border example to use png2asset for graphics
     52    - Changed use of set_interrupts() in examples so it's outside critical sections (since it disables/enables interrupts)
     53    - Changed cross-platform auto-banks example to use .h header files
     54    - Changed SGB border example to also work with SGB on PAL SNES
     55  - Docs
     56    - Added new section: Migrating From Pre-GBDK-2020 Tutorials
     57
     58
     59## GBDK 2020 4.0.5
     60  2021/09
     61  - Includes SDCC version 12539 with GBDK-2020 patches for Z80
     62  - Known Issues
     63    - SDCC: `z80instructionSize() failed to parse line node, assuming 999 bytes`
     64      - This is a known issue with the SDCC Peephole Optimizer parsing and can be ignored.
     65    - `-bo<n>` and `-ba<n>` are not supported by the Windows build of @ref sdcc
     66    - On macOS the cross platform `banks` example has problems parsing the filename based ROM and RAM bank assignments into `-bo<n>` and `-ba<n>`
     67  - Added support for new consoles. See @ref docs_supported_consoles
     68    - Analogue Pocket (`ap`)
     69    - Sega Master System (`sms`) and Game Gear (`gg`)
     70  - Library
     71    - Fixed error when calling get_bkg_tile_xy: `?ASlink-Warning-Undefined Global '.set_tile_xy' referenced by module `
     72?ASlink-Warning-Byte PCR relocation error for symbol  .set_tile_xy
     73    - Variables in static storage are now initialized to zero per C standard (but remaining WRAM is not cleared)
     74    - Added many new register flag constants and names. For example:
     75      - @ref rLCDC is a new alias for @ref LCDC_REG
     76      - @ref LCDCF_WINON, @ref LCDCF_WINOFF, @ref LCDCF_B_WINON
     77    - Added @ref BANK(), @ref BANKREF(), @ref BANKREF_EXTERN()
     78    - Added @ref INCBIN(), @ref BANK(), @ref INCBIN_SIZE(), @ref INCBIN_EXTERN()
     79    - Added generic @ref SWITCH_ROM() and @ref SWITCH_RAM()
     80    - Added @ref BGB_printf() and updated emulator debug output.
     81    - Added @ref set_native_tile_data(), @ref set_tile_map(), @ref set_1bpp_colors, @ref set_bkg_1bpp_data, @ref set_sprite_1bpp_data, @ref set_2bpp_palette, @ref set_bkg_2bpp_data, @ref set_sprite_2bpp_data, @ref set_tile_2bpp_data (sms/gg only), @ref set_bkg_4bpp_data (sms/gg only), @ref set_sprite_4bpp_data (sms/gg only)
     82    - Added RLE decompression support: @ref rle_init(), @ref  rle_decompress(),
     83    - Changed @ref itoa(), @ref uitoa(), @ref ltoa(), @ref ultoa() to now require a radix value (base) argument to be passed. On the Game Boy and Analogue Pocket the parameter is required but not utilized.
     84  - Examples
     85    - Added cross-platform examples (build for multiple consoles: gb, ap, sms, gg)
     86    - Added sms, gg, pocket(ap) examples
     87    - Added incbin example
     88    - Added simple physics sub-pixel / fixed point math example
     89    - Added rle decompression example
     90    - Changed windows make.bat files to compile.bat
     91    - Bug fixes and updates for existing examples    
     92  - Toolchain / Utilities
     93    - @ref utility_png2asset "png2asset"
     94      - @ref utility_png2asset "png2asset" is the new name for the `png2mtspr` utility
     95      - Added collision rectangle width and height (`-pw`, `-ph`)
     96      - Added option to use the palette from the source png (`-keep_palette_order`)
     97      - Added option to disable tile flip (`-noflip`)
     98      - Added export as map: tileset + bg (`-map`)
     99      - Added option to use CGB BG Map attributes (`-use_map_attributes`)
    100      - Added option to group the exported info into structs (`-use_structs`)
    101    - @ref lcc
    102      - Use `-m` to select target port and platform: "-m[port]:[plat]" ports:`gbz80,z80` plats:`ap,gb,sms,gg`
    103      - Changed default output format when not specified from `.ihx` to `.gb` (or other active rom extension)
    104      - Changed lcc to always use the linkerfile `-lkout=` option when calling bankpack
    105      - Fixed name generation crash when outfile lacks extension
    106    - @ref bankpack
    107      - Added linkerfile input and output: `-lkin=<file>`, `-lkout=<file>`
    108      - Added selector for platform specific behavior `plat=<plat>` (Default:gb, Avaialble:`gb,sms`). sms/gg targets prohibits packing `LIT_N` areas in the same banks as `CODE_N` areas
    109      - Added randomization for auto-banks (`-random`) for debugging and testing
    110    - @ref utility_gbcompress
    111      - Added C source array format output (--cout) (optional variable name argument --varname=)
    112      - Added C source array format input (--cin) (experimental)
    113      - Added block style rle compression and decompression mode: `--alg=rle`
    114      - Fixed comrpession errors when input size was larger than 64k
    115  - Docs
    116    - Added @ref docs_supported_consoles section
    117    - Various doc updates and improvements
    118  
    119
    120## GBDK 2020 4.0.4
    121  2021/06
    122  - Library
    123    - Support SDCC INITIALIZER area (SDCC ~12207+)
    124    - Added @ref get_vram_byte() / @ref get_win_tile_xy() / @ref get_bkg_tile_xy()
    125    - Added @ref set_tile_data()
    126    - Fixed SGB detection
    127    - Fixed broken @ref get_tiles() / @ref set_tiles()
    128    - Fixed broken token handling in @ref gb_decompress_sprite_data() / @ref gb_decompress_bkg_data() / @ref gb_decompress_win_data()
    129    - Changed all headers to use standard `stdint.h` types (ex: `uint8_t` instead of `UINT8`/`UBYTE`)
    130    - Made sample.h, cgb.h and sgb.h independent from gb.h
    131  - Examples
    132    - Added project using a .lk linkerfile
    133    - Changed all examples to use standard stdint.h types
    134    - Moved banks_farptr and banks_new examples to "broken" due to SDCC changes
    135  - Toolchain / Utilities
    136    - png2mtspr
    137      - Added option to change default value for sprite property/attributes in (allows CGB palette, BG/WIN priority, etc).
    138      - Improved: Turn off suppression of "blank" metasprite frames (composed of entirely transparent sprites)
    139      - Fixed endless loop for png files taller than 255 pixels
    140    - bankpack
    141      - Fixed -yt mbc specifier to also accept Decimal
    142      - Improved: bank ID can be used in same file it is declared. Requires SDCC 12238+ with `-n` option to defer symbol resolution to link time.
    143    - gbcompress
    144      - Added C source input (expirimental) and output
    145      - Added size `#defines`
    146    - lcc
    147      - Added `-no-libs` and `-no-crt` options
    148      - Added support for .lk linker files (useful when number of files on lcc command line exceeds max size on windows)
    149      - Added support for converting .ihx to .gb
    150      - Added rewrite .o files -> .rel for linking when called with `-autobank` and `-Wb-ext=.rel`
    151      - Workaround @ref makebin `-Wl-yp` formatting segfault
    152  - Docs
    153    - Improved utility_png2mtspr documentation
    154    - Various doc updates and improvements
    155
    156
    157## GBDK 2020 4.0.3
    158  2021/03
    159  - Library
    160    - Added @ref set_vram_byte()
    161    - Added @ref set_bkg_tile_xy() / @ref set_win_tile_xy()
    162    - Added @ref get_bkg_xy_addr() / @ref get_win_xy_addr()
    163    - Added @ref set_bkg_submap() / @ref set_win_submap()
    164    - Added metasprite api support
    165    - Added gb_decompress support
    166    - Added @ref calloc / @ref malloc / @ref realloc / @ref free and generic @ref memmove
    167    - Improved @ref printf(): ignore %0 padding and %1-9 width specifier instead of not printing, support upper case %X
    168    - Fixed @ref line(): handle drawing when x1 is less than x2
    169  - Examples
    170    - Added large_map: showing how to use @ref set_bkg_submap()
    171    - Added scroller: showing use of @ref get_bkg_xy_addr(), @ref set_bkg_tile_xy() and @ref set_vram_byte
    172    - Added gbdecompress: de-compressing tile data into vram
    173    - Added metasprites: show creating a large sprite with the new metasprite api
    174    - Added template projects
    175    - Fixed build issue with banks_autobank example
    176    - Improved sgb_border
    177  - Toolchain / Utilities
    178    - Added @ref utility_gbcompress utility
    179    - Added utility_png2mtspr metasprite utility
    180  - Docs
    181    - Added extensive documentation (some of which is imported and updated from the old gbdk docs)
    182    - Added PDF version of docs
    183 
    184
    185## GBDK 2020 4.0.2
    186  2021/01/17
    187  - Includes SDCC snapshot build version 12016 (has a fix for duplicate debug symbols generated from inlined header functions which GBDK 4.0+ uses)
    188  - Updated documentation
    189  - Library was improved
    190      - Linking with stdio.h does not require that much ROM now
    191      - Default font is changed to the smaller one (102 characters), that leaves space for user tiles
    192      - Fixed broken support for multiplying longs
    193      - memset/memcpy minor enhancements
    194      - safer copy-to-VRAM functions
    195      - loading of 1bit data fixed, also now it is possible to specify pixel color
    196      - Improved code generation for the GBDK Library with SDCC switch on by default: `--max-allocs-per-node 50000`
    197      - fixed wrong parameter offsets in hiramcpy() (broken ram_function example)
    198      - Multiple minor improvements
    199  - New bankpack feature, allows automatic bank allocation for data and code, see banks_autobank example, feature is in beta state, use with care
    200  - Lcc improvements
    201    - Fixed option to specify alternate base addresses for shadow_OAM, etc
    202  - Examples: Added bgb debug example
    203
    204
    205## GBDK 2020 4.0.1
    206  2020/11/14
    207  - Updated API documentation
    208  - 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).
    209  - Library was improved
    210    - set_*_tiles() now wrap maps around horizontal and vertical boundaries correctly
    211    - new fill_*_rect() functions to clear rectangle areas
    212    - 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.
    213    - enhanced SGB support
    214     - joypad_init() / joypad_ex() support for multiple joypads
    215     - SGB border example
    216    - _current_bank variable is updated when using bank switching macros
    217    - Reorganized examples: each example is in separate folder now, that simplifies understanding.
    218    - Lcc improvements
    219      - Fix -S flag
    220      - Fix default stack location from 0xDEFF to 0xE000 (end of WRAM1)
    221      - Fix cleanup of .adb files with -Wf--debug flag
    222      - Fix output not working if target is -o some_filename.ihx
    223
    224
    225## GBDK 2020 4.0
    226  2020/10/01
    227  - 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
    228    - SDCC 4.0.3 has much better code generator which produces smaller and faster code. Code is twice faster
    229    - 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!
    230    - 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 RGDBS
    231    - New banked trampolines are used, they are faster and smaller
    232    - 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
    233  - Library was improved
    234    - itoa/ltoa functions were rewritten, div/mod is not required now which is about 10 times faster
    235    - 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
    236    - interrupt handling was revised, it is now possible to make dedicated ISR's, that is important for time-sensitive handlers such as HBlank.
    237    - 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
    238    - crash_handler.h - crash handler that allows to detect problems with ROMs after they are being released (adapted handler, originally written by ISSOtm)
    239    - improved and fixed string.h
    240    - many other improvements and fixes - thanks to all contributors!
    241  - Revised examples
    242  - Improved linux support
    243  - Lcc has been updated
    244    - it works with the latest version of sdcc
    245    - quoted paths with spaces are working now
    246
    247
    248## GBDK 2020 3.2
    249  2020/06/05
    250  - Fixed OAM initialization that was causing a bad access to VRAM
    251  - Interrupt handlers now wait for lcd controller mode 0 or 1 by default to prevent access to inaccessible VRAM in several functions (like set_bkg_tiles)
    252  - Several optimizations here and there
    253
    254
    255## GBDK 2020 3.1.1
    256  2020/05/17
    257  - Fixed issues with libgcc_s_dw2-1.dll
    258
    259
    260## GBDK 2020 3.1
    261  2020/05/16
    262  - Banked functions are working! The patcher is fully integrated in link-gbz80, no extra tools are needed. It is based on Toxa's work
    263    - Check this post for more info
    264    - Check the examples/gb/banked code for basic usage
    265  - Behavior formerly enabled by USE_SFR_FOR_REG is on by default now (no need to specify it, it isn't a tested `#ifdef` anymore). check here why:
    266    https://gbdev.gg8.se/forums/viewtopic.php?id=697
    267  - 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
    268  - Fixed bug in lcc that was causing some files in the temp folder not being deleted
    269  - Removed as-gbz80 (the lib is now compiled with sdasgb thanks to this workaround)
    270    https://github.com/gbdk-2020/gbdk-2020/commit/d2caafa4a66eb08998a14b258cb66af041a0e5c8
    271  - Profile support with bgb emulator
    272    - Basic support including <gb/bgb_emu.h> and using the macros BGB_PROFILE_BEGIN and BGB_PROFILE_END. More info in this post
    273      https://gbdev.gg8.se/forums/viewtopic.php?id=703
    274    - For full profiling check this repo and this post
    275      https://github.com/untoxa/bgb_profiling_toolkit/blob/master/readme.md
    276      https://gbdev.gg8.se/forums/viewtopic.php?id=710
    277
    278
    279## GBDK 2020 3.0.1
    280  2020/04/12
    281  - Updated SDCC to v.4.0
    282  - Updated LCC to work with the new compiler
    283
    284
    285## GBDK 2020 3.0
    286  2020/04/12
    287  - Initial GBDK 2020 release  
    288  Updated SDCC to v4.0
    289  The new linker is not working so the old version is still there
    290  There is an issue with sdagb compiling drawing.s (the JP in 
    291  line 32 after ".org .MODE_TABLE+4*.G_MODE" it's writing more
    292  than 4 bytes invading some addresses required by input.s:41)
    293  Because of this, all .s files in libc have been assembled 
    294  with the old as-gbz80 and that's why it is still included
    295
    296
    297# Historical GBDK Release Notes
    298
    299## GBDK 2.96
    300  17 April, 2000  
    301  Many changes.  
    302  - Code generated is now much more reliable and
    303  passes all of sdcc's regression suite.
    304  - Added support for large sets of local variables (>127 bytes).
    305  - Added full 32 bit long  support.
    306  - Still no floating pt support.
    307
    308## GBDK 2.95-3
    309  19th August, 2000  
    310
    311  * Stopped lcc with sdcc from leaking .cdb files all across
    312    /tmp.
    313  * Optimised < and > for 16 bit varibles.
    314  * Added a new lexer to sdcc.  Compiling files with large
    315    initalised arrays takes 31% of the time (well, at least
    316    samptest.c does :)  
    317
    318  This is an experimental release for those who feel keen. The main change is a new lexer (the first part in the compilation process which recognises words and symbols like '!=' and 'char' and turns them into a token number) which speeds up compilation of large initialised arrays like tile data by a factor of three. Please report any bugs that show up - this is a big change.
    319
    320  I have also included a 'minimal' release for win32 users which omits the documentation, library sources, and examples. If this is useful I will keep doing it.
    321
    322## GBDK 2.95-2
    323  5th August, 2000  
    324  Just a small update. From the README:
    325
    326  * Added model switching support
    327     --model-medium uses near (16 bit) pointers for data, and
    328     banked calls for anything not declared as 'nonbanked'
    329     --model-small uses near (16 bit) pointers for data and
    330     calls.  Nothing uses banked calls.  'nonbanked' functions
    331     are still placed in HOME.  Libraries are under lib/medium
    332     and lib/small.
    333  * Added the gbdk version to 'sdcc --version'
    334  * Changed the ways globals are exported, reducing the amount
    335    of extra junk linked in.
    336  * Turned on the optimisations in flex.  Large constant arrays
    337    like tile data should compile a bit faster.
    338
    339## GBDK 2.95
    340  22nd July, 2000 
    341  * Fixed 'a << c' for c = [9..15]
    342  * no$gmb doesn't support labels of > 32 chars.  The linker now
    343  trims all labels to 31 chars long.
    344  * Fixed wait_vbl for the case where you miss a vbl
    345  * Fixed + and - for any type where sizeof == 2 and one of the
    346  terms was on the stack.  This includes pointers and ints. Fixes
    347  the text output bug in the examples.  Should be faster now as
    348  well.  Note that + and - for longs is still broken.
    349  * Fixed the missing */ in gb.h
    350  * Added basic far function support.  Currently only works for isas
    351  and rgbasm.  See examples/gb/far/*
    352  * bc is now only pushed if the function uses it.  i.e. something
    353  like:
    354      int silly(int i) 
    355      {
    356      return i;
    357      }   
    358  will not have the push bc; pop bc around it.
    359  * Better rgbasm support.  Basically:
    360         o Use "sdcc -mgbz80 --asm=rgbds file.c" for each file.c
    361         o Use "sdcc -mgbz80 --asm=rgbds crt0.o gbz80.lib gb.lib file1.o file2.o..."
    362  
    363  to link everything together.  The .lib files are generated using
    364  astorgb.pl and sdcc to turn the gbdk libraries into something
    365  rgbds compatible.
    366  The libraries are _not_ fully tested.  Trust nothing.  But give it
    367  a go :)
    368  * Ran a spell checker across the README and ChangeLog  
    369
    370  This is a recommended upgrade. Some of the big features are:
    371
    372  Decent rgbds support. All the libraries and most of the examples can now compile with rgbds as the assembler.
    373  Banked function support. It is now easier to break the 32k barrier from within C. Functions can live in and be called transparently from any bank. Only works with rgbds
    374  Fixed some decent bugs with RSH, LSH, and a nasty bug with + and - for int's and pointers.
    375  Various optimisations in the code generator.
    376
    377  7th July, 2000  
    378  Information on float and long support. Someone asked about the state of float/long support recently. Heres my reply:
    379
    380  long support is partly there, as is float support. The compiler will correctly recognise the long and float keywords, and will generate the code for most basic ops (+, -, &, | etc) for longs correctly and will generate the function calls for floats and hard long operations (*, /, %) correctly. However it wont generate float constants in the correct format, nor will it 'return' a long or float - gbdk doesn't yet support returning types of 4 bytes. Unfortunately its not going to make it into 2.95 as there's too much else to do, but I should be able to complete long support for 2.96
    381
    382## GBDK 2.94
    383  7th May, 2000  
    384  Many fixes - see the README for more.
    385
    386  7th May - Library documentation up. A good size part of the libraries that go with gbdk have been documented - follow the HTML link above to have a look. Thanks to quang for a good chunk of the gb.h documentation. Please report any errors :)
    387   * Fixed 
    388        \#define BLAH  7  // Unterminated ' error
    389      in sdcpp
    390    * Fixed
    391        SCY_REG += 2, SCY_REG -= 5
    392      (add and subtract in indirect space) as they were both quite broken.
    393    * externs and static's now work as expected.
    394    * You can now specify which bank code should be put into using a
    395      \#pragma e.g:
    396        \#pragma bank=HOME
    397    Under rgbds and asxxxx putting code in the HOME bank will force
    398    the code into bank 0 - useful for library functions.  The most
    399    recent \#pragma bank= will be the one used for the whole file.
    400    * Fixed an interesting bug in the caching of lit addresses
    401    * Added support for accessing high registers directly using the
    402    'sfr' directive.  See libc/gb/sfr.s and gb/hardware.h for an
    403    example.  It should be possible with a bit of work to make high
    404    ram directly usable by the compiler; at the moment it is
    405    experimental.  You can test sfr's by enabling USE_SFR_FOR_REG=1
    406    * Added remove_VBL etc functions.
    407    * Documented the libs - see the gbdk-doc tarball distributed
    408    seperatly.
    409    * Two dimensional arrays seem to be broken.
    410
    411## GBDK 2.93
    412  6th April, 2000  
    413  From the README
    414
    415  * Added multi-bank support into the compiler - The old -Wf-boxx
    416  and -Wf-baxx options now work
    417  * Has preliminary support for generating rgbds and ISAS compatible
    418  assembler.  Try -W--asm=rgbds or -W--asm=isas.  The ISAS code is
    419  untested as I dont have access to the real assembler.
    420  * RSH is fixed
    421  * AND is fixed
    422  * The missing parts of 2.1.0's libs are there.  Note: They are
    423  untested.
    424  * The dscan demo now fully works (with a hack :)
    425  * There is a bug with cached computed values which are later used
    426  as pointers.  When the value is first used as a BYTE arg, then
    427  later as a pointer the pointer fails as the high byte was never
    428  computed and is now missing.  A temporary fix is to declare
    429  something appropriate as 'volatile' to stop the value being
    430  cached.  See dscan.c/bombs() for an example.
    431
    432## GBDK 2.92-2 for win32
    433  26th March, 2000  
    434  This is a maintenance release for win32 which fixes some of the niggly install problems, especially:
    435  * win32 only.  Takes care of some of the install bugs, including:
    436     - Now auto detects where it is installed.
    437      This can be overridden using set GBDKDIR=...
    438     - Problems with the installer (now uses WinZip)
    439     - Problems with the temp directory
    440      Now scans TMP, TEMP, TMPDIR and finally c: tmp
    441     - cygwin1.dll and 'make' are no longer required
    442      gbdk is now built using mingw32 which is win32 native
    443      make.bat is automagically generated from the Makefile
    444     - I've reverted to using WORD for signed 16 bit etc.
    445      GBDK_2_COMPAT is no longer required.
    446
    447  WORDS are now back to signed. GBDK_2_COMPAT is no longer needed.
    448  Temporary files are created in TMP, TEMP, or TMPDIR instead of c: tmp
    449  The installer is no more as it's not needed. There is a WinZip wrapped version for those with the extra bandwidth :).
    450  gbdk autodetects where it is installed - no more environment variables.
    451  cygwin1.dll and make are no longer required - gbdk is now compiled with mingw32.
    452
    453  See the ChangeLog section in the README for more information.
    454
    455  21st March, 2000  
    456  Problems with the installer. It seems that the demo of InstallVISE has an unreasonably short time limit. I had planed to use the demo until the license key came through, but there's no sign of the key yet and the 3 day evaluation is up. If anyone knows of a free Windows installer with the ability to modify environment variables, please contact me. I hear that temporarily setting you clock back to the 15th works...
    457
    458  18th March, 2000  
    459  libc5 version available / "Error creating temp file" Thanks to Rodrigo Couto there is now a Linux/libc5 version of gbdk3-2.92 available - follow the download link above. At least it will be there when the main sourceforge site comes back up... Also some people have reported a bug where the compiler reports '*** Error creating temp file'. Try typing "mkdir c: tmp" from a DOS prompt and see if that helps.
    460
    461## GBDK 2.92
    462  8th March, 2000  
    463  Better than 2.91 :). Can now be installed anywhere. All the demos work. See the README for more.
    464  * All the examples now work (with a little bit of patching :)
    465    * Fixed problem with registers being cached instead of being
    466    marked volatile.
    467    * More register packing - should be a bit faster.
    468    * You can now install somewhere except c: gbdk | /usr/lib/gbdk
    469    * Arrays initialised with constant addresses a'la galaxy.c now
    470    work.
    471    * Fixed minor bug with 104$: labels in as.
    472    * Up to 167d/s...  
    473
    474## GBDK 2.91
    475  27th Feb, 2000  
    476 Better than 2.90 and includes Linux, win32 and a source tar ball. Some notes:
    477
    478  Read the README first
    479  Linux users need libgc-4 or above. Debian users try apt-get install libgc5.
    480  All the types have changed. Again, please read the README first.
    481  I prefer release early, release often. The idea is to get the bugs out there so that they can be squashed quickly.
    482  I've split up the libs so that they can be used on other platforms and so that the libs can be updated without updating the compiler. One side effect is that gb specific files have been shifted into their own directory i.e. gb.h is now gb/gb.h.
    483
    484  23rd Feb, 2000  
    485  First release of gbdk/sdcc.
    486  This is an early release - the only binary is for Linux and the source is only available through cvs. If your interested in the source, have a look at the cvs repository gbdk-support first, which will download all the rest of the code. Alternatively, look at gbdk-support and gbdk-lib at cvs.gbdk.sourceforge.net and sdcc at cvs.sdcc.sourceforge.net. I will be working on binaries for Win32 and a source tar ball soon. Please report any bugs through the bugs link above.
    487
    488  31st Jan, 2000  
    489  Added Dermot's far pointer spec. It's mainly here for comment. If sdcc is ported to the Gameboy then I will be looking for some way to do far calls.
    490
    491  8th Jan, 2000  
    492  Moved over to sourceforge.net. Thanks must go to David Pfeffer for gbdk's previous resting place, www.gbdev.org. The transition is not complete, but cvs and web have been shifted. Note that the cvs download instructions are stale - you should now look to cvs.gbdk.sourceforge.net.
    493  I am currently working on porting sdcc over to the Z80. David Nathan is looking at porting it to the GB.
    494
    495  6th Jan, 2000  
    496  Icehawk wrote "I did write some rumble pack routines. Just make sure to remind people to add -Wl-yt0x1C or -Wl-yt0x1D or -Wl-yt0x1E depending on sram and battery usage. Find the routines on my site (as usual). =)"
    497
    498  18th Oct, 1999  
    499  Bug tracking / FAQ up. Try the link on the left to report any bugs with GBDK. It's also the first place to look if your having problems.
    500
    501## GBDK 2.1.5
    502  17th Oct, 1999  
    503
    504  The compiler is the same, but some of the libraries have been improved. memset() and memcpy() are much faster, malloc() is fixed, and a high speed fixed block alternative malloc() was added.