October 4, 2010

It’s my pleasure to announce that the ANM format and respective RLE compression have been completely reversed as demonstrated by those two before & after screenshots. That story selection screen is actually composed of 9 frames and I modified 6 of them in order to insert those English titles, so my conversion tool also supports multiple-frame ANMs.

Among other discoveries, I must say that Paint is a really crappy program. I’m sure everyone on the planet already knows that but I was kinda shocked to find that Paint doesn’t even let me keep my original color palette after saving the modified BMP (8 bit). Why the hell would I want my palette optimized, Microsoft?

Anyway, GIMP came to the rescue as usual; I just thought it would be quicker to make these changes in Paint.

EDIT: I forgot to mention that this project already has a translator; Hyperguy from The Congress of Awesome, has stepped in and is already working on the script!



September 28, 2010

Who would’ve guessed that Carrera listens to Metallica?

I got some spare time today and finished the script insertion tool. So, the only thing left to do in order to make a Viper V6 translation possible is to reverse engineer the graphics’ format (ANM). I already know quite a lot about it but my current algorithm only manages to convert a few ANMs to BMP; I’ll have to spend some more time in the debugger.

After I figure out the ANM format, the game will have officially been hacked into smithereens! Also, I forgot to mention in the last post that the game’s full script weighs only 42.5kb (my estimate on the project’s page was almost dead on). Here’s hoping to find a translator fast 😉

Almost there…!

September 26, 2010

Success! The extraction tool works.

I’m almost done with the opcode research, there are only a few mysterious opcodes left but my current knowledge of the opcode table was sufficient for me to make a tool to extract all the Japanese strings from the game.

Next step is to code an insertion tool, which will also be a trivial task. I just have to adjust the offsets of the JumpTo opcode to reflect the new changes and in theory it should work.

The JumpTo opcode redirects the current opcode pointer to another position/opcode in the file, this means Viper 6‘s scripted actions don’t have to be linear at all. Also, when the game is waiting for user input, it’s actually jumping around in circles through several JumpTo opcodes. When the user clicks to advance the story for instance, a trigger repositions the opcode pointer to another location, thus exiting the circle of idleness!

Opcodes from Hell!

September 21, 2010

I know, 8 months is a looong time. Real life has been busier than ever, working + taking a MSc is serious business! 😦

Anyway, last week I finally ditched XP and installed Windows 7. Although I’m not much of a Windows user these days, I must say I’m pleasantly surprised.

Regarding Briganty, Cheesecakebobby is still plowing away at the script so the project is far from dead. Also, Briganty runs fine in Windows 7; I was a bit worried since dinosaurs were playing the game when they were still around.

I’m currently focusing on Viper V6 which has been somewhat neglected these past months. And I was quickly reminded of the reason for it: the game was coded by demons and Satan was the Lead Programmer!

Man, everything in the game is scripted. I’m not exaggerating, I literally mean everything: there are opcodes for text, images and respective effects (fade ins, fade outs, pauses, shaking, etc), animations, sounds, EVERYTHING! Even the titlescreen is scripted!

I’ve managed to identify most of them but there are many that I still don’t know what the hell they’re doing. Also, opcode order seems to affect output as well, I’ve seen a specific set of opcodes being influenced by preceding opcodes – Chained opcodes, noooooo!

Is this how the guys from ScummVM felt like?