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.
I have an idea about limiting the amounts of items that one can carry. however i wouldnjt like it to be like in red or silver. I would like it to be that you have a maximum of kg you can carry and hat each item weighs a diffrent amount of kg. for example a bike could weittgh 10 kg(or some other unit) and pokeball 1 kg. If the limit of the bag is 100 kg, you could be carry either 100 pokeballs or 90 pokeballs and one bike.
Another idea would be like the "game over when whiting out" thing, with the differnce, that the whiting out does occur after your last Pokemon died, or in other words that you dont go to game over after whiting out, aslong as one has pokemons in the box or pension.
I'd totally appreciate someone implementing these ideas! And thx for all the stuff that is already there!
I don't know if i'm the only one requesting a routine for pokemon ruby
I don't have something to contribute because i don't know how to asm
well i have 2 requests I hope you don't mind
1. You know when it's raining on the overworld it's raining in a pokemon battle. I'd like to see routine that when it's snowing/ashesfalling it's hailing in pokemon battle.
2. And a routine just like in JPAN's Hacked engine where you can make your own items that work with your custom scripts.
it's okay for me if this is not answered because i know that most of you hack fire red now
Thanks for the No EXP Routine. This will really help to extract the salt of players who think they can level up mid Gym-Battle and get a advantage or something.
FBI - I know you said you aren't developing routines anymore but I was just looking for some insight. Have you ever looked into changing the events that affect the player's trainer card in FR?
As an example, if I wanted to make it so finishing a new event gives a trainer card star instead of that stupid Doduo game. How would I do this?
FBI - I know you said you aren't developing routines anymore but I was just looking for some insight. Have you ever looked into changing the events that affect the player's trainer card in FR?
As an example, if I wanted to make it so finishing a new event gives a trainer card star instead of that stupid Doduo game. How would I do this?
FBI - I know you said you aren't developing routines anymore but I was just looking for some insight. Have you ever looked into changing the events that affect the player's trainer card in FR?
As an example, if I wanted to make it so finishing a new event gives a trainer card star instead of that stupid Doduo game. How would I do this?
Just a reminder guys, not necessarily targeted only at you two, that this is for ASM resources, and so questions don't belong here. Instead, post in the ASM & Disassembly Help Thread in the future. Thanks!
Hey, I've got a simple request.
Could you change the boost that held items such as mystic water, charcoal, magnet, twisted spoon etc. give from 10% to 20%.
In this post, we will be implementing a base skeleton structure to allow the hacker to add in their own battle modes, I'll also be including some example "add-ons" so you know how to do it yourself. The post currently contains possibilities for the hacker to implement routines which run once at the end of each turn (perfect for tournament clauses) and a routine which runs once every move is chosen and used (perfect for trainer sliding *hint hint danillS*).
I'm calling it a skeleton, but it's actually more like a hook into a routine which runs your routines!
It works like this:
1) Hook from original to routine which runs routines
2) If flag is set, routine runs the routines it's told to run
3) Returns back to hooking location
So all you really need to do to add new battle modes, is add to the list of routines we call (Which is simple, I'll explain in detail later). I should also mention that these routines are called in ALL types of battle including wild, trainer, and scripted. Happy hacking!
Battle Routine By Move:
This routine will run, on average four times per turn. Once you select your move, once you use your move, once the opponents uses their move and at the end of the aftermath. This makes the routine a perfect branching place for an Oak-tutorial like battle.
How to insert:
Look at the routine below. The last line .table has an incomplete pointer. It says 0x[pointer to routine table]. Find enough free space (takes 4 byte per routine) in your ROM and set the pointer for .table to that. You do not add +1 to the pointer, nor is it in reverse hex. Once you've fixed the pointer, compile the routine into free space. The last pointer in the routine NEEDS to be 00 00 00 00.
Spoiler:
Code:
.text
.align 2
.thumb
.thumb_func
main
push {r0-r4}
mov r0, #0xBF @flag to check divided by 4
lsl r0, r0, #0x2
ldr r1, =(0x806E6D0 +1)
bl linker
cmp r0, #0x0
beq noCrash
ldr r4, .table
loop:
ldr r1, [r4]
cmp r1, #0x0 @check table entry is null
beq noCrash
bl linker @call table routine
add r4, r4, #0x4 @get next table routine
b loop
noCrash:
pop {r0-r4}
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r10, r0
lsl r1, r1, #0x10
lsr r1, r1, #0x10
ldr r2, =(0x2022874)
ldr r0, =(0x800E2EA +1)
bx r0
linker:
bx r1
.align 2
.table:
0x[pointer to routine table] @THIS IS FREE SPACE IF IT'S YOUR FIRST TIME USING THIS ROUTINE
Navigate to
Now navigate to 0xE2E0 and insert the byte changes:
Code:
00 4D 28 47 XX XX XX 08
Where XX XX XX is the reverse hex pointer to your routine +1.
Usage:
The routine is toggled by flag 0x2FC. Activate the flag to toggle routines called by this routine. To add routines into the list of called routines, navigate to the pointer of freespace you made .table point to. Insert into that table pointers in reverse hex +1 to wherever you compiled the addon routines make sure they have the 0x8 prefix. The structure of the table should be: [routine pointer in reverse hex +1 (4 bytes)] for each pointer in the table. I.e if I put the addon at 0x740000, the pointer would read 01 00 74 08.
Hey, I've got a simple request.
Could you change the boost that held items such as mystic water, charcoal, magnet, twisted spoon etc. give from 10% to 20%.
Hey. I've got some ideas that could make the game more similar to the newer ones. I don't know if they're all doable in ASM or if they could be done without it. If so, sorry. Anyway, here's my ideas:
- Electric types are immune to paralysis.
- Sturdy negates all hits that would OHKO-ed them and leaves Pokemon with 1 HP
- Grass types' immunity to powder moves i.e spore, poison powder etc.
- New items such as toxic orb, flame orb, focus sash, scope lens etc.
Use special 0x9F to select the Pokemon then callasm.
EV Reducing berries
Speaking of special 0x9F, I finished EV reducing berries which was rather easy.
First of all, follow this tutorial: https://www.pokecommunity.com/threads/258426
until you get to the part where you have to give the item an effect via script.
Compile and insert into free space the following routine:
For the part of inserting a script to give your item functionality, you need to insert this script.
Code:
#dyn 0x740000
#org @start
special 0x9f
waitspecial
storepartypokemon 0x0 0x8004 'bufferpokemon2 in xse
setvar LASTRESULT 0x[EV to modify]
setvar 0x8000 0x[amount to decrease EV by]
callasm 0x[routine +1]
compare LASTRESULT 0xFF
if == jump @failed
storevar 0x1 0x800F 'buffervar in xse
msgbox @gain
callstd MSG_NORMAL
removeitem 0x[ID] 0x1
release
end
#org @failed
msgbox @noEffect
callstd MSG_NORMAL
release
end
#org @noEffect
= It would have no effect!
#org @gain
= \v\h02 gained \v\h03\nInsert the EV your berry gives
In variable 0x8000 put the amount the EV is to decrease by.
In variable 0x800D put which EV you want to modify, in this format:
0x1A - HP EV
0x1B - Attack EV
0x1C - Defence EV
0x1D - Speed EV
0x1E - Sp. Attack EV
0x1F - Sp. Defence EV
How does it not work for you? Does is not run the script? Or does it run the script but not cause any effect? I was able to get it to run a script, and it seems to have worked for me. You can PM me and I'll help you out more.
Okay, so I was right, but it doesn't work. I compile the 3 routines correctly, and it works only if I set the variable 8002 to 0xFF. But if I don't set the var to this value, the wild Pokemon isn't shiny. I tryed to set a great probability to encounter a shiny in the routine (1/2), but the wild Pokemon is still normal, not shiny...