Grim Fandango Deluxe - Original Thread [Locked]

Discussions regarding the development of the mod "Grim Fandango Deluxe"

Moderator: ScummVM Team

Locked
User avatar
Longcat
Posts: 1061
Joined: Sat Sep 23, 2006 3:15 pm

Post by Longcat »

It's everything I ever dreamed of;)
User avatar
bgbennyboy
Posts: 24
Joined: Wed Nov 30, 2005 1:35 pm
Contact:

Post by bgbennyboy »

The .mat format also has a variant that supports 16 bit colour rather than Grim's 8 bit.

People used it for modding in the Jedi Knight games
User avatar
somaen
ScummVM Developer
Posts: 376
Joined: Thu Apr 21, 2011 7:31 pm
Location: Trondheim, NO

Post by somaen »

Yes, but is that version supported by ResidualVM?
User avatar
bgbennyboy
Posts: 24
Joined: Wed Nov 30, 2005 1:35 pm
Contact:

Post by bgbennyboy »

I dont know, I dont think so.
Easiest way to tell though is for Thunder to try it with the modified build of ResidualVM. Mat16 lets you create them.
User avatar
JohnnyWalker2001
Posts: 405
Joined: Mon Oct 16, 2006 1:27 pm
Location: London, UK

Post by JohnnyWalker2001 »

Manny's 16-bit suit (also 512x512). Sadly it doesn't like 16-bit textures :(

Image
User avatar
JohnnyWalker2001
Posts: 405
Joined: Mon Oct 16, 2006 1:27 pm
Location: London, UK

Post by JohnnyWalker2001 »

Now using 512x512 textures:

Image

Image

Colour is becoming a problem, though. It'd be great to fix that and have a 16-bit palette.
cplhenshaw
Posts: 54
Joined: Wed Aug 10, 2011 9:17 pm

Post by cplhenshaw »

This all looks really great!

I think the biggest improvement to the look of the game would be if the resolution could be increased. As you pointed out, you won't really see the benefit of new textures unless they are large or close to the screen, and rendering at a higher resolution would allow the difference to be more pronounced for all the smaller things in the game as well. Whether it's actually feasible to change the resolution in ResidualVM or not I don't know.
User avatar
MeddlingMonk
Posts: 221
Joined: Wed Jan 21, 2009 10:06 pm

Post by MeddlingMonk »

The environment is made up of pre-rendered 800x600 images. So, that's a problem. You couldn't just re-size them and have it look good.
User avatar
somaen
ScummVM Developer
Posts: 376
Joined: Thu Apr 21, 2011 7:31 pm
Location: Trondheim, NO

Post by somaen »

Actually, they are 640x480, and eh, the original renders them at 640x448 iirc (blacking out the upper and lower few lines).

Simply rendering them at 1280x960 should leave extra resolution to actually show the additional detail on the textures, without needing to add additional details to the backgrounds (in fullscreen on LCDs you will get stretching in fullscreen anyway, as the panels have fixed-pixels, actually rendering at higher resolution might even benefit those slightly, as I think we could do better or atleast equivalent scaling than what the panels themselves do).

CRTs are another story entirely, as they can perform proper 640x480.
User avatar
JohnnyWalker2001
Posts: 405
Joined: Mon Oct 16, 2006 1:27 pm
Location: London, UK

Post by JohnnyWalker2001 »

Yes, a higher resolution could be good, too. I don't know exactly how difficult that might be, though.

Anti-aliasing adds a lot to the quality, too (making up for the lower resolution). Here's a comparison with Manny's latest texture (4x the size) with AA turned on.

Image
User avatar
Longcat
Posts: 1061
Joined: Sat Sep 23, 2006 3:15 pm

Post by Longcat »

This is my nerdy wet dream come true!
User avatar
JohnnyWalker2001
Posts: 405
Joined: Mon Oct 16, 2006 1:27 pm
Location: London, UK

Post by JohnnyWalker2001 »

So it seems we have three possible way to improve the graphics:

1. Textures (plus adding 16-bit colour)
2. Upping the model quality
3. Upping the game resolution to 1280x960
cplhenshaw
Posts: 54
Joined: Wed Aug 10, 2011 9:17 pm

Post by cplhenshaw »

I've had a go at writing some code aimed at converting between .3do and .obj but its still a long way off from being an easy process to update the models, and I can think of plenty of issues that will crop up later.

What I've got so far is code to read .3do files into some intermediary data structures and then write from those back to .3do files. There is also code that can do a basic write to .obj files BUT
- no .mtl files yet
- texture vertices appear to be very wrong
- no rotations of the various model pieces is done

Alot of the models from the first two years of the game don't have any default rotations in them, but the rest will come out crooked / folded in on themselves.

Also there is not any code for the reverse journey from .obj files.

You can try it out with these
For windows
For linux
Example of output

It can be run from a command prompt and takes two arguments, the filename to read and the name you want the output to be called. i.e Run it like this:
'3do manny.3do manny.obj'

Try it out (I hope it works :D). I'm putting it out there now because I didn't want to work on it for a bit and then sit on it for a couple of months. Also if anyone wants to take a look at the source code I can put that up too.
User avatar
somaen
ScummVM Developer
Posts: 376
Joined: Thu Apr 21, 2011 7:31 pm
Location: Trondheim, NO

Post by somaen »

I did a binary-3do to text-3do-converter a few weeks back, although the filename says 3do2obj, I never got around to adding the obj-stuff to it.

https://github.com/somaen/residual-tool ... do2obj.cpp
User avatar
JohnnyWalker2001
Posts: 405
Joined: Mon Oct 16, 2006 1:27 pm
Location: London, UK

Post by JohnnyWalker2001 »

Great job, cplhenshaw! I wonder if you could take a look at somaen's code. I know he had some success converting the files to text 3do and obj. There doesn't appear to be any reason to convert the text 3do files to binary, as the game can apparently read text 3do files without issue (as evidenced by signpost.3do).

Great to have someone else trying to help. Any information from your explorations you can share is much appreciated.


You can grab the latest version of somaen's app here (Windows build):

http://www.thunderpeel2001.com/grim/3do2obj.exe


If you want to mess around with it, usage goes like this:


3do2obj binary.3do filename.3do.txt


or putting any extra character (e.g. "a") on the command line outputs a .obj version of the .3do:


3do2obj binary.3do filename.3do.obj a


So a real world example for extracting Year 1 Manny to mannysuit.3do.txt:


3do2obj mannysuit.3do mannysuit.3do.txt


Or to an .obj file:


3do2obj mannysuit.3do mannysuit.3do.obj a
Locked