NESASM教程——第十三天——背景

简介:

【简介】

你应该知道什么是背景,它就是静态图片,主角在其间穿梭。背景不难做,但缺少用于NES的背景制作工具确实是个头疼的问题。

【制作背景】

在Tile Layer Pro中打开你的"our.bkg",绘制一些瓷砖,然后在纸上绘制一个用瓷砖编号排列的地图。注意瓷砖编号从0开始。假设你的Tile Layer Pro每行有16个瓷砖,那么它们的编号排列如下:

	$0  $1  $2  $3  $4  $5  $6  $7  $8  $9  $A  $B  $C  $D  $E  $F
	$10 $11 $12 $13 $14...

如果1号瓷砖是一个笑脸的左上四分之一,2号瓷砖是右上,$11=17是左下,$12=18是右下四分之一,你在纸上或文本文件中写出来应该就像这样:


1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
11 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
...

注意:NES屏幕是32X32个瓷砖。

下面就是把这个地图放到一个二进制文件中,以便载入PPU内存,就像你做调色板一样。

我已经写好一个VB小程序用来将一个类似上面的地图文件(不包括‘...’)转换为二进制文件。你不必写全不32行,除非你确实有需要。

这里下载,运行它,在第一个框中输入地图文件(文本),第二个框输入你想创建的文件名。如果地图文件包括很多地图数据,程序会创建多于1个文件。


【命名表】

命名表这个东西让我实在是不理解,也是我不想写NES汇编的最大原因。技术手册中常常出现。

简单说来,”名“就是我们上面的瓷砖编号,”表“就是地图。所以命名表就是我们在PPU中想放地图的位置。这个地址是$2000,但屏幕上第一行和最后一行常常是不显示的,所以实际开始地址是$2020。


【构建代码】

假设你已经有一个源文件,包含了以下基本内容:

(1)段1 有$FFFA那些东西(复位向量, VBlank向量等)

(2)段2 包含两个文件our.spr和our.bkg,顺序正确;

(3)段0 开始于$8000,有代码设置PPU,并载入调色板;

(3.5)二进制调色板文件包含语句在死循环后面;

在调色板载入循环后面加入这些代码:

	;;--- 代码开始 ---;;

	lda #$20
	sta $2006 ; 写起始地址$2020
	sta $2006 

	ldx #$00
loadNames:
	lda ourMap, X ; 从地址(ourMap + X)处取一个字节,加载到A
	inx
	sta $2007
	cpx #64 ; 我们上面一共写了64个字节;
	bne loadNames ; 循环

在.incbin 调色板文件语句后面加入这些代码:

ourMap: .incbin "our.map" ; 假设our.map是生成的二进制map文件

好了,汇编,运行,让背景显示吧!


【一些其他事情】

如果map2bin.exe产生了多个文件,你需要为每个文件准备一个循环和一个.incbin语句,同时循环次数变为$FF次。

map2bin,由于用VB写的,使得每个文件大了2字节,因为VB每次写完文件都加一个新行。

还有一种表叫做属性表,我们后面讲它。


目录
相关文章
|
1月前
|
前端开发 JavaScript 搜索推荐
前端小白也能学会的高大上技巧:如何让你的网页支持暗黑模式?
【10月更文挑战第30天】随着现代网页设计的发展,暗黑模式已成为一种流行趋势,提升了用户的阅读体验并增强了网页的适应性。本文介绍了如何通过简单的HTML、CSS和JavaScript实现网页的暗黑模式。首先,定义两种主题的CSS样式;然后,使用JavaScript实现模式切换逻辑,并自动检测系统主题。通过这些步骤,前端小白也能轻松掌握暗黑模式的实现,提升网页的用户体验和个性化水平。
58 4
|
5月前
|
人工智能 分布式计算 Java
【C++入门 一 】学习C++背景、开启C++奇妙之旅
【C++入门 一 】学习C++背景、开启C++奇妙之旅
|
7月前
|
C# 图形学
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
【Unity】2D游戏-愤怒的小鸟教学实战(附源码和实现步骤 超详细)
381 2
|
7月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
303 0
|
7月前
|
前端开发
前端知识笔记(二十)———简易弹窗制作
前端知识笔记(二十)———简易弹窗制作
75 0
当个快乐的WebGL炫酷背景搬运工!
看到shadertoy里面的那么多炫酷的背景是不是很心动?那我们就来把人家的shader搬过来用一下吧!
当个快乐的WebGL炫酷背景搬运工!
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-网上地图资源获取2
前端学习笔记202305学习笔记第二十三天-网上地图资源获取2
50 0
|
前端开发 定位技术
前端学习笔记202305学习笔记第二十三天-网上地图资源获取1
前端学习笔记202305学习笔记第二十三天-网上地图资源获取1
42 0
|
前端开发 JavaScript
前端代码分享——星空背景特效(内含源码)
前端代码分享——星空背景特效(内含源码)
|
前端开发
前端知识案例学习8-设置渐变背景
前端知识案例学习8-设置渐变背景
80 0
前端知识案例学习8-设置渐变背景