1166| 2
|
[项目] 在树莓派上做一个复古apple2游戏机 |
本帖最后由 米菲爸爸 于 2023-12-27 16:11 编辑 不知道你们有没有同样经历, 我算是个很幸运的人,从很小就有机会接触电脑。我小时候的电脑还不是PC而是大名鼎鼎的Apple2 (其实应该写成Apple ][ ) 我第一次玩游戏是大名鼎鼎的《青蛙过河》,那是1986年,但是游戏的画面深深吸引了家里还没有电视的我。这些40年来游戏业突飞猛进但是古早时代的游戏依然深深的印在我的脑子里。但是我最大的遗憾是那些印在我脑子里的音乐和画面很多我都不能描述出来,一是因为我当时不认识字,跟别说是英语了。所以感谢DFrobot这次又让我有机会找寻同年的快乐。 我小时候的屏幕是一个纯绿色的CRT, 五年级的时候我在少年宫学习Logo语言,我记得当时的分辨率是40x80 (其实我也不知道对不对这数字是在我脑里自动跳出来的)现在我们已经可以按当时的风格重新绘制apple2风格的图片了。 下面的图是我用程序制作的,虽然不是完全匹配但是可以让大家体会一下 这种屏幕看多了以后我再回到教室里看黑板上的白粉笔字都是粉色的,就很离谱(应该就是传说中的视觉互补效应) 注:此处程序来自 https://github.com/derekatkinson/code-in-place/ 当然这离游戏还有些距离,我又继续寻找,我找到一个10年一位大神用python2写的apple2模拟器 https://github.com/jtauber/applepy 我研究了一下还缺两个东西,一个是rom,好在这个不难找,程序里提供了线索,我们可以在这里下载 http://www.easy68k.com/paulrsm/6502/index.html 点这里下载http://www.easy68k.com/paulrsm/6502/A2ROM.BIN 另外就是这个程序是10年前用python2写的,我们还是觉得用python3更好一点,所以这里用 2to3 工具把四个源文件都转为 python3格式(有几个地方还需要手工干预一下,比如整除“//” ) 建立一个vscode工程,执行applepy.py 虽然现在界面已经有那个味了,但是此工程毕竟年久失修,离我们可以跑游戏还有一段距离。在仔细阅读了源码后感觉在此基础上跑游戏难度还是大。至此github上已经没有其他python语言的apple工程了,于是我再次放宽了条件寻找其他语言的apple2工程 一个工程立刻就把我吸引了,貌似就是我的梦中情code. https://github.com/whscullin/apple2js nodejs的工程而且看起来依然在维护中。在本地部署前我们可以先浏览“官网”学习 https://www.scullinsteel.com/apple2/ 按左下驱动器按钮,在列表中选择一个Game,然后选中一个游戏,比如我小时候玩的karateka(中译名:空手道,就是经常因为没有切换到战斗模式被敌人一拳秒了的那个游戏) 按键还是熟悉的味道,上拳q,中拳a,下拳z,上腿w,中腿s,下腿x,最要命的是切换战斗姿势“空格”键! 让我先哭一分钟,逝去的童年回忆正在袭来。 --------------------------------------------------------------- 下面我们把这个工程部署到树莓派上 首先在树莓派上确实已经安装了Nodejs 若你尚未在树莓派上安装 Node.js,你可以按照以下步骤进行安装: 1. 打开终端,通过 SSH 或直接连接到树莓派。 2. 更新树莓派的软件包列表,执行以下命令: sudo apt update 3. 安装 Node.js 和 npm(Node.js 包管理器),执行以下命令: sudo apt install nodejs npm 4. 安装完成后,可以使用以下命令验证 Node.js 和 npm 是否正确安装: node -v npm -v 如果输出显示相应的版本号,则表示 Node.js 和 npm 安装成功。 现在你已经成功在树莓派上安装了 Node.js。你可以继续将你的 Node.js 项目拷贝到树莓派上或者直接从github中下载 1.打开终端 git clone https://github.com/whscullin/apple2js.git 2.此项目中引用了两个子项目,执行下面两个命令将子项目也下载到本地 git submodule init git submodule update 3.下载依赖包 npm install 直到看到 180 packages are looking for funding run `npm fund` for details found 0 vulnerabilities 就算好了 4.尝试在本地运行程序 npm start 如果有报错,那有可能是因为有submodule存在所以在根目录npm run build前先要在这里执行\submodules\cpu6502>npm run build 如果一切顺利就可以在浏览器输入 http://localhost:8080 吼吼,属于你自己的apple2就准备好了,但这时候游戏还没有下载到你的树莓派上,可以到网上去搜一搜dsk格式的文件下载下来就可以愉快的玩耍了 把以前想玩没玩到的游戏都玩耍一遍吧!!!! 米菲爸爸 2023/12/20 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed