
CC65
firseve
这个作者很懒,什么都没留下…
展开
-
CC65 开发FC/NES 游戏(一)环境搭建(2021-04-27更新部分内容和修改部分错误介绍)
童年的红白机(又叫FC,美国叫NES)开发语言,早期的码农们用的是6502的CPU上的汇编语言ASM(其实跟单片机差不多)简单的说不同的芯片提供了一堆指令让用户编程调用,但其实都是单调的地址引用赋值,还有各种寄存器(虽说学过51单片机的汇编,但当时的东西都还给老师了)对于现在的我们来说,也许或多或少还是能懂C语音的东西现在有了COCOS U3D 虚幻 等各种各样的引擎让我们能做游戏...原创 2018-11-15 15:28:50 · 6345 阅读 · 1 评论 -
用C语言开发NES游戏(CC65)06、精灵
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/什么是精灵?精灵是一种可以在整个屏幕上自由移动的贴图。精灵通常是8×8,但它们也可以是8×16(稍微复杂一些)。我将使用8×8的例子。精灵由PPU的OAM部分中的256个字节定义。有64个精灵。这是每个精灵4个字节。但8×8是如此之小。我们如何让马里奥如此之大...翻译 2019-04-16 18:27:31 · 1089 阅读 · 1 评论 -
用C语言开发NES游戏(CC65)05、调色板
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/关于NES调色板的信息一共64中颜色可用(0-$3F),但其中很多都是黑色。neslib要求你使用 $0F表示黑色,$30表示白色。不要使用xD颜色,尤其是 $0D (他会让一部分电视出问题,油管有视频)https://www.y...翻译 2019-04-16 18:26:56 · 1104 阅读 · 0 评论 -
用C语言开发NES游戏(CC65)04、完整的背景
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/制作一张全屏显示的背景图(备注:这里的RLE是作者将图片变成NES可以识别加载的贴图,这么搞太难翻译了。。。)NES Screen Toolhttp://www.romhacking.net/utilities/802/本地镜像下载...翻译 2019-04-16 18:26:19 · 1544 阅读 · 0 评论 -
用C语言开发NES游戏(CC65)03、VRAM缓冲区
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/我写了一些支持函数来填充VRAM缓冲区。我使用了一些后台场景的代码,在crt0.s中定义了一个VRAM_BUF,地址是 $700。请注意,这在技术上与C堆栈共享700-7ff空间。他们可能会发生冲突。如果你担心这个问题请将VRAM缓冲区设置为600-...翻译 2019-04-16 18:25:07 · 474 阅读 · 0 评论 -
用C语言开发NES游戏(CC65)02、什么是v-blank?
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/向屏幕写入图片如果在屏幕开启的时候使用 vram_adr() 或 vram_put() 函数,有92%的可能会使写入屏幕的图片花屏或试滚动变得不对齐。为什么会发生这种情况,基本上,PPU一次只能做一件事,而且当屏幕正在运行时,有92%的时间...翻译 2019-04-16 18:24:36 · 1133 阅读 · 0 评论 -
用C语言开发NES游戏(CC65) 01、第一个程序
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/我们可以做的最简单的事是在屏幕关闭时向背景中写入数据。ppu_off();vram_adr(address);vram_put(tile);ppu_on_all();我们来过一下这些方法的功能...原创 2019-04-16 18:23:55 · 3462 阅读 · 0 评论 -
用C语言开发NES游戏(CC65) cc65如何工作
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/所有NES汇编程序都是命令行程序。那是什么意思?它没有图形用户界面。您不需要在其中键入代码。您必须在单独的程序(Notepad ++)中编写代码并保存。然后,打开命令提示符,并通过在命令提示符下键入来运行汇编程序。Cc65要复杂得多,它需要输入几个指令,...原创 2019-04-16 18:23:04 · 1702 阅读 · 0 评论 -
用C语言开发NES游戏(CC65) 准备工作
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/你需要什么这是你编写NES游戏所需要的1.汇编程序(或编译器)2.贴图编辑器3.Photoshop或GIMP(或类似)4.Notepad ++(或类似)5.一个好的NES模拟器6.一个贴图地图程序7.python 3(可选,...原创 2019-04-16 18:20:43 · 1619 阅读 · 0 评论 -
用C语言开发NES游戏(CC65) 简介
粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nesdoug/简介:作者nesdoug,作者重写了他的代码并发布到了githubhttps://github.com/nesdoug作者的目的是让所有的开发者尽量不去学习6502汇编,通过C语音就能开发出来NES游戏作者的过时教程:https://nesdo...原创 2019-04-16 17:11:06 · 3676 阅读 · 0 评论 -
用C语言开发NES游戏(CC65) 前言
作者网站更新日期 2018年9月翻译日期从2018年11月底开始逐步翻译,基于浏览器的翻译,重要地方逐句对比原和译文,有时候会加入些个人见解,让文字变得能像是句人话。作者github地址:https://github.com/nesdoug作者的网站:nesdoug粘贴到优快云格式没调,想看格式好的点下面https://happysoul.github.io/nes/nes...原创 2019-04-16 17:09:31 · 629 阅读 · 0 评论 -
CC65 开发FC/NES 游戏(四)方向键控制一个简单的精灵
因为缺少nes头信息的配置所以cc65会有默认生成nes的配置默认情况下:使用水平镜像,田字格的左上和左下是镜像,我们看到的就是田字格的左上角显示部分另外精灵不属于卷轴里固定显示的内容 右边的卷轴查看器不会看到精灵(也就是那个星号)后面直接上附件:上下左右操作一个星号移动,以后再说把星号换成一个像游戏人物的图片,还有背景图#include "conio.h"#i...原创 2018-11-15 15:37:17 · 1182 阅读 · 0 评论 -
CC65 开发FC/NES 游戏(三)使用摇杆
CC65在我的文章(一)中可以获取到 或者直接去github下载cc65 这次的代码来自cc65的samples目录下的hello.c 并做了修改和注释 通过查看源码可以看到里面支持的机器类型 #if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__) NES PCE GAMATE 通过 cmd 命令将 c 编译成 ne...原创 2018-11-15 15:35:45 · 927 阅读 · 0 评论 -
CC65 开发FC/NES 游戏(二)Hello world
记事本编辑文件 helloworld.c Helloworld.c代码 #include <conio.h>void main(){ cprintf("Hello World!"); while(1){}}备注:正常的C语音使用的是 printf 但是CC65使用的是 cprintf 用来在屏幕显示字符串 while是为了让程序进入死循环不会退出,如果你想...原创 2018-11-15 15:33:34 · 1607 阅读 · 0 评论 -
用C语言开发NES游戏(CC65)07、控制器(和精灵碰撞)
翻译原文地址(粘贴到优快云格式没调,想看格式好的点下面)https://happysoul.github.io/nes/nesdoug/NES上有2个控制器端口。您可以使用端口4016和4017随时读取它们。在幕后,它会关闭和打开4016端口,然后一次读取按钮,1个按钮,8次读取,然后将它们转换为变量。Neslib,使用此功能的方法。pad1 = pad_poll(0...翻译 2019-06-21 20:49:40 · 491 阅读 · 0 评论