3DS RNG Tool: Difference between revisions

From GameBrew
No edit summary
No edit summary
 
Line 19: Line 19:
|image_alt=3DS RNG Tool
|image_alt=3DS RNG Tool
}}
}}
The 3DS RNG Tool is designed specifically for the primary 3DS Pokemon games and can be used in conjunction with [[PokeCalcNTR For Gen 6 3DS‎‎|PokeCalcNTR]] when utilizing NTR-CFW. It has been completely redeveloped from the SMEncounterRNGTool, resulting in significant performance enhancements and the addition of the following features:
The 3DS RNG Tool is a randomization tool made for main 3DS Pokemon games. Some parts should work with [[PokeCalcNTR For Gen 6 3DS‎‎|PokeCalcNTR]] using [[BootNTR_Selector_3DS|NTR-CFW]].  


This tool is a complete rewrite based off SMEncounterRNGTool with largely improved performance and the following features:
* Gen6 RNG, including stationary Pokemon, Mystery Gift Pokemon, wild Pokemon (75%), Eggs, and ID.
* Gen6 RNG, including stationary Pokemon, Mystery Gift Pokemon, wild Pokemon (75%), Eggs, and ID.
* Transporter RNG for transferred Virtual Console Pokemon.
* Transporter RNG for transferred Virtual Console Pokemon.
Line 26: Line 27:
* Gen7 egg RNG and ID RNG based on Quandra's PokemonSunMoonRNGTool.
* Gen7 egg RNG and ID RNG based on Quandra's PokemonSunMoonRNGTool.
* Several Gen7 egg RNG modifications that are more practical.
* Several Gen7 egg RNG modifications that are more practical.
== Final Screen ==
Usually it's the last screen before the battle starts, or the special dialogue box.
=== Generation 7 ===
* '''In-game gifts/Fossils/Cosmog/Mystery Gift''': ''You received xxx!''
* '''Tapus''': ''Tapu ko-ko-ko-kooo!!! / Ta-pu-leeeh! / Ta-pu-loooo! / Ta-pu-fiiieee!''
* '''Solgaleo/Lunala''': No dialogue.
* '''Wild UBs, Island Scan &amp; wild Pokemon''': Hover over <code>Bag</code> button and press A to enter. The tool will take into account the honey delay for you.
* '''Main RNG egg''': ''But you want the Egg your Pokemon was holding. right?''
* '''Poke Pelago''': Hover over <code>Poke Pelago</code> button and press A to enter. Be sure that new Pokemon will be generated when you enter the Poke Pelago.
* '''Assembled Zygarde''': ''Zygarde has gone into a Poke Ball!''
* '''Crabrawler''': ''There was a Pokemon feeding on the Berries and it leaped out at you!''
* '''Fishing''':
** Timer user:
**# <code>Overview</code> checked: Press A when <code>A</code> pops up (<code>Frame1</code>), then pull the fishing rod off water '''once''' you hear the sound. You have ~0.5 seconds tolerance to do so.
**# <code>Overview</code> unchecked: Press A when the exclamation mark pops up (<code>Frame2</code>). Suction cups required.
** PCalc user: Press 1st A when <code>A</code> pops up (<code>Frame1</code>), press 2nd A when the exclamation mark pops up (<code>Frame2</code>).
* '''Rustling spots''': No dialogue. Save as close as possible, make a step to trigger the battle.
=== Sun and Moon ===
* '''Pikipek''': No dialogue. Before the fourth step in grass.
* '''Exeggutor''': ''Ahhh! What is that, xxx?!''
* '''Starters''': ''Having accepted on another, you'll surely be friends for life.''
=== Ultra Sun and Ultra Moon ===
* '''Ultra Wormholes Past-gen Legends/Non-legends''': No dialogue. Save as close as possible, make a step to trigger the battle.
* '''Ultra Wormholes UBs''': No dialogue. Press A to trigger the battle.
* '''Necrozma''' : ''Linooo!''
* '''Zygarde at Resolution Cave''': ''Zeeehhhd!''
* '''Starters''': ''You chose xxx!''
* '''Grubbin''': No dialogue. Before the fourth step in grass.
* '''Totem Pokemon''': ''You received xxx!''
* '''Gastly''': ''The cold thing suddenly attacked you!''
* '''Drifloon''': ''Flooo!''
* '''Hypno''': ''The Hypno are upset about being accused!''
* '''Bewear''': ''Weeeaaarrrr!''
* '''Ditto Five''': ''Dittoooo!'' / ''Di...Ditto-o-o-o-o?!'' / ''Dittottotto'' / ''Didi!'' / ''Ditto!''
* '''Sandygast''': ''Gaaaaaaaaassstt!!!''
* '''Frillish''': ''Friiiiilll...''
* '''Pinsir''': ''Thwak!'' / ''Gruh!'' / ''Hyah!''
* '''Electrode''': No dialogue. Unsable.
=== Transporter (Virtual Console) ====
* Hover over <code>Use this game</code> button. Calibrate the delay beforehand.
=== Generation 6 ===
* '''Mystery Gift''': ''xxx received xxx!''
* '''Pokemon Link''': ''Would you like to retrieve data using Pokemon Link? Yes/No''
* '''Fossils''': ''This is xxx! Please take good care of it.''
* '''Kalos/Hoenn Starters''': ''Choose this Pokemon? Yes/No''
* '''Horde''': Honey Selected. USE/GIVE/DISCARD
* '''Rock Smash''': ''Would you like to use Rock Smash? Yes/No''
* '''Fishing''': Register at least two key items to Y menu. Wait at Y shortcut menu. Press arrow key to use the fish rod. TTT calibration required.
* '''Eggs''' from Day Care:
** Accepting =&gt; 1st Yes/No Screen: ''You do want it. don't you? / You'll be wanting it won't you? / You've gotta want it, right?''
** Rejecting =&gt; the Screen ''AFTER'' the 2nd Yes/No Screen: ''Well then, I'll hang on to it. Thank you!/ Well then, I'll be having this one! Thanks!/ Really really? Well... I'll keep it, then! Thanks!''
* '''ID''' : ''xxx... Tres bien! What a fantastic name! / So you're xxx? Yes/No''
=== XY ===
* '''Mewtwo''': ''Mew!''
* '''Xerneas/Yveltal''': No dialogue.* Defeat it and rebattle to avoid long delay.
* '''Zygarde''': ''Zzzz-dddd-aaaaaa!''
* '''Kanto Legendary Birds''': No dialogue.* Press the arrow key to trigger the battle.
* '''Pidgey''': No dialogue.* Wait at the first line of the grass. The encounter will happen at the 2nd row of grass. Press the arrow key to trigger the battle.
* '''Kanto Starters''': ''You picked xxx. then! I see. That's simply wonderful!''
* '''Snorlax''': ''Snorlax opened its eyes wide!''
* '''Lucario''': ''Lucario is staring intently at xxx. Will you take Lucario with you? Yes/No''
* '''Lapras''': ''Would you mind taking Lapras with you on your journey? Sure!/I coundn't''
* '''Berry Tree''': ''A Pokemon appeared!''
* '''Shaking Trash Can''': No dialogue.*
* '''Cave Drop/Cave Shadow/Dust Clouds/Rustling Bush''': No dialogue.* Press the arrow key to trigger the battle.
=== Omega Ruby and Alpha Sapphire ===
* '''Portal(Hoopa Ring)''': ''Would you like to put your hand deep in the hole? / Would you like to examine it? Yes/No''
* '''Soaring Legends''': ''Despite that, do you want to fly into the clouds? / Do you want to fly into the gap? Yes/No''
* '''Storyline Latios/Latias''': ''xxx joined your team!''
* '''Eon Ticket Latios/Latias''': ''Hyahhn!''
* '''Primal Kyogre/Groudon''': No dialogue.* (The delay varies from console and save, and should be an odd number)
* '''Rayquaza''': ''Kiiiryarrrarrrarrrraaaashiiiii!!!'' (Tip: Wait until it finishes its movement)
* '''Deoxys''': ''The stone tablet before you--!!!''
* '''Regirock, Regice and Registeel''': No dialogue.*
* '''Regigigas''': ''Zut zutt!''
* '''Starters(Gen 2/4/5)''': ''Yes, that one from the xxx region.''
* '''Wurmple''': No dialogue.* Wait after the second step in grass. The encounter will happen at the 3rd steps in grass. Press the arrow key to trigger the battle.
* '''DexNav Poochyena''': ''xxx! Over here!''
* '''Cosplay Pikachu''': ''You'll really, really, really stand out if you two go on stage with matching costumes!''
* '''Castform/Sharpedo/Camerupt/Gift eggs(Wynaut/Togepi)''': ''xxx recieved xxx.''
* '''Beldum''': ''xxx obtained a Beldum''
* '''Spiritomb''': ''Shahhh!''
* '''Kecleon''': ''The startled Pokemon attacked!''
* '''Voltorb, Electrode''': No dialogue.*
=== Tip ===
* For consistent delay, use D-pad (arrow keys) to move along grid.


==Screenshots==
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/3dsrngtool-01.png
https://dlhb.gamebrew.org/3dshomebrews/3dsrngtool-01.png
https://dlhb.gamebrew.org/3dshomebrews/3dsrngtool-02.png
https://dlhb.gamebrew.org/3dshomebrews/3dsrngtool-02.png
== User Guide and Useful References ==
* [[#final-screen|Final Screen]] you should wait at and make the final key pressing.
* [https://github.com/wwwwwwzx/3DSRNGTool/wiki/TinyMT-Timeline-Spec-Sheet TinyMT Timeline Setting]
* [https://github.com/wwwwwwzx/3DSRNGTool/wiki/Gen7-Timeline-Calibration-(PokeCalcNTR-Only) Gen7 Timeline Guide]
* [https://www.reddit.com/r/pokemonrng/comments/6fhnb8/gen_6_rng_megathread/ Reddit Gen 6 RNG Megathread]
* [https://github.com/projectpokemon/EventsGallery ProjectPokemon Events Gallery]
* [https://github.com/wwwwwwzx/3DSRNGTool/wiki/NTR-Helper-Usage NTR Helper and ID Bot Usage]
* [https://www.smogon.com/ingame/rng/sm_egg_rng_part2 Egg RNG in Generation 7: Guide (Windows users)]


==Changelog==
==Changelog==
'''v1.0.6'''
'''v1.0.6'''
*Many enhancements and bug fixes (merged from [https://github.com/wwwwwwzx/3DSRNGTool/pull/94 #94])
*Many enhancements and bug fixes (merged from [https://github.com/wwwwwwzx/3DSRNGTool/pull/94 #94]).
'''v1.0.5'''
'''v1.0.5'''
*Fixes freezing in 1.0.4
*Fixes freezing in 1.0.4.
'''v1.0.4'''
'''v1.0.4'''
* Initial support for RNGing square shiny in Gen 8
* Initial support for RNGing square shiny in Gen 8.
* A Pokemon is square shiny if TSV = PSV (shiny) and TRV = PRV
* A Pokemon is square shiny if TSV = PSV (shiny) and TRV = PRV.
* Definition of TRV (Trainer Residual Value, or you can call it TSSV: Trainer square shiny value)
* Definition of TRV (Trainer Residual Value, or you can call it TSSV: Trainer square shiny value).
** TRV is the last 4 bits of TID xor SID, a value between 0 and 15 and it can be presented in a one-digit hex number
** TRV is the last 4 bits of TID xor SID, a value between 0 and 15 and it can be presented in a one-digit hex number.
** TRV = (TID ^ SID) & 0xF
** TRV = (TID ^ SID) & 0xF.
** TID ^ SID = (TSV << 4) | TRV. TRV is independant of TSV
** TID ^ SID = (TSV << 4) | TRV. TRV is independant of TSV.
* How to get your TRV
* How to get your TRV.
** Check your TID and SID again. Run script [http://jdoodle.com/a/1U1n here]
** Check your TID and SID again. Run script [http://jdoodle.com/a/1U1n here].
** In Gen 7, find your in-game 6 digits ID and TSV. Run script [http://jdoodle.com/a/1U1o here]. You may get at most two possible results.
** In Gen 7, find your in-game 6 digits ID and TSV. Run script [http://jdoodle.com/a/1U1o here]. You may get at most two possible results.
** Use updated Battle Video tool (KeyBV) to dump the trainer info
** Use updated Battle Video tool (KeyBV) to dump the trainer info.
** As always, NTR Helper will update the TRV for you
** As always, NTR Helper will update the TRV for you.
'''v1.0.3'''
'''v1.0.3'''
* Improved Tiny Timeline Tool
* Improved Tiny Timeline Tool.
** Added Pokeradar patches RNG
** Added Pokeradar patches RNG.
** Added Auto-Calibration for soaring advance type
** Added Auto-Calibration for soaring advance type.
** Added XY ID RNG timeline method
** Added XY ID RNG timeline method.
** Added ORAS Kyogre/Groudon timeline method for Sync
** Added ORAS Kyogre/Groudon timeline method for Sync.
** Allowed custom encounter rate of FS
** Allowed custom encounter rate of FS.
** Fixed crash of TTT context menu
** Fixed crash of TTT context menu.
* Allowed "odd" delay method for wormhole Zapdos
* Allowed "odd" delay method for wormhole Zapdos.
* Added Unown (ORAS), Minior (Gen7) form RNG
* Added Unown (ORAS), Minior (Gen7) form RNG.
* Renamed profile file
* Renamed profile file.
* Fixed Crabrawler gender generation
* Fixed Crabrawler gender generation.
* Fixed slow gen6 stationary timeline generation in mainform
* Fixed slow gen6 stationary timeline generation in mainform.
* Reduced reseeding lag of OneClick function
* Reduced reseeding lag of OneClick function.
* Misc cleanup
* Misc cleanup.
'''v1.0.2'''
'''v1.0.2'''
* Updated Gen7 initial seed APIs
* Updated Gen7 initial seed APIs.
* Added TID/SID combo search for Mystery Gifts renaming
* Added TID/SID combo search for Mystery Gifts renaming.
* Reworked Gen6 TinyMT timeline stuffs
* Reworked Gen6 TinyMT timeline stuffs.
** Improved TinyMT timeline calculation performance
** Improved TinyMT timeline calculation performance.
** Fixed Gen6 Synchronize results
** Fixed Gen6 Synchronize results.
** Fixed Rock Smash method
** Fixed Rock Smash method.
** Added normal wild template
** Added normal wild template.
** Added White/Black Flute effect in ORAS
** Added White/Black Flute effect in ORAS.
** More features are working in progress
** More features are working in progress.
* Improved translation method
* Improved translation method.
'''v1.0.1'''
'''v1.0.1'''
* Added Gen7 ambush encounters RNG  
* Added Gen7 ambush encounters RNG .
* Added timeline leap calculator for stationary and event (PCalc only)
* Added timeline leap calculator for stationary and event (PCalc only).
** Efficiency was improved from 30 spreads per second to 630+ possible spreads per second!
** Efficiency was improved from 30 spreads per second to 630+ possible spreads per second.
** Including menu method, especially for Xurkitree and Nihilego.
** Including menu method, especially for Xurkitree and Nihilego.
** Added Gen6 frame advance column for odd/even
** Added Gen6 frame advance column for odd/even.
* Added SOS RNG UI tweaks
* Added SOS RNG UI tweaks.
* Fixed WonderCards reading
* Fixed WonderCards reading.
'''v1.0.0'''
'''v1.0.0'''
* Added SOS RNG
* Added SOS RNG.
* Unlocked partner cap Pikachu shininess
* Unlocked partner cap Pikachu shininess.
* Updated USUM 1.2 wifi patch
* Updated USUM 1.2 wifi patch.
* Added [https://github.com/wwwwwwzx/3DSRNGTool/blob/master/Data/FishingItemSlots.md fishing item slots info]
* Added [https://github.com/wwwwwwzx/3DSRNGTool/blob/master/Data/FishingItemSlots.md fishing item slots info].
* Allow customized clock image (Format: \Clock_XX.jpg)
* Allow customized clock image (Format: \Clock_XX.jpg).
* Added [https://github.com/wwwwwwzx/3DSRNGTool/blob/master/Data/BerryTrees.md random berry table from berry piles]
* Added [https://github.com/wwwwwwzx/3DSRNGTool/blob/master/Data/BerryTrees.md random berry table from berry piles].
* Fixed several wormhole delay calculation
* Fixed several wormhole delay calculation.
* Simplified Gen6 synchro check (maximum memory intensity required)
* Simplified Gen6 synchro check (maximum memory intensity required).


==Credit ==
==Credit ==
* Zaksabeast, Zep715, Real96, Admiral Fish and Shiny_Sylveon for great teamworks on gen6 development
* Zaksabeast, Zep715, Real96, Admiral Fish and Shiny_Sylveon for great teamworks on gen6 development.
** Zaksabeast and Admiral Fish for building up the plugin
** Zaksabeast and Admiral Fish for building up the plugin.
** Real96 for testing and lots of good advice
** Real96 for testing and lots of good advice.
** Zep715 for figuring out tons of infomation from the assembly
** Zep715 for figuring out tons of infomation from the assembly.
** Shiny_Sylveon for contributions to Gen6 Egg RNG
** Shiny_Sylveon for contributions to Gen6 Egg RNG.
* odanado for making Gen7 RNG API, which make us find initial seed mush faster.
* odanado for making Gen7 RNG API, which make us find initial seed mush faster.
* Kaphotics for PkHeX, KeyBV and Pk3DS. I borrowed some code from the PKHeX Core Library and extracted ROM info using Pk3DS.
* Kaphotics for PkHeX, KeyBV and Pk3DS. I borrowed some code from the PKHeX Core Library and extracted ROM info using Pk3DS.
Line 207: Line 104:


== External links ==
== External links ==
* Github - https://github.com/wwwwwwzx/3DSRNGTool
* GitHub - https://github.com/wwwwwwzx/3DSRNGTool

Latest revision as of 08:23, 14 April 2024

3DS RNG Tool
3dsrngtool.png
General
Authorwwwwwwzx
TypeHack Utilities
Version1.0.6
LicenseMIT License
Last Updated2024/04/08
Links
Download
Website
Source

The 3DS RNG Tool is a randomization tool made for main 3DS Pokemon games. Some parts should work with PokeCalcNTR using NTR-CFW.

This tool is a complete rewrite based off SMEncounterRNGTool with largely improved performance and the following features:

  • Gen6 RNG, including stationary Pokemon, Mystery Gift Pokemon, wild Pokemon (75%), Eggs, and ID.
  • Transporter RNG for transferred Virtual Console Pokemon.
  • Gen7 stationary, Mystery Gift, and wild Pokemon RNG from the SMEncounterRNGTool.
  • Gen7 egg RNG and ID RNG based on Quandra's PokemonSunMoonRNGTool.
  • Several Gen7 egg RNG modifications that are more practical.

Screenshots

3dsrngtool-01.png3dsrngtool-02.png

Changelog

v1.0.6

  • Many enhancements and bug fixes (merged from #94).

v1.0.5

  • Fixes freezing in 1.0.4.

v1.0.4

  • Initial support for RNGing square shiny in Gen 8.
  • A Pokemon is square shiny if TSV = PSV (shiny) and TRV = PRV.
  • Definition of TRV (Trainer Residual Value, or you can call it TSSV: Trainer square shiny value).
    • TRV is the last 4 bits of TID xor SID, a value between 0 and 15 and it can be presented in a one-digit hex number.
    • TRV = (TID ^ SID) & 0xF.
    • TID ^ SID = (TSV << 4) | TRV. TRV is independant of TSV.
  • How to get your TRV.
    • Check your TID and SID again. Run script here.
    • In Gen 7, find your in-game 6 digits ID and TSV. Run script here. You may get at most two possible results.
    • Use updated Battle Video tool (KeyBV) to dump the trainer info.
    • As always, NTR Helper will update the TRV for you.

v1.0.3

  • Improved Tiny Timeline Tool.
    • Added Pokeradar patches RNG.
    • Added Auto-Calibration for soaring advance type.
    • Added XY ID RNG timeline method.
    • Added ORAS Kyogre/Groudon timeline method for Sync.
    • Allowed custom encounter rate of FS.
    • Fixed crash of TTT context menu.
  • Allowed "odd" delay method for wormhole Zapdos.
  • Added Unown (ORAS), Minior (Gen7) form RNG.
  • Renamed profile file.
  • Fixed Crabrawler gender generation.
  • Fixed slow gen6 stationary timeline generation in mainform.
  • Reduced reseeding lag of OneClick function.
  • Misc cleanup.

v1.0.2

  • Updated Gen7 initial seed APIs.
  • Added TID/SID combo search for Mystery Gifts renaming.
  • Reworked Gen6 TinyMT timeline stuffs.
    • Improved TinyMT timeline calculation performance.
    • Fixed Gen6 Synchronize results.
    • Fixed Rock Smash method.
    • Added normal wild template.
    • Added White/Black Flute effect in ORAS.
    • More features are working in progress.
  • Improved translation method.

v1.0.1

  • Added Gen7 ambush encounters RNG .
  • Added timeline leap calculator for stationary and event (PCalc only).
    • Efficiency was improved from 30 spreads per second to 630+ possible spreads per second.
    • Including menu method, especially for Xurkitree and Nihilego.
    • Added Gen6 frame advance column for odd/even.
  • Added SOS RNG UI tweaks.
  • Fixed WonderCards reading.

v1.0.0

  • Added SOS RNG.
  • Unlocked partner cap Pikachu shininess.
  • Updated USUM 1.2 wifi patch.
  • Added fishing item slots info.
  • Allow customized clock image (Format: \Clock_XX.jpg).
  • Added random berry table from berry piles.
  • Fixed several wormhole delay calculation.
  • Simplified Gen6 synchro check (maximum memory intensity required).

Credit

  • Zaksabeast, Zep715, Real96, Admiral Fish and Shiny_Sylveon for great teamworks on gen6 development.
    • Zaksabeast and Admiral Fish for building up the plugin.
    • Real96 for testing and lots of good advice.
    • Zep715 for figuring out tons of infomation from the assembly.
    • Shiny_Sylveon for contributions to Gen6 Egg RNG.
  • odanado for making Gen7 RNG API, which make us find initial seed mush faster.
  • Kaphotics for PkHeX, KeyBV and Pk3DS. I borrowed some code from the PKHeX Core Library and extracted ROM info using Pk3DS.
  • 44670 for NTRClient.

External links

Advertising: