Currently I’m working on a translation patch for Space Squash.
I’m nowhere near done, but I was wondering if anyone would be interested in having a patch for this game?
Later on I’m thinking of translating Insmouse no Yakata, Virtual Fishing and V-Tetris (is there any Japanese text in this game at all?).
Here’s one screen (the translation is not finalized):
//Feel
Attached to this post is a new update to the English-patched Space Squash ROM. It should already be ready to be loaded to and played on a FlashBoy Plus immediately after download. In this version, all changes from the previous version remain the same, but now the Introduction Story that appears at the start of the main game finally appears in English. My brother also eliminated the “Read Instruction and Precautions Booklet” screen and simply replaced it with a screen that attributes the translation to him and me. He wanted to do this as sort of a way to “add our signature” to the game, and I figure that most people don’t care much about the original screen anyway, so it works. 🙂
My brother has spent many hours trying to figure out how to get the Controls screen appearing before the Practice mode translated and the character names on the VS screens translated as well. Right now, he feels that he will never be able to accomplish this, so if I can’t find another programmer who has the ability to modify these screens with my English translations that I created, this could very well be the last update to this translation patch that will be made. Nevertheless, I do hope to ask around and see if I can find someone to get these screens translated as well, but if any programmer out there already thinks he can do it and would like to do so, please let me know. I’d greatly appreciate it, and I’m sure so would the many people who play the English version of this game.
Attachments:
I always wanted to look into this but never found the time. How exactly are you patching the ROMs right now?
Well, I’ve attached the IPS file that my brother made, which you can look at to see how he did everything that has been done thus far. Technically he updated Feel’s original IPS file, so he basically expanded on it. As far as translating the controls screen and the character names on the VS screen goes, I can only say that it will take a much more advanced technique than what has already been used to alter the Japanese text in the game. My brother would be the better one to explain what all needs to be done, perhaps, to get these two screens altered and also explain the major problems that he has run into. He has been very occupied with other things lately, so I don’t know if or when he might be able to be consulted to explain the main obstacles that must be overcome.
Attachments:
Is the IPS patch above for the v2 release? I prefer to patch my own files and am looking for that IPS patch.
Unfortunately, character space limitations from the original Japanese ROM were not changed in any way, so this often resulted in some information, usually the least important, having to be omitted since the English language takes up more space.
What information, exactly, was omitted? Are you saying you omitted information because your translation is more accurate or are you saying you actually left out text and/or graphics to make room for your translation?
Thanks!
Hey Lester Night,
Yes, the IPS patch above is for the V2 release, so it is the most up-to-date patch that my brother has made.
As for omitted information, if you look at my forum thread containing the translations for Space Squash, in each post containing my translation for the Japanese text on a particular screen within the game, you will see my full translation for all of the Japanese text on that particular screen. However, my brother could not fit all of these full translations into the screens within the game because of character space limitations within the game, which differed for each screen. Often times, if a screen originally contained, let’s say, 65 character spaces for all of the Japanese text, that number was the amount available for the English text that would replace the Japanese text, no more. So let’s say my full translation for a screen contained 85 character spaces, but the area in the ROM for that particular screen only had 65 character spaces available because the original Japanese text took up that amount of space, I had to shorten my full translation by 20 or more characters so that the English text could fit in the ROM and appear on the screen when playing the game. In these instances, I simply omitted certain adjectives or used synonyms for certain words that had less letters in them, in order to try to fit the whole general meaning of the statement in the game. Thus, when I say “omitted information,” I am only referring to my original, full translations that appear on the forum thread. Some of the adjectives and other lesser important words in those full English translations had to be omitted for the English patch due to character space limitations within the ROM itself. Each statement in the game is essentially a more concise statement that has the same general meaning as the full translation.
thanks for the clarification.
have you considered posting at http://www.romhacking.net and asking for help with the project? it seems you need an ASM coder to expand the usable space and change the pointers. they might also be able to help you swap out any graphics that need to be translated, etc.
Interesting. I’ll have to mention that site to my brother. Thanks for this info.
I’ve been away from the site for a while but I figured since my bro posted the patched ROM I’d add my two cents about everything I’ve found out about patching this Rom in case somebody much smarter than myself wants to take a crack at getting the final pieces into place for the translation. Space Squash was a bit of a challenge when compared to SD Gundam for example because of a couple of reasons. 1st It appears to me that this game was probably written in straight ASM by real ASM programmers (unlike myself who am just a hack). They maximized every ounce of space they could and one way the did that was using compression. It was very simple compression but compression non the less. This usually causes for example an entire BGMAP or CHARACTER RAM area to basically be a continuous stream of bytes that you can’t just jump into anywhere. They used a simple compression routine which starts with a bitmask followed by bytes or words(2bytes) depending on the bitmask. So for example a bitmask of C0 (1100 0000) means that for the next bytes you’ll read a word for each 1 and a byte for each 0. So the next string of bytes might look like (00FF)(00FF)(01)(02)(03)(04)(05)(06). I haven’t been working on this in a while but if the bitmask is a 0 then the byte represents the CHARACTER INDEX in CHARACTER RAM. If it is a one then (and here’s were I’m a little fuzzy right now) one byte of the word plus 1 nibble of the next byte tells you how many bytes back from current position to move in memory and the other nibble tells you how many times to loop starting from that byte going forward to copy bytes into the current position with a maximum of 13h (19 decimal) bytes and a minimum of 3 bytes copied at a given time. So using this simple compression 2bytes or 1 word can represent up to 19bytes of any sequence.
2nd The other thing they did commonly was store CHARACTER INDEXES as a single byte and use a constant offset to grab them from RAM. My other issue is that since the area of RAM that stores the offset is hit by like every single loop and function in the entire game I’m having a hard time tracking down the ASM code that is placing the offset into RAM for example to alter the in game character names and use English characters since the English characters are stored at a different offset in CHARACTER RAM. It would be fairly simple to change once the instruction(s) were tracked down but you can’t just put a break or watch on the memory area because every it breaks every couple of instructions. I tried for about an hour to trace through the ASM code to try to find it and didn’t get anywhere. At this point I’m not saying that I’ve completely given up but it’s definitely not at the top of my priority list right now.
To give a quick answer to how I’m patching the roms right now I use 2 tools. A hex editor currently hexcurse (I’m a linux geek) and reality_boy compiled in debug mode. So to find characters (and I’m talking about the 8×8 pixel images used for all “characters” English and Japanese alike) reality boy will show all that information through the visual debugging screens. From there you just need to put breaks on the memory areas for CHARACTER RAM, BGMAPS, WORLDS, and OBJ’s to find out what instruction is writing to it a given point in the game and from there just start editing the rom in hex to change whatever you need. In the case of the most of the dialog on Space Squash it was as simple as replacing the character index for a Japanese character with an English character index. Other spots (where they decided to store character indexes as bytes instead of words) I had to overwrite the data areas that stored the compressed Japanese Characters with the compressed English characters and then I was able to modify the character indexes. The more complicated stuff like the intro story which was an entire compressed BGMAP I just re-wrote from scratch using their compression routine and English character indexes to replace the original BGMAP.
Great job, guys! I noticed that the “m” has a single pixel to the top right, which should not be there.
EDIT: As Ben pointed out to me via email, this malformed “m” is actually in the original English alphabet that was created for the game by Coconuts Japan, but since almost only uppercase English characters are used in the game, this error can’t be spotted by simply playing. A funny little fact I think. 🙂
I looked deeper into the problem with control screen today, meaning I used mednafen and RealityBoy to look into what is going on. So far it seems like it could simply be done by loading a different image for the respective BGMap, quite similar to what I did with the Faceball logo.
I have already created a translated image which I gonna put into the ROM. I wanted to write a little tool to replace BGMaps in Roms anyway, so I gonna take the long route one more time.
The character names on the vs screens seem to be more complicated though.
i love how this community has been revived the past few months. thank you for all of your hard work thunderstruck. i had always dreamed of a day when all of the ROMs were translated. we are well on our way.
Lester Knight wrote:
i love how this community has been revived the past few months. thank you for all of your hard work thunderstruck. i had always dreamed of a day when all of the ROMs were translated. we are well on our way.
Hacking around in the ROMS is more fun then expected and after all of that work that went into doing the translation it would be a shame to not patch the whole ROM.
I looked into how the game handles the character names this evening. Somehow I didn’t run into the problems Greg had so far. I guess I’m using a different approach. I figured out how the game handles the names and where they are stored in the ROM. I can change the names using the characters that are loaded to the memory. Meaning I can change what is written there, but only to other Japanese characters. There are some Latin letters (B D E K L N O Q R X Z) but I will need more to write the correct names there.
The solution to this is simple. I will have to copy some new letters to the memory. Well, but not this evening.
Awesome. I hope you get it. It would be a shame to leave it unfinished. I’m also glad you enjoy it. I thought it was fun as well to hack the roms. I haven’t been able to any VB coding for a couple of months now. I’m hoping to start back up soon but only time will tell.
Best of luck.
thunderstruck wrote:
Hacking around in the ROMS is more fun then expected and after all of that work that went into doing the translation it would be a shame to not patch the whole ROM.
I looked into how the game handles the character names this evening. Somehow I didn’t run into the problems Greg had so far. I guess I’m using a different approach. I figured out how the game handles the names and where they are stored in the ROM. I can change the names using the characters that are loaded to the memory. Meaning I can change what is written there, but only to other Japanese characters. There are some Latin letters (B D E K L N O Q R X Z) but I will need more to write the correct names there.
The solution to this is simple. I will have to copy some new letters to the memory. Well, but not this evening.
Excellent! Sounds like you will have it all figured out soon, then.
I think many people will agree that of the 8 Japan-only games, Space Squash is by far the best and, therefore, deserved a North American/English release the most. It will be great to see that dream realized at last!
Highly Interested. Maybe you can help me expand the character size for Virtual Fishing lol.
Benjamin Stevens wrote:
thunderstruck wrote:
Hacking around in the ROMS is more fun then expected and after all of that work that went into doing the translation it would be a shame to not patch the whole ROM.
I looked into how the game handles the character names this evening. Somehow I didn’t run into the problems Greg had so far. I guess I’m using a different approach. I figured out how the game handles the names and where they are stored in the ROM. I can change the names using the characters that are loaded to the memory. Meaning I can change what is written there, but only to other Japanese characters. There are some Latin letters (B D E K L N O Q R X Z) but I will need more to write the correct names there.
The solution to this is simple. I will have to copy some new letters to the memory. Well, but not this evening.
Excellent! Sounds like you will have it all figured out soon, then.
I think many people will agree that of the 8 Japan-only games, Space Squash is by far the best and, therefore, deserved a North American/English release the most. It will be great to see that dream realized at last!
I played it for the first time (on emulator) to tackle the translation problems and was surprised how much fun it is. Have to check it out on hardware. Unfortunately, my displays started getting glitchy when I did the final testing for Faceball.
Wyndcrosser wrote:
Highly Interested. Maybe you can help me expand the character size for Virtual Fishing lol.
One problem at a time 🙂
But if you have a problem you can’t solve just write a post about. History shows that I will eventually look into it.
OK…. I had a brilliant idea a hour ago and had to try it out. Basically, SpaceSquash uses address offsets to the char memory to write text onto a BGMap (quite similar to libgccvb). The problem was that the character names would always use a Japanese alphabet. However, I noticed that there is a Latin alphabet already in the char memory. For using it I had to modify what is loaded as an alphabet offset which I located at 500118A. So I changed what is stored there for both names which resulted in the use of Latin letters.
I already located the character names at 0x3DD28 and a pointer array to those names at 0x3DD60. So I wrote the new names into a free spot in the ROM and modified the pointer to point there. And that’s already it.
However, there is one problem left. While I can use 7 letters for the player name, there are only 5 letters for the name of the opponent. If you look at the original names you will notice that none of them has more then 5 letters. If I use more then that the name cuts through the image (as in the screenshot).
So… either Ben comes up with shorter names or I will do it like that.
Attachments:
One letter cutting into the picture should probably look okay for all of them, so any names that are 6 or less characters should still be fine. I’m worried about how bad it will look for the character names that are 7 or more characters. Would you be able to show screenshots for what it looks like for BURDLEE and KOMOREE? As for Monki-DK, I think the “DK” is pretty silly sounding anyway, so lets just shorten his name to “MONKI.” Here is the new modified list of translations.
ピートロン = PEATRON
メタBE = METABE
パオZO = PAOZO
ラビーX = RABBIX
バドLEE = BURDLEE
スネィQ = SNAY-Q
コモREE = KOMOREE
モンキDK = MONKI
ライオーN = LYONE
I attached a screenshot. I looks even worse. Honestly I would prefer max. 5 letter names like:
METAB
PAOZO
RABIX
BURLE
SNAYQ
KOMRE
MONKI
LYONE
It is your translation though. I will go with whatever you prefer.
Attachments: