Past Gen RNG Research

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
5th Generation & Pickup



Pickup only works if you don't run.

Carrying 6 Pickup Mons and defeating a wild poke:
It cycles 7 times after battle if you don't get a pickup, 8 times if one gets a pickup, hence a calc proccing another calc immediately after.

Exiting Seed from the battle is considered the Initial Seed for this post:

Initial
Code:
Advanced Once, 
  if    SEED*100>>32    is < 10
     then [SEED+1]*100>>32 for Pickup Item Value (0-99)
    else, advance once and repeat for next slot.
  end
6 iterations, there is one calc afterwards for something else.
Pickup Table located here, although the placement for the 1%'s is off. Prism Scale is 98 for level 100 (leftovers is 99).



Code:
0-29 30-39 40-49 50-59 60-69 70-79 80-89 90-94 95-97 98 99
 30%   10%   10%   10%   10%   10%   10%    5%    3% 1% 1%
;)

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.
 
;)

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.
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. :)
 

ΩDonut

don't glaze me bro
is a Programmer Alumnusis a Forum Moderator Alumnusis a Top Researcher Alumnusis a Top Contributor Alumnus
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)
 
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.
 

chiizu

PPPPPPPPPPPPPPPPP RNG
is a Programmer Alumnusis a Top Researcher Alumnus
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
 
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
*note, it could be that once you find a feebas with a rod, you have to use the same rod.
Nope its false
 
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 :
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
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
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 :

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.
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
 

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
That "unused" RNG? Existed in FRLG.

src: FractalFusion @ TASVideos

Code:
r[n+1] = r[n]*0x41C64E6D + 0x3039
RNG 2 is seeded in a strange way. This occurs right after the Charizard screen clears in the intro. First, RNG 1 is seeded with the 16-bit entropy address 0x4000104. Then RNG 1 is advanced twice. Then the top half of RNG 1 is used to seed RNG 2, which is thereafter used in the game.

Note that RNG 1 is seeded again at the naming screen (new game TID generation), so the first seeding of RNG 1 is only used to seed RNG 2, and nothing else.
[the] second RNG [is] used only to determine wild encounters.

There are some things that delay the advancing of RNG 2, but it seems only to be the first 6 grassy steps after a battle or when entering a new area. By the way, the encounter rate in grass is 21.5%. If top half of RNG 2 mod 1600 is less than 344, you get an encounter.
relevant post about the chance of a random battle in BW
 

Bond697

Dies, died, will die.
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.
 
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)
 

chiizu

PPPPPPPPPPPPPPPPP RNG
is a Programmer Alumnusis a Top Researcher Alumnus
Faster (Useful) Egg Searches

Unfortunately, precalculating seeds for breeding doesn't seem practical, given that there would be (57,200 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.
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.)
 

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
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)

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?
memory table structure
T1BillionX said:
==================
PokéSpot Modifier
==================

Rock PokéSpot

Pokemon 1

00B1BD6C 000000xx - Min Level
00B1BD6D 000000xx - Max Level
02B1BD6E 0000xxxx - Pokemon Modifier
00B1BD73 000000xx - Encounter Rate in Percent
02B1BD76 0000xxxx - Number of Steps before the Pokemon leaves the Spot

Pokemon 2

00B1BD78 000000xx - Min Level
00B1BD79 000000xx - Max Level
02B1BD7A 0000xxxx - Pokemon Modifier
00B1BD7F 000000xx - Encounter Rate
02B1BD82 0000xxxx - Number of Steps

Pokemon 3

00B1BD84 000000xx - Min Level
00B1BD85 000000xx - Max Level
02B1BD86 0000xxxx - Pokemon Modifier
00B1BD8B 000000xx - Encounter Rate
02B1BD8E 0000xxxx - Number of Steps

Oasis PokéSpot

Pokemon 1

00B1BD90 000000xx - Min Level
00B1BD91 000000xx - Max Level
02B1BD92 0000xxxx - Pokemon Modifier
00B1BD97 000000xx - Encounter Rate
02B1BD9A 0000xxxx - Number of Steps

Pokemon 2

00B1BD9C 000000xx - Min Level
00B1BD9D 000000xx - Max Level
02B1BD9E 0000xxxx - Pokemon Modifier
00B1BDA3 000000xx - Encounter Rate
02B1BDA6 0000xxxx - Number of Steps

Pokemon 3

00B1BDA8 000000xx - Min Level
00B1BDA9 000000xx - Max Level
02B1BDAA 0000xxxx - Pokemon Modifier
00B1BDAF 000000xx - Encounter Rate
02B1BDB2 0000xxxx - Number of Steps

Cave PokéSpot

Pokemon 1

00B1BDB4 000000xx - Min Level
00B1BDB5 000000xx - Max Level
02B1BDB6 0000xxxx - Pokemon Modifier
00B1BDBB 000000xx - Encounter Rate
02B1BDBE 0000xxxx - Number of Steps

Pokemon 2

00B1BDC0 000000xx - Min Level
00B1BDC1 000000xx - Max Level
02B1BDC2 0000xxxx - Pokemon Modifier
00B1BDC7 000000xx - Encounter Rate
02B1BDCA 0000xxxx - Number of Steps

Pokemon 3

00B1BDCC 000000xx - Min Level
00B1BDCD 000000xx - Max Level
02B1BDCE 0000xxxx - Pokemon Modifier
00B1BDD3 000000xx - Encounter Rate
02B1BDD6 0000xxxx - Number of Steps



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)
 
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?
 

Hozu

RNGenius
is a Contributor Alumnus
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.
 

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
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?
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 :)
 

ΩDonut

don't glaze me bro
is a Programmer Alumnusis a Forum Moderator Alumnusis a Top Researcher Alumnusis a Top Contributor Alumnus
5th Gen Italian DSi support data

Version: White
Date\Time: 12\11\2011 10:15:25
MAC Address: 00241E1A6608
Seed: 5D5F832882F3229A
 
5th Generation & Pickup


Pickup only works if you don't run.

Carrying 6 Pickup Mons and defeating a wild poke:
It cycles 7 times after battle if you don't get a pickup, 8 times if one gets a pickup, hence a calc proccing another calc immediately after.

Exiting Seed from the battle is considered the Initial Seed for this post:

Initial
Code:
Advanced Once, 
  if    SEED*100>>32    is < 10
     then [SEED+1]*100>>32 for Pickup Item Value (0-99)
    else, advance once and repeat for next slot.
  end
6 iterations, there is one calc afterwards for something else.
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?
 

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
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 ;)
 

ΩDonut

don't glaze me bro
is a Programmer Alumnusis a Forum Moderator Alumnusis a Top Researcher Alumnusis a Top Contributor Alumnus
Nazo: 0x27601d0
Timer0: 124f
VCount: 8d
VFrame: 8
Second: 27
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
 
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.
 

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
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
 

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
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.
 
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.
 
Thank you to Kokoromori for doing the leg work to get the seeds. This guy was super consistent on his timing!

We still need volunteers for:
French
Italian
Korean
Spanish
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 Who Are Viewing This Thread (Users: 1, Guests: 2)

Top