Page 81 of 93

Re: (Incomplete) Telefang English Translation

Posted: Tue Feb 07, 2017 6:23 pm
by Imaynotbehere4long
First: Hooray, something resembling progress! xD

Second: I'm guessing the Telefang+ talk is at least partly because DaVince (who I assume is the only translator currently) doesn't have the time to devote to the translation part of the translation, right? I ask because,
kmeisthax wrote:I'd like to separate these patches out into a "Telefang+" patch that goes on top of the Japanese version, and then have English Telefang based off of Plus.
personally, I would rather have the English patch be finished before "Telefang+" becomes the focus. Based on what you two have been saying, it looks like Telefang+ will only add 3DS and SGB support (and some minor bug fixes), but I don't have a Super Game Boy and I only have one 3DS, and I'd rather not risk hacking it to play GBC games--especially since my Sony Ericsson Xperia Play can run them just fine on GBC.emu free. Of course, everything I just wrote is moot if you can't focus on the translation right now anyway...

Besides, wouldn't it be possible to have a non-Telefang+ English patch be compatible with a non-English Telefang+ patch? If not, does that mean I wouldn't be able to transfer my save game from Telefang minus to plus?

Re: (Incomplete) Telefang English Translation

Posted: Sat Feb 18, 2017 8:09 pm
by kmeisthax
Telefang+ and Telefang/EN are being developed concurrently. It's a project organization thing: some things don't make sense to keep as part of the English patch, so I want them on a separate branch. No additional dev time is going into +, it's stuff that's either already in Telefang/EN or will be added after I finish the primary task of redisassembling everything in the patch.

We aren't making any save format changes between Telefang and +. It's just bugfixes and future patch work. In fact, I'm pretty sure Telefang/EN goes to great lengths to ensure the save format is compatible between it and the original release; the only difference being that your nicknames would be garbled.

The 3DS stuff is mostly a curio for myself, and from what I can find online it's incredibly complicated and Pokemon-specific, so I'm shelving that work until I have time to disassemble the emulator itself.

Anyway... it's getting around that time for a monthly update post, so here goes:

I've been going down the list of the 2k bytes of changes left, since it appears that almost all of the resource changes have been accounted for. The first thing on the list was status screen relocations, so I've been working on disassembling the Status screen. It's nearly complete, I'm currently in the middle of transcribing everything out of IDA and into the git project. Once I merge it into patch it should automatically relocate everything that the patch itself did, assuming I was diligent enough in symbolizing all the static pointers.

I also found a fun bit where the pointer for decompressed graphics is aliased with the pointer for palette fade color maths, I assume someone at Smilesoft screwed up and declared a pointer as 1 byte rather than 2 and got lucky.

Re: (Incomplete) Telefang English Translation

Posted: Mon Feb 20, 2017 12:46 pm
by DaVince
I know I haven't been around much, but I gotta say kmeisthax, you're doing amazing work with the disassembly. xD

Re: (Incomplete) Telefang English Translation

Posted: Sat Mar 04, 2017 8:02 pm
by Kimbles(imported)
Catching up on this thread for the first time in a looong time...

First, thank you Imaynotbehere4long for getting on our case so much. :D It's actually really motivating to see that people still care about the project, and I think regular forum updates are a good idea.

I agree with the plan of making a bugfix/improvements patch seperate for the people playing the Japanese version, and including the fixes in the finished English patch. I'm a bit less keen on the idea of translating the title screen voice clip though... I guess I'm just too attached to it and I'd worry about making the English version sound cheesy/unprofessional.

As for me... The last patch-related stuff I worked on was moving my WIP translations to Google Docs for Davince and I to work on last year, and unfortunately I haven't really gotten around to touching it since then. >_< I would like to get back into the project though, so I'll try taking a closer look at it this weekend... I don't want to make any promises, but if I get anything done I'll be sure to post some updates here. *nod*

Re: (Incomplete) Telefang English Translation

Posted: Sun Mar 19, 2017 7:27 am
by kmeisthax
March update: Everything for the Status screen is disassembled and stored in components/status, so when we go in there to make changes (and we will need to), check there.

The next component are the two phone-shaped menus, called TitleMenu and PauseMenu. In case I picked horrible names, TitleMenu code is called when you press start on the title screen, and PauseMenu is called when you press select on the overworld screen. These are considerably more complex than the denjuu status screen, so they won't be getting as in-depth a disassembly. Just enough that I can make sense of the ~40-odd changed bytes in that part of the ROM. So far I've found a complete renumbering of the phone input modes (for Latin input), the usual set of string relocations, as well as... a complete sprite animation system in use by the menus for putting cursors on things. There are literally over 200 different animations in this one table in C:7AC4, and I don't know exactly how the data structure that it modifies is used to generate actual sprites just yet. For the record, that last bit isn't actually something that was added in the patch. I just think it's a weird system.

I've also started work on documenting Telefang's per-frame state machine. Here's what I have so far - it's not yet ready for the Wiki, so it sits on Dropbox: https://www.dropbox.com/s/0b4ffzugahyk3jb/states.txt?dl=0

For those of you who don't spend multiple days worth of time with telefang.gbc open in IDA, Telefang's gameloop calls into a massive three-level state machine that is responsible for running literally every screen in the game. With the exception of a few states that have separate variables for their jump tables, you can positively identify any screen in the game by looking at C3E0-C3E2. If you want to know what this code actually looks like, there's a disassembly in components/system/state_machine.asm of the top-level state system. Each function in that jump table then indexes another jump table using either C3E1 or it's own variable. Exactly one state is called per frame and it may change states at any time.

A state can do anything really, but usually you'll find that each screen has an "intro" state which fades things in (components/lcdc/fades.asm), then an "idle" state which reads controller input to queue up other states responsible for transitioning the UI, and finally an "exit" state which fades things back out before loading the next screen's intro state. You can actually keep the C3Ex line open in BGB and watch the state transitions occur while, say, the intro or attract screen animation runs.

Re: (Incomplete) Telefang English Translation

Posted: Sat Mar 25, 2017 6:56 pm
by Imaynotbehere4long
I'm curious: would the disassembly of the Pause Menu help fix the issue with text messages being displayed improperly, or do you have other plans for the disassembly? (or is it just for the sake of it being disassembled?)

Re: (Incomplete) Telefang English Translation

Posted: Sun Mar 26, 2017 5:19 am
by kmeisthax
Text messages display improperly because our inserter doesn't account for the different text window width. We would either have to annotate all of the messages with a textbox width, or add a proper auto-newline system. The current plan is to do the latter, which would allow us to remove all of the width handling in the text compiler.

The Pause & Title Menus aren't going to be fully disassembled. I fully disassembled the Status screen because I plan to modify it. For Pause and Title Menus, I'm only disassembling the functions that were actually modified in the patch, as well as any code that those functions call. We don't need to restructure these menus all that much (more than we did in the patch already), so I don't see the point in doing a full disassembly.

Re: (Incomplete) Telefang English Translation

Posted: Sun Mar 26, 2017 4:34 pm
by Kimbles(imported)
I think the main point of the disassembly is to figure out what changes were actually made in the patch, since it's been worked on by multiple authors over the years and we were starting to lose track. ^^; The other part is just documenting how the game handles certain screens so that it will be easier to work on them later. Having the patch be assembled through GitHub means that all of this information will be publicly available, so we won't run the risk of losing track of the changes again, and it will probably make things easier for us when it comes time to recreate the patch for the Speed version. *nod*

My update: I started working on the translations again after my last post and made some good progress, but then I got a job so I haven't had the time to look at it for the last couple weeks. u_u The text for the next chapter (Paparuna Lake) is pretty close to done though. Hopefully I'll be able to keep poking away at it on the weekends at least.

Re: (Incomplete) Telefang English Translation

Posted: Sat Apr 15, 2017 4:23 am
by tymime(imported)
Kimbles wrote:I'm a bit less keen on the idea of translating the title screen voice clip though... I guess I'm just too attached to it and I'd worry about making the English version sound cheesy/unprofessional.
Hey now, I can do something different if need be. You guys don't have to translate the voice, but if you do decide to give it a shot, I can always do a new recording.
Besides, the Japanese voice sounds pretty cheesy already. :p

Re: (Incomplete) Telefang English Translation

Posted: Sat Apr 15, 2017 7:49 am
by kmeisthax
Special IRS Tax Day Update: If You Owe Back Taxes, Call 05#-2*82-#7154 Today!

Pause Menu disassembly is nearly complete; at least in terms of bytes changed... there's a few changes left at the end of Bank 4 to be accounted for, but it appears to be one or two extra function(s). Speed-v110 is still not playable. I may switch focus to MainScript for now, since that's a more critical portion of the hack.

Our difference count has dropped to 2,643 bytes, from 2,760 or so. This is primarily due to finding and incorporating the table which drives all of the Phone IMEs, as well as a bunch of draw calls which were changed to disable VWF. I noticed a number of places in need of immediate improvement - namely, diacritic handling, which still assumes Japanese character encoding. Good news, it's just a replacement table, so we can just change it for umlauts and the like instead of dakuten.

EDIT: I finished up the adjustments to Bank 4 and also imported a single function I forgot earlier into the MainScript component. Speed Version now gets to the overworld and saves, plus our diff count is now 2,334 bytes.