Conversation Between FamiliaWerneck and Joexv
Showing Visitor Messages 91 to 105 of 155
-
June 29th, 2015 3:12 PMJoexvI'll see if I cant work something up then. Did you do mov or add to get your new offset?
-
June 29th, 2015 10:02 AMFamiliaWerneckI tried moving register 4 by 38 "somethings" (bytes, bits, hex values...) to load the level information before the bl decrypt command, but it didn't work. I compared stuff, but no luck.
I'm stuck... =/ -
June 29th, 2015 7:24 AMFamiliaWerneckI'm sorry man, you code didn't work. I'll try putting a cmp r1,r2 to see if it works.
I'll get back to you once I try that. =D -
June 28th, 2015 7:17 PMFamiliaWerneckI'm not so sure I am right too, that just made sense.
I'll just test what you corrected. If that works, great. If not, I'll try adding/changing stuff to try making it work.
One code per item, though not efficient, will be easy after the first code works. -
June 28th, 2015 6:36 PMJoexvHm well I guess I was wrong, geez I really need to start actually paying attention to stuff I'm starting to slack off and give false information. But anyway if that is the level check then you will need to make sure that you copy r2 and r3 to different registries first as they are overwritten by decrypts and stuff.
-
June 28th, 2015 6:22 PMFamiliaWerneckI just compared this sample code I took from evolving during the day holding an item with another one, to check where does he compare the level to the argument. kearnseyboy6 even says in his thread that r2 holds the argument that is loaded here "ldrh r2, [r3, #0x2]".
I'm just trying to recreate what I've seen done, since I don't really understand much of how the information is handled in this complicated ASM codes. The functions are not that hard, but what we are actually using, I'm still a bit stuck there.
Anyways, I'm playing a pirate's parrot here. Like I said, recreating stuff I've seen working.
But hey, I was out of my house until three hours ago, since Friday.
Need any help with anything? -
June 28th, 2015 3:59 PMJoexvI was busy this weekend and today I've been at church all morning. But since I just got done a decent amount of progress on my main hack I'll work on that right now.
Also afaik the level check is done before the evolution even begins to check the routine, unless I'm mistaken and I very well could be. -
June 28th, 2015 3:19 PMFamiliaWerneckThe cmp r1, r2 was in order to compare my current level (or at least I thought there was where it was stored) to the level I had configured as an argument in G3HS.
Thanks man, I'll try that and report back to you. =D
Any developments using the tables, or you busy, or gave up? -
June 27th, 2015 11:34 AMJoexvfixes in bold red
Spoiler:.text
.align 2
.thumb
.thumb_func
.global LevelMetalCoat
main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r1, #0xC
bl decrypt
cmp r0, #0XC7
bne exit
mov r11, r0
pop {r0-r7}
mov r1, r11
ldr r0, levelcheckloc
bx r0
decrypt:
push {r0-r7}
ldr r2, decryptpoke
bx r2
exit:
pop {r0-r7}
ldr r0, noevo
bx r0
.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9
Try that. You had the decrypt registers stored wrong, the location you want to check needs to be stored in r1 and it generates the result into r0. Not sure why you had that cmp r1, r2 but it didnt seem needed at all so I removed it. And because I removed that I merged the True section into the main routine. -
June 26th, 2015 7:18 AMFamiliaWerneckDon't you prefer trying a separate evolution per item?
I can make all of them, but I don't think I can do the first without help. Check this:
Spoiler:.text
.align 2
.thumb
.thumb_func
.global LevelMetalCoat
main:
push {r0-r7}
add r0, r6, r7
lsl r0, r0, #0x3
add r0, r2, r0
add r3, r0, r3
ldrh r2, [r3, #0x2]
mov r0, r8
mov r5, #0xC
bl decrypt
cmp r5, #0XC7
bne exit
mov r11, r0
pop {r0-r7}
mov r1, r11
cmp r1, r2
beq true
bl exit
decrypt:
push {r0-r7}
ldr r2, decryptpoke
bx r2
true:
mov r9, r3
pop {r0-r7}
mov r1, r9
ldr r0, levelcheckloc
bx r0
exit:
pop {r0-r7}
ldr r0, noevo
bx r0
.align
levelcheckloc: .word 0x0804310D
noevo: .word 0x08043111
decryptpoke: .word 0x0803FBE9
Can't understand why this is not working. I'm not good with moving information from one register to the other... =/ -
June 25th, 2015 2:53 AMFamiliaWerneckYeah, I forgot about that option aswell. Having an evolution per item. I have 13 evolutionary items in my list. Not much in my opinion, if we would work things that way.
-
June 24th, 2015 2:12 PMJoexvI miss understood lol, sry. If I dont fix it it will bother me that it didnt work so Im gonna see if I cant figure something out. What I might end up doing is having a separate evolution per item, its not efficient but it might work a whole lot better.
-
June 24th, 2015 1:42 PMFamiliaWerneckWhat do you mean by making a new Metal Coat? I used Metal Coat in the game. I mean, I gave it to both Scyther and Onix, but nothing happened.
I tried actually using it, if that's your question, but the game would say "It's not time to use that, playername.".
No rush man. I'll try my best looking for what's wrong there.
If you can't manage bro, would be ok if you write a simple level up + item, but no need to specify the level.
Not ideal, but I can live with that. -
June 24th, 2015 1:08 PMJoexvOk well the first offsets for the tables you put down wont work as theyre reversed but they shouldnt be. 2nd dont make a new metal coat. It goes by item index not name, so that may have been the issue. Try using the metal coat in game. Im gonna give it a shot too since I got my usb back today.
EDIT:Tested it and it freezes for me if it fails. I'm thinking I may have missed a pop or something.... idk ill look at it when I get some more free time. -
June 24th, 2015 12:52 PMFamiliaWerneckSo I've tried them again, but no luck.
First try, I did the same thing I did in the last time, just to make sure.
This is the hex code I got:
Spoiler:FF B4 F0 19 C0 00 10 18 C3 18 9A 78 40 46 0C 21
00 F0 19 F8 06 1C 40 46 0B 21 00 F0 14 F8 05 1C
40 46 00 23 00 F0 00 F8 0F 4C E4 5A AC 42 04 D0
FF 2C 0A D0 02 33 FF F7 F7 FF 0A 4C E4 5A B4 42
06 D0 00 F0 02 F8 09 4A 10 47 FF BC 04 48 00 47
9A 46 FF BC 51 46 02 31 00 48 00 47 17 30 04 08
11 31 04 08 1B A7 40 08 1B A7 80 08 E9 FB 03 08
I was using:
Spoiler:CustoItemTable: .word 0x0840A71B
CustoPokeTable: .word 0x0880A71B
Then I tried doing the opposite, not using the pointer to the tables, but the actual offsets for them, like this (like you've suggested before):
Spoiler:CustoItemTable: .word 0x081BA740
CustoPokeTable: .word 0x081BA780
And this is the hex code that came from it:
Spoiler:FF B4 F0 19 C0 00 10 18 C3 18 9A 78 40 46 0C 21
00 F0 19 F8 06 1C 40 46 0B 21 00 F0 14 F8 05 1C
40 46 00 23 00 F0 00 F8 0F 4C E4 5A AC 42 04 D0
FF 2C 0A D0 02 33 FF F7 F7 FF 0A 4C E4 5A B4 42
06 D0 00 F0 02 F8 09 4A 10 47 FF BC 04 48 00 47
9A 46 FF BC 51 46 02 31 00 48 00 47 17 30 04 08
11 31 04 08 40 A7 1B 08 80 A7 1B 08 E9 FB 03 08
Both attempts, after assembling the routines and inserting the codes in free space in the ROM, I set Scyther to evolve to Tentacruel at Level 4, by using LevelItem and Onix to Sandslash, same level. Just to test. Turned Viridian's Pokéball to a Metal Coat.
I tried evolving them in level 4 and 5, both with and without the Metal Coat, and both Pokémon. None worked.
I can be even more specific as for where I set the tables, what values and all that. But it's all so simple, I doubt I've screwed up there.
Any ideas how we might solve this?

