• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Code: ASM Resource Thread

Thread should be updated now. :)
Thank you so much! :)

I personally can't imagine how annoying/time consuming it must be to comb through tons of posts to find things to add to the first post and organize them appropriately.
It looks like its because
Code:
found:
	ldr r2, .MON
	strb r5, [r2]
	pop {r0-r6, pc}
	

none:
	ldr r0, .MON
	mov r1, #0x6
	strb r1, [r0]
	pop {r0-r6, pc}
Kanto and Johto work by the fact that setting their var by script also clears the upper byte. But for anything beyond 255, you have it set to 1 or higher for the upper part of the halfword. Just change them to store a halfword instead.
Huh. Reading through the code it makes it seem like those two commands end up storing the party position instead of Pokémon species. It'd only need a byte for the former. Or maybe I'm still not getting how all these things behave with one another.

Regardless, it works. Thanks!
 
Thank you so much! :)

I personally can't imagine how annoying/time consuming it must be to comb through tons of posts to find things to add to the first post and organize them appropriately.

Huh. Reading through the code it makes it seem like those two commands end up storing the party position instead of Pokémon species. It'd only need a byte for the former. Or maybe I'm still not getting how all these things behave with one another.

Regardless, it works. Thanks!
Oh, you're right on that, it is storing the party position. What I mean is that variables take up two bytes. So when you do

setvar 0x8000 VENUSAUR
The address of var8000 looks like 0x03 0x00 (flipped because little endian).

Then when you write the return, the var correctly has 0x00 as the upper byte.
But if you have something like

setvar 0x8000 TREECKO
The address of var8000 looks like 0x15 0x01 (because treecko is 0x115).

Then when you store the party slot only as a byte, the 0x1 is still there.
So when you use something like compare to check the var in a script, it ends up being 0x100 more than the party slot. When dealing with vars in asm, its good practice to load and store halfwords (unless there's some specific reason not to).
 
Updated light ball to raise Pikachu's attack:

Spoiler:

Tried it and whenever a Pokémon uses a Physical Attack, the game instantly freezes right there.
This is a FR USA v1.0 Routine, right?
Also, it does replace the way that the native Light Ball works giving it this new effect at the same time, right?

Because I already checked and I'm sure I didn't failed in any step, what I did basically was:

1) Copying the routine into a clean .txt and converting it to .bin, which ended up like this:
Code:
53 46 2D 2B 09 D0 41 2B 0C D1 30 88 68 38 00 04 00 0C 01 28 06 D8 04 49 08 47 30 88 19 28 01 D1 01 49 08 47 01 49 08 47 33 F0 03 08 37 F0 03 08
I pasted it on 456750.

2) Then I went to 3F020 and typed: 00 49 08 47 50 67 45 08 00 00 00 00 00 00 00 00 00 00
Tried the new ROM, and got surprised by the battle freezing when my Lv5 Pikachu with a Light Ball equipped frozened the game in the moment he tried to use "Slam" on a Wild Pidgey. In another try also noticed that another Wild Pidgey's Tackle could freeze the game too.
 
Spoiler:
hi, by the way!
you forgot/didn't +1 for THUMB mode
3F020 = 00 49 08 47 51 67 45 08 00 00 00 00 00 00 00 00 00 00
 
I've noticed significant demand for working Dawn Stone evolutions, specifically ones that require the mon to be a specific gender. My bad if this is already posted somewhere but here y'all go:

Code:
.org 0x4318e
lsl r0, r0, #0x0
ldr r2, .MethodAddr
bx r2

.MethodAddr: .word 0x085B2521 #UPDATE THIS TO MAIN FUNCTION OFFSET+1


.org 0x5B2520 #UPDATE THIS TO MOST CONVENIENT FREE SPACE IN YOUR HACK
cmp r0, #0x7
beq StandardStone
cmp r0, #0x14 #UPDATE THIS
beq MaleStone
cmp r0, #0x15 #UPDATE THIS
beq FemaleStone
b NoEvo

MaleStone:
push {r1-r3}
mov r0, r7
mov r1, r8
ldr r1, [r1, #0x0]
bl DetermineGender
pop {r1-r3}
cmp r0, #0x0
beq StandardStone
b NoEvo


FemaleStone:
push {r1-r3}
mov r0, r7
mov r1, r8
ldr r1, [r1, #0x0]
bl DetermineGender
pop {r1-r3}
cmp r0, #0xFE
beq StandardStone
b NoEvo


StandardStone:
ldrh r0, [r1, #0x2]
cmp r0, r9
beq Finish

NoEvo:
ldr r2, .NoEvoReturn
bx r2

DetermineGender:
ldr r2, .DetermineGenderFunc
bx r2

Finish:
ldr r2, .EvoReturn
bx r2

.NoEvoReturn: .word 0x08043199
.EvoReturn: .word 0x0804317d
.DetermineGenderFunc: .word 0x0803f78d
Change the values in the lines marked UPDATE THIS to the indexes of male stone evos and female stone evos. Leave their entries blank in the general evolution table; stone evolutions function differently from level-up evolutions.


cmp r0, #0x7
beq StandardStone
cmp r0, #0x14 #UPDATE THIS
beq MaleStone
cmp r0, #0x15 #UPDATE THIS
beq FemaleStone


what do i update the underlined codes to??
are they the item index number or what else?
pls answer me!
need it for my hack!

thanks in advance :D

----------------------------check my hack progress--------------------------------
[PokeCommunity.com] ASM Resource Thread
 
Would anyone happen to have JPANs custom input routine?

If not, then if I may make a request.
Trying to get a number/character input menu for custom keypad passwords ect...
If possible it would be much appreciated ^_^
 
Would anyone happen to have JPANs custom input routine?

If not, then if I may make a request.
Trying to get a number/character input menu for custom keypad passwords ect...
If possible it would be much appreciated ^_^

Found it somewhere around my computer. I never found out how to use this correctly (despite the readme file with the explanation) so that's all up to you xD
 
Found it somewhere around my computer. I never found out how to use this correctly (despite the readme file with the explanation) so that's all up to you xD

Nice!
That would be amazing if you could pm it to me...
I think I should be able to manage ^_^
 
I'm stupid and I forgot to paste the download link xDDD
Here you are: https://www.mediafire.com/download/pt18qmw8k78pmco/number_box.zip

I'll take another look to it tonight anyways :p


Sweet!!!
Thank you very much ^_^

It works like a charm, just when you insert it go to your pointer(0x800000) + 0x164 and at that offset insert
your pointer(0x800000) + 0x0179 = 0x800179 in reverse hex = 79 01 80.

Then just create a XSE script and make sure lockall comes before the callasm.
While callasm is followed by waitstate then just make sure to releaseall at the end...

Thanks again though been looking for this for a bit now.
 
All the codes are now on github and the auto-insertion is completed via armips.
https://github.com/jiangzhengwenjz/Double_wild_battle

Old post:
Spoiler:


Its actually great.
I havent tried it yet but surely will add it to my upcoming hack.
By the way one question, Inserting these routines and making changes to the pointer listed in the routines will automatically activate the double battle or there is something else I need to do?
pls answer.
thanks in advance :)
 
evolution type number

Sorry I didnt knew that you had replied to me!
BY the way "evolution type number"
"There are already existing upto 15"
it means if I have already added two new methods "male(level up)(16) and female(17)(level up)"
and If I want to make male and female evolve with stones then i should add 18 and 19 in those places ??

thanks for your previous reply and hope you wil again make a reply.
Thanks in advance. :)



EDIT:
Also Dawn stone only does the gender evolution thing, and I dont find any statement of dawn stone, can you tell me how it works with dawn stone :)
What exactly I am asking is will only dawn stone work with gender evolution or any other stone also???
 
Last edited:
It works like a charm, just when you insert it go to your pointer(0x800000) + 0x164 and at that offset insert
your pointer(0x800000) + 0x0179 = 0x800179 in reverse hex = 79 01 80.

I knew that but I guess I messed up with something since when buffering the number to display it on a textbox, it showed up the cursor too :/
 
There are a lot of things I like in JPAN's hacked engine. Unfortunately, it's only for Firered, and now that I am hacking Emerald, I have attempted to make something similar to it so myself and other people can access Emerald's decryptor and encryptor pretty easily via scripting. Here are my first public ASM routines, if you will.

Emerald Pokemon Decryptor
Spoiler:


Emerald Pokemon Encryptor:
Spoiler:


I do have a few more ASM routines that appear to work correctly, but obviously, I am an ASM neophyte, so before posting the other ones, I would like to become more adept at doing these sorts of things to ensure my routines will give people the least amount of problems possible. I am posting this under the assumption that nobody else has publicized a routine like this for Emerald, so if somebody else has already done it before the time this has been posted, let me know so I can delete this post.
 
Last edited:
Its actually great.
I havent tried it yet but surely will add it to my upcoming hack.
By the way one question, Inserting these routines and making changes to the pointer listed in the routines will automatically activate the double battle or there is something else I need to do?
pls answer.
thanks in advance :)
hiya!
old post routines:
Spoiler:

for the new routines in the github link, i believe it's about a 50% chance (the last time i had it explained to me it was ahaha)

EDIT: well, i guess i'll ask something
can someone make fbi's set static party level routine only work if the pokémon is above the level indicated and/or for a certain slot only? either would work, but preferably for a certain slot~
 
Last edited:
hiya!
old post routines:
Spoiler:

for the new routines in the github link, i believe it's about a 50% chance (the last time i had it explained to me it was ahaha)

EDIT: well, i guess i'll ask something
can someone make fbi's set static party level routine only work if the pokémon is above the level indicated and/or for a certain slot only? either would work, but preferably for a certain slot~

Thanks for reply and one more thing,
Will the old routice work nicely??
I mean no major bugs??
If there are ani major or minor bugs pls state if you know :)
 
Thanks for reply and one more thing,
Will the old routice work nicely??
I mean no major bugs??
If there are ani major or minor bugs pls state if you know :)
so there are a few things, but nothing that crashes/freezes/stops gameplay
if you catch the pokémon on the left, it displays the one on the right's name and the sprite after catching. it's fine when nicknamed and all that, though. the one on the right is also the only one faded when the battle starts
you can select run for each pokémon (twice)
you can use poké balls twice, but only when there is one pokémon
when a pokémon faints, it asks if you'd like to switch right away. this is how it generally works, BUT when you have no pokémon to switch to, it still asks but then continues the battle regardles of choice.

EDIT: probaby more i just haven't encountered them ahaha
 
so there are a few things, but nothing that crashes/freezes/stops gameplay
if you catch the on the left, it displays the one on the right's name and the sprite after catching. it's fine when nicknamed and all that, though. the one on the right is also the only one faded when the battle starts
you can select run for each (twice)
you can use poké balls twice, but only when there is one
when a faints, it asks if you'd like to switch right away. this is how it generally works, BUT when you have no to switch to, it still asks but then continues the battle regardles of choice.

EDIT: probaby more i just haven't encountered them ahaha

So these are only the minor bugs that wont affect the gameplay!
Thanks most probably i will use it :)


EDIT2: result in attachment, it is really awesome
 

Attachments

  • [PokeCommunity.com] ASM Resource Thread
    BPRE0_02.png
    8 KB · Views: 20
Last edited:
Back
Top