KNIGHT RIDER SPECIAL (PC Engine)
Translation by Psyklax
v2.0 (20170530)

DESCRIPTION
This is a 100% English translation of Knight Rider Special
for the PC Engine (TurboGrafx-16). For anyone who played my
v1.0 translation, this has been done completely from
scratch: nothing from the original translation was used
except for my own knowledge. The only things left
untranslated are the voice samples, as I can't even begin to
understand how to change them: finding them in the ROM would
be hard enough, but knowing how to replace them would be
more difficult. Never say never, we could get v2.5 in the
future, who knows.

HISTORY
I translated this game four years prior, and it was pretty
awful: I didn't know how to change the 16x16 text to 8x16
and it ended up looking like a bit of a mess. I also missed
the "REPAIRED" message you get later in the game, because
it's stored separately in the graphics to the rest of the
font. The reaction was quite negative, and I got a bit
discouraged and just forgot about it.

Out of the blue, I got a message from romhacking.net member
Cabbage, who had been learning ASM on the 6502 (used in many
consoles, and a variant is used in the PC Engine). He
pointed out to me that by changing two bytes in the code,
the game would display text in 8x16 instead of 16x16. This
transformed the prospects of translation for me: screen
space was the biggest problem with the original translation.
So I put in a new 8x16 font and it looked ten times better,
but I wanted to go further.

Short of learning how to switch banks (the PC Engine doesn't
let you access the entire ROM at once), I needed more ROM
space to fit all my new text in. Dual tile encoding (DTE)
seemed to be the way to go, and after Cabbage's explanation
of the 8x16 thing, I was intrigued to learn how to implement
DTE. KingMike had written a doc all about the subject years
ago, and it gave an example for the NES. Since the PC
Engine's CPU is almost the same (it has a few extra
instructions you can use), adapting it to Knight Rider
Special was surprisingly straightforward (after I'd racked
my brains trying to understand how it all worked).

I manually made a table of the 127 most common letter pairs
(on a larger project I would've got someone to make a
program for this, but with such little text it was quicker
to do it by hand). I managed to fit the entire English text
in the same space the Japanese text took in ROM, and learnt
a thing or two about ASM in the process. I'm very satisfied
with how it's turned out - even if it's for an insanely
difficult game with a small amount of text, none of which is
necessary to play the game... but it was a good exercise for
me.

PATCHING INSTRUCTIONS
The patch is in BPS format, which I chose for a couple of
reasons, the main one being that it detects if the file
you're patching is the correct one. You'll need a patching
utility like beat by byuu, which you can find here:
https://byuu.org/tool/beat/
The Knight Rider Special ROM found in the GoodROMs set
contains a header, which modern emulators don't need. So
I've provided two patches, for ROMs with a header and
without:
WITH HEADER     kr-header.bps    (CRC32: E729E71F)
WITHOUT HEADER  kr-noheader.bps  (CRC32: C614116C)
Don't worry if you don't know which ROM you have: if you
pick the wrong BPS file, Beat will tell you it's failed, and
you don't overwrite the original file so you can try again
(though you should always make backups anyway, of course).
The translation on the headered ROM preserves the header -
just in case.

THANKS
Cabbage, without whom this never would've happened (and I
wouldn't have been encouraged to learn more about ASM).

KingMike, for your doc about DTE, without whom fitting all
that text in the ROM would've been a challenge.

David Hasselhoff, cause you know. He's the Hoff.

Psyklax
http://s346165667.websitehome.co.uk/psyktrans/
