设为首页收藏本站官方微博

【汉化任务简报】#30 疾速天龙 字模置换程序

[复制链接]
查看: 2981|回复: 18
打印 上一主题 下一主题

【汉化任务简报】#30 疾速天龙 字模置换程序

跳转到指定楼层
楼主
发表于 2009-6-5 20:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【汉化任务简报】#30 疾速天龙 字模置换程序

疾速天龙是一个可以用scummvm模拟器模拟的游戏
" [3 {* r0 `. T0 e9 K" a" A/ A但是在导入文本的时候,我们发现一些特定的文字无法被导入到文本中。
% j0 z2 z7 k7 L
) _3 d, N3 t! [* ]8 Y我们采用修改字体文件中字形的方法,当我们需要输出文字A的时候,我们在文本中导入的是文字B,但是我们把文字B的样子修改为A。这样我们就能输出A了。% J" @8 v  D6 G2 U8 X
: R! B- v3 B6 B7 A* M# [
字体文件在以下的帖子中,文件名是chinese_gb16x12.rar
! o3 h! Y1 b8 fhttps://www.chinaavg.com/read.php?tid=16790
# X" }! Z  y7 z2 K" h4 ^; x$ y6 w6 n6 s( n; K
字体是16X12,所以每个字模占24个字节。
, B5 f) D$ K; y+ J) I- `& MGB索引代码如下
* ^! m6 ?( p! |( lidx为GB232编码
- q5 P/ u8 `7 @" Ridx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1); / h* L% b/ _% j' Y3 R; E8 @" {' S1 M

0 U& W. H/ h) K7 I另外有一个要转换的文字的文件5 Z3 S/ b8 x7 B" N& b
每行2个字,就是把前一个字的字模样子转换为后一个字的字模样子的意思。3 _3 ^% i* ^+ @8 h0 p& ~7 X
有若干行,循环即可。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2009-6-5 23:53 | 只看该作者
这一句话没看懂:
4 e4 M% ~4 l4 A9 n. |: P# Z8 Q  O! A我们采用修改字体文件中字形的方法,当我们需要输出文字A的时候,我们在文本中导入的是文字B,但是我们把文字B的样子修改为A。这样我们就能输出A了。, C0 h# |; w% G) ?/ K

0 o* h3 ?/ c9 b& P; L能不能举个例子?
& T$ S+ t; R9 D$ V- L4 ]. u
4 P# ?3 i, Z. r" @& L3 G. F还有这个“每行2个字,就是把前一个字的字模样子转换为后一个字的字模样子的意思。”,也请举个例子。
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2009-6-6 11:29 | 只看该作者
你可以先看一下下面这2个帖子.6 N6 V; U* G8 M" i2 N
https://www.chinaavg.com/read.php?tid=16610' U0 X: b; z; P' j" l  ?
https://www.chinaavg.com/read.php?tid=17017
/ Y: r, k, _/ k% K
* i* }( r9 j# P1 P4 H3 {你可以用这个工具先查看一下16X12字库,有个直观的概念。2 m9 m( l% a6 s) h

: C+ J' V: O# s( `" f; w我可以给你举个例子。不过只能用文字描述。
5 J8 U* Z% V: e6 \$ Y  O( v/ o0 p字体文件中每24个字节保存了一个汉字的字模,一个挨一个连续存放。
- s$ U& W2 L6 F' l3 K根据汉字的编码找到该汉字字模的偏移量的公式我写了,是一下这个公式。: h6 I) m1 e3 n/ Y. K( ]2 Z; L
idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1); * @) c, q* n; i7 g/ Q
不放心的话,可以找个汉字,然后找到它的字模的偏移量,然后切出24个字节,再用这个工具看一下。
$ z+ f- A+ X2 `
7 I# Z3 M8 L' V* N' ~' d好,接下去说再解释一下这个任务。
9 }* R0 m! {' D5 s原本16X12里的字模的样子都是没有重复的,现在我们要做一件事,我们要修改一个汉字的字模,比如说是"你"这个字,我们给它做个变脸手术,让它的样子长得和"我"这个字一样,其实就是找到"我"的字模的位置和"你"的字模的位置,把"我"的字模覆盖掉"你"的字模。' V$ v7 y2 P  B

4 H; Z! Y, F! s- l3 [: n我们要求修改好多对"你"和"我",这个就在一个文本文件里定义,怎么定义其实是随便的。
回复 支持 反对

使用道具 举报

sspking 该用户已被删除
地板
发表于 2009-6-6 12:53 | 只看该作者
不会算偏移量啊~  如方说‘新’字,GB码是 C2D07 G: @8 x+ ~. ?6 Y6 h7 T
然后 idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1)0 Q! }# F$ m, |0 o7 T2 |
我用VB ,那么就是a = ((a Mod 256) - &HA1) * 94 + ((a / 256) - &HA1)
& h. q  G$ ?& s# l4 o. Y得到 FFFFAD4E   这肯定是错了~2 ]; ~9 \, ?0 u2 @6 P. [2 V
到底是哪里算错了?
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2009-6-6 13:07 | 只看该作者
算偏移量是比较费脑子的,我记得好像高位低位要换一下。9 a" M+ H4 z9 ~( {( h; T* h# l
等我发现你哪里算错再告诉你。
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2009-6-6 13:43 | 只看该作者
引用第3楼sspking于2009-06-06 12:53发表的  :
, ?6 U: C; {5 }/ c0 H不会算偏移量啊~  如方说‘新’字,GB码是 C2D0
3 F4 \/ R: l5 X- ]  y然后 idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1)
, \% c0 |. X4 S/ x+ i4 N我用VB ,那么就是a = ((a Mod 256) - &HA1) * 94 + ((a / 256) - &HA1)6 H( D) ~- t) r1 J
得到 FFFFAD4E   这肯定是错了~0 j- n& f# j+ I4 R
到底是哪里算错了?
. h2 Z3 ]1 k+ g# g3 f
这个索引是指这个汉字在字库中是第几个,所以你还要考虑每个汉字占用的字节数24,才能正确算出偏移量。
: v/ n4 M' f8 w$ I0 \+ G& s1 I, v2 W# v
放上一个工具,可以看16X16的字库的偏移量,索引的计算方式相同。
0 B' R2 ]& H# h8 P不同的只是一个汉字占用32个字节。2 G! ?0 _' X9 ?, o& y9 G7 a
你可以先学着算16X16的字库的偏移量,然后和这个工具对照。. D  T3 Z4 n$ f9 H& ^5 O2 N  e. A
然后就能算16X12的了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

7#
发表于 2009-6-6 14:31 | 只看该作者
引用第3楼sspking于2009-06-06 12:53发表的  :/ q# x4 I: {. ]& @% {: e
不会算偏移量啊~  如方说‘新’字,GB码是 C2D0; p& k# U1 z$ j. V& m* n
然后 idx = ((idx % 256) - 0xa1)* 94  + ((idx / 256) - 0xa1)6 i( `3 j5 Y4 e: G/ P
我用VB ,那么就是a = ((a Mod 256) - &HA1) * 94 + ((a / 256) - &HA1)6 [5 B  u- A8 R1 I  g. I
得到 FFFFAD4E   这肯定是错了~
3 g/ c1 g. V) q$ a; @* K到底是哪里算错了?
呵呵...补码
回复 支持 反对

使用道具 举报

8#
发表于 2009-6-6 14:32 | 只看该作者
http://promiseforever.com/200904 ... rt-for-chinese.html( q/ g! R* ~; a. A/ @
- k! w$ b& l: W, t
似乎不是很早前就做了么...
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2009-6-6 14:33 | 只看该作者
引用第6楼firendless于2009-06-06 14:31发表的  :
: }2 g! f! Y) |5 a/ ?) T* Z0 `: m1 Y0 O& V8 P6 @! e
呵呵...补码
7 w0 C; M" `! `' i# U- I( d
你说详细一些。应该怎么样算才对。
回复 支持 反对

使用道具 举报

10#
发表于 2009-6-6 14:36 | 只看该作者
考完试翻翻以前写的代码..忘记了...补码似乎是C入门的时候的一个概念...007老大不会不晓得的吧...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表