Bryan Bishop
343ccc909a
fix minor inaccuracy
2012-05-03 00:12:47 -05:00
Bryan Bishop
f2b0779feb
fix typo in readme
2012-05-02 17:11:23 -05:00
Bryan Bishop
ea379f3d93
fix language specifier
2012-05-02 13:59:12 -05:00
Bryan Bishop
404dca19e1
slightly improved example
2012-05-02 13:57:56 -05:00
Bryan Bishop
b1d25e089d
nope.. more formatting
2012-05-02 13:56:40 -05:00
Bryan Bishop
220a9d8346
formatting?
2012-05-02 13:55:59 -05:00
Bryan Bishop
d1ddb59028
investigating bytes in the ROM
2012-05-02 13:55:29 -05:00
Bryan Bishop
b871e6c54d
map_name -> map_id
2012-05-02 13:47:36 -05:00
Bryan Bishop
6ec59c8193
get_dependencies does not return a list of labels nor strings
2012-05-02 13:43:17 -05:00
Bryan Bishop
f51cde7250
show the map event header in the readme
2012-05-02 13:40:16 -05:00
Bryan Bishop
6973ec82ba
figuring out where a script appears based on a known address
2012-05-02 13:37:11 -05:00
Bryan Bishop
faa73c5a47
investigating scripts from a known address
2012-05-02 13:28:11 -05:00
Bryan Bishop
7d6626ee69
extras/output.asm -> extras/output.txt
2012-05-02 01:41:24 -05:00
Bryan Bishop
b6122070d9
clarify a sentence
2012-05-02 01:40:23 -05:00
Bryan Bishop
0406a12fdf
fix readme typo
2012-05-02 01:39:01 -05:00
Bryan Bishop
6fa7fbc357
basic README to explain crystal.py
2012-05-02 01:38:19 -05:00
Bryan Bishop
81208d51a0
move the text command classes around
2012-05-01 11:25:05 -05:00
Bryan Bishop
37e808b43a
basic TextCommand skeleton from yesterday
2012-04-30 02:21:43 -05:00
Bryan Bishop
9189b3f6e0
begin to rewrite the text parser
2012-04-29 15:15:48 -05:00
Bryan Bishop
6eb1478f1b
clean up comments in Script.parse method
2012-04-29 10:40:34 -05:00
Bryan Bishop
a06cb374ef
remove old comment
2012-04-29 10:26:27 -05:00
Bryan Bishop
d4508d9bed
temporary fix to prevent TextScript from appending @s
2012-04-28 11:08:05 -05:00
Bryan Bishop
ef56a46e81
top-level dependency bug fix.. actual problem not solved ?
2012-04-28 01:34:20 -05:00
Bryan Bishop
94e486be89
still having trouble with UnknownText_0x580c7 not in main.asm
2012-04-27 18:50:13 -05:00
Bryan Bishop
90cee9191e
TextPointerLabelParam sometimes doesn't point to anything useful
2012-04-27 17:38:49 -05:00
Bryan Bishop
6321bf121f
TextPointerLabelParam.get_dependencies() now returns the text pointer
2012-04-27 17:35:06 -05:00
Bryan Bishop
94a6e1b0cc
words/pointers should point within bank
2012-04-27 17:16:45 -05:00
Bryan Bishop
d9a2680c71
fix MoneyByteParam formatting
2012-04-27 16:48:25 -05:00
Bryan Bishop
45c41795f5
possibly fix preprocessor/checkmoney issues
2012-04-27 16:33:37 -05:00
Bryan Bishop
14a35baa3f
reverse byte output in RAMAddressParam.to_asm()
2012-04-27 16:04:16 -05:00
Bryan Bishop
09a0e3aa85
redo item constants (some were missed?)
2012-04-27 15:52:57 -05:00
Bryan Bishop
b0eee4c06b
add newlines to generate_item_constants output
2012-04-27 15:47:51 -05:00
Bryan Bishop
9672e960ee
fix RAMAddressParam.to_asm() (no [] characters)
2012-04-27 15:39:41 -05:00
Bryan Bishop
d319aea119
fix label lookup
2012-04-27 15:33:37 -05:00
Bryan Bishop
9ed1a474d0
minor fixes for insert_single_with_dependencies
2012-04-27 15:02:53 -05:00
Bryan Bishop
a58aeae5cc
prevent dependency loops in script at 0x18d0a9, 0x18d023 and 0x943ca
2012-04-27 14:58:57 -05:00
Bryan Bishop
9e92ebd40b
better debugging for a max recursion depth error
2012-04-27 13:58:02 -05:00
Bryan Bishop
7ed1bebc01
pass 'recompute' parameter through get_dependencies() calls
2012-04-27 13:46:57 -05:00
Bryan Bishop
39a71c55c7
prevent dependencies from being recomputed
2012-04-27 13:41:44 -05:00
Bryan Bishop
ce35b436ed
faster get_dependencies on Script
2012-04-27 13:29:41 -05:00
Bryan Bishop
34ff5fc4ce
checkmonkey -> checkmoney
2012-04-27 01:07:30 -05:00
Bryan Bishop
1098757c4a
speed up asm insertion
2012-04-27 01:06:31 -05:00
Bryan Bishop
226e964f1d
Asm.insert_multiple_with_dependencies
2012-04-27 00:59:05 -05:00
Bryan Bishop
bde9cb3b57
caught a self.label -> self.label.name
2012-04-26 18:45:53 -05:00
Bryan Bishop
ddbfc016c1
refactor all labels to be Label instances
2012-04-26 18:41:13 -05:00
Bryan Bishop
ea2daf05ee
refactoring some labels code
2012-04-26 18:04:20 -05:00
Bryan Bishop
16b8cf491f
start to write the Label class and is_label_in_asm
2012-04-26 17:41:37 -05:00
Bryan Bishop
849c0d132d
rename textpre.py -> preprocessor.py
2012-04-26 16:58:20 -05:00
Bryan Bishop
092baabdd4
make jumptextfaceplayer point to text
2012-04-26 16:50:52 -05:00
Bryan Bishop
8cc5597b0b
continue to fix off-by-one error in TextScript
2012-04-26 15:04:09 -05:00
Bryan Bishop
806687bf69
fix off-by-one error in TextScript
2012-04-26 14:59:24 -05:00
Bryan Bishop
d37f986971
revert to dbw in MapScriptHeader.to_asm()
2012-04-26 14:46:46 -05:00
Bryan Bishop
386a688eca
revert '_' prefix to some macro_names
2012-04-26 14:37:09 -05:00
Bryan Bishop
3c8b381489
revert PeopleEvent to use better-looking asm output
2012-04-26 14:30:30 -05:00
Bryan Bishop
6c5b5d2b57
add two filler bytes to MapEventHeader asm output
2012-04-26 14:26:16 -05:00
Bryan Bishop
70cf2554a1
gah forgot a file to let preprocessor import macros
2012-04-26 14:16:01 -05:00
Bryan Bishop
8f2221aa70
add map/group constants into constants.asm
...
map 18.3 and 7.14 are both "Route 10" ? Need to confirm that they are
both, in fact, "Route 10". Even if they both point to the same map, we
can call them 10a and 10b so that the map constants will work.
generate_map_constants and generate_map_constant_labels have been
updated to deal with left-over issues in various labels and obscure
characters.
2012-04-26 14:13:06 -05:00
Bryan Bishop
8f2afd2f7c
add DataByteWordMacro for the preprocessor
2012-04-26 14:00:55 -05:00
Bryan Bishop
d09cf6d950
add param_types to Signpost
2012-04-26 13:55:55 -05:00
Bryan Bishop
1bba364ba6
change Signpost to extend Command and set byte_type in a few places
2012-04-26 13:13:24 -05:00
Bryan Bishop
a720875a84
return to using warp_def, signpost, person_event macros
2012-04-26 10:27:46 -05:00
Bryan Bishop
69783a6a69
probably a bad idea - don't use macros inside event headers
2012-04-26 01:07:04 -05:00
Bryan Bishop
ece37237e3
don't delete tempt_opt_table in gbz80disasm
2012-04-26 00:32:38 -05:00
Bryan Bishop
ad76f259ff
simple lexer
2012-04-26 00:31:53 -05:00
Bryan Bishop
2b159a5ebd
fix MapHeader size and TextScript asm output
2012-04-25 21:53:20 -05:00
Bryan Bishop
69450ad8b3
fix dbw error in MapScriptHeader and add ending newline
2012-04-25 20:23:10 -05:00
Bryan Bishop
cb1a372d75
dump scripting macros into script_macros.asm
2012-04-25 20:02:40 -05:00
Bryan Bishop
f61e028871
update last_address in MapScriptHeader to get asm output working again
2012-04-25 18:51:54 -05:00
Bryan Bishop
c8cdbdede1
oops, make MapScriptHeader and others show up again
2012-04-25 18:18:14 -05:00
Bryan Bishop
759c55d3f2
better asm output newline logic
2012-04-25 16:11:38 -05:00
Bryan Bishop
ff4c37eb2b
fix bad placement of MapScriptHeader_0x70000 in asm
2012-04-25 14:05:51 -05:00
Bryan Bishop
9a81918392
fix some parameter types
2012-04-22 20:49:00 -05:00
Bryan Bishop
3869d5a30f
split up insertion and dumping in Asm
2012-04-22 20:33:42 -05:00
Bryan Bishop
1021728fb3
attempts to stop a recursion limit error
2012-04-22 15:48:47 -05:00
Bryan Bishop
2de204cdb5
remove duplicate incbins in asm output
2012-04-22 15:13:32 -05:00
Bryan Bishop
c1cbb74ae8
awful newline rules in asm output
2012-04-22 15:08:58 -05:00
Bryan Bishop
fdbf484b57
prevent scripts from appearing in MapScriptHeader.to_asm output
2012-04-22 14:04:27 -05:00
Bryan Bishop
c8b4c3203c
fix MapEventHeader asm formatting
2012-04-21 23:46:58 -05:00
Bryan Bishop
c33c15befb
remove duplicates from Asm output
2012-04-21 23:37:02 -05:00
Bryan Bishop
4f683d6421
hmm duplicate insertions
2012-04-21 18:59:58 -05:00
Bryan Bishop
26e0ee9545
TrainerFragments pointing to 0x26ef should be ignored
2012-04-21 18:24:54 -05:00
Bryan Bishop
2588ff6255
insertion of asm dependencies
2012-04-21 18:09:03 -05:00
Bryan Bishop
c42b254081
fix bug parsing INCBIN lines
2012-04-21 16:11:00 -05:00
Bryan Bishop
b597af7c57
probably right insertion routine for Asm
2012-04-21 16:06:22 -05:00
Bryan Bishop
02497888f6
Incbin.split method similar to split_incbin_line_into_three
2012-04-21 12:38:12 -05:00
Bryan Bishop
285b3066a4
foundation for asm parsing
2012-04-21 11:33:23 -05:00
Bryan Bishop
9b4ce897d4
improve to_asm output (newlines)
2012-04-21 10:24:44 -05:00
Bryan Bishop
3b234223c5
fix some bugs in get_dependencies and to_asm
2012-04-21 03:15:56 -05:00
Bryan Bishop
7d6af535e9
flatten a list of dependencies into one giant list
2012-04-21 02:43:19 -05:00
Bryan Bishop
06bc6699da
improve TrainerFragment.to_asm
2012-04-21 02:25:56 -05:00
Bryan Bishop
64af1959ae
fix trainer label output
2012-04-21 02:16:12 -05:00
Bryan Bishop
09908ecbdf
better get_dependencies and MapEventHeader.to_asm
2012-04-20 22:19:01 -05:00
Bryan Bishop
c80279b98f
starting dependencies work
2012-04-20 18:26:52 -05:00
Bryan Bishop
a8da5fbda9
improvements to global to_asm
2012-04-20 17:57:59 -05:00
Bryan Bishop
628a147578
switch from "r" to "rb" when reading the ROM for Microsoft Windows users
2012-04-20 10:34:07 -05:00
Bryan Bishop
7114385997
create maps directory if necessary
2012-04-19 22:17:22 -05:00
Bryan Bishop
b7cca3a548
make unit tests work again
2012-04-18 23:20:28 -05:00
Bryan Bishop
b7295080d5
add encoding to old_parse_scripts.py
2012-04-18 20:55:16 -05:00
Bryan Bishop
1877c7573e
move Script.parse_old into its own file
2012-04-18 16:54:11 -05:00
Bryan Bishop
6a8e2d0ed4
spacing
2012-04-18 16:17:31 -05:00
C Nelson
475ec418dd
Move some data back to avoid a circular import.
2012-04-17 23:33:23 -05:00
C Nelson
c7838eec93
Fix an import.
2012-04-17 23:32:56 -05:00
C Nelson
17ab9dc558
Move a bunch of constant data into separate files.
2012-04-17 21:37:46 -05:00
C Nelson
f19bd8638e
Fixing whitespace for real this time.
2012-04-17 20:22:28 -05:00
C Nelson
ae3857d64f
Revert "Fix whitespace."
...
Discovered an overwritten incoming change.
This reverts commit 9ddcf90fcc
.
2012-04-17 20:16:42 -05:00
C Nelson
9ddcf90fcc
Fix whitespace.
...
Add newlines around functions and classes, remove trailing whitespaces.
2012-04-17 20:03:27 -05:00
Bryan Bishop
41a5e27bdd
use $byte not 0xbyte
2012-04-17 19:24:18 -05:00
Bryan Bishop
f3f2adb219
to_asm adds a label and end text
...
Need to write more tools for injecting asm into main.asm from the
python interpreter.
2012-04-16 09:55:28 -05:00
Bryan Bishop
e97ba71d11
better asm output for MapScriptHeader
2012-04-15 22:12:10 -05:00
Bryan Bishop
e3cf6313e7
fix SecondMapHeader asm output
2012-04-15 21:47:12 -05:00
Bryan Bishop
f70c5cf74b
restrict what shows up in script_parse_table
2012-04-15 18:26:06 -05:00
Bryan Bishop
bd2a23379e
keep track of these headers in globals
2012-04-15 18:24:56 -05:00
Bryan Bishop
6dda1a8fac
fix MapScriptHeader parsing
2012-04-15 17:21:07 -05:00
Bryan Bishop
b0b807e3ea
MapEventHeader address fix
2012-04-15 16:37:31 -05:00
Bryan Bishop
2f3e59178f
SecondMapHeader looks ok
2012-04-15 14:49:24 -05:00
Bryan Bishop
7cfe92c506
MapHeader parsing looks correct
2012-04-15 14:39:13 -05:00
Bryan Bishop
2b08f91d98
add the old parsers back in for testing
2012-04-15 14:33:41 -05:00
Bryan Bishop
cbd8f0925a
debugging statements
2012-04-15 12:26:46 -05:00
Bryan Bishop
00ab26a8c4
more fixes (sort of)
2012-04-15 01:27:20 -05:00
Bryan Bishop
441cb01c39
corrections to almost make things run
2012-04-15 01:18:25 -05:00
Bryan Bishop
cbd896b8b9
MapHeader parsing and to_asm
2012-04-15 01:11:00 -05:00
Bryan Bishop
49add12c45
better code for MapScriptHeader
2012-04-15 00:50:48 -05:00
Bryan Bishop
746317f90e
code for MapBlockData
2012-04-15 00:06:47 -05:00
Bryan Bishop
6b029c36fd
to_asm on SecondMapHeader
2012-04-14 21:46:04 -05:00
Bryan Bishop
1ee335063f
start on SecondMapHeader
2012-04-14 20:03:19 -05:00
Bryan Bishop
0cb84a7e3a
class for MapEventHeader
2012-04-14 18:23:55 -05:00
Bryan Bishop
f90f05050d
XYTrigger class
2012-04-14 17:58:15 -05:00
Bryan Bishop
52b70619bc
making things work
2012-04-14 15:48:26 -05:00
Bryan Bishop
93533ce068
PeopleEvent class code
2012-04-14 15:16:09 -05:00
Bryan Bishop
0c2c2cd3a3
skeleton for PeopleEvent class
2012-04-14 13:45:05 -05:00
Bryan Bishop
01a5c61d4d
saner warp parsing
2012-04-14 13:01:20 -05:00
Bryan Bishop
e099019701
better signpost parsing
2012-04-14 12:23:53 -05:00
Bryan Bishop
f70650a158
start moving signpost into a class
2012-04-14 10:54:48 -05:00
Bryan Bishop
91df3747bf
0xcc probably ends the script
2012-04-09 00:38:55 -05:00
Bryan Bishop
63c161397d
fix size computation in GivePoke
2012-04-08 23:47:28 -05:00
Bryan Bishop
a06abcf9f4
japanese text dumper and some more script changes
2012-04-08 23:05:19 -05:00
Bryan Bishop
3621217774
all of these scripting changes are probably wrong
2012-04-08 21:15:50 -05:00
Bryan Bishop
b276eeb832
don't forget the custom GivePoke commad class
2012-04-08 16:38:34 -05:00
Bryan Bishop
4c3c85d230
oops forgot to create a command class for writevarcode
2012-04-08 16:25:52 -05:00
Bryan Bishop
51ef61e327
fix pokemart command parsing for the script at 0x9cac7
2012-04-08 16:20:34 -05:00
Bryan Bishop
247469f740
winlosstext does not always point to a value
2012-04-08 16:09:00 -05:00
Bryan Bishop
403652525a
a working version of compare_script_parsing_methods
2012-04-08 15:52:36 -05:00
Bryan Bishop
8e6466feb7
begin compare_script_parsing_methods
2012-04-08 15:41:52 -05:00
Bryan Bishop
e85e71b6a6
text and script parsing improvements
2012-04-08 14:46:37 -05:00
Bryan Bishop
d331a28c7a
get_label_for improvements (use script_parse_table if possible)
2012-04-08 13:40:55 -05:00
Bryan Bishop
bd33188588
make parse_text_at use script_parse_table and make 2writetext parse target texts
2012-04-08 13:35:35 -05:00
Bryan Bishop
dd0dfc821c
fix bit setting/checking/clearing commands (their parameters were wrong)
2012-04-08 13:14:31 -05:00
Bryan Bishop
d7ff5e5ceb
pass force=True/False and debug=True/False to command parsing
2012-04-08 12:19:03 -05:00
Bryan Bishop
e80f480da9
fixes for parse_script_with_command_classes
2012-04-08 11:48:23 -05:00
Bryan Bishop
768c4c360f
move rom_interval into RomStr.interval
2012-04-06 14:22:35 -05:00
C Nelson
bd06a22fb8
Making generate_diff_insert python2.7 compatible.
2012-04-06 13:12:30 -05:00
C Nelson
1d17d3e810
Adding compatibility for newer versions of json.
2012-04-06 12:38:22 -05:00
C Nelson
8dc750b1e4
Adding a real check for unittest2 features.
2012-04-06 12:11:40 -05:00
C Nelson
4de0c12b43
Adding an exception handler around the unittest import.
2012-04-06 11:54:48 -05:00
Bryan Bishop
7b3b1f11b2
fix command parsing some more
2012-04-03 15:28:25 -05:00
Bryan Bishop
21081a08e1
not sure why the scripts aren't working yet
2012-04-03 00:59:16 -05:00
Bryan Bishop
2c9c2424d8
somewhat better command parsing
2012-04-02 22:34:02 -05:00
Bryan Bishop
0e8510e3c2
map header tests for event addresses and people-event counts
2012-04-02 20:27:11 -05:00
Bryan Bishop
069a4fbff4
unit tests for checking post-map parsing (overall, not individual functions)
2012-04-02 14:22:50 -05:00
Bryan Bishop
d23ab7500b
fix bug in generate_map_constant_labels
2012-04-02 12:44:23 -05:00
Bryan Bishop
29a3fbf75b
an explicit Label class
2012-04-02 12:36:08 -05:00
Bryan Bishop
1a3aebf191
make tests pass the first time they are ran
2012-04-02 11:45:42 -05:00
Bryan Bishop
bd7453f70c
more unit tests, again
2012-03-30 01:20:50 -05:00
Bryan Bishop
29dae12c89
more unit tests
2012-03-29 23:41:06 -05:00
Bryan Bishop
bcd9794cb5
more command classes
2012-03-27 02:01:04 -05:00
Bryan Bishop
2a22a91cbb
committing unfinished code (forgive me)
2012-03-26 01:47:58 -05:00
Bryan Bishop
651d801734
refactor script parsing into a Script class
2012-03-25 13:53:21 -05:00
Bryan Bishop
a4b19fe60a
test_parse_text_engine_script_at
2012-03-25 01:43:42 -05:00
Bryan Bishop
12fc29529a
more testing and debug= keyword params
2012-03-25 01:09:46 -05:00
Bryan Bishop
8df5bd8856
more tests related to analyze_incbins
2012-03-24 22:59:46 -05:00
Bryan Bishop
33d8c7a117
wonderful world of testing
2012-03-24 21:34:19 -05:00
Bryan Bishop
3bd84c1dac
lots of asm-related code and tests
2012-03-24 18:01:37 -05:00
Bryan Bishop
f93de7b1bd
test_load_map_group_offsets and test_calculate_pointer
2012-03-24 15:05:32 -05:00
Bryan Bishop
c11794250f
new test: test_report_untested
2012-03-24 14:31:33 -05:00
Bryan Bishop
890c37bcad
more tests about tests
2012-03-24 14:22:59 -05:00
Bryan Bishop
98c1b52894
AsmList and more testing
2012-03-24 13:22:28 -05:00
Bryan Bishop
0f57499150
tests for IntervalMap
2012-03-24 05:00:45 -05:00
Bryan Bishop
9c723af8ff
even more crazy unit tests
2012-03-24 04:43:06 -05:00
Bryan Bishop
21b95d6077
fix typo (burned tower 1f)
2012-03-24 03:54:46 -05:00
Bryan Bishop
e57b8a7c00
unit tests
2012-03-24 03:54:28 -05:00
Bryan Bishop
35ecd20aa2
fix bug in find_all_text_pointers_in_script_engine_script
2012-03-24 02:15:43 -05:00
Bryan Bishop
da22f934f9
pretty printer for text scripts
2012-03-24 02:13:59 -05:00
Bryan Bishop
d497a0a001
start using classes instead of functions everywhere
2012-03-24 00:58:14 -05:00
Bryan Bishop
253c897bbd
rom_text_at just dumps text straight from the ROM
2012-03-23 23:36:39 -05:00
Bryan Bishop
4462b9b246
calculate_pointer_from_bytes_at update suggested by sankina
2012-03-23 01:26:02 -05:00
Bryan Bishop
14903375a1
fix trainer texts
2012-03-23 00:58:51 -05:00
Bryan Bishop
08961e4f32
parse texts in scripts
2012-03-21 21:06:33 -05:00
Bryan Bishop
b9175e8a03
parser improvements for trainer texts and map scripts
2012-03-19 01:41:22 -05:00
Bryan Bishop
0f3ff6120a
skip battle tower people-event scripts
2012-03-18 23:05:28 -05:00
Bryan Bishop
f20786a432
gbz80disasm for crystal
2012-03-15 17:47:40 -05:00
Bryan Bishop
270615370c
more script debugging
2012-03-15 17:44:25 -05:00
Bryan Bishop
c42d7424c9
better signpost parsing
2012-03-15 02:09:17 -05:00
Bryan Bishop
8188cf07dc
better debugging for recursive scripts
2012-03-14 22:03:45 -05:00
Bryan Bishop
69f541f541
keep track of which scripts have been parsed
2012-03-14 00:27:44 -05:00
Bryan Bishop
550ca496d6
function to find most text addresses
2012-03-13 16:01:52 -05:00
Bryan Bishop
8cfa4bee12
fix calculate_pointer again
2012-03-12 03:17:39 -05:00
Bryan Bishop
ad0f365a37
fix calculate_pointer
2012-03-12 03:01:38 -05:00
Bryan Bishop
25a5a9cef4
initial work on text parsing
2012-03-12 01:59:23 -05:00
Bryan Bishop
873b07dcf9
trainer headers
2012-03-12 01:09:25 -05:00
Bryan Bishop
0a7278c144
update pksv name tables (trial and error)
2012-03-11 15:30:14 -05:00
Bryan Bishop
a4f10572ba
add pksv command names to crystal.py
2012-03-11 03:01:33 -05:00
Bryan Bishop
5ba4aec8d5
fix crystal script command offsets
2012-03-10 16:51:58 -06:00
IIMarckus
3774f1d61d
Map 2.6 is Route 44, not Route 43.
2012-03-09 21:26:00 -07:00
Bryan Bishop
6ec2257cbc
more crystal script parsing
2012-03-07 22:31:59 -06:00
Bryan Bishop
6ddb56c228
script parsing with parse_script_at
2012-03-07 16:59:47 -06:00
Bryan Bishop
f5a6c18b89
python tooling
2012-03-06 00:15:35 -06:00