Flt2vhs: A BMS Replay Converter
-
@mrkilne
It crashes constantly for me as I think you did not take into account user accounts with no privileges…
The FL server is running a non privileges user for security reasons.The logs show:
Faulting application name: flt-mover.exe, version: 0.0.0.0, time stamp: 0x6052e523 Faulting module name: flt-mover.exe, version: 0.0.0.0, time stamp: 0x6052e523 Exception code: 0xc000001d Fault offset: 0x000000000001b73a Faulting process id: 0x2674 Faulting application start time: 0x01d71d833ce59468 Faulting application path: D:\Falcon BMS 4.35\User\Acmi\flt-mover.exe Faulting module path: D:\Falcon BMS 4.35\User\Acmi\flt-mover.exe Report Id: da3cb4d8-178e-46ea-b818-5c52606aad58 Faulting package full name: Faulting package-relative application ID:
Windows cannot access the file for one of the following reasons: there is a problem with the network connection, the disk that the file is stored on, or the storage drivers installed on this computer; or the disk is missing. Windows closed the program flt-mover.exe because of this error. Program: flt-mover.exe File: The error value is listed in the Additional Data section. User Action 1\. Open the file again. This situation might be a temporary problem that corrects itself when the program runs again. 2\. If the file still cannot be accessed and - It is on the network, your network administrator should verify that there is not a problem with the network and that the server can be contacted. - It is on a removable disk, for example, a floppy disk or CD-ROM, verify that the disk is fully inserted into the computer. 3\. Check and repair the file system by running CHKDSK. To run CHKDSK, click Start, click Run, type CMD, and then click OK. At the command prompt, type CHKDSK /F, and then press ENTER. 4\. If the problem persists, restore the file from a backup copy. 5\. Determine whether other files on the same disk can be opened. If not, the disk might be damaged. If it is a hard disk, contact your administrator or computer hardware vendor for further assistance. Additional Data Error value: 00000000 Disk type: 0
Hope that helps.
-
same here. under win7 all exes crash instantly after starting.
Also bit confused, so we should only start the flt-mover.exe or also the flt2vhs.exe?Cheers Obi1
-
Incredible time 4,2 seconds for an ACMI of 1 Gbyte. Please developers integration ASAP with BMS.
-
It crashes constantly for me as I think you did not take into account user accounts with no privileges…
Thanks for the bug report - is this a hard crash, or does the program exit with an error code? I’m assuming the former from the logs.
I don’t have a deep understanding of how Windows access controls work, but I’m guessing that it’s running into trouble when it tries to access BMS/User/Acmi without permissions. Can you grant it access to that folder? Would an option to create the VHS files in another directory be helpful?
same here. under win7 all exes crash instantly after starting.
Also bit confused, so we should only start the flt-mover.exe or also the flt2vhs.exe?flt-mover is the thing to start - it will automatically move the FLT files out from BMS (hence the name) and convert them to VHS.
I’m sorry it’s crashing - do you have any more information about the crash? If there’s a quick fix, I’ll be happy to implement it. But I’m probably not going to spend much time supporting a legacy version of Windows that was released a decade ago and went EOL last year.
-
Does it require certain vcl versions or anything else?
If so I could try and update those.Guess we need someone else to confirm that it’s a Win7 issue?
Cheers Obi1
-
The binaries shouldn’t have any dependencies. I think I’ve noticed the problem, though! Do you have an older CPU by chance?
-
Obviously yes:
Intel Xeon CPU E3-1220 V2 @ 3.10GHz 3.10 GHz
Cheers
-
-
Obviously yes: Intel Xeon CPU E3-1220 V2 @ 3.10GHz 3.10 GHz
I made a dumb mistake: previous releases targeted my laptop’s CPU (an Intel Skylake), so the binaries contained AVX2 instructions that aren’t supported by older machines. I believe this is the source of the crash, not file permissions.
This should be fixed in version 0.4: https://github.com/mrkline/flt2vhs/releases/tag/v0.4
Obi1, I believe this should fix your issue as well.
-
Will test it on the server but seems to be working so far!
Cheers
-
Thanks! Will test this also. processor: E8600 C2D
Cheers Obi1
-
I must add to the hotlist
-
Startup error is fixed. Thanks!
Cheers Obi1
-
Tired of running acmi-compiler or flt-mover in the background to keep BMS from (slowly) converting FLT files to VHS? Wouldn’t it be nice if BMS just… didn’t do that?
I’m happy to announce the latest version of, flt2vhs 0.7, with a major improvement! Instead of running something in the background, flt2vhs ships with a tool (patch-bms-novhs) that disables BMS’s (slow) replay conversion. Just:
- Run the shiny new patch-bms-novhs.exe once, and behold! BMS will proceed directly from 3D to the debrief screen. No background programs required!
- Convert FLT files to VHS at your convenience with convert-all-flts.exe or by dragging and dropping them onto flt2vhs.exe
Grab it here: https://github.com/mrkline/flt2vhs/releases/tag/v0.7
-
Tired of running acmi-compiler or flt-mover in the background to keep BMS from (slowly) converting FLT files to VHS? Wouldn’t it be nice if BMS just… didn’t do that?
I’m happy to announce the latest version of, flt2vhs 0.7, with a major improvement! Instead of running something in the background, flt2vhs ships with a tool (patch-bms-novhs) that disables BMS’s (slow) replay conversion. Just:
- Run the shiny new patch-bms-novhs.exe once, and behold! BMS will proceed directly from 3D to the debrief screen. No background programs required!
- Convert FLT files to VHS at your convenience with convert-all-flts.exe or by dragging and dropping them onto flt2vhs.exe
Grab it here: https://github.com/mrkline/flt2vhs/releases/tag/v0.7
Does it change BMS original files, and if so, what back up is there to be made?
-
Does it change BMS original files, and if so, what back up is there to be made?
It modifies Falcon BMS.exe by replacing the two calls to ACMI_ImportFile(), the FLT -> VHS conversion function, with an instruction that does nothing.
You can revert the changes any time you would like with
patch-bms-novhs –restore
, but backups are never a bad idea. -
It modifies Falcon BMS.exe by replacing the two calls to …
If you accomplished that without source code … just debug symbols and disassembly? (incl. cleaning up the stack properly, zeroing return register, etc and verifying there’s no other side-effects within scope of that conversion function or downstream from the call site) … hmm, I can’t find an emoji for the nod of deep respect that I want to convey.
Nice work!
-
If you accomplished that without source code … just debug symbols and disassembly? (incl. cleaning up the stack properly, zeroing return register, etc and verifying there’s no other side-effects within scope of that conversion function or downstream from the call site) … hmm, I can’t find an emoji for the nod of deep respect that I want to convey.
Nice work!
It’s easier than it sounds (though this doesn’t diminish mrkline’s accomplishments :D). According to the Win x64 ABI, it’s the callee’s job to restore the stack and non-parameter registers. I think the only thing you’d need to worry about is if the caller expects the function to return something or relies on some side effect of the function call. Luckily in this case neither of those apply. So all you need to do is replace the relevant
call
instructions withnop
instructions. -
Wait a minute, so this patching does actually change the exe itself?
Would it work with older versions of BMS? Or could this have unwanted results?Cheers Obi1
-
The change is specific to 4.35U1 and will not work with older versions, which is why the patching tool checks that it’s looking at the right version before doing anything.