you will need a linux environment (wsl, mingw...) with ruby
and make
you will also need the macroassembler as providing asl
.
get mas
from the AUR or download and build:
wget http://john.ccac.rwth-aachen.de:8000/ftp/as/source/c_version/asl-current-142-bld213.tar.bz2
tar -xf asl-current-142-bld213.tar.gz
cd asl-current
# copy appropriate makefile.def, e.g.:
cp Makefile.def-samples/Makefile.def-unknown-linux Makefile.def
make
make install
NOTE: make sure original roms landmakr.zip
and landmakrj.zip
are in the roms/
folder.
run make
in any patch subfolder
patched files will be in out/
additional make targets:
make ips
:: create ips patch files (requires cmdpack-uips)make landmakr
:: Land Maker 2.02O-only targetmake landmakrj
:: Land Maker 2.01J-only target
the steps for patching are:
- interleave source files into program binary
- assemble
patch.S
over original program usingasl
- generate patched program binary from object file with
p2bin
- deinterleave patched binary into original rom files
- package up new files, create ips patches
- copy
example/
template with assembler source and makefile - write patch
make landmakr
ormake landmakrj
to make patches compatible with both rom versions, include the shift table: shifts.S
for every ROM address referenced, add the closest SHIFT constant less than the desired address. for example:
ORG $8EC70 + SHIFT_15FBC
ORG $93BF4 + SHIFT_91470
ORG $1FFFFE + SHIFT_A1416
for more information on the shift tables and their derivation, see: https://qcs.shsbs.xyz/share/ywy/land-maker#shifts
rom map: < wip >
palette mods: https://github.com/y-ack/landmaker-color-mod
land maker english fan translation patch homepage: https://qcs.shsbs.xyz/share/ywy/land-maker-english-translation.html
y's land maker investigation homepage: https://qcs.shsbs.xyz/share/ywy/land-maker