It's now possible to use the menu system and talk to some crewmates.
The game now starts in bridge mode, and it's possible to beam down
by using Kirk's transporter icon.
Grim Fandango Remastered has an alpha channel in the
video that plays as intro.
This makes Grim Fandango Remastered start, although there
are still quite a few issues to fix.
I whish I knew whether I am implementing an original bug here or if this is intended behavior. But it does achieve text output faithful to the original. And it even does actually look better...
This commit aims at getting the text almost pixel-exact like the original (from disasm and from comparison with an emulator).
It seems that the original messed up the upscaling (from 320x200 to 640x400). The whole method how they do it is weird. The text is rendered on a 320x200 pixel surface and this surface gets blitted in the center of a 640x400 pixel screen. Sometimes they
seem to assume to draw onto 320x200, sometimes onto 640x400 (e. g. the line height for the paragraph headlines is assumed to be 11, although the font height is 18; and it will use height 18 for all the other text lines). Also, the orginal will use different printing methods for the headlines and for the text blocks below, which also doesn't help to get this right...
Now, some credits text lines are still off by 1 pixel vertically due to my method of upscaling (at the very last moment in drawDirtyRects()). I find this a much cleaner approach than the original method which is just hacking up the whole graphics code to use 640x400 coords (except for the places they forgot, see above). But this also means I can't hit the odd lines for text positioning, thus the one pixel off sometimes...
The font style is diiferent for various strings (e.g. verbs are drawn outlined instead of shaded, converse line are drawn normally instead of shaded).
Also implement sjis version of "bullet" for the converse strings.
- The Japanese font is drawn in double resolution on the top layer. The rest of the graphics gets drawn in standard VGA resolution on the bottom layer, then scaled 2x and merged with the top layer.
- Adjust mouse handling. In dual layer mode the event manager reports mouse coordinates in double resolution, so these have to be scaled down.
Reorganize font code into sub classes to allow independent rendering of the Japanese ROM font. No actual implementation for the Japanese rendering yet.