Commit graph

1208 commits

Author SHA1 Message Date
Eevee (Lexy Munroe)
d7d8bf527c Fix another form numbering problem; include dummy ability effects 2017-08-22 16:39:22 -07:00
Eevee (Lexy Munroe)
558e9c8997 Fix creation of new evolution chains and form defaulting 2017-08-22 15:26:27 -07:00
Eevee (Lexy Munroe)
060dd42c7a Get SUMO to YAML to database basically working, finally!
- Pokémon shapes are now dumped
- Machines were being dumped slightly out of order; they are now correct
- Item price is now dumped correctly
- Identifiers are now computed to match veekun for all Pokémon
- Several bugs with evolutions were fixed
- Shedinja is now special-cased, alas
- Items are now loaded into the db
- Pokémon are now loaded into the db, mostly correctly
2017-08-22 14:29:07 -07:00
Eevee (Lexy Munroe)
698a211539 Add moves to the yaml-to-db importer 2017-07-11 17:04:10 -07:00
Eevee (Lexy Munroe)
956ba7a426 Figure out, fix, and dump a bunch of "mystery" data from moves and Pokémon 2017-07-11 16:29:22 -07:00
Eevee (Lexy Munroe)
cf7526a39a Add in Pokémon types, egg groups, and effort + move flavor 2017-06-25 15:57:38 -07:00
Eevee (Lexy Munroe)
3d296ff7b4 Dump most of the interesting bits about moves 2017-06-25 12:40:52 -07:00
Eevee (Lexy Munroe)
215366968b Add a quick hack for matching forms together
This should be enough to import into veekun, but isn't final.
2017-06-25 11:05:14 -07:00
Eevee (Lexy Munroe)
78f1fda541 Clean up form ordering once and for all™ 2017-06-23 13:32:18 -07:00
Eevee (Lexy Munroe)
69f1d3a1ca I swear to god this compression thing will be the death of me 2017-06-23 13:30:53 -07:00
Eevee (Lexy Munroe)
ffd888011e Switch back to single-character identifier prefixes 2017-06-18 00:16:31 -07:00
Eevee (Lexy Munroe)
a08095f326 Parse Pokémon evolutions, mostly 2017-06-17 23:15:11 -07:00
Eevee (Lexy Munroe)
b5302d32ba Argh, need to seek after a failed decompress! 2017-06-17 21:36:12 -07:00
Eevee (Lexy Munroe)
4654a1930f Disambiguate z-crystal identifiers 2017-06-17 20:21:26 -07:00
Eevee (Lexy Munroe)
d6b46d8b25 Get basic item dumping from ORAS through SUMO working 2017-06-14 22:55:28 -07:00
Eevee (Lexy Munroe)
feae105e88 Dump abilities from gen 6/7, and load them into the db! 2017-01-26 16:29:44 -08:00
Eevee (Lexy Munroe)
2631d36963 Add an experimental lazy CompressedStream that actually seems to work
Unfortunately it may not make any practical difference, since a
compressed PC file still needs to be fully decompressed just to check
the magic numbers of its subfiles.  May revert this later, I dunno.
2017-01-26 16:26:50 -08:00
Eevee (Lexy Munroe)
ac19f95d5c Minor doc fix in db.tables 2017-01-26 16:23:56 -08:00
Eevee (Lexy Munroe)
554ddeaf10 Fix a misspelled variable name in db.load 2017-01-26 16:23:20 -08:00
Eevee (Lexy Munroe)
6cc2e4439c Fix a rather catastrophic typo (U+307f is み!) 2017-01-26 16:22:52 -08:00
Eevee (Lexy Munroe)
053f2a8d22 Use YAML schema for gen 6/7; add gen7 form names; improved image support
Specifically:

- Add support for detecting FLIM format

- Add support for more color formats

- Add a small decoded image type that knows how to write itself out as
  a PNG

- Improve ETC1 decoder to work with images whose dimensions are not
  powers of two, images with no alpha channel, and images with the
  strange FLIM pixel order

- Port the gen 6/7 extractor to Construct 2.8

- Switch to using script tags in language names, to distinguish Japanese
  kana from kanji and Simplified from Traditional Chinese

- Drop the load-time merging of kanji and kana

- Add paths to various text files in SUMO

- Add form names for SUMO Pokémon

- Clean up identifiers a bit, especially the distinction between species
  and Pokémon

- Use the Pokémon schema type to dump what we have so far, and give it a
  couple more fields that didn't exist in gen 1

- Get movesets dumping correctly

- Special-case a bunch of weirdness, where the number of dex sprites
  doesn't match the number of models in SUMO
2017-01-05 04:57:05 -08:00
Eevee (Lexy Munroe)
0f79a5b922 Add the lookup table used for Chinese Pokémon names in SUMO 2017-01-05 04:53:42 -08:00
Eevee (Lexy Munroe)
c111a56612 Port CLIM decoder to Construct 2.8; add more pixel formats 2016-12-20 19:24:59 -08:00
Eevee (Lexy Munroe)
d7c20809e5 Port GARC decoder to Construct 2.8 2016-12-20 19:22:59 -08:00
Eevee (Lexy Munroe)
a38cb37e90 Fix a couple bugs with Substream
- seek() now supports a second argument.

- peek() and read() no longer look beyond the end of the substream.

- slice() no longer doubles its offset.
2016-12-20 19:20:33 -08:00
Eevee (Lexy Munroe)
db1ddc68e7 Finally get rid of bitfield_to_machines and parse it natively 2016-12-19 16:37:36 -08:00
Eevee (Lexy Munroe)
4cd67b3787 Fix a misunderstand of how to use the offsets in PC files 2016-12-19 16:18:53 -08:00
Eevee (Lexy Munroe)
b8a5f634d5 Port RBY dumping code to Construct 2.8 2016-12-19 16:12:54 -08:00
Eevee (Lexy Munroe)
508b5cd88f Fix gbz80 code search on PyPy
It doesn't support % on bytestrings yet, alas.
2016-12-19 16:07:59 -08:00
Eevee (Lexy Munroe)
a6c63733f0 Clean up and comment ETC1 decoder 2016-12-16 14:38:58 -08:00
Eevee (Lexy Munroe)
b12166648e Checkpoint some Sun/Moon progress
The bulk of the data is in the same format as ORAS, so most of the
changes were just tracking down where files moved to.

The code was a mess, and is still a mess.  Oh, well.

- Made pretty good progress on dumping ORAS encounters; remaining work
  largely boils down to figuring out names for individual zones.

- Hacked the CLIM decoder to also work with SUMO's slightly modified box
  sprite format, FLIM.

- Added a Nintendo-flavored ETC1 decoder; this is the format used for
  Pokédex sprites in SUMO.

- Cleaned up sprite dumping a wee bit.
2016-12-07 06:29:44 -08:00
Eevee (Lexy Munroe)
7f7cca6c58 Improve schema ergonomics a bit, especially around slicing
The previous approach was moving towards having each attribute on a
locus do multiple different things, depending on context, and I think
that was headed towards being a mess.

This idea is to have actual locus objects be dumb containers, and have
various wrappers that call methods on the attributes to do interesting
work.
2016-11-21 19:28:55 -08:00
Eevee (Lexy Munroe)
aa92ccb7ad Make the schema minimally usable on Python 3 2016-11-21 19:27:28 -08:00
Eevee (Lexy Munroe)
684aef2506 Clean up ORAS Pokémon sprite ripping
Box sprites are now ripped paletted, complete with an sBIT chunk.  Box
sprites are also saved with the right form names.  A lot of
name-mangling and error-checking code was pulled out of the binary
parsing stuff and shared between both types of sprites.
2016-10-15 18:16:41 -07:00
Eevee (Lexy Munroe)
6c135e559e Implement writing localized properties through a wrapper object 2016-09-16 17:00:12 -07:00
Eevee (Lexy Munroe)
1cff16f256 Fix off-by-ten error in imperial weights 2016-09-16 16:59:09 -07:00
Eevee (Lexy Munroe)
dd3d3a3f25 Dump flavor text 2016-09-10 21:23:57 -07:00
Eevee (Lexy Munroe)
50344e6794 Allow dumping all of Gen 1 simultaneously 2016-09-10 18:05:41 -07:00
Eevee (Lexy Munroe)
44fdaee4d9 Replace most of the address-hunting with code matches 2016-09-10 18:05:00 -07:00
Eevee (Lexy Munroe)
ffa0bf65a0 Drop support for 2.6 2016-08-25 09:05:45 -07:00
Eevee (Lexy Munroe)
122da8d885 Write a gbz80 pattern matcher, for more robust address sniffing
With this, Pokémon names are finally detected correctly from both R/G
and R/B.  Hurrah.

Yellow doesn't work yet, though.  Sigh.
2016-08-21 16:44:07 -07:00
Eevee (Lexy Munroe)
969d671c48 Make great strides towards an actual game-aware API
Huzzah!

Also, I decided to namespace identifiers.  For now.  We'll see how it
goes.
2016-08-14 00:15:30 -07:00
Eevee (Lexy Munroe)
aa32cf0b53 WIP: Add what I have of gen1 ripping stuff 2016-08-12 18:34:11 -07:00
Eevee (Lexy Munroe)
949eafb957 Initial gen6-to-yaml ripping stuff 2016-02-26 10:05:51 -08:00
Eevee (Lexy Munroe)
54ea67a804 Fix pokedex dump under Python 2 AND 3, at the same time even 2015-11-04 20:10:27 -08:00
Eevee (Lexy Munroe)
b581c5205a Remove some bogus ORAS egg moves 2015-11-04 20:03:17 -08:00
Eevee (Lexy Munroe)
e0f4d3be7a Fix pokedex dump under Python 2 2015-11-04 20:03:08 -08:00
Eevee (Alex Munroe)
0ff24b4dc8 Fix the CLI in py3 2015-10-05 16:29:21 -07:00
Eevee (Alex Munroe)
17999c5b1a Try to fix Python 2.6 build
Apparently the latest markdown no longer works against py2.6; Travis
fails on trying to import importlib.  I added a dependency on the PyPI
backport to see if that helps for now.
2015-10-05 08:23:42 -07:00
Eevee (Alex Munroe)
43db6a5337 That day is today -- run Travis on Python 3! 2015-10-05 08:15:25 -07:00