VS Code就是

  你没有眼花没有看错。你会问30年前的NES怎么能用现在的工具制作呢?微软怎么想起NES了。

  这事跟微软没什么关系。这要感谢曾哥(ZENG GE)。VS Code是一个通用编辑器,通过不同的插件,可以编辑不同的源代码。曾哥编写了一个6502插件,这很适合我们使用。

VS Code只是编辑器的作用,这个插件也能编译,但不能直接编译成NES。看上去用处不大。我们可以用别的编辑器,也有现成的编译器,为什么推荐VS Code?

  这是因为这个编辑器是有着现代码编辑功能的,例如:高亮、输入提醒、自动完成,自动调整大小写,实时纠错。对重点是实时纠错。我们有C语言的编辑器,以上功能都有。也有Java的编辑器,以上功能都有。但是6502汇编的编辑器呢?大家回看一下6502 Macroassembler & Simulator。这货很令人失望。别的现代编辑器,例如NPP,VIM,SUBLINE TEXT没有一个想起6502来。只能自己定义高亮。我们最需要的是“实时纠错”。所以目前只有我推荐的这个合用。

  一、怎么实现让VS Code编辑NES/FC游戏源代码(即6502汇编代码)。

1 下载安装VS Code,

2 安装6502插件

3 汉化界面

4 将默认编码改成 GB2312 (这是为了写注释。)

  具体:

1.1下载:https://code.visualstudio.com/

1.2 安装:。。。略(谁都会的。)

2. 安装插件:

点这里,

  你可能还是英文界面,不过没有关系。

在这儿输入“6502”,(我在想要不要回车)

  等一会,会搜索出一堆插件。

我们要第一个,看这名字。

  这儿(红框) 你会看见绿色 Install, 按它安装插件。 这就行。

3. 汉化界面

  这比较简单,而且不是重点。看网上一大堆教程,我也是从网上学的。我随意贴几个,不行你可以再搜:“VS Code 汉化界面”

https://jingyan.baidu.com/article/a681b0de7654283b184346ea.html
https://blog.csdn.net/testcs_dn/article/details/75070415
https://blog.csdn.net/u012308586/article/details/89353861

4. 设置默认编码

  这同样超简单,看网上的教程就好。不行你可以再搜:“VS Code 设置默认编码 GB2312”

  我们认准 GB2312

https://jingyan.baidu.com/article/5552ef4792ac5a518ffbc996.html
https://blog.csdn.net/u012308586/article/details/98201989

  到这儿,我们就可以正常使用VS Code了。假设你还想用VS Code来编别的东东,那么你就自己想办法协调了。

  二、VS Code使用细节

1 我们6502汇编的源代码的扩展名统一用"65s"。

2 我们将所有源代码放在同一个文件夹中,要放同一个项目的,不能放第二个项目的源代码(包括子文件夹)。这里只限65s文件,其他文件不限制。这是因为VS Code是以文件夹为单位识别一个项目的。它会认为整个文件夹包括子文件夹中的65s文件为一个整个项目。所以多余的源代码会混淆的。

3 以打开文件夹方式,打开源代码。

4 初次打开一个文件夹,本插件会初始产生一个名为“6502project.json”的文件。这个就是项目配置文件了。我们用VS Code打开它。要改两个地方。

  范例:我写了一个精灵程序,就只有这一个代码文件(Spirit01.65s)了,那就写就行。

{"mainFile":"Spirit01.65s","outType":"Buffer","copyToClipboard":false,"outFile":"prom.bin"}

mainFile,初始的是候是空白的。我们要写上汇编源代码的“主文件”。指的是这个程序主架构的文件。例如,我们会定义程序所在位置。(.ORG $xxxx),会包含别的源代码(.INCLUDE "xxxxx.xxx"),这就是主文件。(改这里

outType,这个输出类型,初始就是Buffer,我认为就是二进制的意思,这个默认的就对了,不用改。

copyToClipboard,复制到剪贴板,这对于修改或汉化的人有用,我用默认就对了,不用改。

outFile,这个项,初始是没有的,我们要自己加上去。必须加上去,仿照我的例子写就可以。注意字段名outFile的大小写。(改这里

5 本插件支持的语法

  我会告诉你,上哪看。点开插件栏。就是点击

安装插件时候的那个。你会看见已经安装的插件。

汉化以后多了一个“Chinese"插件。

  点击这个”6502 Assembler for VSCode“,

  你可以查看”细节“,就是语法了。

6502的语法大体是一样,不同的汇编器有一点小区别,更多的区别在于宏的部分,还有局部标签的部分。

  当时我要找一个兼容这个语法的汇编器,还真难。比较了好几个才找到的。虽然这个插件也有编译功能,但不能一键生成NES,所以我用了另外的办法。这是后话。

  你现在只需要明白,用这个插件就得符合它的语法。

  另外,可以点击”发布内容“看看,知道一下就是。

  三、注意点与不足

1 我用自己开发的软件,分配变量地址。实时生成65s文件。这在VSCode里面也是实时更新的。但是其中变量标签名称的更改、增删的”识别“就不能同步。会用红色波纹线显示出错。可以不去管它。下次重开VSCode,或重开文件夹的时候就会更新了。

2 不能一键生成NES,说不得要下插件的源码来修改。我暂时还不懂。插件作者(曾哥)也没空。我用另一个兼容的行指令汇编器,配上批处理,完美解决了。

  四、配合使用的软件

1 兼容的行指令汇编器"asm6f_64"。(为了一键生成,为了方便) 【旧32位(系统)电脑换成asm6f_32,在工具/压缩包中】

2 我自己开发的"NES文件头编辑器"。(必需的)

3 我自己开发的"NES内存变量分配器"。(为了省脑力)【需要 .NET Framework 4.0,WIN10可无视】

4 图形工具"YYCHR"。(或别的你喜欢的。)

  这些工具,我都放到范例包里面,下载:http://fogota.ys168.com/  找到文件夹 NES Tool Kit就在里面。

  五、如何制作NES/FC游戏程序

1 制作NES文件头。用我的"NES文件头编辑器",输入相应参数,保存成bin文件(当然也能反复修改),建议定名为NesHeader.bin。具体用法见软件的用户手册,在压缩包中。

  作为初学者,我们只写mapper0的游戏程序,NesHeader.bin中的mapper一项写0就好。

  程序从$8000开始的话,PRG ROM一项写2就好;程序从$C000开始的话,PRG ROM一项写1就好。切页的不同了。我们mapper0的游戏程序没有切页,暂不提这个。

  我们mapper0的游戏程序,CHR ROM一项写1就好。

  其它不懂,暂时默认,以后有需要再改。

2 制作图形文件CHR。用YYCHR从别的游戏ROM里面copy过来,也能自己DIY。保存成chr文件。一般需要8K的。详细怎么做到,在我后面的教程中细说。当下可以先用我的教程包中的图形。

3 制作批处理文件Build.cmd

  我们要先新建一个文件夹。将文件头NesHeader.bin,和图形文件xxx.chr放进去。还有,将asm6f_64.exe放进去(这是64位的)。

  那么,我们的主文件现在还没写,我们先定个名字叫main.65s,相应的编译后生成的名字就是prom.bin。最终生成的nes名字叫XXX.nes。

  我们在该文件夹中空白处,右击新建一个记事本文件。将文件名改为Build.cmd。扩展名也是要改的,不能是txt。(WIN10的你要在文件浏览器上方,点查看,在“文件扩展名”处打外勾。就能显示并更改扩展名了。其他系统到文件夹选项去解决。【另一个方法是在记事本保存时选类型*.*,在名称处写上全名,包括扩展名,编码默认。】)

  改好名后,右键Build.cmd,点编译就会用记事本打开。输入下面的内容:

asm6f_64 main.65s prom.bin
copy /b NesHeader.bin+prom.bin+xxx.chr XXX.nes
pause

  好了,就是这样。保存,编码默认。

  除了mapper0以外都会切页,那么prom就不止一个文件了,chr也不止一个。所以这里与文件头设定有关的。

  具体指令的作用,以后慢慢说,现在只要会换名字就好。如果不太清楚,可以打开我的范件看看。记得右键-编辑。双击是运行这个批处理。

4 用VSCode编写代码,编码选用GB2312。

  这里不多说怎么编了,下一篇再聊。

5 编译和合成NES

  双击“Build.cmd”。报错,你会在cmd窗口中看到。不报错自然就是pass。你会在该文件夹中找到生成的nes文件。

可以试下载我的范例,解压。删掉里面的nes文件,试试双击“Nes一键编译.cmd”。用模拟器看看nes文件的效果。(名字不重要。。。)

【原创】NES第二波:如何用VS Code,编写NES/FC游戏程序。相关推荐

  1. 如何用c语言编写炫酷烟花程序,C语言实现放烟花的程序

    这是一个利用C语言编写放烟花的程序(同时也可以播放音乐),供大家参考,具体内容如下 代码如下 #pragma once #include #include //图形界面库头文件 #include // ...

  2. 华中数控系统c语言,如何用C语言编写华中数控系统PLC程序

    一.铣床内置式PLC的结构 华中数控铣削数控系统的PLC为内置式PLC,其逻辑结构如图1所示. 图1 华中数控系统内置式PLC的逻辑结构 其中: X寄存器为机床输出到PLC的开关信号,最大可有128组 ...

  3. 请教大侠如何用c语言编写搬家的简单程序

    各位大侠:小弟现在有一道c语言习题,是一位朋友问我的:但我是学机械的,c语言只是懂一点点(不好意思),这里高手如云,恳望那位路过的大侠指点一二,小弟感激不尽!题目要求如下: 用<C程序设计> ...

  4. 使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件

    目录 一.安装Pyinstaller 1.直接安装 2.Anaconda环境下安装 二.使用Pyinstaller打包生成exe文件 三.运行生成的exe文件 四.exe文件运行中的问题 一.安装Py ...

  5. c语言数据结构设计纸牌游戏,求一用数据结构c++编写的纸牌游戏程序

    需求: 1.一副没有J.Q.K.A.大小王的扑克牌(40张牌),编号为1-40张牌.第一回合,从40张牌中给双方各随机抽取5张牌,抽出的牌在原数组里删除.第二回合,从剩下30张牌中给双方各随机抽取5张 ...

  6. python猜拳游戏编程代码_求助,用python编写一个猜拳游戏程序,要求有这样的开头...

    展开全部 #coding=utf8 import random changes = ["", "石头2113", "剪子", "布 ...

  7. java入门篇(一)如何编写一个简单的程序

    最近准备花费很长一段时间写一些关于Java的从入门到进阶再到项目开发的教程,希望对初学Java的朋友们有所帮助,更快的融入Java的学习之中. 主要内容包括JavaSE.JavaEE的基础知识以及如何 ...

  8. 如何在ubuntu中编写python_在ubuntu下使用visual studio code编写python

    感觉有了visual studio code之后,不管编写什么语言的代码都可以,简单安装对应的语言插件即可. 这不轮到了最近比较热的python语言,蹭着AI的热度,python语言成为了工程师们又一 ...

  9. VS Code编写HTML-CSS-JS等——代码格式化

    VS Code编写HTML-CSS-JS等--代码格式化 步骤 总结 功能:保存时自动将代码进行格式标准化 步骤 VS Code扩展中搜索:Prettier - Code formatter 点击安装 ...

最新文章

  1. Oracle常用查看表结构命令
  2. DOS命令大全(经典收藏)
  3. 铁大Facebook——电梯演讲
  4. 鸟哥的Linux私房菜(服务器)- 第五章、 Linux 常用网络指令
  5. pyhanlp 分词与词性标注
  6. 病的不轻?教你 2 招,拯救拖延症!
  7. apache2.4 php5.6.30,php5.6.3 + apache2.4.25 安装配置
  8. GIS案例练习-----------第四天
  9. python月份字符串_python实现字符串和日期相互转换的方法
  10. GridView点击行触发SelectedIndexChanged事件
  11. 萤火虫小程序_漫展广州丨第24届酷狗蘑菇萤火虫漫展圆满收官,我们国庆见!...
  12. 电子邮件(E-mail)和电子邮件协议
  13. 拓扑排序 java_[Java]聊聊拓扑排序算法
  14. Windows部署的gogs开机自启动
  15. 基于SSM的手机商城-JAVA【数据库设计、源码、开题报告】
  16. C++ 万年历 查找年、月、日、星期数以及节日等信息
  17. matlab图像嵌入提取压缩水印,matlab中如何对数字图像进行嵌入和提取水印
  18. FirefoxOS 系统进程初步分析 底层系统继承自 android
  19. 孕育独角兽独立融资上市,互联网巨头都藏着什么“阳谋“?
  20. android 多个按键精灵,给大家分享一个,按键精灵安卓版,找多图, 以及找多图返回多个坐标的,相信大家绝对用得到 _ 按键精灵手机版 - 按键精灵论坛...

热门文章

  1. 华为、联想等名企笔试题总汇
  2. 毕业时制作的游戏demo
  3. linux电视软件如何安装程序,在ubuntu 7.04中安装影视制作软件jahshaka
  4. 网吧游戏菜单 v2.1 官网
  5. Altium Designer Library 介绍 - 3M Card CompactFlash
  6. 2022年全球与中国微型光谱仪市场现状及未来发展趋势
  7. 图像识别的原理和应用:从基础知识到实际案例
  8. PHP 使用 phpmailer 发送电子邮件
  9. WebKit介绍及总结(二)
  10. TMS320F28335入门(二)GPIO学习