Universal Pokemon Randomizer 1.7.2
by Dabomstew, 2012-16

Homepage: http://pokehacks.dabomstew.com/randomizer/index.php
Source: https://github.com/Dabomstew/universal-pokemon-randomizer

Contents
--------
1. Introduction
2. Acknowledgements
3. Libraries Used
4. Features
5. How To Use
6. Games/ROMs supported
7. License
8. Known Issues
9. Useful/Interesting Links

Introduction
------------

This program allows you to customize your experience playing the Pokemon games
by randomizing many aspects of them. This means that the Pokemon you get at
the start of the game, the Pokemon you fight in the wild and the Pokemon 
trainers have can all be made completely different from the original game.

Acknowledgements
----------------
Many people have put countless hours of their time into researching the
structures contained within Pokemon games over the years. Without the research
done by these people, this randomizer would not exist, or would have taken a
lot longer to create.

To see the full list of contributions, see 
http://pokehacks.dabomstew.com/randomizer/acks.php

Also thanks to scheibo for forking the randomizer and refactoring some of the 
structures relating to randomization of games, the majority of which were
eventually merged in 1.6.3.
(The fork is at https://github.com/scheibo/universal-pokemon-randomizer/tree/gui)

Libraries Used
--------------
  * thenewpoketext by loadingNOW for generation 4 text handling
    http://pokeguide.filb.de/ (source @ https://github.com/magical/ppre )
  * PPTXT by ProjectPokemon for generation 5 text handling
    http://projectpokemon.org/forums/showthread.php?11582-PPTXT-Text-editing-tool
  * Code from ndstool for NDS file extraction/creation (under GPL)
    http://sourceforge.net/p/devkitpro/ndstool/
  * Code from CUE's Nintendo DS Compressors for arm9.bin (de)compressing
    (under GPL)
	http://gbatemp.net/threads/nintendo-ds-gba-compressors.313278/
  * DSDecmp for LZ10/11 decompression (under MIT)
    https://github.com/Barubary/dsdecmp
  * Code from pokemon-reverse-engineering tools for Gen1/2 pic decompression
    https://github.com/pret/pokemon-reverse-engineering-tools
 
Features
--------
Below is a list of what exactly can be randomized. You may not understand all
of it if you haven't played Pokemon games much before.
 
  * The Starter Pokemon choices
  * The Wild Pokemon you encounter in grass, caves and other places
  * The Pokemon that Trainers use against you.
  * The base stats which define the potential of each Pokemon
  * The elemental types of each Pokemon
  * The abilities of each Pokemon, in games where Pokemon have abilities
  * The Pokemon that each Pokemon evolves into, if it evolved to begin with.
  * The properties of each move, such as its power, accuracy and typing.
  * The moves that Pokemon learn by gaining levels
  * The contents of each TM which can be taught to Pokemon to give them
    additional moves 
	(HM moves are not changed to make sure you can still beat the game)
  * The ability of each Pokemon to learn each TM or HM move
  * The "static" Pokemon which you either are given, fight on the overworld,
    or are sold.
  * The names of trainers & the classes they belong in
  * The moves that Move Tutors teach, in certain games where they are
    particularly significant.
  * The items that it is possible for Pokemon to hold in the wild, and in
    certain situations the items that Pokemon given to you are holding.
  * The Pokemon that are traded to you by in-game NPCs (as opposed to
    trades with real people)
  * The items you pick up off the ground, from either item balls or
    hidden spots.
  
How To Use
----------
Extract this ZIP file before doing anything else!!!

Make sure you have Java 1.6 or later installed, then run the included EXE or JAR file.

If you open the EXE file without Java installed, it should prompt you to
install it. Follow the prompts and then re-open it once you have Java installed.

If you're using the JAR release, in some situations, you will be able to just
double-click on the JAR file and the program will run. If not, execute the
following command from your command line in the directory where you have
extracted the program:

java -jar randomizer.jar

From there you can open a ROM (legally acquired), customize what you want to be
randomized, then save the randomized ROM.

Games/ROMs supported
--------------------

Version 1.7.0 supports the following official ROMs:

  * Pokemon Red (any)
  * Pokemon Blue (any)
  * Pokemon Green (J)
  * Pokemon Yellow (any)
  * Pokemon Gold (any except Korean)
  * Pokemon Silver (any except Korean)
  * Pokemon Crystal (any)
  * Pokemon Ruby (any)
  * Pokemon Sapphire (any)
  * Pokemon Emerald (any)
  * Pokemon FireRed (any)
  * Pokemon LeafGreen (any)
  * Pokemon Diamond (any)
  * Pokemon Pearl (any)
  * Pokemon Platinum (any)
  * Pokemon HeartGold (any)
  * Pokemon SoulSilver (any)
  * Pokemon Black (any)
  * Pokemon White (any)
  * Pokemon Black2 (any)
  * Pokemon White2 (any)
  
As you can see, pretty much every game except the Korean releases of Gold
and Silver are supported. This is because these releases were very much
one-offs, and have little to nothing in the way of a ROM hacking community
which would be needed to make it possible to support them.

Whilst pretty much every release of every game is supported to a good level,
this randomizer is still targeted at English games - so users of foreign
language games may still find that the functionality is a bit limited or
small amounts of English text appear ingame where they did not before.

Randomizing ROM hacks of the above games is not supported for the most part.
It may still be possible depending on the specifics of the hack itself.
In general, the simpler a hack is, the more likely it will be able to be randomized.
Fire Red hacks are more likely to work than any others, due to specific
code added in 1.7.0 attempting to deal with them.

License
-------
This project and the majority of the libraries used are under the GNU GPL v3,
attached as LICENSE.txt.

Source code can be obtained from:
https://github.com/Dabomstew/universal-pokemon-randomizer

Other libraries used are under more liberal licenses, compatible with the GPL.

Useful/Interesting Links
------------------------
If you have bugs, suggestions, or other concerns to tell me, contact me at
http://pokehacks.dabomstew.com/randomizer/comments.php