Commit Graph

227 Commits

Author SHA1 Message Date
yenatch
f03b898250 Add a md5 tool to avoid md5sum dependency.
md5sum is missing in macOS and (presumably) BSD.

An alternative would have been to use sha1sum instead, but it's probably
a good idea to have as few dependencies as possible, so this doesn't
happen again.

fixes #364
2017-06-24 18:42:28 -04:00
yenatch
f12e42ab6d Use SHA1 to compare roms 2017-06-24 18:32:54 -04:00
yenatch
9b1550c5e0 Explicit rules for gfx/shrink{1,2}.2bpp 2017-06-24 16:31:42 -04:00
yenatch
a20664d415 Fix gfx/misc 2017-06-24 16:30:12 -04:00
yenatch
803c5154f4 pngs in gfx/unknown 2017-06-24 16:27:52 -04:00
yenatch
131bda73bc pngs in gfx/misc 2017-06-24 02:50:42 -04:00
yenatch
41ae3610f6 pngs in gfx/fx
- gave up on wind.png
- add --remove-yflip
2017-06-24 00:47:55 -04:00
yenatch
1f81d1851f pngs in gfx/ 2017-06-23 19:56:24 -04:00
yenatch
89093e4670 pngs in gfx/trainers 2017-06-22 23:46:58 -04:00
yenatch
31d9c1fffa pngs in gfx/trade
game_boy.png can be rearranged in a nicer way, but it's a job for another time
2017-06-22 23:45:45 -04:00
yenatch
647f9b4452 pngs in gfx/title 2017-06-21 23:45:01 -04:00
yenatch
f10ed64d1a pngs in gfx/pokedex 2017-06-20 23:42:29 -04:00
yenatch
93a3a7d3c5 Use $(if) in the makefile. Fix gfx/mail.
Fixes 384788f370
2017-06-20 23:36:28 -04:00
yenatch
384788f370 pngs in gfx/mail 2017-06-18 00:13:03 -04:00
Ben10do
fc300ab0ee
Fix parallelisation issues in Makefile
Introduces a minor hack, in order to ensure that the tools are built before the Makefile attempts to use any of the tools, even when using ‘make -j’.
2017-06-10 18:21:38 +01:00
Ben10do
202cea9705
- Make the tools implicitly when making the ROM
- Add a clean target to the tools Makefile
- Run said clean target when cleaning the pokecrystal directory
2017-06-09 21:55:09 +01:00
yenatch
6001eeba40 makefile misc qol
- md5sum: no more --quiet. this flag is not standard and seeing "OK" is probably better
- saner use of $(roms)
2017-05-29 23:22:24 -04:00
yenatch
2f2aa10c9c Reorder the build targets for backwards compatibility with gmake 3.81. 2017-05-29 23:21:42 -04:00
yenatch
e78034eb8c Use a separate makefile for tools
- Fix crystal11
- Fix a bug where the dependency checks would run regardless of target

Fixes 0bd74cdd73
2017-05-29 19:15:34 -04:00
yenatch
d6bf2468a1 Add targets for the pokemon animation edge cases. 2017-05-28 23:23:11 -04:00
yenatch
0bd74cdd73 Fix crystal11 after clean 2017-05-28 15:53:30 -04:00
yenatch
1a549990da Accidentally deleted the pokemon palette rule 2017-05-28 15:53:06 -04:00
yenatch
e9c1d24c31 Add Pokemon pic pngs.
Copies of the matching compressed files are kept, so files with a matching hash will use the matching compressed file instead.

This is the best that can be done until the compressor is fixed, which may never happen.
2017-05-28 14:03:13 -04:00
yenatch
22058020f4 Fix intermediate files once and for all.
GNU Make defaults to deleting all intermediate files unless .SECONDARY is defined.
2017-05-28 01:22:17 -04:00
yenatch
517136b0d9 Fix the graphics rules 2017-05-28 01:20:58 -04:00
yenatch
caa94f8412 Fix the lzcomp rule. 2017-04-28 00:37:42 -04:00
yenatch
f09a233eba Add rules previously covered by gfx.py. 2016-08-24 22:03:12 -04:00
yenatch
2ab468268a Add C build tools. 2016-08-24 21:56:07 -04:00
yenatch
05cffac744 Add a custom scan_includes.py. 2016-04-10 19:19:58 -04:00
dannye
8d1551ec9d Revert 85d30fa079 2016-03-24 11:27:02 -05:00
yenatch
85d30fa079 Fix make deleting files that aren't actually intermediate.
make was deciding that a couple .blk files were actually intermediate.
Still don't know what is causing that issue. This is a temporary fix
that will probably be forgotten about and become a permanent one.
2016-03-21 08:04:00 -04:00
yenatch
1f784700b9 Fix the symfile.
gnu make redefines $* to mean % in spite of posix.
2016-03-16 17:54:20 -04:00
yenatch
3810cefaa2 Suppress deletion of .1bpp files. 2016-03-03 00:06:09 -05:00
yenatch
13f5590abe Trim some whitespace in the makefile. 2016-03-01 23:39:01 -05:00
yenatch
370f84227b Suppress deletion of intermediate .2bpp files. 2016-03-01 23:38:36 -05:00
yenatch
0be6e6c910 Remove useless lines in the makefile.
The previous rules were composed this way but only because target-specific variables weren't used. As they are now, they actually do nothing.
2016-03-01 21:13:38 -05:00
yenatch
e11ef2b8d5 Only generate dependencies for a target when it's invoked.
This means dependencies for unrelated targets aren't generated if you aren't building them. This makes "make clean" and building individual targets fast again.
2016-03-01 21:01:34 -05:00
yenatch
782cbc14d6 Only use suffixes needed for intermediate rules.
This is technically a hack, since keeping the .asm suffix was causing nonexistent rules to be evaluated as per the next commit. On the other hand, this is the intended purpose of .SUFFIXES.
2016-03-01 20:58:00 -05:00
yenatch
73a660bf2a Remove "make pngs". 2016-02-17 16:22:05 -05:00
yenatch
36f0bda0b3 Use static pattern rules to fix dependencies for objects in subdirs. 2016-02-10 00:31:32 -05:00
yenatch
08ac6dfd80 *_crystal.asm files are no longer needed to build crystal *.o. 2016-01-29 16:24:38 -05:00
yenatch
1176712cfe Use rgbasm -D instead of extra files for version differences. 2016-01-29 01:10:41 -05:00
IIMarckus
82e2fe78e1 Split common text into a separate object. 2015-12-18 00:59:03 -07:00
PikalaxALT
434c97a146 Makefile cleanup 2015-11-15 15:53:49 -05:00
IIMarckus
25c126c69b Revert bad merge.
"Merge pull request #317 from yenatch/pngs-kind-of"

This reverts commit 25025d1b6c, reversing
changes made to 0d17d4a758.
2015-11-01 16:06:15 -07:00
yenatch
b8da3874bb Add an init makefile target to prevent data that can't be reasonably reproduced from being rebuilt.
This is only meant to be run once.
2015-09-01 00:20:31 -04:00
yenatch
f0af75e8d2 Fix touching in make pngs. 2015-08-29 11:02:56 -07:00
yenatch
9c4fb6a6a4 Add a script to convert project-specific graphics.
This is an alternative to terrible hacks like filename metadata, and might combat submodule bloat.
2015-06-28 23:53:49 -07:00
yenatch
07b9c4b030 Fix the make pngs target. 2015-06-26 10:47:13 -07:00
yenatch
82317a7a23 Preemptively get rid of graphics queues while they're still not used.
Nip this in the bud, so it doesn't turn out like pokered. When the time comes, use make -j16 for faster builds.
2015-04-13 22:34:41 -07:00
yenatch
a09903a2a4 make compare 2015-03-11 22:37:36 -07:00
yenatch
967977b7af baserom.gbc is no longer required to build 2015-03-11 22:25:54 -07:00
U-Daniel-PC\Daniel
370ffcfd8d Fix make clean
no more .tx files
remove rgbds generated files, .map and .sym
2015-02-14 10:14:58 -05:00
IIMarckus
828d6b92f0 Add the ability to build Crystal 1.1. 2015-02-14 01:51:34 -07:00
yenatch
8583cc4724 Stop using the preprocessor. 2015-01-20 00:01:23 -08:00
yenatch
1a2784d414 Recombine the event engine objects.
They must be in the same bank to work, and defining sections with static banks should only be used to produce an identical rom.

They were only split in the first place to minimize the amount of code tahat needed to be rebuilt based on a single constant, which in retrospect was meaningless.
2014-12-29 08:08:03 -08:00
IIMarckus
c28be21260 Use a path argument for find as required by POSIX. 2014-09-23 22:20:27 -06:00
yenatch
f244e4483e Makefile: Use lower-case variables and graphics conversion queues.
This is mostly to make it more like pokered.

Queues are an order of magnitude faster than invoking a new python instance for each file.
2014-06-15 16:20:40 -07:00
yenatch
99fbe3147b Rename directory stats -> data. 2014-05-31 22:57:00 -07:00
yenatch
c7938cc7d3 Split the mobile adapter library into another object file. 2014-04-30 03:03:20 -04:00
yenatch
6122490cc3 Simple graphics handling in the makefile.
Two-way conversion invokes circular dependency warnings, and is outside the scope of the build.
Now it's one-way.
2014-03-31 21:20:42 -04:00
yenatch
8e24af1f22 Clean up variable usage in the makefile. 2014-02-01 20:36:44 -05:00
yenatch
7f0f21b1fc Get rid of globals.asm
This breaks the build until labels are exported again!
2014-02-01 13:55:48 -05:00
yenatch
4a40c26f6c Makefile: pokemontools variable 2013-12-21 00:46:31 -05:00
yenatch
6ef1028b31 Makefile: image handling
todo: queue targets
2013-12-21 00:40:29 -05:00
yenatch
34d579d9f9 use pokemontools scan_includes.py
It might look the same as before, but this new name is much better! Well done!
2013-12-20 02:44:44 -05:00
yenatch
62020e32aa rewrite makefile for speed and better dependency handling 2013-12-10 02:02:16 -05:00
yenatch
aaf26de8ed Makefile: %.bin and %.pal targets 2013-12-02 23:29:38 -05:00
yenatch
cf3fd4e13b Makefile: empty targets for %.asm and baserom.gbc
so make stops wasting time trying to find implicit rules
2013-12-02 16:25:03 -05:00
yenatch
cc95304912 Makefile: clean doesnt need object dependencies 2013-12-02 15:31:58 -05:00
yenatch
d7bf70f3c9 home.o 2013-11-29 02:30:08 -05:00
yenatch
2ec12a22af gfx/pics.o 2013-11-29 02:11:40 -05:00
yenatch
c2889215a8 audio.o and misc/crystal_misc.o 2013-11-29 01:51:27 -05:00
yenatch
ac65a8b821 engine/credits_crystal.o 2013-11-28 01:38:49 -05:00
yenatch
41f149c7f1 maps.o and stats/pokedex/entries.o 2013-11-27 14:45:42 -05:00
yenatch
bb68a76330 Makefile: more readable object list 2013-11-23 02:54:02 -05:00
yenatch
cf6295cb9f objects for event handling and scripting 2013-11-23 02:51:48 -05:00
yenatch
94188ee0f7 version-sensitive objects for egg moves and evos/attacks
this way main.o and wram.o are version-neutral
2013-11-22 00:14:55 -05:00
yenatch
02e8b4c7b6 version-neutral build targets
pokecrystal will probably never build gold/silver, but who knows
2013-11-21 21:15:37 -05:00
yenatch
f6706ecb09 finally compile multiple objects
pokecrystal.asm doesnt really make sense now so its gone

add includes.asm so objects have a standard include set
2013-11-20 06:35:10 -05:00
yenatch
549591ab0e convert pngs to 1bpp too 2013-11-18 21:07:07 -05:00
yenatch
7fba45f668 fix a typo in Makefile
we want to link more than one object!
2013-09-11 20:27:16 -04:00
yenatch
e2aa3d7ea5 consolidate labels across objects into globals.asm
this is required for objects to share labels
2013-09-11 20:26:09 -04:00
yenatch
74f8d746db abstract make targets are now phony 2013-09-11 01:26:51 -04:00
yenatch
84ba0ffc31 rename lzs make target to gfx 2013-09-11 01:25:39 -04:00
yenatch
c195276073 rename make variables for graphics files 2013-09-11 01:24:20 -04:00
yenatch
6a21963799 scan source files for Makefile dependencies
preprocessing should work with multiple object files now
2013-09-11 01:23:01 -04:00
yenatch
4db0e3c186 rewrite Makefile to handle multiple rgbasm objects
for now, any new files to preprocess will trigger the targets for all objects.
this isn't a problem yet since there's still only one object.
2013-09-10 19:30:31 -04:00
yenatch
3e9e7663ec preprocess everything
it makes more sense this way
2013-09-10 02:05:33 -04:00
yenatch
6e6514c2c9 no need to use python if baserom.gbc doesn't exist
this part is only reached if baserom.gbc doesn't exist,
so it's pointless to check if it does
2013-09-10 00:09:43 -04:00
yenatch
2b38b9ba21 suppress .tx handling in Makefile
there are too many .tx files for the commands to be meaningful

better to just look at the makefile to see what's going on
2013-09-09 23:47:44 -04:00
Sanky
03af68dc41 define PYTHON in Makefile for simpler local changes 2013-09-06 22:25:42 +02:00
yenatch
90e63a8e06 makefile: files in constants/ dont all end in 'constants' anymore
any non-constants asm files shouldn't be in constants/ anyway
2013-09-04 21:57:44 -04:00
Bryan Bishop
9da5768b34 fix baserom.gbc check in Makefile 2013-08-29 11:56:20 -05:00
Bryan Bishop
53d208ce4c fail fast when the baserom.gbc file doesn't exist
One day this will not be required. But until then, waiting one or more
seconds for the build to fail just to learn that you forgot baserom.gbc
is really silly.

This makes failure almost instantaneous compared to before, which would
take between one and ten seconds depending on system performance.

fixes #167
2013-08-28 16:22:50 -05:00
Bryan Bishop
3453879756 Merge branch 'master' into remove-extras 2013-08-27 10:51:30 -05:00
yenatch
dbe8f750fe generate a mapfile and symfile on compile
the symfile is convenient and the mapfile is a better source for labels.json
2013-08-16 13:43:04 -04:00
Bryan Bishop
36b7935bed Merge branch 'master' into remove-extras-fix-make-gfx 2013-08-03 21:40:45 -05:00
Bryan Bishop
daa0760e26 fix gfx/pics/%/front.lz make target
The parameter order was wrong, causing make to always try to make
front.lz files every run.
2013-08-03 21:29:49 -05:00
Bryan Bishop
268a2d28fd probably fix the pngs target for make
Update the submodule to a version where gfx.py is able to handle the
current paths.

Make some other fixes to Makefile to call gfx.py correctly.
2013-08-03 20:13:37 -05:00
Bryan Bishop
a94257c7f8 update Makefile for the new gfx.py path
Why isn't the build breaking?
2013-08-03 18:40:02 -05:00
Bryan Bishop
bb8990dc3c Merge pull request #157 from yenatch/overworld
overworld loop and movement
2013-07-12 19:16:49 -07:00
yenatch
425b727784 make: check wram/constants 2013-07-10 19:17:02 -04:00
Bryan Bishop
7da503ac33 use rm -f in Makefile 2013-06-25 23:48:28 -05:00
yenatch
01954388ea make: don't recompile if it's not necessary
the preprocessor queue was preventing files from being recognized as out-of-date

this highlights similar errors with graphics targets, which need to be fixed anyway
2013-06-21 23:23:22 -04:00
yenatch
e733c4234c preprocess asm files individually
this fixes a lot of previous hacks

first off, rgbds requires that labels from includes be marked as globals.
instead, 3626ddeb stuffed includes into the parent file in the preprocessor.
this meant one huge file got preprocessed every time, adding an additional
ten seconds to compile time.

running the preprocessor once for each file would create too much overhead,
so a list is fed into prequeue.py, which then makes calls to preprocessor.py.

this paves the way for compiling source files separately some day.

next, compiling previously required `make clean` to be executed first.
f3340de6 touched main.asm to force a fresh compile instead. this behavior
has been reverted. now, `make all` will only attempt to recompile if a
source file has changed.

preprocessor.py has some marginal changes. prequeue.py is created to keep
the original functionality of preprocessor.py intact. so many files are
preprocessed on first compile (1951 as of this commit) that the prequeue
call has been hidden.

compile time is reduced to 15-30 seconds on first compile, and 5-10 seconds
subsequently. the majority of this time is spent in rgbasm.
2013-06-21 16:12:40 -04:00
yenatch
f3340de6dc make clean is no longer required to compile 2013-06-18 22:39:13 -04:00
yenatch
2df19fef15 remove makefile clutter 2013-05-28 17:19:37 -04:00
yenatch
ca22f95db0 get rid of windows build components
who needs those anyway?
2013-05-18 04:46:52 -04:00
yenatch
40946fd525 confident enough in lz make target to include it in general compile 2013-05-18 04:46:52 -04:00
yenatch
b5e0efc118 Working lz make target 2013-05-18 04:46:52 -04:00
yenatch
f076f14b98 double-colon rules for .png overrides 2013-04-04 22:50:02 -04:00
yenatch
b6c874d4d4 windows-specific make targets
compiles properly on windows now
2013-04-04 22:45:37 -04:00
yenatch
b570c4d6e6 fix path handling in png make target
lz files were being decompressed to the top directory (gfx/)
2013-03-18 16:36:30 -04:00
yenatch
59f6291afb Split common text out of main.asm 2013-02-17 02:19:49 -05:00
yenatch
ad0578fda0 Fix png export orientation
A quirk of the Decompressed class dissociated the orientation from
the output attribute.

The makefile no longer suppresses output since it's still relevant.
2013-02-12 03:31:35 -05:00
yenatch
8b8f7200a9 Clean up the makefile a bit
Simplifies/explains png import
2013-02-11 17:59:54 -05:00
yenatch
0b8c5ef75b Finish off make target for png generation
Now any existing lz files are converted to 2bpp, and all 2bpp files
are converted to png.
2013-02-11 17:59:43 -05:00
yenatch
d1172e1fb6 Add build target to mass-generate pngs from 2bpp files 2013-02-11 04:13:36 -05:00
yenatch
0b05325e07 Allow png->lz compression in the build process
To enable, append '${IMGFILES}' to line 22:
pokecrystal.o: pokecrystal.asm constants.asm wram.asm ${TEXTFILES} ${IMGFILES}

Also append '${LZFILES}' to line 48:
	rm -f main.tx pokecrystal.o pokecrystal.gbc ${TEXTFILES} ${LZFILES}
2013-02-09 05:23:39 -05:00
IIMarckus
4ee88cd762 Add lots of phone call texts. 2013-01-13 15:40:23 -07:00
Bryan Bishop
802c7780ac use rgbfix to fix the header bytes 2012-05-30 14:13:14 -05:00
IIMarckus
11ed9511cc Add the unused, unreferenced Sweet Honey text. 2012-05-22 21:56:20 -06:00
Bryan Bishop
849c0d132d rename textpre.py -> preprocessor.py 2012-04-26 16:58:20 -05:00
IIMarckus
93902a38bd Add code for the Extremespeed Dratini. 2012-03-20 22:23:40 -06:00
IIMarckus
d5fe70b03b Use textpre.py instead of textpre.awk. 2012-03-05 00:05:36 -07:00
Bryan Bishop
7dc495b3c9 initial commit 2012-03-04 21:31:27 -06:00