Geforce2 and cutscenes .... - by Sermon
Sermon on 15/11/2001 at 20:01
Well, re-installed Terra Nova after some 4 years or so and the game runs fine under Win98, but there's one minor problem. While the mission briefings and the cutscenes concerning the main-plot are running fine, the small movies just before and after the missions (jumping out of the shuttle, the "dying" movie, coming home via shuttle, etc.) don't seem to run on my Elsa Gladiac 511 TV-OUT Geforce2 card. The sound works but the screen stays black. Those movies are in no way essential for gaming, but it's annyoing that they don't work. Anyone else facing the same problem?
[ November 15, 2001: Message edited by: Sermon ]</p>
Shadowcat on 15/11/2001 at 23:31
hmm... the videos are all in <a href="http://www.radgametools.com/smkmain.htm">smacker</a> format. perhaps you'll find some help at that web site??
let us know if you have any luck... i don't have time to do any investigating myself just now, so i can't offer any other help :/
Daxim on 18/11/2001 at 14:30
Elsa Gladiac MX here. No video problems when running with <span style="font-family: monospace;">@tn +badlinmodes +badpaldac</span>.
ToxicFrog on 19/10/2002 at 01:00
I'm having the same problems. The important cutscenes play fine, but the short ones are sound only. System specs:
PIII 800MHz
394 MB RAM
Asus/NVidia V7100 GeForce 2 MX400 AGP
Windows ME
40x CD Drive
Command line:
__FF.EXE +BADLINMODES +BADPALDAC
I also tried copying the movies to the HDD -- no luck. Looking at them with the Smacker tools, they are all the same except for length and resolution. I would think that the resolution would have something to do with it, but the briefing, storyline, and main menu (that is the only non-story or -briefing cutscene that seems to play, BTW) files are all different resolutions, lengths, and sizes. There seems to be nothing in the files themselves to differentiate the movies that play from the ones that don't, so that leads me to suspect a problem with TN itself. The fact that the game-critical ones are the only ones that play seems too convenient to be coincidental.
[EDIT]
Experiments with renaming files (e.g. so that the LGS splash is named as though it were the first briefing) have proven that it is some aspect of the game that determines what movies are played--not some attribute of the files themselves--and also that TN distinguishes between them by filename. Further experimentation with a hex editor has confirmed this (Editing it so that it played OPENERA.SMK instead of S01_04A.SMK, for example). There seems to be no way of telling where it indicates which ones should be played and which ones not -- my attempts to do so have met with failure. It is probably buried deep within some other part of the program, and I do not have the necessary skills. And windows doesn't have strace, so I can't even try that...
[EDIT]
I HAVE DONE IT!
Each movie filename occupies a 16 byte cluster near the end of the executable. It will look something like this:
Byte: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Text: b r i e f 0 1 a . s m k
Hex: 62 72 69 65 66 30 31 61 2E 73 6D 6B 00 00 00 01
Note that the cluster will ALWAYS end with enough nulls (hex 0x00) to bring the total length up to 16 ('cause the file length is less than 16). Also note that the last byte of this example is 0x01, not 0x00. This last byte indicates whether or not to play the video. If it is 0x00, then you will only get sound. So, for each video file name in __FF.EXE, count 16 bytes (counting the first character of the filename as 1) and change the 16th byte to 01 if it is 00.
I will post more specific instructions as soon as I finish editing and testing.
ToxicFrog on 19/10/2002 at 02:28
As promised, the specific instructions (for version 1.09 english):
:eek: WARNING :eek:
If you do this to any version other than 1.09 English, it will amost certainly totally destroy your __FF.EXE. If you do this and forget to make a backup, I accept no responsibility for any pain or anguish caused.
:eek: /WARNING :eek:
0. Back up your __FF.EXE!
0a. The original should have
size: 18566415 bytes
PKZip CRC32: A21EC0F3
Standard CRC16: BDB5
Any deviation means that you are not using 1.09 or you have a corrupted exe.
0b. After patching, it should be:
size: 18566415 bytes
PKZip CRC32: D6AF52B9
Standard CRC16: 1CD8
Any deviation means that there was a mistake patching it (assuming that the original was valid). Note that both files should be exactly the same size.
1. Open up __FF.EXE in a hex editor. I recommend XVI32.
2. Jump to the bytes at the following hex addresses. They should all be 00. Change them all to 01.
1B53DB
1B55EB
1B55FB
1B563B
1B564B
1B565B
1B566B
1B567B
1B568B
1B569B
1B56AB
1B56BB
1B56CB
1B56DB
1B56EB
1B56FB
1B570B
1B571B
1B572B
1B573B
1B574B
1B575B
1B576B
1B577B
1B57AB
1B57BB
3. After you change all of those addresses to 01, save and enjoy!
3a. If any of these are NOT zero, I have made a typo.
As soon as I can make one, I will post an XVI script so that those with XVI32 can patch TN automatically--unless someone knows of a place that I could upload the patched executable to.
[EDIT] Error in the first hex offset.
[EDIT] Added size, CRC32, and CRC16
ToxicFrog on 19/10/2002 at 03:54
Finally, the XVI32 patching script. To use this, load __FF.EXE into XVI32, select Script->Editor. and cut-and-paste the following into the script edit window:
MSG This script will patch Terra Nova: Strike Force Centauri to play all movies properly. It must be executed on __FF.EXE.
ADR $1B53DB
OVERWRITE 01
ADR $1B55EB
OVERWRITE 01
ADR $1B55FB
OVERWRITE 01
ADR $1B563B
OVERWRITE 01
ADR $1B564B
OVERWRITE 01
ADR $1B565B
OVERWRITE 01
ADR $1B566B
OVERWRITE 01
ADR $1B567B
OVERWRITE 01
ADR $1B568B
OVERWRITE 01
ADR $1B569B
OVERWRITE 01
ADR $1B56AB
OVERWRITE 01
ADR $1B56BB
OVERWRITE 01
ADR $1B56CB
OVERWRITE 01
ADR $1B56DB
OVERWRITE 01
ADR $1B56EB
OVERWRITE 01
ADR $1B56FB
OVERWRITE 01
ADR $1B570B
OVERWRITE 01
ADR $1B571B
OVERWRITE 01
ADR $1B572B
OVERWRITE 01
ADR $1B573B
OVERWRITE 01
ADR $1B574B
OVERWRITE 01
ADR $1B575B
OVERWRITE 01
ADR $1B576B
OVERWRITE 01
ADR $1B577B
OVERWRITE 01
ADR $1B57AB
OVERWRITE 01
ADR $1B57BB
OVERWRITE 01
MSG Patching complete. Save __FF.EXE and play!
EXIT
Alternatively, you could save that script to a text file (with optional xsc extension) and open it from the script editor.
Shadowcat on 19/10/2002 at 05:51
Hey, thanks for posting all that, ToxicFrog!!