Windows MSYS2 MinGW64 environment development

News and discussion of the PC port of Oolite.

Moderators: another_commander, winston

User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Wed Oct 22, 2025 5:25 am
mcarans wrote: Mon Oct 20, 2025 8:40 pm
EDIT: I couldn't resist trying the system NSPR since it's so easy to switch with everything as pacman packages. The JS library built fine with it as did Oolite. The game seems to work fine too. What are your thoughts on using the standard MSYS2 MinGW64 package instead of building it from my copy of your repo?
Whatever feels easier for you is fine as long as it all works.

Regarding installers, we need one more installer for generating Test Release builds. The one we have generates Deployment configurations only. Alternatively we need a converter mini-installer to be able to go from Deployment to TR in one click. But in any case being able to generate TR installers for any reason the developers may consider appropriate is desirable.

As far as your inclusion to the dev team, I am currently out on business trip and can't do it just yet. Will be done upon returning to base.
Ok, I've made 0.0.3 which uses system nspr: https://github.com/mcarans/oolite_windo ... /tag/0.0.3

Currently the release uses make target pkg-win-deployment while the GitHub Actions test build workflow uses the pkg-win target. Is pkg-win or pkg-win-snapshot a test release build? Do we need three types of release or are two sufficient? If two, I could simplify to one Release workflow that is started automatically when you create a new release in GitHub and which attaches artifacts to the release. It could use pkg-win (or pkg-win-snapshot if you prefer) for a pre-release and pkg-win-deployment for release. If the complexity warrants 3 types of release, I could set up the separate test release workflow that is manually run and produces a zip of all artifacts in the workflow run with pkg-win-snapshot. It would sit alongside the Release workflow with pkg-win for a pre-release and pkg-win-deployment for release.

BTW, do you have the original clean repo off which your Spidermonkey repo was based (as I seem to recall you saying it was based off a beta version rather than https://github.com/OoliteProject/spidermonkey-ff4)? Currently it feels like "there be dragons" to me with regard to that repo. It would be useful to be able to diff the modified and original to establish the specific set of changes needed to make the Spidermonkey library work properly with Oolite on Windows. Also assuming it was a beta version, it would be helpful to know if that version is a newer or older version than spidermonkey-ff4 eg. is it ff4 beta or ff5 beta?
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 7196
Joined: Wed Feb 28, 2007 7:54 am

Re: Windows MSYS2 MinGW64 environment development

Post by another_commander »

You don't need three release types. pkg-win and pkg-win-snapshot have only one difference and that is the watermark with the version tag on the top right of the screen that is present in the snapshot version. Still, when a release is made both deployment and test release should be produced, the latter being suitable for expansion developers and the former for standard players.

As for JS I don't have the original checkout anymore. It was FF4 beta though.
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Thu Oct 23, 2025 3:26 pm
You don't need three release types. pkg-win and pkg-win-snapshot have only one difference and that is the watermark with the version tag on the top right of the screen that is present in the snapshot version. Still, when a release is made both deployment and test release should be produced, the latter being suitable for expansion developers and the former for standard players.

As for JS I don't have the original checkout anymore. It was FF4 beta though.
Should the test release use pkg-win or pkg-win-snapshot?

I found the source code for various Firefox 4 betas here: https://ftp.mozilla.org/pub/firefox/releases/. There are multiple beta versions. Do you happen to know which beta it was based off?
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 7196
Joined: Wed Feb 28, 2007 7:54 am

Re: Windows MSYS2 MinGW64 environment development

Post by another_commander »

mcarans wrote: Thu Oct 23, 2025 6:10 pm
Should the test release use pkg-win or pkg-win-snapshot?
pkg-win
I found the source code for various Firefox 4 betas here: https://ftp.mozilla.org/pub/firefox/releases/. There are multiple beta versions. Do you happen to know which beta it was based off?
Not at first glance, no. Possibly one of the 4.0 late betas or release candidates but can't be sure. Maybe there is a version reference in the headers somewhere, not sure.
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Thu Oct 23, 2025 6:30 pm
mcarans wrote: Thu Oct 23, 2025 6:10 pm
Should the test release use pkg-win or pkg-win-snapshot?
pkg-win
I found the source code for various Firefox 4 betas here: https://ftp.mozilla.org/pub/firefox/releases/. There are multiple beta versions. Do you happen to know which beta it was based off?
Not at first glance, no. Possibly one of the 4.0 late betas or release candidates but can't be sure. Maybe there is a version reference in the headers somewhere, not sure.
There is a file js/src/config/milestone.txt. In your repo it says 2.0. It is only in the release candidates and final release that it says 2.0. The betas have 2.0bN in them. So it's probably 4.0RC1 or 4.0RC2. Are there any other clues on your machine?
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 7196
Joined: Wed Feb 28, 2007 7:54 am

Re: Windows MSYS2 MinGW64 environment development

Post by another_commander »

Some potentially helpful historical data: the switch to the FF4 Spidermonkey 4.0b8 (first ECMA 1.85 version used by Oolite) happened around December 19 2010 and nightly builds started using it on December 31 2010. I cloned the Spidermonkey repo for the first time on December 19 2010 and was using its code to support the Windows port of the game as Jens was adding JS features almost daily. Spidermonkey 4.0b10 was used from February 07 2011 onwards until February 18 2011 when it was replaced by 4.0b11. Oolite 1.75 beta was released with the RC1 version of Spidermonkey in March 13 2011. By Oolite 1.75.2 beta (May 08 2011), FF4 had already gone stable (March 22 2011 was the date it happened) and I think that's when I updated the repo that ended up in Windows dependencies and built the binaries that were used from Oolite v1.76 onwards.

So you should be looking at either RC1 or stable FF4. More likely stable FF4.

Edit: Looking at the files in the repo, I find that the latest date I can see is 19/03/2011. That's after FF4 RC2 (10/03/2011 according to CoPilot) and just a few days before official FF4 stable, so I am pretty sure what we have here is the actual FF4 stable.
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Fri Oct 24, 2025 6:37 am
Some potentially helpful historical data: the switch to the FF4 Spidermonkey 4.0b8 (first ECMA 1.85 version used by Oolite) happened around December 19 2010 and nightly builds started using it on December 31 2010. I cloned the Spidermonkey repo for the first time on December 19 2010 and was using its code to support the Windows port of the game as Jens was adding JS features almost daily. Spidermonkey 4.0b10 was used from February 07 2011 onwards until February 18 2011 when it was replaced by 4.0b11. Oolite 1.75 beta was released with the RC1 version of Spidermonkey in March 13 2011. By Oolite 1.75.2 beta (May 08 2011), FF4 had already gone stable (March 22 2011 was the date it happened) and I think that's when I updated the repo that ended up in Windows dependencies and built the binaries that were used from Oolite v1.76 onwards.

So you should be looking at either RC1 or stable FF4. More likely stable FF4.

Edit: Looking at the files in the repo, I find that the latest date I can see is 19/03/2011. That's after FF4 RC2 (10/03/2011 according to CoPilot) and just a few days before official FF4 stable, so I am pretty sure what we have here is the actual FF4 stable.
Thanks, that is useful.

Is this what you had in mind regarding the deployment and test releases?
https://github.com/mcarans/oolite_windo ... /tag/0.0.3
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 7196
Joined: Wed Feb 28, 2007 7:54 am

Re: Windows MSYS2 MinGW64 environment development

Post by another_commander »

mcarans wrote: Sat Oct 25, 2025 2:19 am
Is this what you had in mind regarding the deployment and test releases?
https://github.com/mcarans/oolite_windo ... /tag/0.0.3
Yes, this is fine. The (un)installers work and the game runs perfectly from what little I could test with no obvious bugs.

The only observation I have is that the female spoken messages voice is very rough. Try copying the parameters from the f2 voice of the standard binary distribution, I had adjusted it to a much sweeter tone back when we introduced espeak to Oolite.
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Sat Oct 25, 2025 6:45 pm
Yes, this is fine. The (un)installers work and the game runs perfectly from what little I could test with no obvious bugs.

The only observation I have is that the female spoken messages voice is very rough. Try copying the parameters from the f2 voice of the standard binary distribution, I had adjusted it to a much sweeter tone back when we introduced espeak to Oolite.
I'll look into this.

I need to learn about Flatpak to do something similar to the Windows build for Linux (just as I had to learn how to make pacman packages etc. for MinGW64).

I just realised that although I'm a member of OolteProject, I don't have the rights to transfer repos. Please can you take a look.

Image
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 7196
Joined: Wed Feb 28, 2007 7:54 am

Re: Windows MSYS2 MinGW64 environment development

Post by another_commander »

Please try now. I have enabled public repository creation for members of OoliteProject.
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Sat Nov 01, 2025 6:20 pm
Please try now. I have enabled public repository creation for members of OoliteProject.
Thanks that resolved it! I've transferred one to begin with: https://github.com/OoliteProject/oolite_SDL-1.2
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Sat Oct 25, 2025 6:45 pm
The only observation I have is that the female spoken messages voice is very rough. Try copying the parameters from the f2 voice of the standard binary distribution, I had adjusted it to a much sweeter tone back when we introduced espeak to Oolite.
How is this installer with updated female voice?

https://github.com/mcarans/oolite_windo ... /tag/0.0.4
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 7196
Joined: Wed Feb 28, 2007 7:54 am

Re: Windows MSYS2 MinGW64 environment development

Post by another_commander »

New voice sounds much better.
User avatar
mcarans
---- E L I T E ----
---- E L I T E ----
Posts: 752
Joined: Sun Jun 20, 2010 6:00 pm

Re: Windows MSYS2 MinGW64 environment development

Post by mcarans »

another_commander wrote: Sun Nov 02, 2025 4:35 pm
New voice sounds much better.
Oolite will also build and run with Clang ABI 2.2 on Windows using a newer gnustep-base than what's in the standard packages.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 7196
Joined: Wed Feb 28, 2007 7:54 am

Re: Windows MSYS2 MinGW64 environment development

Post by another_commander »

mcarans wrote: Sat Nov 08, 2025 7:15 am

Oolite will also build and run with Clang ABI 2.2 on Windows using a newer gnustep-base than what's in the standard packages.
How can this be achieved? Is there any script that we can use to set up a Clang environment, similar to what you have done with gcc/mingw64?
Post Reply