Welcome!

This is a blog that we will use to post news on our translation of "Ripened Tingle's Balloon Trip of Love". For those who don't know, it is a sequel to Freshly-Picked Tingle's Rosy Rupeeland. Rupeeland was released in English, but Balloon Trip of Love wasn't.

*Please note all images/videos shown of the translation are not final and may be changed in the final patch.

This is an unofficial fan project. We are in no way affiliated with Nintendo or Vanpool, and are doing this completely for free.

Sunday, August 21, 2016

Historical Documents

Hello everbody, today we have something a little different. Instead of writing about the translation project directly, we'll look at something from Tingle's Love Balloon Trip's publishing history.

A couple of days ago, joesteve pointed me to a website with a couple of interviews and other articles by and about Vanpool, the company that made the game. It's styled in a "classroom" theme and I thought it was really neat. Especially the first page, which is done in the style of a board game of sorts and reveals details about the events at Vanpool between the release of Tingle's Rosy Rupeeland and Tingle's Love Balloon Trip.

I liked it so much that I made a rough translation that I'd like to present without further ado.

Update: View the image in full resolution!

Enjoy!



Wednesday, August 10, 2016

Screenshot time!

They say a picture is worth a thousand words, right? So instead of making another wordy post, I'll let these pictures do the talking :)


Alright, even though it's only two, they represent something much bigger - the green verb boxes are done!
Yep, the nearly 50 boxes, which is pretty much the largest category of graphics in the game, is finished thanks to the work of zell0s!

Sunday, July 31, 2016

It's been 4 years already?!

Yep, that's right! It's been four years since the Tingle's Balloon Trip translation project began! I'd like to take a little time to put things in perspective and explain what happened over those 4 years, and then I'll deliver that progress update that I promised in my last post.
I started working on this on July 31st, 2012. At that time it was all about laying the technical groundwork for the translation. Around January 2013, yellow (known as ytdash here) joined me and we made a lot of progress with the graphics and text. 

This went on for about a year, with no actual translation being done, save for the intro and title screen. However, due to severe technical limitations, the text had to be condensed and the title couldn't be inserted into the game. (Some may recall this from the video posted a few years ago by ytdash).
This changed in February 2014, when DarthNemesis, a member of GBAtemp, coded us a text editor for the game. This program made editing the text as simple as editing a .txt file. Shortly after DaVince joined and translated the first page of the game. 

Progress was slow over the next few months, as both me and DaVince were busy frequently and couldn't work on the translation as often. This changed later that year in August, when waldrumpus joined. Having written a walkthrough for the game before, waldrumpus was very familiar with the game and quickly began to make progress in the script. 

Throughout 2015, I was able to figure out the games graphics system, and could now edit ingame graphics. So, me and ytdash began to work on translating the graphical text in the game. 

Finally, in July 2016, zell0s joined us as a graphics editor, helping to speed up the progress on that side even more.


So that's it, it's certainly been a while. But how much longer will it be?
I'm happy to announce that the patch is projected to be released within the next year! The script is nearing completion, and the graphics should be done in the next few months. Then there's just proofreading and beta testing, (which may or may not be public, we haven't decided). 

That's just an estimate though, please don't be disappointed if it takes a little longer ;)

Until next time!

Thursday, July 14, 2016

Hacking/Programming Writeup Part 3 - Text/Script Editing

If it already hasn't become apparent, I'm writing these in whatever free time I have, so it's been a little inconsistent :)

Anyways, welcome to

The Tingle's Balloon Trip of Love
Hacking Writeup (Pt. 3)

So now we get into more specific stuff - text editing! This is arguably the most important part of any translation (most at least), since the majority of the text is usually displayed with a script engine. As I mentioned before, the script for the game is located in data/db/lang.bin. 
In a very broad sense, this file is divided into two parts - line lengths/pointers and the actual text. 
The actual text is very simple to edit. The game uses a 16 bit (2 byte) character encoding. That means that in a hex editor, two bytes equal a character rather than one. 
The more complex part of this comes with the other part of the file, the line lengths. Basically every line in the game has its length defined by a value in the beginning of lang.bin. Now this presents an interesting question that I don't fully have an answer to.
(Warning - technical stuff that only some may understand lies ahead ;) )
The game doesn't use any kind of pointer system for the text, it just has the values that specify the length of each line in the same order the lines appear in lang.bin. So how does it know where each line starts, in order to display it ingame? I don't know, at least not for sure. However, the most logical assumption would be that the game somehow knows the order of the lines and bases it off of that (this is most likely in the olz files). This is further supported by the fact that the game only displays the text correctly when it's in the exact order as it was before being edited.
(Technical stuff over)
So how do we edit the text? Sounds tedious right? Well, luckily we have a nice text extracter and inserter from DarthNemesis that exports the script to a .txt, and then imports the edited .txt back into lang.bin!
The final thing that I want to briefly touch on in this post is the font. Now, this is kind've getting into graphics territory, which is out of the scope of this post, but the game stores all of its font files in the resLibFnt archive. The game has 10 variable width fonts that includes Japanese hiragana and katakana, the Latin alphabet with accented and other special characters, punctuation, as well as many other symbols. Anyways I'll leave the rest of that stuff for the graphics post :)

As always, feel free to post any questions, comments, or concerns you may have!

(On another note, the next post will also contain an update on the status on the project, since actual progress hasn't been discussed since I've started this series of posts :D)

Monday, June 20, 2016

Hacking/Programming Writeup Part 2 - Basic structure of the ROM and what each file does

Update - added tools section


Well it's been a while. I was planning on doing this sooner, but one thing led to another and I had to take a break from the project for a while. Don't worry though, I'm back and working again :D.
I'm going to try to format these posts in a way that's easiest to understand for you guys, but I'm not the greatest at that stuff. Please comment and let me know if you like it or if you don't. Don't worry you won't hurt my feelings if you don't! It would be helpful though if you could suggest a way for me to improve it though.
Alright, without further ado...

The Tingle's Balloon Trip of Love
Hacking Writeup (Pt. 2)




Here's the 'root' of the ROM -


Basically that's what is located in the highest directory in the ROM, right when you unpack it. Most of those files are not relevant to the translation; many are included in every DS game, and simply provide the system with info needed to run the game. What is relevant is the banner.bin file and the 'data' folder. The banner.bin contains the icon for the game displayed on the DS menu, as well as the title displayed there. Obviously the title is in Japanese, so I have to edit that into English. 
Then there is a special check that the game performs to make sure the banner is valid called a CRC check. Luckily there are tools that automatically fix the CRC so I don't have to worry about that :) !


Now for the data folder -

I'm not going to show the contents of every folder here since I don't want to flood this post with screenshots. Plus the top 2 have a LOT of files, so it'd be a lot to put up. Anyways I'm just going to separate each folder into a section and describe its content(s). 

act
This isn't exactly relevant to the translation, but I'll briefly explain it here. This folder contains 364 ".olz" files. These files are simply LZ77 compressed archives (think zip files, but a little different) that contain a single ELF executable file. The reason there is so many is because there's one for each 'screen' in the game (pretty much every time the screen fades, it loads another olz file). These files call the graphics, text, music, and anything else needed for that specific scene. They're also a completely custom format. I really have no idea exactly how they work, only what they're purpose is. 
Well, 'briefly'. oops.

data
Skipping anm because I can. Just kidding :p. Once again, this folder isn't relevant to our work here. It contains 3 .sdat files, a common standard sound/music format for the NDS. Basically includes all the music and sounds in the game, and is easily extractable with a program. 
That's all there is to it.

anm
This is where we get into the important stuff (at least to us). This folder contains every graphic in the game. This includes 3D models/animations, 2D graphics, cutscenes, backgrounds, sprites, fonts, etc. It totals 119 files, with three different types. 
One is a huge archive that contains the actual graphic files, including the tiles, palettes, and tilemaps. I'll be getting into each of those files later on in this series of posts. 
Then there is .viw files. These each correspond to an archive, and contain a list of each file in the archive. (fun fact - the star/twinkle animation that plays at some point, maybe when Tingle uses the balloon, is title "star_wars" in the viw file :D) 
Finally, we have the .inf files. Like the viw files, every archive file has a corresponding inf file. These files list the sizes of each file in the archive. This can be useful sometimes when I can't figure out when a file ends or starts. 

db
The other relevant folder, and probably the most important in terms of translation. I bet you guessed it, this contains the file that contains the game's script, lang.bin. It has around 13,000 lines when the script is extracted. This file has a lot of debug/unused text. Sometimes it even gets in the way during the translation when there's alternate versions of a conversation :) . It also contains the lengths of each line in the game (it doesn't use a standard pointer system - more on that in a later post). The way this is formatted makes it very hard and tedious to edit by hand - luckily we have a program that inserts the script for us from DarthNemesis!

revision (?)
I honestly have no clue. It contains 4 bytes - 
B7 74 00 00



Well that's all I have to say for now. Please comment, and as always stay tuned for more updates!

Tools used/mentioned
*Note that I, nor anyone on this website, is responsible for any possible damage or unintended consequences that may result from the use of these programs. Additionally, none of us were/are involved in the production of these tools, and they belong to their respectful owners.
Also, the tools are for Windows (probably XP or newer). Mac and Linux users will need to find a way to run Windows applications (such as wine) or use a virtual machine.
dsbuff (extract/unpack ROM)
SDAT Extractor (extracts music or other sound files from Nintendo's .sdat file format)

Saturday, April 23, 2016

Hacking/Programming Writeup Part 1 - Introduction

Some people have been asking for something like this for a while, but after reading some recent comments on the blog, I decided it was about time for something like this.

The Tingle's Balloon Trip of Love
Hacking Writeup

For those of you who came in late, I'm the lead (read: only) hacker for the translation project. Within the next few weeks I plan to write a series of posts that describe my part of the project, what I have accomplished, and what I'm still working on. 
I'm going to try to make it as easy to read as possible, but basic knowledge of the hexadecimal (base 16) system will help (If what I just said sounds like another language, don't worry). 

These posts are basically going to cover a few general categories - 

File structure of the ROM
Text editing
Graphics editing

Each of these is probably going to be a few posts long, depending on how long it takes me to explain.

If you have anything specific you want me to address or have any questions, please ask in the comments!

Saturday, April 16, 2016

Quick status refresher

Hi everyone!

I know it's been a while since the last update. When I'm working on a something like this translation, I want to keep people posted about the progess, and let them know the project is alive and well. The thing is, I never know what to write about.

We're making slow but steady progress and there is no doubt in my mind that the project is going to be completed. But as far as the progress is concerned, there's rarely anything newsworthy. Translated a couple of lines again, fixed some spelling errors or formatting issues, rewrote a passage. All in a day's work :D

Right now, out of the over 13000 "lines" of text, we have translated 53% into English. I think this will be the last time I give a concrete number - until the final "Done! 100%!", that is.

The reason for that is that there's so much more work to do than translate the script line-by-line. Rewriting, play testing, bug fixing all demand a lot of time. And I haven't even mentioned the graphics editing and additional programming. I don't want anyone to be disappointed when the progress percentage slows down at some point, so I'll leave out the numbers from now on.

Instead I'll set - for now - a bi-weekly blog update schedule to let everyone know what's going on. This might mean boring stuff like this post, so be warned ;D

If you have any suggestions for topics you'd like to hear about, or questions you'd like to ask, feel free to write about it in the comments.

See y'all real soon!

Saturday, December 12, 2015

This'll all be in the quiz, so pay attention!

Hello everyone!

This is just a quick post to let you fairy fans and tights aficionados know what we've been up to recently.
The translation project is making slow but steady progress. 43% of the total script have been translated into English, people are working on localizing the graphics — buttons, signs, title cards, etc. —, and Kakashi is living in my mattress. Let's hope only two of those things are true!

Now that you're up to speed as far as the progress is concerned, I thought I'd mention a thing I learned about translating video games recently.

When you casually think about how to translate a game, you might think it's pretty simple. Just a matter of going through the script and converting it to English line-by-line. In reality, it's one heck of a lot more complicated.

As an example, the other day I translated a quiz game within Tingle's Balloon Trip of Love. Tingle has to answer several questions correctly to get someone to do something for him (spoiler averted... for now!). These questions are about people, things, and places in the game. For example, one question asks what text is written on a sign on the wall in another room. To translate the answer to that specific question, insert the English version of the text on the sign. Simple enough, right?

But what if you — or another translator on the team — later decide to tweak the translation of the text written on the sign? If they forget that the text on that sign is the subject of a quiz question somewhere else in the game, the player will be in deep trouble later on. Since the text on the sign and the answer the game expects from the player (i.e., the pre-tweaked sign text) no longer match, giving the correct answer to the quiz question has become impossible! Thus, translators constantly have to check cross-connections like this to make sure the translation is consistent.

This is just one example of the things you have to keep an eye on to do this right. But it's all going to be worth it in the end, right?

...

... right?

Friday, August 21, 2015

Title screen

As you can tell from waldrumpus's last few posts, the text side of the translation is going well. The graphics are also going well, and I thought I'd share one in particular -


Thanks to FShadow, we now have a translated title screen!

Monday, August 10, 2015

A very personal milestone

Hello everyone, this is waldrumpus!

Today, I'd like to report the progress made on the localization of Tingle's Love Balloon Trip in the last few months. This announcement is pretty emotional for me, so you maybe want to get out those handkerchiefs, you know, just in case.

When I joined this project in August 2014, I started playing the game from the beginning. The goal was to try and localize everything I encounter on a straight path through the game. After that one quick playthrough, get to the rest of the material.

Well, it turned out that this "quick playthrough" took a lot longer than expected. Working on the project mostly on the weekends, progress was very - sometimes dishearteningly - slow. On the other hand, this way of doing things had some benefits, as seeing the lines in the context of the game makes them so much easier to understand than just freely floating in a text file. On top of that, although it was slow going, playing through the game in a linear fashion provided a way of measuring how far I'd come, and eventually a light-at-the-end-of-the-tunnel effect.

I could use some of that


Today I'm pleased to announce that the playthrough has been completed, almost exactly one year after it's been started. This is a huge motivational boost for me, and I vow to redouble my efforts to get this game localized! (disclaimer: efforts may or may not be redoubled. actual results may vary)

Steady progress has been made throughout this time, and we're now at an estimated 35% completion of the entire game script (woot). Furthermore, some of the other team members are working on localizing the graphics that need it, such as signs, buttons, the title screen, etc.

Thanks for sticking with me through this rather lengthy post; but as I said, it's packed with emotion, and I hope to have transferred some of the optimism I'm feeling today to you.

See you next update, be safe and be awesome!

Sunday, February 1, 2015

No quarter!? Yes quarter!!

A quick post for a bit of celebration: We've hit the 25% mark of completing translation of the game's script!

Disclaimer: This is according to an evaluation that counts the lines of the script that have no Japanese characters in them, so it's just an estimation.

I think the actual progress might even be a bit more, since part of the script is unused text, and some lines are halfway translated. But 25% is a nice milestone, so let's all have a glass of reasonably-priced domestic champagne!

Saturday, December 27, 2014

Introduction and Progress Report

Hello everyone! This is my first post on this blog, so just a quick introduction. I'm waldrumpus, and I'm very happy I could join this project as a translator. Since this is my first time doing a fan translation, I didn't know my way around at first, but with the cool people working on this project, I found my feet in no time. Thanks, guys!

Tingle's Love Ballon Trip -- also known as Ripened Tingle's Balloon Trip of Love, as well as several other names -- is a game that holds a special place in my heart. My original reason for learning Japanese was to be able to play games that were never released in the west, and this is the very first one I ever played. If you have played the first game of the Tingle series (Tingle's Rosy Rupee Land), you know what a weird and unique world Tingle's adventures take place in, and the kind of quirky characters you are bound to meet there. Even if not, you probably know that map-vending, balloon-traveling, fairy-obsessed middle-aged guy in green tights, Tingle. It's absolutely worth the effort to localize this charming game so that a wider audience can enjoy its weirdness.

As for the progress of the localization project, I tried to generate some numbers to make it visible. The complete game script -- the text you'll see in the game, minus things like background images with text on them -- is 13,043 lines. As of 2014-12-26, the progress is 2,804 lines, which amounts to 21%. This as yet small chart shows the recorded progress so far. Here is the spreadsheet with the data.

Tingle's Love Balloon Trip Localization Progress


21% is a sizable chunk of the whole thing, but we still have a ways to go. If you're interested in participating in this ongoing effort, contact one of the members of this blog.

Sunday, November 23, 2014

Just a little update

I'm just making this update to let you guys we are still here ;) I just realized that the blog hasn't been updated since July 31 (!)

First off, I'd like to introduce waldrumpus, our new translator. He's actually been with us for a few months now, and he's already done so much.

Anyways, we're making steady progress. Keep checking the blog, I'll try to be more active here from now on :D

Oh, and also the patch from this post has been fixed. Make sure you download the version of xdelta that's in that post.

Thursday, July 31, 2014

Font issue fixed!

Thanks to Normmatt from GBAtemp, the font issue has been fixed! Finally every word that has an l or i in it doesn't look like 2 words :)

Monday, July 28, 2014

Palette problem fixed

Wohoo!!! I finally got the colors working!
(Of course it's not final, the messed up 1 is my fault) Now the only problem left is the font, but that'll likely require asm. I can probably get someone to help with that after everything else is done. Anyways, it should be smooth sailing from here! Even though I still have to sort through 200 graphics

Wednesday, July 2, 2014

Good news

Hey guys, I'm sorry that I haven't posted in a while.
Today I have some good news with the graphics. I've figured out an efficient way to extract the graphic files from the archives and view them. When I try to put them in the game I still have some minor glitches, but I should be able to fix them soon.

Also, our translator DaVince could still use help. Even if you could just translate one chapter that would be great! If you can't translate, you can still help by spreading the word!

Lastly, their seems to be an Italian translation of this game starting. Here's the forum thread for it- http://www.gbarl.it/index.php?showtopic=95792

Tuesday, April 1, 2014

Complete translation patch!!!!! (okay not really)

Yeah, this was an April Fools' joke (although it looks like no one got to download it April 1st because the patch wasn't working :) )
It has up to the beginning of page 2 translated (text only) with a little message I put in it for April Fools' Day.
Original Post-
Thanks to some people at GBATemp, we have a complete translation of the text!!!! It has been inserted and is ready to be played.  Thanks to everyone who helped make this happen!!! (But as you know from my post yesterday, the graphics are still a problem, so their obviously not translated)
Edit: 7/1/14 Use xDelta UI 
http://filetrip.net/nds-downloads/utilities/download-xdeltaui-mod-1-0-f17554.html

Patch
https://www.dropbox.com/s/7umbxe4eriprwyy/tlbttranslation%20v%200.01.xdelta?dl=0

Sunday, March 30, 2014

Update on graphics

I have some bad news on the graphics.

So if you've been in the Help Section, you can see that the graphics are stored in "custom archives". This means that they are not stored in a normal way. So to edit them I have to extract them manually by figuring out where each file starts and ends. 
Well, after I extract them I need to decompress them (think zip files- they need to be decompressed to view their contents). So after I decompress them I can finally see the graphic. After I edit it into English, I need to compress it again so it fits in the archive. Except the problem is that when you recompress something, it changes the compression ratio, which basically means it makes the file bigger by a few bytes. That may not seem like much, but the archive only has room for a file the exact same size as the original. (And there's no free space in the archives so repointing is not an option)

So to fix this I guess I have to make the resLib archives bigger, which I don't know how to do. But unlike the font problem, this is a major problem and if I can't fix it we won't be able to make a full translation patch. 
If you have any way to fix this, please let us know!

Wednesday, March 12, 2014

Font problem

Edit - This is no longer an issue. See here for more - 
http://tingletranslation.blogspot.com/2014/07/font-issue-fixed.html


I don't know if anyone has noticed, but in some of the screenshots of the translation the l's and i's have a small space after them. I opened up the font to see what was wrong with the 2 letters, and I saw that they were both one pixel off. So I moved them over one pixel and inserted it into the game.
You'll notice in the screenshot below (the 'l' in Bulky) that it did move the letters, but it moved it 2 pixels to the right instead of one.
Does anyone have any idea how to fix this? I really don't have time to figure this out because it's such a minor thing and other things require my attention, but it'd be great if someone had a fix for this.

Monday, March 10, 2014

Progress with graphics!

Hey guys,
As I'm sure you all know, our translator DaVince has been working on the text. Thanks to the awesome text inserter from DarthNemesis, the translation has been moving along smoothly.
Since the only thing I really do on the text side is insert the translated script with the text inserter (which is only a matter of clicking 2 buttons), I've been trying to figure out the graphics. I've managed to extract the graphics and edit them but when I reinsert them this happens:


At least we're close!