When disassembling a group of functions, sometimes there are other
functions known in advance. By passing in a list called stop_at to
gbz80disasm, it is possible to prevent disassembled asm from running on
for longer than necessary.
This updates the automatic parsing of main.asm to catch cases of INCBINs
pulling in files that end in .asm, .lz, .1bpp, and .2bpp. This is
necessary because otherwise the parser tries to figure out the start and
end addresses expressed on the INCBIN line, details not present on these
types of lines in the asm.
Asm and Asm.insert_all are now back in working condition.
This is an extra option that is on by default for gbz80disasm, which is
useful in situations where you may not want the last address to be
included (like if the output of the disassembler is going to be sent to
to_asm anyway).
New vba.py features include:
* get_memory_at
* get_memory_range
* set_memory_at
Also, the "crystal" class has a number of specialty helpers:
* crystal.walk_through_walls
* crystal.get_player_name
* crystal.get_map_name
* crystal.get_xy
* crystal.nstep (which sets memory each step by calling certain
* functions, like walk_through_walls)
* crystal.is_in_battle
* crystal.get_gender
A quirk of the Decompressed class dissociated the orientation from
the output attribute.
The makefile no longer suppresses output since it's still relevant.
Extras:
-function to dump trainer pals
-fix testing leftover in a compression function
-keep load_rom() from getting in the way (relative address breaks extras)
There was an incompatible change to the json module api between py26 and
py27, causing gbz80disasm to not work with py26. The fix is to simply
alias the new loads method to the old read function.
A possibly better plan might be to not support py26 at all.
This removes DisAsm from romstr.py, which was the only reason that
gbz80disasm wasn't able to import RomStr from romstr.py.
DisAsm was an experimental gbz80 disassembler that was meant to replace
gbz80disasm eventually. The goals were to write cleaner code and write
more unit tests. But it never worked and the code quality looks close to
being the same as gbz80disasm anyway.