Re: (Incomplete) Telefang English Translation

Discuss anything related to hacking ROMs of the Telefang games here.
Goldschuss(imported)
Posts: 5
Joined: Sun Dec 06, 2015 5:42 am

Re: (Incomplete) Telefang English Translation

Post by Goldschuss(imported) »

So I've been reading a bit through this thread and what I can see is, that most of you guys, who translate this game are very busy with a lot of other stuff.

Would it be helpful if you had a professional, who'd work dedicated on the translation?
Of course this guy would need to be payed and all, hence I'd like to sponsor a translation (and I guess other people would do so, too)

Question: Is this even necessary at this point or are you currently all fine with yourself? What would it cost and in which country should we look for one?

Regards
Goldschuss
User avatar
andwhyisit
Site Admin
Posts: 1197
Joined: Fri Dec 14, 2007 9:24 pm

Re: (Incomplete) Telefang English Translation

Post by andwhyisit »

Given that Kimbles has returned to translate the game this isn't really a problem.

If you want more up to date progress on the patch then try the discord channel. We're much more active over there.
kmeisthax
Posts: 128
Joined: Sat Dec 04, 2010 3:20 pm

Re: (Incomplete) Telefang English Translation

Post by kmeisthax »

Alright, it's almost May 15th so I might as well write the next update...

The disassembly changelog has fell from 2,643 to 1,568 unaccounted bytes. The biggest drop in unaccounted bytes, at least according to what I said in Discord at the time, was the discovery of the translated version of the pre-relocation items table. Translating that removed 442 bytes from the list. Keep in mind that translating these old tables is not strictly necessary - once patch disassembly is complete, the first thing I plan to do is erase those tables and ensure all code references the new, relocated ones.

Out of the remaining 633 bytes not corrected through a redundant text extraction, much of it involved jumping from component to component, disassembling whatever was necessary to make the patch work. The majority of those remaining bytes are code changes and advisements, which are frustratingly slow work in terms of bytes changed per hours invested. Even less "worth it" was color palette and metasprite data extraction, which only accounted for about 30 or so changed bytes but several days' worth of resource tool development.

I am currently sitting with my head halfway through all of the Victory component code. "Victory" refers to a game state that is triggered after a battle concludes. It somehow has a fourth-order nested state machine because reasons, and it encompasses a surprising amount of code. Think of how many different things can happen after a battle:

- If you win a battle, EXP has to be distributed
- If a denjuu levels, the stat breakdown UI has to be displayed
- If a denjuu can natural evolve, you have to ask the user if they want to do so, and then the evolution code has to be called
- If you lose a battle, summoned denjuu contact info has to be deleted, which has it's own separate screen, state machine, and UI code
- Even if contacts aren't involved, we still have to halve the FD of the denjuu by your side
- Story battles that are lost trigger the Game Over screen.

And I'm sure about 20 other behaviors that I've yet to discover. This thing probably takes up all of bank $1D on it's own. And a lot of it is very, *very* repetitive UI code, lots of "decompress tilesets, decompress tilemaps, decompress attribmaps, set up metasprite animation, call the increasingly misnamed draw status text function, queue script messages, go to next subsubsubstate to idle on them..." I feel like they could have organized this a little better; perhaps by tying a tilemap to a particular tile set and dynamically allocating tile IDs.

On the other hand... As it turns out, Speed was unplayable mainly due to a missing advice function I had included the pointcut for. Fixing that makes Speed completely playable; though missing a lot of resources and fixes included in the patch. But, nothing crashes or breaks. As that magic difference number decreases, we automatically get more and more patches into Speed. When it hits 0, we'll have a Speed-v110 ready to go. Very few things are actually version-specific, mainly title and attract graphics in need of modification for Speed Version. I also have to finish redrawing the logo on the title screen to not look wonky before I inject it.

Let's do some naive averaging:

- March's update had us around 2760 bytes unaccounted for.
- April's update had us at 2643 bytes unaccounted for.
- May's update brings us to 1568 bytes unaccounted for.

The average delta has us at 596 bytes assimilated per month; though if I discount that one large resource issue, it's more like 279 bytes per month of code. That being said, looking down through the completeness report, I am noticing a lot of things that look less like code and more like resource changes (i.e. images) which are easy to account for. The most pessimistic outlook has us being ready to make dual-version changes in the patch around November; while the more optimistic one has us completing the patch disassembly in August. So it will have been a year and a half of just project reorganization, judging by the first commit date in the repository. However, after that's done, we'll be able to make code changes in a much cleaner fashion, especially given how anal-retentive I am about symbolizing every. last. constant.
DaVince
Posts: 112
Joined: Sat Dec 28, 2013 8:10 am

Re: (Incomplete) Telefang English Translation

Post by DaVince »

Amazing work on this, kmeisthax. Those last 1568 really did end up going really fast. xD
User avatar
Imaynotbehere4long
Posts: 74
Joined: Wed Dec 18, 2013 12:07 pm

Re: (Incomplete) Telefang English Translation

Post by Imaynotbehere4long »

I always thought that making a translation patch for a game only involved translating the text, changing the letter graphics to English, and using a hex editor to reorder the lines of dialogue into something legible. However, after reading all the updates...man, I have much more respect for all of you.
kmeisthax
Posts: 128
Joined: Sat Dec 04, 2010 3:20 pm

Re: (Incomplete) Telefang English Translation

Post by kmeisthax »

I'm currently sitting at an airport terminal with like three hours to burn so I guess I'll write the monthly update early.

Actually, I lied. I'm going to roll a patch instead, and the patch notes will mostly supplant the monthly text updates. It's like those updates except they also come with actual progress! Also, I get to post an actual Speed screenshot onto the wiki homepage now. In the future I plan to move to a monthly rolling-release strategy where we roll a patch once a month, no more no less. In the meantime, here's v111's patch notes cobbled together from the Git changelog:

Patch v111
Rolled by kmeisthax, with contributions from sanqui, andwhyisit, RacieB, and Blaziken257

Speed IPS: https://www.mediafire.com/?m4gzh07m3lvy4r8
Power IPS: https://www.mediafire.com/?edyuuwokwp4rde6
  • Telefang now has a new English title screen present on both Speed and Power versions of the game. It's a slight modification I made to andwhyisit's own mockup from six years ago:

    http://s15.zetaboards.com/Tulunk_Village/single/?p=8213650&t=7012161

    Additionally, the DMG palette of the overhang sprites was altered slightly to stand out less.

    (Original iteration of this title screen mocked up by andwhyisit, further adjustments by kmeisthax. Translated & formatted copyright declaration by RacieB)
  • DMG graphics have been updated across the board to match their CGB equivalents.
  • Text in the SMS bank was force-formatted to 6 tiles wide instead of the usual 16. This has notably resulted in a few regressions, such as outbound calls.
  • A whole bunch of patch leftovers were removed in order to make way for more graphics changes.
  • Text compilation was adjusted to use CSVs. Existing translations were pulled from the wiki and inserted into the patch, so nothing has been lost. Future translations will be sync'd from a Google Sheets document shared with the translation team in an upcoming version of the project.
  • Text compilation now has a slightly adjusted formatting algorithm. Notably, question text had a regression and is incorrectly formatted in certain areas.
  • The multiplayer menu and link error indicator are now translated. (Graphics & tilemaps provided by andwhyisit)
  • Partial automatic RTC-less operation is now present. MBC3 cartridges without an RTC circuit will now correctly recognize this and refrain from corrupting their own save data. MBC5 cartridges currently do not trip this check; however, running Telefang on MBC5 does not corrupt save data either. A future update will modify this check to operate correctly on such hardware so that real-time events may still occur.

    (Original RTC-less patch provided by Blaziken257, modified by kmeisthax for automatic RTC detection.)
  • Some unused advice code was removed to provide additional room in the HOME bank. AuxCodeJmp now properly retains certain registers upon return, allowing better advice flexibility. Additionally, the call flow of this particular pointcutting method was adjusted to make it easier to redirect the return address elsewhere.
  • A number of screens that center text were modified to take font pixel widths into account when aligning text, rather than assuming one character equals one tile. This requires manual pointcuts into a new advice function for every piece of UI that draws centered strings.
  • The Status screen was modified to properly center strings, not draw garbled tiles next to unknown moves, and not cutoff the Denjuu habitat. Due to this, the "Type:" string was redrawn to be a shorter icon so that the type would fit. This may be modified again if we need longer type strings.
  • Advice code was modified to correct issues with certain Denjuu having their nicknames load incorrectly.

    (Bugfix provided by andwhyisit)
  • Centering code used by the Pause Menu contact and call screens were modified to use our new centering advice, correcting their alignment. This has caused a regression in certain screens that expected the old code to remain within a shorter tile width than they were written for.
  • The "corrupted save data" error screen was translated. Furthermore, a Speed specific version of this screen was created, correcting an omission from the original release.

    (Translated Power and redrawn Speed graphics resources provided by andwhyisit.)

There's a few regressions and bugs I still need to stamp out in Telefang, but I'm going to / already have started to take a small break to start analysis and disassembly of Bugsite, which has it's own entire scripting VM, which means I get to design a disassembler, macrolanguage, and assembler for it. Fun fun.
DaVince
Posts: 112
Joined: Sat Dec 28, 2013 8:10 am

Re: (Incomplete) Telefang English Translation

Post by DaVince »

Excellent work! xD
wrote:Text compilation was adjusted to use CSVs. Existing translations were pulled from the wiki and inserted into the patch, so nothing has been lost. Future translations will be sync'd from a Google Sheets document shared with the translation team in an upcoming version of the project.
This one is notable for the fact that it makes future translation that much easier. I've already inserted some of the newer translations that were in our documents but not on the wiki yet (like many Denjuu phone calls), so that's going to appear if this whole system works now.
User avatar
Imaynotbehere4long
Posts: 74
Joined: Wed Dec 18, 2013 12:07 pm

Re: (Incomplete) Telefang English Translation

Post by Imaynotbehere4long »

kmeisthax wrote:I'm going to / already have started to take a small break to start analysis and disassembly of Bugsite, which has it's own entire scripting VM, which means I get to design a disassembler, macrolanguage, and assembler for it. Fun fun.
Whoa, let's try to finish Telefang's translation before we start a bunch of other projects, okay? Please?
User avatar
andwhyisit
Site Admin
Posts: 1197
Joined: Fri Dec 14, 2007 9:24 pm

Re: (Incomplete) Telefang English Translation

Post by andwhyisit »

kmeisthax doesn't know Japanese. Hacking work on Telefang has slowed down. What do you advise he do? The whole point of a bugsite disassembly is to port the existing patch across to both versions. It is hardly a commitment to translating bugsite.
Post Reply