Patch is up (v1.01 incoming)

Talk about Kojima's hard sci-fi masterpiece.
User avatar
Elijah Modnar
Posts: 22
Joined: Sat Dec 01, 2007 10:44 am

Re: Current Project Status (English Screenshots & Trailers)

Post by Elijah Modnar »

Read back through other posts and you will see what i mean there has been a few different explanations of why this isnt possible. If it was that easy the translation would have been out for about a year now.
Image
JimboKudo
Major
Posts: 604
Joined: Sat Jan 26, 2008 2:06 am
Location: Missouri, USA

Re: Current Project Status (English Screenshots & Trailers)

Post by JimboKudo »

Yes, that would be quite messy.
User avatar
Junker Gear Snatcher
Posts: 67
Joined: Thu Jul 10, 2008 11:50 am
Favorite Game: (Ask me sometime, PMs welcome)
Kojima games owned: Metal Gear Solid series (all of them)
-MGS1
-MGS2
-MGS3
-MGS4
-MGS: Portable Ops
-MGS: Portable Ops +
-MGS: Digital Graphic Novel
Snatcher
(Policenauts someday, thanks to you dedicated folks.)
Location: Plato's Cavern

Re: Current Project Status (English Screenshots & Trailers)

Post by Junker Gear Snatcher »

Yeah, no one here is saying your ideas aren't good ones, it's just that coding can be funny, the slightest thing can cause GREAT problems.

And unfortunately, I'm guessing the coding problem wasn't even identified until after the translation was done and the coding began.

It's NOT easy..

I worked with a guy that coded websites, and you wouldn't believe the problems.

And it's made even worse by the fact that the team's coder (sorry, I'm new here so I'm not familiar with everyone) wasn't the guy that worked on the original code, so it requires some extra tinkering and reverse-engineering.

Things like this are EXTREMELY attention-consuming, patience-consuming, and a general pain in the backside.
----------------------------------
Listening to my own "Policenaudio."
Author with one finished book,
six others on the go.
Generally friendly.
Good looking too.

And yet I still find time to be a Junker.
Pizuz
Runner
Posts: 118
Joined: Mon Jul 14, 2008 1:17 pm
Favorite Game: Let me see... probably Xenogears
Kojima games owned: Snatcher
Metal Gear Solid
Metal Gear Solid 2: Sons of Liberty
Metal Gear Solid 3: Subsistence
Zone of the Enders
Zone of the Enders: The Second Runner

Re: Current Project Status (English Screenshots & Trailers)

Post by Pizuz »

I thought that the code was already finished, but the translated text consumed too much space on the CD.

The idea was to insert the translated text until the point where it consumed too much memory, say the first half of the game, then tell the player to save and reboot using the other disc - this could be done by letting a character say this. The rest would be blank fields consuming probably one byte per text box or something that creates an exception fault if read.

The second CD would contain the rest of the script and maybe a replaced opening FMV warning users that they were using the wrong CD, if someone clueless guy attempted to start a new game on this CD.

This would basically mean NO additional coding at all.
User avatar
Artemio
Site Admin
Posts: 2947
Joined: Wed Oct 06, 2004 11:33 am
Favorite Game: Snatcher! ... no wait, Policenauts...
Kojima games owned: http://junkerhq.net/kojima.html
PSN: Artemio
Wii Friend Code: 6335316353781527
Xbox Live: JunkerHQ
Location: Mexico
Contact:

Re: Current Project Status (English Screenshots & Trailers)

Post by Artemio »

You are misreading the information Pizuz. It has all been explained in older pages.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
Pizuz
Runner
Posts: 118
Joined: Mon Jul 14, 2008 1:17 pm
Favorite Game: Let me see... probably Xenogears
Kojima games owned: Snatcher
Metal Gear Solid
Metal Gear Solid 2: Sons of Liberty
Metal Gear Solid 3: Subsistence
Zone of the Enders
Zone of the Enders: The Second Runner

Re: Current Project Status (English Screenshots & Trailers)

Post by Pizuz »

I'm sorry, I really misread this. Say, did you already ask the Phantasian Productions team? Their main hacker, Habilain, managed to incorporate DTE (which I believe should fix your RAM problems) into Tales of Phantasia, so he might be able to lend you a hand with your problem.
User avatar
X_Lupin
Runner
Posts: 144
Joined: Sun Sep 23, 2007 8:30 pm

Re: Current Project Status (English Screenshots & Trailers)

Post by X_Lupin »

I've actually dreamed up a way to solve the problem, but it wouldn't work on the original PSX hardware, which Is something I know you guys have as a general goal.

But, speaking in terms of an emulator, all the system's hardware is emulated on your machine. So what I'm thinking, is that we could take a PSX emulator, and tweak the coding of the actual "soft hardware" so that it is MADE to accommodate the added text. Similar to how Genesis emulators include extra options that allow you to switch out the "hardware", such as a high quality YM2612, and that sort of thing.

Thoughts?
Image
User avatar
Elijah Modnar
Posts: 22
Joined: Sat Dec 01, 2007 10:44 am

Re: Current Project Status (English Screenshots & Trailers)

Post by Elijah Modnar »

Thats actually some good thinking most people who will be playing the translation will be through emulation, i know i will, although i would think the lads working on this would prefer to have an accross the board launch, but i could only hope they prove me wrong.
Image
User avatar
Artemio
Site Admin
Posts: 2947
Joined: Wed Oct 06, 2004 11:33 am
Favorite Game: Snatcher! ... no wait, Policenauts...
Kojima games owned: http://junkerhq.net/kojima.html
PSN: Artemio
Wii Friend Code: 6335316353781527
Xbox Live: JunkerHQ
Location: Mexico
Contact:

Re: Current Project Status (English Screenshots & Trailers)

Post by Artemio »

That implies exactly what needs to be done but in reverse order. You need to modify the code of the game (the program) in order to accommodate and display everything correctly. Coding an emulator for that purpose would be totally overkill and imply tons of work that would be in excess of what is needed.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
JimboKudo
Major
Posts: 604
Joined: Sat Jan 26, 2008 2:06 am
Location: Missouri, USA

Re: Current Project Status (English Screenshots & Trailers)

Post by JimboKudo »

But would it be faster?
User avatar
Junker Gear Snatcher
Posts: 67
Joined: Thu Jul 10, 2008 11:50 am
Favorite Game: (Ask me sometime, PMs welcome)
Kojima games owned: Metal Gear Solid series (all of them)
-MGS1
-MGS2
-MGS3
-MGS4
-MGS: Portable Ops
-MGS: Portable Ops +
-MGS: Digital Graphic Novel
Snatcher
(Policenauts someday, thanks to you dedicated folks.)
Location: Plato's Cavern

Re: Current Project Status (English Screenshots & Trailers)

Post by Junker Gear Snatcher »

Quality over quantity.

Enough time has been put into this, I say take a page from Blade Runner and just whittle away at it... long as we don't whittle away first. LOL.

Bad joke, I know. #-o

Artemio, you're the one in charge of the coding correct. Details and specifics aren't needed, but I merely ask:

Do you have any ideas what needs to be done? Some kinda CoA?

I'll take a mere "yes" or "no" as an answer, if that's all you want to part with.
----------------------------------
Listening to my own "Policenaudio."
Author with one finished book,
six others on the go.
Generally friendly.
Good looking too.

And yet I still find time to be a Junker.
Pizuz
Runner
Posts: 118
Joined: Mon Jul 14, 2008 1:17 pm
Favorite Game: Let me see... probably Xenogears
Kojima games owned: Snatcher
Metal Gear Solid
Metal Gear Solid 2: Sons of Liberty
Metal Gear Solid 3: Subsistence
Zone of the Enders
Zone of the Enders: The Second Runner

Re: Current Project Status (English Screenshots & Trailers)

Post by Pizuz »

You should really try to contact the guys over at http://www.tales-cless.org (Phantasian Productions) for help including a dual tile encoding routine into Policenauts - as done with the PSX version of Tales of Phantasia. All their projects are currently in a state of translating while all the hacking is basically finished. I don't think that there would be any hostility towards you.
User avatar
Artemio
Site Admin
Posts: 2947
Joined: Wed Oct 06, 2004 11:33 am
Favorite Game: Snatcher! ... no wait, Policenauts...
Kojima games owned: http://junkerhq.net/kojima.html
PSN: Artemio
Wii Friend Code: 6335316353781527
Xbox Live: JunkerHQ
Location: Mexico
Contact:

Re: Current Project Status (English Screenshots & Trailers)

Post by Artemio »

No, I am not in charge of the project's coding. I was in charge of text dumping, but as said a couple of times earlier in the thread I have had no time to go into the ASM hacking needed for this game. I'd love to be a college student and to have all the time to do it, but that time is gone. I can still give brief lapses now and again, but not 100% dedicated.

And dual tile encoding is not nearly enough to accommodate the text, a quick stat showed that. Only 30.24% of the text would fit in with it. The amount of letter pairs needed is easily fit in the character table, but the amount of text is way larger. Just to put it in perspective, a byte to byte fitting is what would give that 30.24% figure.

To clarify this point, dual tile means inserting two characters on each tile that represented a single Kana/kanji in the original, and hence getting the double of space out of the game for each single line of text. This is possible since the original text is a two byte encoding, and thus you gain a 1:1 ratio on bytes per character in the actual files. The good thing about this method is that actual coding is probably not needed in terms of hacking the ASM executable of the actual game, you only need to edit the character table (an image) that is in a binary format specific to the game (not a piece of cake, but a great method when possible).

And no, coding an emulator wouldn't be faster. If a person with the time and knowledge is fully available, it would be faster to hack the game than to code an emulator. An analogy would be if it is easier to mod an existing car to tune it or to design a whole new car and build it from scratch.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
Pizuz
Runner
Posts: 118
Joined: Mon Jul 14, 2008 1:17 pm
Favorite Game: Let me see... probably Xenogears
Kojima games owned: Snatcher
Metal Gear Solid
Metal Gear Solid 2: Sons of Liberty
Metal Gear Solid 3: Subsistence
Zone of the Enders
Zone of the Enders: The Second Runner

Re: Current Project Status (English Screenshots & Trailers)

Post by Pizuz »

You got it almost right. Dual Tile Encoding means getting two letters out of one byte. Under certain circumstances. Which means that under ideal conditions you could squeeze 2048 letters into one kilobyte of text.

This can go as far as storing entire words in one byte, if it's used often enough.
Last edited by Pizuz on Wed Jul 16, 2008 5:52 pm, edited 1 time in total.
User avatar
Artemio
Site Admin
Posts: 2947
Joined: Wed Oct 06, 2004 11:33 am
Favorite Game: Snatcher! ... no wait, Policenauts...
Kojima games owned: http://junkerhq.net/kojima.html
PSN: Artemio
Wii Friend Code: 6335316353781527
Xbox Live: JunkerHQ
Location: Mexico
Contact:

Re: Current Project Status (English Screenshots & Trailers)

Post by Artemio »

Pizuz wrote:You got it almost right. Dual Tile Encoding means getting two letters out of one byte. Under certain circumstances. Which means that under ideal conditions you could squeeze 2048 letters into one kilobyte of text.
That is only true when each byte represents a tile. You got it almost right. In this case the game uses two bytes per tile. That means you can get 1024 letters into 1 kilobyte, a 1:1 ratio as described above.
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
Pizuz
Runner
Posts: 118
Joined: Mon Jul 14, 2008 1:17 pm
Favorite Game: Let me see... probably Xenogears
Kojima games owned: Snatcher
Metal Gear Solid
Metal Gear Solid 2: Sons of Liberty
Metal Gear Solid 3: Subsistence
Zone of the Enders
Zone of the Enders: The Second Runner

Re: Current Project Status (English Screenshots & Trailers)

Post by Pizuz »

With 65536 possible permutations you should be able to get a "word-per-tile" approach ;) Which would waste a lot of space ^^

So basically someone would have to alter the text routine to use one byte per tile and apply DTE afterwards. This would give us the two letters-per-byte ratio and save tilemap space, too (only 256 tiles left instead of 65536) which could be used to store text.

My logic tells me that this might save just enough space.
Last edited by Pizuz on Wed Jul 16, 2008 6:07 pm, edited 3 times in total.
User avatar
Junker Gear Snatcher
Posts: 67
Joined: Thu Jul 10, 2008 11:50 am
Favorite Game: (Ask me sometime, PMs welcome)
Kojima games owned: Metal Gear Solid series (all of them)
-MGS1
-MGS2
-MGS3
-MGS4
-MGS: Portable Ops
-MGS: Portable Ops +
-MGS: Digital Graphic Novel
Snatcher
(Policenauts someday, thanks to you dedicated folks.)
Location: Plato's Cavern

Re: Current Project Status (English Screenshots & Trailers)

Post by Junker Gear Snatcher »

Okay, I know ABOUT the process of text-dumping, that's when you basically convert and extract (or extract and convert) Binary or Hexadecimal code, looking for something in particular, in this case, you were extracting the japanese text, right?

What I know, I only know because at one point I was a gameshark/action replay junkie (only skills I got was being able to identify hexadecimal..)

I've never had an interest in learning how to code, but I wish I did now. If I had learned coding say a year or two ago, and found this site, I would have jumped on board in a heartbeat. I'd go out and try to learn now, but in a month I'm back to School and my free time would be shot..

Guess I can only cheer from the sidelines..
----------------------------------
Listening to my own "Policenaudio."
Author with one finished book,
six others on the go.
Generally friendly.
Good looking too.

And yet I still find time to be a Junker.
User avatar
Artemio
Site Admin
Posts: 2947
Joined: Wed Oct 06, 2004 11:33 am
Favorite Game: Snatcher! ... no wait, Policenauts...
Kojima games owned: http://junkerhq.net/kojima.html
PSN: Artemio
Wii Friend Code: 6335316353781527
Xbox Live: JunkerHQ
Location: Mexico
Contact:

Re: Current Project Status (English Screenshots & Trailers)

Post by Artemio »

Pizuz wrote:With 65536 possible permutations you should be able to get a "word-per-tile" approach ;) Which would waste a lot of space ^^
Hehe Not quite, but I get your joke.
Pizuz wrote: So basically someone would have to alter the text routine to use one byte per tile and apply DTE afterwards. This would give us the two letters-per-byte ratio and save tilemap space, too (only 256 tiles left instead of 65536) which could be used to store text.

My logic tells me that this might save just enough space.
Then you arrive to the real problem, and the one described pages ago. You need a programmer to hack the game's code. Then DTE means nothing, because you can simply alter the length of each message.

Maybe you are confused as what the problem with space is. You see, in computer programs and in computer data in general, certain bytes or chains of bytes are used to encode stuff. In the case of letters or characters you already know the drill, 65 is A, 66 is B, etc. Under the same logic, you can make 0x0A and 0x0D to encode a line break and return, just our ASCII that you are reading is actually doing. The mysql database here has those characters encoded each time I press enter here.

Just like that.

You saw a line break and a line feed there, even though they were just two extra bytes in the middle of the bytes that represent the words I am typing. As such, a specific code is needed to determine when a sentence ends, and I am not talking about punctuation here (or I am but in a completely different context). You might use a null character to tell the program that there is no more text to print under the current message, and as you can imagine that is just a sequence of bytes.

The program then does the following when told to print a message: it goes to a specific address withing the game data (an offset in a file in this case) and prints characters following it's own internal rules until it reaches the end of the specified message.

As you can probably imagine by now, all that text is encoded sequentially on the data files for the game, and if you alter the length of a single message in there you simply move all the next messages by an offset equal to the difference in length of the message you changed. Keep that mental image of how much data is changed by a single byte. Now all that data is within the program's code.. and you have to change every reference to every call whenever a line of text is accessed by the game.

Yes, that is a lot of references.

That is the space referred to when talking about the text not fitting. It is not the that CD has no space for the translated text, it is that the current structure doesn't.

As you can see it is probably easier to recode the engine that prints the text, and just have a conversion table of addresses in there... to map to new addresses that hold our text in the manner that we prefer.

i am not saying that is the only solution, but it certainly is the sanest. Unless of course you have the complete pointer table that encodes where every line of text should be, and provided it exists, that you can manipulate that at will with programs created for the purpose...

And just for reference, here is a screen of the actual table used in the game:
tile.gif
tile.gif (1.59 KiB) Viewed 5514 times
As you can see, it is a 10x10 pixel character table. With DTE you'd be making 10x5 characters, and that is under the assumption that you need no separation between them (which you do).
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
JimboKudo
Major
Posts: 604
Joined: Sat Jan 26, 2008 2:06 am
Location: Missouri, USA

Re: Current Project Status (English Screenshots & Trailers)

Post by JimboKudo »

I think Artemio just gave the ultimate answer possible. Hopefully, whenever people come in here and ask, "What's the problem?" they can be referred back to that post. It really cleared up any of the suggestions and questions I had. Now that I understand exactly what program, I won't ask anymore needless questions. That's at least good.
User avatar
The Spoony Hou
Runner
Posts: 170
Joined: Wed May 16, 2007 2:28 am
Location: Brazil

Re: Current Project Status (English Screenshots & Trailers)

Post by The Spoony Hou »

Oh, that's the problem... I thought you couldn't change the pointers for some reason, but it seems the reason is that... there are a LOT of pointers :P.

Don't all the translations just change the pointers?
akizzle
Posts: 8
Joined: Thu Jul 17, 2008 12:10 am
Favorite Game: MGS4
PSN: st8_snake

Re: Current Project Status (English Screenshots & Trailers)

Post by akizzle »

I am new here (first post as you can see)

I just wanted to say that I support this cause!!!


I have been following this site for a couple weeks, shortly after beating Snatcher for the first time on my Sega CD, and I must say I am pleased at all the hard work and dedication. If I had any programming experience I would lend it, but I am just a structural engineer - no coding knowledge required :???:
Pizuz
Runner
Posts: 118
Joined: Mon Jul 14, 2008 1:17 pm
Favorite Game: Let me see... probably Xenogears
Kojima games owned: Snatcher
Metal Gear Solid
Metal Gear Solid 2: Sons of Liberty
Metal Gear Solid 3: Subsistence
Zone of the Enders
Zone of the Enders: The Second Runner

Re: Current Project Status (English Screenshots & Trailers)

Post by Pizuz »

I get what you were talking about. However, please allow me to aks one last question before I stop making suggestions:

You said that those pointers were hard-coded into the game's engine. I suppose that you won't change the amount of text boxes in the game (there won't be any new sentences in the dialogues that would require additional pointers, will there?). Therefore, by translating you'd have to change those references, anyway.

So, which one is your problem? Is it fitting the text you translated into the RAM (could be solved by moving it into parts of the tilemap space that are unused - 1kb every ten unused characters - and making the references point at this different location) or is it readjusting those references?
Last edited by Pizuz on Thu Jul 17, 2008 2:41 am, edited 1 time in total.
akizzle
Posts: 8
Joined: Thu Jul 17, 2008 12:10 am
Favorite Game: MGS4
PSN: st8_snake

Re: Current Project Status (English Screenshots & Trailers)

Post by akizzle »

Also, I have a cousin who loves coding and wants to further his skills - but he's mainly familiar with C - could that be of use? I would think a general understanding of coding would be useful.

Anyway, he told me he was looking for things to code (about 2 months ago). I guess he wants to improve his skillset as a physics graduate. Since I have been coming here I have to mention it because maybe it is a sign. I haven't talked to him yet - but if he is still interested - could you use someone like him?

Thanks,

A-K
User avatar
Artemio
Site Admin
Posts: 2947
Joined: Wed Oct 06, 2004 11:33 am
Favorite Game: Snatcher! ... no wait, Policenauts...
Kojima games owned: http://junkerhq.net/kojima.html
PSN: Artemio
Wii Friend Code: 6335316353781527
Xbox Live: JunkerHQ
Location: Mexico
Contact:

Re: Current Project Status (English Screenshots & Trailers)

Post by Artemio »

Pizuz wrote:I get what you were talking about. However, please allow me to aks one last question before I stop making suggestions:

You said that those pointers were hard-coded into the game's engine. I suppose that you won't change the amount of text boxes in the game (there won't be any new sentences in the dialogues that would require additional pointers, will there?). Therefore, by translating you'd have to change those references, anyway.

So, which one is your problem? Is it fitting the text you translated into the RAM (could be solved by moving it into parts of the tilemap space that are unused - 1kb every ten unused characters - and making the references point at this different location) or is it readjusting those references?
Again you are missing the point my friend. The problem is that we don't have a programmer that can be working full time hacking it. It has been said more than one time.

But in response to your question, you can certainly create new sentences, if you re-read my posts above I talked about meta-punctuation, when speaking about control characters. You can always insert a new line break anywhere if the length allows it or if you hack the engine or if you change the pointer table.

But as you can see it is not a matter of just time, it is a matter of knowledge/skills. I am a C/C++ developer mainly, I do so as my full time job designing and programming real time applications for TV stations which involve low level code and hardware. And I know I don't have the knowledge needed right now (MIPS ASM). I would need to invest some time (months?) in learning what I need and then just doing what is needed. I know what to look for and what solutions to apply, but I don't have the time in my hands.. as mentioned earlier I'd love to have it. The problem is getting someone not only willing to do it, but capable and on top of that, with the time.

But we'll get it done.

viewtopic.php?p=20870#p20870
From the mathematical perspective, consciousness might be regarded as a second derivative of sensation.
-- Terrel Miedaner

[Junker HQ]
Pizuz
Runner
Posts: 118
Joined: Mon Jul 14, 2008 1:17 pm
Favorite Game: Let me see... probably Xenogears
Kojima games owned: Snatcher
Metal Gear Solid
Metal Gear Solid 2: Sons of Liberty
Metal Gear Solid 3: Subsistence
Zone of the Enders
Zone of the Enders: The Second Runner

Re: Current Project Status (English Screenshots & Trailers)

Post by Pizuz »

You did a great job obfuscating your point ;)

Anyway, I know some C64 assembly - which is probably not suited very well here, but anyway, I know how to read stuff in a debugger and I have some ideas how to perhaps get this working. With some collective thinking we might be getting to something.

There is one problem: I figured from what you said in that newsletter that the hack is basically finished and last remaining problem is fitting the text into the RAM. What you didn't tell us the whole time was how much space would be needed in the worst case and how much the game provides.

As you mentioned in your newsletter, you thought about moving the text into a different memory location. My idea was to use a portion of the tilemap memory formerly filled with hundreds of Japanese letters. Taking into account that removing ten 10x10 tiles already frees 1 KiB of memory we might be able to fit a decent amount of text in there. The question is: How many letters does the game originally use? 500? 1000? And how many tiles does your hack use (about 80, I assume)? I really don't know, but I'd like to.
Post Reply