EEEK! How fast do you think encoding is? This simply will NOT work they are VERY asymetric (about 100 times the processing to encode than to decode).
Don't worry, I didn't plan to do the encoding/decoding simultaneously! The thing is just, if you have them on HD anyway you can safe a lot of effort by doing any pre-processing off-line. You could run the highest-quality rescaling filter that you can come up with and compress with the highest quality encoder you can find. But as I said before, there are bigger problems to tackle than movie playback.
Ahh Ok dokey
Suggestion for topic 'distribution'
the original thread started was 'is it possible' the answer is yes.
Maybe we should break off the various discussions such as MOVIE, field information, battle information and script execution? Or maybe there just isn't enough interest for that yet
Perhaps we could discuse setup?
The big issue with the encoding and decoding isn't is it possible we all know it's very possible. The real issue is really 'is it safe legally'. I could for example RIP FF7 movies and reencode them with visual improvements etc. However I don't believe it's legal to include those with the game engine. AND asking a person to download all the stuff to rip and reencode the movies might be an impedance to using it. For windows or Linux this could be a problem. The only potential solution I can think of is using XVid and have the installer use some automated method of getting the XVID windows libs or XVID Linux libraries for encoding/decoding. Grabing an encoder then for CLI execution is the next step. This requires the media though. Under linux as halkun said this method would not work. Windows it would.
Technical aspects, we need a resolution independant method of showing the movies in any case that matches well with the backgrounds. I think the best method is as I mentioned a large background texture plastered onto a quadric. The same can be done with the game sprites (using transparency). All alignment can be done prior to rasterization. This is going to be the biggest issue of having a multi resolution output. 3D is easy to scale in the game. 2d is not. If any of you have played the PSX version under emulation you'll notice little regions where there are small lines visible in the background. I believe there are several ways of correcting this problem but we have to think things through carefully. 320x224 does not scale easily to 1024x768. So my first suggestion is to NOT use standard window resolutions such as 1024x768. Even if it's in a full screen viewing mode. I nominate picking ratios compatible with 320x224 which has an aspect ratio of 10:7 not 4:3. 800x600 window would actually be 800x560 or 1024x768 would be 1000x700 1280x960 or 1024 ends up 1280x896. 1600x1280 1600x1120. Not only does this make things simpler for the rendering engine. It also makes the display of all graphics MUCH better. There would be a significant reduction in alignment issues. (Like none).
Other things, the Kernel handles the low level IO access for everything correct? I know everyone seems to have a desire to glob everything together (grin) and believes this easiest. I will humbly submit from experience in a multi person project it's not. Modularizing the whole thing and defining control interfaces is the wisest but slowest path. If it's truely to be a multi system project, it's a must pretty much. Otherwise you will be playing fast and the furious with code. Everything up to the 'kernel' or basic system access should be identical. This keeps the basic engine running smoothly and consistantly. It has the added benefit of allowing testing to be MUCH MUCH easier. IE you can simulate the kernels access with whatever kernel code you have that works, until the kernel for a particular platform works well enough. This works both ways for testing. If existing code for testing the kernel is around, guess what? Making sure the kernel works is much easier too! (what a concept
).
So here are the basic questions.
What does the kernel consist of?
From my experience and observation thus for of FF7's behavior less than you would think. It looks like the Kernel is nothing but low level IO and rudimentary application starting. It appears to me that kernel.bin is the actually 'startup' code for the game. The kernel may contain internal references for all files in the game. So for the PSX version it make contain all references to sectors for each file on each game disk. For the PC
not sure probably similar data.
So my guess is the kernel grabs kernel.bin and loads the start menu which in turn loads the start of the game or the current field location.
For a Linux version it would be necessary to submit an update to the CD-ROM drivers for Linux to support Mode 2 access with disk drives or at least see if it is possible to do so. This is not easy but might be more legal than say having them make an Image of each disk to access.
Cyb