分享到新浪微博 分享到QQ空间 打印

[疑问] 动态地图块

动态地图块

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

TOP

用别的tile查看器一点点找,总会在某个地方能找到其他帧……
在poke community中只见过修改海浪的教程,不过估计早就沉底了吧

TOP

回复 沙发 roywillow 的帖子

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

TOP

那是由ASM技术做支持的…


想死你们了!

TOP

支持,顶。。。。

TOP

回复 地板 liuyanghejerry 的帖子

动态的地图块游戏本身就存在,不需要新命令吧。怎么会上升到需要AMS技术作支持。

TOP

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

答案就在这里。

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


想死你们了!

TOP

真有創意,期待你的pm!

TOP

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

答案就在这里。

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

版主能不能在本区也写个关于制作这样动的图块的教程啊。英文的好难理解啊。
期待

TOP

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

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


想死你们了!

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