ポケモンの乱数処理に使用される各種PRNG(疑似乱数生成器)アルゴリズムのC#実装を提供するライブラリコレクションです。
- 32bit LCGの共通インタフェースを提供するモジュールです。
- 第3世代および第4世代のメインRNGとして使われているパラメータの32bit LCGの実装を提供するライブラリです。
- ポケモンコロシアムおよびポケモンXDのメインRNGとして使われているパラメータの32bit LCGの実装を提供するライブラリです。
- 第4世代の一部(ID決定や孵化など)および第5世代(個体値乱数列)、第6世代で使われているメルセンヌツイスタの実装を提供するライブラリです。
- 第5世代で使われているパラメータの64bit LCGの実装を提供するライブラリです。
- 第6世代・第7世代で使われているTinyMTの実装を提供するライブラリです。
- 第7世代で使われているSFMTの実装を提供するライブラリです。SFMT.SIMDはSIMD命令に対応した実装になっています。
- 第8世代で使われているXoroshiro128+の実装を提供するライブラリです。
- BDSP用の実装も提供します。
- BDSPで使われているXorshift128の実装を提供するライブラリです。
- おまけです。
Visual Studioでソリューション(PokemonPRNG.sln)をビルド:
- ソリューション全体: Ctrl+Shift+B
- 特定プロジェクト: 右クリック → ビルド
- リリース構成: 構成マネージャーでRelease選択
Visual Studio Test Explorerを使用:
- テストエクスプローラー: テスト → テストエクスプローラー
- 全テスト実行: Ctrl+R, A
BenchmarkプロジェクトをRelease構成で実行
- .NET Standard 2.0以降(ほぼ全パッケージ)
- .NET 7.0以降(SFMT.SIMDのみ)
- Visual Studio 2019以降 推奨
各パッケージの詳細な使用方法は、それぞれのREADMEファイルを参照してください。