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

[疑问] 动态地图块

动态地图块

如题,在修改地图时,用原版ROM中的地图块素材,总觉得没有新意。
大家尝试了换掉原有的素材。
于是那么我们会了自己导入新的地图素材,新的排版地图块,以及更改调色板,然后赋予新图块行为。
可是还缺少一步,那就是动态的地图块。
原版中的摇摆的花朵,大海的波浪,还比如金水市的喷泉,这些都是动态的地图块。
很想知道怎么才能做自己的动态地图块。动态的总能让你的地图显得生动许多,甚至有画龙点睛的功效。
比如说一架风车,一面飘动的旗子,袅袅的烟囱丝。
感觉那不是通过我们能导入的那张图完成的,而是另一张!
求解
TOP
用别的tile查看器一点点找,总会在某个地方能找到其他帧……
在poke community中只见过修改海浪的教程,不过估计早就沉底了吧

TOP

回复 沙发 roywillow 的帖子

那个应该可以[y_1_s] 找的到某张的动态的其他帧,但目的不是想找到它,而是想自制出来。
因为即使是替换,原版中也只是了了几块图块。所以想知道怎么制作。
TOP
那是由ASM技术做支持的…


想死你们了!
TOP
支持,顶。。。。
TOP

回复 地板 liuyanghejerry 的帖子

动态的地图块游戏本身就存在,不需要新命令吧。怎么会上升到需要AMS技术作支持。[y_2_s]
TOP
http://www.pokecommunity.com/showthread.php?t=200938

答案就在这里。

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


想死你们了!
TOP
真有創意,期待你的pm![y_1_s]
TOP
引用:
原帖由 liuyanghejerry 于 2010-4-18 15:44 发表
http://www.pokecommunity.com/showthread.php?t=200938

答案就在这里。

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

版主能不能在本区也写个关于制作这样动的图块的教程啊。英文的好难理解啊。
期待[y_2_s]
TOP
引用:
原帖由 Nightind 于 2010-4-22 22:05 发表
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
发新话题 回复