jiangzhengwenjz 发表于 2015-1-27 12:20:13

【转/火红】对战前添加VS Bar

本帖最后由 jiangzhengwenjz 于 2015-3-16 07:32 编辑

转自:http://wahackforo.com/t-24962/fr-asm-vs-bars-antes-batalla
Credits: Jambo51(thumb源码),Zinc,Sayer(颜色控制)之前看到这篇还蛮有意思的,测试脚本之余花了点时间测试了下这个,效果还不错。即便是之前没接触过改版的人相信也能做到。转载请转西班牙原帖,不要转这篇,可能会有错误。
工具:
XSE,APE,THUMB编译器(可选),16进制编辑器,FSF(或者目测也成),AM,VBA
先要编译并写入这三段ASM码:.text
.align 2
.thumb
.thumb_func
.global mugshothackone
main:
cmp r0, #0x87
beq there
cmp r0, #0x88
beq there
ldr r4, ramoffset
ldrh r4,
lsl r5, r4, #0x2
add r5, r4, r5
lsl r4, r5, #0x3
ldr r5, place
ldr r5,
add r0, r4, r5
ldrb r0,
there: add r4, r0, #0x0
add r5, r1, #0x0
add r6, r2, #0x0
mov r9, r3
ldr r7,
ldr r0, return
bx r0
.align
place: .word 0x08044028
ramoffset: .word 0x020386AE
return: .word 0x0808386D
.text
.align 2
.thumb
.thumb_func
.global mugshothacktwo
main:
ldrb r5,
lsl r5, r5, #0x18
lsr r5, r5, #0x18
cmp r5, #0x0
beq normalchecks
mov r1, #0x5A
ldr r5, returnone
bx r5
normalchecks: cmp r1, #0x57
bne later
add r1, r2, #0x0
mov r0, #0xCD
ldr r5, returntwo
bx r5
later: ldr r5, returnone
bx r5
.align
returntwo: .word 0x0807FFA5
returnone: .word 0x08080009
.text
.align 2
.thumb
.thumb_func
.global mugshotpallethack
main:
ldr r1, ramoffset
ldrh r1,
lsl r0, r1, #0x2
add r0, r0, r1
lsl r1, r0, #0x3
ldr r0, trainertable
ldr r0,
add r1, r0, r1
ldrb r1,
cmp r1, #0x5A
beq oldway
cmp r1, #0x57
beq oldway
ldr r1, ramoffset
ldrb r1,
sub r1, #0x1
lsl r1, r1, #0x2
ldr r0, table2
add r1, r1, r0
ldr r0,
b back
oldway: ldr r1, table
mov r2, r8
mov r3, #0x26
ldrh r0,
lsl r0, r0, #0x2
add r0, r0, r1
ldr r0,
back: ldr r1, return
bx r1
.align
ramoffset: .word 0x020386AE
trainertable: .word 0x08044028
table: .word 0x083FA740
table2: .word 0x08FFFFFF
return: .word 0x080D28D5
或者用编译好的直接复制到ROM中去:(废话)87 28 0A D0 88 28 08 D0 08 4C 24 88 A5 00 65 19 EC 00 05 4D 2D 68 60 19 C0 78 04 1C 0D 1C 16 1C 99 46 0D 9F 02 48 00 47 28 40 04 08 AE 86 03 02 6D 38 08 08E5 78 2D 06 2D 0E 00 2D 02 D0 5A 21 05 4D 28 47 57 29 03 D1 11 1C CD 20 01 4D 28 47 01 4D 28 47 A5 FF 07 08 09 00 08 080E 49 09 88 88 00 40 18 C1 00 0D 48 00 68 41 18 49 78 5A 29 09 D0 57 29 07 D0 08 49 C9 78 01 39 89 00 09 48 09 18 08 68 06 E0 06 49 42 46 26 23 D0 5A 80 00 40 18 00 68 04 49 08 47 AE 86 03 02 28 40 04 08 40 A7 3F 08 FF FF FF 08 D5 28 0D 08记下三段代码的偏移量。
然后转到这三个地址分别十六进制修改:
1、0x83862
01 4C 20 47 00 00 XX XX XX 08,其中XX XX XX是你的第一段ASM代码的地址+1再反写,比如750000变成01 00 75。
2、0x7FF90
00 4A 10 47 XX XX XX 08,其中XX XX XX是你的第二段ASM代码的地址+1再反写。
3、0xD28C6
01 49 08 47 00 00 XX XX XX 08,其中XX XX XX是你的第三段ASM代码的地址+1再反写。
然后打开AM,为了省事随便找个训练师读取其脚本
大家应该很清楚trainerbattle的第三个参数应该是reserved,我们把它改成0x200.
然后16进制编辑器转到0x801F5,把那里的88改成78.
测试。可以看到VS Bar了,但是颜色奇怪。

为了控制颜色,我们先需要导入几个做好的色板(下载的可以用,当然最好自己做)
这是我之前随便弄的
链接: http://pan.baidu.com/s/1jGIcSAE 密码: pfwl
貌似可以加到7个(西班牙文看不懂),我这里测试了3个没问题。
当然记下三个色板的地址。
然后把这三个地址都反写,分别添上一个08后排列好写入ROM,记下地址
把该地址反写,替换掉第三段ASM代码中的FF FF FF。
然后依然XSE修改reserved参数,0x100,0x200,0x300分别对应了这三个色板。
成品:(第三张是新增训练师ID)
http://i869.photobucket.com/albums/ab256/jiangzhengwenjz/1_zpsqvlpwxlr.gifhttp://i869.photobucket.com/albums/ab256/jiangzhengwenjz/2_zpszbl4m13w.gifhttp://i869.photobucket.com/albums/ab256/jiangzhengwenjz/1_zpsftzkex6w.gif
注:关于指针08还是09的问题我不解释了。

若是对其再进行小修改,增加2新的数据表格,可以用mugshot
http://i869.photobucket.com/albums/ab256/jiangzhengwenjz/r_zps3n5upfph.gif

若是不放弃放大的效果
http://i869.photobucket.com/albums/ab256/jiangzhengwenjz/Q_zpsmaaktmhc.gif

修改背景Tilemap的部分待补(好吧可能最近没什么空补了

把背景弄掉的话
http://imgsrc.baidu.com/forum/pic/item/81c2112309f7905213ddc56708f3d7ca7acbd514.jpg

blank 发表于 2015-1-29 16:22:27

本帖最后由 blank 于 2015-1-29 16:24 编辑

好贴?

all_along_ 发表于 2015-2-1 19:27:30

好贴.......

米米尔 发表于 2015-2-2 20:18:45

好帖!

米米尔 发表于 2015-2-2 21:33:14

然后把这三个地址都反写,分别添上一个08后排列好写入ROM,记下地址
把该地址反写,替换掉第三段ASM代码中的FF FF FF。
请问这里是什么意思?
三个地址怎么写入同一个空位?(是我理解能力有问题吗。。)@jiangzhengwenjz

jiangzhengwenjz 发表于 2015-2-2 21:36:50

米米尔 发表于 2015-2-2 21:33
请问这里是什么意思?
三个地址怎么写入同一个空位?(是我理解能力有问题吗。。)@jiangzhengwenjz

注意"排列好"
就是按顺序一个个排下来的意思,比如说750000,760000,770000对应
00 00 75 08 00 00 76 08 00 00 77 08

米米尔 发表于 2015-2-2 22:26:04

jiangzhengwenjz 发表于 2015-2-2 21:36
注意"排列好"
就是按顺序一个个排下来的意思,比如说750000,760000,770000对应
00 00 75 08 00 00 76 0 ...

哦,明白了,大概就是表格这样的意思吧
谢谢了

jiangzhengwenjz 发表于 2015-2-2 22:43:11

米米尔 发表于 2015-2-2 22:26
哦,明白了,大概就是表格这样的意思吧
谢谢了

我本来想说的简单点少出点概念,指针都统统绕过了,看来反而造成阅读上的困难了啊。。。

淡年华 发表于 2015-10-27 09:19:42

有绿宝石的吗
页: [1]
查看完整版本: 【转/火红】对战前添加VS Bar