Commit Graph

562 Commits

Author SHA1 Message Date
Bryan Bishop
536df0787f split out IntervalMap into a separate file 2013-01-15 16:12:26 -06:00
Bryan Bishop
7a33b66ab4 Merge pull request #86 from yenatch/master
3jumptext is an ender.
2013-01-14 20:44:07 -08:00
yenatch
669c461ad8 forgot to make 3jumptext an ender 2013-01-14 23:19:31 -05:00
Bryan Bishop
e09aff7715 Merge pull request #85 from yenatch/master
More script commands.
2013-01-14 19:25:54 -08:00
yenatch
28b565a01c add missing script command (3jumptext) 2013-01-14 21:44:47 -05:00
Bryan Bishop
df680fde38 Merge pull request #84 from yenatch/master
make script parsing less terrible
2013-01-14 01:48:24 -08:00
yenatch
acd6d354c8 banish script parser output to debug 2013-01-14 03:15:47 -05:00
IIMarckus
818a82a20e Fix typo. 2013-01-13 16:12:25 -07:00
yenatch
9fbe7ea423 make careless use of gfx.py less fatal 2013-01-13 00:40:13 -05:00
yenatch
238f406024 implement rgb macro for palettes 2013-01-13 00:38:48 -05:00
yenatch
e59a7c8d6f add symfile generation 2013-01-10 03:00:46 -05:00
yenatch
2cdf7a3688 include all compressed and decompressed graphics
* frontpics & animation tiles
* backpics
* trainer pics
* attack animation gfx
* intro gfx
* intro tilemaps
* title gfx
* tilesets
* player backpic
* dude backpic
* pokegear/town map

fixes #33, #34 and #35
2013-01-04 04:08:13 -06:00
yenatch
e91f41dd35 allow other files to import gfx.py 2013-01-02 04:37:45 -05:00
yenatch
3e953ad7b6 make gfx.py more convenient from command line 2013-01-01 16:31:05 -05:00
Bryan Bishop
98c1d9d09d Merge pull request #51 from yenatch/master
Image compression/decompression.
2012-12-31 20:10:43 -08:00
yenatch
a3fe9c00d0 decompress all known gfx 2012-12-31 22:53:40 -05:00
Bryan Bishop
da8b1e06e5 clean up whitespace 2012-12-28 12:37:58 -06:00
Bryan Bishop
3b20ea2916 Merge remote branch 'remotes/yenatch/master'
fixes #49
2012-12-23 02:57:21 -06:00
IIMarckus
19ce6e7a74 specialphonecall takes a 16‐bit ID. 2012-12-17 21:00:41 -07:00
Bryan Bishop
531ccfb5f6 update gbz80disasm to not use $ff00+$ff syntax 2012-12-16 09:16:04 -06:00
padz
3bae3a5313 make gbz80disasm easier to use externally 2012-12-14 02:47:13 -05:00
Bryan Bishop
671e2b1289 md5 -> hashlib 2012-11-30 10:17:23 -06:00
Bryan Bishop
a1a9fa5560 move allowed_lengths for music macros out
This moves the allowed_lengths setting out of the preprocessor. Special
cases should not be hardcoded in the preprocessor.
2012-11-30 09:54:02 -06:00
padz
3626ddebd1 implement music macros; INCLUDE injection in pre 2012-11-30 05:58:00 -05:00
padz
1b54f73323 play nice w/ cygwin; undeprecate used command 2012-11-15 02:33:02 -05:00
Bryan Bishop
69c0125112 remove deprecated functions from crystal.py 2012-10-11 19:05:49 -05:00
Bryan Bishop
82f7e98306 get an address given a label 2012-10-11 18:52:54 -05:00
Bryan Bishop
e6c95e22c9 clean up comments in extras/crystal.py
This fixes the inconsistent comment formatting throughout the file.

There should be a space between the comment token and the comment
message, otherwise this file is less fun to read.
2012-10-01 13:11:52 -05:00
Bryan Bishop
e1ff7f98de generate labels.json automagically in gbz80disasm 2012-09-10 22:30:58 -05:00
Bryan Bishop
d23972b7a3 call load_asm in scan_for_predefined_labels 2012-09-10 22:30:58 -05:00
Bryan Bishop
0c3ba03d37 Merge pull request #22 from iimarckus/decimal1
Decimal1
2012-07-08 23:25:49 -07:00
IIMarckus
fa019d2f51 Add some functions from Mobile Stadium. 2012-07-07 19:51:02 -06:00
Bryan Bishop
6f8c3e5c3e use decimal output for givepoke in extras/crystal.py 2012-07-05 10:25:33 -05:00
Bryan Bishop
b85d9b86ad use os.path.join instead of cowboying it 2012-07-01 08:55:21 -05:00
Bryan Bishop
86cb61dbe8 make pokecrystal compatible with python2.6 by default 2012-07-01 08:48:27 -05:00
Bryan Bishop
58c696cfd3 use extras/labels.json and not ./labels.json in romstr.py 2012-07-01 08:44:20 -05:00
Bryan Bishop
85d26e31a5 better graph-generating routines 2012-07-01 08:41:38 -05:00
Bryan Bishop
fcf43b13da fix romstr for compiling (thanks pasky) 2012-07-01 08:41:14 -05:00
Bryan Bishop
3359121ba7 graph.py - parse pokecrystal into a function graph for d3.js 2012-06-21 03:37:13 -05:00
Bryan Bishop
e471fbeb32 continue at relative jumps and fix formatting 2012-06-20 21:13:24 -05:00
Bryan Bishop
36eb6c726a use labels in the disassembler output 2012-06-20 01:51:23 -05:00
Bryan Bishop
099295bb3d load labels into the new disassembler 2012-06-20 01:42:48 -05:00
Bryan Bishop
1342ab67db more de-dependency-looping 2012-06-20 01:42:33 -05:00
Bryan Bishop
ca07f1d64c move code around to avoid dependency loops 2012-06-20 01:13:15 -05:00
Bryan Bishop
e2babd69fb use romstr.py as the new disassembler 2012-06-19 23:59:49 -05:00
Bryan Bishop
96596c6944 asm output for the new disassembler 2012-06-19 23:42:12 -05:00
Bryan Bishop
96ca472fc9 implement a formatted-with-labels version of the opcode line 2012-06-19 22:54:20 -05:00
Bryan Bishop
9a4158462b remove debug lines 2012-06-19 22:40:38 -05:00
Bryan Bishop
132182e263 super duper disassembler fixes 2012-06-19 22:12:52 -05:00
Bryan Bishop
4b7ca69344 advance forward when disassembling the rom 2012-06-14 21:54:25 -05:00
Bryan Bishop
b19db1e604 broken disassembler 2012-06-10 22:55:05 -05:00
Bryan Bishop
cd60a1f0e4 backtracking and labeling for the disassembler 2012-06-10 18:26:18 -05:00
Bryan Bishop
10a5a6518d somewhat improved disassembler 2012-06-10 12:24:33 -05:00
Bryan Bishop
3233cead33 sleepy disassembling 2012-06-07 01:37:55 -05:00
Bryan Bishop
4ccfe27e4a more awful code for the new disassembler 2012-06-07 01:24:38 -05:00
Bryan Bishop
7dd0c86a6b almost complete new disassembler version 2012-06-07 01:07:48 -05:00
Bryan Bishop
0768fead4f more cleaning 2012-06-06 21:04:40 -05:00
Bryan Bishop
c79db81d43 remove more code cruft 2012-06-06 21:00:30 -05:00
Bryan Bishop
48b2237b82 remove some code cruft from gbz80disasm 2012-06-06 20:43:02 -05:00
Bryan Bishop
315edbe14b get RomStr from romstr.py in gbz80disasm 2012-06-06 20:26:02 -05:00
Bryan Bishop
9144706510 make unittest2 error show up in stderr 2012-06-02 11:42:09 -05:00
Bryan Bishop
376f65a4fd temporarily disable label-usage (find_label) in gbz80disasm 2012-05-31 02:02:41 -05:00
Bryan Bishop
8add342a85 find functions based on first few similar bytes 2012-05-31 02:02:23 -05:00
Bryan Bishop
e954781618 hooray PrintNumber_PrintLeadingZero is also shared 2012-05-29 15:04:19 -05:00
Bryan Bishop
53b0dd13a8 comparator.py - find shared functions between pokered/pokecrystal 2012-05-29 14:50:56 -05:00
Bryan Bishop
d174c8b7c6 fix up AsmSection and line_has_comment_address 2012-05-29 14:50:35 -05:00
Bryan Bishop
0edf9eb8b8 move AsmList into romstr.py too 2012-05-29 13:19:02 -05:00
Bryan Bishop
ee7d39bf04 move RomStr into a shared file 2012-05-29 13:08:43 -05:00
Bryan Bishop
0aecb683a0 use map constants for wildmons sections 2012-05-28 10:30:45 -05:00
Bryan Bishop
a9b0eb4d87 update to_asm on MapHeader to use the BANK macro 2012-05-28 09:51:49 -05:00
Bryan Bishop
5e37b9a97f insert all map connections 2012-05-28 00:16:38 -05:00
Bryan Bishop
2fe10a6682 don't use any particular formula for strip-destination west/east 2012-05-27 23:50:18 -05:00
Bryan Bishop
7d9552b5fa fix typo in strip destination pointer (north) calculations 2012-05-27 20:02:34 -05:00
Bryan Bishop
d48ce59997 do all the connection to_asm output 2012-05-27 19:45:44 -05:00
Bryan Bishop
da74952bf7 asm output for strip pointer formulas 2012-05-27 18:24:09 -05:00
Bryan Bishop
5b59d0776b better formulas for strip_destination and window 2012-05-27 15:54:44 -05:00
Bryan Bishop
a32c6d0aa4 improve formulas for calculating strip_pointer 2012-05-27 13:46:58 -05:00
Bryan Bishop
56e0795d0d better equations for calculating strip_pointer in connections 2012-05-27 12:51:53 -05:00
Bryan Bishop
fbaadd97ac some broken code 2012-05-26 23:13:48 -05:00
Bryan Bishop
3a614ddcea east connections? 2012-05-26 22:19:53 -05:00
Bryan Bishop
30695eec25 fix MainText/PokedexText interaction 2012-05-26 16:10:11 -05:00
Bryan Bishop
d88ea77cfa start to parse the connection data 2012-05-26 14:46:34 -05:00
Bryan Bishop
6074a55e3d minor whitespace fix 2012-05-24 22:01:50 -05:00
Bryan Bishop
64f52b32ef fix more height/weight confusion and whitespacing 2012-05-23 19:40:12 -05:00
Sanky
765b555b47 Dumped Pokédex data and entries. 2012-05-24 02:33:42 +02:00
Bryan Bishop
4ec6dfc5fe fix PokedexText? 2012-05-23 18:15:48 -05:00
Bryan Bishop
38eae01fcd fix PokedexText 2012-05-23 17:56:34 -05:00
Bryan Bishop
1663472cf6 quick fix for PokedexText 2012-05-23 17:39:30 -05:00
Bryan Bishop
0c778f2930 use PokedexText to parse text-script-like text without the first bash command 2012-05-23 17:38:15 -05:00
IIMarckus
bd1760f3f9 Use Pokémon IDs for the “cry” macro. 2012-05-22 19:57:09 -06:00
Bryan Bishop
4b2d26965e dump-insert the stringtotext targets 2012-05-22 11:57:00 -05:00
Bryan Bishop
2567957692 use EncodedText for stringtotext params 2012-05-22 11:50:25 -05:00
Bryan Bishop
cb5eae3e9d check if trainer_names has been set yet before using that key 2012-05-22 11:44:42 -05:00
Bryan Bishop
c16d796c27 add '@' to EncodedText output 2012-05-22 11:38:57 -05:00
Bryan Bishop
05686167d7 SUPERNERD -> SUPER_NERD in trainer constants 2012-05-21 08:39:11 -05:00
Bryan Bishop
e517b30a14 at least try to keep HoOh in tact in label names 2012-05-21 01:38:11 -05:00
Bryan Bishop
7641b53a6a fix line continuation syntax error 2012-05-21 01:35:45 -05:00
Bryan Bishop
9ea35422f8 add trainer id to trainer fragment headers for grunts 2012-05-21 01:34:21 -05:00
Bryan Bishop
377a212322 improvements to map_name_cleaner 2012-05-21 01:31:26 -05:00
Bryan Bishop
ba72006077 add the labels to the scripts, not to the params pointing to scripts 2012-05-20 14:32:19 -05:00
Bryan Bishop
a34d4621ee better signpost labeling 2012-05-20 14:23:13 -05:00
Bryan Bishop
61d3b8a6b4 use better label for MapEventHeader 2012-05-20 09:56:27 -05:00
Bryan Bishop
a27a7f2892 reuse pre-existing/pre-inserted MapBlockData objects when possible 2012-05-20 09:37:43 -05:00
Bryan Bishop
2c73f020a6 make map header labels use better rules 2012-05-20 09:32:59 -05:00
Bryan Bishop
1286f37a85 don't add TrainerGroupTable to future dumps 2012-05-20 04:32:39 -05:00
Bryan Bishop
38b9862002 give better labels to TrainerFragment subobjects like texts and scripts 2012-05-20 04:29:19 -05:00
Bryan Bishop
219c4865e3 create better labels for TrainerFragments 2012-05-20 04:11:37 -05:00
Bryan Bishop
6a2dc36749 rename cal's header to PKMN Trainer 2012-05-20 03:57:12 -05:00
Bryan Bishop
be8a5d6c6a remove extra spacing in crystal.py 2012-05-20 03:39:25 -05:00
Bryan Bishop
609e94774c make TrainerFragment.to_asm() use trainer constants 2012-05-20 03:33:35 -05:00
Bryan Bishop
35e6903395 better asm output for TrainerHeader and TrainerGroupHeader 2012-05-20 03:20:01 -05:00
Bryan Bishop
efd43a17b2 improve MoveParam to handle zeroed-out moves 2012-05-20 03:15:36 -05:00
Bryan Bishop
40000ca816 fix quick syntax error 2012-05-20 03:11:22 -05:00
Bryan Bishop
569dec4a85 initial MoveParam class 2012-05-20 03:10:40 -05:00
Bryan Bishop
a28311ff90 move_constants.py - store moves for MoveParam 2012-05-20 03:10:26 -05:00
Bryan Bishop
1fb70a4b4f update TrainerGroupParam and TrainerIdParam to use better constant/number rules 2012-05-20 03:02:35 -05:00
Bryan Bishop
b731d8d1f8 update the constants for BLACKBELT_T and PSYCHIC_T in trainers.py 2012-05-20 02:52:51 -05:00
Bryan Bishop
c08a543620 fix duplicate BENNY trainer name 2012-05-20 02:50:21 -05:00
Bryan Bishop
fafb53ebf9 fix RIVAL1 trainer id labeling 2012-05-20 02:21:26 -05:00
Bryan Bishop
11177b9b7d spit out trainer id constants 2012-05-20 02:15:40 -05:00
Bryan Bishop
8124e76940 move around the trainers.py import line 2012-05-20 00:24:25 -05:00
Bryan Bishop
4c45171213 add 'trainer_names' key to each trainer header in trainer_group_names 2012-05-20 00:20:31 -05:00
Bryan Bishop
6f49b01c4b make better trainer names 2012-05-20 00:02:43 -05:00
Bryan Bishop
424300a803 add default constants to trainer_group_names 2012-05-19 22:35:05 -05:00
Bryan Bishop
6d7a20692a use GruntM/GruntF for the trainer group names 2012-05-19 22:25:53 -05:00
Bryan Bishop
4aa953cc38 setup rules for which trainer groups should use which naming scheme 2012-05-19 22:02:11 -05:00
Bryan Bishop
7098fccc22 rename some trainer groups 2012-05-19 21:50:07 -05:00
Bryan Bishop
a001c51bd4 fix TrainerGroupTable.get_dependencies() 2012-05-19 21:13:57 -05:00
Bryan Bishop
aed366e59d update trainer group names for the new rules 2012-05-19 19:26:29 -05:00
Bryan Bishop
fd094d17bf add missing trainer header for twins lea & pia 2012-05-19 18:54:32 -05:00
Bryan Bishop
7762fd89d2 add missing trainer header for kimono girl miki 2012-05-19 18:52:23 -05:00
Bryan Bishop
49c9557964 add missing blackbelt wai 2012-05-19 18:44:00 -05:00
Bryan Bishop
844dfb7d8a add missing jugglers 2012-05-19 18:42:46 -05:00
Bryan Bishop
2f470415e1 add two missing biker trainer headers 2012-05-19 18:36:11 -05:00
Bryan Bishop
c735786ceb fix missing supernerd markus 2012-05-19 18:33:42 -05:00
Bryan Bishop
6008b1a96c pick up the third CAL trainer header 2012-05-19 18:28:23 -05:00
Bryan Bishop
e52d1e9415 add TrainerGroupHeaders to script_parse_table 2012-05-19 17:30:49 -05:00
Bryan Bishop
82731321cb parse multiple party mons per trainer 2012-05-19 16:39:36 -05:00
Bryan Bishop
fb7c3a3ea5 move trainer parsing classes into crystal.py 2012-05-19 15:43:26 -05:00
Bryan Bishop
1d6fa83902 finish up the classes related to TrainerGroupHeader 2012-05-19 15:31:35 -05:00
Bryan Bishop
38726204c8 better comments on trainer_group_report 2012-05-19 15:30:02 -05:00
Bryan Bishop
810e20cc04 use report_unreferenced_trainer_ids to show which ids are probably valid but unused 2012-05-19 13:57:19 -05:00
Bryan Bishop
e0eb31df73 parse TrainerGroupTable in run_main after everything else 2012-05-19 01:44:44 -05:00
Bryan Bishop
e562ffeedf update trainer names 2012-05-18 22:55:32 -05:00
Bryan Bishop
e7f90ba15b add charset encoding for trainers.py 2012-05-18 22:47:07 -05:00
Bryan Bishop
2d4d6399db find last trainer id in each trainer group 2012-05-18 21:53:17 -05:00
Bryan Bishop
a6efb7f0fb extract trainer group id and trainer id from TrainerFragment objects 2012-05-18 21:31:51 -05:00
Bryan Bishop
a17ef09e10 work towards parsable trainer group headers 2012-05-18 21:31:14 -05:00
Bryan Bishop
9c9d6a2286 fixing up trainer names 2012-05-18 20:33:15 -05:00
Bryan Bishop
235b123666 initial work on trainer name parsing 2012-05-18 16:48:39 -05:00
Bryan Bishop
979b376741 generate helpful labels for maps 2012-05-17 00:40:40 -05:00
Bryan Bishop
a049ef74f8 use db instead of item_frag on ItemFragment remote chunks 2012-05-16 21:16:28 -05:00
Bryan Bishop
ac19eb2826 don't repeat-parse movement scripts, and set bank=1 for $4000 <= x <= $7FFF 2012-05-16 18:33:24 -05:00
Bryan Bishop
a53b5ae051 handle dragon shrine recursion (but not others?) 2012-05-16 15:22:39 -05:00
Bryan Bishop
34c6b38da6 tool to help narrow down the problem in a bank 2012-05-16 14:37:30 -05:00
Bryan Bishop
dc3fd295c0 correct for two route 10 maps 2012-05-16 14:24:18 -05:00
Bryan Bishop
079afeea46 fix preprocessor/givepoke for variable-number-of-parameter macros 2012-05-16 12:44:55 -05:00
Bryan Bishop
2d763b53a6 fix zzyyxx output for MoneyByteParam (checkmoney, takemoney) 2012-05-16 12:07:20 -05:00
Bryan Bishop
7244cb256e only recalculate a PointerLabelParam parsed_address if necessary 2012-05-15 22:15:08 -05:00
Bryan Bishop
3afb9602eb improve extras/README.md opening sentence 2012-05-14 10:42:43 -05:00
Bryan Bishop
bde4f489df better asm output for SignpostRemoteItem 2012-05-14 00:58:11 -05:00
Bryan Bishop
f43de05607 fix PointerLabelParams in signposts 2012-05-14 00:51:16 -05:00
Bryan Bishop
984597d1aa fix movement param get_dependencies 2012-05-13 22:48:35 -05:00
Bryan Bishop
6048436046 remove some output that clutters up the preprocessor output 2012-05-13 21:59:25 -05:00
Bryan Bishop
e905f9f1f1 better movement command/macro support 2012-05-13 21:53:48 -05:00
Bryan Bishop
eaff513b47 fix unknown MovementCommand parsing 2012-05-13 21:32:28 -05:00
Bryan Bishop
251fb52d8a use deepcopy to create applymovement commands 2012-05-13 18:53:11 -05:00
Bryan Bishop
b41da5fe1c let create_movement_commands access a debug parameter 2012-05-12 14:15:42 -05:00
Bryan Bishop
1a82579956 slightly better applymovement parsing 2012-05-12 02:18:27 -05:00
Bryan Bishop
3f5955b453 apply_movement_command classes doesn't exist 2012-05-12 00:59:15 -05:00
Bryan Bishop
feab0b56bc quick tool for dumping a segment of ApplyMovementData objects into a bank 2012-05-11 16:30:12 -05:00
Bryan Bishop
4b1540623a set dependencies and get_dependencies on ApplyMovementData for asm dumping 2012-05-11 16:26:36 -05:00
Bryan Bishop
a548ffdd35 waitbutton in scripts is not the same as waitbutton in texts 2012-05-11 15:09:26 -05:00
Bryan Bishop
e04a7aa375 never show a comma in front of a 7 on a newline 2012-05-11 14:50:53 -05:00
Bryan Bishop
66b65c854b fix a TextScript/MainText bug where '@' on a newline had an extra comma/param to db 2012-05-11 14:29:19 -05:00
Bryan Bishop
f305b27025 text_from_ram isn't limited to <$8000 like in the text at 0x549a3 2012-05-11 13:40:54 -05:00
Bryan Bishop
55c174d342 fix TextScript bug - to_asm should not modify self.size 2012-05-11 13:05:02 -05:00
Bryan Bishop
e7913e7a90 insert_blah_with -> insert_with in extras/README.md 2012-05-10 09:19:05 -05:00
Bryan Bishop
7dd429fdf4 debugging to figure out the TextScript at 0x5daf1 2012-05-10 09:18:23 -05:00
Bryan Bishop
6ff6f93397 consolidate insert_multiple and insert_single on the Asm class 2012-05-08 18:34:27 -05:00
Bryan Bishop
03ce919b58 tool to dump texts from a particular bank into asm 2012-05-05 17:04:49 -05:00
Bryan Bishop
ec102bc62d fix $58 parsing in texts for the text at 0x192f34 2012-05-05 15:01:42 -05:00
Bryan Bishop
fa63fe8ab2 set TextInlineAsm to size=1 for now 2012-05-05 02:46:46 -05:00
Bryan Bishop
47d1e412b9 possible fix for movement scripts (many broken?) 2012-05-05 02:29:41 -05:00
Bryan Bishop
0357e1e2f0 temporary and horrible fix to applymovement scripts 2012-05-05 02:15:47 -05:00
Bryan Bishop
a9d3767198 make a broken MovementCommand parser 2012-05-05 02:01:01 -05:00
Bryan Bishop
d16a6debff by default allow MovementCommand to handle <$45s 2012-05-05 01:42:34 -05:00
Bryan Bishop
a9a1e084a1 fix MovementCommand.to_asm return value for id>$45 2012-05-05 01:40:28 -05:00
Bryan Bishop
adf55937c0 starting ApplyMovementData and MovementCommand 2012-05-05 01:38:14 -05:00
Bryan Bishop
8a064dfb45 use a $50 macro to stop some text scripts 2012-05-04 23:03:03 -05:00
Bryan Bishop
2489165312 fix the use of text_command_classes (not the same format as command_classes) 2012-05-04 22:03:52 -05:00
Bryan Bishop
927d96621a to_asm and some constructor changes 2012-05-04 21:50:24 -05:00
Bryan Bishop
6ee0c38b3c new TextScript.parse is almost exactly Script.parse 2012-05-04 21:44:57 -05:00
Bryan Bishop
82d7043acc a better get_dependencies for NewTextScript 2012-05-04 21:29:07 -05:00
Bryan Bishop
f5e5c110d1 use inspect to gather members for text_command_classes 2012-05-04 21:05:59 -05:00
Bryan Bishop
fde936ac46 add param_types to configure each text script command macro 2012-05-04 20:47:43 -05:00
Bryan Bishop
7d17027ffb make sure the bytes don't run out with no ending byte in MainText 2012-05-04 20:14:00 -05:00
Bryan Bishop
133bcb7049 handle $57 in MainText.to_asm 2012-05-04 20:13:35 -05:00
Bryan Bishop
0721bd42e1 not ever -> never 2012-05-04 19:05:33 -05:00
Bryan Bishop
94ea6ef442 add quotes to MainText.to_asm output 2012-05-04 19:00:58 -05:00