Randomizes the warps in a stock pokeemerald repo.

Overview

pokeemerald warp randomizer

Randomizes the warps in a stock pokeemerald repo.

Usage Instructions

  • Install networkx and matplotlib via pip3 or similar.
  • Set POKEEMERALD environment variable to the path to your pokeemerald/ folder
  • Edit rand_idx at the top of the file to the seed to start searching from.
  • Ensure that the repo has not already been randomized, or the script will not work!
  • python3 randomizer.py
  • The script will search for randomized layouts which pass completability tests. This can take anywhere from a couple of minutes to an hour.
    • "Completable" is defined as a series of pathfinding routes from the first gym to the last gym to the Elite 4, including required story events and in-order. As such, it is highly likely that sequence breaks will allow faster completion. The pathfinding routes do not use Cut, Fly nor the bikes.
    • Current average amount of viable generated seeds is about 1 in 20,000.
  • After a seed is found, map JSONs will be modified and pokeemerald can be compiled

Notes

There are no guarantees on softlocking prevention, though several precautions are taken:

  • Littleroot Town is frozen to guarantee the player gets a Pokemon.
  • The Elite 4 are all frozen to enforce gym completion (but may be configurably unfrozen later?).
  • Petalburg Woods is currently frozen, but may be unfrozen later.
  • Mossdeep City Gym is frozen, due to complexity with verifying the puzzle can be completed with warps altered.
  • Petalburg Gym is frozen, due to doors being tied to trainers (high softlock potential).
  • Shoal Cave is frozen due to tides.
  • Trick House is frozen to prevent breakage.
  • Trainer Hill is frozen to prevent breakage.
  • Regi Tombs are frozen due to the Braille wall (but may be unfrozen later?).
  • The Mt. Chimney Cable Car is not randomized and will always travel between stations (the entrances and exits, however, are randomized).

Pathfinding Structure

  • By default, all warps are connected bidirectionally to a central node (ie, MAP_PETALBURG_CITY_WARP0..N will connect to MAP_PETALBURG_CITY)
  • Connections are a bidirectional edge between central map nodes (ie, MAP_PETALBURG_CITY <-> MAP_ROUTE102)
  • For maps with ledges, edges can be cut in either direction.
  • Maps with partitioning generally forgo the central node and connect warps directly to each other.
  • Edges which require HMs or story flags will have an additional attribute requires, and during the completion tests these edges are cut if flags haven't yet been obtained.
Owner
Max Thomas
I do reverse engineering work, vulnerability research, hardware drivers, modding tools and VR tinkering. Currently working at Ultraleap.
Max Thomas
A web-based application for quick, scalable, and automated hyperparameter tuning and stacked ensembling in Python.

Xcessiv Xcessiv is a tool to help you create the biggest, craziest, and most excessive stacked ensembles you can think of. Stacked ensembles are simpl

Reiichiro Nakano 1.3k Nov 17, 2022
EASY - Ensemble Augmented-Shot Y-shaped Learning: State-Of-The-Art Few-Shot Classification with Simple Ingredients.

EASY - Ensemble Augmented-Shot Y-shaped Learning: State-Of-The-Art Few-Shot Classification with Simple Ingredients. This repository is the official im

Yassir BENDOU 57 Dec 26, 2022
Use your Philips Hue lights as Racing Flags. Works with Assetto Corsa, Assetto Corsa Competizione and iRacing.

phue-racing-flags Use your Philips Hue lights as Racing Flags. Explore the docs » Report Bug · Request Feature Table of Contents About The Project Bui

50 Sep 03, 2022
UMT is a unified and flexible framework which can handle different input modality combinations, and output video moment retrieval and/or highlight detection results.

Unified Multi-modal Transformers This repository maintains the official implementation of the paper UMT: Unified Multi-modal Transformers for Joint Vi

Applied Research Center (ARC), Tencent PCG 84 Jan 04, 2023
A Python Package for Portfolio Optimization using the Critical Line Algorithm

PyCLA A Python Package for Portfolio Optimization using the Critical Line Algorithm Getting started To use PyCLA, clone the repo and install the requi

19 Oct 11, 2022
Code for GNMR in ICDE 2021

GNMR Code for GNMR in ICDE 2021 Please unzip data files in Datasets/MultiInt-ML10M first. Run labcode_preSamp.py (with graph sampling) for ECommerce-c

7 Oct 27, 2022
Official implementation for Likelihood Regret: An Out-of-Distribution Detection Score For Variational Auto-encoder at NeurIPS 2020

Likelihood-Regret Official implementation of Likelihood Regret: An Out-of-Distribution Detection Score For Variational Auto-encoder at NeurIPS 2020. T

Xavier 33 Oct 12, 2022
Computing Shapley values using VAEAC

Shapley values and the VAEAC method In this GitHub repository, we present the implementation of the VAEAC approach from our paper "Using Shapley Value

3 Nov 23, 2022
Reinforcement Learning via Supervised Learning

Reinforcement Learning via Supervised Learning Installation Run pip install -e . in an environment with Python = 3.7.0, 3.9. The code depends on MuJ

Scott Emmons 49 Nov 28, 2022
DeepLearning Anomalies Detection with Bluetooth Sensor Data

Final Year Project. Constructing models to create offline anomalies detection using Travel Time Data collected from Bluetooth sensors along the route.

1 Jan 10, 2022
An imperfect information game is a type of game with asymmetric information

DecisionHoldem An imperfect information game is a type of game with asymmetric information. Compared with perfect information game, imperfect informat

Decision AI 25 Dec 23, 2022
RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation

Multipath RefineNet A MATLAB based framework for semantic image segmentation and general dense prediction tasks on images. This is the source code for

Guosheng Lin 575 Dec 06, 2022
EFENet: Reference-based Video Super-Resolution with Enhanced Flow Estimation

EFENet EFENet: Reference-based Video Super-Resolution with Enhanced Flow Estimation Code is a bit messy now. I woud clean up soon. For training the EF

Yaping Zhao 19 Nov 05, 2022
Oriented Response Networks, in CVPR 2017

Oriented Response Networks [Home] [Project] [Paper] [Supp] [Poster] Torch Implementation The torch branch contains: the official torch implementation

ZhouYanzhao 217 Dec 12, 2022
DirectVoxGO reconstructs a scene representation from a set of calibrated images capturing the scene.

DirectVoxGO reconstructs a scene representation from a set of calibrated images capturing the scene. We achieve NeRF-comparable novel-view synthesis quality with super-fast convergence.

sunset 709 Dec 31, 2022
DataCLUE: 国内首个以数据为中心的AI测评(含模型分析报告)

DataCLUE: A Benchmark Suite for Data-centric NLP You can get the english version of README. 以数据为中心的AI测评(DataCLUE) 内容导引 章节 描述 简介 介绍以数据为中心的AI测评(DataCLUE

CLUE benchmark 135 Dec 22, 2022
Apply Graph Self-Supervised Learning methods to graph-level task(TUDataset, MolculeNet Datset)

Graphlevel-SSL Overview Apply Graph Self-Supervised Learning methods to graph-level task(TUDataset, MolculeNet Dataset). It is unified framework to co

JunSeok 8 Oct 15, 2021
TLDR; Train custom adaptive filter optimizers without hand tuning or extra labels.

AutoDSP TLDR; Train custom adaptive filter optimizers without hand tuning or extra labels. About Adaptive filtering algorithms are commonplace in sign

Jonah Casebeer 48 Sep 19, 2022
Pytorch Implementation of paper "Noisy Natural Gradient as Variational Inference"

Noisy Natural Gradient as Variational Inference PyTorch implementation of Noisy Natural Gradient as Variational Inference. Requirements Python 3 Pytor

Tony JiHyun Kim 119 Dec 02, 2022
The original weights of some Caffe models, ported to PyTorch.

pytorch-caffe-models This repo contains the original weights of some Caffe models, ported to PyTorch. Currently there are: GoogLeNet (Going Deeper wit

Katherine Crowson 9 Nov 04, 2022