pret / pokeplatinum Goto Github PK
View Code? Open in Web Editor NEWDecompilation of Pokémon Platinum
Decompilation of Pokémon Platinum
Relevant NARCs:
battle/skill/be_seq.narc
- Effect-specific code, one entry per entry in battle_effects.h
battle/skill/sub_seq.narc
- Common routines for, e.g., applying poison, boosting stats, etc.battle/skill/waza_seq.narc
- One entry per move, defines the specific routine for that moveRequirements:
battle_script.c
)OK
re-buildWe currently have a tool csv2bin
which has an embedded NARC compilation process. This breaks separation of concerns principles. We should determine how to silo NARC compilation for data archives so that we have a single implementation of that compilation, letting our tools focus on building data files to be archived.
We've had a number of issues related to line-endings, particularly when building data archives for the filesystem; we should address those with a top-level gitattributes file to ensure the same line-endings regardless of platform.
Adding battle scripts to the build exposed the performance issues of WINE-wrapping. We should update mwrap
to load the PE into memory and provide implementations of all the Windows functions that it requires, so that we can cut the need for WINE from the build system.
There are two arrays in code that are currently tied to having a 1-1 relationship with individual pokemon, however are currently hardcoded in source:
These ideally should be dynamically generated from data.json
files for each species
Japanese names are required for the ROM to match, but references in code are always by index. This gives us some freedom to decide on whether to:
These aren't necessarily mutually exclusive options.
NARCs that have yet to be decompiled are organized underneath res/prebuilt
.
poketool/pokegra/height.narc
- Height data for base Pokemonpoketool/pokegra/height_o.narc
- Height data for Pokemon with formspoketool/trgra/trbgra.narc
- Back-facing sprites for trainer classes which have thempoketool/trgra/trfgra.narc
- Front-facing sprites for trainer classespoketool/personal/evo.narc
- Evolution data for Pokemon speciespoketool/personal/pl_growtbl.narc
- Experience curve datapoketool/trmsg/trtbl.narc
- Mappings of trainer IDs to in-battle message typespoketool/trmsg/trtblofs.narc
- Mappings of trainer IDs to their starting offset in trtbl.narc
poketool/pokefoot/pokefoot.narc
- Footprint sprites for base Pokemonpoketool/pl_pokezukan.narc
- Mapping of each base Pokemon to its Sinnoh Pokedex numberpoketool/shinzukan.narc
- Mapping of each base Pokemon to its National Pokedex numberpoketool/pokeanm/pl_pokeanm.narc
- Animation frames for Pokemon in-battle; never used nor referenced in the production ROM.poketool/poke_edit/pl_poke_data.narc
- Table of data for in-battle sprite offsets, shadow coordinates, and animation constants for each PokemonPull request #191 introduces a Python utility for interpreting tutorable moves from individual species' data files and building the table for all species to be included in the ROM. However, it makes use of a hard-coded copy of what moves are tutorable.
We should explore generating the table used by both the ROM and by the Python utility that defines what moves are tutorable (as well as what the cost of a tutor is and which location's tutor can teach the move).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.