代码改变世界

随笔分类 -  C#-Gameboy模拟器开发

WindowsPhone-GameBoy模拟器开发六--[转]指令系统实现必读:补码

2013-09-13 15:44 by Hundre, 1135 阅读, 收藏, 编辑
摘要: 网上有同行写了些好文章,在此就不现丑了,贴上连接,放在这里为了补充系列的完整性计算机为什么选用二进制补码为什么补码重要?因为计算机中内存、寄存器里面存的数都是用补码表示的! 阅读全文

WindowsPhone-GameBoy模拟器开发五--使用XNA初略实现Gameboy显示系统

2013-09-02 20:10 by Hundre, 2063 阅读, 收藏, 编辑
摘要: 开篇前,最近弄了个空间,大家不嫌弃的话可以上去讨论讨论Jhttp://www.lihengzhe.cn这一次,就来简单地实现gameboy的实现机制。先说一下本次内容涉及到的技术,其实也就一项—XNA,用XNA来完成我们最后的显示(windows phone的开发嘛,也只能用XNA了)。思路大概是这样的:首先通过gameboy的内存取出图像的图块映射数据,通过映射来获取像素的数据,由于像素的数据实际上又是一个颜色值在调色板寄存器上的索引,所以再获取到调色板寄存器的数据,结合该像素的颜色索引值,最终确定该像素的颜色数据。思路清楚了之后就要说一下这次要用到的技术了,首先决定使用一个2D贴图来当作G 阅读全文

WindowsPhone-GameBoy模拟器开发四--Gameboy显示系统分析

2013-08-26 21:38 by Hundre, 2369 阅读, 收藏, 编辑
摘要: 这次说一下GB的显示系统,先从一幅Gb的内存分布图说起,请看图:图中红色框框起来的部分就是这篇文章关注的部分,这一部分的内存地址从8000-9Fff,共8KB,这一部分是从来存储背景和游戏“精灵”的数据的。通常我们认为Gb只能显示黑、白两种颜色,但其实,Gb还能显示明、暗灰度,总共是4种颜色。这样,显示出来的每个像素点需要占用两个bit的空间。对于Gb的显示系统来说,屏幕会缓存256*256大小的图片,其中160*144大小的某个区域会显示在液晶屏上,我们算一下,要缓存的图片的大小为256*256*2=16KB。但是我们的显存只有从8000-9Fff的8KB,显然是放不下的。所以Gameboy 阅读全文

WindowsPhone-GameBoy模拟器开发三--Gameboy的启动过程和ROM的初步反汇编

2013-06-07 17:20 by Hundre, 2863 阅读, 收藏, 编辑
摘要: 当gameboy通电后,机子会从内存地址为0的地方开始运行一段长度为256字节的程序,这段程序是固化在gameboy内部的ROM(只读存储器)上的。 这段程序的作用是,把卡带中从104H到133H地址的任天堂的LOGO读取出来并显示在屏幕的最上方。这个LOGO会滚动到屏幕中间,然后会播放两个提示音。然后会把从这个地址段读出来的数据和内部数据进行比较,如果比较失败,则停止运行。如果比较通过,则把地址从134H到14DH的数据逐个相加,再把相加的结果加25,如果最后得到的结果的最低有效位不为0,则停止运行。否则,内部程序运行结束,机子会从卡带地址100H处开始执行实际的游戏指令,同时设置寄存器为以下值: 阅读全文

[翻译] WindowsPhone-GameBoy模拟器开发二--Rom文件分析

2013-05-21 19:59 by Hundre, 2054 阅读, 收藏, 编辑
摘要: 距离上一篇文章的发布已经快一年了,在第一篇文章发布之后才发现原来一个模拟器真的不是一般的大,也可能和我的学艺不精有关,这期间花了大量的时间来学习,终于又决定继续写下去,不过还是一些基础的东西,希望被标题吸引过来的朋友不要太失望卡带头部: 在卡带中,内部信息位于0100-014F的这个地址区间中。它包含以下内容0100-0103-入口点 在显示完任天堂的LOGO后,内置的启动程序会跳到这个地址(100h),然后在从这里跳转到位于卡带内的实际程序。通常情况下,这个4字节的区域包含有一条JP 0150h指令,后面跟着一条NOP指令。但也并不总是如此0104—0133—任天堂LOGO这些字节定义了任天 阅读全文

WindowsPhone-GameBoy模拟器开发一--走进模拟器:如何编写模拟器

2012-08-16 16:35 by Hundre, 8238 阅读, 收藏, 编辑
摘要: 这是一篇转载的翻译,放在这里仅为了保持系列的完成性,也是一篇个人感觉比较好的模拟器编写入门文章原文地址:http://fms.komkon.org/EMUL8/HOWTO.html转载自:http://blog.csdn.net/xybsoft/article/details/5337278如何编写模拟器我在写这篇文章之前收到很多人的邮件,他们希望编写一个模拟器却不知从何下手。文章中提到的任何观点和建议都来自我个人,切勿将其当成绝对真理。我的文章主要讨论“解释型”模拟器,而不是“编译型”模拟器,这是因为我对重编译技术没有太多经验。我在文章中列出一两个链接,读者可以查找这些技术的相关信息。如果你 阅读全文

WindowsPhone-GameBoy模拟器开发系列

2012-08-16 16:32 by Hundre, 1943 阅读, 收藏, 编辑
摘要: 这是一个资源集合贴,用来作为该系列的索引。欢迎大家在园子里和论坛留下脚印今天开始决定写一些模拟器开发的文章,本人之前没有过任何模拟器相关的开发经验,学习了一个月的Silverlight.XNA开发,可谓是从零起步。可以预见在这过程中需要大量的学习,所以可以确定文章更新得将会非常慢,希望路过的朋友能多多指点,多提意见和建议。开始之前,先推荐一个博客,博客园的 深蓝的右手 http://www.cnblogs.com/alamiye010/感谢深蓝的右手的文章带我进入到游戏开发的领域WindowsPhone-GameBoy模拟器开发一--走进模拟器:如何编写模拟器WindowsPhone-Game 阅读全文