1. New to the forums? Check out our Mentorship Program!
    Our mentors will answer your questions and help you become a part of the community!
  2. Welcome to Smogon Forums! Please take a minute to read the rules.
  3. Welcome to Wi-Fi! Please remember to read the rules and do NOT create a new thread for simple trades or Friend Safari codes.

Past Gen RNG Research

Discussion in 'Wi-Fi' started by mingot, Sep 12, 2009.

  1. Kaphotics

    Kaphotics Remodeling Kitchens
    is a Pokemon Researcheris a Contributor to Smogon

    Joined:
    Apr 25, 2009
    Messages:
    777
    ;)

    It's just not a priority right now!

    If you're bored enough, you can use the Wondercard seed searcher to look for 0-2 IVs and (ItemRange)*32/100 IVs for the second.

    So if you're looking for the rarest items you'd just search for <=2 for HP/Def/SpD, and =31 for Atk/SpA/Spe, with a starting frame around 80~200. Then check the seed in researcher to see if it fits your needs with the calcs above. Then just abuse it.
  2. Ryziken

    Ryziken

    Joined:
    Apr 9, 2011
    Messages:
    25
    Oh wonderful! I didn't see that. I'm glad to know some work has been done in that regard, and I hope it can eventually wriggle its way into the next new version of RNG reporter. :)
  3. ΩDonut

    ΩDonut don't glaze me bro
    is a Programmeris a Forum Moderatoris a Community Contributoris a Pokemon Researcheris a Contributor to Smogon
    Moderator

    Joined:
    Aug 23, 2006
    Messages:
    3,727
    Cute Charm (BW)

    Code:
    For land\surfing encounters.  Presumably others follow a similar pattern, with the CC check replacing Sync and this alternate PID generation being used instead.
    0	Initial
    1	Cute Charm check (u32 * 0xFFFF / 0x290 > 67)
    2	ESV - Land / Surf
    3	Held Item
    4	PID [url=http://www.smogon.com/forums/showpost.php?p=4011989&postcount=842](follows Entralink PID calculation)[/url], is modified with 0x80000000 as appropriate
    5	PID modification \ Nature (failed CC)
    6	Nature (successful CC)
    
  4. GoldenBanana

    GoldenBanana

    Joined:
    Apr 10, 2010
    Messages:
    137
    Pokéradar Patch Locations
    Recycling some of Kaphotics' work
    Upon activating the pokéradar, the first random number calculates which patch will shake in the 9x9 perimeter. The second will calculate for the 7x7 perimeter, and so on.
    Code:
    [COLOR=black]0-Initial[/COLOR]
    [COLOR=black]1-Position1 -- 9x9[/COLOR]
    [COLOR=black]2-Position2 -- 7x7[/COLOR]
    [COLOR=black]3-Position3 -- 5x5[/COLOR]
    [COLOR=black]4-Position4 -- 3x3[/COLOR]
    
    Each patch is assigned a number depending on how many patches are in that perimeter:
    Code:
    [COLOR=black]9x9 -- 0-31 (0x0-0x1F)[/COLOR]
    [COLOR=black]7x7 -- 0-23 (0x0-0x17)[/COLOR]
    [COLOR=black]5x5 -- 0-15 (0x0-0xF)[/COLOR]
    [COLOR=black]3x3 -- 0-7  (0x0-0x7)[/COLOR]
    
    Dividing the maximum seed (FFFF) by the number of patches in each perimeter (in hexadecimal) and adding 1 gives the maximum number of seeds in a range that will make a certain patch shake:
    Code:
    [COLOR=black]9x9 -- FFFF/0x20 = 7FF  + 1 = 0x800[/COLOR]
    [COLOR=black]7x7 -- FFFF/0x18 = AAA  + 1 = 0xAAB[/COLOR]
    [COLOR=black]5x5 -- FFFF/0x10 = FFF  + 1 = 0x1000[/COLOR]
    [COLOR=black]3x3 -- FFFF/0x8  = 1FFF + 1 = 0x2000[/COLOR]
    
    To predict which patch will shake, simply divide the seed by the corresponding number above. Convert the result to decimal and find it in the corresponding perimeter on the grid below:
    Code:
    [COLOR=purple][SIZE=2][COLOR=purple]00 01 02 03 04 05 06 07 08[/COLOR][/SIZE]
    [SIZE=2][COLOR=#000000][COLOR=purple]18[/COLOR] [/COLOR][COLOR=seagreen]00 01 02 03 04 05 06 [/COLOR][COLOR=purple]19[/COLOR][/SIZE]
    [SIZE=2][COLOR=#000000][COLOR=purple]20[/COLOR] [/COLOR][COLOR=seagreen]14 [/COLOR][COLOR=red]00 01 02 03 04 [/COLOR][COLOR=seagreen]15 [/COLOR][COLOR=purple]21[/COLOR][/SIZE]
    [SIZE=2][COLOR=#000000][COLOR=purple]22[/COLOR] [/COLOR][COLOR=seagreen]16 [/COLOR][COLOR=red]10[/COLOR][COLOR=black] 00 01 02 [/COLOR][COLOR=red]11 [/COLOR][COLOR=seagreen]17 [/COLOR][COLOR=purple]23[/COLOR][/SIZE]
    [SIZE=2][COLOR=#000000][COLOR=purple]24[/COLOR] [/COLOR][COLOR=seagreen]18 [/COLOR][COLOR=red]12[/COLOR][COLOR=black] 06 UU 07 [/COLOR][COLOR=red]13 [/COLOR][COLOR=seagreen]19 [/COLOR][COLOR=purple]25[/COLOR][/SIZE]
    [SIZE=2][COLOR=#000000][COLOR=purple]26[/COLOR] [/COLOR][COLOR=seagreen]20 [/COLOR][COLOR=red]14[/COLOR][COLOR=black] 03 04 05 [/COLOR][COLOR=red]15 [/COLOR][COLOR=seagreen]21 [/COLOR][COLOR=purple]27[/COLOR][/SIZE]
    [SIZE=2][COLOR=#000000][COLOR=purple]28[/COLOR] [/COLOR][COLOR=seagreen]22 [/COLOR][COLOR=red]05 06 07 08 09[/COLOR][COLOR=seagreen] 23 [/COLOR][COLOR=purple]29[/COLOR][/SIZE]
    [SIZE=2][COLOR=#000000][COLOR=purple]30[/COLOR] [/COLOR][COLOR=seagreen]07 08 09 10 11 12 13 [/COLOR][COLOR=purple]31[/COLOR][/SIZE]
    [SIZE=2][COLOR=purple]09 10 11 12 13 14 15 16 17[/COLOR][/SIZE][/COLOR]
    So say the seed for Position1 (the 9x9, purple perimeter) is 5E95. Dividing by 0x800 gives B, which is 11 in decimal. Therefore, the patch at (-2, -4) will shake.
  5. chiizu

    chiizu PPPPPPPPPPPPPPPPP RNG
    is a Programmeris a Pokemon Researcher

    Joined:
    Nov 12, 2010
    Messages:
    418
    Faster (Useful) Capture Searches
    In PPRNG, about 75% of the search time for a standard seed encounter is taken up by initializing and manipulating the MTRNG, even when using a lazy version.

    It turns out, however, that for captures, if you limit your search to useful IV spreads (hex/physical/special flawless and hidden power flawless, and the trick room equivalents), there aren't all that many useful seeds for the MTRNG, since it's only seeded with a 32-bit value. For example, there are only 5 seeds for the MTRNG that will result in hex-flawless IVs on IV frame 1.

    So, I decided to calculate all useful MTRNG seeds for the first 6 IV frames, for both normal and roamer encounters, and I've incorporated them into PPRNG. There are 57,234 ~28,000 of them, and as numbers in hash tables they end up taking maybe 2 megabytes of memory at runtime. This is a great tradeoff for being able to eliminate the entire MTRNG overhead, which is now replaced by a simple hash table lookup of the upper 32 bits of the SHA-1 seed. Time-wise, that reduces the search time for a 30-day month with up to 3 button presses from 35 minutes to 9 minutes on my 2.53 GHz Intel Core 2 Duo.

    Unfortunately, precalculating seeds for breeding doesn't seem practical, given that there would be (28,000 x 32^3 x 6choose3 (=20)) / 6(only 1 frame for breeding) = ~6,250,000,000 seeds (somewhere around 100 gigs of data?) that would need to be kept in memory or on disk.blah blah blah...

    I also looked into how many seeds would produce good IVs for Wonder Cards, but for hex-flawless spreads alone there are around 17 billion seeds, reduced to about 680 million if you limit it to a particular nature. In doing this search, I worked out the possible distances between each matching seed in order to speed up the search, but even when taking nature into account it doesn't seem possible to enumerate Wonder Card seeds on the fly in reasonable amount of time.

    The precalucated MTRNG seed data is checked into the PPRNG code repository, under libpprng/data, and it is used in libpprng/HashedSeedQuickSearcher.cpp

    PPRNG repository (requires a GitHub account):
    https://github.com/chiizu/PPRNG
  6. DarkChaos (HCZ)

    DarkChaos (HCZ)

    Joined:
    Apr 22, 2009
    Messages:
    656
    Small information about feebas tile

    Feebas tile on Ruby/Sapphire with dead battery


    Once you find a tile using Super Rod, feebas will share that tile along with other pokemon. You can save immediate and feebas will still be there.
    EDIT as of 2-8-2012
    *Note using any rod beside super wil NOT change the feebas tile.
    *note, it could be that once you find a feebas with a rod, you dont have to use the same rod.

    If you use a good rod/old rod on the same tile, the feebas tile will not change.

    If you encounter a feebas and run from the battle, the tile will not change

    If you encounter and capture a feebas, the feebas will stay in that tile.

    If you encounter a feebas, capture it, go to another city,(I went to the nearest one from rt 118), and go back to the tile, feebas should still be there.

    edit more:

    If you fish at another spot that is not a feebas tile, the spot that still have the feebas tile wont change
    If you fail to snag a feebas, it will still be located at the tile

    Sorry its not technical as most information posted here, but it something kinda interesting.

    Edit: This correlate to this post by Tux, which is more technical.

    Edit:
    Two important things need to be tested
    1. If swichting ds changes the feebas tile.
    *Find the tile on one ds and start it on another.No it does not

    2. If my statement is true
    Nope its false
  7. Tux

    Tux

    Joined:
    Dec 1, 2011
    Messages:
    11
    Feebas Tiles on DPPl

    Feebas Tiles on DPPl

    For the Feebas tiles, this is the tile you fish on, NOT the tile you are that matters.

    In the DPPl's Feebas tiles (btw, there is 528 fishable tiles), you have 50 % to fish Feebas with any rod, 50 % to have the "normal" encounter slots probabilities. For example, when fishing on a Feebas Tile with the Super Rod, you have : 50 % of Feebas, 32.5 % of Gyarados, 17.5 % of Whiscash

    In fact you have :
    Code:
    Frame#	Meaning
    0	Initial
    1	(u16 / 0x290 [ approximatively u16 mod 100 ]) Encounter slots ??? 
    	Or anything else ??? Instruction at RAM address 0x0223BD68 
    2	(u16 >> 15) If the MSB of the PRNG result is 0, 
    	determine the Feebas tiles (Feebas will appear if the current tile is a Feebas one); 
    	otherwise, Feebas will not appear, even if the current tile is a Feebas one
    
    ------------------------------------------------

    The four feebas tiles are determined by a seed. This seed can be advanced each day by the ARNG.
    Actually, this is a bit more complex than that :
    • When the game's clock reach midnight, the seed is always advanced once
    • When loading a save file, if the current date of the DS is "less than or equal to" the date of the last saving date (e.g 01/22/12 <= 01/23/12) , then the seed is not advanced
    • Otherwise, the seed is advanced theoretically [the difference of the two dates in days] times. But, some times, the emulators (and the linkers ?) don't advance the seed.
      Furthermore, when the months or/and the years of the two dates are different, the retail game (at least) doesn't advance too.

    With n from 0 to 4 (excluded) :

    b_n is such as :
    Code:
    [I]b[/I]_[I]n[/I] = ([I]Seed[/I] >> ((3-[I]n[/I]) * 8)) & 0xFF
    Now, i_n, corresponding to each "Feebas tile's ID" (in the list) is such as :
    Code:
    [I]i[/I]_[I]n[/I] = ([I]b[/I]_[I]n[/I] mod 0x84) + 0x84 * [I]n[/I]
    Then, each tile is the corresponding value in the list to each value of i.

    Hence,
    Code:
    [I]i[/I]_[I]n[/I] ∈ [(0x84 * [I]n[/I]); (0x84 * [I]n[/I]) + 0x83]
    and thus, there is only one tile per zone of 0x84 tiles.

    Lists :
    Associative list (open)
    Code:
    0x0: 0x249
    0x1: 0x24a
    0x2: 0x24b
    0x3: 0x24c
    0x4: 0x24d
    0x5: 0x24e
    0x6: 0x24f
    0x7: 0x250
    0x8: 0x251
    0x9: 0x252
    0xa: 0x253
    0xb: 0x254
    0xc: 0x255
    0xd: 0x256
    0xe: 0x257
    0xf: 0x258
    0x10: 0x259
    0x11: 0x25a
    0x12: 0x269
    0x13: 0x26a
    0x14: 0x26b
    0x15: 0x26c
    0x16: 0x26d
    0x17: 0x26e
    0x18: 0x26f
    0x19: 0x270
    0x1a: 0x271
    0x1b: 0x272
    0x1c: 0x273
    0x1d: 0x274
    0x1e: 0x275
    0x1f: 0x276
    0x20: 0x277
    0x21: 0x278
    0x22: 0x279
    0x23: 0x27a
    0x24: 0x289
    0x25: 0x28a
    0x26: 0x28b
    0x27: 0x28c
    0x28: 0x28d
    0x29: 0x28e
    0x2a: 0x28f
    0x2b: 0x290
    0x2c: 0x291
    0x2d: 0x292
    0x2e: 0x293
    0x2f: 0x294
    0x30: 0x295
    0x31: 0x296
    0x32: 0x297
    0x33: 0x299
    0x34: 0x29a
    0x35: 0x2a9
    0x36: 0x2aa
    0x37: 0x2ab
    0x38: 0x2ad
    0x39: 0x2ae
    0x3a: 0x2af
    0x3b: 0x2b0
    0x3c: 0x2b1
    0x3d: 0x2b2
    0x3e: 0x2b3
    0x3f: 0x2b4
    0x40: 0x2b5
    0x41: 0x2b6
    0x42: 0x2b7
    0x43: 0x2b8
    0x44: 0x2b9
    0x45: 0x2ba
    0x46: 0x2c9
    0x47: 0x2ca
    0x48: 0x2cb
    0x49: 0x2cc
    0x4a: 0x2cd
    0x4b: 0x2ce
    0x4c: 0x2cf
    0x4d: 0x2d0
    0x4e: 0x2d1
    0x4f: 0x2d2
    0x50: 0x2d3
    0x51: 0x2d4
    0x52: 0x2d5
    0x53: 0x2d6
    0x54: 0x2d7
    0x55: 0x2d8
    0x56: 0x2d9
    0x57: 0x2da
    0x58: 0x2e9
    0x59: 0x2ea
    0x5a: 0x2eb
    0x5b: 0x2ec
    0x5c: 0x2ed
    0x5d: 0x2ee
    0x5e: 0x2ef
    0x5f: 0x2f0
    0x60: 0x2f1
    0x61: 0x2f2
    0x62: 0x2f3
    0x63: 0x2f4
    0x64: 0x2f5
    0x65: 0x2f6
    0x66: 0x2f7
    0x67: 0x2f8
    0x68: 0x2f9
    0x69: 0x2fa
    0x6a: 0x309
    0x6b: 0x30a
    0x6c: 0x30b
    0x6d: 0x30c
    0x6e: 0x30d
    0x6f: 0x30e
    0x70: 0x30f
    0x71: 0x310
    0x72: 0x311
    0x73: 0x312
    0x74: 0x313
    0x75: 0x314
    0x76: 0x315
    0x77: 0x316
    0x78: 0x317
    0x79: 0x318
    0x7a: 0x319
    0x7b: 0x31a
    0x7c: 0x329
    0x7d: 0x32a
    0x7e: 0x32b
    0x7f: 0x32c
    0x80: 0x32d
    0x81: 0x32e
    0x82: 0x32f
    0x83: 0x330
    -----------
    0x84: 0x331
    0x85: 0x332
    0x86: 0x333
    0x87: 0x334
    0x88: 0x335
    0x89: 0x336
    0x8a: 0x337
    0x8b: 0x338
    0x8c: 0x339
    0x8d: 0x33a
    0x8e: 0x349
    0x8f: 0x34a
    0x90: 0x34b
    0x91: 0x34c
    0x92: 0x34d
    0x93: 0x34e
    0x94: 0x34f
    0x95: 0x350
    0x96: 0x351
    0x97: 0x352
    0x98: 0x353
    0x99: 0x354
    0x9a: 0x355
    0x9b: 0x356
    0x9c: 0x357
    0x9d: 0x358
    0x9e: 0x359
    0x9f: 0x35a
    0xa0: 0x369
    0xa1: 0x36a
    0xa2: 0x36b
    0xa3: 0x36c
    0xa4: 0x36d
    0xa5: 0x36e
    0xa6: 0x370
    0xa7: 0x371
    0xa8: 0x372
    0xa9: 0x373
    0xaa: 0x374
    0xab: 0x375
    0xac: 0x376
    0xad: 0x377
    0xae: 0x378
    0xaf: 0x379
    0xb0: 0x37a
    0xb1: 0x389
    0xb2: 0x38a
    0xb3: 0x38b
    0xb4: 0x38c
    0xb5: 0x38d
    0xb6: 0x38e
    0xb7: 0x38f
    0xb8: 0x390
    0xb9: 0x391
    0xba: 0x392
    0xbb: 0x393
    0xbc: 0x394
    0xbd: 0x395
    0xbe: 0x396
    0xbf: 0x397
    0xc0: 0x398
    0xc1: 0x399
    0xc2: 0x39a
    0xc3: 0x3a9
    0xc4: 0x3aa
    0xc5: 0x3ab
    0xc6: 0x3ac
    0xc7: 0x3ad
    0xc8: 0x3ae
    0xc9: 0x3af
    0xca: 0x3b0
    0xcb: 0x3b8
    0xcc: 0x3b9
    0xcd: 0x3ba
    0xce: 0x3c9
    0xcf: 0x3ca
    0xd0: 0x3cb
    0xd1: 0x3cc
    0xd2: 0x3cd
    0xd3: 0x3ce
    0xd4: 0x3cf
    0xd5: 0x3d0
    0xd6: 0x3d8
    0xd7: 0x3d9
    0xd8: 0x3da
    0xd9: 0x3e9
    0xda: 0x3ea
    0xdb: 0x3eb
    0xdc: 0x3ec
    0xdd: 0x3ed
    0xde: 0x3ee
    0xdf: 0x3ef
    0xe0: 0x3f0
    0xe1: 0x3f8
    0xe2: 0x3f9
    0xe3: 0x3fa
    0xe4: 0x409
    0xe5: 0x40a
    0xe6: 0x40d
    0xe7: 0x40e
    0xe8: 0x40f
    0xe9: 0x410
    0xea: 0x418
    0xeb: 0x419
    0xec: 0x41a
    0xed: 0x429
    0xee: 0x42a
    0xef: 0x42d
    0xf0: 0x42e
    0xf1: 0x42f
    0xf2: 0x430
    0xf3: 0x438
    0xf4: 0x439
    0xf5: 0x43a
    0xf6: 0x449
    0xf7: 0x44a
    0xf8: 0x44b
    0xf9: 0x44c
    0xfa: 0x44d
    0xfb: 0x44e
    0xfc: 0x44f
    0xfd: 0x450
    0xfe: 0x458
    0xff: 0x459
    0x100: 0x45a
    0x101: 0x469
    0x102: 0x46a
    0x103: 0x46b
    0x104: 0x46c
    0x105: 0x46d
    0x106: 0x46e
    0x107: 0x46f
    ------------
    0x108: 0x470
    0x109: 0x478
    0x10a: 0x479
    0x10b: 0x47a
    0x10c: 0x489
    0x10d: 0x48a
    0x10e: 0x48b
    0x10f: 0x48c
    0x110: 0x48d
    0x111: 0x48e
    0x112: 0x48f
    0x113: 0x490
    0x114: 0x491
    0x115: 0x492
    0x116: 0x493
    0x117: 0x494
    0x118: 0x497
    0x119: 0x498
    0x11a: 0x499
    0x11b: 0x49a
    0x11c: 0x4a9
    0x11d: 0x4aa
    0x11e: 0x4ab
    0x11f: 0x4ac
    0x120: 0x4ad
    0x121: 0x4ae
    0x122: 0x4af
    0x123: 0x4b0
    0x124: 0x4b1
    0x125: 0x4b2
    0x126: 0x4b3
    0x127: 0x4b4
    0x128: 0x4b7
    0x129: 0x4b8
    0x12a: 0x4b9
    0x12b: 0x4ba
    0x12c: 0x4c9
    0x12d: 0x4ca
    0x12e: 0x4cb
    0x12f: 0x4cc
    0x130: 0x4cd
    0x131: 0x4ce
    0x132: 0x4cf
    0x133: 0x4d0
    0x134: 0x4d1
    0x135: 0x4d2
    0x136: 0x4d3
    0x137: 0x4d4
    0x138: 0x4d5
    0x139: 0x4d6
    0x13a: 0x4d7
    0x13b: 0x4d8
    0x13c: 0x4d9
    0x13d: 0x4da
    0x13e: 0x4e9
    0x13f: 0x4ea
    0x140: 0x4eb
    0x141: 0x4ec
    0x142: 0x4ed
    0x143: 0x4ee
    0x144: 0x4ef
    0x145: 0x4f0
    0x146: 0x4f1
    0x147: 0x4f2
    0x148: 0x4f3
    0x149: 0x4f4
    0x14a: 0x4f5
    0x14b: 0x4f6
    0x14c: 0x4f7
    0x14d: 0x4f8
    0x14e: 0x4f9
    0x14f: 0x4fa
    0x150: 0x509
    0x151: 0x50a
    0x152: 0x50b
    0x153: 0x50c
    0x154: 0x50d
    0x155: 0x50e
    0x156: 0x50f
    0x157: 0x510
    0x158: 0x511
    0x159: 0x512
    0x15a: 0x513
    0x15b: 0x514
    0x15c: 0x515
    0x15d: 0x519
    0x15e: 0x51a
    0x15f: 0x529
    0x160: 0x52a
    0x161: 0x52b
    0x162: 0x52c
    0x163: 0x52d
    0x164: 0x52e
    0x165: 0x52f
    0x166: 0x530
    0x167: 0x531
    0x168: 0x532
    0x169: 0x533
    0x16a: 0x534
    0x16b: 0x535
    0x16c: 0x539
    0x16d: 0x53a
    0x16e: 0x549
    0x16f: 0x54a
    0x170: 0x54b
    0x171: 0x54c
    0x172: 0x54d
    0x173: 0x54e
    0x174: 0x54f
    0x175: 0x550
    0x176: 0x551
    0x177: 0x552
    0x178: 0x553
    0x179: 0x554
    0x17a: 0x555
    0x17b: 0x559
    0x17c: 0x55a
    0x17d: 0x569
    0x17e: 0x56a
    0x17f: 0x56b
    0x180: 0x56c
    0x181: 0x56d
    0x182: 0x56e
    0x183: 0x56f
    0x184: 0x570
    0x185: 0x571
    0x186: 0x572
    0x187: 0x573
    0x188: 0x574
    0x189: 0x575
    0x18a: 0x576
    0x18b: 0x577
    ------------
    0x18c: 0x578
    0x18d: 0x579
    0x18e: 0x57a
    0x18f: 0x589
    0x190: 0x58a
    0x191: 0x58b
    0x192: 0x58c
    0x193: 0x58d
    0x194: 0x58e
    0x195: 0x58f
    0x196: 0x590
    0x197: 0x591
    0x198: 0x592
    0x199: 0x594
    0x19a: 0x595
    0x19b: 0x596
    0x19c: 0x597
    0x19d: 0x598
    0x19e: 0x599
    0x19f: 0x59a
    0x1a0: 0x5a9
    0x1a1: 0x5aa
    0x1a2: 0x5ab
    0x1a3: 0x5af
    0x1a4: 0x5b0
    0x1a5: 0x5b1
    0x1a6: 0x5b2
    0x1a7: 0x5b3
    0x1a8: 0x5b4
    0x1a9: 0x5b5
    0x1aa: 0x5b6
    0x1ab: 0x5b7
    0x1ac: 0x5b8
    0x1ad: 0x5b9
    0x1ae: 0x5ba
    0x1af: 0x5c9
    0x1b0: 0x5ca
    0x1b1: 0x5cb
    0x1b2: 0x5cf
    0x1b3: 0x5d0
    0x1b4: 0x5d1
    0x1b5: 0x5d2
    0x1b6: 0x5d3
    0x1b7: 0x5d4
    0x1b8: 0x5d5
    0x1b9: 0x5d6
    0x1ba: 0x5d7
    0x1bb: 0x5d8
    0x1bc: 0x5d9
    0x1bd: 0x5da
    0x1be: 0x5e9
    0x1bf: 0x5ea
    0x1c0: 0x5eb
    0x1c1: 0x5ef
    0x1c2: 0x5f0
    0x1c3: 0x5f1
    0x1c4: 0x5f2
    0x1c5: 0x5f3
    0x1c6: 0x5f4
    0x1c7: 0x5f7
    0x1c8: 0x5f8
    0x1c9: 0x5f9
    0x1ca: 0x5fa
    0x1cb: 0x609
    0x1cc: 0x60a
    0x1cd: 0x60b
    0x1ce: 0x60c
    0x1cf: 0x60d
    0x1d0: 0x60e
    0x1d1: 0x60f
    0x1d2: 0x610
    0x1d3: 0x611
    0x1d4: 0x612
    0x1d5: 0x613
    0x1d6: 0x614
    0x1d7: 0x617
    0x1d8: 0x618
    0x1d9: 0x619
    0x1da: 0x61a
    0x1db: 0x629
    0x1dc: 0x62a
    0x1dd: 0x62c
    0x1de: 0x62d
    0x1df: 0x62e
    0x1e0: 0x62f
    0x1e1: 0x630
    0x1e2: 0x631
    0x1e3: 0x632
    0x1e4: 0x633
    0x1e5: 0x634
    0x1e6: 0x635
    0x1e7: 0x636
    0x1e8: 0x637
    0x1e9: 0x638
    0x1ea: 0x639
    0x1eb: 0x63a
    0x1ec: 0x649
    0x1ed: 0x64a
    0x1ee: 0x64b
    0x1ef: 0x64c
    0x1f0: 0x64d
    0x1f1: 0x64e
    0x1f2: 0x64f
    0x1f3: 0x650
    0x1f4: 0x651
    0x1f5: 0x652
    0x1f6: 0x653
    0x1f7: 0x654
    0x1f8: 0x655
    0x1f9: 0x656
    0x1fa: 0x657
    0x1fb: 0x658
    0x1fc: 0x659
    0x1fd: 0x65a
    0x1fe: 0x669
    0x1ff: 0x66a
    0x200: 0x66b
    0x201: 0x66c
    0x202: 0x66d
    0x203: 0x66e
    0x204: 0x66f
    0x205: 0x670
    0x206: 0x671
    0x207: 0x672
    0x208: 0x673
    0x209: 0x674
    0x20a: 0x675
    0x20b: 0x676
    0x20c: 0x677
    0x20d: 0x678
    0x20e: 0x679
    0x20f: 0x67a


    'Raw' list (open)
    Code:
    0x249, 0x24a, 0x24b, 0x24c, 0x24d, 0x24e, 0x24f, 0x250, 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, 0x258, 0x259, 0x25a, 
    0x269, 0x26a, 0x26b, 0x26c, 0x26d, 0x26e, 0x26f, 0x270, 0x271, 0x272, 0x273, 0x274, 0x275, 0x276, 0x277, 0x278, 0x279, 0x27a, 
    0x289, 0x28a, 0x28b, 0x28c, 0x28d, 0x28e, 0x28f, 0x290, 0x291, 0x292, 0x293, 0x294, 0x295, 0x296, 0x297, 0x299, 0x29a, 
    0x2a9, 0x2aa, 0x2ab, 0x2ad, 0x2ae, 0x2af, 0x2b0, 0x2b1, 0x2b2, 0x2b3, 0x2b4, 0x2b5, 0x2b6, 0x2b7, 0x2b8, 0x2b9, 0x2ba, 
    0x2c9, 0x2ca, 0x2cb, 0x2cc, 0x2cd, 0x2ce, 0x2cf, 0x2d0, 0x2d1, 0x2d2, 0x2d3, 0x2d4, 0x2d5, 0x2d6, 0x2d7, 0x2d8, 0x2d9, 0x2da, 
    0x2e9, 0x2ea, 0x2eb, 0x2ec, 0x2ed, 0x2ee, 0x2ef, 0x2f0, 0x2f1, 0x2f2, 0x2f3, 0x2f4, 0x2f5, 0x2f6, 0x2f7, 0x2f8, 0x2f9, 0x2fa, 
    0x309, 0x30a, 0x30b, 0x30c, 0x30d, 0x30e, 0x30f, 0x310, 0x311, 0x312, 0x313, 0x314, 0x315, 0x316, 0x317, 0x318, 0x319, 0x31a, 
    0x329, 0x32a, 0x32b, 0x32c, 0x32d, 0x32e, 0x32f, 0x330, 0x331, 0x332, 0x333, 0x334, 0x335, 0x336, 0x337, 0x338, 0x339, 0x33a, 
    0x349, 0x34a, 0x34b, 0x34c, 0x34d, 0x34e, 0x34f, 0x350, 0x351, 0x352, 0x353, 0x354, 0x355, 0x356, 0x357, 0x358, 0x359, 0x35a, 
    0x369, 0x36a, 0x36b, 0x36c, 0x36d, 0x36e, 0x370, 0x371, 0x372, 0x373, 0x374, 0x375, 0x376, 0x377, 0x378, 0x379, 0x37a, 
    0x389, 0x38a, 0x38b, 0x38c, 0x38d, 0x38e, 0x38f, 0x390, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397, 0x398, 0x399, 0x39a, 
    0x3a9, 0x3aa, 0x3ab, 0x3ac, 0x3ad, 0x3ae, 0x3af, 0x3b0, 0x3b8, 0x3b9, 0x3ba, 
    0x3c9, 0x3ca, 0x3cb, 0x3cc, 0x3cd, 0x3ce, 0x3cf, 0x3d0, 0x3d8, 0x3d9, 0x3da, 
    0x3e9, 0x3ea, 0x3eb, 0x3ec, 0x3ed, 0x3ee, 0x3ef, 0x3f0, 0x3f8, 0x3f9, 0x3fa, 
    0x409, 0x40a, 0x40d, 0x40e, 0x40f, 0x410, 0x418, 0x419, 0x41a, 
    0x429, 0x42a, 0x42d, 0x42e, 0x42f, 0x430, 0x438, 0x439, 0x43a, 
    0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f, 0x450, 0x458, 0x459, 0x45a, 
    0x469, 0x46a, 0x46b, 0x46c, 0x46d, 0x46e, 0x46f, 0x470, 0x478, 0x479, 0x47a, 
    0x489, 0x48a, 0x48b, 0x48c, 0x48d, 0x48e, 0x48f, 0x490, 0x491, 0x492, 0x493, 0x494, 0x497, 0x498, 0x499, 0x49a, 
    0x4a9, 0x4aa, 0x4ab, 0x4ac, 0x4ad, 0x4ae, 0x4af, 0x4b0, 0x4b1, 0x4b2, 0x4b3, 0x4b4, 0x4b7, 0x4b8, 0x4b9, 0x4ba, 
    0x4c9, 0x4ca, 0x4cb, 0x4cc, 0x4cd, 0x4ce, 0x4cf, 0x4d0, 0x4d1, 0x4d2, 0x4d3, 0x4d4, 0x4d5, 0x4d6, 0x4d7, 0x4d8, 0x4d9, 0x4da, 
    0x4e9, 0x4ea, 0x4eb, 0x4ec, 0x4ed, 0x4ee, 0x4ef, 0x4f0, 0x4f1, 0x4f2, 0x4f3, 0x4f4, 0x4f5, 0x4f6, 0x4f7, 0x4f8, 0x4f9, 0x4fa, 
    0x509, 0x50a, 0x50b, 0x50c, 0x50d, 0x50e, 0x50f, 0x510, 0x511, 0x512, 0x513, 0x514, 0x515, 0x519, 0x51a, 
    0x529, 0x52a, 0x52b, 0x52c, 0x52d, 0x52e, 0x52f, 0x530, 0x531, 0x532, 0x533, 0x534, 0x535, 0x539, 0x53a, 
    0x549, 0x54a, 0x54b, 0x54c, 0x54d, 0x54e, 0x54f, 0x550, 0x551, 0x552, 0x553, 0x554, 0x555, 0x559, 0x55a, 
    0x569, 0x56a, 0x56b, 0x56c, 0x56d, 0x56e, 0x56f, 0x570, 0x571, 0x572, 0x573, 0x574, 0x575, 0x576, 0x577, 0x578, 0x579, 0x57a, 
    0x589, 0x58a, 0x58b, 0x58c, 0x58d, 0x58e, 0x58f, 0x590, 0x591, 0x592, 0x594, 0x595, 0x596, 0x597, 0x598, 0x599, 0x59a, 
    0x5a9, 0x5aa, 0x5ab, 0x5af, 0x5b0, 0x5b1, 0x5b2, 0x5b3, 0x5b4, 0x5b5, 0x5b6, 0x5b7, 0x5b8, 0x5b9, 0x5ba, 
    0x5c9, 0x5ca, 0x5cb, 0x5cf, 0x5d0, 0x5d1, 0x5d2, 0x5d3, 0x5d4, 0x5d5, 0x5d6, 0x5d7, 0x5d8, 0x5d9, 0x5da, 
    0x5e9, 0x5ea, 0x5eb, 0x5ef, 0x5f0, 0x5f1, 0x5f2, 0x5f3, 0x5f4, 0x5f7, 0x5f8, 0x5f9, 0x5fa, 
    0x609, 0x60a, 0x60b, 0x60c, 0x60d, 0x60e, 0x60f, 0x610, 0x611, 0x612, 0x613, 0x614, 0x617, 0x618, 0x619, 0x61a, 
    0x629, 0x62a, 0x62c, 0x62d, 0x62e, 0x62f, 0x630, 0x631, 0x632, 0x633, 0x634, 0x635, 0x636, 0x637, 0x638, 0x639, 0x63a, 
    0x649, 0x64a, 0x64b, 0x64c, 0x64d, 0x64e, 0x64f, 0x650, 0x651, 0x652, 0x653, 0x654, 0x655, 0x656, 0x657, 0x658, 0x659, 0x65a, 
    0x669, 0x66a, 0x66b, 0x66c, 0x66d, 0x66e, 0x66f, 0x670, 0x671, 0x672, 0x673, 0x674, 0x675, 0x676, 0x677, 0x678, 0x679, 0x67a


    Reverse 'raw' list (i = list[Tile's number - 0x249]; if the tile does not exist (open)
    Code:
    0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0xFFFF, 0x33, 0x34, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x35, 0x36, 0x37, 0xFFFF, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xFFFF, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, 0xc2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xcb, 0xcc, 0xcd, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xd6, 0xd7, 0xd8, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xe1, 0xe2, 0xe3, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xe4, 0xe5, 0xFFFF, 0xFFFF, 0xe6, 0xe7, 0xe8, 0xe9, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xea, 0xeb, 0xec, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xed, 0xee, 0xFFFF, 0xFFFF, 0xef, 0xf0, 0xf1, 0xf2, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xf3, 0xf4, 0xf5, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xfe, 0xff, 0x100, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x101, 0x102, 0x103, 0x104, 0x105, 0x106, 0x107, 0x108, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x109, 0x10a, 0x10b, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x10c, 0x10d, 0x10e, 0x10f, 0x110, 0x111, 0x112, 0x113, 0x114, 0x115, 0x116, 0x117, 0xFFFF, 0xFFFF, 0x118, 0x119, 0x11a, 0x11b, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x11c, 0x11d, 0x11e, 0x11f, 0x120, 0x121, 0x122, 0x123, 0x124, 0x125, 0x126, 0x127, 0xFFFF, 0xFFFF, 0x128, 0x129, 0x12a, 0x12b, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x12c, 0x12d, 0x12e, 0x12f, 0x130, 0x131, 0x132, 0x133, 0x134, 0x135, 0x136, 0x137, 0x138, 0x139, 0x13a, 0x13b, 0x13c, 0x13d, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x13e, 0x13f, 0x140, 0x141, 0x142, 0x143, 0x144, 0x145, 0x146, 0x147, 0x148, 0x149, 0x14a, 0x14b, 0x14c, 0x14d, 0x14e, 0x14f, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x150, 0x151, 0x152, 0x153, 0x154, 0x155, 0x156, 0x157, 0x158, 0x159, 0x15a, 0x15b, 0x15c, 0xFFFF, 0xFFFF, 0xFFFF, 0x15d, 0x15e, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x15f, 0x160, 0x161, 0x162, 0x163, 0x164, 0x165, 0x166, 0x167, 0x168, 0x169, 0x16a, 0x16b, 0xFFFF, 0xFFFF, 0xFFFF, 0x16c, 0x16d, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x16e, 0x16f, 0x170, 0x171, 0x172, 0x173, 0x174, 0x175, 0x176, 0x177, 0x178, 0x179, 0x17a, 0xFFFF, 0xFFFF, 0xFFFF, 0x17b, 0x17c, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x17d, 0x17e, 0x17f, 0x180, 0x181, 0x182, 0x183, 0x184, 0x185, 0x186, 0x187, 0x188, 0x189, 0x18a, 0x18b, 0x18c, 0x18d, 0x18e, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x18f, 0x190, 0x191, 0x192, 0x193, 0x194, 0x195, 0x196, 0x197, 0x198, 0xFFFF, 0x199, 0x19a, 0x19b, 0x19c, 0x19d, 0x19e, 0x19f, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x1a0, 0x1a1, 0x1a2, 0xFFFF, 0xFFFF, 0xFFFF, 0x1a3, 0x1a4, 0x1a5, 0x1a6, 0x1a7, 0x1a8, 0x1a9, 0x1aa, 0x1ab, 0x1ac, 0x1ad, 0x1ae, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x1af, 0x1b0, 0x1b1, 0xFFFF, 0xFFFF, 0xFFFF, 0x1b2, 0x1b3, 0x1b4, 0x1b5, 0x1b6, 0x1b7, 0x1b8, 0x1b9, 0x1ba, 0x1bb, 0x1bc, 0x1bd, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x1be, 0x1bf, 0x1c0, 0xFFFF, 0xFFFF, 0xFFFF, 0x1c1, 0x1c2, 0x1c3, 0x1c4, 0x1c5, 0x1c6, 0xFFFF, 0xFFFF, 0x1c7, 0x1c8, 0x1c9, 0x1ca, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x1cb, 0x1cc, 0x1cd, 0x1ce, 0x1cf, 0x1d0, 0x1d1, 0x1d2, 0x1d3, 0x1d4, 0x1d5, 0x1d6, 0xFFFF, 0xFFFF, 0x1d7, 0x1d8, 0x1d9, 0x1da, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x1db, 0x1dc, 0xFFFF, 0x1dd, 0x1de, 0x1df, 0x1e0, 0x1e1, 0x1e2, 0x1e3, 0x1e4, 0x1e5, 0x1e6, 0x1e7, 0x1e8, 0x1e9, 0x1ea, 0x1eb, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x1ec, 0x1ed, 0x1ee, 0x1ef, 0x1f0, 0x1f1, 0x1f2, 0x1f3, 0x1f4, 0x1f5, 0x1f6, 0x1f7, 0x1f8, 0x1f9, 0x1fa, 0x1fb, 0x1fc, 0x1fd, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 
    0x1fe, 0x1ff, 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209, 0x20a, 0x20b, 0x20c, 0x20d, 0x20e, 0x20f


    By the way, a given set of four Feebas tiles can be obtained with 1 to 16 seeds.

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

    Here is a grid of the (Mount Coronet) tiles :
    Grid (open)
    [​IMG]

    This grid is "unprecise" : one rock is on tile 0x2AC instead of 0x28C. But 0x2AC stays the tile on the fourth line and fourth column.

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

    Here is the Feebas Tiles routine in ASM (return 0 on failure (not Feebas), 1 on success (Feebas)). It seems to be used for something else than this btw.
    Relevant ASM (open)
    Code:
    ROM:0224CC60 ; =============== S U B R O U T I N E =======================================
    ROM:0224CC60
    ROM:0224CC60
    ROM:0224CC60 Feebas                                  ; CODE XREF: Fish+AEp
    ROM:0224CC60
    ROM:0224CC60                 PUSH    {R4-R7,LR}
    ROM:0224CC62                 SUB     SP, SP, #0x4C
    ROM:0224CC64                 MOVS    R5, R0
    ROM:0224CC66                 BL      PRNG
    ROM:0224CC6A                 LSLS    R0, R0, #1
    ROM:0224CC6C                 LSRS    R4, R0, #0x10   ; r4 = r0 >> 15 (MSB of r0)
    ROM:0224CC6E                 CMP     R4, #2
    ROM:0224CC70                 BCC     loc_224CC76     ; Always true here
    ROM:0224CC72                 BL      sub_2020C2C
    ROM:0224CC76
    ROM:0224CC76 loc_224CC76                             ; CODE XREF: Feebas+10j
    ROM:0224CC76                 CMP     R4, #0
    ROM:0224CC78                 BNE     loc_224CC80     ; 1/2 chance
    ROM:0224CC7A                 ADD     SP, SP, #0x4C
    ROM:0224CC7C                 MOVS    R0, #0          ; Return 0 (false)
    ROM:0224CC7E                 POP     {R4-R7,PC}
    ROM:0224CC80 ; ---------------------------------------------------------------------------
    ROM:0224CC80
    ROM:0224CC80 loc_224CC80                             ; CODE XREF: Feebas+18j
    ROM:0224CC80                 LDR     R0, [R5,#0xC]
    ROM:0224CC82                 BL      sub_202881C
    ROM:0224CC86 BL      getSeed         ; Get seed
    
    	ROM:020287A4 ; =============== S U B R O U T I N E =======================================
    	ROM:020287A4
    	ROM:020287A4
    	ROM:020287A4 getSeed                                 ; CODE XREF: sub_204B1DC+38p
    	ROM:020287A4                                         ; sub_205F618+10p ...
    	ROM:020287A4                 LDR     R0, [R0,#0x54]
    	ROM:020287A6                 BX      LR
    	ROM:020287A6 ; End of function getSeed
    	ROM:020287A6
    	ROM:020287A6 ; ---------------------------------------------------------------------------
    
    ROM:0224CC8A                 MOVS    R4, R0
    ROM:0224CC8C                 LDR     R0, [R5,#0x38]
    ROM:0224CC8E                 ADD     R1, SP, #0x18
    ROM:0224CC90                 ADD     R2, SP, #0x14
    ROM:0224CC92                 BL      sub_20572B8
    ROM:0224CC96                 LDR     R0, [R5,#0x28]
    ROM:0224CC98                 BL      sub_20344FC
    ROM:0224CC9C                 STR     R0, [SP]
    ROM:0224CC9E                 MOVS    R0, #0
    ROM:0224CCA0                 STR     R0, [SP,#4]
    ROM:0224CCA2                 LSRS    R0, R4, #0x18
    ROM:0224CCA4                 LSLS    R0, R0, #0x18
    ROM:0224CCA6                 LSRS    R0, R0, #0x18
    ROM:0224CCA8                 STR     R0, [SP,#0x3C]  ; b_1 = (Seed >> 24) & 0xFF
    ROM:0224CCAA                 LSRS    R0, R4, #0x10
    ROM:0224CCAC                 LSLS    R0, R0, #0x18
    ROM:0224CCAE                 LSRS    R0, R0, #0x18
    ROM:0224CCB0                 STR     R0, [SP,#0x40]  ; b_2 = (Seed >> 16) & 0xFF
    ROM:0224CCB2                 LSRS    R0, R4, #8
    ROM:0224CCB4                 LSLS    R0, R0, #0x18
    ROM:0224CCB6                 LSRS    R0, R0, #0x18
    ROM:0224CCB8                 STR     R0, [SP,#0x44]  ; b_3 = (Seed >> 8) & 0xFF
    ROM:0224CCBA                 LSLS    R0, R4, #0x18
    ROM:0224CCBC                 LSRS    R0, R0, #0x18
    ROM:0224CCBE                 STR     R0, [SP,#0x48]  ; b_4 = Seed & 0xFF
    ROM:0224CCC0                 MOVS    R0, #0x6A       ; The following part is to prepare the tiles Lookup Table
    ROM:0224CCC0                                         ; You can skip it
    ROM:0224CCC2                 MOVS    R1, #1
    ROM:0224CCC4                 MOVS    R2, #4
    ROM:0224CCC6                 BL      sub_2006528
    ROM:0224CCCA                 STR     R0, [SP,#0xC]
    ROM:0224CCCC                 MOVS    R4, #0
    ROM:0224CCCE                 LDR     R0, [R0]
    ROM:0224CCD0                 MOVS    R3, R4
    ROM:0224CCD2                 CMP     R0, #0
    ROM:0224CCD4                 BLE     loc_224CCEA
    ROM:0224CCD6
    ROM:0224CCD6 loc_224CCD6                             ; CODE XREF: Feebas+88j
    ROM:0224CCD6                 LDR     R1, [SP,#0xC]
    ROM:0224CCD8                 LSLS    R2, R3, #2
    ROM:0224CCDA                 ADDS    R1, R1, R2
    ROM:0224CCDC                 LDR     R1, [R1,#4]
    ROM:0224CCDE                 ADDS    R4, R4, R1
    ROM:0224CCE0                 ADDS    R1, R3, #1
    ROM:0224CCE2                 LSLS    R1, R1, #0x18
    ROM:0224CCE4                 LSRS    R3, R1, #0x18
    ROM:0224CCE6                 CMP     R3, R0
    ROM:0224CCE8                 BLT     loc_224CCD6
    ROM:0224CCEA
    ROM:0224CCEA loc_224CCEA                             ; CODE XREF: Feebas+74j
    ROM:0224CCEA                 LSLS    R0, R0, #1
    ROM:0224CCEC                 ADDS    R0, R0, #2
    ROM:0224CCEE                 LSLS    R1, R0, #1
    ROM:0224CCF0                 LDR     R0, [SP,#0xC]
    ROM:0224CCF2                 ADDS    R0, R0, R1
    ROM:0224CCF4                 STR     R0, [SP,#8]
    ROM:0224CCF6                 ASRS    R0, R4, #1
    ROM:0224CCF8                 LSRS    R0, R0, #0x1E
    ROM:0224CCFA                 ADDS    R0, R4, R0
    ROM:0224CCFC                 MOVS    R1, #1
    ROM:0224CCFE                 ASRS    R0, R0, #2
    ROM:0224CD00                 LSLS    R1, R1, #8
    ROM:0224CD02                 STR     R0, [SP,#0x10]
    ROM:0224CD04                 CMP     R0, R1
    ROM:0224CD06                 BLT     loc_224CD0C
    ROM:0224CD08                 BL      sub_2020C2C
    ROM:0224CD0C
    ROM:0224CD0C loc_224CD0C                             ; CODE XREF: Feebas+A6j
    ROM:0224CD0C                 LSRS    R2, R4, #0x1F
    ROM:0224CD0E                 LSLS    R1, R4, #0x1E
    ROM:0224CD10                 SUBS    R1, R1, R2
    ROM:0224CD12                 MOVS    R0, #0x1E
    ROM:0224CD14                 RORS    R1, R0
    ROM:0224CD16                 ADDS    R0, R2, R1
    ROM:0224CD18                 LSLS    R0, R0, #0x18
    ROM:0224CD1A                 MOVS    R7, #0
    ROM:0224CD1C                 LSRS    R6, R0, #0x18
    ROM:0224CD1E                 ADDS    R5, R7, #0
    ROM:0224CD20
    ROM:0224CD20 loc_224CD20                             ; CODE XREF: Feebas+FEj
    ROM:0224CD20                 LSLS    R4, R5, #2
    ROM:0224CD22                 ADD     R0, SP, #0x3C
    ROM:0224CD24                 LDR     R0, [R0,R4]     ; Load b_n ...
    ROM:0224CD26                 LDR     R1, [SP,#0x10]
    ROM:0224CD28                 BLX     Divmod          ; r1 = r0 mod 0x84
    ROM:0224CD2C                 LDR     R0, [SP,#0x10]
    ROM:0224CD2E                 MOVS    R2, R0
    ROM:0224CD30                 MULS    R2, R5          ; r2 = 0x84 * n
    ROM:0224CD32                 ADDS    R0, R1, R2      ; r0 = (r0 [= b_n] mod 0x84) + 0x84 * n
    ROM:0224CD34                 ADDS    R1, R7, R0
    ROM:0224CD36                 ADD     R0, SP, #0x2C
    ROM:0224CD38                 STR     R1, [R0,R4]
    ROM:0224CD3A                 LDR     R0, [R0,R4]
    ROM:0224CD3C                 LSLS    R1, R0, #1
    ROM:0224CD3E                 LDR     R0, [SP,#8]     ; Tiles LH
    ROM:0224CD40                 CMP     R6, #0
    ROM:0224CD42                 LDRH    R1, [R0,R1]     ; r1 [= tile_n] = corresponding tile to b_n
    ROM:0224CD44                 ADD     R0, SP, #0x1C
    ROM:0224CD46                 STR     R1, [R0,R4]     ; Store this tile
    ROM:0224CD48                 BEQ     loc_224CD56     ; Always true here
    ROM:0224CD4A                 ADDS    R0, R7, #1
    ROM:0224CD4C                 LSLS    R0, R0, #0x18
    ROM:0224CD4E                 LSRS    R7, R0, #0x18
    ROM:0224CD50                 SUBS    R0, R6, #1
    ROM:0224CD52                 LSLS    R0, R0, #0x18
    ROM:0224CD54                 LSRS    R6, R0, #0x18
    ROM:0224CD56
    ROM:0224CD56 loc_224CD56                             ; CODE XREF: Feebas+E8j
    ROM:0224CD56                 ADDS    R0, R5, #1
    ROM:0224CD58                 LSLS    R0, R0, #0x18
    ROM:0224CD5A                 LSRS    R5, R0, #0x18
    ROM:0224CD5C                 CMP     R5, #4          ; For n from 0 to 4 excluded
    ROM:0224CD5E                 BCC     loc_224CD20
    ROM:0224CD60                 LDR     R0, [SP]
    ROM:0224CD62                 LDR     R1, [SP,#0x14]
    ROM:0224CD64                 LSLS    R0, R0, #5
    ROM:0224CD66                 MULS    R0, R1
    ROM:0224CD68                 LDR     R2, [SP,#0x18]
    ROM:0224CD6A                 MOVS    R3, #0
    ROM:0224CD6C                 ADDS    R2, R2, R0
    ROM:0224CD6E                 ADD     R1, SP, #0x1C
    ROM:0224CD70
    ROM:0224CD70 loc_224CD70                             ; CODE XREF: Feebas+126j
    ROM:0224CD70                 LSLS    R0, R3, #2
    ROM:0224CD72                 LDR     R0, [R1,R0]     ; Load tile_n ...
    ROM:0224CD74                 CMP     R2, R0          ; If the current tile is a Feebas one
    ROM:0224CD76                 BNE     loc_224CD7E
    ROM:0224CD78                 MOVS    R0, #1          ; Then return 1 (true)
    ROM:0224CD7A                 STR     R0, [SP,#4]
    ROM:0224CD7C                 B       loc_224CD88
    ROM:0224CD7E ; ---------------------------------------------------------------------------
    ROM:0224CD7E
    ROM:0224CD7E loc_224CD7E                             ; CODE XREF: Feebas+116j
    ROM:0224CD7E                 ADDS    R0, R3, #1
    ROM:0224CD80                 LSLS    R0, R0, #0x18
    ROM:0224CD82                 LSRS    R3, R0, #0x18
    ROM:0224CD84                 CMP     R3, #4          ; For n from 0 to 4 excluded
    ROM:0224CD86                 BCC     loc_224CD70
    ROM:0224CD88
    ROM:0224CD88 loc_224CD88                             ; CODE XREF: Feebas+11Cj
    ROM:0224CD88                 LDR     R0, [SP,#0xC]
    ROM:0224CD8A                 BL      sub_2016A18
    ROM:0224CD8E                 LDR     R0, [SP,#4]     ; If not, return 0
    ROM:0224CD90                 ADD     SP, SP, #0x4C
    ROM:0224CD92                 POP     {R4-R7,PC}
    ROM:0224CD92 ; End of function Feebas
    ROM:0224CD92


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

    I have also made a calculator and offline pages. Please check them
  8. Kaphotics

    Kaphotics Remodeling Kitchens
    is a Pokemon Researcheris a Contributor to Smogon

    Joined:
    Apr 25, 2009
    Messages:
    777
    That "unused" RNG? Existed in FRLG.

    src: FractalFusion @ TASVideos

    Code:
    r[n+1] = r[n]*0x41C64E6D + 0x3039
    relevant post about the chance of a random battle in BW
  9. Bond697

    Bond697 Dies, died, will die.
    is a Pokemon Researcher

    Joined:
    Jun 20, 2010
    Messages:
    307
    except i really obviously meant black and white(where it doesn't seem to be used) and that rng is already known to exist in all the gen 3 games. it's used for feebas tiles. the only new thing is that fractal fusion found another use for it.
  10. Tux

    Tux

    Joined:
    Dec 1, 2011
    Messages:
    11
    I did some LCRNG reversing today, thanks to X-Act's method and Google Calculator for the finals calculation :

    Code:
    [URL=http://www.smogon.com/forums/showpost.php?p=4080196&postcount=884]RNG2[/URL][[I]n[/I] - 1] = 0xEEB9EB65 * RNG2[[I]n[/I]] + 0xFC77A683 (mod (1 << 32)) 
    Code:
    ARNG[[I]n[/I] - 1] = 0x9638806D * ARNG[[I]n[/I]] + 0x69C77F93 (mod (1 << 32)) 
    Code:
    [URL=http://projectpokemon.org/wiki/GTS_protocol#Encryption]GRNG[/URL][[I]n[/I] - 1] = (0x233F128D * GRNG[[I]n[/I]] + 0x789467A3) mod (1 << 31)
  11. chiizu

    chiizu PPPPPPPPPPPPPPPPP RNG
    is a Programmeris a Pokemon Researcher

    Joined:
    Nov 12, 2010
    Messages:
    418
    Faster (Useful) Egg Searches

    Nothing but lies. 32-bits only allows for 4.2 billion possible seeds.

    It turns out that there are only 155,827,663 useful egg seeds (~3.6% of all possible seeds), many of which are useful for multiple search types, i.e. a seed with good values for HP, DEF, and SpD would be useful for every search type. It's still a significant amount, but by storing the data on disk as packed 10-bit delta values, I have it reduced to a 195MB file, which compresses down to about 130MB when zipped.

    When loading it into memory (takes 2-3 seconds on a single thread), rather than use a hashtable which would take up at least a couple gigs of memory and be very slow to build, I use a 512MB bit array (one bit for each of the 2^32 possible seeds) to indicate if a given seed is worth looking at. If it is, then I go ahead and generate the 8th IV frame and check it out. I'm not storing the actual IVs (as was done with the capture seeds) because that would significantly increase both the disk space and memory requirements, but the tradeoff for that is that it ends up generating IVs using seeds that may not work with the parents' IVs. However, it's weeding out more than 96% of all seeds, which is a significant gain to say the least.

    Doing the above, I'm seeing egg searches running in about 1/3 of the time that they used to run. It used to take about a minute and a half on my 2.53GHz Core Duo with 2 threads to search one day with up to 3 button presses for an egg within the first 300 PID frames with perfect IVs when one parent has 2 perfect IVs and the other has 1 perfect IV. With the precalculated seeds, it take about 30 seconds. For eggs, the search time is greatly affected by the IVs of the parents (the more combinations of inherited IVs that would allow for the desired egg, the more time spent generating inheritance information, which is theoretically unbounded), but for the various cases I've checked, the reduction to 1/3 of the previous search time seems to hold.

    It's just a question of what to do with the 130MB seed file. It doesn't make sense to include it in the distribution and force people to pull down all that data again whenever some minor bugfix is made. I'm thinking of making it an optional separate download for people who want the speed up.

    (None of this is checked in at the moment.)
  12. Kaphotics

    Kaphotics Remodeling Kitchens
    is a Pokemon Researcheris a Contributor to Smogon

    Joined:
    Apr 25, 2009
    Messages:
    777
    PokéSpots in XD GoD

    Started this a few months ago but never got around to finishing it until now.

    Code:
    0 - initial
    1 - ???
    2 - ???
    3 - ???
    4 - HighPID
    5 - LowPID
    That's the end of the PokéSpot determination structure. IVs are generated upon encounter (aka disjointed & essentially random)

    call speculation (open)
    It's well known that the game uses a step counter for spot determination. How large? 256.

    Here's a GC code to make 1 step = 256 steps for trigger testing and the other 2 call analysis in the future.

    Here's a save state with all 3 PokéSpots unlocked (and I think fed completely). This state was 3 advancements away from generating the example PokéSpot 'mon.

    Code:
    We know High16 is used for RNG values 
        (PID and IVs always come from High16)
    
    So now, let's assume it's similar to gen 3/4 RNG, but what operations?
        The trigger value is very low, so it's obviously not a mod
        (confirmed with other tests)
        Thus it must be a div (let's not consider * )
    
    Most of the time, when the game determines a rare event, a 0 must happen.
    
    High16 / value = 0
       value - 0x290 (hey look gen 4 esv calc!)
    
    So for the following example, floor(0x01EE / 0x290) = 0. A pass!
    
    Location and slot probably are similar in this regard, 
       maybe GC games are very related to DPPt?
    other technical resources related to PokéSpot (open)
    memory table structure
    image illustrations (open)
    [​IMG]
    [​IMG]

    Yep. That's a shiny PokéSpot pokemon ;)


    edit: added technical references for those wishing to do further research

    edit2:

    esv is %100, still working out the overall structure.

    x
    x
    esv
    x
    pid
    pid

    level generated upon encounter (along with IVs)
  13. Missingno. Master

    Missingno. Master

    Joined:
    May 31, 2006
    Messages:
    830
    So PokeSpot mons CAN be Shiny. Excellent!

    Um, one thing, though. I'm not sure if you covered this or not already, but are IVs the only thing that are determined upon encounter? Is, oh, say, species, shinyness, ability, stuff like that determined earlier, like when the Spot Monitor goes off?
  14. Hozu

    Hozu RNGenius
    is a Contributor to Smogon

    Joined:
    Feb 10, 2011
    Messages:
    1,419
    The 2nd gen starters from Mt. Battle as well as Duking's mons from trade can be shiny. For Duking's mons the TID is static (37149) but the SID is your SID.

    The 2nd gen starters will never be able to be RNG'd on a retail game as one must do a battle before getting them.
  15. Kaphotics

    Kaphotics Remodeling Kitchens
    is a Pokemon Researcheris a Contributor to Smogon

    Joined:
    Apr 25, 2009
    Messages:
    777
    monitor goes off -> munchlax y/n -> pokemon&location if no munchlax -> PID generated. We're still working the structure of those other 2 calls out with a large amount of test data, a future post will detail it.

    thus species, shininess = spot monitor dependent. IVs are random (ability too, comes from the IVs in XD/C.)


    ty hozu :)
  16. ΩDonut

    ΩDonut don't glaze me bro
    is a Programmeris a Forum Moderatoris a Community Contributoris a Pokemon Researcheris a Contributor to Smogon
    Moderator

    Joined:
    Aug 23, 2006
    Messages:
    3,727
    5th Gen Italian DSi support data

    Version: White
    Date\Time: 12\11\2011 10:15:25
    MAC Address: 00241E1A6608
    Seed: 5D5F832882F3229A
  17. chiizu

    chiizu PPPPPPPPPPPPPPPPP RNG
    is a Programmeris a Pokemon Researcher

    Joined:
    Nov 12, 2010
    Messages:
    418
    Nazo: 0x27601d0
    Timer0: 124f
    VCount: 8d
    VFrame: 8
    Second: 27
  18. Ryziken

    Ryziken

    Joined:
    Apr 9, 2011
    Messages:
    25
    So I'm finally trying this out for myself, and I'm positive I copied the calcs correctly and everything else in the Researcher window.

    The only thing stumping me at this point is what seed do I enter? The true initial seed doesn't work, I've found. Then I noticed that phrase you used. What's this "exit seed," and how do I find it?

    ...Or am I missing something else entirely?
  19. Kaphotics

    Kaphotics Remodeling Kitchens
    is a Pokemon Researcheris a Contributor to Smogon

    Joined:
    Apr 25, 2009
    Messages:
    777
    Once the game is done generating a Pokemon, it doesn't touch the PIDRNG until exiting the battle.

    Usually the Item calc (if the Pokemon can carry an item) is after the PID, and that's it. Use Researcher and find the PID frame you have to hit, then the seed used for the item can be considered the "Exit Seed"

    Toy around with it, I'm not completely sure about that but it should be that (or close). Haven't touched Pickup in ages ;)
  20. ΩDonut

    ΩDonut don't glaze me bro
    is a Programmeris a Forum Moderatoris a Community Contributoris a Pokemon Researcheris a Contributor to Smogon
    Moderator

    Joined:
    Aug 23, 2006
    Messages:
    3,727
    Seed of FADFB0053017B405, obtained from two Pokemon caught in Italian Black, confirms that the nazos for Italian Black and White are the same.

    Timer0: 1237
    VCount: 8C
    VFrame: 8
    Second: 27
  21. GoldenBanana

    GoldenBanana

    Joined:
    Apr 10, 2010
    Messages:
    137
    News Press Pokeball Manipulation

    The man in Solaceon gives you one of 12 pokeballs for showing him the pokemon he requests to see.

    The game determines which ball he will give you using 16BitHigh % 12. Match the resulting number to the table below to determine which ball he will give:

    Code:
    0 - Ultra
    1 - Great
    2 - Pokeball
    3 - Net
    4 - Dive
    5 - Nest
    6 - Repeat
    7 - Timer
    8 - Luxury
    9 - Dusk
    10 - Heal
    11 - Quick
    Simply advance to the target frame and talk to the man to receive the desired pokeball.
  22. Kaphotics

    Kaphotics Remodeling Kitchens
    is a Pokemon Researcheris a Contributor to Smogon

    Joined:
    Apr 25, 2009
    Messages:
    777
    The latest Wonder Cards out in Japan (Kyushu Super-Powerful starters, ExtremeSpeed Pikachu, Fukuoka Groudon) all can be shiny. This is because they use a new type of flag in the card data.

    Yeah.

    Also, here's Pokérus in gen5 since it hasn't been posted:

    1 2 3

    MTRNG frame & 0x3FFF = 0 infect,
    choose who to infect,
    if infectable generate strain then determine duration
  23. Kaphotics

    Kaphotics Remodeling Kitchens
    is a Pokemon Researcheris a Contributor to Smogon

    Joined:
    Apr 25, 2009
    Messages:
    777
    5th Gen Wurmple Evolution

    Code:
    [ (PID)>>0x10 ] % 0xA  --> (01234,56789)
    
    01234 - Silcoon -> Beautifly
    56789 - Cascoon -> Dustox
    
    restated
    
    ( [ (PID)>>0x10 ] % 0xA ) / 5  --> (0,1)
    
    0 - Silcoon -> Beautifly
    1 - Cascoon -> Dustox
    Summary: In Gen V it only uses the upper 16 bits of the PID, as opposed to how it was done in Gen III/IV where all 32 bits of the PID are used.
  24. Tombstoner

    Tombstoner

    Joined:
    Aug 3, 2010
    Messages:
    659
    R/S Live Battery RNG Manipulation (Revised)

    I've found out more, and I think this RNG is now becoming very close to abusable.

    Given some of this, I'm hoping there could be new additions to RNG Reporter, but I'll let the developers decide.

    RS-Seed, a program I wrote to aid in this form of RNG abuse

    Seeding
    The game's seeding routine is based on the internal clock kept going by the battery. A combination of values stored by the clock are used to give a 16-bit seed, as shown by FractalFusion here. This is some code that generates a seed based on the info he gave:
    Code:
    m = minutes past a certain point
    h = hours past a certain point
    d = days after a certain point
                 th = floor(h / 10);
                 uh = h - th;
                 tm = floor(m / 10);
                 um = m - (10 * tm);
                 v = (1440 * d) + (960 * th) + (60 * uh) + (16 * tm) + um;
                 x = floor(v / 65536);
                 y = v % 65536;
                 [B]seed = x xor y;[/B]
    The "initial point" is, simply put, impossible to find for sure, but it really doesn't matter for reasons I'll describe later. Most likely, it's when the game is first loaded up.

    Theory Behind Abusing this RNG
    The basic idea behind abusing this RNG is that one needs to find how many minutes their RTC has been running for. As of today mine's at around 3.5 million minutes. Finding this can be rather annoying, but it is heaving aided by knowing when the game was first loaded up:
    1. Use NeoSyrex's FRLG Seed Finder and your country's official clock (time.gov for the US) to find a few times and the seeds generated at those times (three is fine.)
    2. Run them all through the Seed to Time function in RS-Seed, and find when the minutes seem to line up with each other.

    Once this has been done, you'll know how long your game says it's been running, and can use the List Seeds function to find some seeds near your current one.

    Manipulating Seeds
    The only way to manipulate seeds is to start the game at the right minute. You can find the minute you want by looking at a generated seed list near your current minute and seeing what date and time it translates to.

    The only problem is finding spreads at this point. One currently has to plug hundreds of seeds in and search the first 500000 or so frames for each, or use the FRLG Seed Finder to look for a flawless one and see how long it takes to appear. Maybe this can be made faster, maybe not.

    ---

    That's basically what it comes down to. Even with additions to RNG Reporter it is similar to Gen IV abuse without changing the clock, and the method will never change, but hopefully we can make it become more doable than it currently is.
  25. nick15

    nick15

    Joined:
    May 20, 2010
    Messages:
    17
    I do greatly apologize for not reading through every single post, but I do have Korean HG/SS and B/W, and I intend on getting a Korean 3DS (and hopefully the actual carts of DPP) in August. Would this be of any help to you?

    I presume that, once I do get these things, I would need to follow the instructions located here?: http://www.smogon.com/forums/showpost.php?p=4003185&postcount=832

    Furthermore, can I assume that even if I have a Korean NDS cart, it requires a Korean NDS/3DS system to get what it necessary, as opposed to using a Korean NDS cart in an American NDS/3DS system?

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