Author Topic: Viper V6 English Translation Project  (Read 24151 times)

golden

  • Casual VIPER Fan
  • *
  • Posts: 15
  • Karma: +2/-0
    • Mare Incognitum
Viper V6 English Translation Project
« on: September 29, 2010, 08:09:14 pm »
Hello everyone, it's nice to have finally found where all the Viper fans are gathering!

The Viper games were among the first ero-games I played when I was a kid and I enjoyed playing them even though they were basically brief animated Japanese novels. Fast forward a few years ago, I got into game hacking as a hobby and now I'd like to translate some of those old ero-games I played nearly a decade ago.

And I'm starting with Viper V6 - Initially, I successfully reverse engineered the DAT archive and its compression algorithm (a LZSS variant) so I managed to code an unpacker and a repacker for it.

Afterwards, I started to investigate the WIN format and even though I was looking directly at the ASM code by running the game through a debugger, it took me quite a while to identify the opcodes and respective operations. I still have a few that I don't fully know what they're doing but I already understand all those relevant for a translation project. With this knowledge, I made a script extractor and respective inserter: I can modify any string in the game with no size restrictions whatsoever (I uploaded a screenshot of a successful script insertion). The full Japanese script only weighs 42.5kb by the way; I've also uploaded it as an attachment (Shift-JIS encoding).

Currently, I'm looking at the ANM image format and I think I'm close to fully comprehend it. I've successfully converted some ANMs to BMPs but my algorithm isn't converting all of them, yet.

But unfortunately, I can only take care of the technical aspects of this project... I don't understand a single word of Japanese so I'm looking for someone fluent in the language and willing to help me bring this game to western shores! (I will also create a nice installer when the project is completed.)

And remember guys, if we don't do this nobody else will ;)

Rai

  • Serious VIPER Fanatic
  • ***
  • Posts: 299
  • Karma: +20/-0
    • Favorite Sogna Game:
      ・VIPER-M1
Re: Viper V6 English Translation Project
« Reply #1 on: September 29, 2010, 10:46:48 pm »
Very nice. I think you could get some help from a few people here. There was an RSR translation effort not too long ago that got some good headway. V6 has less dialog altogether though so it might be easier to finish. If not, you could always just replace the entire script with Metallica lyrics and it could end up being even better.

Hyperguy

  • Retired Admin 2004-2012
  • Forum Administrator
  • Hardcore VIPER Otaku
  • *******
  • Posts: 2,840
  • Karma: +48/-6
  • o/
Re: Viper V6 English Translation Project
« Reply #2 on: September 29, 2010, 10:51:15 pm »
Howdy!  Welcome to the forum!

Ah, ah, if you need help converting the image files to bmp format, I'd suggest using Grapholic.  We actually have a listing of tools used to work with Viper game's files here:

http://www.sognadigitalmuseum.com/forum/index.php/topic,263.0.html

Translating Viper V6 is something I've personally wanted to do for quite some time now, as it's not only the first and among my favorite games, but it's also relatively short and the Japanese used is fairly simple and straightforward as well(Carrera asks like 10 times if the player is satisfied!).

I lack the programming skills JG does(I'm more of a web software person O_o), so I was thinking of just translating the game and just putting it together via a VN software program like Novelty.  It'd be super neat if we could insert a translation into the game's dat files though.

Anyways, I'll take a look at the script you posted and try to work on some of it.  I'm not fluent, but I do want to take a shot at it least.

Ah, ah, if you ever have any issues with the forum or whatever, feel free to PM me.  I run this place or some such.

Cheers!

golden

  • Casual VIPER Fan
  • *
  • Posts: 15
  • Karma: +2/-0
    • Mare Incognitum
Re: Viper V6 English Translation Project
« Reply #3 on: September 30, 2010, 11:15:56 am »
If not, you could always just replace the entire script with Metallica lyrics and it could end up being even better.
Eheh, you just gave me an idea: a Viper S&M featuring the Viper characters in a metal band, Metallica lyrics and MIDI renditions of some of their most famous songs.

You know, my initial goal was to create a tool which would output a human-readable WIN file as well so that anyone could completely modify it and create new Viper games. However, I soon realized that it was too ambitious given my available time - some opcodes for instance, are used to calculate RAM addresses on which the game writes stuff. Others, if you erase them from the WIN file, don't seem to produce any visible changes to the game.

These are only a small subset but nonetheless, to code such a tool would require a complete understanding of the full opcode table and its rules so it just seems too much work for one person. An English translation, however, is completely feasible given that you only need to work with a specific subset of opcodes.

Ah, ah, if you need help converting the image files to bmp format, I'd suggest using Grapholic.  We actually have a listing of tools used to work with Viper game's files here:

http://www.sognadigitalmuseum.com/forum/index.php/topic,263.0.html
Wow, you guys have already done tons of research; I thought I was discovering gunpowder here. Grapholic seems nice but I don't suppose it can convert BMPs into ANMs? If not, JG00's ANM Editor seems to be the final piece necessary to make a complete translation a reality.

The game has a few ANMs featuring Japanese text, namely, at the story selection screen and the first image that appears in Carrera's story. Those would have to be edited in BMP and then converted back into ANM. There's also an image from the "Double Impact" story with a typo: "Double Impuct" (didn't spell checkers exist in 1996?); I'd like to fix that as well.

I can't test the tools right now, but I will as soon as possible.

Anyways, I'll take a look at the script you posted and try to work on some of it.  I'm not fluent, but I do want to take a shot at it least.

Ah, ah, if you ever have any issues with the forum or whatever, feel free to PM me.  I run this place or some such.
That's awesome! Take your time and thanks for the warm welcome!



EDIT: Ok so I tested ANM Editor but there seems to be something wrong with the conversion from BMP to ANM; I thought I was making some kind of mistake when modifying the converted BMPs but then I just extracted the 2 frames from HEBI.ANM and inserted them back as BMPs (unmodified) and the palette got screwed up anyway. The resulting ANM's file size also dropped a few kbs even though it's exactly the same image.

Everything looks fine until the point where the snake is supposed to appear but then, not only does it not appear, but the palette also gets all screwy as shown in the attached screenshot. I'm sure JG00 must be aware of this and it would be great if he could fix it. I'd rather avoid to try and reinvent the wheel when there's already a great tool around (and with a GUI too, my tools are command line based) but if not, I can continue my investigation of the ANM format as well.
« Last Edit: September 30, 2010, 09:33:24 pm by golden »

golden

  • Casual VIPER Fan
  • *
  • Posts: 15
  • Karma: +2/-0
    • Mare Incognitum
Re: Viper V6 English Translation Project
« Reply #4 on: October 02, 2010, 07:42:16 pm »
Well, today I got to work on this again and I've finally figured out the whole ANM format; the vertical and horizontal positions of each frame were throwing me off for a while though. My conversion tool is almost done as well, I've successfully exported all ANMs (and respective frames) to BMP.

There's still a bug in the algorithm which causes a couple of lines to be appended at the end of each image instead of the beginning. But I'm going to fix this and then I can make the BMP to ANM converter :)

Hyperguy

  • Retired Admin 2004-2012
  • Forum Administrator
  • Hardcore VIPER Otaku
  • *******
  • Posts: 2,840
  • Karma: +48/-6
  • o/
Re: Viper V6 English Translation Project
« Reply #5 on: October 04, 2010, 07:13:26 am »
Splendid!

In my case, I'm working on the translation little by little.  I honestly can't wait to get away from Ogawa's opening monologue and on to Carrera's, as her lines are easiest.

As an example, here is a rough translation of the game's first two lines of dialogue:

Original: よし・・・できた。 これで説明書どおりだな。
Romanji: yoshi ... dekita . korede setsumeisho dooridana .
Rough English Translation: Alright! It's done. This is just as it instructed.

Original: これで悪魔を呼びだして、おれをバカにしたやつらに復讐をしてやるんだ。
Romanji:korede akuma wo yobi dashite , orewo baka nishitayatsurani fukushuu woshiteyarunda .
Rough English Translation: This completes the preparations for the devil summoning, now I can finally have my revenge on those fools.

golden

  • Casual VIPER Fan
  • *
  • Posts: 15
  • Karma: +2/-0
    • Mare Incognitum
Re: Viper V6 English Translation Project
« Reply #6 on: October 05, 2010, 08:11:00 am »
Those sound great Hyperguy! I've got something to show as well: I can now export ANMs to BMPs and vice-versa perfectly! I've changed the story titles in the selection screen, check out the before and after screenshots :)

The only thing left to do now is insert the translated dialogue and edit 3 ANMs. So we're looking for someone skilled in Photoshop (or any other image editing program) to take care of that; Hyperguy will be busy with the translation and I don't have any kind of experience with those programs.

In the meantime, my next step will be to test my tools with other Viper games; I doubt that the WIN format, for instance, remains unchanged in the following games. Stay tuned :D


EDIT: Finally got to test my tools with Viper V8's files. The DAT archive was repacked without errors so this format remains unchanged. Almost all ANMs were successfully converted to BMPs and there was just one that gave me an error. I'm currently pressed for time but I'll check what's different about it during the next week.

And just as I thought, the WIN format introduces new opcodes as well. I must say this was something I wasn't really looking forward to; it's very boring to reverse those. Hopefully it will just be a few more.

As soon as I fix these two problems, I'm testing Viper V10!
« Last Edit: October 10, 2010, 05:51:12 pm by golden »

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 626
  • Karma: +42/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Viper V6 English Translation Project
« Reply #7 on: October 29, 2010, 11:34:28 am »
I don't know if you've seen my research,
but I posted some information quite a while ago,
there may be something helpful in those posts for you.

yeah, the ANM format was weird.. but it was fun to figure out.

I've decoded some of the WIN script codes before,
but this is from the RSR engine.. so some of the codes will probably be different from previous games.
Code: [Select]
0300 - PlayANM
414E4D5C35313200 - FileName ”ANM\512”
0700 - End
100112000C0100000000 - DisplayBackground[0C]
34FA0F00 - PlayBGM=0F
25D88B - Call Process? Jump to “8BD8”
4E - StartANMLoop
0A0000000000018001000103010301030103010301030103010301030103010300
0A01000000000380000C0103020303030403050306030703080309030A030B0300

0A##00000000000000 Layer and XY info
following is frame number and time to display.

4D - EndANMLoop
05000C00 - FadeInSeconds(12)
1D00 - PlaySound
50434D5C5253303530393800 - FileName PCM\RS05098
210104 - DisplayName=04
817582AB82E182A082A082A082A082A082A0817600 - TEXT
25C789 - Call Process? Jump to “89C7” (WaitFuction, Click to proceed)
1D00 - PlaySound
50434D5C5253303530393900 - FileName PCM\RS05099
210102 - DisplayName=02
817581498148817600 - TEXT
25C789 - Call Process? Jump to “89C7” (WaitFuction, Click to proceed)
1D00 - PlaySound

Oh yeah, im not sure about the other games, but RSR's SGS.exe can handle both compressed (i.e. animations) and uncompressed (fields, dungeons..etc ) ANM files ..
« Last Edit: October 29, 2010, 04:22:11 pm by 黒い灯影 »
BlackShadow

Hyperguy

  • Retired Admin 2004-2012
  • Forum Administrator
  • Hardcore VIPER Otaku
  • *******
  • Posts: 2,840
  • Karma: +48/-6
  • o/
Re: Viper V6 English Translation Project
« Reply #8 on: October 30, 2010, 10:56:24 am »
The only thing left to do now is insert the translated dialogue and edit 3 ANMs. So we're looking for someone skilled in Photoshop (or any other image editing program) to take care of that; Hyperguy will be busy with the translation and I don't have any kind of experience with those programs.
Ah, ah, if it's just 3 ANMs, I could probably do it.  I am experienced with Photoshop after all.  What edits did you need?

The most iffy part with the translation so far is Ogawa's monologue, which I am muscling through now.

golden

  • Casual VIPER Fan
  • *
  • Posts: 15
  • Karma: +2/-0
    • Mare Incognitum
Re: Viper V6 English Translation Project
« Reply #9 on: October 31, 2010, 10:30:27 am »
I don't know if you've seen my research,
but I posted some information quite a while ago,
there may be something helpful in those posts for you.

yeah, the ANM format was weird.. but it was fun to figure out.

I've decoded some of the WIN script codes before,
but this is from the RSR engine.. so some of the codes will probably be different from previous games.

Hey 黒い灯影, I did find your thread when I registered. If I had found it sooner I would've saved some time, but it was fun reversing the formats as well :)

Looking at those codes, they seem to be identical to the ones from Viper V6 and V8. It's nice to see that they've kept the WIN format consistent throughout the various games. This means my tools will probably work with the rest of the Viper games :D

How's your Viper RSR project coming along? I know you have everything figured out but if you need tools to automate the extraction/insertion of resources, I'll gladly share mine. It would be awesome to see RSR translated too.

The tools might not predict every possible scenario yet so I'll need to test them on Viper RSR as well and make sure they're bulletproof. In fact, during the last week I fixed my ANM converter and it now works with all of Viper V8's ANMs too. I'm almost done with V8's WIN files as well, they introduce 6 new opcodes which weren't present in V6.

Ah, ah, if it's just 3 ANMs, I could probably do it.  I am experienced with Photoshop after all.  What edits did you need?

That would be great HG, 2 of them are nitpicks so I don't mind releasing an English patch without them but it would be cool to edit those 2 as well. Although truthfully, there are 4 ANMs which need editing but 2 of them I already got covered - the title screen which reads 'All right reserved' (I added the missing 's') and the selection screen with the 3 stories' titles.

So the other 2 are:
* the first image that appears in Carrera's story - which needs to be translated;
* the 'Double Impuct' image - replace the 'u' with an 'a'.

The 'Double Inpuct' one might be too difficult for its worth, if so, we can forget about it. But you're probably too busy with the script right now, we can discuss image editing later.

Once I'm finished with V8, I'm testing V10. Fun times are ahead :D

JG

  • Karin-chan Fan
  • Website Administrator
  • Hardcore VIPER Otaku
  • ********
  • Posts: 3,497
  • Karma: +85/-4
  • 3000 posts of rediculousness and counting
    • Favorite Sogna Game:
      ・Gokuraku VIPER Paradice
    • Now Playing:
      ・Mario & Luigi: Brothership
    • Sogna Digital Museum
Re: Viper V6 English Translation Project
« Reply #10 on: November 01, 2010, 08:03:48 pm »
* the first image that appears in Carrera's story - which needs to be translated;

You...
Has anyone been hated more?

Murderous thoughts occupy my mind...
Everyone hates that guy...

So...
After I lead the demon I summon to you...


I did this a while back for the Henjin version of V6, which I never did finish :P
Shows alot about what Ogawa's true motives were though.  Not just revenge but appearing as a savior/hero type.


I'd also like to see a recap or new thread detailing all the opcodes you guys have come up with.  I'm certain I could make us a compiler/decompiler with sufficient information.

golden

  • Casual VIPER Fan
  • *
  • Posts: 15
  • Karma: +2/-0
    • Mare Incognitum
Re: Viper V6 English Translation Project
« Reply #11 on: November 03, 2010, 09:16:09 am »
Thanks for the translation JG00. Regarding that compiler, it's certainly the Holy Grail but it will require a massive amount of research to document every single opcode. For instance, Viper V6's engine defines 75 opcodes and although it's not using all of them, they may be used in later games; Viper V8's engine defines those 75 plus 6 more. I've figured out many opcodes but there are still plenty left to investigate.

Still, if the three of us (黒い灯影 included) combine our efforts, it's definitely possible! Give me some time to organize the information I have and I'll make a new thread with all of it.


EDIT: Done, made a new thread with Viper V6's WIN information.
« Last Edit: November 03, 2010, 08:31:11 pm by golden »

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 626
  • Karma: +42/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Viper V6 English Translation Project
« Reply #12 on: November 04, 2010, 10:24:27 pm »
Awesome!

Oh yeah, I do have a debug  SGS.exe, modified from RSR.
It runs with all the files uncompressed and in the same folder, no need for the SGS.DAT file.
If you want a copy of that, I'll try to find it on my hard drive somewhere.
BlackShadow

JG

  • Karin-chan Fan
  • Website Administrator
  • Hardcore VIPER Otaku
  • ********
  • Posts: 3,497
  • Karma: +85/-4
  • 3000 posts of rediculousness and counting
    • Favorite Sogna Game:
      ・Gokuraku VIPER Paradice
    • Now Playing:
      ・Mario & Luigi: Brothership
    • Sogna Digital Museum
Re: Viper V6 English Translation Project
« Reply #13 on: November 04, 2010, 10:54:30 pm »
Your DebugSGS.exe was available in this thread.

Looks like you let your domain expire though and the file is currently unavailable.  Fortunately, I have a backup.
« Last Edit: December 17, 2010, 05:11:50 pm by JG00 »

黒い灯影

  • Mr. Monkey in the moon
  • Forum Administrator
  • Ambassador of VIPER Knowledge
  • *******
  • Posts: 626
  • Karma: +42/-1
  • Unleashing the monkey inside!!
    • Favorite Sogna Game:
      ・VIPER-RSR
    • Now Playing:
      ・Viper RSR
Re: Viper V6 English Translation Project
« Reply #14 on: November 05, 2010, 02:29:12 am »
oh yeah...oops, forgot about that site...
just renewed it...but everything's gone.. oh well..
at least I have everything on my computer.....somewhere...
BlackShadow

JG

  • Karin-chan Fan
  • Website Administrator
  • Hardcore VIPER Otaku
  • ********
  • Posts: 3,497
  • Karma: +85/-4
  • 3000 posts of rediculousness and counting
    • Favorite Sogna Game:
      ・Gokuraku VIPER Paradice
    • Now Playing:
      ・Mario & Luigi: Brothership
    • Sogna Digital Museum
Re: Viper V6 English Translation Project
« Reply #15 on: November 05, 2010, 06:58:14 pm »
I probably have all your programs and zip files, but not your html.
Maybe you can use the Wayback Machine site to get those back.

Mickey23

  • Engaged VIPER Fan
  • **
  • Posts: 32
  • Karma: +0/-0
Re: Viper V6 English Translation Project
« Reply #16 on: December 17, 2010, 09:40:31 am »
So guys is this project still on or it been dropped ? I am really eager to see that translation ^^

Asukachan

  • VIPER Animator
  • Serious VIPER Fanatic
  • ***
  • Posts: 272
  • Karma: +14/-0
    • Favorite Sogna Game:
      ・VIPER-CTR, VIPER-F40
    • Now Playing:
      ・Popful Mail (Sega CD)
    • VIPER ANIMATION Blog
Re: Viper V6 English Translation Project
« Reply #17 on: February 25, 2011, 06:22:26 pm »
I'm interested too. Is this project still on? Also, are there any similar projects going on is translating any of the VIPER games? My Japanese is not good enough to understand fully. Plus, I only know a little Kanji. :(