|
First of all, this has nothing to do with the Aladdin Deck Enhancer for
the NES. Second, this does not deal with the official version of
Aladdin: Virgin's sub-par release of the excellent Genesis equivalent. Instead,
this is the pirate (or unofficial) port of Capcom's Aladdin for the SNES
made by some unknown company.






As many already know, this pirate is great! In many ways, it exceeds the official counterpart and evidently shows the potential of the NES; however, it has its flaws: the sound is mediocre, there is no storyline, and the graphics aren't
at their full potential: the sprites are lacking and some palette choices are questionable.
So let's work on it.

Therefore, I took on the task of making this game better. That is why I created The Aladdin Project. Knowing little to nothing about Assembly, this would be an aggravating task. Knowing little to nothing about hex editing doesn't help either.
THE
TOOLS
It's best to gather your editing programs first before starting on your
project. Later on you can decide what's good and throw away the junk you don't
need. They're free anyways. At least they should be.
THE GRAPHICS
I used Tile Layer Pro (TLP) 1.0 to hack the sprites. With this
program, I can edit the tiles (sprites) in the game. It features a nifty
tile arranger that helps you see what you're editing and a palette editor that
allows the user to make the sprites look somewhat like they're in the game.





THE TEXT
There are many text editors. There are even more hex editors out there.
Choosing one is pretty tricky. That's why I downloaded them all! Jinx, MatrHex,
Thingy 32, FCE Ultra eXtended Debug, Hexecute...

In the end, I decided to stick with...

Translhextion!
It's a hex editor and translation tool. It has the ability to load tables, files that decode hex to text. What makes this program a plus is the flexibility with editing; you can highlight and copy, search and replace text and hex, and see the changes made to both transcriptions.
THE HACKING
Now I begin hacking, and cutting, and chopping, and slashing, and lacerating, and hewing, and slicing, and scything.
THE PASSWORD SCREEN
I first decided to look at the password screen and compare it to its original version, the SNES. They look identical! Except for the faces; the NES has them hideous.


I went forth to improve on them.

Presto! Tom Cruise -- just kidding.
I gave each of the characters a facelift. I simply used TLP to edit this, taking
advantage of the palette editor. Note that the palette editor does not actually
change any palettes in the rom itself, it's just a helpful tool in editing
tiles. The table below displays the faces used in the password screen. There are
three renderings of each head: the SNES version is on the top, obviously; the
NES pirate version is on the bottom; and my hacked sprites are in the middle.
See how it makes a nice transition between the two?


What's this? Popeye? Was he supposed to be in the game? Probably not, but
ROMs can have some pretty weird trash in it. I put the sprites together in the tile arranger.

Here's another strange thing. I didn't know what to do with the two extra tiles so I put them at the end.

THE COPYRIGHT

Now, what to do about the title screen? The bottom reads "1995
COPYRIGHT." That will not do, considering it's past due 1995. I could put
"2005 QUEST STUDIOS" but I'd like to show appreciation for Capcom, the
original, original producers of this game. So I will alter the text to read
"1993 CAPCOM," easier said than done. First of all, I'm reducing 14
characters to 11. This will cause the whole string to be off center.

So all I have to do is insert "00" in the first space. Now would be the right time to talk about hex:
To compress space, text is usually written in some kind of code. For example,
01=A, 02=B, 03=C, and so on. In order to edit the text, one must first crack
this code, easier done than said. I used Translhextion (1.6c), and used the
search feature, "Search Relative." What this does is search for a
string of hex that contains the same amount of spaces between each character as
in the text that is entered. For example, I would like to search for the string
"COPYRIGHT." I enter 'COPYRIGHT' or 'copyright' (not Copyright or
cOPYriGht). The letter 'C' is 12 characters away from the letter 'O,' and 'O' is
1 character away from 'P.' The "Search Relative" function uses these
spaces to decipher the text. Smaller strings generally bring up more,
unnecessary results. Now I click OK, and if all works well, which it should, I
will be taken to a highlighted sequence of hex.

Hopefully, this is the correct offset (it is). The hex reads: "A8 B4 B5 BE B7 AE AC AD B9." From this, I can tell that A8=C, B4=0, B5=P, BE=Y, B7=R, AE=I, AC=G, AD=H, and B9=T. I eventually came up with these results:
(space) - 00
A - A6
B - A7
C - A8
D - A9
E - AA
F - AB
G - AC
H - AD
I - AE
J - AF
K - B0
L - B1
M - B2
N - B3
O - B4
P - B5
Q - B6
R - B7
S - B8
T - B9
U - BA
V - BB
W - BC
X - BD
Y - BE
Z - BF
My work's not done, yet. I still need to find the corresponding hex for each number. This turned out to be harder than I thought; the relative search found nothing significant for the string "1995." To think, that I was just going to give up on that. I started messing with the values before the "COPYRIGHT" string that read this: "C2 02 CA 8B C6 FF." I found out that C2, CA, & C6 were the text strings for the numbers. That means that C2=1, CA=9, and C6=5. Here are the results:
0 - C1
1 - C2
2 - C3
3 - C4
4 - C5
5 - C6
6 - C7
7 - C8
8 - C9
9 - CA
The problem with this was that there was only one string for the number '9.' Since I was inserting a blank space (00) where the '1' (C2) should be, I would have the same numbers in the next two digits. I figured that the '02' string must've made the '9' written twice, so I messed with it. I changed it to '01.' This is what I've gotten.

The '9' is written once, but it seems to have offset the palette. Here's what I got when I changed it to '03.'

Now there are three nines. I got that part right, but the palette is screwed up again. So it was back to the old drawing board. I immediately noticed the hex '02' after the "COPYRIGHT" string. Maybe that's used to duplicate the blank space (00) the same way the '9' was duplicated. Using simple logic, I changed it to '03' since I subtracted 1 from the first '02' value. I then checked my results.

So it was a simple matter of compromising for the change in tiles. It brought me great joy to actually understand something new. With that, I made my changes to the text.

That's it for now. This is the start of a long, tedious process of experimentation, trial and error, and learning.
POPEYE
While searching through
all the player tiles, I discovered some more weird
trash.

Except this isn't trash;
that's right, Popeye sprites have been made to take
place of Aladdin, but how? Luckily I found out that
there is a version of this game that takes advantage
of these extra tiles. Good thing, too; because I was
about to spend countless hours replacing the Aladdin
sprites just so I could see the sailor man in
action.

So that's what it was
supposed to say? All this time I thought some pirate
company was subliminally advertising in a game to
travel to Persia.



As you can see the
character looks crude but, since every sprite has
been redone, maneuvers smoothly and undisturbed in
every motion.


It seems every aspect of
the character has been replaced, even the bonus
level sprites. Hey, wait a second, is that supposed
to be Olive Oyl?
THE ALTERATIONS
-- edited Aladdin's face
-- edited Princess Jasmine's face
-- edited Genie's face
-- edited Abu's face
-- edited Sultan's face
--
edited Jafar's face
-- replaced text '1995 COPYRIGHT' to '1993 CAPCOM'
|