Friday 11 July 2014

Suited and Booted N7-style

After finally getting all my notes tied together and indexed, I decided it was time for a bit more graphical tweaking. Tonight. I have attempted to recreate the N7 armour in the starbase.

I booted up RegenD, and went to the starbase, to be greeted by this happy little astronaut:-
Using RegenD's VDP debugger, I was able to find out that this guy is actually 2 different sprites (legs and body), both using palette 1. Luckily, these are the only 2 sprites on-screen that use this palette. The first thing I noticed is that this palette has all the colours I need:-
A black, a nice deep red, and plenty of extra greys for shading. In theory, I could just recolour and tweak the original guy, and not risk breaking any other colours elsewhere!

So I knocked up a TLP palette file, loaded the ROM up, and tried to find the actual tiles that made this man... And I couldn't. I couldn't see a single one of them. This could be either
  • The tiles are stored at a strange offset. I tried offsetting the ROM in TileLayerPro, but I still couldn't find them - although I didn't try every possible offset. Or it could be
  • The tiles that make this guy up are compressed.
I fear it may be the latter. I dumped the VRAM during this scene, located one of the tiles (I think, not 100% on how VRAM is laid out), and searched for the hex in the main ROM - no results found. With the games title, font, and doorway graphics, they were quite visible in TileLayerPro when I had the right palette assigned, even if they were offset. As I could see nothing similar to this guy, but lots of "junk" tiles, I get the feeling he is compressed.

So I went for the second option to make him look like an N7 agent - hacking the palette directly. I pulled the palette from CRAM, reversed the endian-ness (sp? word?), and searched for it in the main game ROM. I got a single exact match on the first attempt - that must be the palette data. I made a little change to one of the colours, loaded it up, and one of the colours was now different! Success!

I started tweaking some of the palette, and it started looking pretty good - here is what the palette changed to:-
Changed the greys, made one of them red, tweaked a black to make the visor stand out. Lots of little changes took quite a while, as I was changing the hex by hand, and reloading the ROM each time to see what it looked like. After almost an hour, I got this little guy:-
I personally think he looks pretty badass! He definitely wouldn't look out of place on the SSV Normandy. I'd still like to track down the tile data, to alter a few little things (the colour of the backpack, the fact he now has a grey outline, and a few embellishments), but for now he looks good enough.

At this point, I kind of freaked out though. "Oh no!" I said to myself, "what if that palette is used elsewhere in the game?!?!?!" - that could be a mighty problem. But I had a little play around, and for the starbase, external ship flight, and landing on planets, that palette never seems to get reused, so I may be in the clear.

So in the end, I'm 80% happy - the remaining 20% just gives me more motivation to get GensTracer working, so I can find the damn tiles...


Looking good, hanging in the space-hood:-



Thursday 10 July 2014

Zim - Tool Shoutout

Just a quick post to say, I have come to love Zim.

I found my notes on this hack (plans, discoveries, changes made, etc.) started becoming a bit unmanageable as a simple few text documents. After looking for a better way to manage everything, I came across Zim, which is just a lightweight, local wiki for storing all your info.

I've started rewriting my notes in there, and it has already smoothed the flow of recording and reminding in my notes. Highly recommended.
Now, I'm starting to think about hacking via a version control system, to keep all my little changes as there own patches. I have very little knowledge of them, and not sure if it is possible. VCS is normally just for textual changes, as would happen with source code - how reliable are they at picking up Hex diffs? Has anyone else tried this before?

Food for thought. Anyway, back to compiling my notes!

Wednesday 9 July 2014

Racial Changes

I've been putting a lot of thought recently into how the races will marry up in this conversion. There are 7 main races that you meet in Starflight - this leaves a lot of Mass Effect races out... Thinking about how they react to the player (and each other), I've put together a little list of changes I intend to make. The most important ME races are all covered, and things kind of fit. Any major issues can probably be written around when changing the script though.

Below are the ways I plan to convert each race for this mod. And check out the beautiful artwork ripped from the Starflight manual. They don't do game-art like this anymore!



The Mechan -> The Geth
This was the mos straight-forward of them all. Have one synthetic race, replace with another synthetic race. The Mechan are guarding the world of "Heaven" in SF, which I can easily replace with "Rannoch" (the old Geth homeworld). In SF, they are waiting for an old expedition to come and arrive, and are friendly with you if you claim to be a part of that expedition. With a bit of script-jigging, that can easily be changed to waiting for materials for their "megastructure", and convincing them that you were sent by Nazara (the reaper Sovereign). Easy, and relatively clean.


The Gazurtoid -> The Asari
 The Gazurtoid are described as "highly religious", and see themselves as "redeemers of the galaxy". The Asari are a highly spiritual race themselves, and while not "redeemers of the galaxy", this can be toned down. They were the first to inhabit the Citadel, and political leaders, so not too much of a stretch.



The Thrynn -> The Krogan
Much like the Mechan, the choice for the Thrynn was obvious. They are described as "Cunning reptiles not to be trusted". Which made me immediately think of the Krogan. In SF, you have to be friendly with them to stop them from attacking you. With the Krogan, being dominant is more likely to earn their respect, so that doesn't quite fit. But with a bit of hackery, I may be able to change that. The Thrynn will attack you almost immediately if you are friendly with Elowan, or have one on board. Given the genophage in ME, that made me think...


The Elowan -> The Salarians
Who would the Krogan hate more than Salarians, for unleashing the genophage! The Elowan are described as gentle & peaceful, which can match up quite nicely with the Salarians thoughtful, scientific nature. The Elowan are wary of the Thrynn, as the Thrynn eat their children - the delicious "headfruit". They won't communicate if a Thrynn is on board, or if you have been friendly with them recently. This can be seen as the Salarians being wary of the Krogan, as they strive for revenge for the genophage. I did think about having the Turians fill this role, but they don't really count as "gentle & peaceful". However...


The Spemin -> The Turians
The Spemin are an arrogant race, which can be tied into the Turians "warmonger" attitude - arrogance in their militaristic strength. They are also said to be knowledgeable of the other races in the galaxy, and considering the Turians have been part of the council for a long time, that should fit. They are more likely to respond to you if you go in threatening - which sounded right for a warlike race. This is a trait that fits closer with the Krogan, however... So I may have to replicate this code with the Thrynn somehow. Swapping the Turians for the Krogan won't work so well, as there is no bad-blood between Turians & Salarians, so it would make for having to change everything around. And 1 inconsistency is better than many!


The Veloxi -> The Volus
The Veloxi are an obsequious race, and highly knowledgeable of all the others. Which is very similar to the trading Volus - always polite to get a deal, and full of information from their galactic trading. The Veloxi are proud of their ties to the ancients in SF - but that can easily be written out for the Volus. Their information on the ancients is also somewhat incorrect in the game. And this can be easily rewritten as the Volus picking up rumours whilst trading - and rumours aren't always factually correct.


The Minstrels -> The Hanar
The Minstrels are a race of space faring poets, singing songs of history, the ancients and the universe. Change poet for preacher, and ancients for "Enkindlers" and you have the Hanar to a T. This one practically writes itself!




So that is how I plan to  change the SF races to those of ME. I've got all the main citadel races covered, but a few side races are missing (Elcor, Drell, Vorcha, Quarians, etc...). I may look at adding more, but I think that may be way beyond my skills. But due to the text-heavy nature of the game, I'm sure I can slip in some references to the others somewhere! If you have any clever ideas on how to convert the races that you find superior to mine, please let me know in the comments.

Now I've got a plan, it's just the HEFTY task of changing in-game text and graphics! If anybody is any good with pixel-art, and wants to help out, please let me know.