summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlibjet <libj3t@gmail.com>2020-06-06 01:56:28 +0100
committerlibjet <libj3t@gmail.com>2020-06-06 01:56:28 +0100
commit29e2695d6eb6bf954ffbaa4993b23c6209cade89 (patch)
tree084473a6fa20948cf092573e0a2798a5669b7c69
parent5f43075c6d59069c929e271d36bb60381e33f606 (diff)
Add engine/link/time_capsule.asm
-rwxr-xr-xdata/pokemon/gen1_base_special.asm154
-rwxr-xr-xengine/link/time_capsule.asm138
-rwxr-xr-xgfx/new_game/shrink1.2bppbin0 -> 784 bytes
-rwxr-xr-xgfx/new_game/shrink1.2bpp.lzbin0 -> 144 bytes
-rwxr-xr-xgfx/new_game/shrink2.2bpp.lzbin0 -> 64 bytes
-rwxr-xr-xgfx/new_game/shrink2.pngbin0 -> 156 bytes
-rw-r--r--main.asm20
7 files changed, 300 insertions, 12 deletions
diff --git a/data/pokemon/gen1_base_special.asm b/data/pokemon/gen1_base_special.asm
new file mode 100755
index 00000000..306ce31d
--- /dev/null
+++ b/data/pokemon/gen1_base_special.asm
@@ -0,0 +1,154 @@
+; The original base Special stat for each Pokémon from Red/Blue
+
+KantoMonSpecials:
+ db 65 ; BULBASAUR
+ db 80 ; IVYSAUR
+ db 100 ; VENUSAUR
+ db 50 ; CHARMANDER
+ db 65 ; CHARMELEON
+ db 85 ; CHARIZARD
+ db 50 ; SQUIRTLE
+ db 65 ; WARTORTLE
+ db 85 ; BLASTOISE
+ db 20 ; CATERPIE
+ db 25 ; METAPOD
+ db 80 ; BUTTERFREE
+ db 20 ; WEEDLE
+ db 25 ; KAKUNA
+ db 45 ; BEEDRILL
+ db 35 ; PIDGEY
+ db 50 ; PIDGEOTTO
+ db 70 ; PIDGEOT
+ db 25 ; RATTATA
+ db 50 ; RATICATE
+ db 31 ; SPEAROW
+ db 61 ; FEAROW
+ db 40 ; EKANS
+ db 65 ; ARBOK
+ db 50 ; PIKACHU
+ db 90 ; RAICHU
+ db 30 ; SANDSHREW
+ db 55 ; SANDSLASH
+ db 40 ; NIDORAN_F
+ db 55 ; NIDORINA
+ db 75 ; NIDOQUEEN
+ db 40 ; NIDORAN_M
+ db 55 ; NIDORINO
+ db 75 ; NIDOKING
+ db 60 ; CLEFAIRY
+ db 85 ; CLEFABLE
+ db 65 ; VULPIX
+ db 100 ; NINETALES
+ db 25 ; JIGGLYPUFF
+ db 50 ; WIGGLYTUFF
+ db 40 ; ZUBAT
+ db 75 ; GOLBAT
+ db 75 ; ODDISH
+ db 85 ; GLOOM
+ db 100 ; VILEPLUME
+ db 55 ; PARAS
+ db 80 ; PARASECT
+ db 40 ; VENONAT
+ db 90 ; VENOMOTH
+ db 45 ; DIGLETT
+ db 70 ; DUGTRIO
+ db 40 ; MEOWTH
+ db 65 ; PERSIAN
+ db 50 ; PSYDUCK
+ db 80 ; GOLDUCK
+ db 35 ; MANKEY
+ db 60 ; PRIMEAPE
+ db 50 ; GROWLITHE
+ db 80 ; ARCANINE
+ db 40 ; POLIWAG
+ db 50 ; POLIWHIRL
+ db 70 ; POLIWRATH
+ db 105 ; ABRA
+ db 120 ; KADABRA
+ db 135 ; ALAKAZAM
+ db 35 ; MACHOP
+ db 50 ; MACHOKE
+ db 65 ; MACHAMP
+ db 70 ; BELLSPROUT
+ db 85 ; WEEPINBELL
+ db 100 ; VICTREEBEL
+ db 100 ; TENTACOOL
+ db 120 ; TENTACRUEL
+ db 30 ; GEODUDE
+ db 45 ; GRAVELER
+ db 55 ; GOLEM
+ db 65 ; PONYTA
+ db 80 ; RAPIDASH
+ db 40 ; SLOWPOKE
+ db 80 ; SLOWBRO
+ db 95 ; MAGNEMITE
+ db 120 ; MAGNETON
+ db 58 ; FARFETCH_D
+ db 35 ; DODUO
+ db 60 ; DODRIO
+ db 70 ; SEEL
+ db 95 ; DEWGONG
+ db 40 ; GRIMER
+ db 65 ; MUK
+ db 45 ; SHELLDER
+ db 85 ; CLOYSTER
+ db 100 ; GASTLY
+ db 115 ; HAUNTER
+ db 130 ; GENGAR
+ db 30 ; ONIX
+ db 90 ; DROWZEE
+ db 115 ; HYPNO
+ db 25 ; KRABBY
+ db 50 ; KINGLER
+ db 55 ; VOLTORB
+ db 80 ; ELECTRODE
+ db 60 ; EXEGGCUTE
+ db 125 ; EXEGGUTOR
+ db 40 ; CUBONE
+ db 50 ; MAROWAK
+ db 35 ; HITMONLEE
+ db 35 ; HITMONCHAN
+ db 60 ; LICKITUNG
+ db 60 ; KOFFING
+ db 85 ; WEEZING
+ db 30 ; RHYHORN
+ db 45 ; RHYDON
+ db 105 ; CHANSEY
+ db 100 ; TANGELA
+ db 40 ; KANGASKHAN
+ db 70 ; HORSEA
+ db 95 ; SEADRA
+ db 50 ; GOLDEEN
+ db 80 ; SEAKING
+ db 70 ; STARYU
+ db 100 ; STARMIE
+ db 100 ; MR__MIME
+ db 55 ; SCYTHER
+ db 95 ; JYNX
+ db 85 ; ELECTABUZZ
+ db 85 ; MAGMAR
+ db 55 ; PINSIR
+ db 70 ; TAUROS
+ db 20 ; MAGIKARP
+ db 100 ; GYARADOS
+ db 95 ; LAPRAS
+ db 48 ; DITTO
+ db 65 ; EEVEE
+ db 110 ; VAPOREON
+ db 110 ; JOLTEON
+ db 110 ; FLAREON
+ db 75 ; PORYGON
+ db 90 ; OMANYTE
+ db 115 ; OMASTAR
+ db 45 ; KABUTO
+ db 70 ; KABUTOPS
+ db 60 ; AERODACTYL
+ db 65 ; SNORLAX
+ db 125 ; ARTICUNO
+ db 125 ; ZAPDOS
+ db 125 ; MOLTRES
+ db 50 ; DRATINI
+ db 70 ; DRAGONAIR
+ db 100 ; DRAGONITE
+ db 154 ; MEWTWO
+ db 100 ; MEW
diff --git a/engine/link/time_capsule.asm b/engine/link/time_capsule.asm
new file mode 100755
index 00000000..f0aa9460
--- /dev/null
+++ b/engine/link/time_capsule.asm
@@ -0,0 +1,138 @@
+ValidateOTTrademon::
+ ld a, [wceee]
+ ld hl, wOTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [wceee]
+ inc a
+ ld c, a
+ ld b, 0
+ ld hl, wOTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp EGG
+ jr z, .matching_or_egg
+ cp [hl]
+ jr nz, .abnormal
+
+.matching_or_egg
+ ld b, h
+ ld c, l
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MAX_LEVEL + 1
+ jr nc, .abnormal
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr nz, .normal
+ ld hl, wOTPartySpecies
+ ld a, [wceee]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hl]
+
+ ; Magnemite and Magneton's types changed
+ ; from Electric to Electric/Steel.
+ cp MAGNEMITE
+ jr z, .normal
+ cp MAGNETON
+ jr z, .normal
+
+ ld [wCurSpecies], a
+ call GetBaseData
+ ld hl, wLinkOTPartyMonTypes
+ add hl, bc
+ add hl, bc
+ ld a, [wBaseType1]
+ cp [hl]
+ jr nz, .abnormal
+ inc hl
+ ld a, [wBaseType2]
+ cp [hl]
+ jr nz, .abnormal
+
+.normal
+ and a
+ ret
+
+.abnormal
+ scf
+ ret
+
+Functionfb6ed::
+ ld a, [wceed]
+ ld d, a
+ ld a, [wPartyCount]
+ ld b, a
+ ld c, $0
+.loop
+ ld a, c
+ cp d
+ jr z, .next
+ push bc
+ ld a, c
+ ld hl, wPartyMon1HP
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .done
+
+.next
+ inc c
+ dec b
+ jr nz, .loop
+ ld a, [wceee]
+ ld hl, wOTPartyMon1HP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ jr nz, .done
+ scf
+ ret
+
+.done
+ and a
+ ret
+
+PlaceTradePartnerNamesAndParty:
+ hlcoord 2, 0
+ ld de, wPlayerName
+ call PlaceString
+ hlcoord 2, 8
+ ld de, wOTPlayerName
+ call PlaceString
+ hlcoord 7, 1
+ ld de, wPartySpecies
+ call .PlaceSpeciesNames
+ hlcoord 7, 9
+ ld de, wOTPartySpecies
+.PlaceSpeciesNames:
+ ld c, 0
+.loop
+ ld a, [de]
+ cp -1
+ ret z
+ ld [wNamedObjectIndexBuffer], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ldh [hProduct], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ inc c
+ jr .loop
+
+INCLUDE "data/pokemon/gen1_base_special.asm"
diff --git a/gfx/new_game/shrink1.2bpp b/gfx/new_game/shrink1.2bpp
new file mode 100755
index 00000000..96b19432
--- /dev/null
+++ b/gfx/new_game/shrink1.2bpp
Binary files differ
diff --git a/gfx/new_game/shrink1.2bpp.lz b/gfx/new_game/shrink1.2bpp.lz
new file mode 100755
index 00000000..284bee8c
--- /dev/null
+++ b/gfx/new_game/shrink1.2bpp.lz
Binary files differ
diff --git a/gfx/new_game/shrink2.2bpp.lz b/gfx/new_game/shrink2.2bpp.lz
new file mode 100755
index 00000000..df14d5ed
--- /dev/null
+++ b/gfx/new_game/shrink2.2bpp.lz
Binary files differ
diff --git a/gfx/new_game/shrink2.png b/gfx/new_game/shrink2.png
new file mode 100755
index 00000000..276b4e7c
--- /dev/null
+++ b/gfx/new_game/shrink2.png
Binary files differ
diff --git a/main.asm b/main.asm
index 18220156..ca794fef 100644
--- a/main.asm
+++ b/main.asm
@@ -368,18 +368,14 @@ SECTION "bank3E", ROMX
INCLUDE "engine/gfx/load_font.asm"
INCLUDE "data/collision_permissions.asm"
-Shrink1Pic::
- dr $fb5be, $fb64e
-Shrink2Pic::
- dr $fb64e, $fb68e
-ValidateOTTrademon::
- dr $fb68e, $fb6ed
-Functionfb6ed::
- dr $fb6ed, $fb71d
-PlaceTradePartnerNamesAndParty::
- dr $fb71d, $fb760
-KantoMonSpecials::
- dr $fb760, $fb7f7
+Shrink1Pic:
+INCBIN "gfx/new_game/shrink1.2bpp.lz"
+
+Shrink2Pic:
+INCBIN "gfx/new_game/shrink2.2bpp.lz"
+
+INCLUDE "engine/link/time_capsule.asm"
+
_NameRater::
dr $fb7f7, $fb94b
PlaySlowCry::