1
.gitignore
vendored
@ -37,6 +37,7 @@ pokecrystal.txt
|
||||
*.dimensions
|
||||
*.gbcpal
|
||||
*.2bpp
|
||||
*.1bpp
|
||||
*.lz
|
||||
*.pal
|
||||
*.animated.tilemap
|
||||
|
@ -56,10 +56,10 @@ make
|
||||
|
||||
To build on Windows, install [**Cygwin**](http://cygwin.com/install.html) with the default settings.
|
||||
|
||||
In the installer, select the following packages: `make` `git` `gettext`
|
||||
In the installer, select the following packages: `make` `git` `gettext` `gcc-core`
|
||||
|
||||
Then get [**rgbds 0.2.5**](https://github.com/rednex/rgbds/releases/). Versions 0.3.0 and later are not compatible.
|
||||
Extract the archive and put `rgbasm.exe`, `rgblink.exe`, `rgbfix.exe` and `rgbgfx.exe` in `C:\cygwin64\usr\local\bin`.
|
||||
Extract the archive and put all the `exe` and `dll` files individually in `C:\cygwin64\usr\local\bin`.
|
||||
|
||||
In the **Cygwin terminal**:
|
||||
|
||||
@ -67,7 +67,7 @@ In the **Cygwin terminal**:
|
||||
|
||||
git clone https://github.com/pret/pokecrystal
|
||||
cd pokecrystal
|
||||
make tools
|
||||
make tools CC=gcc
|
||||
```
|
||||
|
||||
To build **pokecrystal.gbc**:
|
||||
|
84
Makefile
@ -58,10 +58,6 @@ pokecrystal.gbc: $(crystal_obj)
|
||||
rgbfix -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
|
||||
|
||||
|
||||
define LOUD
|
||||
echo "$1"; $1
|
||||
endef
|
||||
|
||||
# For files that the compressor can't match, there will be a .lz file suffixed with the hash of the correct uncompressed file.
|
||||
# If the hash of the uncompressed file matches, use this .lz instead.
|
||||
# This allows pngs to be used for compressed graphics and still match.
|
||||
@ -69,11 +65,7 @@ endef
|
||||
%.lz: hash = $(shell md5sum $(*D)/$(*F) | sed "s/\(.\{8\}\).*/\1/")
|
||||
%.lz: %
|
||||
$(eval filename := $@.$(hash))
|
||||
@if [ -f $(filename) ]; then \
|
||||
$(call LOUD, cp $(filename) $@); \
|
||||
else \
|
||||
$(call LOUD, tools/lzcomp $< $@); \
|
||||
fi
|
||||
$(if $(wildcard $(filename)),cp $(filename) $@,tools/lzcomp $< $@)
|
||||
|
||||
# Terrible hacks to match animations. Delete these rules if you don't care about matching.
|
||||
|
||||
@ -118,20 +110,82 @@ gfx/pics/%/front.animated.tilemap: gfx/pics/%/front.2bpp gfx/pics/%/front.dimens
|
||||
|
||||
# Misc file-specific graphics rules
|
||||
|
||||
gfx/shrink%.2bpp: gfx/shrink%.png
|
||||
rgbgfx -h -o $@ $<
|
||||
gfx/shrink1.2bpp: rgbgfx += -h
|
||||
gfx/shrink2.2bpp: rgbgfx += -h
|
||||
|
||||
gfx/trainers/%.2bpp: gfx/trainers/%.png
|
||||
rgbgfx -h -o $@ $<
|
||||
gfx/trainers/%.2bpp: rgbgfx += -h
|
||||
gfx/trainers/%.pal: gfx/trainers/%.gbcpal
|
||||
tools/palette -p $< > $@
|
||||
|
||||
gfx/mail/0b9b46.1bpp: tools/gfx += --remove-whitespace
|
||||
gfx/mail/0b9d46.1bpp: tools/gfx += --remove-whitespace
|
||||
gfx/mail/0b9d86.1bpp: tools/gfx += --remove-whitespace
|
||||
gfx/mail/0b9dc6.1bpp: tools/gfx += --remove-whitespace
|
||||
gfx/mail/0b9cfe.1bpp: tools/gfx += --remove-whitespace
|
||||
|
||||
gfx/pokedex/%.2bpp: tools/gfx += --trim-whitespace
|
||||
|
||||
gfx/title/crystal.2bpp: tools/gfx += --interleave --width=48
|
||||
gfx/title/old_fg.2bpp: tools/gfx += --interleave --width=64
|
||||
gfx/title/logo.2bpp: rgbgfx += -x 4
|
||||
|
||||
gfx/trade/ball.2bpp: tools/gfx += --remove-whitespace
|
||||
|
||||
gfx/slots_2.2bpp: tools/gfx += --interleave --width=16
|
||||
gfx/slots_3.2bpp: tools/gfx += --interleave --width=24 --remove-duplicates --keep-whitespace --remove-xflip
|
||||
gfx/slots_3a.2bpp: tools/gfx += --interleave --width=16
|
||||
gfx/slots_3b.2bpp: tools/gfx += --interleave --width=24 --remove-duplicates --keep-whitespace --remove-xflip
|
||||
|
||||
gfx/fx/angels.2bpp: tools/gfx += --trim-whitespace
|
||||
gfx/fx/beam.2bpp: tools/gfx += --remove-xflip --remove-yflip --remove-whitespace
|
||||
gfx/fx/bubble.2bpp: tools/gfx += --trim-whitespace
|
||||
gfx/fx/charge.2bpp: tools/gfx += --trim-whitespace
|
||||
gfx/fx/egg.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/explosion.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/hit.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/horn.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/lightning.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/misc.2bpp: tools/gfx += --remove-duplicates --remove-xflip
|
||||
gfx/fx/noise.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/objects.2bpp: tools/gfx += --remove-whitespace --remove-xflip
|
||||
gfx/fx/pokeball.2bpp: tools/gfx += --remove-xflip --keep-whitespace
|
||||
gfx/fx/reflect.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/rocks.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/skyattack.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/fx/status.2bpp: tools/gfx += --remove-whitespace
|
||||
|
||||
gfx/misc/chris.2bpp: rgbgfx += -h
|
||||
gfx/misc/chris_card.2bpp: rgbgfx += -h
|
||||
gfx/misc/kris.2bpp: rgbgfx += -h
|
||||
gfx/misc/kris_card.2bpp: rgbgfx += -h
|
||||
gfx/misc/kris_back.2bpp: rgbgfx += -h
|
||||
gfx/misc/dude.2bpp: rgbgfx += -h
|
||||
gfx/misc/unknown_egg.2bpp: rgbgfx += -h
|
||||
gfx/misc/player.2bpp: rgbgfx += -h
|
||||
gfx/misc/pokegear.2bpp: rgbgfx += -x2
|
||||
gfx/misc/pokegear_sprites.2bpp: tools/gfx += --trim-whitespace
|
||||
|
||||
gfx/unknown/0e0ea8.2bpp: tools/gfx += --remove-whitespace
|
||||
gfx/unknown/0f8f34.1bpp: tools/gfx += --trim-whitespace
|
||||
gfx/unknown/16c173.2bpp: tools/gfx += --remove-duplicates --remove-xflip
|
||||
gfx/unknown/170d16.2bpp: tools/gfx += --trim-whitespace
|
||||
gfx/unknown/1715a4.2bpp: tools/gfx += --trim-whitespace
|
||||
gfx/unknown/1715a4_nonmatching.2bpp: tools/gfx += --remove-duplicates --remove-xflip
|
||||
gfx/unknown/171db1.2bpp: tools/gfx += --trim-whitespace
|
||||
gfx/unknown/172f1f.2bpp: tools/gfx += --trim-whitespace
|
||||
|
||||
|
||||
%.bin: ;
|
||||
%.blk: ;
|
||||
|
||||
%.2bpp: %.png
|
||||
rgbgfx -o $@ $<
|
||||
rgbgfx $(rgbgfx) -o $@ $<
|
||||
$(if $(tools/gfx),tools/gfx $(tools/gfx) -o $@ $@)
|
||||
|
||||
%.1bpp: %.png
|
||||
rgbgfx -d1 -o $@ $<
|
||||
rgbgfx $(rgbgfx) -d1 -o $@ $<
|
||||
$(if $(tools/gfx),tools/gfx $(tools/gfx) -d1 -o $@ $@)
|
||||
|
||||
%.tilemap: %.png
|
||||
rgbgfx -t $@ $<
|
||||
%.gbcpal: %.png
|
||||
|
@ -367,7 +367,8 @@ GameFreakLogoPalettes: ; e47ac
|
||||
; e47cc
|
||||
|
||||
GameFreakLogo: ; e47cc
|
||||
INCBIN "gfx/splash/logo.1bpp"
|
||||
INCBIN "gfx/splash/logo1.1bpp"
|
||||
INCBIN "gfx/splash/logo2.1bpp"
|
||||
; e48ac
|
||||
|
||||
CrystalIntro: ; e48ac
|
||||
|
@ -2987,7 +2987,7 @@ INCBIN "gfx/misc/kanto.bin"
|
||||
PokedexNestIconGFX: ; 922d1
|
||||
INCBIN "gfx/pokegear/dexmap_nest_icon.2bpp"
|
||||
FlyMapLabelBorderGFX: ; 922e1
|
||||
INCBIN "gfx/pokegear/flymap_label_border.2bpp"
|
||||
INCBIN "gfx/pokegear/flymap_label_border.1bpp"
|
||||
|
||||
; XXX
|
||||
xor a
|
||||
|
@ -397,11 +397,11 @@ OakText_ResponseToSetTime: ; 0x908b8
|
||||
; 0x908fb
|
||||
|
||||
GFX_908fb: ; 908fb
|
||||
INCBIN "gfx/unknown/0908fb.2bpp"
|
||||
INCBIN "gfx/unknown/0908fb.1bpp"
|
||||
GFX_90903: ; 90903
|
||||
INCBIN "gfx/unknown/090903.2bpp"
|
||||
INCBIN "gfx/unknown/090903.1bpp"
|
||||
GFX_9090b: ; 9090b
|
||||
INCBIN "gfx/unknown/09090b.2bpp"
|
||||
INCBIN "gfx/unknown/09090b.1bpp"
|
||||
; 90913
|
||||
|
||||
Special_SetDayOfWeek: ; 90913
|
||||
|
@ -387,15 +387,15 @@ AnimateTitleCrystal: ; 10ef32
|
||||
; 10ef46
|
||||
|
||||
TitleSuicuneGFX: ; 10ef46
|
||||
INCBIN "gfx/title/suicune.w128.2bpp.lz"
|
||||
INCBIN "gfx/title/suicune.2bpp.lz"
|
||||
; 10f326
|
||||
|
||||
TitleLogoGFX: ; 10f326
|
||||
INCBIN "gfx/title/logo.w160.t4.2bpp.lz"
|
||||
INCBIN "gfx/title/logo.2bpp.lz"
|
||||
; 10fcee
|
||||
|
||||
TitleCrystalGFX: ; 10fcee
|
||||
INCBIN "gfx/title/crystal.w48.interleave.2bpp.lz"
|
||||
INCBIN "gfx/title/crystal.2bpp.lz"
|
||||
; 10fede
|
||||
|
||||
TitleScreenPalettes:
|
||||
|
@ -608,8 +608,8 @@ TrainerCard_JohtoBadgesOAM: ; 254c9
|
||||
|
||||
CardStatusGFX: INCBIN "gfx/misc/card_status.2bpp"
|
||||
|
||||
LeaderGFX: INCBIN "gfx/misc/leaders.w24.2bpp"
|
||||
LeaderGFX2: INCBIN "gfx/misc/leaders.w24.2bpp"
|
||||
LeaderGFX: INCBIN "gfx/misc/leaders.2bpp"
|
||||
LeaderGFX2: INCBIN "gfx/misc/leaders.2bpp"
|
||||
BadgeGFX: INCBIN "gfx/misc/badges.2bpp"
|
||||
BadgeGFX2: INCBIN "gfx/misc/badges.2bpp"
|
||||
|
||||
|
BIN
gfx/battle/balls.png
Normal file
After Width: | Height: | Size: 115 B |
BIN
gfx/battle/enemy_hp_bar_border.png
Normal file
After Width: | Height: | Size: 111 B |
BIN
gfx/battle/expbar.png
Normal file
After Width: | Height: | Size: 120 B |
BIN
gfx/battle/expbarend.png
Normal file
After Width: | Height: | Size: 85 B |
BIN
gfx/battle/expbarend_sgb.png
Normal file
After Width: | Height: | Size: 85 B |
BIN
gfx/battle/hp_exp_bar_border.png
Normal file
After Width: | Height: | Size: 116 B |
BIN
gfx/battle/minimize.png
Normal file
After Width: | Height: | Size: 85 B |
BIN
gfx/debug/color_test.png
Normal file
After Width: | Height: | Size: 215 B |
BIN
gfx/emotes/bolt.png
Normal file
After Width: | Height: | Size: 126 B |
BIN
gfx/emotes/fish.png
Normal file
After Width: | Height: | Size: 123 B |
BIN
gfx/emotes/happy.png
Normal file
After Width: | Height: | Size: 125 B |
BIN
gfx/emotes/heart.png
Normal file
After Width: | Height: | Size: 133 B |
BIN
gfx/emotes/question.png
Normal file
After Width: | Height: | Size: 126 B |
BIN
gfx/emotes/sad.png
Normal file
After Width: | Height: | Size: 127 B |
BIN
gfx/emotes/shock.png
Normal file
After Width: | Height: | Size: 110 B |
BIN
gfx/emotes/sleep.png
Normal file
After Width: | Height: | Size: 123 B |
BIN
gfx/evo/bubble.png
Normal file
After Width: | Height: | Size: 88 B |
BIN
gfx/evo/bubble_large.png
Normal file
After Width: | Height: | Size: 130 B |
@ -59,11 +59,11 @@ INCBIN "gfx/mobile/overworld_phone_icon.2bpp"
|
||||
; f8f34
|
||||
|
||||
GFX_f8f34: ; unused bold letters + unown chars
|
||||
INCBIN "gfx/unknown/0f8f34.w64.1bpp"
|
||||
INCBIN "gfx/unknown/0f8f34.1bpp"
|
||||
; f9204
|
||||
|
||||
TextBoxSpaceGFX: ; f9204
|
||||
INCBIN "gfx/frames/space.2bpp"
|
||||
INCBIN "gfx/frames/space.1bpp"
|
||||
; f9214
|
||||
|
||||
MobilePhoneTilesGFX: ; f9214
|
||||
|
BIN
gfx/font/english.png
Normal file
After Width: | Height: | Size: 770 B |
BIN
gfx/font/french_german.png
Normal file
After Width: | Height: | Size: 853 B |
BIN
gfx/font/spanish_italian.png
Normal file
After Width: | Height: | Size: 865 B |
BIN
gfx/frames/1.png
Normal file
After Width: | Height: | Size: 123 B |
BIN
gfx/frames/2.png
Normal file
After Width: | Height: | Size: 126 B |
BIN
gfx/frames/3.png
Normal file
After Width: | Height: | Size: 114 B |
BIN
gfx/frames/4.png
Normal file
After Width: | Height: | Size: 128 B |
BIN
gfx/frames/5.png
Normal file
After Width: | Height: | Size: 108 B |
BIN
gfx/frames/6.png
Normal file
After Width: | Height: | Size: 117 B |
BIN
gfx/frames/7.png
Normal file
After Width: | Height: | Size: 118 B |
BIN
gfx/frames/8.png
Normal file
After Width: | Height: | Size: 109 B |
BIN
gfx/frames/9.png
Normal file
After Width: | Height: | Size: 111 B |
BIN
gfx/frames/map_entry_sign.png
Normal file
After Width: | Height: | Size: 190 B |
BIN
gfx/frames/space.png
Executable file
After Width: | Height: | Size: 134 B |
BIN
gfx/fx/aeroblast.png
Normal file
After Width: | Height: | Size: 187 B |
BIN
gfx/fx/angels.png
Normal file
After Width: | Height: | Size: 363 B |
BIN
gfx/fx/beam.png
Executable file
After Width: | Height: | Size: 562 B |
BIN
gfx/fx/bubble.png
Normal file
After Width: | Height: | Size: 237 B |
BIN
gfx/fx/charge.png
Normal file
After Width: | Height: | Size: 188 B |
BIN
gfx/fx/cut.png
Normal file
After Width: | Height: | Size: 170 B |
BIN
gfx/fx/egg.png
Normal file
After Width: | Height: | Size: 200 B |
BIN
gfx/fx/explosion.png
Normal file
After Width: | Height: | Size: 157 B |
BIN
gfx/fx/fire.png
Normal file
After Width: | Height: | Size: 153 B |
BIN
gfx/fx/flower.png
Normal file
After Width: | Height: | Size: 149 B |
BIN
gfx/fx/globe.png
Normal file
After Width: | Height: | Size: 292 B |
BIN
gfx/fx/haze.png
Normal file
After Width: | Height: | Size: 173 B |
BIN
gfx/fx/hit.png
Normal file
After Width: | Height: | Size: 306 B |