Questions about DXX Rebirth for possible PS1 add-on

I am wondering about the feasibility of recreating the gameplay of Descent 1 PS1/Descent Maximum (Descent 2 PS1) in DXX Rebirth as an add-on for each game. The colored lighting is already present in the port, so the remainder would be giving menus and each level the waveform audio of the PS1 for music, robot briefings, and mine briefings, replacing the mine exit sequence with the appropriate video for the level, and replacing the intro and outro briefings for Descent 1 with the video versions.

I can utilize any format needed to get them into the game by transcoding with FFMPEG (they currently exist as uncompressed AVIs and FLAC), but a format more widely used and efficient than Interplay's MVE for video would be easier, such as Vorbis for audio and Theora for video, or what DXX has support for essentially.

So I guess the starting point is what audio and video formats does DXX Rebirth support and how much work would be involved to do these swaps?
Replacing the content is easy. Shadow the files you want to replace with files of the same name at a higher point in the PhysFS search path and your shadow copies will be selected instead of the originals.

Adding support for alternate formats has never been a priority. I think you are limited to the original formats, unless you care to patch in support for new ones.
I'm not sure what would be replaced since it involves inserting videos to play at certain points where there are text briefings now and audio to play at certain points on top of certain text briefings.
Adding new types of content cannot be done with simple file shadowing. You will need to patch the engine to add logic to search for your new files.
Over a decade ago (2006) I did this with another port, D2X-XL, but the lack of audio file support meant that CDs had to be used for some of the audio. I can use MVE again for the cinematics if I can find out how to encode them with FFMPEG (or another tool for this purpose as I forget what I used the last time to encode to MVE and then bundling them in MVLs.)

At the time, D2X-XL had colored lighting like the PSX ports so I used that as a foundation for the mod. The build environment for DXX-Rebirth looks to have gotten considerably more complex since I last built it back then, so that would be the first challenge is getting all that set up. I haven't dug into the code yet, but refactoring into C++ was mentioned so I don't know how similar it will be compared to back then.

Another thing I wondered about is replacing the robot briefings in D2 with the actual robot mesh rather than the MVEs the game uses, as every computer should be able to handle it with better performance than the MVEs the game currently uses. Since D1 already has the code for doing so, I'm wondering about how that could be done since the codebase looks to be at least partially merged for both now.

As DXX-Rebirth has colored lighting, transparency, support for various audio types, and the option to disable music cycling, those are features that are already present, and D2X-XL has changed way too much from what I wanted.

Adding music replacements with audio files should be much easier this time as that ability is part of the game now. The remainder would be replacing exit sequences with their FMV versions from the PS1 port, moving the D2 intro video to when a new game is started and using the FMV startup from D1 in place of it in D2 as well, replacing the Dravis briefing with the FMV version, replacing the D1 outro briefing with the FMV, and then replacing the audio of the robot briefings and level briefings in D1 with the voiceovers that the port has. Having it make these changes if the appropriate files are present I'll have to ponder, as I'm not much of a software developer and the last time I was hardcoding everything in place out of lack of savvy for the whole thing. Replacing things in D2X-XL wasn't too difficult but not only is this a different port, but I'm not sure how much things have changed code-wise.
The build script is much more complicated, but it hasn't picked up many dependencies. The code uses C++ extensively, but is largely the same in function. I've tried to keep the old game logic mostly readable to people with minimal C++ background.

I added an experimental feature to let briefings use robot meshes. I never made it default-enabled because of some palette quirks. The game still plays as a 256-color program, and parts of the briefing backgrounds conflict with the palette required to render robots properly. This could probably be fixed, but it has not been a priority for me.

If you can offer a patch that hardcodes the new features on, I can deal with making it more flexible (configurable on/off, automatically disable when the user lacks the assets, etc.).
honestly ~ its a nice thought, and would be nice to watch ONCE. beyond that chances are everyone will just ESC skip it.

IMO ~ the briefings were meant to be boring and to be skipped! MD really wasnt interested in listening to Dravis! lol Wink

Forum Jump:

Users browsing this thread: 5 Guest(s)