.GDT Image Format

A project for the PC-98 version of Enix's 46 Okunen Monogatari - The Shinka Ron (4.6 Billion Year Story - The Theory of Evolution). You can think of this game as the grandfather of the SNES game E.V.O. The Search for Eden (To Distant Eden).
User avatar
NightWolve
Posts: 84
Joined: Fri Apr 17, 2015 10:32 am
Location: Chicago, IL, USA
Contact:

Re: .GDT Image Format

Post by NightWolve » Fri Sep 30, 2016 12:29 am

https://web.archive.org/web/20160202075 ... box-jp.jpg

That's not too bad for that classic style (Had to use WayBack, HG101 is down for the count apparently for me). But blue-haired girl, eh, something iffy about it. Carry on though! :)

User avatar
hollowaytape
Posts: 34
Joined: Fri Oct 02, 2015 8:22 pm
Location: Massachusetts

Re: .GDT Image Format

Post by hollowaytape » Fri Sep 30, 2016 1:17 am

Looks great, thanks again!!

I don't notice anything objectionable about Gaia, but she did have green hair (NSFW-ish) in this game rather than blue.

User avatar
NightWolve
Posts: 84
Joined: Fri Apr 17, 2015 10:32 am
Location: Chicago, IL, USA
Contact:

Re: .GDT Image Format

Post by NightWolve » Fri Sep 30, 2016 1:25 am

hollowaytape wrote:green hair (NSFW-ish)
OH MY!

User avatar
SkyeWelse
Graphics & Web Design
Posts: 490
Joined: Thu Mar 05, 2015 4:32 am
Location: Georgia
Contact:

Re: .GDT Image Format

Post by SkyeWelse » Wed Oct 12, 2016 5:29 pm

So while exploring the sister thread for this romhacking project over at Romhacking.net I saw that a member named Raccoon Sam had come up with a better mockup of the E.V.O. title screen letters which I liked a lot more than the one I did. So after talking with him, he gave me a good start for being able to import his design into the cleaned up space background graphic and we now have a new Title Screen for E.V.O. The Theory of Evolution!

Image

I think it looks a lot better, what do you all think?

HollowayTape, I wasn't sure how you were planning to do the credits for those who worked on the project, but I definitely think Raccoon Sam should be listed as equal credit on the Title Screen graphic. He did most of the hard work.

-Thomas

User avatar
NightWolve
Posts: 84
Joined: Fri Apr 17, 2015 10:32 am
Location: Chicago, IL, USA
Contact:

Re: .GDT Image Format

Post by NightWolve » Wed Oct 12, 2016 6:16 pm

So this was your previous version below ?

Image

Yeah, as a matter of subjective taste, I would say that I also like his font choice, extra 3D use, lesser height, etc. a little better versus yours above.

User avatar
SkyeWelse
Graphics & Web Design
Posts: 490
Joined: Thu Mar 05, 2015 4:32 am
Location: Georgia
Contact:

Re: .GDT Image Format

Post by SkyeWelse » Wed Oct 12, 2016 11:46 pm

Yeah, Raccoon Sam's version turned out a lot better. Mine was passable compared to his work, so I thought we should use his version. I also enjoy the font more. The "O" in particular looks like a stone wheel which reminds of a per-historic time period as well.

-Thomas

User avatar
hollowaytape
Posts: 34
Joined: Fri Oct 02, 2015 8:22 pm
Location: Massachusetts

Re: .GDT Image Format

Post by hollowaytape » Tue Nov 29, 2016 9:33 pm

M_bot, do you have the interest/time to work on this any more? I'm having a tough time reinserting the title screen, and that's one of the last things I need to do.

In particular, do you know what's happening when the .GDT -> .BMP decoder fails with the message "Index was outside the bounds of the array"? The original title screen, AV04B.GDT, fails to decode a few blocks into the stars with that message. Additionally, the edited title screen, encoded into a .GDT with the simplest flags, also fails at the same place with the same message. Finally, the game fails to interpret the image correctly around this point, too - it just becomes a smear of colors.

Since the array index error happens even in the images I'm encoding to GDT, it probably doesn't have to do with the flags you haven't figured out.

I've attached the original image and the edited BMP I'm trying to reinsert.
Attachments
AV04B.zip
Original JP title screen image
(13.41 KiB) Downloaded 243 times
evo.bmp
evo.bmp (251.05 KiB) Viewed 11133 times

User avatar
M_bot
Programmer
Posts: 98
Joined: Sun Apr 05, 2015 7:18 am
Location: Texas

Re: .GDT Image Format

Post by M_bot » Tue Nov 29, 2016 9:56 pm

I will look at it tomorrow (maybe today) and get back to you then. If it is something overly complicated then I can work on it this weekend. I'm definitely still interested just have been fairly busy.

The error you are getting is a generic C# error, I don't know how much experience you have with C# but I would suggest opening the debugger and stepping through the code in the areas where the code uses arrays.

User avatar
M_bot
Programmer
Posts: 98
Joined: Sun Apr 05, 2015 7:18 am
Location: Texas

Re: .GDT Image Format

Post by M_bot » Wed Nov 30, 2016 8:16 pm

This just a preliminary look since it might take me awhile to remember what all my code means.
The error that the original title screen and the new one get are happening on different flags. I don't know about the original one, but the new one I believe either my or your interpretation of the 0x8N flag is wrong. Since the game also has difficulty interpreting what you encoded, its possible that it encoded a specific value that is an exception which encodes not what you meant but some other sub-flag like instruction.

The error when decoding happens when it tries to write data beyond the screen, I'm fairly certain the game/emulator doesn't care if you do this and then incorrectly reads the next byte as a flag causing the random colors. The decoder however will throw that error since I haven't specifically forced it to continue decoding.


I will continue looking at it. Also I really like your code, very neat and commented.
------------------
Found a problem, I think there's more though. For RLE you are not allowed to encode 0xCN as a length. The 1st block, 2nd plane, it encodes 04 00 C8, which my program treats as an exception (and the game does too). I'm not entirely sure what 0xCN does but it seems like some type of rotate/shift thing. Also you could avoid the problem entirely by encoding that plane as 00. I haven't tested a fixed version with the game yet though.
------------------
Follow up, the overall problem with the encoder is that its keeps encoding lengths beyond the defined range. For equal nibble runs you are only allowed to encode up to 7D, from there onward you need to encode the length as 7E XX. It's possible that this actually supposed to be 0111 111X XXXX XXXX but there would never be a need for that since the screen size isn't that big. So for C8 as a length it would need to be 7E C8.

User avatar
hollowaytape
Posts: 34
Joined: Fri Oct 02, 2015 8:22 pm
Location: Massachusetts

Re: .GDT Image Format

Post by hollowaytape » Wed Nov 30, 2016 9:42 pm

Oh, cool! I'll try to avoid 0xCn in RLE then, and see if it gets any further.

I can also open up a pull request at any point if that makes things easier for you. I don't think I've touched your decoding code at all (except to add some comments).

User avatar
M_bot
Programmer
Posts: 98
Joined: Sun Apr 05, 2015 7:18 am
Location: Texas

Re: .GDT Image Format

Post by M_bot » Wed Nov 30, 2016 9:47 pm

Looks like I was editing my post as you came by so posting to make sure you see this.
Follow up, the overall problem with the encoder is that its keeps encoding lengths beyond the defined range. For equal nibble runs you are only allowed to encode up to 7D, from there onward you need to encode the length as 7E XX. It's possible that this actually supposed to be 0111 111X XXXX XXXX but there would never be a need for that since the screen size isn't that big. So for C8 as a length it would need to be 7E C8.
Specifically there's a lot of lengths around 0x8N that keep throwing the program off. That also happens to be a special instruction, the one you know of is FF 84 but there's a couple more.

User avatar
hollowaytape
Posts: 34
Joined: Fri Oct 02, 2015 8:22 pm
Location: Massachusetts

Re: .GDT Image Format

Post by hollowaytape » Thu Dec 01, 2016 12:51 am

Excellent. I've implemented the 0x7e byte in front of the run-lengths 0x7e and higher, and started encoding empty blocks as 0x00, and that appears to have taken care of a lot of what was going wrong.

(I wrote some code to avoid 0xCn lengths too, but after encoding empty blocks as 0x00 there weren't any showing up in this image, so the code is commented out.)

Looks like there are at least two things going wrong in the latest version of my encoder:
1) Something goes wrong in-game starting around block 5 (pixel 40), and stuff gets encoded into the wrong color planes after that. When I decode the GDT file with your decoder, I get an index-outside-bounds error too, at block 5, blue plane.
2) Something nefarious is up somewhere past block 66 (pixel 528). I can crop the image to this point and get pretty good results (with the weird colors, of course), but after that column, something I'm encoding is crashing the game.

I'm new to debuggers, so I'll try to take a look, but maybe you have some idea of what's going on?

User avatar
M_bot
Programmer
Posts: 98
Joined: Sun Apr 05, 2015 7:18 am
Location: Texas

Re: .GDT Image Format

Post by M_bot » Thu Dec 01, 2016 1:45 am

The reason why it stops at block 5 is because you forgot to encode 0x7E for the last run since your loop doesn't catch it.

Looking into the other error. I'm not sure about that one since my decoder doesn't seem to care, probably another pesky exception.

User avatar
hollowaytape
Posts: 34
Joined: Fri Oct 02, 2015 8:22 pm
Location: Massachusetts

Re: .GDT Image Format

Post by hollowaytape » Thu Dec 01, 2016 3:11 am

Ah of course. Fixed that, and the colors are great now.

I'll look at the second error too. Looks like it goes wrong specifically in block 69, pixels 552-560. block 68, pixels 544-552. (EDIT: It's in the first/blue plane, too.) I'll look for suspicious values.

---
Another EDIT: I couldn't really find anything wrong. If I took the right half of the image and just encoded that, it would show up in the game just fine. I could take pretty big chunks of the image, like everything from pixel 48 rightward, and encode that successfully. I think it may be a matter of file size limits - the full image GDT is 16.5KB, and the largest GDT in the original game is 15.6KB.

I was able to letterbox the title screen just a little bit more than it already is, slimming the file size down to 15.5KB, and it shows up perfectly. And I think that may be good enough for me.

Thanks for all your help, M_bot!!
Attachments
evo_letterboxed.png
evo_letterboxed.png (36.88 KiB) Viewed 11094 times

User avatar
SkyeWelse
Graphics & Web Design
Posts: 490
Joined: Thu Mar 05, 2015 4:32 am
Location: Georgia
Contact:

Re: .GDT Image Format

Post by SkyeWelse » Thu Dec 01, 2016 4:17 pm

Thank you both for your help on getting the graphics to display. The Title screen looks great in-game now! :)

-Thomas

Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests