This page is aimed to contain a gathering of all information about the changes to Bennu in the different releases. Information about what exactly has changed is spread out over several sources making some new features and functions go unnoticed. These features should be in this wiki but as the updates to this wiki are rather sparse it's probably a good idea to have the changes made at least somewhere written down neatly.
Information is retrieved from the Spanish and English worklog topics on the Bennu forums, as well as from the commit messages in the SVN system.
State of this page
This page contains the information shared by SplinterGU in the English worklog topic and some information from the Spanish topic. The Spanish topic is huge however, and contains a lot of talk between devs and users. Filtering out the useful info will take some time. The first WIP to get it's own changelog is WIP14, which means in the Spanish topic page 21 is the page to start. I also have yet to create links.
Bennu's early days
On the 16th of April 2008, SplinterGU reports work has begun on Bennu: The first big development is creating a separation between the bare interpreter/compiler and the functionality with which they can be extended. The core will no longer contain code that depends on peripherals like a keyboard and mouse.
The support for Fenix' fgc, fbm and fpl file formats is also quickly dropped in favor of good old DIVs FPG, MAP and PAL files. The never fully finished support for animated graphics is also dropped as its effect is easy to replicate in code.
The changelog starts at WIP14, this is the one where the English worklog topic starts. In the first WIPs a lot of issues were straightened out that arose while breaking up the big chunk of code that was Fenix into a more elegant modular structure. Lots of general bugs were squashed and the rendering system was fixed after not being usable in the earlier WIPs.
Released: October 18th, 2008
- args fix, now argc (argument count) say count of argv... and argv is dcbname in not stub version, and executable
name in stub version.
- Several casts added
- Add some includes
- Some pointers size fix
- Remove unused vars
- Fix in use of grlib_destroy when error creation.
- Somes casts in palette module
- Linux port of libvideo
- Load map functions return 0 on fail
- Split MAGIC used in FPG/MAP/PAL to MAGIC of 7 bytes and 1 byte for version
Released: October 26th, 2008
- Linux Port (need tested)
- Prohibit unload font 0
- Fix controls points + mirrors + angle
- Check if graph exist on gr_save_png
- Fix on 32 bits collision
- Fix on 32 bits blits
- New set_window_pos, get_window_pos and get_window_size functions
- get_window_size now makes a difference between window size and client area
- get_desktop_size added
- mod_debug added!
- Some debug fixes
Released: Februari 4th, 2009 (This was the first binary release from SVN)
- Add core's functions bgdrtm_entry and bgdrtm_exit to bgdrtm...
- Now exit code can be return at finish execution of bgdi
- Now division by zero is allowed in float expressions, new functions are added:
- Ternary condition fixed... improved speed in ternary condition when expression is constant.
- Lib windowmanager(WM) now doesn't exit when close button is clicked, only sets exit_status to true
- exit(...) functions now fixed, and use the params
Released: March 12th, 2009
- Fixed Translucent tables in 8 bits
- Fixed blend operations in 8 bits
- Fixed Translucent+Blend in 8 bits
Released: March 14th, 2009
- New string_ptoa more efficient and same result in different SO.
- Check constants already defined as variable
- Fix variant arg for pointer vars
- Fix unsigned comparations
- 32 bits drawing alpha support (alpha-pixel and drawing_alpha)
- speed up some drawing functions
- write_var pointer vars support
RC? (May 11, 2009)
Released: May 11th, 2009
- New instances system, hash on priority, type. Speed up improved on iterate instances.
- Instances now are limited to 65536 running at same time
- Instances dirty list by change on priority is removed.
- Collision, get_id, signal,... speed up improved by use of new instance system and other.
- Compiler parse number is fixed
- Several casts are added in code
- Several sizeof are added in code
- libvideo now start in 32 bits as default
- get_screen now return graphic without control point 0, (centered)
- speed up improved on show debug info
- debug console parse number is fixed
- debug console color tags fixed
Core ? Modules ?
Released: October 25th, 2010
- char initialization fix
- Full arrays copy support added
- Better error messages
- Multiple sources can be compiled from command line (like #include)
- Video blitter crash fix
- Optimize memory used for strings in compilation
- Fix dcb version detection
- Several improvements in the core
- Compilation warnings now are disabled by default
- New lib system, now can be possible build dcl libraries.
- glyph_set fix
- New fonts functions, new_fnt or fnt_new.
- Added 1bpp png support (save/load)
- Better debug info messages
- Fix max sources files in debug information (before 256, now 4093)
To be processed: mod_debug
Debugger's new appearance(to be moved to the mod_debug article):
- New characters added to debug's system font
- New debug's functions: breakall, breakalltypes, deleteall, deletealltypes, go, nextframe, nextproc.
- Process list in brief mode
- Process browse window, by id or by type, allowing to set/remove breakpoints, inspect his variables, etc...
- Palete fix on 8 bits fpg save
- Mirror fix on angle = 0
- Several module's dependencies added
- SDL_Initializations on some modules
- Debug info add at loading modules in runtime...
- English messages in compiler
To be processed: FNT_NEW to be added
FNT_NEW (CHARSET, DEPTH)
FNT_NEW (FILE, GRAPH, CHARSET, WITDH, HEIGHT, FIRST, LAST, FLAGS)
where CHARSET can be:
where flags can be:
The most sexy function is the last one FNT_NEW (FILE, GRAPH, CHARSET, WITDH, HEIGHT, FIRST, LAST, FLAGS), this function allow us create font from maps loaded in memory.