Wing Loader (KS/WCDX) Loader & Voice Over Mod

Not sure where the technology is at, but I've heard amazing things. I wonder if it will soon be possible to feed an AI samples of the WC Sega CD version to generate new audio for SM1 and 2. If not now then id imagine it's only a matter of time.
 
Hi everybody, I just found this gem but I can't get it to run.
I am on a Windows 10 machine and worked through all the installation steps for WC1.
But when I try to run WingLoader I get SDL Error: Could not create GL context

The whole prompt looks like...
C:\WingLoader>wingloader TEST POP INT!!!!0!!!!1 TEST POP INT!!!!2!!!!2 TEST POP INT!!!!3!!!!3 TEST POP INT!!!!4!!!!4 TEST POP INT!!!!5!!!!5 TEST POP String!!!!!!!!Test of a stack memory store TEST POP String!!!!2!!!!Second Register Image Resolution: 1920x1080 Fill Data (300) is a skip. Fill A: 255 Fill R: 300 Fill G: 0 Fill B: 48 Total Steps: 12 Data 0:10 Data 1:11 Data 2:12 Data 3:13 Data 4:15 Data 5:16 Data 6:17 Data 7:18 Data 8:19 Data 9:20 Data 10:21 Data 11:255 Total Steps: 4 Data 0:16 Data 1:17 Data 2:255 Data 3:0 Total Steps: 4 Data 0:17 Data 1:17 Data 2:17 Data 3:0 I'm out0 Controllers found . .. my directory is C:\WingLoader ENGINE AND SCRIPT ARE COMPATIBLE. ENGINE AND SCRIPT ARE COMPATIBLE. [Window.MainDisplay] = 1 [Shader.BasicShader] = 1 [Shader.LightingShader] = 2 [Shader.Sprite] = 3 [Shader.Font] = 4 [Camera.HUD] = 1 [Camera.Icons] = 2 [Camera.IconsWC2] = 3 [Camera.IconsWC3] = 4 [Camera.IconsWC4] = 5 [Camera.IconsWCP] = 6 [Peek.WC1] = 1 [PEEK_ADDRESS_1] = 1 [PEEK_ADDRESS_2] = 2 [PEEK_ADDRESS_3] = 3 [PEEK_ADDRESS_NAME] = 4 [PEEK_ADDRESS_CALLSIGN] = 5 [PEEK_ADDRESS_SYSTEM] = 6 [PEEK_ADDRESS_YEAR] = 7 [PEEK_ADDRESS_DAY] = 8 [PEEK_ADDRESS_HOUR] = 9 [PEEK_ADDRESS_MINUTE] = 10 [Video.Splash] = 1 [Vector.Background] = 1 [Vector.WC1] = 2 [Vector.WC1SM1] = 3 [Vector.WC1SM15] = 4 [Vector.WC1SM2] = 5 [Vector.WC1T] = 6 [Vector.WC2] = 7 [Vector.WC2SO1] = 8 [Vector.WC2SO2] = 9 [Vector.WC3] = 10 [Vector.WC4] = 11 [Vector.WCP] = 12 [Vector.WCSO] = 13 [Vector.Up] = 14 [Vector.Down] = 15 [Texture.WC1] = 1 [Texture.WC1SM1] = 2 [Texture.WC1SM15] = 3 [Texture.WC1SM2] = 4 [Texture.WC1T] = 5 [Texture.Background] = 6 [Texture.WC2] = 7 [Texture.WC2SO1] = 8 [Texture.WC2SO2] = 9 [Texture.WC3] = 10 [Texture.WC4] = 11 [Texture.WCP] = 12 [Texture.WCSO] = 13 [Texture.Video] = 14 [Channel.Dummy] = 1 [Channel.Voice] = 2 [Channel.Coms] = 3 [Num.Game] = 1 [Num.Selection] = 2 [Num.Selection2] = 3 [Num.SelectionP] = 4 [Num.Animation] = 5 [Num.Vid] = 6 [Num.Mission] = 7 [Num.CheckState1] = 8 [Num.CheckState2] = 9 [String.Buffer1] = 1 [String.Buffer2] = 2 [String.Name] = 3 [String.Callsign] = 4 [String.System] = 5 [String.Year] = 6 [String.Day] = 7 [String.Hour] = 8 [String.Minute] = 9 [Video.Splash1] = 2 [Video.Splash2] = 3 [Audio.SNDFX.1] = 1 [Audio.SNDFX.2] = 2 [Audio.SNDFX.3] = 3 [Audio.SM1Intro] = 4 [Timer.Dumb] = 1 [Timer.Vid] = 2 [Timer.Vid] = 3 ENGINE AND SCRIPT ARE COMPATIBLE. OpenGL context could not be created! SDL Error: Could not create GL context: Der Vorgang wurde erfolgreich beendet. Failed to initialize the OpenGL context. C:\WingLoader>

Has anyone an idea what's going on?

Best wishes
Alex
 
Hi everybody, I just found this gem but I can't get it to run.
I am on a Windows 10 machine and worked through all the installation steps for WC1.
But when I try to run WingLoader I get SDL Error: Could not create GL context

The whole prompt looks like...
C:\WingLoader>wingloader TEST POP INT!!!!0!!!!1 TEST POP INT!!!!2!!!!2 TEST POP INT!!!!3!!!!3 TEST POP INT!!!!4!!!!4 TEST POP INT!!!!5!!!!5 TEST POP String!!!!!!!!Test of a stack memory store TEST POP String!!!!2!!!!Second Register Image Resolution: 1920x1080 Fill Data (300) is a skip. Fill A: 255 Fill R: 300 Fill G: 0 Fill B: 48 Total Steps: 12 Data 0:10 Data 1:11 Data 2:12 Data 3:13 Data 4:15 Data 5:16 Data 6:17 Data 7:18 Data 8:19 Data 9:20 Data 10:21 Data 11:255 Total Steps: 4 Data 0:16 Data 1:17 Data 2:255 Data 3:0 Total Steps: 4 Data 0:17 Data 1:17 Data 2:17 Data 3:0 I'm out0 Controllers found . .. my directory is C:\WingLoader ENGINE AND SCRIPT ARE COMPATIBLE. ENGINE AND SCRIPT ARE COMPATIBLE. [Window.MainDisplay] = 1 [Shader.BasicShader] = 1 [Shader.LightingShader] = 2 [Shader.Sprite] = 3 [Shader.Font] = 4 [Camera.HUD] = 1 [Camera.Icons] = 2 [Camera.IconsWC2] = 3 [Camera.IconsWC3] = 4 [Camera.IconsWC4] = 5 [Camera.IconsWCP] = 6 [Peek.WC1] = 1 [PEEK_ADDRESS_1] = 1 [PEEK_ADDRESS_2] = 2 [PEEK_ADDRESS_3] = 3 [PEEK_ADDRESS_NAME] = 4 [PEEK_ADDRESS_CALLSIGN] = 5 [PEEK_ADDRESS_SYSTEM] = 6 [PEEK_ADDRESS_YEAR] = 7 [PEEK_ADDRESS_DAY] = 8 [PEEK_ADDRESS_HOUR] = 9 [PEEK_ADDRESS_MINUTE] = 10 [Video.Splash] = 1 [Vector.Background] = 1 [Vector.WC1] = 2 [Vector.WC1SM1] = 3 [Vector.WC1SM15] = 4 [Vector.WC1SM2] = 5 [Vector.WC1T] = 6 [Vector.WC2] = 7 [Vector.WC2SO1] = 8 [Vector.WC2SO2] = 9 [Vector.WC3] = 10 [Vector.WC4] = 11 [Vector.WCP] = 12 [Vector.WCSO] = 13 [Vector.Up] = 14 [Vector.Down] = 15 [Texture.WC1] = 1 [Texture.WC1SM1] = 2 [Texture.WC1SM15] = 3 [Texture.WC1SM2] = 4 [Texture.WC1T] = 5 [Texture.Background] = 6 [Texture.WC2] = 7 [Texture.WC2SO1] = 8 [Texture.WC2SO2] = 9 [Texture.WC3] = 10 [Texture.WC4] = 11 [Texture.WCP] = 12 [Texture.WCSO] = 13 [Texture.Video] = 14 [Channel.Dummy] = 1 [Channel.Voice] = 2 [Channel.Coms] = 3 [Num.Game] = 1 [Num.Selection] = 2 [Num.Selection2] = 3 [Num.SelectionP] = 4 [Num.Animation] = 5 [Num.Vid] = 6 [Num.Mission] = 7 [Num.CheckState1] = 8 [Num.CheckState2] = 9 [String.Buffer1] = 1 [String.Buffer2] = 2 [String.Name] = 3 [String.Callsign] = 4 [String.System] = 5 [String.Year] = 6 [String.Day] = 7 [String.Hour] = 8 [String.Minute] = 9 [Video.Splash1] = 2 [Video.Splash2] = 3 [Audio.SNDFX.1] = 1 [Audio.SNDFX.2] = 2 [Audio.SNDFX.3] = 3 [Audio.SM1Intro] = 4 [Timer.Dumb] = 1 [Timer.Vid] = 2 [Timer.Vid] = 3 ENGINE AND SCRIPT ARE COMPATIBLE. OpenGL context could not be created! SDL Error: Could not create GL context: Der Vorgang wurde erfolgreich beendet. Failed to initialize the OpenGL context. C:\WingLoader>

Has anyone an idea what's going on?

Best wishes
Alex
Hey Alex!

This means that your computer goes not support OpenGL 4.6. Might be an old laptop with intel integrated graphics, or an outdated graphics driver. If everything is up to date, you can manually set WingLoader to run on older versions by opening pref.ini inside the main WingLoader folder and change GLMajor and GLMinor to the correct versions for you. The lowest you can go is 3.2

GLMajor=3
GLMinor=2

Check your graphics drivers to see what is the latest versions that your computer supports. Hope this helps you get up and running. :)
 
Out of curiosity Is there a benefit from newer versions of OGL? Why not make 3.2 the minimum if it can run that?
 
Out of curiosity Is there a benefit from newer versions of OGL? Why not make 3.2 the minimum if it can run that?
There isn't. I was testing another app with shaders that needed 4.5 and never lowered it. I'll make it 3.2 in next update.
 
Hey Alex!

This means that your computer goes not support OpenGL 4.6. Might be an old laptop with intel integrated graphics, or an outdated graphics driver. If everything is up to date, you can manually set WingLoader to run on older versions by opening pref.ini inside the main WingLoader folder and change GLMajor and GLMinor to the correct versions for you. The lowest you can go is 3.2

GLMajor=3
GLMinor=2

Check your graphics drivers to see what is the latest versions that your computer supports. Hope this helps you get up and running. :)
Thank you so much!
 
I would like to know if it is possible to install Voice Over Mod without installing Loader? I have installed Kilrathi Saga, all add-ons and WCDX. I am quite satisfied with the Kilrathi Saga menus and I don't need a Loader.
 
I would like to know if it is possible to install Voice Over Mod without installing Loader? I have installed Kilrathi Saga, all add-ons and WCDX. I am quite satisfied with the Kilrathi Saga menus and I don't need a Loader.
No, the loader is what actually plays the audio in the background as well as launch and play the video cut-scene before opening SM1. It's not played from the WC1 KS executables.
 
I would like to know if it is possible to install Voice Over Mod without installing Loader? I have installed Kilrathi Saga, all add-ons and WCDX. I am quite satisfied with the Kilrathi Saga menus and I don't need a Loader.
@wcnut is correct. Wing Loader just peeks at the game and plays the audio within itself in the background behind the game. There isn't a way to seperate my Loader and still have the voice overs work. Sorry.
 
Hey everyone!

I hope you are all having a great summer so far! This is my busy time of year but I'm keeping my head up and messing around with the next big feature of Wing Loader. I've been hesitant to reveal anything about it too soon (as it took me almost 3 years to complete the voice overs) but I figured..... What the hell. :p

What's next? The next major version of Wing Loader will have support for ODVS AI Upscaled videos in Wing Commander 3!

When?
Please don't ask that just yet lol. There are a lot of things left to do and based on my last experience with getting voices into the game, there are always unforeseen obstacles to overcome. But 400+ videos are better than 2500+ voice lines I guess. :p

How? Using a similar method to how I approached voiceovers for Wing Commander 1, I was able to find a register in the game to identify when a video plays and create an overlay on top of the game for the HD videos to play. I can then call the ESC key to the game after the video plays to skip the original in-game cutscenes. It's a bit flickery and there are some issues already with this approach, but it works pretty well so far. Here is a little video test, showing it in action.


As mentioned before, there are some issues to overcome already listed below.

1) (Solved) I couldn't get .mp4's to play with synced audio. My current setup for the Secret Missions 1 Video, gets the video frames from an .mp4 but plays audio as a .wav separately and hopes for the best. It works ok for short clips, but in longer cutscenes like the intro to WC3 that is 10 minutes, it desyncs real bad. I did however find a way to get .OGV videos to play with synced audio. This means that there will need to be a specific version of ODVS's HD Wing Commander 3 videos for Wing Loader to use correctly. I've spoken with ODVS and we will stay on the same page but there will more than likely be a Wing Loader specific version to work.

2) (Solved) The game does not call for sc_205a, sc_205b etc... to play videos. It only calls the scene as a whole sc_205. Then calls the value 20 to start the scene and then counts each time the camera cuts and adds 8. So imagine every time the camera changes position, its a new clip and the game basically edits the videos on the fly. By counting the camera cuts in sc_205a and adding 20 + 8 (for the first cut of the next clip) I can get the value of sc_205b and so forth. So... Honestly, I'm surprised I even noticed that register and I don't really understand the design behind it, but who cares, I cracked the enigma code! :) It might have been a fluke. lol

3) (In-Progress) Some videos like the pre fight cutscenes are both dynamic and in pieces. (Blair walks down to flight deck / Long shot of the ship loadout / Walking towards the ship / getting in the ship... Etc) but calling Esc skips the whole sequence making it impossible for me to skip the original scenes so what ends up happening is 1 of 2 things.

1) Get the first clip and that's it. Skip to the mission. (We can see this in the Test video)
2) Disable the cutscene skip and get HD video followed by original video, then next HD video then original etc....

If I can find a memory address that stores the current ship loadout for the mission I might be able to get around this. But haven't found it yet.

This happens in some other scenes too. Such as when talking to Hobbs right after the first mission. It plays sc_016a then goes right into sc_016c but if you fail the mission it plays sc_016b then sc_016c. Calling the skip function skips everything but I can get the (c) call until the original video plays out first. I have a way around this one, but not sure if it will always be as easy as this scene.

4) (In-Progress) Sometimes the game goes stupid, as a result of me Poking back at the values to clear registers, the values sometimes come up as invalid and not registering a video is being played. (In the test video the briefing doesn't play) Not sure the solution here yet, but will keep working on it for a solution.

I hope to push through this a bit faster than I did voice-overs but only time will tell on that one. That's about all for now. I'll keep you all posted. Cheers!
 
Hi Destro, Are you able to share with me some information about your dll injection on Kilrathi Saga? I'm trying to develop dll patches for Wing Commander 3/4 for handling Force Feedback Joystick support. I'm having some trouble hooking the executables. I've followed HCL's hooking guide and I got my dll file to load but it crashes when it jumps back to the game after running my new code.
 
Hi Destro, Are you able to share with me some information about your dll injection on Kilrathi Saga? I'm trying to develop dll patches for Wing Commander 3/4 for handling Force Feedback Joystick support. I'm having some trouble hooking the executables. I've followed HCL's hooking guide and I got my dll file to load but it crashes when it jumps back to the game after running my new code.
I might be able to help. I'm not doing .dll injecting, but I am hooking to the process via my executable. It should have similarities. I'll DM you sometime this week when I got a few minutes and try to help if I can. What is the link to hci's hooking guide? I wasn't able to find it for WC3 and Wc4. Only Standoff.
 
Wow totally missed this; I was just saying to DMJC if he wanted my FFMPEG playback code he was welcome to it.
It runs all of ODVS' files with separate threads and syncs video and audio without issues (also happily runs and deinterlaces non upscaled WC4 + WCP DVD files). Also handles multiple language tracks (I also have code for pulling out subtitles from the WC3 videos if you need it; not sure if your hack is similar to HCl's which would block out the original subtitles).

Seems foolish to keep two seperate video packs from ODVS as a WC3 Remake is not unlikely.

Oh and if you're poking around; ODVS' pack has the PSX news videos. From what I saw looking at the PC version the data needed to play those videos is still present (and if not the PSX version uses the same format so it wouldn't be a stretch to re-integate them)
 
Last edited:
This is the link to HCL's DLL Hacking Guide I was able to hook wc3w.exe from Kilrathi Saga but it's loading my dll file every time the game loads a scene, doesn't matter if it's a cutscene, a mission or a screen on the TCS Victory. If we can get this working, it also opens the door to HD Movie upgrades for WC4 Dos/Windows edition and Privateer 2! I am interested if you've already tagged variables, I'd like to get the variables for shooting/gun types/missiles/afterburner/hit & damage for Force Feedback Joystick support. I can give you the bytes I hooked WC3W.exe with it's very similar to what HCL describes in his document.
 
Last edited:
Wow totally missed this; I was just saying to DMJC if he wanted my FFMPEG playback code he was welcome to it.
It runs all of ODVS' files with separate threads and syncs video and audio without issues (also happily runs and deinterlaces non upscaled WC4 + WCP DVD files). Also handles multiple language tracks (I also have code for pulling out subtitles from the WC3 videos if you need it; not sure if your hack is similar to HCl's which would block out the original subtitles).

Seems foolish to keep two seperate video packs from ODVS as a WC3 Remake is not unlikely.

Oh and if you're poking around; ODVS' pack has the PSX news videos. From what I saw looking at the PC version the data needed to play those videos is still present (and if not the PSX version uses the same format so it wouldn't be a stretch to re-integate them)
Hey Pedro! Yes I tried FFmpeg but kept getting tutorials with Deprecated code or just how to convert via command line. Lol. I had moved on to OGV as to not hit a wall and make no progress, but if you would be interested in sharing that DM me. I'd love to look it over as that would save me lots of time converting and, as you mentioned, maintaining seperate video packs. :)

I did see the News videos, I'm not there just yet but if the game has a call for them I should be able to get them in. I will have to test each mission so hopefully I'll sneek them in. :p
 
Hey Pedro! Yes I tried FFmpeg but kept getting tutorials with Deprecated code or just how to convert via command line. Lol. I had moved on to OGV as to not hit a wall and make no progress, but if you would be interested in sharing that DM me. I'd love to look it over as that would save me lots of time converting and, as you mentioned, maintaining seperate video packs. :)

I did see the News videos, I'm not there just yet but if the game has a call for them I should be able to get them in. I will have to test each mission so hopefully I'll sneek them in. :p

Done.
As for the news videos; if you get to that point let me know - I had determined it could be done by just editing the room file if the video was available, hopefully the libraries @AllTinker is working on will make that a breeze.
 
As a backup idea If it turns out there is no call, and assuming the news videos are suppose to play before or after another video, why not just embed the news vid in the same file as the neighboring vid? Does the game care how long the video file should be?

Granted that's a distribution mess, especially if odvs does another update. So as a last resort.
 
Back
Top