Skip to content

Releases: QB64-Phoenix-Edition/QB64pe

v3.7.0

05 May 05:47
Compare
Choose a tag to compare

Enhancements

  • #315, #319, #327 - Implemented a new "Code Export" feature reachable via the "File" menu. - @RhoSigma-QB64
    • Useful for authors of tutorials, documentations or Wiki pages, they can now easily export the currently edited code and insert it in their work. The code is highlighted according to the currently chosen color scheme in the IDE and the keywords are linked to its respective Wiki pages.
    • Export is possible as Hypertext (.html), Rich Text (.rtf) or Wiki encoded text (.txt).
  • #188, #330, #335 - Added commands for rendering Unicode text - @a740g
    • _UPrintString acts like regular _PrintString but accepts Unicode strings.
    • _UFontHeight gives the global glyph height of a given font, which may be larger than the _FontHeight. _UPrintString uses this height.
    • _UPrintWidth acts like _PrintWidth and returns the width in pixels a Unicode string will take up when printed using _UPrintString.
    • _ULineSpacing will give the proper vertical spacing (font height + extra pixels) to vertically separate multiple lines of text.
  • #188, #335, #330 - Improve and optimize Font internals - @a740g
    • Font loading should be significantly faster due to the addition of a lazy Glyph cache.
  • #232, #330, #335 - Added a new _LoadFont() argument which allows loading a font from memory - @a740g
  • #316, #317, #318, #320, #322, #325 - Many internal libraries were updated or replaced - @a740g
    • zlib was replaced with miniz
    • stb_image.h was updated to v2.28
    • miniaudio was updated to v0.11.13
    • tinysoundfont was updated to the latest version (2/18/23)
  • #325 - Added support for using SoundFont3 (SF3) format files with $MinisoundFont - @a740g
  • #329 - Added RAD v1 file support - @a740g
  • #124, #321, #326 - Improved Declare Library header file resolution - @a740g, @mkilgore
    • If Declare Library is in an '$included file, then it can also find header files that are relative to the location of the '$included file rather than the original source file.

Bug Fixes

  • #319 - Fixed the "Update All Pages" process in the IDE. - @RhoSigma-QB64
  • #333, #334 - Fixed the Keyboard _Devices entry on Windows - @mkilgore
    • Alt+key combination will now be correctly reported.
    • Pressing left and right shift at the same time will now be correctly reported.
  • #332 - Fixed potential segfault in PLAY() - @a740g
    • BEEP was also improved so that multiple BEEPs in a row will have a short pause separating them.

Full Changelog: v3.6.0...v3.7.0

v3.6.0

20 Feb 03:10
Compare
Choose a tag to compare

Enhancements

  • #286 - Added support for opening image from memory using _LOADIMAGE() - @a740g, @mkilgore
    • _LOADIMAGE() has a new optional requirements$ argument, similar to the string argument to _SNDOPEN():
      • _LOADIMAGE(fileName$[, [mode&][, requirements$]]).
    • Providing "memory" in the requirements will cause _LOADIMAGE() to treat the contents of the fileName$ argument as an image file itself, rather than attempting to open a file.

Bug Fixes

  • #287, #296 - Fixed building QB64-PE on MacOS High Sierra - @mkilgore
  • #288 - Add missing keywords to syntax highlighter - @SteveMcNeill
  • #273, #295 - Timers will no longer take twice as long at program start - @mkilgore
  • #293, #295 - A stopped timer will now correctly run when turned on if it expired while stopped - @mkilgore
  • #294, #295 - On Windows, timers will now correctly trigger during SLEEP in $Console programs - @mkilgore
  • #298, #300, #302, #308 - Several improvements to the IDE Wiki - @RhoSigma-QB64
    • Improved handling of HTML Entity and UTF-8 characters used in the Wiki.
    • Fully implemented local links. The help page navigation in the IDE is now practically the same as in the real Wiki.
  • #301, #307 - Fix using DECLARE LIBRARY with a stripped .so file - @mkilgore
  • #297, #306 - The -o flag will no longer strip the extension from the executable name - @mkilgore
    • The extension .exe will still be removed when compiling on non-Windows platforms.

Full Changelog: v3.5.0...v3.6.0

v3.5.0

09 Jan 15:35
Compare
Choose a tag to compare

Enhancements

  • #46, #98, #250, #265, #272 - Added support for opening HTTP and HTTPS requests using _OPENCLIENT(). - @mkilgore
    • Feature is current unstable and requires $Unstable:Http to use.
    • On Linux and Mac OS this functionality requires libcurl to be installed.
    • HTTP(s) connections are opened using _OPENCLIENT() and generally work the same as the existing TCP/IP streams.
    • See the Wiki page on Downloading Files to see a complete overview of this functionality.
  • #28, #279 - Added _SNDNEW(frames&, channels&, bits&) function which can be used to make new sound buffers of a predetermined number of frames. - @a740g
    • The created sound buffer can be accessed using _MEMSOUND() to write sound data to it, and then played like any other sound.
  • #232, #279 - Sounds can now be opened from memory using _SNDOPEN(sound$, "memory"). - @a740g
    • The string provided to _SNDOPEN() in this case is not a filename, but instead contains the actual sound data that should be loaded into the new sound buffer.
  • #280, #279 - Added support for playing Amiga AHX and HVL audio files. - @a740g
    • They are played using _SNDOPEN() like any other audio file.
  • #261 - The IDE's new open file dialog will now remember the previous directory it was open to. - @SteveMcNeill
  • #264 - The error line color in the IDE is now configurable. - @SteveMcNeill

Bug Fixes

  • #252, #276 - Wiki will now be downloaded using the new HTTP support, curl is no longer needed. - @RhoSigma-QB64
  • #254 - _FONT settings that are invalid now produce an error rather than segfaulting. - @SteveMcNeill
  • #256, #258, #266, #267 - Fixed the command line compilation output when using some commands like $NoPrefix. - @mkilgore
  • #256, #257 - When compiling from the command line, the exe is now always located relative to the provided source file path. - @mkilgore
  • #234, #260 - Programs now wait for GLUT to be properly initialized before starting. - @mkilgore
  • #66, #270 - GLUT commands are now always executed on the correct thread. This fixes issues where some programs would randomly crash. - @mkilgore
  • #262, #233 - $IF checks involving VERSION now correctly compare all segments of the version individually. - @SteveMcNeill
    • Previously VERSION was compared as a string, which would have caused incorrect comparisons when the version numbers get larger.
  • #275 - Reduced the number of times nm is invoked to resolve Declare Library functions. - @flukiluke
  • #166, #279 - _SNDRAW is now fully implemented for the miniaudio audio backend - @a740g
    • The OpenAL audio backend is likely to be removed in the next version of QB64-PE.
  • #166, #279 - PLAY(n) now returns the number of sound samples left to play from PLAY, SOUND, or BEEP. - @a740g
  • #167, #279 - The timing of SOUND and PLAY calls were improved so that they wait for the sound to finish playing. - @a740g
  • #186, #279 - SOUND and PLAY now generate mono sound, reducing memory usage. - @a740g
  • #217, #279 - The N command for PLAY now plays the note in the correct octave. - @a740g, @mkilgore
  • #282, #284 - The long start-up time for QB64-PE programs has been fixed, there should no longer be a delay before the QB64-PE code starts running - @mkilgore
  • #281, #284 - A use-after-free bug was fixed in some of the buffer logic for the HTTP code - @mkilgore

Full Changelog: v3.4.1...v3.5.0

v3.4.1

16 Nov 14:38
Compare
Choose a tag to compare

Bug Fixes

  • #236, #237, #238, #239, #245 - Several improvements made to the dialog functionality introduced in 3.4.0 - @mkilgore
    • Single and double quotes can now be used in any string provided to a dialog.
    • On Windows, the popup from _NotifyPopup will now be associated with the program using the command.
    • On Windows, _InputBox$ no longer spawns a separate process to display the dialog.
    • Previously some strings passed to the dialog functions were not properly escaped before being passed to the underlying dialog provider, those issues have been fixed.
  • #241 - Fixed bug in PAINT when a border color is not provided - @TheJoyfulProgrammer, @mkilgore
    • The broken syntax was PAINT (x, y), tileString$, where the optional border color was left off.
    • That would fill as though you provided zero as the border color, now it correctly fills any pixels matching the initial color at (x, y).
  • #247 - The 'Open' dialog in the IDE now makes use of the system provided Open dialog - @SteveMcNeill, @mkilgore
    • This can be toggled off if necessary via the 'GUI Dialogs' option in the Options menu.
    • The old dialogs may be removed in a future version.
  • #243 - The MinGW version on Windows was updated, it now provides gcc 12.2.0 - @a740g

Full Changelog: v3.4.0...v3.4.1

v3.4.0

01 Nov 16:46
74b0c80
Compare
Choose a tag to compare

Enhancements

  • #189, #216, #225, #227, #230 - Added several cross-platform dialogs - @a740g, @mkilgore
    • The commands make a best-effort of determining the way to show the dialog based on what is provided by the system.
    • The following new commands were added:

Bug Fixes

  • #218, #222 - setup_osx.command now works correctly when run from any directory - @mkilgore

Full Changelog: v3.3.0...v3.4.0

v3.3.0

11 Oct 02:11
Compare
Choose a tag to compare

Enhancements

  • #201 - Source files provided on the command line can now be relative to the current working directory - @DualBrain, @mkilgore
    • The executable name specified by -o is always relative to the location of the source file.
    • The previous behavior of specifying the source file relative to the location of QB64-PE still works.
  • #145, #204 - QB64-PE can now generate a ".license.txt" file beside your program - @mkilgore
    • This file contains the text of all the software licenses that apply to your program based on the dependencies you are using. You can then distribute the license file alongside your program to meet the requirements of those licenses.
    • The file can be generated either via a toggle option in the Run menu, or via the new -f:GenerateLicenseFile=[true/false] command line option.
  • #185, #208 - _SNDPLAYCOPY now takes x, y, and z parameters to change the balance of the copied sound - @a740g

Bug Fixes

Full Changelog: v3.2.1...v3.3.0

v3.2.1

25 Sep 19:39
Compare
Choose a tag to compare

Bug Fixes

  • #172, #182 - Fixed using audio commands in a $CONSOLE:ONLY program - @mkilgore
  • #178, #182 - Fixed using device commands in a $CONSOLE:ONLY program - @mkilgore
  • #175, #180 - Fix incorrect dithering applied to images loaded as a 256 color image - @a740g
    • This applies to images with less than or exactly 256 colors.
    • Images with more than 256 colors will still have dithering applied if they are loaded as a 256 color image.
  • #184 - Fixed setup_lnx.sh to always install make - @AtomicSlaughter

Full Changelog: v3.2.0...v3.2.1

v3.2.0

12 Sep 04:00
Compare
Choose a tag to compare

Enhancements

  • #21, #164 - The $Unstable command was added - @mkilgore
    • $Unstable allows usage of language features that are not yet finalized.
    • Features hidden behind $Unstable may have breaking change in new releases, unlike regular parts of the language which do not have breaking changes in new releases.
  • #115, #164 - Added MIDI support to _SNDOPEN - @a740g, @mkilgore
    • MIDI support is current unstable, and hidden behind $Unstable:Midi.
    • MIDI is enabled by using the $MidiSoundFont metacommand to specify a soundfont for playing MIDI files.
    • The selected soundfont is compiled into your program, so the file does not need to be present at runtime.
  • #162, #164 - Compiler settings can be supplied on the command line - @mkilgore
    • QB64-PE now accepts the -f flag for supplying settings accessible in the Compiler Settings menu.
    • Settings are only applied for that run of QB64-PE (they do not modify the preserved IDE settings)
    • Using -f with no flag will print all of the available options.

Bug Fixes

  • #161 - Fixed _MOUSEMOVE when window is resized - @mkilgore
  • #165 - Fixed compiling source files that have a ' in their name - @mkilgore
  • #169, #171 - Fixed _SNDOPEN to return zero on failures. - @a740g
  • #170, #171 - Fixed PLAY "MB" so that it also causes SOUND commands to play in the background - @a740g

Full Changelog: v3.1.0...v3.2.0

v3.1.0

04 Sep 02:21
170871b
Compare
Choose a tag to compare

Enhancements

  • #143 - New audio backend using miniaudio - @a740g
    • Miniaudio and a few other libraries have replaced the OpenAL-based audio backend that was previously used.
    • This fixes licensing concerns with using OpenAL, which was LGPL licensed. See the updated licensing information page for more detailed information.
    • Newly supported formats include flac, mod, s3m, xm, it, rad.
    • There are some known incompatibilities with _MEMSOUND due to the new backend. See the wiki page for more information.
    • If incompatibilities are encountered, the old OpenAL backend can still be used via a setting in the Compiler Settings dialog. Any incompatibilities or bugs should be reported, the OpenAL backend will be removed in a future release.
  • #141 - Image backend enhancements - @a740g
    • Support for pcx images was added.
    • _LOADIMAGE was improved to support loading 256-color images. See the wiki page for more information.
    • The number of libraries was simplified a bit.
  • #153 - Add _ROR & _ROL support. - @a740g

Bug Fixes

  • #144 - Use -no-pie on Linux, fixes running compiled executables from file browsers - @mkilgore
  • #154 - Remove DPI Awareness on Windows, QB64 executables will properly scale based on the OS setting - @mkilgore

Full Changelog: v3.0.0...v3.1.0

v3.0.0

26 Aug 17:09
Compare
Choose a tag to compare

This is the first major release of QB64 Phoenix Edition. v3.0.0 was chosen to avoid overlapping with the existing QB64 v1 and v2 versions. QB64 Phoenix Edition v3.0.0 is compatible with QB64 v2.0.2.

Enhancements

  • #122, #125, #130, #132 - Several improvements to the Help display in the IDE - @RhoSigma-QB64
  • #136 - Several naming and visual changes to reflect the "Phoenix Edition" branding - @RhoSigma-QB64
    • The executable is now named qb64pe on Linux and Mac and qb64pe.exe on Windows.
  • #139 - The files written to ./internal/temp are now buffered in memory and only written out when a build is requested - @RhoSigma-QB64

Bug fixes

  • #127 - Fixed linking of static libraries on Windows - @mkilgore
  • #126 - The math evaluator in the IDE will no longer crash when dividing by zero - @mkilgore
  • #131 - setup_lnx.sh was fixed to properly call make clean - @GeorgeMcGinn

Full Changelog: v0.8.2...v3.0.0