发新话题 回复
分享主题 打印

[疑问] 动态地图块

引用:
原帖由 liuyanghejerry 于 2010-4-18 15:44 发表
http://www.pokecommunity.com/showthread.php?t=200938

答案就在这里。

另外当我说到需要ASM技术作为支持的时候,不要曲解成需要增加新命令。
231

版主能不能在本区也写个关于制作这样动的图块的教程啊。英文的好难理解啊。
期待[y_2_s]
TOP
代码:
结构 火红Tileset(
u8 压缩 //00 =不压缩 || 01 =压缩|
u8 tileset //00 =主要tileset || 01 =第二tileset
u16 填料 //00 00
u32 *图片 //图片的指针
u32 *调色板 //调色板的指针
u32 *块 //块的指针
u32 *动画 //动画程序的指针
u32 *行为 //行为的指针 );

PS: LeafGreen uses the same structure then FireRed.
Explained by LU-HO.

Tileset 0:
代码:
0x2D4A94:

ROM:082D4A94 DCB 1 //压缩
ROM:082D4A95 DCB 0 //主要tileset
ROM:082D4A96 DCW 0 //0x0
ROM:082D4A98 DCD off_8EA1D68 //图片的指针
ROM:082D4A9C DCD off_8EA1B68 //调色板的指针
ROM:082D4AA0 DCD off_829F6C8 //块的指针
ROM:082D4AA4 DCD off_8070155 //动画程序的指针
ROM:082D4AA8 DCD off_82A1EC8 //行为的指针

在本教程中,我们将只使用“动画程序的指针。”
反编译0x8070154 (THUMB mode you should call the routines with "offset +1) we have:

代码:

ROM:08070154
ROM:08070154 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
ROM:08070154
ROM:08070154
ROM:08070154 Tileset0AnimationHeader ; DATA XREF: ROM:082D4AA4o
ROM:08070154 LDR R1, =0x3000FAE
ROM:08070156 MOV R0, #0
ROM:08070158 STRH R0, [R1]
ROM:0807015A LDR R1, =0x3000FB0
ROM:0807015C MOV R2, 0xA0
ROM:0807015E LSL R2, R2, #2
ROM:08070160 ADD R0, R2, #0
ROM:08070162 STRH R0, [R1]
ROM:08070164 LDR R1, =0x3000FB8
ROM:08070166 LDR R0, =0x8070121
ROM:08070168 STR R0, [R1]
ROM:0807016A BX LR
ROM:0807016A ; End of function Tileset0AnimationHeader
ROM:0807016A
ROM:0807016A ; ---------------------------------------------------------------------------
ROM:0807016C dword_807016C DCD 0x3000FAE ; DATA XREF: Tileset0AnimationHeaderr
ROM:08070170 dword_8070170 DCD 0x3000FB0 ; DATA XREF: Tileset0AnimationHeader+6r
ROM:08070174 dword_8070174 DCD 0x3000FB8 ; DATA XREF: Tileset0AnimationHeader+10r
ROM:08070178 dword_8070178 DCD 0x8070121 ; DATA XREF: Tileset0AnimationHeader+12r

在这列程中什么事最重要的呢
0x3000FB8 : 在RAM中局部存储的指针动画例程。
0x8070121 : Offset of routine animation + 1 (THUMB)


代码:
ROM:08070164 LDR R1, =0x3000FB8
ROM:08070166 LDR R0, =0x8070121
ROM:08070168 STR R0, [R1]
...
好难懂的教程,看都看不明白
TOP
发新话题 回复