Merge branch 'master' into tools-makefile-integration

This commit is contained in:
yenatch
2017-06-24 20:42:25 -04:00
committed by GitHub
1516 changed files with 976 additions and 833 deletions

1
.gitignore vendored
View File

@@ -37,6 +37,7 @@ pokecrystal.txt
*.dimensions
*.gbcpal
*.2bpp
*.1bpp
*.lz
*.pal
*.animated.tilemap

View File

@@ -7,7 +7,7 @@ If you run into trouble, ask on irc ([**freenode#pret**](https://kiwiirc.com/cli
# Linux
```bash
sudo apt-get install make gcc bison git
sudo apt-get install make gcc bison git libpng-dev
git clone https://github.com/rednex/rgbds
cd rgbds
@@ -54,10 +54,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**:

View File

@@ -1,4 +1,8 @@
MD5 := md5sum -c
ifeq (,$(shell which sha1sum))
SHA1 := shasum
else
SHA1 := sha1sum
endif
.SUFFIXES:
.PHONY: all clean tools compare crystal crystal11
@@ -44,7 +48,7 @@ clean:
make clean -C tools/
compare: $(roms)
@$(MD5) roms.md5
@$(SHA1) -c roms.sha1
tools:
make -C tools/
@@ -66,22 +70,14 @@ 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.
# For files that the compressor can't match, there will be a .lz file suffixed with the md5 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.
%.lz: hash = $(shell md5sum $(*D)/$(*F) | sed "s/\(.\{8\}\).*/\1/")
%.lz: hash = $(shell tools/md5 $(*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.
@@ -126,20 +122,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

View File

@@ -1,19 +1,16 @@
# Pokémon Crystal
# Pokémon Crystal [![Build Status][travis-badge]][travis]
This is a disassembly of Pokémon Crystal.
It builds the following roms:
* Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc `md5: 9f2922b235a5eeb78d65594e82ef5dde`
* Pokemon - Crystal Version (UE) (V1.1) [C][!].gbc `md5: 301899b8087289a6436b0a241fbbb474`
* Pokemon - Crystal Version (UE) (V1.0) [C][!].gbc `sha1: f4cd194bdee0d04ca4eac29e09b8e4e9d818c133`
* Pokemon - Crystal Version (UE) (V1.1) [C][!].gbc `sha1: f2f52230b536214ef7c9924f483392993e226cfb`
To set up the repository, see [**INSTALL.md**](INSTALL.md).
To set up the repository, see [INSTALL.md](INSTALL.md).
### irc: [freenode#pret][irc]
## See also
* Disassembly of [**Pokémon Red/Blue**][pokered]
* irc: [**freenode#pret**][irc]
[pokered]: https://github.com/iimarckus/pokered
[irc]: https://kiwiirc.com/client/irc.freenode.net/?#pret
[travis]: https://travis-ci.org/pret/pokecrystal
[travis-badge]: https://travis-ci.org/pret/pokecrystal.svg?branch=master

View File

@@ -229,7 +229,7 @@ UpdateChannels: ; e8125
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
.ChannelFnPtrs:
dw .Channel1
@@ -1389,7 +1389,7 @@ ParseMusicCommand: ; e870f
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
; e8720

View File

@@ -211,7 +211,7 @@ AI_TryItem: ; 38105
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
.callback
pop de
pop hl
@@ -238,7 +238,7 @@ AI_TryItem: ; 38105
res SUBSTATUS_RAGE, [hl]
xor a
ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
scf
ret

View File

@@ -11,7 +11,7 @@ AI_Redundant: ; 2c41a
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
.Moves: ; 2c42c
dbw EFFECT_DREAM_EATER, .DreamEater

View File

@@ -756,7 +756,7 @@ AI_Smart_AlwaysHit: ; 38947
AI_Smart_MirrorMove: ; 3895b
; If the player did not use any move last turn...
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
and a
jr nz, .asm_38968
@@ -1353,7 +1353,7 @@ AI_Smart_Rage: ; 38b7f
AI_Smart_Mimic: ; 38ba8
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
and a
jr z, .asm_38be9
@@ -1361,7 +1361,7 @@ AI_Smart_Mimic: ; 38ba8
jr nc, .asm_38bef
push hl
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
call AIGetEnemyMove
ld a, $1
@@ -1380,7 +1380,7 @@ AI_Smart_Mimic: ; 38ba8
dec [hl]
.asm_38bd4
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
push hl
ld hl, UsefulMoves
ld de, 1
@@ -1438,7 +1438,7 @@ AI_Smart_Counter: ; 38bf1
cp $3
jr nc, .asm_38c30
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
and a
jr z, .asm_38c38
@@ -1499,7 +1499,7 @@ AI_Smart_Encore: ; 38c3b
.asm_38c68
push hl
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
ld hl, .EncoreMoves
ld de, 1
call IsInArray
@@ -1615,7 +1615,7 @@ AI_Smart_DefrostOpponent: ; 38ccb
AI_Smart_Spite: ; 38cd5
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
and a
jr nz, .asm_38ce7
@@ -1837,7 +1837,7 @@ AI_Smart_Disable: ; 38dd1
jr nc, .asm_38df3
push hl
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
ld hl, UsefulMoves
ld de, 1
call IsInArray
@@ -2367,7 +2367,7 @@ AI_Smart_Magnitude:
AI_Smart_Earthquake: ; 39044
; Greatly encourage this move if the player is underground and the enemy is faster.
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
cp DIG
ret nz
@@ -2741,7 +2741,7 @@ AI_Smart_MirrorCoat: ; 3918b
cp $3
jr nc, .asm_391ca
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
and a
jr z, .asm_391d2
@@ -2775,7 +2775,7 @@ AI_Smart_Twister:
AI_Smart_Gust: ; 391d5
; Greatly encourage this move if the player is flying and the enemy is faster.
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
cp FLY
ret nz

View File

@@ -229,7 +229,7 @@ CheckAbleToSwitch: ; 34941
cp 11
ret nc
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
and a
jr z, .no_last_counter_move
@@ -378,8 +378,8 @@ FindEnemyMonsImmuneToLastCounterMove: ; 34a2a
ld [CurSpecies], a
call GetBaseData
; the enemy's last move is damaging...
ld a, [LastEnemyCounterMove]
; the player's last move is damaging...
ld a, [LastPlayerCounterMove]
dec a
ld hl, Moves + MOVE_POWER
call GetMoveAttr
@@ -568,7 +568,7 @@ FindEnemyMonsThatResistPlayer: ; 34b20
push hl
ld [CurSpecies], a
call GetBaseData
ld a, [LastEnemyCounterMove]
ld a, [LastPlayerCounterMove]
and a
jr z, .skip_move

View File

@@ -347,7 +347,7 @@ RunBattleAnimCommand: ; cc25f
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
; cc2a4

View File

@@ -75,7 +75,7 @@ DoBattleBGEffectFunction: ; c804a (32:404a)
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
BattleBGEffects: ; c805a (32:405a)
dw BattleBGEffect_End
@@ -161,7 +161,7 @@ BattleBGEffects_AnonJumptable: ; c80d7 (32:40d7)
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
BattleBGEffects_IncrementJumptable: ; c80e5 (32:40e5)
ld hl, BG_EFFECT_STRUCT_JT_INDEX
@@ -2059,7 +2059,7 @@ BattleBGEffect_1c: ; c8b00 (32:4b00)
.cgb
ld de, .Jumptable
call BatttleBGEffects_GetNamedJumptablePointer
jp [hl]
jp hl
.Jumptable:
dw .cgb_zero
@@ -2421,7 +2421,7 @@ BGEffect_RapidCyclePals: ; c8d77 (32:4d77)
ld de, .Jumptable_DMG
call BatttleBGEffects_GetNamedJumptablePointer
pop de
jp [hl]
jp hl
.Jumptable_DMG:
dw .zero_dmg
@@ -2484,7 +2484,7 @@ BGEffect_RapidCyclePals: ; c8d77 (32:4d77)
ld de, .Jumptable_CGB
call BatttleBGEffects_GetNamedJumptablePointer
pop de
jp [hl]
jp hl
.Jumptable_CGB: ; c8ddd (32:4ddd)
dw .zero_cgb

View File

@@ -3366,8 +3366,8 @@ CheckWhetherSwitchmonIsPredetermined: ; 3d533
ResetEnemyBattleVars: ; 3d557
; and draw empty TextBox
xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastEnemyMove], a
ld [CurEnemyMove], a
dec a
@@ -3766,8 +3766,8 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7
NewEnemyMonStatus: ; 3d834
xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastEnemyMove], a
ld hl, EnemySubStatus1
rept 4
@@ -4217,8 +4217,8 @@ SendOutPlayerMon: ; 3db5f
ld [CurMoveNum], a
ld [TypeModifier], a
ld [wPlayerMoveStruct + MOVE_ANIM], a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastPlayerMove], a
call CheckAmuletCoin
call FinishBattleAnim
@@ -4258,8 +4258,8 @@ SendOutPlayerMon: ; 3db5f
NewBattleMonStatus: ; 3dbde
xor a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a
ld [LastEnemyCounterMove], a
ld [LastPlayerMove], a
ld hl, PlayerSubStatus1
rept 4
@@ -4331,7 +4331,7 @@ SpikesDamage: ; 3dc23
jp WaitBGMap
.hl
jp [hl]
jp hl
; 3dc5b
PursuitSwitch: ; 3dc5b

View File

@@ -113,7 +113,7 @@ DoMove: ; 3402c
jr .ReadMoveEffectCommand
.DoMoveEffectCommand:
jp [hl]
jp hl
; 34084
@@ -971,7 +971,7 @@ BattleCommand_CheckObedience: ; 343db
.EndDisobedience:
xor a
ld [LastPlayerMove], a
ld [LastEnemyCounterMove], a
ld [LastPlayerCounterMove], a
; Break Encore too.
ld hl, PlayerSubStatus5
@@ -1542,6 +1542,12 @@ BattleCheckTypeMatchup: ; 347c8
jr z, CheckTypeMatchup
ld hl, BattleMonType1
CheckTypeMatchup: ; 347d3
; There is an incorrect assumption about this function made in the AI related code: when
; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the
; offensive type in a will make this function do the right thing. Since a is overwritten,
; this assumption is incorrect. A simple fix would be to load the move type for the
; current move into a in BattleCheckTypeMatchup, before falling through, which is
; consistent with how the rest of the code assumes this code works like.
push hl
push de
push bc

View File

@@ -9,7 +9,7 @@ DoBattleAnimFrame: ; ccfbe
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
; ccfce
.Jumptable:
@@ -4085,7 +4085,7 @@ BattleAnim_AnonJumptable: ; ce71e (33:671e)
ld a, [hli]
ld h, [hl]
ld l, a
jp [hl]
jp hl
BattleAnim_IncAnonJumptableIndex: ; ce72c (33:672c)
ld hl, BATTLEANIMSTRUCT_ANON_JT_INDEX

View File

@@ -91,12 +91,12 @@ const_value SET 1
const BATTLE_VARS_LAST_MOVE_OPP
; status
SLP EQU 7 ; 0-7 turns
const_value SET 3
const PSN
const BRN
const FRZ
const PAR
const SLP ; 7 turns
ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP

View File

@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
dn 5, 5 ; frontpic dimensions
INCBIN "gfx/pics/abra/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups

View File

@@ -12,7 +12,7 @@
db 100 ; unknown
db 35 ; step cycles to hatch
db 5 ; unknown
dn 7, 7 ; frontpic dimensions
INCBIN "gfx/pics/aerodactyl/front.dimensions"
db 0, 0, 0, 0 ; padding
db SLOW ; growth rate
dn AVIAN, AVIAN ; egg groups

View File

@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
dn 5, 5 ; frontpic dimensions
INCBIN "gfx/pics/aipom/front.dimensions"
db 0, 0, 0, 0 ; padding
db FAST ; growth rate
dn FIELD, FIELD ; egg groups

View File

@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
dn 7, 7 ; frontpic dimensions
INCBIN "gfx/pics/alakazam/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn HUMANSHAPE, HUMANSHAPE ; egg groups

View File

@@ -12,7 +12,7 @@
db 100 ; unknown
db 20 ; step cycles to hatch
db 5 ; unknown
dn 7, 7 ; frontpic dimensions
INCBIN "gfx/pics/ampharos/front.dimensions"
db 0, 0, 0, 0 ; padding
db MEDIUM_SLOW ; growth rate
dn MONSTER, FIELD ; egg groups

Some files were not shown because too many files have changed in this diff Show More