前段时间给公司的一个NDS游戏开发写了一个工具。接触到了一些NDS游戏开发的东西,原来NDS还在使用256色的调色板,原来很多NDS游戏的开发仍旧在沿用着GBA的开发模式。所谓活用NDS的机能都是任天堂自己的人驾轻就熟,技术壁垒和封闭在游戏机游戏的开发中更甚。
我做的活是破解一个后缀名是.spr的图片文件格式,然后自己制作工具将多个.spr文件打包合并。这个文件格式是用于NDS游戏加载图片时需要的。而我,没有任何的参考文档,有的只是用UltraEdit去看这个文件的16进制组织格式(实际上,除了文本文件,其余文件都是二进制的组织格式,UE只不过是让文件显示成16进制而已)。如果曾经尝试过用UE打开一个JPG或者BMP文件,并去破解这个文件格式是怎么组织的时,你就会知道这是怎样的一个苦活累活了。当然,这两种文件的格式大概就是一些位图块并接而成,并不甚很难。而像.spr这种格式,它的里面有众多的偏移地址,有些偏移地址指向的是调色板,有些则指向的是位图块。更让人头疼的是,我的工作还必须判断哪几个字节是short、int还是long,它们代表什么含义。在合并两个文件时,我还必须人工去判断,合并之后数据会不会溢出。因为NDS必须最大限度的缩小容量以及最大限度的降低加载图片的时间,所以这个文件被组织的非常小,而且得便于程序的读取。
这个活让我更加切实地明白了,游戏机游戏的制作跟PC简直是天壤之别。对于32位机来说,应用程序最大有2G内存可以用。纹理用32位的真彩也已经非常普遍了。而且,微软还给你MSDN。可是像NDS还有千方百计省字节的,还有用256色调色板的,较少的帮助文档而且并不公开。
-
破解
post by idnemo / 2007-12-7 11:18 Friday标签: 游戏开发« 五大主机走势预测及购买建议 | 本本又坏了»
