Download v4.2.0 here
Enhancements
- #614, #615 - Audio updates and cleanup - @a740g
- Adds sample rate support to [_SNDNEW](https://qb64phoenix.com/qb64wiki/index.php/_SNDNEW).
- Moves all information, warning, and trace logs to use our new logging features.
- #626 - Support for using System MinGW on Windows - @a740g
- Adds support for using a system-installed compiler on Windows, such as a pre-existing MinGW toolchain (from MSYS2, Winget etc.). This can be helpful in situations where the user either cannot or prefers not to use the compiler bundled with QB64-PE.
- This feature is available exclusively on Windows, a respective checkbox for switching is shown in the "Compiler Settings..." dialog under the "Options" menu, a clear warning is displayed when this option is enabled to ensure users understand the implications.
- #630, #634 - IDE Help System improvements - @RhoSigma-QB64
- Added/fixed some Unicode char replacements.
- The "Update All Pages" download process now excludes the mostly static _GL command pages, i.e. 337 files less to fetch, which saves us 2-3 minutes time.
- #635 - Add Windows on ARM support, closing issue #313 - @a740g
- Enables full native support for QB64-PE on ARM-based devices, such as Windows devices using Qualcomm Snapdragon and macOS systems with Apple Silicon SoCs.
- Eliminates reliance on runtime emulation (e.g. the Windows Prism x86 translation layer), enabling significantly faster startup times and improved execution speed.
- The pre-compiler will set the `_ARM_` flag and the `_OS$` function return contains the string "[ARM]" when using QB64-PE on the ARM architecture.
- On ARM architectures, the `_FLOAT` type is not natively supported due to the absence of x86-style 80-bit x87 FPU. This may lead to compatibility issues or reduced precision. Consider using `DOUBLE` or `SINGLE` for cross-platform consistency.
- The [VAL](https://qb64phoenix.com/qb64wiki/index.php/VAL) function previously returned values as `_FLOAT` by default. Users can now explicitly specify the target numeric type such as `SINGLE`, `DOUBLE`, or an integer type via the optional `numericalType` parameter, improving type control and cross-architecture compatibility.
- #641 - Adjustments to Windows set-up scripts - @SteveMcNeill
- Replacing `wmic` with PowerShell equivalent.
- #642 - New dialog for easy logging configuration, closing issue #576 - @RhoSigma-QB64
- Access the dialog via the menu "Run -> Configure logging...".
Library Updates
- #635 - Update libcurl to v8.14.0 - @a740g
- #640 - Update libxmp-lite to v4.6.2 - @a740g
- Also, the clip, miniz, tsf, qoa, qoi source files were updated to the latest releases.
Bug Fixes
- #615 - Fix auto-formatting of _MEMPUT AS TYPE & _MEMFILL AS TYPE - @RhoSigma-QB64, @a740g
- The case of the given variable type names was not adjusted according to the active keyword formatting (UPPER/CaMeL/lower).
- #616 - Fix _MOUSEX and _MOUSEY when the mouse pointer is hidden on macOS - @a740g
- This partially reverses the approach taken in #602. Using `CGAssociateMouseAndMouseCursorPosition()` was a mistake - it fixed `_MOUSEMOVEMENTX` and `_MOUSEMOVEMENTY` for FPS-style camera movement but broke `_MOUSEX` and `_MOUSEY` by preventing GLUT from triggering the `glutMotionFunc` callback while the mouse pointer was hidden.
- To address this, we now use `CGEventSourceSetLocalEventsSuppressionInterval()` to work around macOS’s 0.25-second event suppression. However, this means `_MOUSEMOVEMENTX` and `_MOUSEMOVEMENTY` remain broken because macOS generates artificial movement events when `glutWarpPointer` is used.
- For now, this is an acceptable trade-off. A proper long-term fix depends on implementing #608.
- Many thanks to `NakedApe` from the QB64-PE forum for pointing out the issue. See [this](https://qb64phoenix.com/forum/showthread.php?tid=3290).
- #627 - Fix IDE error when loading large source file - @FellippeHeitor
- The IDE would crash when a large source file was loaded and the syntax highlighter had to build the list of sub/functions on its own, due to errors in the loaded file preventing compilation from going through.
Full Changelog: https://github.com/QB64-Phoenix-Edition/...0...v4.2.0
Enhancements
- #614, #615 - Audio updates and cleanup - @a740g
- Adds sample rate support to [_SNDNEW](https://qb64phoenix.com/qb64wiki/index.php/_SNDNEW).
- Moves all information, warning, and trace logs to use our new logging features.
- #626 - Support for using System MinGW on Windows - @a740g
- Adds support for using a system-installed compiler on Windows, such as a pre-existing MinGW toolchain (from MSYS2, Winget etc.). This can be helpful in situations where the user either cannot or prefers not to use the compiler bundled with QB64-PE.
- This feature is available exclusively on Windows, a respective checkbox for switching is shown in the "Compiler Settings..." dialog under the "Options" menu, a clear warning is displayed when this option is enabled to ensure users understand the implications.
- #630, #634 - IDE Help System improvements - @RhoSigma-QB64
- Added/fixed some Unicode char replacements.
- The "Update All Pages" download process now excludes the mostly static _GL command pages, i.e. 337 files less to fetch, which saves us 2-3 minutes time.
- #635 - Add Windows on ARM support, closing issue #313 - @a740g
- Enables full native support for QB64-PE on ARM-based devices, such as Windows devices using Qualcomm Snapdragon and macOS systems with Apple Silicon SoCs.
- Eliminates reliance on runtime emulation (e.g. the Windows Prism x86 translation layer), enabling significantly faster startup times and improved execution speed.
- The pre-compiler will set the `_ARM_` flag and the `_OS$` function return contains the string "[ARM]" when using QB64-PE on the ARM architecture.
- On ARM architectures, the `_FLOAT` type is not natively supported due to the absence of x86-style 80-bit x87 FPU. This may lead to compatibility issues or reduced precision. Consider using `DOUBLE` or `SINGLE` for cross-platform consistency.
- The [VAL](https://qb64phoenix.com/qb64wiki/index.php/VAL) function previously returned values as `_FLOAT` by default. Users can now explicitly specify the target numeric type such as `SINGLE`, `DOUBLE`, or an integer type via the optional `numericalType` parameter, improving type control and cross-architecture compatibility.
- #641 - Adjustments to Windows set-up scripts - @SteveMcNeill
- Replacing `wmic` with PowerShell equivalent.
- #642 - New dialog for easy logging configuration, closing issue #576 - @RhoSigma-QB64
- Access the dialog via the menu "Run -> Configure logging...".
Library Updates
- #635 - Update libcurl to v8.14.0 - @a740g
- #640 - Update libxmp-lite to v4.6.2 - @a740g
- Also, the clip, miniz, tsf, qoa, qoi source files were updated to the latest releases.
Bug Fixes
- #615 - Fix auto-formatting of _MEMPUT AS TYPE & _MEMFILL AS TYPE - @RhoSigma-QB64, @a740g
- The case of the given variable type names was not adjusted according to the active keyword formatting (UPPER/CaMeL/lower).
- #616 - Fix _MOUSEX and _MOUSEY when the mouse pointer is hidden on macOS - @a740g
- This partially reverses the approach taken in #602. Using `CGAssociateMouseAndMouseCursorPosition()` was a mistake - it fixed `_MOUSEMOVEMENTX` and `_MOUSEMOVEMENTY` for FPS-style camera movement but broke `_MOUSEX` and `_MOUSEY` by preventing GLUT from triggering the `glutMotionFunc` callback while the mouse pointer was hidden.
- To address this, we now use `CGEventSourceSetLocalEventsSuppressionInterval()` to work around macOS’s 0.25-second event suppression. However, this means `_MOUSEMOVEMENTX` and `_MOUSEMOVEMENTY` remain broken because macOS generates artificial movement events when `glutWarpPointer` is used.
- For now, this is an acceptable trade-off. A proper long-term fix depends on implementing #608.
- Many thanks to `NakedApe` from the QB64-PE forum for pointing out the issue. See [this](https://qb64phoenix.com/forum/showthread.php?tid=3290).
- #627 - Fix IDE error when loading large source file - @FellippeHeitor
- The IDE would crash when a large source file was loaded and the syntax highlighter had to build the list of sub/functions on its own, due to errors in the loaded file preventing compilation from going through.
Full Changelog: https://github.com/QB64-Phoenix-Edition/...0...v4.2.0
GuiTools, Blankers & other Projects:
https://qb64phoenix.com/forum/forumdisplay.php?fid=32
Libraries & useful Functions:
https://qb64phoenix.com/forum/forumdisplay.php?fid=23
https://qb64phoenix.com/forum/forumdisplay.php?fid=32
Libraries & useful Functions:
https://qb64phoenix.com/forum/forumdisplay.php?fid=23




![[Image: QB64pe-Team.jpg]](https://i.ibb.co/93gvpkvr/QB64pe-Team.jpg)