| The following warnings occurred: | |||||||||||||||
Warning [2] Undefined property: MyLanguage::$archive_pages - Line: 2 - File: printthread.php(287) : eval()'d code PHP 8.1.34 (Linux)
|
![]() |
|
Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Printable Version +- Freeplaytech Forum (https://forum.freeplaytech.com) +-- Forum: Neo Geo Pocket (https://forum.freeplaytech.com/forumdisplay.php?fid=1) +--- Forum: Translations (https://forum.freeplaytech.com/forumdisplay.php?fid=7) +--- Thread: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation (/showthread.php?tid=46) |
RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Flavor - 04-10-2019 Loïc, could you post the source of the called function that pops the return and then retrieves some values? I assume it's quite short. Also, what does that first bit of code do before the "jump" to call the "function?" RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Loïc - 04-10-2019 (04-10-2019, 12:30 AM)Flavor Wrote: Loïc, could you post the source of the called function that pops the return and then retrieves some values? I assume it's quite short. Values are set only as example... as an example, jump are handled like that : Code: 0x200180: LD XHL,(0x4006) : E1 06 40 23 | Then we jump to : Code: 0x294CFE: PUSH XIY : 3D | From this point, the call operator push 0x294D11 to the stack. Instead of a RET, the function pop 0x294D11 from the stack and uses it to retrieve other values. Code: 0x20023C: POP XDE : 5A | note : We can reach this function either by a call 0x20023C or a jump 0x20023D Here, I could find all the "CALL 0x20023C" to retrieve every single "A" value to find all XHL possible jump. Up to now, though I'm able to find some text in the ROM, I couldn't find how they are addressed in the code. I found tables in Nigeronpa, but not here... maybe everithing is stored using base address + offset I was lucky with Nigeronpa that was a lot easier to read ! RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Flavor - 04-10-2019 Code: 0x200180: LD XHL,(0x4006) : E1 06 40 23 | That bit seems to use (0x4006) as something of a jump/return address. Even the setup code uses (0x4006) to pull out the address that will be jumped to, then it puts the return address into (0x4006). But, I don't see that being used in the "return" code. Is there other code that reads (0x4006) to know to return to 0x0020018F (which would be the next instruction after the JP at 0x20018D)? RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Loïc - 04-10-2019 They are other part of ram that are used to store procedure/function locations (0x4002 too). my concern is more about that part : Code: Code: 0x20023C: POP XDE : 5A | as we reach 0x20023C by a JUMP embedded in a CALL, so A receive the first byte immediately after the CALL address Code: 0x2XXXX0 : CALL 0x20023C (4 bytes long instruction)I don't know what kind of tool generates such code. 0x002007A1 is some kind of function offset table, accessing a range from 0x00200000 to 0x0020FFFF, giving a maximum number of function of 64 different offset (256/4). On an other level, my disassembly tool was considering unconditioned jump or RET as a function ending. Here, I also have to consider CALL 0x20023C as a function exit. RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Flavor - 04-10-2019 I think you're right. The byte after the operation "CALL 0x20023C" (labeled 'bb' above) will be an index into an array of return locations that the call would return to after executing 0x20023C. Were you saying before that you haven't found the array of strings (the script) in the ROM, yet? RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Loïc - 04-10-2019 (04-10-2019, 06:59 AM)Flavor Wrote: I think you're right. The byte after the operation "CALL 0x20023C" (labeled 'bb' above) will be an index into an array of return locations that the call would return to after executing 0x20023C. Yes, it doesn't seems to have 'direct' link to text (llike Nigeronpa did). I think that I need to find offset table(s), but I still need to find the base address, or to understand to source code... RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Flavor - 04-11-2019 Have you tried a relative search program? https://www.romhacking.net/?page=utilities&category=6&platform=&game=&author=&os=&level=&perpage=20&title=&desc=&utilsearch=Go I've heard about Monkey-Moore before. "Wanna search a Japanese ROM? Monkey-Moore is the way to go." https://www.romhacking.net/utilities/513/ RE: Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation - Flavor - 07-14-2020 Well, how did I miss this until now? https://www.romhacking.net/translations/4888/ and https://www.siliconera.com/neo-geo-pocket-color-title-ogre-battle-gaiden-has-gotten-an-english-fan-translation/ Translation Description: The last Ogre Battle game not in English deserves a translation patch! So far the following has been translated: Character Names, Classes, Attacks, and Stats Item Names & Descriptions Tarot Cards & Descriptions Stage Names Town Names (In the first few stages only) Game Introduction Opening Sequence (Warren’s Questions) Most Menu Items What still needs to be translated: Most of the story text Miscellaneous in-battle text Menu descriptions Note: Because there was quite a need for additional English characters and other graphical hacks, the original Japanese text in the game is now a garble of English letters, numbers, and other symbols. |