Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Latest version of QB64PE or QB64 compatible with Windows XP (32-bit)?
#1
Question 
Hi everyone, 

I recently tried running a recent 32-bit QB64PE (qb64pe_win-x86-4.1.0.7z) on a laptop running Windows XP service pack 3, and got the error 

C:\Documents and Settings\{username}\My Documents\qb64pe\qb64pe.exe is not a valid Win32 application

Does anyone know the latest version of QB64 or QB64PE (if any) that would work with 32-bit Windows XP (SP3)? 

In a related question, if QB64 is developed in QB64, would it work to compile a newer version of the source code using an older XP-compatible QB64, on an XP machine, to get a build of a more recent version of the QB64 or QB64PE IDE that would work under XP? 

Thanks!
Reply
#2
1.5 -- XP Support was dropped long before us.
Reply
#3
Thanks. 

Any idea what kinds of things would stop working by trying to compile QB64PE 4.x on XP using QB64 1.5?
Reply
#4
It simply wouldn't work.  There's library calls built in to new APIs that Microsoft uses.  You'd have to go in and remove all those.. and basically strip it back down to version 1.5.
Reply
#5
there's really not that much lost.  out of keyword functionality.

however, it would be a lot like using the "official" qb64.

no fancy gui dialogs.  especially on linux this is a killer.  once i had to modify the source code.  to make sure runtime error messages were printed to the terminal.  because "xmessage" couldn't always be installed.

some of the features of play and other sound functions aren't available in qb64 1.5.  cannot handle some sound formats.  especially the experimental .qoa.

some of the image functionality added.  i think beginning in phoenix 3.8.  such as the .qoi format.  isn't available.  being able to use _loadimage like _sndopen in "memory" mode.  also isn't available.

there are a few functions like _trim$_readfile$ and _writefile_clamp_uprintstring_andalso and _orelse.  the base-64 ones by @a740g.  that will require phoenix versions like 3.4, 3.7 or higher.

must watch out for some things for conditional compilation.  however, $if version < 3.0 or alike could still work in an early version of qb64.  this is proven by the wiki page:

https://qb64phoenix.com/qb64wiki/index.php/$IF

the good news is that there aren't a lot of programs yet.  that take advantage of things available in phoenix 4.1.  there is still a lot of code.  that could be used by qb64.  as it stood while there was "dot-net", "dot-org" before phoenix edition.
Reply
#6
There's a boatload of stuff from 1.5 to 4.0, which wouldn't work any longer.  Everything you listed above, plus all the download enhancements with libcurl, the embedded files, even the console capabilities were expanded since then so you can locate and _CINP and such...  

The issue that arises is like I mentioned though -- XP doesn't support the underlying libraries or function calls to make those things work.  There's no curl in XP, so no downloading library or API to pull from.  There's no calls to WinConsole until Vista+ as those functions weren't added to Windows until then.  A lot of your underlying libraries simply don't exist in 1.5, so you wouldn't be able to run 4.0 code and compile in it and expect the same results.  Sure, the same PRINT "Hello World" would work in both, but anything that came since.... even before Phoenix Edition existed, simply wouldn't work.

1.5 -- That's 3 *major* releases in the past.  You can't expect anything from a 4.x version to have a chance in hell of working on a 1.x version.  

If you're going to use XP, you're going to be limited to using an ancient version of QB64 and whatever it has packaged with it.  We're talking pre-Phoenix Edition.  Pre-Official.  Pre-RC Cola...  You're going back in time and running an OS which is over 20 years out of date, with a compiler and version of QB64 which is at least 5 years out of date.  That's enough that I'd suggest keeping expectations low on what you can with it, compared to the modern version which we offer.

https://github.com/QB64Team/qb64/releases/tag/v1.5

(And I was wrong with the 5 year mark... It's only 4 and a half years out of date.  Big Grin )
Reply
#7
(06-23-2025, 09:26 PM)madscijr Wrote: Thanks. 

Any idea what kinds of things would stop working by trying to compile QB64PE 4.x on XP using QB64 1.5?
To answer your specific question - it wouldn't really work the way you're picturing. The real problem is the runtime (libqb), not the compiler. Even if you could compile QB64PE 4.x using QB64 1.5, that theoretical version of QB64PE 4.X would still produce programs that won't run on XP because they would be built against the new runtime. To get XP support you have to use an older runtime, which means using an older version of QB64.

As for a specific version it broke, there were some pretty significant threading issues that I fixed in QB64PE and some of the APIs used to address them don't exist on XP. It looks like that work was done in v3.5.0, so below that _might_ work on XP by chance, above that every compiled program calls the missing APIs so they won't work at all (including the IDE).

It is theoretically possible to implement those APIs only using functionality on XP, so if you did that you may find programs mostly work (if you avoid using certain commands/functionality anyway). It's also entirely possible we now call other missing APIs and you'd still be stuck, we don't keep a close eye on that anymore since XP support was dropped. We also switched to llvm-mingw and I'm not sure if that works on Windows XP, you can't do anything without that and can't easily switch it back.

So TL;DR, the farther you get from 3.5.0, the messier it will be, even below 3.5.0 there's certain stuff that doesn't work. It's not really practical, but if you wanted to give it an effort the threading changes in 3.5.0 would be the starting point, google implementing 'condition variables' in Windows XP and make the required changes to the runtime Tongue Though I'll clarify that we have no plans to add back Windows XP even if you managed to get something working, and it will just get broken further in the future.
Reply
#8
2.0 relies on API calls that aren't in XP.  That's why the version bumped and support was dropped.
Reply
#9
All very good and clear answers. Thanks everyone! 

I asked because I have a couple old XP machines & wanted to give one to someone to use to learn some basic QB64PE game programming. So QB64 1.5 (or maybe 2, according to a post I saw elsewhere) would be the latest that would work with XP. I started with QB64 around v1.5, and it was capable enough, so that could work as an introduction, then they could upgrade to QB64PE when a newer PC becomes available.

Followup question: 
Does QB64PE need Windows 10 & newer, or would it run on Windows 7 or 8?  

Thanks again, everyone
Reply
#10
(06-24-2025, 10:39 AM)SMcNeill Wrote: 2.0 relies on API calls that aren't in XP.  That's why the version bumped and support was dropped.
I think that's misleading, the `2.0` major version bump was because of the recursive function change. Windows XP support was 'officially' dropped in `2.0.1`, but was also accidentally broken in `2.0.0`. That said I still make a distinction between the `2.0.0` "broken" and my `3.5.0` change because in `2.0.0` it was just specific functionality related to fonts, where-as in `3.5.0` it's every program and unavoidable. There's also a specific XP-compatible `2.0.1` release that could be used.

(06-24-2025, 02:42 PM)madscijr Wrote: Followup question: 
Does QB64PE need Windows 10 & newer, or would it run on Windows 7 or 8?
Currently we target Windows 7 and up. It's possible we work on Vista but I believe something is broken on it.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  QB64PE Excel-type spreadsheet supporting formulas and QB64PE macros? madscijr 33 1,382 01-30-2026, 12:28 AM
Last Post: madscijr
  Make windows .exe using Linux version? Circlotron 7 493 01-15-2026, 09:42 PM
Last Post: ahenry3068
  QB64 odd behavior when Windows Terminal is set to default terminal app hanness 13 1,434 10-03-2025, 12:52 AM
Last Post: bert22306
  Test to post a new Thread + question 32 or 64 bit Rudy M 2 538 09-09-2025, 04:10 PM
Last Post: Rudy M
  useful page: Value of constants for the Windows 32-bit API madscijr 4 662 08-15-2025, 06:35 PM
Last Post: SMcNeill

Forum Jump:


Users browsing this thread: 1 Guest(s)