Wednesday 11 June 2014

Post-Break Graphical Tweak-Out

It's been a very busy year, but now I appear to have some free time once again, I've finally been able to continue on my project. After so long out of the loop, I've kind of forgotten where I was with it. So I've started small to remind myself of the code and, to a larger part, the tools I was using. Then I remembered I still don't have the perfect debug tools on my Linux box. Stupid regen, and stupid direct-memory-access.

After a bit of digging through my notes, I remembered how unhappy I was with parts of the starbase/menu system in game. Namely, the doors to the message centre and the trade depot. The trade depot was a quick fix, I tried to make the icon more obviously trade related, by incorporating some elements that are actually traded. So from the simple "hands and boxes" logo, I just added a "Cr" and "Au" to the boxes - representing credits and gold. It's still not great, but feel it's a bit better with the additional clue:-
The in-game font didn't fit into the boxes, so I had to freehand it - easy enough for a few pixels of text. But it got me to thinking about the actual in-game font... It is square, crisp, legible, and functional. But dull. And in a delusion of grandeur, I thought I could improve upon it. Ha! It is a an 8x8 font with a limited character set (capitals only, few special characters) - but it is outlined. Which not only shrinks the characters, but makes them more visible against any background. I tried around with some of the pre-made fonts from RHDN (again that resource saving my ass), but none of them rendered properly without the outline. They were either "thin" (is that right, typography nerds?), or they blended really badly into surrounding colours. At that point, I realized the outline was key in this games implementation. I tried crafting my own font, but that always broke something - kerning, readability, or just the stylistic "fit".

I wish I had some screenshots of my failures to show you, but it was a couple of hours of frustration, and I didn't have the foresight to save my experiments. Either way, I came to the conclusion that nothing is wrong with the standard font - and where it did fail, I couldn't improve without making huge changes to the code. Huge changes well past my skill set.

Back to the second door then. The original shows the logo of "INTERSTEL", the operators of Arth starbase and your mission.
This logo appears all over the place, so I am aware I will have to retool this logo in many places of the ROM - but as far as I remember, this is the smallest it's shown in game. And the most frequent. With that in mind, I tried to recreate the Systems Alliance logo from Mass Effect:-
[Apologies for resolution]
Due to the display resolution of the Mega Drive, rarely do you have many pixels to play with. And that globe in the middle will NEVER look good with my artistic skills recreating it! Especially on the door graphic. So I've taken an executive decision which will hopefully please Mass Effect fans too, and chosen to plaster the game with the logo of the Systems Alliance Navy:- 
 Not only is this twist on the logo easier to replicate given the limitations, it is within reason that the ship you command, and the Earth military starbase, would be under navy control. So hopefully this cop-out based on my artistic failings will still appease the Mass Effect purists who may happen upon it. I slipped through the ROM in TileLayerPro, and finally tracked it down at 0x880C2.
It's got a completely different aspect ratio to the logo I'd like to use, but there is some black space I can move down into, which I had to. The only issue with using the extra space at the bottom, was that it might not quite fit with the rest o the doors. But that wasn't too much of a problem, and it came out looking recognisable - which was my prime requirement. Overall I'm quite happy with the result.
Although the aspect ratio is a bit screwy, It works for me. Especially considering my artistic "skills". Next on the hit list is to recolour the player character, to make his spacesuit red & black, like Shepard's signature N7 armour. But that'll be saved for next time I want to hack some graphics!
 


I have also made some progress with the titlescreen improvements. Whilst browsing for the door graphics, I happened upon a few extra text characters - all the letters for the copyright blurb. Only one copy of each letter for the most part, and so jumbled I couldn't write anything by just replacing tiles. As I still haven't found the code that loads it all into VRAM, any big change would have to wait. So for a quick fix, which ended up looking very clean, I just blacked out all the letters:-
I also replced my "X" & "Y" filler tiles with tiles of noise from within a data section of the ROM. It looks enough like a natural glitch that I'm happy with it for now. I'll come back to it at some point I imagine, but it's a good placeholder. Hopefully I can fix it up, when I finally work out how to spy on the DMA writes to VRAM. But that'll be for another update.

Another update that will hopefully come a lot sooner!