Jump to content

Feebas Fishing Spot value (Ru/Sa/Em)


suloku

Recommended Posts

Quote

------------------------------------------------------

Feebas Spot Value 1.1 by suloku 2016

Based on Mirage Island Value 1.5 by BlackShark

Feebas seed algorithm provided by Tux

------------------------------------------------------

Usage:

FeebasSpotValue.exe [-r|-s|-e] SAVEFILE

or

FeebasSpotValue.exe [-r|-s|-e] [-tile|-seed] SAVEFILE

****************************************************************

This tool allows to see the Feebas fishing spot seed in a Pokémon Ruby/Sapphire or Emerald savegame.

The seed is what determines the 6 tiles of route 119 on which you can fish for Feebas.

Aside from printing the seed, you will also get which 6 tiles correspond to that seed.

The tool can also:

* Inject a seed that will make feebas appear at tile 440.

* Ask user for a tile number as input, and inject a seed that will make feebas appear on that seed.

* Ask user for a seed, display the corresponding tiles and allow to inject it on savefile.

This package includes a map with all tiles numbered, courtesy of BlackShark.

(note: on the map there are 4 yellow tiles: feebas can appear there, but you can't fish on those tiles)

Also remember that the seed is updated weekly, so either disable RTC on your emulator or save the game before implanting the seed so it holds today's date.

note: since there are multiple seeds that allow feebas to appear in a given tile (around 900 for each tile), the program will randomly calculate a seed that outputs that tile, so don't be surprised if seed changes every time you run the program with -tile.

****************************************************************

Usage examples:

FeebasSpotValue.exe PokemonRuby(U).sav

This command will show the seed stored in a Pokémon Ruby savegame, show the tiles corresponding to it, and will also allow to inject a seed that will make Feebas appear at tile 440 (the easier one I think, image included).

FeebasSpotValue.exe -tile PokemonSapphire(U).sav

This command will show the seed stored in savegame and the tiles corresponding to it, then prompt the user for a tile number, show the found seed and corresponding tiles and then ask the user to inject it into savegame.

FeebasSpotValue.exe -tile PokemonEmerald(U).sav

This command will show the seed stored in savegame and the tiles corresponding to it, then prompt the user for a seed number, show the corresponding tiles and then ask the user to inject it into savegame.

****************************************************************

Changelog:

1.1:

- Added autodetection for Ruby/Sapphire or Emerald savegame if [-r|-s|-e] ar not used.

1.0b:

- Fixed bug that made listing tiles from seed always print tile 447, printing 7 possible tiles for majority of seeds.

Tile map (Thanks to BlackShark):

 

nSKmLZL.png

Yellow tiles: Feebas can appear there, but you can't actually fish on those tiles.

Tile 440 fishing spot (FeebasSpotValue's default):

 

[ATTACH=CONFIG]12974[/ATTACH]

The package includes both images.

extra note: tile 447 is actually tile 0, but since the game recognizes it as 447, the program does the same. This causes the lua script found here (https://projectpokemon.org/forums/showthread.php?16681-Gen-3-Lua-Scripts&p=189762&viewfull=1#post189762) to not correctly work (some seeds output a false tile), here's an updated version (note: tile 447 will appear as tile 0):

-- Gen3 Hoenn Feebas Seed/Tile Finder

-- 0 - Pokemon Emerald (U)
-- 1 - Pokemon Ruby/Sapphire (U)
-- Change this depending on your game
local game = 0

local pointer
local addend

if game == 0 then
pointer = 0x3005D8C
addend = 0x2E6A
elseif game == 1 then
pointer = 0x02025734
addend = 0x2DD6
end


-- Adapted from Kaphotics' RNG for LUA
function rng(seed)
return (0x4E6D * (seed % 65536) +((0x41C6 * (seed % 65536 )+ 0x4E6D * math.floor(seed / 65536)) % 65536) * 65536 +0x3039) % (4294967296)
end

-- Tux - https://www.smogon.com/forums/threads/past-gen-rng-research.61090/page-34#post-3986326
function is_feebas_tile(feebas_seed, current_tile)
rng_seed = feebas_seed
i = 0
tile = 0
while i <= 5 do
	rng_seed = rng(rng_seed)
	tile = (bit.rshift(rng_seed, 16)) % 0x1BF
	if tile >= 4 then
		i = i + 1
	end
	if tile == 0 then
		i = i + 1
	end
	if tile == current_tile then
		return true
	end
end
return false
end

function print_feebas_info()
local feebas_pointer_address
local feebas_seed
if game == 0 then
	feebas_pointer_address = memory.readdwordunsigned(pointer) + addend
elseif game == 1 then
	feebas_pointer_address = pointer + addend
end
feebas_seed = memory.readwordunsigned(feebas_pointer_address)
x = 4
y = 3
gui.box(2, 2, 76, 32, "white")
gui.text(x, y , "Feebas Seed: "..feebas_seed, "green")

current_tile = 0
ctr = 0
y = y + 10
while current_tile <= 600 do
	if is_feebas_tile(feebas_seed, current_tile)then
		if ctr == 3 then
			ctr = 0
			y = y + 10
			x = 4
		end
		x = x + 15
		ctr = ctr + 1
	 	gui.text(x, y, current_tile, "yellow")
	 end
	 current_tile = current_tile + 1
end
end
gui.register(print_feebas_info)
DOWNLOAD: 
  • Like 1
  • Thanks 2
Link to comment
Share on other sites

I just noticed that 105, 119, 132 and 144 are not the only inaccessible tiles. 296, 297 and 298 are inaccessible as well. They are below the waterfall next to the long bridge.

Since there are 7 inaccessible tiles I was curious if there are any seeds that generate multiple of them and so give lesser chances to find Feebas. 2E54 is actually generating 3 of those tiles!

Furthermore some seeds can generate the same tile twice.

So the worst case are the following seeds which only have 3 accessible tiles for Feebas.

Seed	Tiles
2E54	121	[color="#FF0000"]132[/color]	186	264	[color="#FF0000"]297[/color]	[color="#FF0000"]298[/color]
58D1	026		[color="#FF0000"]132[/color]	203	[color="#FF0000"]297[/color]	314
A4F9	092		162		206	[color="#FF0000"]296[/color]
CC54	025	041		[color="#FF0000"]132[/color]	231	[color="#FF0000"]296[/color]

Edited by BlackShark
Link to comment
Share on other sites

This is interesting. We should try those seeds in the debug rom and see if the game actually allows those tiles to be feebas tiles.

From the post at smogon, it would seem the only tiles the game prevents from having feebas are tiles 1, 2 and 3.

Link to comment
Share on other sites

This is interesting. We should try those seeds in the debug rom and see if the game actually allows those tiles to be feebas tiles.

From the post at smogon, it would seem the only tiles the game prevents from having feebas are tiles 1, 2 and 3.

Those tiles can be Feebas tiles, I already tested that. But you have to use the Walk Through Walls cheat to fish on them.

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...

1.0b:

- Fixed bug that made listing tiles from seed always print tile 447, printing 7 possible tiles for majority of seeds

I dunno how I missed that, just noticed because I wanted to catch a feebas on my emerald save.

Link to comment
Share on other sites

  • 2 weeks later...
  • 1 year later...
  • 5 months later...

You should be able to figure it out just with the trainer id and sid on a ruby and sapphire with a dry battery since you can manipulate the trainer id and sid and the rtc is frozen thats if you started a new game when the battery was dry though..

Link to comment
Share on other sites

  • 2 weeks later...

This tool doesn't work correctly, says me that I have Feebas in the same position in all my three games, I have the same phrase in the Dewford Town club, but shouldn't make the same Feebas position in all three games, AFAIK... And however don't match the Feebas spot in no one of my game.

Link to comment
Share on other sites

5 hours ago, Halfshadow said:

This tool doesn't work correctly, says me that I have Feebas in the same position in all my three games, I have the same phrase in the Dewford Town club, but shouldn't make the same Feebas position in all three games, AFAIK... And however don't match the Feebas spot in no one of my game.

I tested yesterday with mirage island spawn it works on r b e witouth any issue, open you game and save then use the program.

Edited by ThePunish3D
  • Like 1
Link to comment
Share on other sites

3 hours ago, ThePunish3D said:

I tested yesterday with mirage island spawn it works on r b e witouth any issue, open you game and save then use the program.

Nope, I was wrong, I'm sorry, I thought that was the end of the tool action when it ask you if you want to replace your Feebas spot with the default tool position. I found my tiles in my savegame by turning back in the tool reading my tiles in my savegame, thank you.

Link to comment
Share on other sites

I replaced my internal battery in Emerald and fixed the time via flash cart, but my phrase is changed replacing the battery, and the man in Dewford don't like my previous phrase... How I can oblige him to accept it? There is a trick to do it in an easy way without hack the sav?

Edited by Halfshadow
Link to comment
Share on other sites

  • 2 years later...
47 minutes ago, Sky Angel said:

I have a Ruby save file that is being detected as Emerald even if I add the identifier and Feebas isn't showing up in the tiles indicated, I assume it happens because it is being detected as an Emerald save file.

Use PKHeX with this plugin

 

Link to comment
Share on other sites

  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...