andrewbenington / OpenHome

Application for importing and transferring Pokémon between save files
https://andrewbenington.github.io/OpenHome/
GNU General Public License v3.0
20 stars 1 forks source link

Added a basic RadicalRed typescript sav reader #42

Closed evanwporter closed 1 week ago

evanwporter commented 1 week ago

Adds a method for decrypting Radical Red saves. See #41. It parses it correctly, however there are some issues with exporting it to a sav. In particular it seems the OHPKM class is not fully compatible with PK3RR, so some work will definitely need to be done here to ensure full compatibility. As an alternative a hacky method is just to convert PK3RR files to Gen 7, 8, 9. Whichever is the latest gen that Pokémon appears in.

But until the PK3RR commit is integrated into the pokemon-species module, its best to keep this on the backburner since accepting this commit will only cause errors.

evanwporter commented 1 week ago

Probably best to merge this with a branch. Again this isn't completely finished, but its close!!! Things left to do are:

andrewbenington commented 1 week ago

I'm going to make a branch for this, we don't want main to break.

I really love the idea of ROM hack support; my pie-in-the-sky goal is to make ROM hack saves supported via a plugin system, but in the meantime let's just keep the RR save type in its own separate folder (SAVTYPES/ROM?).

By the way, if you want to use a local version of the pokemon-files-js library for development, you can change the version of "pokemon-files" in package.json to a path to the location on your machine. I do it like this:

...
"dependencies": {
    ...
    "pokemon-files": "../pokemon-files",
evanwporter commented 1 week ago

I think most ROM hacks simply expand the pokedex, the number of available items, and the number of moves. They don't modify how the saves work. Radical Red and Unbound are the only ones that do this afaik. So a plugin system could be as simple a list of species and items into a folder for the program to read.

evanwporter commented 1 week ago

By the way, if you want to use a local version of the pokemon-files-js library for development, you can change the version of "pokemon-files" in package.json to a path to the location on your machine. I do it like this:

...
"dependencies": {
    ...
    "pokemon-files": "../pokemon-files",

This is really helpful.