1. The moderators of this forum are Jellicent and Lutra.
  2. Welcome to Smogon Forums! Please take a minute to read the rules.
  3. Click here to ensure that you never miss a new SmogonU video upload!

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

Discussion in 'Ruins of Alph' started by Zowayix, May 24, 2016.

  1. Mirabel_

    Mirabel_

    Joined:
    Oct 18, 2015
    Messages:
    57
    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.
  2. george182

    george182

    Joined:
    Jun 27, 2009
    Messages:
    551
    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.
  3. Golden Gyarados

    Golden Gyarados
    is a Pre-Contributor

    Joined:
    Sep 17, 2011
    Messages:
    363
    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:

    And I like that.
    Last edited: Jun 14, 2016
    Karxrida and Lutra like this.
  4. NixHex

    NixHex Feels like standing still for eons and eons
    is a Site Staff Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Contributor Alumnusis a Battle Server Moderator Alumnus

    Joined:
    Oct 6, 2009
    Messages:
    3,039
    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.
  5. Mirabel_

    Mirabel_

    Joined:
    Oct 18, 2015
    Messages:
    57
    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.
    Zowayix likes this.
  6. Golden Gyarados

    Golden Gyarados
    is a Pre-Contributor

    Joined:
    Sep 17, 2011
    Messages:
    363
    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: Jun 15, 2016
    Linkin Karp, Mr.E and Mirabel_ like this.
  7. Mirabel_

    Mirabel_

    Joined:
    Oct 18, 2015
    Messages:
    57
    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: Jun 15, 2016
    Porii Sames likes this.
  8. bwburke94

    bwburke94

    Joined:
    Sep 12, 2010
    Messages:
    213
    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.
    Mirabel_ likes this.
  9. bwburke94

    bwburke94

    Joined:
    Sep 12, 2010
    Messages:
    213
    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.
  10. Hashtag

    Hashtag

    Joined:
    Feb 23, 2012
    Messages:
    342
    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.

    possible spreads (open)


    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: Jun 26, 2017
  11. Enigami

    Enigami

    Joined:
    Jun 30, 2014
    Messages:
    174
    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: Jul 27, 2016
    WreckDra, Mirabel_ and Hashtag like this.
  12. Hashtag

    Hashtag

    Joined:
    Feb 23, 2012
    Messages:
    342
    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
    Enigami likes this.
  13. froggy25

    froggy25 Bye RNGmon
    is a Pokemon Researcher

    Joined:
    Dec 31, 2006
    Messages:
    391
    Japanese Yellow can use the 10% Blizzard through Colosseum 2 link battles, but that's only 3vs3 iirc so...

    Don't forget that it comes at a hefty 8 HP DV price, which reprensents 16 HP at level 100.
    Linkin Karp, Hashtag and Enigami like this.
  14. Enigami

    Enigami

    Joined:
    Jun 30, 2014
    Messages:
    174
    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.

    Calcs for 7 HP DV Starmie (open)

    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: Aug 10, 2016
    froggy25, bwburke94 and Hashtag like this.
  15. Zowayix

    Zowayix

    Joined:
    Oct 26, 2008
    Messages:
    495
    Crystal_ just posted this video:

    ApplepieFTW, froggy25, Martin and 4 others like this.
  16. Crystal_

    Crystal_
    is a Pokemon Researcheris a Contributor Alumnusis a Smogon Media Contributor Alumnusis a Past SPL Champion

    Joined:
    Dec 20, 2009
    Messages:
    1,155
    That escalated quickly.
    xJoelituh likes this.
  17. Zowayix

    Zowayix

    Joined:
    Oct 26, 2008
    Messages:
    495
    Something that's been nagging at me: Does Gen II's random number generator behave similarly at all?
    Mirabel_ likes this.
  18. Hashtag

    Hashtag

    Joined:
    Feb 23, 2012
    Messages:
    342
    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: Aug 17, 2016
  19. froggy25

    froggy25 Bye RNGmon
    is a Pokemon Researcher

    Joined:
    Dec 31, 2006
    Messages:
    391
    You can force any set of DVs on Ditto with Mimic in Gen 1.

    You can add it to the list of valid 15/15/15/15 in RBY btw.
    Zowayix and Hashtag like this.
  20. SadisticMystic

    SadisticMystic

    Joined:
    Jul 19, 2016
    Messages:
    156
    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.
  21. bwburke94

    bwburke94

    Joined:
    Sep 12, 2010
    Messages:
    213
    How exactly does this reroll work? Can an ordinarily impossible-DV encounter be generated under these circumstances?
  22. Ortheore

    Ortheore

    Joined:
    Oct 12, 2013
    Messages:
    561
    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: Jan 15, 2017
    froggy25, Mirabel_, Crystal_ and 2 others like this.
  23. Crystal_

    Crystal_
    is a Pokemon Researcheris a Contributor Alumnusis a Smogon Media Contributor Alumnusis a Past SPL Champion

    Joined:
    Dec 20, 2009
    Messages:
    1,155
    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.
    froggy25 likes this.
  24. TheMantyke

    TheMantyke what if he kicks the ghost
    is a Smogon Social Media Contributoris a Forum Moderatoris a Live Chat Contributoris a Site Staff Alumnusis a Team Rater Alumnusis a Community Contributor Alumnusis a Contributor Alumnus
    Moderator

    Joined:
    Jun 9, 2007
    Messages:
    6,315
    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: Jan 26, 2017
  25. Hashtag

    Hashtag

    Joined:
    Feb 23, 2012
    Messages:
    342
    small fix nidorino and nidorina are both game corner mons so should be available with all nicknames

    edit: also yellow ingame trades: you left out dugtrio (GURIO), and the machamp can be prevented from evolving so RICKY is legal as a machoke too.
    froggy25, Crystal_ and Mirabel_ like this.

Users Viewing Thread (Users: 0, Guests: 0)