NDS程序设计――无限期跳票篇

对于以前写的两篇NDS编程的文章,真是无心插柳柳成荫,居然收到了不少热心于NDS开发的人的邮件,有求助有探讨,还有些希望我把文章写下去,由于最近实在有些事情忙得不亦乐乎,所以只能在此声明如下:
1) 我自己的确不是什么NDS开发方面的专家,只是在空闲的时候研究了一下,自己其实也是一个NDS开发的学习者。
2) NDS程序设计系列文章的下一集,无限期跳票。这并不意味着以后都不会再写下去,如果有时间的话,我还会继续这个系列的文章,但是不是现在。

附上我的一封Email回复,是给一个满腔热情地初学者,希望所有的满腔热情地初学者可以修成“正果”。

NDS编程是在我比较闲得几个月写出来的,现在又陷入忙乱了,所以那些文章就没有继续写下去。难得你那么有心,可以耐心看我写的文章。

对于NDS上的游戏开发,我觉得没有任天堂的SDK,很难开发出像样的游戏,当然这个SDK不是你我这种人可以拿得到的。其实现在使用devkit那个SDK开发,基本上跟ARM硬件裸机开发差不多,需要开发人员对硬件有一些基本的了解,例如触摸屏控制器挂在IIC总线上等等。而且现在的SDK缺乏一些必要的调试手段,开发效率不高。所以我的文章没有叫做NDS游戏设计,只是叫做NDS程序设计,能够通过NDS这个平台,普及一些嵌入式开发或者软件开发的基本知识,目的也就达到了。

如果你以前一点基础都没有,我倒觉得其实学习GBA编程是一个比较好的开始。毕竟GBA的模拟器已经相当成熟了,我们可以使用模拟器进行代码调试,网上可以找到的GBA开发的资料也相对多。最重要的是,GBA跟NDS的开发是差不多的,很容易从一个过渡到另外一个 …

more ...


'Windows CE 6.0尝鲜 & 谣言'

最近讨论Windows CE 6.0的人开始多起来了,但是Windows CE 6最早也要07年才开始发售。微软在MEDC 2006会议上上发布CE6的消息,我命衰,本来打算去参加MEDC,结果被美帝国主义拒签了,所以没能第一时间掌握这些消息。当不成御林军,只好当民间侠士了。回忆回忆以前从各个渠道得到的一些资料(MS对合作伙伴的讲座,MS邀请到US去进行合作伙伴测试的工程师,道听途说,等等)。大概总结了一下有下面几点,还有一些是我自己的乱弹琴评论,说得不好不对不怕拍板砖,因为本来我就没有得到过官方资料,要怪就怪美帝国主义那个拒我签证的大光头,所以还得把这段圆滑的“AS IS”文字放上,把MS替换成我就好了:

废话少说,正文开始:

  1. 取消系统中最多32个进程,每个进程32MB虚拟内存的限制,据说现在可以支持32767个进程,而且每个进程有2G的用户可用空间。

这个可以说是Windows CE 6.0最具有爆炸性的改动了。以前在想别人介绍Windows CE操作系统的时候,总是说Windows CE是一个微内核的操作系统,很多操作系统特性都被放在用户态的exe里面实现,并且其驱动程序也是放在用户态的,等等等等云云云云,这与桌面Windows这种把所有东西都放在OS内核中的宏内核的体系结构操作系统完全不同。可是,现在呢 …

more ...

甲板甲板,舔舔甲板

今天早上看新闻,华为的一个哥们又累倒下了。不知道这已经是第几个了。网易的CTO,清华的年轻教师,这次是华为的,这不是第一个,肯定也不会是最后一个。下一个会是谁呢?有奖竞猜,移动用户发送短信到5198(我要加班),连通用户发送到59198(我就要加班),幸运观众可以得到高级加班地铺床垫一套和提神咖啡香烟一箱及充饥康孙子方便面一桶……

ITIT,挨题挨踢。拿着少得可怜的薪水(可悲的是很多人还自以为高薪),过着猪狗不如的日子。以前旧社会叫包身工,现在改了个名字叫“企业文化”就可以冠冕堂皇了。加班就叫有责任感,有主人翁精神。

不禁想想工作的目的是什么,我觉得工作一个基本的原则是为了让人的生活更加美好,而不是为了让生活背上沉重的包袱。不工作没钱吃饭穿衣,工作了可以吃垃圾食品叉当劳穿垃圾品牌叉泥路了,生活美好了;不工作没地方住,工作了可以跟别人一起租房子了,生活美好了;不工作不能跟别人吹事业,工作了可以自豪地跟别人说我是X软我是X为的人了,生活美好了……但是得到这些美好的同时,你付出的东西是什么呢?无休止的加班?健康?精力?

这种大环境不是一个人可以改变的。但是这种不良的大环境形成也不是一个人的责任。怪圈是这样的。中国目前没有自己的核心技术,所以大多数工作以外包和给企业做解决方案居多,这是其一。其二就是中国还远远没有达到小康的水平 …

more ...

makefile入门

1 makefile入门

Windows CE的构建系统大量使用了Nmake工具和makfile。在大多数微软的软件和驱动开发包中都会包含Nmake工具。因此,这里有必要介绍一下makefile和Nmake工具。

1.1 makefile简介

对于许多Windows下的程序员来说,makefile可能还是个陌生的名词。因为Windows下的许多集成开发环境(例如:Microsoft Visual Studio和Borland C++ Builder等)可以帮助开发人员完成makefile需要完成的功能。通常只需要在集成开发环境中按个按钮,工具就可自动帮助我们编译、链接整个项目。想象如果没有了集成开发环境,那么就需要有另外一种方式来管理对项目的构建。

简单的来说,makefile负责帮助开发人员简化代码的编译、链接等构建工作。对于只包含几个文件的简单的项目,开发人员完全可以通过手动控制编译器、链接器来完成对项目的构建。但是想象一下对于一个拥有几百个、甚至几千个文件的大型项目,如果每次构建都是通过手动完成,那消耗的工作量和复杂程度是不可想象的。在这种情况下,makefile就有了它的用武之地。

makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个自动化脚本一样,其中也可以执行操作系统的命令。

makefile带来的最大的好处是 …

more ...

我第一次写书评

博文视点的编辑让我写一篇关于《.NET Compact Framework程序设计 C#版》中文版的书评,花了一个上午,憋出这些文字来,基本上没有阿谀奉承的成分,个人感觉还是比较客观的(因为没有利益成分,没这个必要,哈哈)。贴一个把,解决自己blog的旱灾。

探索移动开发的新航路
――评《.NET Compact Framework程序设计 C#版》中文版

何宗键

移动设备与.NET Compact Framework
近年来,消费性电子产品在国内外都得到了飞速的发展,其中以PDA和智能手机为代表的个人手持设备的技术更新更是一日千里。

让我们以手机为例回顾一下。或许大家都还记得三年前的手机是什么样子,五年前、十年前的手机又是什么样子。是的,在短短的几年内,手机的通信技术迅速的经过了1G的模拟语音,2G数字语音,2.5G的数字语音 + 数据,并在逐渐向完全数字的3G时代过渡。与手机相关的硬件设备也在迅速发展,现在的一些智能手机上已经配备了几百MHZ的CPU、64MB的内存和几GB的Flash存储器。Intel的下一代Xscale移动处理器“Monahans”的处理速度已经可以达到1GMHZ以上 …

more ...

NDS程序设计(三)

3.1开发环境杂谈

要想给NDS开发程序,最好的选择当然是买任天堂公司提供的开发套件了,任天堂的套件非常好,开发调试一条龙俱全(我没见过)。但是这个东西相当贵不说,它也不是有钱就卖的。还必须跟任天堂搞好关系才可以。所以呢一般的平民百姓想玩是不可能了,除非练好身手加入Konami,Namoco……开发工具的网址是:http://www.warioworld.com

当御林军当不成,就只好当民间高手了。国外有一群高人不甘寂寞,就自己动手丰衣足食,DIY了一套开发环境,这帮人自称Homebrew(为什么这个单词金山词霸里面没有……)这套开发环境叫做devkitPro。我们下面的开发工作,全都是在devkitPro下进行的。

devkitPro是一个为多种游戏机开发程序的开发环境,不只可以为NDS开发程序,还可以为GBA,PSP,NGC和GP32(据传说GP32是韩国人开发的一个掌机……)编写代码。那些游戏机有的是MIPS有的是PowerPC,就不在我们的瞎扯范围之内了。我们就关注NDS。

3.2安装和配置开发环境

devkitPro是sourceforge.net上的一个项目,所以最新的东西都可以从sourceforge上下载,老家在这里:http://sourceforge.net/projects/devkitpro 。但是google一下应该可以找到不少链接 …

more ...

NDS程序设计(二)

一、硬件介绍:

先贴一个网上流传甚广的NDS硬件清单:

主机名任天堂DS[NTR-001(JPN)]

尺寸、重量(机器闭合时)- 长:148.7毫米 宽:84.7毫米 厚:28.9毫米

– 重量:约275克(含电池、触摸笔)

Display采用上下双液晶屏幕同时显示并进行游戏,下方屏幕更可直接使用触摸笔及手指进行操作。

•上方屏幕

– 3英寸(对角线距离)半透反射型TFT彩色液晶

– 带有背光灯

– 分辨率256 X 192像素,点距.24

– 26万色

•下方屏幕

– 3英寸(对角线距离)半透反射型TFT彩色液晶

– 带有背光灯

– 分辨率256 X 192像素,点距.24

– 26万色

– 附带高强度透明模拟触摸屏

主要操作部分- 十字键,A …

more ...

NDS程序设计(一)

NDS程序设计

引子:

对程序员来说,这又是一个吓人和诱人的题目,但是本文基本上还是以小品文为主,想到哪里写到哪里,没有规划。基本属于自娱自乐。

如果有人想通过这个文章学习NDS编程呢,最好具有一些coding的经验,至少要学过C语言,知道一些先编译后链接、循环语句、选择语句什么的。如果一点都没有Coding的经验,还是放弃在NDS上编程吧。当然,进阶的要求就更多了,大概有如下一些:ARM体系结构、C / C++、GNU工具的使用经验。

很早就有个想法,等我的那本书完稿之后要买个掌机玩玩,被这本书折腾了一年,像块石头一样一直压在胸口喘不过气,现在基本上都已经完稿了,也可以兑现对自己的承诺了。

现在流行的掌机有两个:任天堂的NDS(以及后来的NDS Lite)还有索尼的PSP。具体技术细节不说了,大概就是NDS性能弱一些,但是好玩的游戏多(插一句:CPU是ARM)。PSP功能强大(又插一句:CPU是MIPS),但是好玩的游戏没几个。经过反复权衡折腾,最后我选择了买NDSL,上周全套装备配齐,2300大洋。包括NDSL机子,Super Card烧录卡 …

more ...