`
happysoul
  • 浏览: 403788 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

CC65 开发FC/NES 游戏(三)使用摇杆

 
阅读更多
CC65在我的文章(一)中可以获取到 或者直接去github下载cc65

这次的代码来自cc65的samples目录下的hello.c 并做了修改和注释
通过查看源码可以看到里面支持的机器类型
#if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__)
NES PCE GAMATE

通过 cmd 命令将 c 编译成 nes 文件
cl65 -t nes -o demo.nes demo.c


#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <joystick.h>

static const char Text [] = "Hello world!";

// 2个临时变量,防止按住了按键频繁输出造成的闪烁
unsigned int p1,pt1;

// 屏幕四边划线,原始代码暂时没处理
void drawline(void){
    unsigned char XSize, YSize;
	// 清屏,光标移到左上角
    clrscr ();

    // 获取屏幕尺寸,传入地址相当于让函数给这2个地址赋值
    screensize (&XSize, &YSize);

    /* Draw a border around the screen */

    //顶端线
    cputc (CH_ULCORNER);
    chline (XSize - 2);
    cputc (CH_URCORNER);

    /* Vertical line, left side */
    cvlinexy (0, 1, YSize - 2);

    //底端线
    cputc (CH_LLCORNER);
    chline (XSize - 2);
    cputc (CH_LRCORNER);

    /* Vertical line, right side */
    cvlinexy (XSize - 1, 1, YSize - 2);

    // 屏幕正中间显示 hello world 文字
	// 就是将光标移到
    gotoxy ((XSize - strlen (Text)) / 2, YSize / 2);
    cprintf ("%s", Text);

}

void main (void)
{
    // 屏幕颜色,黑底白字
    (void) textcolor (COLOR_WHITE);
    (void) bordercolor (COLOR_BLACK);
    (void) bgcolor (COLOR_BLACK);
	
	// 屏幕四边划线(前面的方法)
	drawline();
	

    // 初始化手柄
    joy_install (joy_static_stddrv);
	

    while (1){
		p1 = joy_read (JOY_1);

		// start 和 select 一起按的时候跳出循环,相当于重启
		if(p1==12){break;}

		// p1的案件一直没变的情况不做响应
		if(p1==pt1){continue;}
		pt1=p1;
		
		// 输出按键对应的数值,因为长短不同需要空格覆盖原有位置的字符
		gotoxy(1,1);
		cprintf("   ");
		gotoxy(1,1);
		cprintf("%d",p1);
	}
    
	// 前面使用break 跳出循环会走到这里
	gotoxy(0,0);
	cprintf("over");
}



通过这个demo我们可以获取到按键对应的数值

按键二进制十进制16进制
A0000000110x01
B0000001020x02
select0000010040x04
start0000100080x08
00010000160x10
00100000320x20
01000000640x40
100000001280x80


连发 A 和 B 就是这个数字频闪 0和对应的1,2两个数字

解释:
其实这个按键的取值是从默认的地址获取一个 16进制的值
比如右这个值最大对应的
十进制 128
16进制 80
二进制 10000000

同理左的二进制 是  01000000
如果全按了就会显示 11111111

当多个按键一起按的时候相当于累加 比如 AB一起按输出的就是 3

截图是我用qq的 ctrl+alt+a 同时按着下(s) 相当于同时按了 左和下 显示的就是 96



  • 大小: 8.8 KB
0
0
分享到:
评论

相关推荐

    CC65 开发FC/NES 游戏(一)环境搭建

    标题“CC65 开发FC/NES 游戏(一)环境搭建”涉及到的是使用CC65工具链来开发复古游戏,特别是针对FC(Family Computer)或NES(Nintendo Entertainment System)平台的游戏。这个过程通常包括获取开发环境、配置...

    PSP FC/NES游戏NesterJ模拟器最新中文版

    NesterJ是一款强大的FC(Family Computer)和NES(Nintendo Entertainment System)游戏模拟器,专为PSP(PlayStation Portable)平台设计。此模拟器的最新中文版,名为"NesterJ 1.12 Plus 0.70(110116)(1)",不仅在...

    C语音开发FC、NES游戏源码+26个例子+CC65环境

    才发现居然下载要这么多积分,没积分的移步到 https://happysoul.github.io/nes/ 用C语言开发FC/NES游戏,里面没方模拟器,随便找一个就可以,25个例子,BUILD目录里有可以运行的nes游戏,

    FC/NES模拟器0.01版本

    FC/NES模拟器0.01版本是一款个人开发的软件,专用于在现代计算机上运行经典的任天堂红白机(Family Computer,简称FC)和NES(Nintendo Entertainment System)游戏。这款模拟器允许用户重温80年代和90年代的游戏...

    自己做的FC/NES模拟器0.0版本

    标题中的“自己做的FC/NES模拟器0.0版本”表明这是一个个人开发的早期版本的模拟器,用于运行FC(Family Computer,又称任天堂红白机)和NES(Nintendo Entertainment System)的游戏。模拟器是一种软件,它能在现代...

    FCNES游戏开发教程CC65版本

    FC NES游戏开发教程CC65版本是一份专为想要学习如何开发FC(Family Computer,也称为Nintendo Entertainment System)游戏的开发者准备的资源。这个教程基于CC65,这是一个开源的C编译器套件,特别设计用于8位元的...

    FC/NES模拟器0.101版本

    FC/NES模拟器0.101版本是一个更新后的软件,专用于在现代计算机上运行经典的游戏,如那些在80年代风靡一时的FC(Family Computer)或NES(Nintendo Entertainment System)上的游戏。这个模拟器的核心功能是通过精确...

    FC/NES模拟器0.14版本

    FC/NES模拟器0.14版本是一款专为重温经典红白机(FC)和任天堂(NES)游戏而设计的软件。这个模拟器在前一个版本0.13的基础上进行了重大更新,增加了多项增强用户体验的功能,使得玩家能够更加便捷地享受这些复古...

    FC/NES Emulator with Visual Basic.NET

    【标题】"FC/NES Emulator with Visual Basic.NET" 是一个使用Microsoft的Visual Basic.NET编程语言开发的模拟器项目,其目标是复现经典游戏主机Family Computer(FC)和Nintendo Entertainment System(NES)的游戏...

    FC/NES模拟器0.13版本

    FC/NES模拟器0.13版本是一款专为重温经典红白机游戏而设计的软件。这个模拟器的最新更新增强了用户体验,特别是针对图形显示和游戏记录功能进行了优化。 首先,模拟器现在支持对四个图层的独立控制,分别是前台精灵...

    NES游戏开发工具 NES游戏编程 NES游戏教程

    这个主题包括了如何使用特定的开发工具和学习编程技巧来创建自己的NES游戏。 【描述】提到的“NES的游戏开发软件 含教程”表明这个资源可能包含一系列用于编写NES游戏的开发环境、模拟器、编译器、调试器等工具,...

    修改FC游戏NES文件mapper值的工具.rar

    标题中的“修改FC游戏NES文件mapper值的工具”是指用于调整FC(Family Computer,即任天堂红白机)游戏nes文件中的mapper值的软件。在nes格式的游戏文件中,mapper是一个关键部分,它决定了游戏如何与硬件交互,包括...

    smynes.fc.nes.fds_FC_nes_模拟器_游戏模拟器_

    标题中的“smynes.fc.nes.fds_FC_nes_模拟器_游戏模拟器_”表明这是一个关于FC(Family Computer)和NES(Nintendo Entertainment System)游戏模拟器的软件或程序。FC和NES是任天堂公司在80年代推出的家用游戏机,...

    10FCNES游戏开发教程(CC65版本)(一起FC).pdf

    【描述】: 本教程主要介绍如何使用CC65开发FC/NES平台的游戏,涵盖了从安装CC65到编写代码、设计游戏元素和制作游戏资源的全过程。 【标签】: 游戏开发, NES, CC65, C语言, 资源制作 【正文】: 1. **CC65安装与...

    大虾板移植的FC游戏

    标题中的“大虾板移植的FC游戏”指的是将经典的FC(Family Computer,也称为Nintendo Entertainment System,NES)游戏移植到名为“大虾板”的硬件平台上。大虾板可能是一种基于STM32微控制器的自制游戏开发板,它...

    [原创]Vikings1.3版.7z (FC,NES 汇编生成器,带内核,汇编方式被重新定义)

    用户在解压后,可以按照提供的说明来安装和使用这款工具,进行FC/NES游戏的开发。 总结来说,"Vikings1.3版.7z"是一个专为FC/NES平台设计的高级汇编生成器,它的出现将为开发者提供一个更新颖、更高效的编程环境,...

    电脑游戏FC任天堂红白机中文模拟器500经典游戏大集合600个小霸王红白机nes游戏精选含无敌版含58合1等合集游戏.rar

    标题中的“电脑游戏FC任天堂红白机中文模拟器500经典游戏大集合600个小霸王红白机nes游戏精选含无敌版含58合1等合集游戏.rar”是一个描述性很强的文件名,它揭示了几个关键概念,让我们一一解析。 首先,“FC”是...

    FC时钟V1.0

    因此,想要运行和调试这个程序,开发者需要额外下载并安装这些工具,如FCEUX(一个流行的FC/NES模拟器)和CC65(一个针对6502处理器的C编译器套件)。通过这些工具,开发者可以模拟FC/NES环境,在现代计算机上运行和...

    [原创]FC专用16进制编辑器

    6502是FC/NES主机上使用的CPU,所以这个编辑器允许用户直接在编辑器内编写和修改6502汇编代码,这对于FC/NES游戏的调试、修改和ROM hacking是非常有价值的。 【标签解析】:“FC NES”标签进一步确认了该软件的应用...

    PSP游戏机FC模拟器游戏机提取NES模拟器 真正中文版.rar

    标题中的"PSP游戏机FC模拟器游戏机提取NES模拟器 真正中文版"指的是在PlayStation Portable(PSP)游戏机上使用的FC(Family Computer,也称为任天堂红白机)模拟器,用于运行经典的NES(Nintendo Entertainment ...

Global site tag (gtag.js) - Google Analytics