News: 11 March 2016 - Forum Rules

Author Topic: Fishing in Pokemon Red and Blue  (Read 4834 times)

noshius

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Fishing in Pokemon Red and Blue
« on: July 20, 2011, 05:00:03 pm »
There's a lot of good information and tools out there about changing the pokemon you find in the tall grass, but I would like to change which pokemon can be found by fishing.

If anyone has specific information on this, please let me know.

For everyone else, I am looking for general strategies on how I might find out where this information is stored in the ROM using a hex editor.

Thanks!

Vehek

  • Full Member
  • ***
  • Posts: 215
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #1 on: July 20, 2011, 05:32:25 pm »
In RBY, only the super rod differs by area. The old rod and the good rod always give the same results.

0xE27F-E282: Good rod Pokémon data.

At 0xE919, there's data specifying which maps have super rod data and where the data is.

The first of the super rod fishing data is at 0xE97D. Each map's fishing data starts out with a byte saying how many different Pokémon are available.

noshius

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #2 on: July 21, 2011, 02:08:41 pm »
Awesome!  Thanks!  That's just what I'm looking for.

Do you happen to know if the super rod data also effects surfing?  Or is that somewhere else?
« Last Edit: July 21, 2011, 02:16:54 pm by noshius »

Vehek

  • Full Member
  • ***
  • Posts: 215
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #3 on: July 21, 2011, 07:32:40 pm »
Pokémon found by surfing are part of the same data as normal grass.
Try reading this document: http://iimarck.us/etc/wild.html

IIRC, only the water routes have any Pokémon found by surfing in Red and Blue.
« Last Edit: July 21, 2011, 07:38:55 pm by Vehek »

noshius

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #4 on: July 21, 2011, 09:18:29 pm »
Quote
    Wild data has two parts: grass and water. 0x15 bytes for each, where the first byte is the encounter rate and the rest represent Pokemon. If the encounter rate is zero, it doesn’t read the data after it. This means that data can be length 2, 0x16, or 0x2A.

        Example of data with just grass: 03:5501–5516
        Example of data with just water: 03:53FB–5410
        Example of data with grass and water: 03:54D7–5500
        Example of data with neither: 03:52AF-52B0

    It gets to the data by loading the map number from memory location $D35E, then following the corresponding pointer from the table at 03:4EEB.

Forgive my ignorance, but what does "03:5501-5516" mean?

When I look at the data at 0x5501-5516, there is definitely no wild Pokemon data there.
As it is, I have already located the wild grass Pokemon and their format according to http://www.romhacking.net/docs/%5B73%5Dchangewildpokemon.htm
They are from 0xd0e0 to 0xd5c6 and I'm pretty sure that surfing Pokemon aren't there since tentacool does not appear even once.

Could it be that the above is referring to GS instead of RBY?

Vehek

  • Full Member
  • ***
  • Posts: 215
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #5 on: July 22, 2011, 12:38:52 am »
"03:5501-5516" is a range of addresses in GB(C) format.

I'm pretty sure that surfing Pokemon aren't there since tentacool does not appear even once.
Oh really? At 0xD3FD, there's a level 10 Tentacool.
I don't think you fully understand how wild Pokémon actually works. Those "dividers" mentioned in the other document aren't dividers, rather, they're the "encounter rates" IIMarckus talks about.

Could it be that the above is referring to GS instead of RBY?
Why would something for GS say "Red" in its title?

noshius

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #6 on: July 22, 2011, 09:40:00 am »
Ah, wonderful!  I understand now.  Thank you very much for being patient with me.   :)

KingMike

  • Forum Moderator
  • Hero Member
  • *****
  • Posts: 7206
  • *sigh* A changed avatar. Big deal.
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #7 on: July 22, 2011, 01:41:44 pm »
As to the offsets, 03:5501 is how CPU addresses are referred to. Each ROM bank is $4000, so 03 is 3*$4000 = $C000.
As to 5501, all banks except the first are mapped to address $4000-7FFF in the CPU, so for 5501, $5501-4000 = $1501 bytes from the start of the bank.
So (03 x $4000) + ($5501 - $4000) = $C000 + $1501 = ROM address $D501.
"My watch says 30 chickens" Google, 2018

noshius

  • Jr. Member
  • **
  • Posts: 6
    • View Profile
Re: Fishing in Pokemon Red and Blue
« Reply #8 on: July 22, 2011, 03:07:51 pm »
Thanks KingMike!  That makes a lot more sense now too.