VirtualNES虚拟红白机

  • MD建档时间:2016/2/17 6:39 PM
  • CSDN发布:http://blog.csdn.net/winsenjiansbomber/article/details/50678053
  • 本文拓展版:http://blog.csdn.net/winsenjiansbomber/article/details/50747947

将任天堂掌门人山内溥(1927/11/7-2013/9/19)真可谓是幸运之人,在那样一个年代,走上了数字电子娱乐这条大路。尽管任天堂的成功产品很多,本人似乎只对FC感冒,再有就是GameBoy。1983年的FC正式上市,使用的是 8bit 的 MOS 6502 处理器,今天这种芯片就叫单片机。分辨率为256x240,64种颜色,同时显示最多24色,最大活动角色(sprite)数是64,大小为8x8像素。声音方面使用PSG音源,芯片是RP2A03E,通过合成1组三角波、2组方波、1组杂波和1组DPCM(Differential pulse-code modulation,差分脉冲编码调制)来产生音乐,有4个模拟声道和1个数字声道。三角波主要是用于背景乐,方波用于玩家的动作配音。PSG 即是可程式化聲音產生器 Programmable Sound Generator。卡带的极限容量是4Mbit(512KB)。

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

VirtualNES 官网提供下载,最后的发行版本为 0.97,还有源代码包 virtuanessrc097.zip。源代码的工程是 Visual Studio C++ 6.0 版本,但是需要 DirectX 7.0 SDK 或更新的版本,另外还需要新版本VC自带的 sal.h 头文件。

/***
*sal.h - markers for documenting the semantics of APIs
*
*       Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
*       sal.h provides a set of annotations to describe how a function uses its
*       parameters - the assumptions it makes about them, and the guarantees it makes
*       upon finishing.
*
*       [Public]
*
****/

如果没有以上编译条件,VC6编译时会给出类似 LPDIRECTDRAW7 这样的符号定义问题,设置好DXSDK的库文件路径就好了。VirtualNES 提供了种编译配置,选择 Release 编译就好了,省事。

源文件编码日语932,查看代码时可能会乱码,可能先转换成GB编码,GB编码有日文假名字符。

编译成功后,还需要语言插件才能正常运行,可以下载喜欢的语言包如English.vlp,也可以下载语言开发包LDK自行本地化。

试运行抓图过一下瘾,那个 Walt Disney 出品的小泰山 the Jungle Book 确实是很棒的游戏,小小256KB的容量可以做到这样的效果:


还有老虎机 (Caesar) 这样的赌博游戏,其中有21点和转盘,由于使用的是伪随机数,所以基本上每出现的随机结果都是有规律。可以这样作弊,先保存一个存盘,继续游戏,注意记下每一盘的结果,再把存盘取出,这时游戏会重复之前的结果。所以这样就可以买什么中什么了。

当年心头那个好奇,今天是可以一探究竟了,看源代码可以从另一个侧面来认识那部开创一个时代的 Family Computer!但是作为一个电路饭,拆不到硬件真是不够过瘾的啊。

资源下载

  • VirtualNES 官网下载

编译VirtualNES虚拟红白机相关推荐

  1. VirtualNES虚拟红白机

    VirtualNES虚拟红白机 -MD建档时间:2016/2/17 6:39 PM -CSDN发布:http://blog.csdn.net/winsenjiansbomber/article/det ...

  2. 还记得当年陪你度过整个夏日的红白机吗?

    一转眼,暑假就要过去了,小编看着周围那些忙忙碌碌准备开学的小朋友们,不由想起自己的童年. 那个时候,最开心的就是暑假可以玩游戏机,也就是现在人们口中的FC红白机.虽然在现在看来都是像素级的游戏画面,但 ...

  3. fc安卓模拟器_安利一款手机上的红白机模拟器

    戳上面的蓝字关注我哦! 使用平台:安卓 软件简介: NES.emu是一款任天堂红白机(NES.FC)模拟器,软件支持横竖屏.自动保存游戏进度.按键自定义等功能,还可以自行编辑作弊文件,小编为大家带来的 ...

  4. 深度强化学习之:PPO训练红白机1942

    本篇是深度强化学习动手系列文章,自MyEncyclopedia公众号文章深度强化学习之:DQN训练超级玛丽闯关发布后收到不少关注和反馈,这一期,让我们实现目前主流深度强化学习算法PPO来打另一个红白机 ...

  5. 经典怀旧FCgame红白机小游戏在线网页合集版畅玩HTML网站源码

    经典怀旧FCgame红白机小游戏在线网页合集版畅玩HTML网站源码 ☑️ 编号:ym468 ☑️ 品牌:无 ☑️ 语言:ThinkPHP ☑️ 大小:4.7MB ☑️ 类型:经典怀旧FCgame ☑️ ...

  6. 小霸王其乐无穷~FC红白机游戏600合集(支持mac 12.x系统)

    FC游戏是任天堂红白机一FC(Family Computer),代表作品主要有<魂斗罗系列>.<93超级魂>.<沙罗曼蛇系列>.<超级玛丽>.<赤 ...

  7. 简单介绍红白机的发声系统以及其它音源 MMC

    红白机的音源 Yamato Ryou 2013-08-23 14:52:26 本文将简单介绍红白机的发声系统以及其它音源 MMC, 红白机下称 FC, 其中的伪声音处理器称作 APU. 我才不告诉你称 ...

  8. 使用c++模拟红白机——概论篇(一)

    任天堂的红白机系列的游戏应该是大家的童年了,红白机,又称FC,随着计算机技术的不断发展,现在市场上基本已经淘汰了红白机系列的硬件设备了.我偶尔的一个突发奇想,想要在体验一下红白机游戏的乐趣,于是乎我想 ...

  9. 云起实验室:零基础入门Serverless:一键部署红白机小游戏

    本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个红白机小游戏. 点击立即参与云产品场景体验https://developer.aliyun.com/adc/scenario/5796ce32 ...

最新文章

  1. Git 最全命令总结都在这里了
  2. 读书:历史 -- 奥斯曼帝国六百年
  3. js将字符串作为函数名调用函数
  4. 深入理解Kafka Connect:转换器和序列化
  5. 打造全球最大规模 Kafka 集群,Uber 的多区域灾备实践
  6. vc++ 项目里External dependencies 的文件存放内容和各个文件的存放内容
  7. id随机选择另一张表格的 sql_表格问答1:简介
  8. 奇迹暖暖服务器不稳定,闪耀暖暖用土豆当服务器?开服仅半小时就崩溃,无数玩家疯狂吐槽...
  9. 工业级光模块是什么?
  10. Android - Glide4.4.0使用
  11. java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
  12. 利用Nmap对MS-SQLSERVER进行渗透
  13. 堆内存 和 栈内存的简单理解 (未完待续~)
  14. java 调用plc程序_从老师傅那里偷学来的PLC宝贵经验!
  15. mysql存储过程详解 mysql存储过程和函数
  16. Python安装时import matplotlib.pyplot as plt报错
  17. 18岁智商低的表现_孩子反应慢并不是智商低,三个原因很关键,第一个跟父母有关...
  18. VUE引入ntko office在线编辑器
  19. node2vec python_node2vec 安装失败经历
  20. 【交换基础】交换基础知识总结

热门文章

  1. ILRuntime来实现热更新的优与劣!
  2. VMware Horizon 8 2111 部署系列(十四)部署UAG
  3. python sklearn实现电力负荷区间预测
  4. 注册会计师各科复习方法
  5. 【第6篇】人工智能(AI)语音测试原理和实践
  6. MV:频域的噪音和过滤
  7. oracle列分区,Oracle数据库分区--实例
  8. Axure上拉列表框
  9. java对接海康LED
  10. QANet: Combining Local Convolution With Global Self-Attention For Reading Comprehension