Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Ogre Battle Gaiden (Densetsu no Ogre Battle) Translation
#1
At one point, for part of a day, I considered working on a translation for the NGPC Ogre Battle Gaiden game. Nothing came of it, but I did find some interesting information about the game.

The game is probably unplayable unless you can read Japanese. However, there are some online resources for helping non-Japanese speakers play the game. If someone wanted to translate the ROM, these resources could prove very useful.

There is some good basic background information here.
http://owb.cool.ne.jp/english/obg.htm

There is a wealth of translated dialogue and other great resources here.
http://owb.cool.ne.jp/english/obgsp/kenichi.htm

[Image: Ogre_Battle_-_Legend_of_the_Zenobia_Prince_Coverart.png]
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#2
Is it just that there's too much text to dump? Or that it's not easy to dump? If the script can be extracted, i have a friend that might be interested in doing a translation...
Reply
#3
Hey jrronimo! Welcome!

I haven't really looked into dumping the text. I never got that far. It was more like I looked at the game and some resources about it, but then I realized I had way too many other things to do.

Dumping a game script is definitely not trivial. Then, working with a translator can also be time consuming (although it can be fun/interesting). I think it's something well worth doing, but I don't think I can commit to working on it. I might be able to offer some expertise/support if someone else wanted to take it on.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#4
I've done quite a bit of work to figure out how to hack the Ogre Battle Gaiden rom.

To that end, I've attached the table file.

In terms of dumping the text, it first occurs at 64B1D, and seems to go to 73320. Certain parts of the script (such as the Tarot selection) occur elsewhere (namely, starting at 995C8).

The complete script can also be found here: http://www.carbuncle.jp/og5g/index.html

In terms of graphics editing, I've had success with Tile Layer Pro v 1.1.

However, I'm having a difficult time figuring out how the pointers work in NGPC roms, so that I'm not stuck with working with fixed-length text fields. Can you provide any advice, given your experience?


In case the attachment doesn't work:
00=\n
02=0
03=1
04=2
05=3
06=4
07=5
08=6
09=7
0A=8
0B=9
0C=A
0D=B
0E=C
0F=D
10=E
11=F
12=G
13=H
14=I
15=J
16=K
17=L
18=M
19=N
1A=O
1B=P
1C=Q
1D=R
1E=S
1F=T
20=U
21=V
22=W
23=X
24=Y
25=Z
26=あ
27=い
28=う
29=え
2A=お
2B=か
2C=き
2D=く
2E=け
2F=こ
30=さ
31=し
32=す
33=せ
34=そ
35=た
36=ち
37=つ
38=て
39=と
3A=な
3B=に
3C=ぬ
3D=ね
3E=の
3F=は
40=ひ
41=ふ
42=へ
43=ほ
44=ま
45=み
46=む
47=め
48=も
49=や
4A=ゆ
4B=よ
4C=ら
4D=り
4E=る
4F=れ
50=ろ
51=わ
52=を
53=ん
54=が
55=ぎ
56=ぐ
57=げ
58=ご
59=ざ
5A=じ
5B=ず
5C=ぜ
5D=ぞ
5E=だ
5F=ぢ
60=づ
61=で
62=ど
63=ば
64=び
65=ぶ
66=べ
67=ぼ
68=ぱ
69=ぴ
6A=ぷ
6B=ぺ
6C=ぽ
6D=ぁ
6E=ぃ
6F=ぅ
70=ぇ
71=ぉ
72=ゃ
73=ゅ
74=ょ
75=っ
76=ア
77=イ
78=ウ
79=エ
7A=オ
7B=カ
7C=キ
7D=ク
7E=ケ
7F=コ
80=サ
81=シ
82=ス
83=セ
84=ソ
85=タ
86=チ
87=ツ
88=テ
89=ト
8A=ナ
8B=ニ
8C=ヌ
8D=ネ
8E=ノ
8F=ハ
90=ヒ
91=フ
92=ヘ
93=ホ
94=マ
95=ミ
96=ム
97=メ
98=モ
99=ヤ
9A=ユ
9B=ヨ
9C=ラ
9D=リ
9E=ル
9F=レ
A0=ロ
A1=ワ
A2=ヲ
A3=ン
A4=ガ
A5=ギ
A6=グ
A7=ゲ
A8=ゴ
A9=ザ
AA=ジ
AB=ズ
AC=ゼ
AD=ゾ
AE=ダ
AF=ヂ
B0=ヅ
B1=デ
B2=ド
B3=バ
B4=ビ
B5=ブ
B6=ベ
B7=ボ
B8=パ
B9=ピ
BA=プ
BB=ペ
BC=ポ
BD=ァ
BE=ィ
BF=ゥ
C0=ェ
C1=ォ
C2=ャ
C3=ュ
C4=ョ
C5=ッ
C6=《
C7=》
C8=?
C9=!
CA=ヽ
CB=。
CC=ヴ
CD=.
CE=,
CF=・
D0=‥
D1=/
D2=+
D3=ー
D4==
D5=:
D6=%
D7=&
D8=〈
D9=〉
DA=…
DB=◎
DC= 

Reply
#5
Hey ThornMartin! This is great news. I'd be happy to help you out with tips/ideas if I can.

This is an excellent start, though.

What I would do is to look for the pointer table by searching the ROM for a pointer to the strings. You mentioned that the text starts at "64B1D". Well, to the NGPC, this would actually be 0x264B1D, because the low 16mbit ROM chip is mapped from 0x200000 to 0x3FFFFF.

When I worked on CFC2, we built tools for it. However, there are string editing and pointer manipulation tools out there. You might want to look into those, because it might be an easier way to start.

But, to search for this first string pointer, you'll have to keep in mind that the NGPC is little-endian. If you're using a regular hex editor, you'll want to search for 1D4B26 (or 1D4B2600).

When you find the string pointers, it will look probably like a whole series of similar values. Let me know what you find and we'll see if we can go from there.

Awesome project! Thanks!
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#6
Thanks for the quick reply. I didn't even think to take into account that the ROM area starts at 0x200000. I mistyped the start of text above -- it's actually at 0x63B0D. Following your advice, I seem to have found the pointer table at 0x261E7. There's several pointers in there; each of their addresses appear to point to the start of the next stage (Stage 01's pointer is at 0x261E7, Stage 02's pointer is at 0x261FB, Stage 03's pointer is at 0x2620B, etc.).

I also found that the pointer for the tarot selection is located at 0x94DDE.

It appears as though you changed the initial PC in the header (0x1C - 0x1E) from 0x200040 to 0x25E194. I take that to mean you did some ASM editing. What tools did you use (in particular, which disassembler/assembler)? What was the extent of the modifications done in ASM?
Reply
#7
(08-06-2012, 02:09 PM)ThornMartin Wrote: It appears as though you changed the initial PC in the header (0x1C - 0x1E) from 0x200040 to 0x25E194. I take that to mean you did some ASM editing. What tools did you use (in particular, which disassembler/assembler)? What was the extent of the modifications done in ASM?

We put an intro on to the start of the game. I thought it'd be fun to have an old-school style intro on there, so Thor coded it up. Essentially it just plays the intro and when the user exits, it jumps to the location it would have started at, 0x200040.

I think that was coded with the old NGPC dev kit. You can find a nicely packaged version at http://sebastianmihai.com/main.php?t=63&
The problem is that it won't run in Vista/Win7, so you may need an XP virtual machine.

If you code in just ASM, I think you can use this one (or some variant).
http://john.ccac.rwth-aachen.de:8000/as/

This is not necessary for the ROM translation effort, though Judge did some work hacking ASM to display the variable-width font. The English words will often take more screen space than their Japanese symbol counterparts. To help with this, you can make letters like "l" take up less than the full tile width.

Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#8
(08-07-2012, 06:17 AM)Flavor Wrote: Judge did some work hacking ASM to display the variable-width font. The English words will often take more screen space than their Japanese symbol counterparts. To help with this, you can make letters like "l" take up less than the full tile width.

I saw that modification to the fonts when I compared a pre-patched CFC2 with a post-patched CFC2 with TileLayerPro. Do you have any docs on how that particular ASM modification was done?

In particular, what tricks were used to locate the existing font output code?

Rather than feed CFC2 through a disassembler, do you have the source for that ASM? I realize it will probably be game-specific, but it would definitely help to understand how it was done for CFC2.

My assumption is that it would be something along the lines of this hack, but obviously modified for the TLCS900H's ASM.
Reply
#9
Hmm, I don't know where the info about that var width font mod would be. I know that Judge_ wrote it. I think that maybe I did a bit with it, but I don't really recall what.

I'll try to email him to see if he'd have any info to offer. It was a long time ago, though. He may not really recall.

The idea of how the hack works should be the same across similar tile-based platforms (GB, NES, etc.). Of course the ASM will be different, as you mentioned.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#10
Judge just sent me a dump of his text routines. To me, this looks like it was dumped from a disassembler. I don't know if he hand edited them or what. Maybe we'll get some clarification on that from him.

http://www.freeplaytech.com/wp-content/u...es-New.txt

Oh, and I should add that I do know some about how the variable-width font output works. You've seen the letter tiles in Tile Layer Pro. With Judge's routines, there's also a table that accompanies this. The table lists the width of each font tile. So, like the letter 'l' might have a 3 (or whatever) for its width while a "w' might have a much higher number. The routine uses this table to look up each tile's width and then move over that number of pixels before placing the next letter.

In my C code that inserts text into the ROM, I made the code to produce this table. It looks at the tile and detects the right-most edge of a letter (and then adds 1 for spacing or something not 100% sure). This table is inserted with the text, but there's another purpose for this. My C code would also try to estimate the width of entire lines of text and spit out a warning if it found one that may be too wide to fit on the screen.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)