15/15/15/15 DVs are impossible (in most cases)

Status
Not open for further replies.
Glitch your way to perfect DVs if you must but I'm not liking this retroactive re-definition of tradebacks at all. If you want GSC tradebacks in RBY then do so, but please don't cherrypick the layers of complexity that can differ on the GSC imports especially on a criterion like blatantness, as that's a terrible idea.

The only reason the tradebacks clause might ever have been assumed to be moves-only is people were previously oblivious to the DV limitations on RBY mons. Now there's a total of two mechanical distinctions between the two mons' sources and we're deciding to ignore one just because it's a new concept? Because it'd be hard to control these roidmons if they showed up in cartridge competitions unless you looked? The argument for allowing 15/15/15/15 across the board is sounding worse than the GSC HP Legends ban justification.
 
What's the improvement of making some Pokemon worst because of the RNG of the game is messed up?
RNG abuse is a game mechanic and if that means using glitches to get these Pokemon you will. It isn't considered cheating because you are only abusing what the game allows you to do. Cheating would be using external devices to directly modify this, like it would be Gamegenie, SAVs editors and other things.
Some glitches are not allowed in competitive play.

For example there is a glitch in gen4 which lets you put ANY move on a lot of pokemon!:
http://bulbapedia.bulbagarden.net/wiki/Rage_glitch

The effects of this glitch, for obvious reasons, were never implemented on simulators.

Just because something is a 'glitch' that doesn't mean it should be allowed in competitive play.
 
Glitch your way to perfect DVs if you must but I'm not liking this retroactive re-definition of tradebacks at all. If you want GSC tradebacks in RBY then do so, but please don't cherrypick the layers of complexity that can differ on the GSC imports especially on a criterion like blatantness, as that's a terrible idea.

The only reason the tradebacks clause might ever have been assumed to be moves-only is people were previously oblivious to the DV limitations on RBY mons. Now there's a total of two mechanical distinctions between the two mons' sources and we're deciding to ignore one just because it's a new concept? Because it'd be hard to control these roidmons if they showed up in cartridge competitions unless you looked? The argument for allowing 15/15/15/15 across the board is sounding worse than the GSC HP Legends ban justification.
I find it REALLY hard to believe that, if people had known about this the minute GSC came out in 2000, folks wouldn't have just said, "Awesome, I can finally get my max stat Gengar in RBY. New moves still banned tho!" and been fine. But, there's no way to know.

You state you have a problem, though, with "redefining" Tradebacks with this new information, and I am going to challenge that: *right now* Tradebacks just means moves, because that's all we knew about when the term was invented. Tradebacks never stopped you from bringing Pokemon over from GSC as long as the move combinations were valid. Now we know there are TWO distinctions between the sources, as you just pointed out. So, we could say "Tradebacks now means moves AND stats can't be brought back from GSC" or we could say "Tradebacks still means just moves" ... but either way, BOTH interpretations are technically a redefinition.

Think about it for a second. Here's a scenario that illustrates that with a bit more immediacy: if you were playing RBY with a friend in 2000 and you said "No Tradebacks" and you hatched a perfect stat Gengar and brought it back to RBY to play, and your buddy did the same with a Golem, you both would have said, "Yeah that's fine, as long as they don't know new moves." You didn't know your Pokemon were impossible in RBY. You had no idea. You were playing "No Tradebacks" though and you battled and everything was fine. Now, imagine you wanted a rematch the next week, and before you battled you found out they were impossible. Someone went up to you and your buddy and let you in on the DV secret. You could turn to your buddy and say, "I guess Tradebacks means no buffed stats or new moves" and your buddy could say, "Well that seems weird, let's just allow stats but just keep the new moves out of this." Eventually you would settle on one, but you in that moment would *still* be redefining what tradebacks meant, because you acquired new information and your definition by necessity had to change.

So, no matter what we have to redefine it, so it's hard to object to this under "I don't want to redefine anything" grounds, because a redefinition is required by this information. Either we redefine Tradebacks to mean "No new move combinations from GSC *and* no stat distributions only possible in GSC" or we redefine (technically leave as-is, I guess, but I'm being reasonable here) it to mean "You can trade a Pokemon back from GSC, regardless of its stats, but no new move combinations are allowed."

Jellicent hypothesized a nice definition we could use from another thread:

Just noting we could also claim that move combinations are specifically locked at the release of GSC. So, your 2001 Mew would be fine, that Mr. Mime not named MARCEL is also fine, max DV Golem is fine, NYPC moves and any tradeback movesets are not allowed, and the status quo remains unchanged.
And I like that.
 
Last edited:

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Hasty/Naive latios with Defog is probably ilegal with 6 iv 31 and people are using it in showdown.

No seeds with this natures and full iv 31 exist in RNG 4 generation and probably don't exist in 3 generation too.

There are more examples too. I think is better to allow full iv 31 pokémon in simulator even if are impossible to obtain in games.
If the two players can use the same pokémon with same ivs....what is the problem?
Shoddy Battle (and I'm sure Pokelab since it was the same dev team) actually restricted Method 1 PIDs, so using illegal spreads was not possible outside of PO. I have discussed this with aeo (do NOT tag him or message him, he doesn't care atm) within the past year and for whatever reason, he doesn't seem interested in implementing those same restrictions. As for your second point, Gens 3 and 4 do indeed use Method 1 (J for gen 4, same spreads) for stationaries, so no Lati@s obtained from Southern Island or HGSS Kanto could use those supposed illegal spreads. As far as the last point, I think both players being able to use them is not a reason to make it legal, but I've always been a HUGE advocate of cart accuracy, so I pretty much have shut up completely about Method 1 spreads entirely because I know it's an uphill battle. Just don't expect anyone to take that argument seriously.
 
You state you have a problem, though, with "redefining" Tradebacks with this new information, and I am going to challenge that: *right now* Tradebacks just means moves, because that's all we knew about when the term was invented. Tradebacks never stopped you from bringing Pokemon over from GSC as long as the move combinations were valid. Now we know there are TWO distinctions between the sources, as you just pointed out. So, we could say "Tradebacks now means moves AND stats can't be brought back from GSC" or we could say "Tradebacks still means just moves" ... but either way, BOTH interpretations are technically a redefinition.
That's completely ridiculous. There's no redefinition of a rule involved in my position at all, just a more enlightened and technically correct interpretation of the long-standing rule which remains completely unchanged. Tradebacks are still, exactly, "Pokemon that are impossible to obtain without GSC." No tradebacks, as is in its name, never meant anything except "no mons that are impossible to obtain without GSC."

It NEVER meant just moves except to those of us who were temporarily misled to think otherwise (everyone). Hanging on to that mistaken rule implementation is little better than allowing Body Slam to paralyze Normals. It doesn't make sense to argue from tradition here, and it doesn't help your case to presume some of us might have had a theoretical buddy who would be in favor of a no-tradebacks rule blemished by such arbitrary exceptions. You're not making an impossible mon from a TM you used in GSC, so that other point you made is just as inane when faced with the actual rule as defined.

If you want to isolate RBY cartridges in the standard meta, please do it. If you want to integrate various minor things from post-RBY titles, please do it. All I'm opposed to is retracting the tradebacks rule partway to support what has been unmasked as the misguided traditional implementation of a still-unchanged rule. And if you do want to change the no-tradebacks rule itself as per Jellicent's suggestion, please do so, but don't claim you're technically leaving it as is. The underlying game that our sim is approximating has irreversibly changed - you're just altering one of the community's external rules to minimize the already-minor effect it's going to have.
 
That's completely ridiculous. There's no redefinition of a rule involved in my position at all, just a more enlightened and technically correct interpretation of the long-standing rule which remains completely unchanged. Tradebacks are still, exactly, "Pokemon that are impossible to obtain without GSC." No tradebacks, as is in its name, never meant anything except "no mons that are impossible to obtain without GSC."

It NEVER meant just moves except to those of us who were temporarily misled to think otherwise (everyone). Hanging on to that mistaken rule implementation is little better than allowing Body Slam to paralyze Normals. It doesn't make sense to argue from tradition here, and it doesn't help your case to presume some of us might have had a theoretical buddy who would be in favor of a no-tradebacks rule blemished by such arbitrary exceptions. You're not making an impossible mon from a TM you used in GSC, so that other point you made is just as inane when faced with the actual rule as defined.

If you want to isolate RBY cartridges in the standard meta, please do it. If you want to integrate various minor things from post-RBY titles, please do it. All I'm opposed to is retracting the tradebacks rule partway to support what has been unmasked as the misguided traditional implementation of a still-unchanged rule. And if you do want to change the no-tradebacks rule itself as per Jellicent's suggestion, please do so, but don't claim you're technically leaving it as is. The underlying game that our sim is approximating has irreversibly changed - you're just altering one of the community's external rules to minimize the already-minor effect it's going to have.
You made an assumption that tradebacks means "Pokemon impossible to obtain without GSC." Technically, "Tradebacks" was short for "Tradebacked moves" which literally just means "no mons with move combinations that are impossible to obtain without GSC." The 100% fact of the matter is that any interpretation of whether tradebacks just meant moves (it literally did, because it was the only factor people knew about) or meant anything else (it might have, spiritually, meant that, I'll grant you that) is all speculative because without knowing about the stat thing, no one actually had to stop and think about this before, so it was never officially defined in a way that could incorporate the DV element.

I'm not here to argue whether my interpretation of what "tradebacks" was "supposed" to mean is correct, or if yours is. The point is that you made an assumption, I made an assumption, EVERYONE made an assumption and ... guess what? Not everyone's assumption lined up! Which means there's an opportunity here to actually define it. Just because a proposed definition doesn't mesh perfectly with your assumed interpretation doesn't mean it's completely ridiculous. You're arguing that my proposal retracts rules partway, but it only retracts rules partway if we assume that your assumption was the correct assumption. If my assumption was the correct assumption, it retracts nothing even partway, and instead preserves it.

An equally strong historical argument can be made from either side, and it would be awesome if you could see that. I can claim I'm leaving it as-is, just as you seem to be claiming that YOUR way leaves it as-is ... but neither is wrong, and here's the important part: neither is right, either, which was the whole point of my post. Defining Tradebacks now, EITHER WAY, is going to leave one camp feeling slighted and one camp feeling validated, but that's just kind of how this has to work.

EDITED TO ADD: but man, this is all just semantics. It looks like you agree you don't see a problem incorporating perfect DVs into RBY while excluding GSC move combinations, but bringing the term 'tradebacks' into it is a hot button for you. If we agree on the core issue I don't even know why we're arguing, ha!
 
Last edited:
Yeah, I can get behind anything we as a group (of which I am admittedly not so significant a part) decide on; I just have a lingering certainty that both RBY and RBY Tradebacks are equally arbitrary metas and the distinction between the two should not enter a lower design level than it has. If that belief has affected the validity of my arguments for what I assumed to be and still believe is correct, I apologize for my unwavering prejudice against bringing the two metas closer together.
 
Last edited:
Regarding the definition of "tradebacks" and how this plays into things:

Smogon's policy is to allow any Pokémon theoretically obtainable (or formerly obtainable) on-cart without cheating or glitching, except for those banned by tiers or clauses. Within the context of RBY, the ban of tradebacks is a clause... but how is this clause currently worded?

For the record, my preferred wording is to ban any meaningful interaction with Generation II. In both simulator and cartridge play, this would ban moves/DVs known to be impossible without Generation II; note that merely trading a Pokémon to Gen II on cart does not break this rule, as long as the end result is possible to obtain without doing so.
 
what is smogon's policy on tradebacks from yellow? usually i don't think this changes much but it moves a few pokemon from group B to group A. ninetales and wigglytuff are in the game corner and the in game trades are different, most notably rhydon can be obtained in exchange for golduck which is fishable.
Yellow is part of Generation I, which means there are no restrictions on trades from Yellow. This is the same reason Emerald tutor moves are allowed on non-Speed Forme Deoxys in ADV Ubers.

As a later-gen "equivalent" to the tradeback clause, 200 play in ADV doesn't allow interaction with anything released June 2003 or later, going by Japanese release dates.
 
ressurecting this thread because i have new information !

Big thanks to rb speedrunner DailyLeaf, who was a big help and basically the whole reason i was able to get this information. he also made the little applet i will link in a sec. also thanks to ExtraTricky for reversing the initial code and Progreon for adapting it to Java.



you will need this spreadsheet to cross-check which pokemon are available in each catchrate. Pokemon in the first column are available with any DV spread. I also show which level they are caught on because if they are on higher levels/more evolved it will restrict movesets for a DV spread specific to that catchrate.

Notably:
  • 15/15/14/15 is available on every single pokemon
  • we still have no idea how fishing works and we still need to figure that out (fished pokemon are perfect)
So here is the java applet you can run to find every possible DV spread for a given catchrate. to use it, just select the game and catchrate and run the program, and it will create a file in the same folder as the applet. red/blue has slightly different results from yellow because yellow version is laggy. (you will get the same exact files as i posted on pastebin)

cartridge accuracy is important etc. pls implement.

edit: citation for encounter rates http://wiki.pokemonspeedruns.com/index.php?title=Pokémon_Red/Blue/Yellow_Encounter_Slots
 
Last edited:
So, these are the OU mons that would be affected: Tauros, Chansey, Exeggutor, Gengar, Golem, Starmie, Slowbro and Cloyster.

I might have checked these wrong, but I'm pretty sure these are the two primary IV spreads for each mon (ignoring min attack spreads):
(Atk / Def / Spe / Spc)
Tauros - 15/15/15/9
Tauros - 15/15/14/15
Exeggutor - 15/15/15/9
Exeggutor - 15/15/14/15
Chansey - 15/15/15/9
Chansey - 15/15/14/15
Gengar - 15/15/15/5
Gengar - 15/15/14/15
Golem - 15/15/15/7
Golem - 15/15/14/15

V------IGNORING FISHING------V
Starmie - 15/15/15/7
Starmie - 15/15/14/15
Slowbro - 15/15/15/4
Slowbro - 15/15/14/15
Cloyster - 15/15/15/4
Cloyster - 15/15/14/15


Golem gets by largely unscathed, as the only thing the 15/15/14/15 spread needs to worry about is a ditto against a 15/15/15/7 Golem. Chansey too, as nothing relevant would outspeed except other Chanseys, and the slower speed is only inconvenient if you're getting into a freeze war or trading Thunder Waves at the same time for some reason.

Exeggutor also only has itself to worry about, though the potential of an Exeggutor being guaranteed the first move in a ditto would give the 15/15/15/9 spread some legitimate usage. Since Exeggutor would either be forced to drop below Base 55 Speed or reduce its Special which makes it more susceptible to Special attacks, Machamp could be slightly less crappy since it'd have a little more breathing room against its most common counter (it also helps that since it is obtainable via trade it doesn't lose any IVs)

Tauros and Gengar are in a trickier position. Gengar REALLY does not enjoy losing its Special (an equivalent loss of 10 base special if it goes 15/15/15/5), but at the same time it really wants that 2 speed to not be outsped by the 9 Spc Tauroses and 5 Spc Gengars and in turn outspeed the 14 Spe Tauros/Gengars. Tauros also dislikes a loss of Special as it is just enough to cause problems (I'll have a full list later, but one example is Alakazam's Psychic has about a 1/3 chance of 2HKO (1/4 OHKO with a crit) where Tauros would normally have survived), but similarly to Gengar, the speed loss is also potentially very scary. 9 Spc Tauros does not lose any physical bulk, which means barring hax it straight up wins dittos with 14 Spe Tauroses, and 5 Spc Gengar also is guaranteed the first move. But again, at the same time going with 9 Spc makes it more vulnerable to special attackers like Lapras or Alakazam while weakening its ability to hit Exeggutor and Zapdos. It'd be very interesting to see how things develop with their new IV spreads.

As a side note, Gengar can be obtained via trade in Blue (JPN), HOWEVER this would be invalid for use on simulators since they use the International mechanics (Blizzard has a 10% chance to freeze) instead of Japanese mechanics (Blizzard has a 30% chance to freeze). If I remember correctly, you could not trade Japanese Pokemon to an International Gen 1/2 game or vice versa, which means 15/15/15/15 Gengar should only be legal on RBY metas with Blizzard set to 30% freeze chance to match Japan's mechanics.

Not going to look too deep into Starmie/Slowbro/Cloyster until fishing is figured out, but...

Only Starmie and Persian have base 115 speed, and Persian while usable is mediocre, so the only real threat with 14 Spe is opposing 7 Spc Starmies getting the first move, which probably isn't a huge issue since most of the time it'd only be relevant for Starmie dittos (It's been a while since I played RBY OU, does that happen often? I don't remember that happening much). Those that use Persian though would enjoy the 14 Spe Starmies around, since that could guarantee a first strike. EDIT: Just checked calcs, 14 Spe Starmies have a 32.1% chance to 2HKO (17.9% OHKO with a crit) with Thunderbolt while 7 Spc only 3HKOs back, so even the 1v1 isn't guaranteed for 7 Spc Starmie.

Slowbro has to choose between 14 Spe or 4 Spc, so it'd probably just run 14 Spe all the time. Slowbro's going to be throwing out paralysis and is slower than most everything else anyways, so not like it'd lose out on much. Though unparalyzed Snorlaxes going from a speed tie to always moving first changes things a bit.

Cloyster's speed rests comfortably between OU's fast mons and slow mons, so it most likely wouldn't be bothered by the loss of 2 speed. Really the only issue it'd have would be facing a 15/15/15/7 Victreebel.

Edit: Hashtag pointed out that there's a 8/15/15/15 spread available (lowers only Attack), which Chansey, Starmie and Slowbro have no issues with. Gengar, Exeggutor and Cloyster can run it too at the cost of weakening Explosion and other Normal-type moves, though especially in Gengar's case it'd really prefer it to retain both its Speed and Special. Tauros however doesn't get much out of it, just a third (and likely mostly unused) option that compromises its Attack to keep full Speed and Special.
 
Last edited:
most of (all of?) these mons also get 8/15/15/15 (including gengar) which can be nice for mons that want speed and special but don't mind the attack drop
 

froggy25

Bye RNGmon
is a Researcher Alumnus
As a side note, Gengar can be obtained via trade in Blue (JPN), HOWEVER this would be invalid for use on simulators since they use the International mechanics (Blizzard has a 10% chance to freeze) instead of Japanese mechanics (Blizzard has a 30% chance to freeze). If I remember correctly, you could not trade Japanese Pokemon to an International Gen 1/2 game or vice versa, which means 15/15/15/15 Gengar should only be legal on RBY metas with Blizzard set to 30% freeze chance to match Japan's mechanics.
Japanese Yellow can use the 10% Blizzard through Colosseum 2 link battles, but that's only 3vs3 iirc so...

Edit: Hashtag pointed out that there's a 8/15/15/15 spread available (lowers only Attack), which Chansey, Starmie and Slowbro have no issues with. Gengar, Exeggutor and Cloyster can run it too at the cost of weakening Explosion and other Normal-type moves, though especially in Gengar's case it'd really prefer it to retain both its Speed and Special. Tauros however doesn't get much out of it, just a third (and likely mostly unused) option that compromises its Attack to keep full Speed and Special.
Don't forget that it comes at a hefty 8 HP DV price, which reprensents 16 HP at level 100.
 
I didn't think about their HP DVs. That does look like it changes quite a bit.

I checked out how the 16 HP drop affects Starmie's matchups, and it manages to worsen every single matchup against OU Pokemon.

Tauros Body Slam vs. Starmie: 102-120 (33.2 - 39%) -- 100% chance to 3HKO (was 83.7%)
Tauros Crit Body Slam + Body Slam vs. Starmie: 299 - 352 (97 - 114.5) -- about 83% (was about 53%)
Chansey Thunderbolt vs. Starmie: 144-170 (46.9 - 55.3%) -- 74.5% chance to 2HKO (was 22.6%)
Snorlax Body Slam + Hyper Beam vs. Starmie: 300-354 (97.7 - 115.2%) -- about 85%-ish chance to 2HKO (was about 56%-ish)
Exeggutor/Cloyster Explosion vs. Starmie: 266-313 (86.6 - 101.9%) -- 12.8% chance to OHKO (did 96.9% max roll before)
Exeggutor Double-Edge vs. Starmie: 78-92 (25.4 - 29.9%) -- guaranteed 4HKO (was 97.9%)
Exeggutor Mega Drain vs. Starmie: 103-122 (33.5 - 39.7%) -- guaranteed 3HKO (was 94%)
Alakazam Psychic vs. -1 Starmie: 91-107 (29.6 - 34.8%) -- 9.9% chance to 3HKO (was 4HKO)
Starmie Thunderbolt vs. Starmie: 137-162 (44.6 - 52.7%) -- 24.1% chance to 2HKO (was 0.2%)
Zapdos Thunder vs. Starmie: 306-360 (99.6 - 117.2%) -- 97.4% chance to OHKO (was 69.2%)
Lapras Thunderbolt vs. Starmie: 134-158 (43.6 - 51.4%) -- 7.3% chance to 2HKO (was 3HKO)
+4 Slowbro Surf vs. Starmie: 133-157 (43.3 - 51.1%) -- 4.5% chance to 2HKO (was 3HKO)
+2 Slowbro Surf vs. Starmie: 89-105 (28.9 - 34.2%) -- 1.9% chance to 3HKO (was 4HKO)
Jynx Blizzard vs. -1 Starmie: 95-112 (30.9 - 36.4%) -- 63% chance to 3HKO (was 6.3%)
Golem Explosion vs. Starmie: 291-343 (94.7 - 111.7%) -- 69.2% chance to OHKO (was 38.5%)
Gengar Mega Drain vs. Starmie: 71-84 (23.1 - 27.3%) -- 64.2% chance to 4HKO (was 4%)
Rhydon Earthquake vs. Starmie: 143-169 (46.5 - 55%) -- 68.7% chance to 2HKO (was 17.7%)
Rhydon Earthquake vs. Starmie on a critical hit: 279-328 (90.8 - 106.8%) -- 43.6% chance to OHKO (was 10.3%)


Most matchups are affected very slightly, but there are a few major changes.

If Snorlax paralyzes Starmie with Body Slam, Hyper Beam is now a much more reliable KO if Starmie stays in. For the Snorlax player, you can use percentages to help you determine which Starmie it is. If Body Slam did 35% damage or less it's not 8 Atk Starmie, and if it did 41% or more, it's most likely 8 Atk Starmie. (I think, don't remember exactly how damage percentages are shown in Showdown right now)

Rhydon actually has the advantage against paralyzed 8 Atk Starmie without Water STAB, as Rhydon is far more likely to 2HKO 8 Atk Starmie before Rhydon gets KO'd itself.

Golem's Explosion is now far more likely to OHKO, and Cloyster's and Exeggutor's Explosions also can now OHKO.

It looks like unless you want the speed advantage in Starmie dittos and to speed tie Persian, 14 Spe Starmie is still the way to go. Persian users are still looking at a slightly brighter future here.

Also, even without checking Cloyster calcs I can already see 8 Atk is actually really bad for it. It drops Cloyster below 301 HP, which puts it in 3HKO range of Seismic Toss and Night Shade.
 
Last edited:
i think it probably does but you can probably get 4x15 spreads via breeding so you shouldnt ever have to worry about it except for, hilariously, unown, which can't breed and isn't an event encounter
edit: oh and ditto now that i think of it?
 
Last edited:
Even Unown's RNG can be rigged to an extent by only completing certain tile puzzles, as that will cause the game to reroll any IV set that corresponds to a letter you haven't unlocked yet.
 
Even Unown's RNG can be rigged to an extent by only completing certain tile puzzles, as that will cause the game to reroll any IV set that corresponds to a letter you haven't unlocked yet.
How exactly does this reroll work? Can an ordinarily impossible-DV encounter be generated under these circumstances?
 
Bump-a-lump

So afaik no-one ever worked out how fishing works so this got set aside. WELL I've been looking at the disassembly for pokemon yellow, and if I'm reading it correctly old/good rod pokemon aren't affected by this mechanic. Not sure of super rod because I haven't deciphered it yet (I'm only learning gameboy assembly code as I go). Edit: see below

Old rod- does not generate any random numbers. Also irrelevant because you can obtain Magikarp via that guy who sells it to you outside Mt Moon
Good rod- Generates a random number, but only the right-most bit of it is used in determining whether or not there's an encounter. This means there's a 50% chance of an encounter, as any odd number will work. Since any odd number will do the trick, I don't think this has any bearing on possible DV combos.
Edit: I think the super rod is practically the same as the good rod. There's a lot that's different, but I think the encounter is determined based on the last bit of a, same as the good rod

I'm really not familiar with gb assembly code so I could be wrong in my conclusions and there could be some other factor that I'm missing so please correct me if I'm wrong. I'll post the relevant code below

Code:
ItemUseOldRod:
    call FishingInit
    jp c, ItemUseNotTime
    lb bc, 5, MAGIKARP
    ld a, $1 ; set bite
    jr RodResponse

ItemUseGoodRod:
    call FishingInit
    jp c, ItemUseNotTime
.RandomLoop
    call Random
    srl a
    jr c, .SetBite
    and %11
    cp 2
    jr nc, .RandomLoop
    ; choose which monster appears
    ld hl, GoodRodMons
    add a
    ld c, a
    ld b, 0
    add hl, bc
    ld b, [hl]
    inc hl
    ld c, [hl]
    and a
.SetBite
    ld a, 0
    rla
    xor 1
    jr RodResponse

INCLUDE "data/good_rod.asm"

ItemUseSuperRod:
    call FishingInit
    jp c, ItemUseNotTime
    callab ReadSuperRodData
    ld c, e
    ld b, d
    ld a, $2
    ld [wRodResponse], a
    ld a, c
    and a ; are there fish in the map?
    jr z, DoNotGenerateFishingEncounter ; if not, do not generate an encounter
    ld a, $1
    ld [wRodResponse], a
    call Random
    and $1
    jr nz, RodResponse
    xor a
    ld [wRodResponse], a
    jr DoNotGenerateFishingEncounter

RodResponse:
    ld [wRodResponse], a

    dec a ; is there a bite?
    jr nz, DoNotGenerateFishingEncounter
    ; if yes, store level and species data
    ld a, 1
    ld [wMoveMissed], a
    ld a, b ; level
    ld [wCurEnemyLVL], a
    ld a, c ; species
    ld [wCurOpponent], a

DoNotGenerateFishingEncounter:
    ld hl, wWalkBikeSurfState
    ld a, [hl] ; store the value in a
    push af
    push hl
    ld [hl], 0
    callba FishingAnim
    pop hl
    pop af
    ld [hl], a
    ret

; checks if fishing is possible and if so, runs initialization code common to all rods
; unsets carry if fishing is possible, sets carry if not
FishingInit:
    ld a, [wIsInBattle]
    and a
    jr z, .notInBattle
    scf ; can't fish during battle
    ret

.notInBattle
    call IsNextTileShoreOrWater
    jr nc, .cannotFish
    ld a, [wWalkBikeSurfState]
    cp 2 ; Surfing?
    jr z, .cannotFish
    call ItemUseReloadOverworldData
    ld hl, ItemUseText00
    call PrintText
    ld a, SFX_HEAL_AILMENT
    call PlaySound
    ld a, $2
    ld [wd49c], a
    ld a, $81
    ld [wPikachuMood], a
    ld c, 80
    call DelayFrames
    and a
    ret

.cannotFish
    scf ; can't fish when surfing
    ret
edit: should also mention I'm working with the disassembly here https://github.com/pret/pokeyellow
edit2: I think it's a similar deal with the super rod? The key point is "and $1". The way that works is it compares each bit of a (which Random has set to be, well, random) with 1, and then if both a and 1 are true, the instruction returns true and stores the result in a, with the key point being that the nz (not zero) flag is set based on the outcome of this comparison- if nz is true, an encounter is generated.

I'm assuming whether or not "and $1" returns true is determined by either the first or last bit of a- probably the last, but I don't know for certain. It's obviously a single bit because if the game required every single bit of a to be 1 the item wouldn't work most of the time, which isn't the case. If it's the last bit, it's every odd number that generates an encounter. If it's the first bit, it'd be every number >=128. Probably it's the last bit, which is the same as for the good rod

edit3: I must say, in the end I found this a really fascinating exercise. I normally stick to higher level stuff, so delving this deep ended up being really interesting
 
Last edited:
Whoa, TIL that the good rod encounter rate is 25% and that the old rod encounter rate is... 100%.

It's actually a bit misleading because where the disassembly says .SetBite, it's actually not a bite; the result gets caught in jr nz, DoNotGenerateFishingEncounter (a is 0). So first, a random number has to go through the being odd check, but then if bit 2 (bit 1 after the shift) is 1, a random number is generated again even the first check was ok.

and $1 is the same as and a, $1, so yeah, it's the lower bit.

As for the RNG, it's actually perfect, because if there is a bite the player will be prompted to press the A button to advance the text box that pops up. So unless you TAS, you will do it with unpredicatble timing effectively disguising the outcome of the previous random numbers.
 
Bumping this again with some new concerns. This seemed like the appropriate thread to ask for help. Gen 1 IV legality now has bearing elsewhere.

An update to Pokemon Bank and Pokemon Transporter has been released that allows Gen 1 Pokemon to enter Gen 7. The conversion process is... interesting. There is basically no conversion between DVs and IVs, effectively throwing DVs away for all but one aspect.

Pokemon Transporter uses DVs to calculate if a Pokemon will be shiny when it transfers to Gen 2. The program attempted to mimic the GSC shiny formula of A/10/10/10 for a shiny, but goofed and set the formula to 10/A/10/10 instead (where A is 2, 3, 6, 7, 10, 11, 14 or 15). A quick scan of the pastebins that Hashtag linked showed no spreads that match the new shiny value, meaning that wild encounter RBY shinies are impossible by both the Gen 2 and Gen 7 standards.

So, with that in mind, I attempted to catalog every Pokemon with no DV restrictions and formed a spreadsheet of all mons that can legally be shiny when transferred to Gen 7. The only thing notable I can see missing from the list Hashtag posted is Psyduck since that's a Stadium thing. Since Ortheone's research is so recent, I didn't include it, but if there's clearer verification any IV spread is possible fishing, I'll add it.

Please let me know if there are any mistakes on the list or any RBY mechanic I'm oblivious to that'd influence this.
 
Last edited:
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top