Board logo

标题: [疑问] 动态地图块 [打印本页]

作者: loloa419950238    时间: 2010-4-15 19:47     标题: 动态地图块

如题,在修改地图时,用原版ROM中的地图块素材,总觉得没有新意。
大家尝试了换掉原有的素材。
于是那么我们会了自己导入新的地图素材,新的排版地图块,以及更改调色板,然后赋予新图块行为。
可是还缺少一步,那就是动态的地图块。
原版中的摇摆的花朵,大海的波浪,还比如金水市的喷泉,这些都是动态的地图块。
很想知道怎么才能做自己的动态地图块。动态的总能让你的地图显得生动许多,甚至有画龙点睛的功效。
比如说一架风车,一面飘动的旗子,袅袅的烟囱丝。
感觉那不是通过我们能导入的那张图完成的,而是另一张!
求解
作者: roywillow    时间: 2010-4-15 20:13

用别的tile查看器一点点找,总会在某个地方能找到其他帧……
在poke community中只见过修改海浪的教程,不过估计早就沉底了吧
作者: loloa419950238    时间: 2010-4-15 20:23     标题: 回复 沙发 roywillow 的帖子

那个应该可以 找的到某张的动态的其他帧,但目的不是想找到它,而是想自制出来。
因为即使是替换,原版中也只是了了几块图块。所以想知道怎么制作。
作者: liuyanghejerry    时间: 2010-4-16 21:46

那是由ASM技术做支持的…
作者: EXGT    时间: 2010-4-17 19:02

支持,顶。。。。
作者: loloa419950238    时间: 2010-4-18 15:34     标题: 回复 地板 liuyanghejerry 的帖子

动态的地图块游戏本身就存在,不需要新命令吧。怎么会上升到需要AMS技术作支持。
作者: liuyanghejerry    时间: 2010-4-18 15:44

http://www.pokecommunity.com/showthread.php?t=200938

答案就在这里。

另外当我说到需要ASM技术作为支持的时候,不要曲解成需要增加新命令。
作者: lightme    时间: 2010-4-19 00:32

真有創意,期待你的pm!
作者: Nightind    时间: 2010-4-22 22:05

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

答案就在这里。

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

版主能不能在本区也写个关于制作这样动的图块的教程啊。英文的好难理解啊。
期待
作者: liuyanghejerry    时间: 2010-4-24 14:15

引用:
原帖由 Nightind 于 2010-4-22 22:05 发表
231

版主能不能在本区也写个关于制作这样动的图块的教程啊。英文的好难理解啊。
期待
翻译出来也和没翻译出来一样难懂,这玩意还是比较复杂的。
作者: Nightind    时间: 2010-4-24 16:53

代码:
结构 火红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]
...
好难懂的教程,看都看不明白




欢迎光临 口袋社区-Poke The BBS (https://ww.poketb.com/) Powered by Discuz! 6.1.0F