I gave it a try, and what I saw looks promising. once it's perfected, it’s guaranteed to be the best WC Classic experience out there.
I’ll be keeping an eye on it ... great work.
 
Latest release for wc1-re is here: https://github.com/neuromancer/wc1-re/releases/tag/v0.0.11. The enhancement list of the SDL2 port is here (some of them require command line options, check the README for details):

Runs from either Kilrathi Saga or DOS game data, detected automatically
Resizable window, fullscreen toggle, and mouse capture
Aspect-correct 4:3 presentation and pointer mapping
Camera-relative left/right panning for in-flight sound effects
Background planets drawn with correct per-object scaling (WCDX fix)
Static on knocked-out cockpit displays, which the 1996 port dropped
Landing on the Tiger's Claw from any bearing; retail also required the Claw's bow to face you
Mouse wheel throttle control during spaceflight
Esc pauses during spaceflight, where the original left it inert
Pointer confined only during unpaused, focused spaceflight
Gamepad support with automatic SDL mappings and hot-plug
OpenGL renderer drawing space objects at output resolution
Restored, music-synchronized startup intro
OriginFX intro music
Heavy-weapon, damage, collision, and afterburner rumble
WCAT-style four-button joystick layouts

Next releases of wc1-re will be mostly for fixing bugs reported by players.

Just so you know, https://github.com/neuromancer/wc1-re#wing-commander-source-reconstruction-and-sdl2-port says DOS support is partial. Is that part of the readme file now incorrect?
 
AFAIK, in WC1, all the DOS features are working but if there is something they changed between the DOS and the win32 port and it is not documented anywhere, then some feature can be missing. In WC2, I know that the recording/replaying feature is not supported (but it is barely used by player). I haven't look at the DOS executables in detail, in particular, looking for differences (which is hard, as you need to compare function by function to find it).
 
Yes, the Hornet (and the Rapier firing lasers) can fire indefinitely, if their shields are full.

Playing the DOS version in the 1990s, I asked someone why they were making such efforts to evade at full shields, and they told me it was to keep their guns recharging at the maximum rate.

Thanks to neuromacer's work, we can now see how this was implemented. In version 0.0.8 it's in the file logic.c, lines 362 to 390, function name replenish_weapon_energy_bank(). If I understand it correctly:
  • All ships have the same energy store, 100 units.
  • If shields are full, you regain 2 energy per cycle.
  • If either shield is less than full, you only regain 1 energy per cycle.
  • Having both shields recharging doesn't make it any worse.
  • Looking at the adjacent function replenish_shields(), the reverse doesn't apply: draining weapon energy doesn't slow shield regeneration.
I'm a bit puzzled by the array sizes in globals.c. Wing Commander I supports 24 ships per mission, doesn't it? But does it only store these values for ships in the current action sphere?

C:
short g_aasShipArmor_0059d420[10][4];
short g_asShipWeaponEnergy_0059d470[16];
short g_aasShipShield_0059d5b0[12][2];
short g_aasShipMaximumShield_0059d6e0[12][2];
I was today years old when I found out that your gun recharge is affected by your shield status - I always assumed it slowed down due to a cycles/timing/cpu-limited factor while in combat
 
It is still possible that the DOS release, when using real hardware back in the day was behaving like that. If that's the case and you want to keep that behavior for difficulty balance reasons, I will consider an option in the SDL2 port that limits the fire rate.
 
neuromancer, how close would you say these ports are to a majorly playable state? It would be nice to have a list of sorts detailing what hasbeen implemented, what is left and what future enhancements you plan on adding

​

 
Having a quick play with WC2 - 0.06:
1) Using the Kilrathi Saga data - the 'original' build plays music during the introduction, but the SDL version does not. Even more interesting the music works with DOS data files, but not with KS data files (despite the original build working with the same data!). Same effect whether using --enhanced or not
2) speaking of parameters -f doesn't seem to work (not sure if i'm using it wrong?)
3) When i come to create a character the game seems to crash at 'enter first name'
4) I see some graphical issues (top line of the cinematic player is corrupted) in the 'original' build, which don't appear in the EA original build - most noticeable in the intro conversation between Thrakhath and Khasra - screenshots here (apologies for the quality, since screenshot didn't want to work with the directdraw, I had to photograph and crop).

I suppose the other question that should eventually pop up is how similar the SM1/SM2 and SO1/SO2 executables are to the WC1/WC2 ones - do they just reference different data file extensions, or is there more to them.
 

Attachments

  • WC2-DosboxStaging.jpg
    WC2-DosboxStaging.jpg
    983.3 KB · Views: 41
  • wc2-re-v0.0.6-win32-msvc410.jpg
    wc2-re-v0.0.6-win32-msvc410.jpg
    572.9 KB · Views: 41
  • Wing2-KS-24Sep1996.jpg
    Wing2-KS-24Sep1996.jpg
    557.9 KB · Views: 40
Out of curiosity, where exactly is the decomp’s save data stored? I couldn’t find it for the life of me
 
Hello everyone, apologies for the delay answering. For some reason, I didn't get proper notification of your latest messages in my inbox.

neuromancer, how close would you say these ports are to a majorly playable state? It would be nice to have a list of sorts detailing what hasbeen implemented, what is left and what future enhancements you plan on adding

These ports used the fully reconstructed executables and AFAIK, are playable already with minor bugs here and there (the reconstruction is not 100% for different reasons that way some bugs could remain). If you find a blocking bug to finish the game, please ping me here or create an issue in the corresponding repository. Regarding features, each README explain what's implemented in term of extra features. And if you have suggestion on future enhancements, please let me know.

Having a quick play with WC2 - 0.06:
1) Using the Kilrathi Saga data - the 'original' build plays music during the introduction, but the SDL version does not. Even more interesting the music works with DOS data files, but not with KS data files (despite the original build working with the same data!). Same effect whether using --enhanced or not
2) speaking of parameters -f doesn't seem to work (not sure if i'm using it wrong?)
3) When i come to create a character the game seems to crash at 'enter first name'
4) I see some graphical issues (top line of the cinematic player is corrupted) in the 'original' build, which don't appear in the EA original build - most noticeable in the intro conversation between Thrakhath and Khasra - screenshots here (apologies for the quality, since screenshot didn't want to work with the directdraw, I had to photograph and crop).

I suppose the other question that should eventually pop up is how similar the SM1/SM2 and SO1/SO2 executables are to the WC1/WC2 ones - do they just reference different data file extensions, or is there more to them.

Thanks a lot for the testing!, from my side I can reproduce 2) and 4), but I fail to reproduce 1) and 3). Please retest the missing intro music with WC2 SDL v0.0.7 and Kilrathi Saga data. If it still occurs, please provide:

- OS and distribution/version
- Which intro is silent: the Origin/orchestra logo sequence or the subsequent story introduction
- Exact casing and layout of the GAMEDAT and STREAMS directories
- Whether GAMEFLOW.STR exists

Also, starting the SDL2 port from the command line can expose some interesting warning and error messages to help me debug these issues.

I haven't examine SM1/SM2 and SO1/SO2, but these are new reconstructions (which should share the majority of the code code from the original releases). On top of that, the win32 release of these had broken cutscene and features, so these will need to be manually fixed in order to have the code to be useful. Perhaps I will reconstruct them, but not after I have confirmed that WC1 and WC2 are fully working (e.g. both games can be finished).

Out of curiosity, where exactly is the decomp’s save data stored? I couldn’t find it for the life of me
What do you mean exactly? you want to see the decompiled functions/assembly?
 
No, just the place where the save file is stored, like how its in %user%/saved games/origin systems/wing commander in the ks version
 
Last edited: