ATinyGBA开发日记 什么是ATinyGBA 简单的说,一个GBA模拟器。 源起 去年可文的死给
了我很大的刺激,得到消息的当天,我立刻写了一篇文章检讨自己的不学无术和毫无作为。他短暂的生命让我触动非常,就像我最喜欢的一首
歌里面唱的“惊鸿一般短暂,象夏花一样绚烂”。在这个日益无聊和复杂的世界,存在着无穷无尽的分工,每个人想成为伟人的家伙最后都会发现,个人的力量已经
难以给这个世界一个全局性的颤动了。这不得不让我重新考虑,在吃饱和穿暖的今天,我应该用什么作为我的人生目标的问题。
最后我得到的答案很简单,努力实现自己的每一个梦想。
所以,既然我也曾经梦想自己写一个GBA模拟器,那么现在我们开始吧(当然这不是我的唯一梦想,我的梦想很多,甚至包括一份天长地久的爱情。阿拉丁说:我的主人,如果你要的是这个,那么我还是给你造个四车道的北京直通台北的大桥吧?)!
开始时间 2005年1月30日星期日,我终于开始写这个代码。用一天的时间我实现了所有寄存器和BX和BL指令。
初步设想 项目名称为ATinyGBA,本来打算用TinyGBA,Tiny来自我的网名Tinyfool。A这个前缀是为了避免可能的重名,Tiny是一个 非常可爱的名字,我的TinydustDream以
前计划用TinyOS这个名字,但是后来知道这个名字早就被别人用了,而且人家还是大名鼎鼎的;另外
Apple公司的名字来源,也给了我启示,A打头的东西在英文字母排名靠前,这是很重要的优势,如果某人写文章比较模拟器,按字母顺序排列,我的
ATinyGBA肯定排在最前面。
开发环境VC6+SDL,编码方面只使用C标准库,C++标准库和SDL库,在Windows下面开发,但是目标是至少支持Windows和Linux。
架构上面,Arm7的模拟/GBA系统/图形是相对分离的,这样的好处是我的Arm7模拟可以用在其他的项目中,而且代码的可维护性也会提高。