Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - Help Finding 16x16 Font for World Derby GG

Reply to topic
Author Message
  • Joined: 27 Jan 2009
  • Posts: 17
  • Location: Here
Reply with quote
Help Finding 16x16 Font for World Derby GG
Post Posted: Sat Sep 29, 2018 7:00 pm
Long story short, I'm seeking help finding the 16x16 font for World Derby on the Game Gear.

In an effort to dump a script for translation, I already found the 8x8 font, and made a table file based on the order of the font tiles which is accurate for the 8x8 text. However, I cannot determine the text encoding for the script that uses the 16x16 font. The font tiles seem to be compressed, or otherwise obscured in the code.

Anyone willing/able to take a crack at finding that font?

NOTE: I can't post images due to automated behavior prohibiting "new" users from posting "links" despite having been a member for years.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 08 Jul 2001
  • Posts: 8649
  • Location: Paris, France
Reply with quote
Post Posted: Sat Sep 29, 2018 8:08 pm
filler wrote
NOTE: I can't post images due to automated behavior prohibiting "new" users from posting "links" despite having been a member for years.


Unfortunately because of bot postings we had to restrict it, normally on your 4th message it should be ok. Feel free to post two dummy messages here to get it fixed.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14740
  • Location: London
Reply with quote
Post Posted: Sat Sep 29, 2018 8:46 pm
Or attach the images. The 16x16 font seems to be for kanji, which clearly can't be held in VRAM, so it must be loading it on the fly (maybe tile wise so it can recycle components). The encoding must be something fairly complex...
  View user's profile Send private message Visit poster's website
  • Joined: 27 Jan 2009
  • Posts: 17
  • Location: Here
Reply with quote
Post Posted: Sun Sep 30, 2018 2:26 am
I'm not very much use reverse engineering, at least not where knowledge of the ASM/processor is necessary. I'll try attaching some images of the two kinds of text.

Below is my table file for the 16x16 text BASED on the 8x8 font. It's still incomplete. Note: the digits overlap the English alphabet, so I'm pretty sure the English alphabet is not correct, but the hiragana and kanakana are good:

Quote

0080=、
0180=。


0480=?


0780=ー










1280=0
1380=1
1480=2
1580=3
1680=4
1780=5
1880=6
1980=7
1A80=8
1B80=9
=A
=B
=C
=D
1C80=E
1D80=F
1E80=G
1F80=H
2080=I
2180=J
2280=K
2380=L
2480=M
2580=N
2680=O
2780=P
2880=Q
2980=R
2A80=S
2B80=T
2C80=U
2D80=V
2E80=W
2F80=X
3080=Y
3180=Z
3280=ぁ
3380=あ
3480=ぃ
3580=い
3680=ぅ
3780=う
3880=ぇ
3980=え
3A80=ぉ
3B80=お
3C80=か
3D80=が
3E80=き
3F80=ぎ
4080=く
4180=ぐ
4280=け
4380=げ
4480=こ
4580=ご
4680=さ
4780=ざ
4880=し
4980=じ
4A80=す
4B80=ず
4C80=せ
4D80=ぜ
4E80=そ
4F80=ぞ
5080=た
5180=だ
5280=ち
5380=ぢ
5480=っ
5580=つ
5680=づ
5780=て
5880=で
5980=と
5A80=ど
5B80=な
5C80=に
5D80=ぬ
5E80=ね
5F80=の
6080=は
6180=ば
6280=ぱ
6380=ひ
6480=び
6580=ぴ
6680=ふ
6780=ぶ
6880=ぷ
6980=へ
6A80=べ
6B80=ぺ
6C80=ほ
6D80=ぼ
6E80=ぽ
6F80=ま
7080=み
7180=む
7280=め
7380=も
7480=ゃ
7580=や
7680=ゅ
7780=ゆ
7880=ょ
7980=よ
7A80=ら
7B80=り
7C80=る
7D80=れ
7E80=ろ
7F80=わ
8080=を
8180=ん
8280=ァ
8380=ア
8480=ィ
8580=イ
8680=ゥ
8780=ウ
8880=ェ
8980=エ
8A80=ォ
8B80=オ
8C80=カ
8D80=ガ
8E80=キ
8F80=ギ
9080=ク
9180=グ
9280=ケ
9380=ゲ
9480=コ
9580=ゴ
9680=サ
9780=ザ
9880=シ
9980=ジ
9A80=ス
9B80=ズ
9C80=セ
9D80=ゼ
9E80=ソ
9F80=ゾ
A080=タ
A180=ダ
A280=チ
A380=ヂ
A480=ッ
A580=ツ
A680=ヅ
A780=テ
A880=デ
A980=ト
AA80=ド
AB80=ナ
AC80=ニ
AD80=ヌ
AE80=ネ
AF80=ノ
B080=ハ
B180=バ
B280=パ
B380=ヒ
B480=ビ
B580=ピ
B680=フ
B780=ブ
B880=プ
B980=ヘ
BA80=ベ
BB80=ペ
BC80=ホ
BD80=ボ
BE80=ポ
BF80=マ
C080=ミ
C180=ム
C280=メ
C380=モ
C480=ャ
C580=ヤ
C680=ュ
C780=ユ
C880=ョ
C980=ヨ
CA80=ラ
CB80=リ
CC80=ル
CD80=レ
CE80=ロ
CF80=ワ
D080=ヲ
D180=ン

B381=私
CB81=手
F281=場
E982=牧
F082=万
6482=長


World Derby (J).gg.0.png (2.16 KB)
Example of 8x8 font appearing in-game
World Derby (J).gg.0.png
chr000.png (4.16 KB)
8x8 font
chr000.png
Screenshot (82).png (125.23 KB)
16x16 script partially decoded
Screenshot (82).png

  View user's profile Send private message Visit poster's website
  • Joined: 27 Jan 2009
  • Posts: 17
  • Location: Here
Reply with quote
Post Posted: Sun Sep 30, 2018 3:22 am
FYI: Here's what I have for the 8x8 table.
Quote

00=0
01=1
02=2
03=3
04=4
05=5
06=6
07=7
08=8
09=9
0A=A
0B=B
0C=C
0D=D
0E=E
0F=F
10=G
11=H
12=I
13=J
14=K
15=L
16=M
17=N
18=O
19=P
1A=Q
1B=R
1C=S
1D=T
1E=U
1F=V
20=W
21=X
22=Y
23=Z
24=ぁ
25=あ
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=公
DD=営
DE=×
DF=仟
E0=私
E1=手
E2=切
E3=×
E4=売
E5=国
E6=内
E7=外
E8=×
E9=×
EA=×
EB=方
EC=出
ED=走
EE=引
EF=退
F0=×
F1=×
F2=気
F3=入
F4=毛
F5=安
F6=田
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14740
  • Location: London
Reply with quote
Post Posted: Sun Sep 30, 2018 8:15 am
The large font is actually 12x16 to fit more text on screen (and in VRAM) in a 12x5 character window...
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14740
  • Location: London
Reply with quote
Post Posted: Sun Sep 30, 2018 9:33 am
...and the font itself is stored as packed 1bpp data, so it won't show nicely in most tools. The best approach for script dumping will be to hack the data for the intro text box to show all the characters in sequence, but for the actual translation patch it's going to be far better to replace it with a variable width font renderer rather than try to fit into the 12x16 fixed width font.
  View user's profile Send private message Visit poster's website
  • Joined: 27 Jan 2009
  • Posts: 17
  • Location: Here
Reply with quote
Post Posted: Thu Oct 04, 2018 8:57 am
Maxim wrote
...and the font itself is stored as packed 1bpp data, so it won't show nicely in most tools. The best approach for script dumping will be to hack the data for the intro text box to show all the characters in sequence, but for the actual translation patch it's going to be far better to replace it with a variable width font renderer rather than try to fit into the 12x16 fixed width font.


I was hoping to avoid something like this. At this point I've only coded dumpers and not inserters, but I guess I'll code something up someday to handle this.
  View user's profile Send private message Visit poster's website
  • Joined: 27 Jan 2009
  • Posts: 17
  • Location: Here
Reply with quote
Post Posted: Mon Nov 26, 2018 6:34 pm
I'm back. :) Apologies for my previous petulance. I ended up taking your approach of programmatically inserting consecutive values into the ROM for a different game (City Hunter on PCE/TG16) which I was having a similar issue with, and it turned out to be way easier than I was expecting and I was able to dump a proper script.

However, I'm applying the exact same technique to World Derby, and I'm getting frustrating results. Mainly, when I edit even a single byte within some script values that display at the beginning of the game, I get a red screen upon loading. It happens before the SEGA logo even appears. I tried this on both Emukon and Mekaw with the same results.

Is this a result of some kind of checksum comparison happening within the game itself? Has anyone else encountered this before? Seeking advice.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14740
  • Location: London
Reply with quote
Post Posted: Mon Nov 26, 2018 11:18 pm
It does sound like a tamper check. I would need to take a look to understand how it does that.
  View user's profile Send private message Visit poster's website
  • Joined: 27 Jan 2009
  • Posts: 17
  • Location: Here
Reply with quote
Post Posted: Mon Nov 26, 2018 11:44 pm
Would you be willing to take a look at it?

I did some searching for checksum issues when editing ROMs and found some other folks having similar issues, but the tools on RHDN seem to be geared for Genesis and SNES.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14740
  • Location: London
Reply with quote
Post Posted: Tue Nov 27, 2018 9:35 am
Indeed the game has an internal checksum - it sums all bytes in the ROM apart from the first 16KB, and compares the result to the value at offset $000f. To disable this, patch:

ROM[614F] = C9

I added a bit more detail at http://www.smspower.org/Development/WorldDerby-GG .
  View user's profile Send private message Visit poster's website
  • Joined: 27 Jan 2009
  • Posts: 17
  • Location: Here
Reply with quote
Post Posted: Tue Nov 27, 2018 5:56 pm
Thank you so much! Here is the result of our labors. Now to ID a whole bunch of kanji, lol.


03E92E02-D031-44FD-98B4-4B0232D1DEBD.png (19.35 KB)
Attachment fairy
03E92E02-D031-44FD-98B4-4B0232D1DEBD.png

  View user's profile Send private message Visit poster's website
Reply to topic



Back to the top of this page

Back to SMS Power!