Jump to content

Lamune Translation (hacking and discussion)


zoom909

Recommended Posts

It's old, it shouldn't be too bad, right?

Extract using ExtractData (engine type "Alcot")

Extracted scripts are binary, but you can see the lines of text in there.  And each text is preceded by what looks like the line length.

 

Any hacker with some free time who wants to help me?  (I might be able to do something by myself, but it'll probably involve a lot of trial and error and luck.  A real hacker might be able to knock it out pretty fast.)

 

UPDATE:

 

As you could see from http://zoom909.blogspot.com, things are well underway but have hit a bit of a snag!  Due to my quest to separate myself from hentai once and for all, I have chosen to work on the PS2 version of Lamune

 

SO, if you like Lamune and you like ero and can help, or end up talking to someone who can help:

 

  • I'm looking for a co-translator who is willing and able to translate a relatively small amount of explicit lines.  You can also be in charge of building the PC version patch if that appeals to you.

  • Offer expires after 90 days.

Edited by zoom909
Link to comment
Share on other sites

OK, great, I'll keep that in mind.  If this turns into a real project.

But for right now, it's the technical side that needs work as a prerequisite.

Meanwhile, I will keep plugging along with my meagre skills in the hopes that something works out.

 

The compression is a well-known type, so thankfully there's a library for that.

-I need to try and encrypt it properly or the game will reject it.

-Then, looks like there is also the problem of getting the lines of text out of the script object file so I can edit them, and back in again.

 

And today, I discovered that another game I have (http://vndb.org/v702) has scripts which are source, not binary objects.  So they can be loaded and worked with like ordinary text files.  That's more like what I was used to with the Miku VNs.

-Still would need to repack them properly before it can work.

Link to comment
Share on other sites

I can try extracting into readable files so you can start translating, but for final insertion you would probably need custom tool.

But the torrent I have is just not downloading so maybe you want to hop on TS and send me just the needed files and I will see.

 

If you have westside free packages and the archive for this Lamune game is also in arc, try using nekof3cv, I can email it to you if you want. It seems to work with other nekoneko games but again the torrent for this is not downloading so I can't see.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...

Yeah I managed to get it before that happened.

Play-tested very briefly on the first script with a choice--seems fine now.  Thanks again.

 

By the way, you don't happen to know about PS2 hacking, do you?  There is a new version of Lamune that has 6 heroines instead of 4.

Just thinking ahead (way, way ahead) 

Link to comment
Share on other sites

There is a new version of Lamune that has 6 heroines instead of 4.

What about 3 releases of this VN after the PS2 version? They do not include the new stuff?

I mean, do they really sell it again and again without adding anything new... I don't want to believe.

Link to comment
Share on other sites

You looked at vndb, didn't you...this is their shortcoming...they don't distinguish between just repackaging the game like for download or including it in a collector's box, and actual enhanced versions of the game.

 

According to EGS there are really only 2 versions of Lamune:

the old 18+ one for PC (called just "Lamune")

the new one for PS2 (called "Lamune:  The Glass Bottle that Reflects the Sea")

 

Some games get enhanced in a console version.

Some get enhanced in a new PC version.

Some go through many cycles of enhancement between console and PC.

Some never get enhanced at all.

I don't know who decides all that stuff--I just know it isn't me.

Link to comment
Share on other sites

  • 2 weeks later...

You looked at vndb, didn't you...this is their shortcoming...they don't distinguish between just repackaging the game like for download or including it in a collector's box, and actual enhanced versions of the game.

 

According to EGS there are really only 2 versions of Lamune:

the old 18+ one for PC (called just "Lamune")

the new one for PS2 (called "Lamune:  The Glass Bottle that Reflects the Sea")

 

Well, I saw the EGS too. But it's not like their data is 100% accurate too. Well the main reason I asked is just I really fail to understand why wouldn't they include the new content in the releases following the PS2. It is probably not worth to make the new content for some old VN, but if it's already there, in PS2, putting it in PC version should be trivial.

Well, anyway. Have you checked that PS2 version? It is possible that the console version uses the same script format as the PC. It can even use the same archive format in some cases. That would mean that there isn't much to hack.

Link to comment
Share on other sites

Well, you're quite an optimist, aren't you?  But it could just as easily be an entirely different format.

Anyway, the archive format is definitely not the same.  It's one gigantic archive volume helpfully named "data.bin" <_<

Until I can open it, I won't know if the script format matches or not.

The program code contains the following string:

H3D>  HuneX Consumer 3D System for PlayStation2.........H3D>    Runtime Library Release %s......VER 1.01........H3D> ------------------------------------------.........H3D>  WELCOME TO PLEASANT GAME DEVELOPMENT!.....

That's the only identifying mark I found.  Here's their website, they have programmed a LOT of games:

http://www.hunex.co.jp/p_02/k_ps2.html

 

I also want to check and make sure that PCSX2 can actually run Lamune.

 

The Lamune PC game is the original and a classic, so I won't lose too much sleep over it either way.  However, the collector in me would like to pursue the PS2 version.

Link to comment
Share on other sites

The header seems relatively trivial, DVD offset being aligned on 2048 (0x800) boundaries.

struct TOCENTRY {
u32le size;
u32le offset;
u32le compressed?;
u32le usize?;  // if compressed? is 0, same as .size
}

 

Files 0 and 1 (0x800 and 0x1000): those look like .MSH and .MSB files -- sound archive
Files 2,3,4 (0x3800 0x6000 0x7000): lots of references to 0xAC44 (44100 Hz?) -- sound archives
Files 5,6,7,8,9 (0x68000 0x874800 0xe39000 0x1af1800 0x3022000): MPEG1 videos (*.PSS?)
File 10 (0xC736800): The largest entry (1,063,655,424 bytes) mono 44100Hz playstation 4-bit ADPCM -- voice archive
File 11 (0x4BD98000): "MF" container (matryoshka effect)
File 12 (0x4C536000): "UFFA" -- compressed script, but unknown algorithm. Closest guesses are quickbms' 12 289 291 307 (COMP_LZSS variants, COMP_SCUMMVM10)
File 13 (0x4C6DC000): "MF" container -- system bitmaps?, given the size (61,155,744)
File 14 (0x5012F000): "MF" container -- some more text files?
File 15 (0x50BE4800): relatively large (517,210,112 bytes), mono 44100Hz playstation 4-bit ADPCM -- sound/BGM archive
File 16 (0x6F924800): mono 44100Hz playstation 4-bit ADPCM -- sound/SFX archive
File 17 (0x704D9000): "MF" container, quite large (638,108,226 bytes) -- game CGs probably

Edited by Nanashi3
Link to comment
Share on other sites

The header seems relatively trivial, DVD offset being aligned on 2048 (0x800) boundaries.

struct TOCENTRY {
u32le size;
u32le offset;
u32le compressed?;
u32le usize?;  // if compressed? is 0, same as .size
}

Files 0 and 1 (0x800 and 0x1000): those look like .MSH and .MSB files -- sound archive

Files 2,3,4 (0x3800 0x6000 0x7000): lots of references to 0xAC44 (44100 Hz?) -- sound archives

Files 5,6,7,8,9 (0x68000 0x874800 0xe39000 0x1af1800 0x3022000): MPEG1 videos (*.PSS?)

File 10 (0xC736800): The largest entry (1,063,655,424 bytes) mono 44100Hz playstation 4-bit ADPCM -- voice archive

File 11 (0x4BD98000): "MF" container (matryoshka effect)

File 12 (0x4C536000): "UFFA" -- compressed script, but unknown algorithm. Closest guesses are quickbms' 12 289 291 307 (COMP_LZSS variants, COMP_SCUMMVM10)

File 13 (0x4C6DC000): "MF" container -- system bitmaps?, given the size (61,155,744)

File 14 (0x5012F000): "MF" container -- some more text files?

File 15 (0x50BE4800): relatively large (517,210,112 bytes), mono 44100Hz playstation 4-bit ADPCM -- sound/BGM archive

File 16 (0x6F924800): mono 44100Hz playstation 4-bit ADPCM -- sound/SFX archive

File 17 (0x704D9000): "MF" container, quite large (638,108,226 bytes) -- game CGs probably

 

Pretty amazing that you could deduce all this, where all I saw was a seemingly random smattering of Bytes!

So, it looks like the interesting files are 11, 12, 13, 14, right?  Could you tell for sure that 12 was scripts, even though it's compressed?  Did you see some bits of text peeking through?

 

Searching for "UFFA"...found the following:

 

"HEADER

2 byte header (always MF)

2 bytes null

4 bytes starting offset

4 bytes null

TABLE

4 bytes filesize

4 bytes offset

1 bytes flag

3 bytes null

4 bytes uncompressed filesize

Flag: Either 0x00 or 0x01. This tells if it's a compressed file or not (UFFA).

The compression used is CLZ, which is a variant of LZ

IMPORTANT NOTE ABOUT OFFSETS: They will ALWAYS be rounded to either 0x800 or 0x1000. 0xFF is used for padding.

Uncompressed filesize: If the file is not UFFA, just copy filesize. If the file is UFFA then copy 4 bytes starting at 0x08 in the UFFA file."

 

(Keep in mind that I have no experience with data compression)

Link to comment
Share on other sites

Well I found it, but I don't really remember who made it. It was sooo long ago that I was messing with FSN PS2. So not sure if he wants me to post it. Though I can send it to you in PM...

Edit: but AFAIR it takes mounted iso as input and searches for the files there... so perhaps it needs to be modified to work with something else.

Edited by メルP
Link to comment
Share on other sites

Thanks for the file @MeruP, though it's a pity it is in py2exe form.

At the moment, I'm trying to grab a working PCSX2 emulator for debugging.

The decompression routine seems to be a fairly run-of-the-mill LZSS implementation (@.text:001062F8 in SLPM_660.83), 12+4 with big endian caveat (I posted a decompression script for Strapani earlier)

 

however any output I got so far is garbage.

 

Here's the archive if someone wants to have a look: 

http://www42.zippyshare.com/v/68633650/file.html

 

Edit2: My bad!! I forgot to skip a value!

Here is the script MF archive: 

Edit3: fixed bad dump http://www36.zippyshare.com/v/26734086/file.html

Edited by Nanashi3
Link to comment
Share on other sites

  • 4 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...