Version 1.16.5 of ugBASIC and UGBASIC-IDE has just been released. In addition to containing strong optimizations and corrections for all targets, preliminary support for automatic animations and synced movements is available.

Moreover, numerous fixes and corrections exist for the Amstrad CPC 664 and TRS-80 Color Computer 1/2/3 targets. The 32-bit division has finally been implemented for the 6809 processor and the code generation for the MOS 6502/6510/8502 has been improved, with a reduced memory footprint. Even more, the MSPRITE command under vic2 supports the duplication of graphic definition, to reduce the memory requirements. The MIDI to IMF converter has been improved, with support for volume changing and specific percussion handling and automatic instrument calculation that composition software takes for granted, and improvements have also been made to multitasking interleaving capabilities, which can now also handle “busy” waits, making it even easier to write algorithms. Threads can, among other things, be suspended and resumed with the SUSPEND and RESUME commands.

From this release of ugBASIC, the additional data type IMAGEREF is now available, which allows you to represent an IMAGE, an ATLAS or an entire SEQUENCE parametrically, that is, as a reference to one of the same graphic elements previously loaded. This tool allows you to modify the graphic resources at run time, thus allowing you to create games with great aesthetic variability. A whole set of instructions has been added, to manage (automatically) the animations and movements of graphic elements, taking advantage of the improved multitasking. In particular, the ANIMATE command allows you to activate and drive animations while the program is running, and so does the MOVE command, which allows you to move objects in parallel, even synchronized with the animation. This is a fairly recent feature, which will be improved and extended in future versions. The new PATH data type, together with the TRAVEL instruction, allows you to calculate all the intermediate points of a path between two points, thus allowing you to easily create “programmed paths”, such as those associated with graphic adventure animations. These paths are also available on the MOVE statement, to allow you to move elements on defined paths.

Finally, an additional OPTION FINAL RETURN directive has been added, which allows you to generate a subprogram, callable, if the target allows it, from embedded BASIC or in general from the host operating system. Additional pragma DEFINE RESIDENT DETECTION allows to optimization of the usage of resident memory when banking is active. The PRINT RAW is now available, to print characters without escape sequence parsing. It is now possible to indicate whether an array can receive data from expansion memories, with the FOR BANK READ and FOR BANK WRITE options. The conditional compilation has been extended, to support compilation conditional on the presence or absence of hardware sprites (ON SPRITE AVAILABLE / ON SPRITE NOT AVAILABLE). The audio and music assets are now READ ONLY by default, as well as graphical assets on “console” type targets. The “retro compatible hacks” have been updated which ensures that previously written games can run without any issues, although there have been some small changes in the specifications.

Subscribe
Notify of
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments