VirtualNES虚拟红白机

VirtualNES虚拟红白机

-MD建档时间:2016/2/17 6:39 PM
-CSDN发布:http://blog.csdn.net/winsenjiansbomber/article/details/50678053

“Stay Hungry. Stay Foolish.” - Steve Wozniak, Steve Jobs, and their Apple I.

jobs_wozniak_apple1.jpg 10/5/2011

本文原始版本发布在 编译VirtualNES虚拟红白机,但是“虚拟红白机”这个概念挺大挻广泛的,所以在原始版本的基础上时行了丰富的内容拓展,并改标题为《VirtualNES虚拟红白机》。

任天堂掌门人山内溥(1927/11/7-2013/9/19)真可谓是幸运之人,在那样一个年代,走上了数字电子娱乐这条大路。尽管任天堂的成功产品很多,本人似乎只对FC感冒,再有就是GameBoy。尽管同时期还有其它大公司也开始做电子游戏,如1987年10月30日,Hudson 和日本电气公司 NEC 推出了一台“准次时代”游戏机——PC-ENGINE,简称PC-E,使用2粒 8bit HuC6280,准16位机,性能较FC强。只是市场基本上就是任天堂说了算,先入优势让任天堂赚翻了。

Family Coomputer

作为红白机时代过来的人,对那个年代的游戏机有一种特殊的情感。VirtualNES则将FC电路的实现虚拟化,变成了完完全全的纯软件,NES 是 Nintendo Entertainment System的缩写。和原机相比,怕是还缺点什么的,毕竟那是个回不去的时代,就用虚拟的手段来纪念一下吧。

1983年的FC正式上市,使用的是 8bit 的 MOS 6502 处理器,1.79Mhz,今天这种芯片就叫单片机。分辨率为256x240,64种颜色,同时显示最多24色,最大活动角色(sprite)数是64,大小为8x8像素。声音方面使用PSG音源,芯片是RP2A03E,通过合成1组三角波、2组方波、1组杂波和1组DPCM(Delta/Differential pulse-code modulation,差分脉冲编码调制)来产生音乐,有4个模拟声道和1个数字声道。三角波主要是用于背景乐,方波用于玩家的动作配音。PSG 即是可程式化聲音產生器 Programmable Sound Generator。卡带的极限容量是4Mbit(512KB)。

MOS65编译器与2A03音源

NESDEV网站上提供了一个软件 Nerdtracker II,它就可以用来编辑FC上用一音乐,搭配 Replay、makedtt 就可以制作自己的作品。Replay.zip 提供播放器的代码文件 replay22.ASM,只需要通过cc65编译器命令 ca65.exe 和 ld65.exe,或者 NESASM.EXE、x816编译链接器x112f.exe 等等编译工具就可以生成在FC运行的NSF文件。nedplay.zip 也提供了一份 nt2-22.asm,包内含有编译链接程序 ca65.exe、ld65.exe。

NT2 for Dos

makedtt.exe 工具可以用来生成 NSF文件,这种文件格式是 Kevin Horton 定义的,可以当作 NES 运行。还有 nsf2midi 这个工具,可以从NSF中提取出音乐。因为这些软件是Win16旧平台下的,要想在新系统上使用,可以通过DOSBOX来执行。NESASM 可以在 MagicKit v2.51 工具集中找到。

REPLAY22.jpg

简单介绍这几个工具的使用流程,首先使用 NT2 制作音乐,可以保存为NED文件,NT2的操作见网站上的文档,通过回车键可以生成 temp.ihd 和 temp.dtt 两个文件,然后使用 makedtt 生成 dmc 文件,这是DPCM声波文件。最后使用x816编译链接程序编译 replay22.asm 即可以生成NSF。

makedtt temp.ihd temp.dtt temp.dmc 0
x112f -l replay22.ASM
ren replay22.bin replay22.nsf

x112f.exe 含有编译和链接的功能,使用它就可以完成 ca65.exe、ld65.exe 的工作,以下的命令也可以完成同样的工作:

makedtt temp.ihd temp.dtt temp.dmc 0
ca65 nt2-22.asm
ld65 -C nsf.cfg -o song.nsf nt2-22.o -v

FamiTracker 这个工具则直接使用GUI编辑,并且支持NSF生成,不用编译器,使用最方便。

The force: Forth 语言

计算机语言应该是易理解,因为它是人机交流的管道,如果人理解语言都成问题,那么还怎么能期待计算机很好地执行我们交待的程序呢?传统高组语言如C,特别是C++隐藏了太多细枝末节的东西,所以异常问题常常登门造访,让人防不胜防。

然而开发属于自己计算机语言编译器确是件非常有趣的事,试想,将整个电脑系统当作一个经济体,那么操作系统就像是政府机构,编译工具则像是重工业,而应用软件则像是轻工业或都服务业。David A. Wheeler 在他的一篇文章中陈述了自己实现一个 6502 平台的语言中的经过及经验 A-Lang: WAYS TO IMPLEMENT COMPUTER LANGUAGES ON 6502s。在他的另一篇文章中提到许多

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值