Internet Pirate Guild

2007-09-15

NeoGeo

NEOGEO 的遊戲的話,簡單的說p rom 是遊戲的程序 rom,c rom 是遊戲的圖形 rom,v rom 是遊戲的聲音 rom,s rom 是遊戲中前景的一些小圖片比如血槽等。從 KOF99 開始後期的 C、V 有加密,並且主板上沒有 s rom 了,而是把 s rom 放到了 c rom 裡從而達到加密的效果。當然解密出來以後就成了一套解密的 C + S。
運行的時候,遊戲根據 p rom 裡的程序提取 c rom 裡的數據顯示在畫面上。因此如果一個遊戲的 p rom 搭配另一個遊戲的 c rom 來運行的話,雖然遊戲是在運行,但是畫面卻是花的。聲音同理。

縱觀現在的Rom有數種不同的情況,如Cps2的ROM它們本身沒有被解密,但是通過與Cps2Shock的解密Xor文件結合運算得出正確數據被模擬器支持這個可以叫Xor解密法吧,這種技術現在已經用到MVS得身上啦,早些時候的Kof99 就曾經使用過Xor解密(Kof99_P1x.rom)必需要在Rom中加上解密用的Xor文件,Xor的缺點是跟所要解密的ROM大小數量都相同,被解密的文件有1MB,解密用的Xor也得有1MB.

其實現在MVS的ROM可以用幾種情況來說一下:
1:遊戲的P ROM並無加密,但C ROM是加密的(mslug3合金3),合金3的P ROM是從沒加密的機板上Dump出的.
2:遊戲的P ROM並無加密,C ROM是經過解密的(kof99nd),Winkawaks支持的Kof99(Full Decrypted).
3:遊戲的P ROM是加密的,而且C ROM也是加密的(Kof2000 encrypted) (餓狼Mark Of Wolf:garou encrypted)
大家都會經常看到Rom最後可能會是kof99n或者Kof99d,或者Kof99nd:
n可以理解為none encrypted P:沒有加密的P ROM;
d可以理解為decrypted C:解密的C ROM;
nd可以理解為none encrypted P+decrypted C:既沒加密的P ROM+解密的C ROM也就是Full Decrypted:完全解密版。
encrypted:加密的,最新被Kawaks支持的整個遊戲都是完全加密的(P ROM與C ROM都加密),Kawaks能玩是因為Raz搞了個出來的新形態的SMA加密表,它的主要作用就是把遊戲的P Rom解密具體和Xor有什麼不同偶也不很清楚,不過它只有256k大小比起Xor節省空間哦呵呵,Kawask本身就能解密遊戲的C ROM直接讀取S1 ROM, 所以完全encrypted的ROM也照玩不誤,但這些加密版沒什麼意思,畢竟玩的時還是要解密的,如果大家的內存只有 128MB Load ROM的時候可能需要幾分鐘.

有很多人問怎麼有些ROM大7xMB,但另外一個只有2xMB卻一樣能玩,2xMb那個是刪除了什麼嗎? 這是因為加密後的Rom中有大量無規律的垃圾數據,Winzip不能對這些無規律的垃圾數據進行壓縮,所以生成的Zip 就非常巨大啦,解密後就完全不同去掉無用的垃圾代碼一下子就被壓縮去1半以上啦,所以使用壓縮版Load Rom 的時候會快得多. 另外使用Winkawaks可以自己把加密的C Rom解密,只要在讀取需要解密的ROM之前把Tools選擇中最下面的一項 勾上就ok,這樣kawaks讀取完C Rom後會把它們解密並析出S1 ROM保存在Winkawaks的根目錄中,把這些Rom替換 掉原來加密的C Rom一個decrypted C版就做好啦,如果P ROM也是沒加密的那麼可以把Zip文件名改成xxxnd.zip 這就是既沒加密的P ROM+解密的C ROM也就是Full Decrypted:完全解密版,用winkawaks讀取特別快.

S1的問題:
SNK遊戲都需要S1 ROM,它是用來存放遊戲中需要的字體的,以外的遊戲S1 大小都是128k,但新的遊戲重新加入了不同的字體,如Kof2000它的S1應該是512k的,現在的Mame模擬器與Kawaks都能直接從C ROM中讀取S1文件所以不需要為它們準備S1 ROM啦,相反Neoragex則需要可是它只支持讀取128k的S1,如果文件大於128k也只讀128k,這樣玩Kof2000它由於不能顯示出所有的字體所以遊戲有花屏的想像,要解決它只有等新版出啦別無它法.
至於MS3很幸運雖然它的s1也應該是512k的但它說使用的字體與Msx的一致,所以直接用Msx的S1文件替換就能得到完美得效果啦.

CRC問題:
CRC:循環冗余碼校驗,每個文件的CRC都不同,所以CRC就成了識別文件的最佳選擇.只要2個文件的CRC一樣我們可以說它們是一樣的.模擬器作者開發的東西也有自己的一套,它們會使用不同版本的Rom,所以我們如果直接把本來在A模擬器能玩的遊戲那到B模擬器上玩的時候外外就出現問題啦.通常都是Cant Find xxx.rom(這個可能是xxx.ROM在B模擬器中所能識別的名字不同).有時候模擬器會直接給出CRCxxxxx這樣的提示,這個就是你現在Rom文件與模擬器所需要文件不同(CRC也就不同) ,只要加入模擬器識別的Rom並修正Rom的名字就應該可以啦,還有模擬器對zip名字也有一定的規定.

Driver下的那一列就是Rom的正確名字,命名法則看上面的說明. 如果你英文可以建議下載專業的Rom修復工具Romcenter. 官方網站http://www.romcenter.com , 它們根據專用的Date對Rom進行校對與修復,這裡不詳細介紹

2007-09-06

在XP中使用微软雅黑

http://www.otnth.net/blog/2007/01/31/how-to-use-vistas-font-in-xp/

虽然观感是很个人的问题,但中易宋体的内嵌点阵确实要比微软雅黑来得清晰锐利。不过微软雅黑的意义在于实现了中文字体的ClearType和平滑缩放,这却是中易宋不能比拟的优势。看久了,大概也就习惯了吧。

目前微软雅黑的版本窜到了5.0,但仍有不小改进空间。文字大小参差不齐的情况依然。中文数字“一”在连续出现时会连在一起,如“一一解决”看起来就是个破折号。最难看的是标点符号部分,尤其是左右单、双引号,两对符号形状完全一样,只是略为靠左或靠右。

想在XP中使用Vista的字体,网上流传的方法大多不太完整,要不就显得太为暴力。这里提供一个较为全面的方案,除了尽可能安全外,还解决了如日文和韩文乱码等问题。

首先需要获得Vista的内置字体,简体中文的字体名为微软雅黑,还有繁体中文的微软正黑,日文的Meiryo,韩文的Malgun。这几个字体目前最新的版本都是v5.00,HuangYongTao在他的Blog上有提供下载。

以下是各字体的文件名、文件大小和CRC值,如果已经从其他地方获得了字体文件,可查阅一下自己的是否是最新版本:

文件名 尺寸 CRC
msyh.ttf 15,044,440 8954581A
msyhbd.ttf 14,685,876 41CDF7AB

msjh.ttf 14,713,704 A634C5A2
msjhbd.ttf 14,509,688 E9DA1497

meiryo.ttc 7,815,292 79FA7E43
meiryob.ttc 8,054,096 C386FBC6

malgun.ttf 4,337,104 65B587BE
malgunbd.ttf 4,513,520 F1F5ED97

将获得的字体放入C:\Windows\Fonts目录即可完成安装。除了微软雅黑外,其余字体并非必须。这里多嘴说一句,虽然微软正黑体中也包含了简体字,但由于该字体是根据台湾教育部标准字形进行制作的,笔画标准会与大陆通行的有所不同。因此并不建议以微软正黑作为日常使用的字体,尤其是不应该给在校学生使用。

然后打开控制面板,显示、外观、效果,将字体边缘平滑设为“清晰”,这是为了打开Windows的ClearType字体描绘功能。确定后在“高级”中将所有能改字体的项目都改为微软雅黑,字体尺寸可维持不变。再在IE菜单上选工具、Internet选项,常规页上选字体,将网页字体设为微软雅黑。

经过如上设置后,系统的大部分内容都会用微软雅黑进行描绘了。如觉得显示效果还不够理想,可在绿色下载站下载ClearType Tuning进行微调。如果链接失效,在搜索引擎里找“字体清晰工具”也能找到下载链接。个人觉得用这个工具将雅黑的黑度增加一些,看起来比较不会累。

接下来的设置就需要修改注册表了,如果这对你来说有点困难的话,可以在本文最后下载我写的修改脚本。

运行注册编辑器,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\GRE_Initialize,将GUIFont.Facename的键值改为微软雅黑。这一键值会影响部分通用GUI元素所使用的字体,例如按钮、记事本等等。

再定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink,新建一条名为“Microsoft YaHei”的多字符串值,将“gulim.ttc,gulim”和“MSGOTHIC.TTC,MS UI Gothic”以回车分隔写入。这里我懒得bq了,不明白的话参考同项中的Tahoma等字体的写法就知道了。

这一步类似于Linux中常说的字体替换,Gulim为XP附带的韩文字体。微软雅黑中并不包含所有的日文及韩文字符,如缺少了这一步,文件管理器中的日文及韩文文件名就会是方块。gulim.ttc和msgothic.ttc是XP附带的韩文和日文字体,当然也可以替换为Vista的Malgun和Meiryo。

如定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes,新建一个名为“宋体”的字符串值,并设置为“Microsoft YaHei”,可使系统在更多地方使用微软雅黑。例如登录界面中的“欢迎使用”四个大字,还有部分直接汉化EXE文件的程序。不过该方法仍然无法使系统全面使用微软雅黑,IE中还会出现宋体与微软雅黑相杂的情况,是否使用请自行选择。

另外还有HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Codepage下的932、936、949、950子键,这些子键控制了对应代码页下的默认文字字体,FixedWidthFont为等宽字体,ProportionalFont为矢量字体。936为简体中文代码页,可将对应键值改为微软雅黑。932是日文代码页,949是韩文代码页,950是繁体中文代码页。

最后是HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\Scripts下的23、24、25、26。这些子键控制了IE中声明了页面语言,但没有指定文字字体的页面用什么字体进行描绘,也就是对应繁体中文、日文、韩文的“默认字体”。实际上Internet选项中进行的修改,就是保存在这里。

以上这些就是我在注册表中找到的所有有关字体的设置。需要注意的是,即使进行了上述修改,也没办法做到使XP系统全面使用微软雅黑。因为只要该字体存在,部分在资源文件中指定使用宋体的程序,仍然不会用微软雅黑进行显示。

如果非要不可也有两个办法可以解决。一则是用字体编辑工具,将微软雅黑的字体名改为“宋体”,并删除系统中原来的simsun.ttc文件。不过这已经超过了本文所想涉及的范围,有兴趣的可以自己查阅相关信息试一下。第二个办法就是直接将simsun.ttc文件删掉。这个办法同样可以使几乎所有的文字用微软雅黑进行显示,不过后遗症是可能有部分文字会显示为方框。如何取舍,可以自己斟酌着办。

为了使用方便,我写了一个自动完成注册表的修改和恢复工作。如已安装了中日韩三地的四个字体文件,直接双击该脚本即可自动完成上述的所有修改工作。如想要恢复系统原始设置,用文本编辑器打开脚本,将bRestore设置为true并再次运行脚本即可。如果只想安装微软雅黑,也可以打开脚本编辑一下参数再运行。