Hard Light Productions Forums

Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Topic started by: WMCoolmon on April 30, 2002, 08:20:36 pm

Title: Cutscenes
Post by: WMCoolmon on April 30, 2002, 08:20:36 pm
Anyone have a clue how hard it would be to change FS/2 so that cutscenes use some other format? I'm certain many modders are interested in this, as well as myself :D
Title: Cutscenes
Post by: vadar_1 on April 30, 2002, 08:46:36 pm
Im not sure if this would be a hinder... but Mr.B said that the movie subfunctions were not included in the source code (obvious reasons... *cough*Inter*****cough*)

The actual campaign code may or may not require integration of the MVE player code.
Title: Cutscenes
Post by: WMCoolmon on April 30, 2002, 11:53:01 pm
:bump:
Title: Cutscenes
Post by: Red5 on May 01, 2002, 02:29:52 am
I recommend changing the cutscenes to BIK extensions...BIK cutscenes have appeared in thousands of games since 1.0 in 1991... Modern BIK are used in star trek armada2 and other games... its actually a BINK file made by rad tools...plus there super easy to make and stuff...
Title: Cutscenes
Post by: TurboNed on May 01, 2002, 02:54:05 am
The problem (and sole problem, AFAIK) with BINKs is that you either have a little logo following your movie file (which rips the player out of the universe) or you shell out a TON of cash to license an encoder/player thingy so it'll work seamlessly.  By "TON" I mean quad-digits.  Or was it pent?  I forget.  www.smacker.com will tell you.

  --TurboNed
Title: Cutscenes
Post by: elorran on May 01, 2002, 07:51:35 pm
Another format could always be used, AVI or MPEG.  Though admittedly SMK or BINK formats might be the best way to go.

Either that or someone comes up with a brand new format and offers it to the community for use.
Title: Cutscenes
Post by: Kazan on May 01, 2002, 09:54:05 pm
BINK sucks, i hate bink with a passion, if you use bink im going to shoot you, rip the code out and replace it
Title: Cutscenes
Post by: TurboNed on May 01, 2002, 10:57:39 pm
Is this performance/compatibility oriented hatred, or did the guy who started RAD Game Tools cut you off on the freeway yesterday?

  --TurboNed
Title: Cutscenes
Post by: Nico on May 02, 2002, 12:28:05 am
Quote
Originally posted by TurboNed
Is this performance/compatibility oriented hatred, or did the guy who started RAD Game Tools cut you off on the freeway yesterday?

  --TurboNed


for my part, if I have to pay to encode my cutscenes, sorry for the harsh language, but **** it.
Title: Cutscenes
Post by: TurboNed on May 02, 2002, 12:35:18 am
Quote
Originally posted by venom2506


for my part, if I have to pay to encode my cutscenes, sorry for the harsh language, but [bleep][wait][/bleep] it.


This I can understand - but still, the sheer hatred of the codec puzzles me.  And you don't have to pay to encode them.  You just have to pay to play them back without a logo - overall, IMHO, they've got a nice (if little-guy-unfriendly) codec worked out.  Noncommercial free usage would be nice...but I can understand why they don't.

  --TurboNed
Title: Cutscenes
Post by: Nico on May 02, 2002, 12:50:20 am
Quote
Originally posted by TurboNed


This I can understand - but still, the sheer hatred of the codec puzzles me.  And you don't have to pay to encode them.  You just have to pay to play them back without a logo - overall, IMHO, they've got a nice (if little-guy-unfriendly) codec worked out.  Noncommercial free usage would be nice...but I can understand why they don't.

  --TurboNed


well, divx is cool and free, so...
Title: Cutscenes
Post by: Bobboau on May 02, 2002, 01:06:58 am
well lets just get A codec working,
don't realy care wich
Title: Cutscenes
Post by: WMCoolmon on May 02, 2002, 01:12:32 am
Quote
Originally posted by Bobboau
well lets just get A codec working,
don't realy care wich

:nod::nod::nod:
I was talking to the guy who made/rendered this (http://verybad1.homestead.com/files/essex10.jpg) model and he said he'd be more than happy to do cutscenes for a Battletech mod...;7
Title: Cutscenes
Post by: Red5 on May 02, 2002, 01:20:28 am
My question is
  Is there a player or codec to play these freespace 2 .mve movies, id like to implement them into the Freespace 2 RTS sta2 mod
Title: Cutscenes
Post by: EdrickV on May 02, 2002, 01:27:09 am
Quote
Originally posted by Red5
My question is
  Is there a player or codec to play these freespace 2 .mve movies, id like to implement them into the Freespace 2 RTS sta2 mod


The short answer: No

The long answer: Any such program would be illegal. Interplay doesn't want people using that format. (Which is why that code was removed from the source we got.) And we don't promote illegal stuff here. :) (Getting Interplay mad at us would be a bad idea.)
Title: Cutscenes
Post by: Sandwich on May 02, 2002, 02:19:51 am
Quote
Originally posted by vadar_1
Im not sure if this would be a hinder... but Mr.B said that the movie subfunctions were not included in the source code (obvious reasons... *cough*Inter*****cough*)

The actual campaign code may or may not require integration of the MVE player code.


Fine, so we leave the MVE code in there (as if we have a choice), but add code to play DivX or something.
Title: Cutscenes
Post by: EdrickV on May 02, 2002, 02:32:55 am
From what I've seen, all the movie play requests will basically be ignored. The movie_play function doesn't exist and the places where it's called are commented out. If we made our own movie_play function that took the same kinds of arguments as the original (even if it ignored them) we should be able to integrate movies easily. The hard part is getting some sort of movie playing system in there in the first place. :) (Of course, if we made a movie_play function in there we'd probably want it to double check the file name to make sure the caller isn't requesting a .mve file. If so, just return without any errors and pretend everything's fine 'cause trying to play it as an avi or whatever isn't going to work. :))
Title: Cutscenes
Post by: TurboNed on May 02, 2002, 09:14:10 am
Quote
Originally posted by sandwich


Fine, so we leave the MVE code in there (as if we have a choice), but add code to play DivX or something.


We don't have a choice - we can't integrate the MVE code at all.  The only builds that can play the MVE files are the builds on our CDs (and those patched with patches from :V:) - integrating DivX is possible, but making MVE files playable by our modified engine is (to my knowledge) not.  And converting the MVE files is also a copyright violation.

  --TurboNed
Title: Cutscenes
Post by: IceFire on May 02, 2002, 11:21:58 am
Just do it in DivX or whatever available codec is out there.  

Get past this concept stage and start working proactivly towards implementation of something.  The fact that we could now made our own full screen (or mostly) cutscenes is a very big step towards making new campaigns really shine.
Title: Cutscenes
Post by: ##UnknownPlayer## on May 03, 2002, 09:40:31 am
I suppose if someone had the time they *might* be able to figure out the MVE file format, but it seems pretty pointless if you ask me.
One of you programmers might be able to help us out here though, is it possible that we might be able to call the original movieplay function from the FS2.exe file?
Title: Cutscenes
Post by: CP5670 on May 03, 2002, 10:08:19 am
I think that the community might have actually figured it out, as there was an mve->self-playing exe converter called MVEExtract out there a while ago as part of Descent Manager, but Interplay banned distribution of it. :mad: (some people like myself still have it though :D)
Title: Cutscenes
Post by: Inquisitor on May 03, 2002, 10:25:16 am
just skip worrying about MVE. You have the source, time to integrate new functionality into it :)

Go with mpeg or soemthing like it, for the encoding (I guess divx works as well), and AVI, MPG or MOV for playback, all of which there are plenty of SDK's out there for integration into projects.
Title: Cutscenes
Post by: ##UnknownPlayer## on May 05, 2002, 01:17:46 am
Quote
Originally posted by CP5670
I think that the community might have actually figured it out, as there was an mve->self-playing exe converter called MVEExtract out there a while ago as part of Descent Manager, but Interplay banned distribution of it. :mad: (some people like myself still have it though :D)


Thent he real question is, who wrote it and can we subtley get them to let us in on it?
Title: Cutscenes
Post by: WMCoolmon on May 05, 2002, 01:53:58 am
All they found out was how to play the file, not the actual info.
I'd much prefer .AVI format, though. It's easily saved into by a 3D proggy and supported by most video-editing tools.
Title: Cutscenes
Post by: ZylonBane on May 05, 2002, 02:29:16 am
Ditto that. Just link to Windows' built-in AVI-playing functionality, and you're done. And this is the most simple case to implement-- full-screen with no user controls.

Using Divx as a standard codec though... BAD idea. Due to its officially unsupported status as an illegal hack on MS-MPEG4, many people refuse to install it. If the quality is that important for cutscenes, bite the bullet and use ASFs instead of AVIs.  Ehh... if you properly link to the ActiveMovie library (or whatever they call it these days), it'll be equally happy with AVIs, ASFs, and MPGs.
Title: Cutscenes
Post by: ##UnknownPlayer## on May 05, 2002, 08:26:10 am
There is a legal public version of DivX available - I would suggest we use that. It's not quite as good as the illegal one, but I hear it gets close.

EDIT: Alternatively, use MPEG-2!
Title: Cutscenes
Post by: EdrickV on May 05, 2002, 03:36:58 pm
Quote
Originally posted by ##UnknownPlayer##

One of you programmers might be able to help us out here though, is it possible that we might be able to call the original movieplay function from the FS2.exe file?


As far as I can tell it's not possible. The code to play the movies is stored within the EXE itself rather then a DLL and so is not exported. Only the FS2.exe program itself has access to the function.
Title: Cutscenes
Post by: phreak on May 05, 2002, 05:40:09 pm
Quote
Originally posted by ZylonBane
Ditto that. Just link to Windows' built-in AVI-playing functionality, and you're done. And this is the most simple case to implement-- full-screen with no user controls.

Using Divx as a standard codec though... BAD idea. Due to its officially unsupported status as an illegal hack on MS-MPEG4, many people refuse to install it. If the quality is that important for cutscenes, bite the bullet and use ASFs instead of AVIs.  Ehh... if you properly link to the ActiveMovie library (or whatever they call it these days), it'll be equally happy with AVIs, ASFs, and MPGs.


You may be thinking of DirectShow which is implimented in DX8.

We could use this, but we wouldn't be able to port it to linux or mac.
Title: Cutscenes
Post by: EdrickV on May 05, 2002, 06:45:59 pm
ActiveMovie was integrated with NetShow a long time ago to become DirectShow I believe. (And the Active Movie system was basically replaced by Microsoft Windows Media Player 6+ though there are still some Active Movie things around, for backwards compatability.)
For a Windows specific implementation, AVI files through MCI would probably be the easiest way to do cutscenes. (If using MCI support for other file types could be possible too, a program I made back in 1997 to play MIDI and wave files and have done minor updates to since then can play asf audio and video files, without any changes to the player itself because the code that actually plays the files is built into Windows and Windows Media Player 6/7.) But that wouldn't work under Linux or Macs without third party software. (like WINE for Linux) So we'd either have to make the movie player code files system specific or use something more universal to do a cross platform version.
Title: Cutscenes
Post by: ZylonBane on May 05, 2002, 08:59:04 pm
Considering that the entire renderer is based around DirectX and Glide, throwing DirectShow into the mix doesn't seem like a problem. Or is someone planning on a complete rewrite of the renderer?
Title: Cutscenes
Post by: Stryke 9 on May 05, 2002, 10:14:42 pm
1. DivX works.
2. Practically everyone HAS DivX, and it's easy to get and free for those who don't.
3. Lots of things support DivX- LightWave, for one, lets you convert movies straignt to it.
4. All these 4 billion other types of encoding out here either suck, cost money, or I've never heard of them. And if I've never heard of it, chances are fair half the people here have never heard about it. If they've never heard about it, you're making people get some random encoder nobody's heard of, which is a pain in the ass, just because you happen to have some encoder from Bob knows where and don't want to use on that's actually possible to get. Let's not make it complicated.
5. If DivX is illegal, there are sure as hell enough legitimate DivX codecs and players out there right now that it can be considered legal. If everyone (literally everyone) in a town goes to hang out on one street, and there's a "No Loitering" sign back there somewhere nobody sees, who the **** is going to care?

6. We need to agree on a bloody encoder, or exactly **** will get done until the second or third time Hell freezes over and Satan has to make woolen sweaters to keep all the flying pigs warm. So let's call it DivX. It's the only one nobody's had a huge problem with so far. If someone out there wants to pussyfoot around about something that MIGHT have been illegal at some point but is completely unenforced and accepted as legitimate univerally, that's their personal problem, and they should never have gotten online in the first place. They should be off making sure nobody ever jay-walks.
Title: Cutscenes
Post by: WMCoolmon on May 06, 2002, 12:47:30 am
As long as we're talking about the DivX codec, :yes:
Title: Cutscenes
Post by: EdrickV on May 06, 2002, 01:29:24 am
If DIVX is good enough for Jim Henson, creator of the Muppets, it's good enough for me: :nod:
http://news.com.com/2110-1023-827439.html

The older DIVX codecs were based on Microsoft's MPEG-4 and were illegal I believe. The new ones were built from scratch. Heck, there's even a pc card out now that advertises itself as a way to play DVDs, DIVX files, VCDs, and other stuff from your computer on your TV. With a remote! :eek2:
Title: Cutscenes
Post by: Nico on May 07, 2002, 05:08:55 pm
mmh, all this is cool, but is there actually someone working on it? Would be handy to actually have one, you know :D
Title: Cutscenes
Post by: Inquisitor on May 07, 2002, 05:46:02 pm
Would be handy to have a list of all the things people wanted :)
Title: Cutscenes
Post by: Kazan on May 07, 2002, 05:58:38 pm
Quote
Originally posted by ZylonBane

Using Divx as a standard codec though... BAD idea. Due to its officially unsupported status as an illegal hack on MS-MPEG4, many people refuse to install it.


bullshiat

DivX is not a hack of MS-MPEG4 - they are completely seperate codecs.  Microsoft started that fake story that you just regurgitated.

Just like some kid in Computer Science at school today thought microsoft invested SQL because they had been using msSQL
Title: Cutscenes
Post by: Nico on May 07, 2002, 06:14:40 pm
Quote
Originally posted by Kazan


bullshiat

DivX is not a hack of MS-MPEG4 - they are completely seperate codecs.  Microsoft started that fake story that you just regurgitated.

Just like some kid in Computer Science at school today thought microsoft invested SQL because they had been using msSQL


Hey, Kazan, since you're the best one around for this kind of stuff, would you like to put that divx player? That would allow me to test cutscenes and would be quite handy for my campaign, and I believe Styxx would be happy too (hehe)
Title: Cutscenes
Post by: Kazan on May 07, 2002, 06:49:08 pm
i barely have time to post replies to threads i get email notifications about... i don't have time for coding right now unfortunately
Title: Cutscenes
Post by: Nico on May 07, 2002, 07:45:46 pm
Doesn't hurt to ask :)

mmh, is there anybody who could handle that? It's one of the only things I'm really interested in for my campaign ( along with the D3D self illumination from FS1 re-enabled for any kind of video card ).
Title: Cutscenes
Post by: ZylonBane on May 08, 2002, 06:32:59 am
Quote
Originally posted by Kazan
DivX is not a hack of MS-MPEG4 - they are completely seperate codecs.  Microsoft started that fake story that you just regurgitated.
Evidence, please.
Title: Cutscenes
Post by: ##UnknownPlayer## on May 08, 2002, 07:09:26 am
Doesn't matter now - the new DivX codecs are legal and just as good. Or at least, wide spread enough that nothing will happen to us. I'm gonna start looking into this...
Title: Cutscenes
Post by: EdrickV on May 08, 2002, 08:07:25 am
Quote
Originally posted by ZylonBane
Evidence, please.


http://news.com.com/2100-1023-272805.html
http://news.com.com/2100-1023-875988.html
http://news.search.com/search?q=divx
Title: Cutscenes
Post by: ZylonBane on May 08, 2002, 01:14:50 pm
From that first link:
"DivXNetworks admits that early versions of the codec did rely in part on Microsoft technology"

*cough* What was that you were saying, Kaz-man?
Title: Cutscenes
Post by: Stryke 9 on May 08, 2002, 01:20:25 pm
That you're being a numbskull, badgering people about a potentially important decision over soem technicality that matters not in the least, just so you can feel clever. Argument's dead- DivX is legal now, that's all that matters, it's the one to use, if you have a legitimate beef with it post away, don't just harp on the crap.
Title: Cutscenes
Post by: EvilTypeGuy on May 08, 2002, 02:28:24 pm
Quote
Originally posted by ZylonBane
Ditto that. Just link to Windows' built-in AVI-playing functionality, and you're done. And this is the most simple case to implement-- full-screen with no user controls.

Using Divx as a standard codec though... BAD idea. Due to its officially unsupported status as an illegal hack on MS-MPEG4, many people refuse to install it. If the quality is that important for cutscenes, bite the bullet and use ASFs instead of AVIs.  Ehh... if you properly link to the ActiveMovie library (or whatever they call it these days), it'll be equally happy with AVIs, ASFs, and MPGs.


And tie ourselves to M$ thereby preventing any useful porting to other non M$ platforms? No thanks. DIVX is *NOT* an 'illegal hack'. There are *commercial* software companies that make software that writes in the divx format. They have lawyers, and are legally doing this. So this doesn't hold water.
Title: Cutscenes
Post by: ZylonBane on May 09, 2002, 01:46:41 am
Quote
Originally posted by Stryke 9
That you're being a numbskull
Are you ever NOT frothing at the mouth? Sheesh.  :rolleyes:
Title: Cutscenes
Post by: ##UnknownPlayer## on May 09, 2002, 04:09:14 am
Yeah, well at any rate let's not get sidetracked because right now I feel like I'm sitting on a moving train and the room is spinning around me.

So the basic decision is, DivX is our new player format?
Title: Cutscenes
Post by: Sandwich on May 09, 2002, 07:30:08 am
I think so. Plus, one thing people need to realize is that even someone who refuses to install the DivX codec will be able to play cutscenes in a rebuilt FS2, as the decoding algorithims for DivX playback would be embedded in the EXE or a .DLL, just like the codec for MVE. After all, how many people have a MVE codec installed on their computer - one that can play MVE's in media player? None of you, but that didn't prevent any of us from seeing cutscenes in FS2, did it.

Oh, yeah - MVE sucks as a format - there's no reason to want to stick with it. :D
Title: Cutscenes
Post by: Kazan on May 09, 2002, 07:32:39 pm
from one of the news.com articles "The (new) codecs were built from scratch," said a company spokesman."

eat me zylon - i know people who code for DivX networks.
Title: Cutscenes
Post by: Inquisitor on May 09, 2002, 07:55:33 pm
Better question:

Are people sufficiently familiar with the implementation to get a player working in a reasonable time frame? Codecs are codecs, does the DivX sdk have a player implementation that can be integrated?

Anyone done it before? All I have ever done is integrate a quicktime player, and that was just embedded into multimedia apps (the plugin for Director) or java things. It's all well and good to wax about the history, but if nobody has implemented it, there might be a learning curve that nobody has anticipated ;)

For the record, it looks liek the right choice, codec wise, prviding it's not stupid hard to implement.
Title: Cutscenes
Post by: ZylonBane on May 11, 2002, 12:25:54 am
Quote
Originally posted by Kazan
eat me zylon - i know people who code for DivX networks.
Does this fact make you delicious?
Title: Cutscenes
Post by: ##UnknownPlayer## on May 11, 2002, 01:17:40 am
Quote
Originally posted by Inquisitor
Better question:

Are people sufficiently familiar with the implementation to get a player working in a reasonable time frame? Codecs are codecs, does the DivX sdk have a player implementation that can be integrated?

...

For the record, it looks liek the right choice, codec wise, prviding it's not stupid hard to implement.


Well currently the easiest way would be for us to implement our own special movieplay() function. To get it in as quick as possible I think we should probably just go with the windows specific implementation since most Freespace gamers will be on windows systems. Leave the Linux version up to the Linux people.
Title: Cutscenes
Post by: WMCoolmon on May 11, 2002, 02:59:22 am
:nod:
If it is indeed just the movieplay() feature that controls the handling of the movies, then it should be relatively easy to swap out the win code with the Linux code.
Of course, that's "relatively easy" as compared to getting it work on Linux :nervous:
Title: Cutscenes
Post by: EdrickV on May 11, 2002, 03:40:33 am
Actually, it's movie_play() as shown below.

int rval = movie_play(full_name);
if ( !rval ) {
   char str[256];
   sprintf(str, XSTR( "Unable to play movie %s.", 204), Cutscenes[which_cutscene].name );
   popup(0, 1, POPUP_OK, str );

In this case, int is used like a boolean to tell if the function succeeded and full_name is a char* with the full file name of the movie to play. This function does not exist in the source code we have so the above code is commented out. The big trick I think is finding some sort of library/headers/whatever that we can use with GCC under Cygwin and, maybe, Linux. Haven't looked at any DIVX libraries or whatever yet so I'm not sure how easy it'd be to drop it in there. And there may be licensing issues for some stuff, if it's GPL, 'cause we aren't in control of the license used for the FS2 source.
Title: Cutscenes
Post by: ##UnknownPlayer## on May 11, 2002, 05:56:13 am
I know the general idea of the function - what I meant in reference to movieplay was a function that played the actual movie. I thought it might be a good idea to differentiate in the unlikely chance that we might actually be able to get it to play mve's.

On a side note, has anybody tried debugging the FS2.exe executable and then ripping the ASM that runs when movies are played?
Title: Cutscenes
Post by: WMCoolmon on May 11, 2002, 05:43:29 pm
Do remember that we're not[/i][/u] trying to bring the Titus/Interplay lawyers down on us here.
Title: Cutscenes
Post by: an0n on May 11, 2002, 07:00:10 pm
Quote
Originally posted by ##UnknownPlayer##
On a side note, has anybody tried debugging the FS2.exe executable and then ripping the ASM that runs when movies are played?

I tried but it hurt my computer.
Title: Cutscenes
Post by: ##UnknownPlayer## on May 11, 2002, 07:57:12 pm
Quote
Originally posted by WMCoolmon
Do remember that we're not[/i][/u] trying to bring the Titus/Interplay lawyers down on us here.


[jk]pfft! How are they gonna pay for them![/jk]
Title: Cutscenes
Post by: Stryke 9 on May 11, 2002, 08:26:05 pm
Quote
Originally posted by ZylonBane
Are you ever NOT frothing at the mouth? Sheesh.  :rolleyes:


Only when I brush my teeth.

What, don't tell me YOU come online to be sedate. Anyway, you're still just being an annoyance, and I recommend you be an annoyance OUTSIDE the source code forum, like everyone else.
Title: Cutscenes
Post by: Kazan on May 18, 2002, 08:42:02 pm
Quote
Originally posted by ##UnknownPlayer##
Leave the Linux version up to the Linux people.


but if you have non-compatable formats we have to transcode the data fies for different platforms

[like quicktime *shudder* apple refuses to release a unix codec, not that we really care - the codec is a P.O.S.]
Title: Cutscenes
Post by: Scuddie on May 18, 2002, 10:30:47 pm
Quote
Originally posted by WMCoolmon
All they found out was how to play the file, not the actual info.
Hello, people...  Are you paying attention?  Can't we just ask the guy for the source, and export it as a DLL, and re-create the movie_play() function?  It's not like we're exporting the codec, all we need is the knowledge to play it.  As long as we don't exloit anything, there should be no problem with intraplay.  Am I wrong (seriously, am I)?
Title: Cutscenes
Post by: WMCoolmon on May 19, 2002, 12:23:26 am
It uses proprietary code, which was Interplay requested Descent-Network remove it from their page. Using it is not a good idea in any case.
Title: Cutscenes
Post by: Inquisitor on May 19, 2002, 10:59:02 am
Quicktime is not a codec. Quicktime is a framework/API and a player that uses a number of codecs. Maybe a link that describes the difference between a codec and a player is in order...

There was a fledling java player, but I am not sure it ever made it off the developer lists. Too bad, it's an easy API to work with.

Anyway, sounds like there are a number of REALISTIC options here, but they are low priority to some of the other tasks.
Title: Cutscenes
Post by: ##UnknownPlayer## on May 19, 2002, 05:42:54 pm
I've been messing around with DirectShow and its hell easy using it to play a video file to a window. It play's DivX files perfectly, and was easy to write an application for. I've just gotta get its messaging system sorted so you can skip movies and then it should be easy to write a movie_play function (which is pretty much what I did in my stand alone app anyway)
Title: Cutscenes
Post by: WMCoolmon on May 19, 2002, 06:22:56 pm
Quote
Originally posted by ##UnknownPlayer##
and then it should be easy to write a movie_play function

:yes2:;7:yes: