• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • 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.

Research: Calling All ASM Experts!

What features would you like in an ASM tool?


  • Total voters
    39

daniilS

busy trying to do stuff not done yet
409
Posts
10
Years
  • Age 24
  • Seen Jan 29, 2024
He spent twenty minutes complaining about not being able to move diagonally and that characters do nothing but stand around. He sat in the chair next to the character's mom for a minute and I asked, "What are you doing?" He replied, "I want her to make me dinner. Playing Pokemon is hard."

Diagonal movement? I'm working on it. (Somebody would need to make an Emerald port though)

And yeah, I can confirm it. Your dad is 100% surely a dad.
 

Queen Azura

Mistress of Midnight
59
Posts
9
Years
Update: My father trained all 5 of his Pokemon up to level 10. Before he entered Petalburg. Dat grind...

Diagonal movement? I'm working on it. (Somebody would need to make an Emerald port though)

And yeah, I can confirm it. Your dad is 100% surely a dad.

Oh, really? That actually is very intriguing. Are you working on implementing diagonal movement in the emulator or the game itself?
 

Tlachtli

Crit happens.
267
Posts
12
Years
Update: My father trained all 5 of his Pokemon up to level 10. Before he entered Petalburg. Dat grind...

This reminds me of a friend of mine. Any time he tried a nuzlocke run he had his starter evolved before the first gym. :t005:

Diagonal movement? I'm working on it. (Somebody would need to make an Emerald port though)

Very interesting. Can the engine handle multiple directional inputs, or would there be separate buttons for diagonal movement? With the GBA's plus-pad I'm doubting if they planned on two different directional inputs at once.
 

Touched

Resident ASMAGICIAN
625
Posts
9
Years
  • Age 122
  • Seen Feb 1, 2018
Very interesting. Can the engine handle multiple directional inputs, or would there be separate buttons for diagonal movement? With the GBA's plus-pad I'm doubting if they planned on two different directional inputs at once.

I can confirm that the GBA allows diagonal movement (at least on a hardware level). VBA-M definitely allows you to push adjacent directions simultaneously, however there is code preventing opposite directions from being sent at the same time (they cancel each other out). So implementing diagonal movement is a game engine thing. Though unless daniilS means zigzagging instead of true diagonal movement, I don't see how it's feasible (so much more work than just altering the game engine)
 
3
Posts
9
Years
  • Age 29
  • Seen Sep 28, 2023
Because Pokemon has a grid based movement system, diagonal movement would be impractical. Since the GBA only has 4 directions on the arrow pad any diagonal movement would rely on pushing first one direction then the next. Since Pokemon is grid based (1 button push = 1 grid block movement) this simply results in moving over one, then up one (or whatever directions you pushed). Games like Legend of Zelda: Minish Cap can have diagonal movement because they don't have grid based movement. Minish Cap simply moves you in the direction you're pushing for as long as you push the button and then adds to or cancels movement depending on what other buttons you push at the same time (push both up & down makes you stop; push up & left makes you travel diagonally up & left until a button is released). Since Pokemon's collision system (for trees, grass, water, etc.) is based on the same grid as the movement system & since you'd have to remove the grid system for diagonal movement, this is WAAAY more work than would be practical. (I guess you could steal the movement system straight from Minish Cap but other than that your only option is to rewrite a pretty large chunk of the Pokemon game engine.)

Note: I don't actually know about the inner workings of Pokemon's game engine, so it may be harder or easier than I'm making it out to be.
 

Queen Azura

Mistress of Midnight
59
Posts
9
Years
Update: He just finished reading through all the new material and says he's still planning. Sadly, it's a busy week this week, and we'll be away next week. (Otakon! ♥) But he's still working. ^^

I can confirm that the GBA allows diagonal movement (at least on a hardware level). VBA-M definitely allows you to push adjacent directions simultaneously, however there is code preventing opposite directions from being sent at the same time (they cancel each other out). So implementing diagonal movement is a game engine thing. Though unless daniilS means zigzagging instead of true diagonal movement, I don't see how it's feasible (so much more work than just altering the game engine)

Because Pokemon has a grid based movement system, diagonal movement would be impractical. Since the GBA only has 4 directions on the arrow pad any diagonal movement would rely on pushing first one direction then the next. Since Pokemon is grid based (1 button push = 1 grid block movement) this simply results in moving over one, then up one (or whatever directions you pushed). Games like Legend of Zelda: Minish Cap can have diagonal movement because they don't have grid based movement. Minish Cap simply moves you in the direction you're pushing for as long as you push the button and then adds to or cancels movement depending on what other buttons you push at the same time (push both up & down makes you stop; push up & left makes you travel diagonally up & left until a button is released). Since Pokemon's collision system (for trees, grass, water, etc.) is based on the same grid as the movement system & since you'd have to remove the grid system for diagonal movement, this is WAAAY more work than would be practical. (I guess you could steal the movement system straight from Minish Cap but other than that your only option is to rewrite a pretty large chunk of the Pokemon game engine.)

Note: I don't actually know about the inner workings of Pokemon's game engine, so it may be harder or easier than I'm making it out to be.

It does seem like a possibility, but it might be a little ahead of its time.
 

daniilS

busy trying to do stuff not done yet
409
Posts
10
Years
  • Age 24
  • Seen Jan 29, 2024
I don't know about the grid system, but replacing regular movement with diagonal by playing around with the movement table at 083A64C8 in FR or 0850DB7C in EM doesn't give you zigzagging. The map just derps out after a while.
Also, if you take a look at said table, you can see the last four entries are for—tada—diagonal walking. Some other movement tables, like those around 083A6481 in FR also have nine entries. So "ahead of its time"?
 

Danno

Formerly Meowth, AKA InnerMobius
1,224
Posts
17
Years
Only for Emerald though, huh? That's kind of a shame. Nonetheless it's amazing that he'd work on something like this. Maybe somebody else could come along later and make it work for FireRed :)
 

Queen Azura

Mistress of Midnight
59
Posts
9
Years
Progress update: He ended up making a lot of changes and then fixed some things to compile it in Visual Studio 2008. We're back from the family vacation today, so hopefully we can work on stuff again.

Only for Emerald though, huh? That's kind of a shame. Nonetheless it's amazing that he'd work on something like this. Maybe somebody else could come along later and make it work for FireRed :)

I wouldn't doubt that it could be adapted by someone else for FireRed. :)
 
Last edited:

PokeBunny

Pokemon Game Maker
34
Posts
11
Years
I choose other because a ASM tool must have the ability to convert C and C++ into asm save the asm somewhere and the put the asm into the game. But that must be automatic otherwise I'll just use makefiles.
 
Back
Top