From 91c79913fd0e15632df4a8138f685c836dc6a336 Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Wed, 28 Sep 2022 10:46:42 +0100 Subject: [PATCH 1/9] fixing a few small bugs --- data/maps/dungeon_maps.asm | 16 +++++++++++----- engine/battle/core.asm | 15 +++++++++++++++ engine/movie/oak_speech/oak_speech.asm | 2 +- home/text.asm | 4 ++-- macros/scripts/text.asm | 6 +++--- scripts/RocketHideoutB4F.asm | 14 +++++++------- 6 files changed, 39 insertions(+), 18 deletions(-) diff --git a/data/maps/dungeon_maps.asm b/data/maps/dungeon_maps.asm index f4977ae8..f55322b9 100644 --- a/data/maps/dungeon_maps.asm +++ b/data/maps/dungeon_maps.asm @@ -1,8 +1,3 @@ -; GetBattleTransitionID_IsDungeonMap fails to recognize -; VICTORY_ROAD_2F, VICTORY_ROAD_3F, all ROCKET_HIDEOUT maps, -; POKEMON_MANSION_1F, SEAFOAM_ISLANDS_[B1F-B4F], POWER_PLANT, -; DIGLETTS_CAVE, and SILPH_CO_[9-11]F as dungeon maps - ; GetBattleTransitionID_IsDungeonMap checks if wCurMap ; is equal to one of these maps DungeonMaps1: @@ -11,6 +6,11 @@ DungeonMaps1: db SEAFOAM_ISLANDS_1F db ROCK_TUNNEL_B1F db CINNABAR_VOLCANO + db POKEMON_MANSION_1F + db VICTORY_ROAD_2F + db VICTORY_ROAD_3F + db POWER_PLANT + db DIGLETTS_CAVE db -1 ; end ; GetBattleTransitionID_IsDungeonMap checks if wCurMap @@ -25,4 +25,10 @@ DungeonMaps2: ; SILPH_CO_[2-8]F, POKEMON_MANSION[2F-B1F], SAFARI_ZONE, and ; CERULEAN_CAVE maps, except for SILPH_CO_1F db SILPH_CO_2F, CERULEAN_CAVE_1F + ; SILPH_CO_[9-11]F + db SILPH_CO_9F, SILPH_CO_11F + ; SEAFOAM_ISLANDS_[B1F-B4F] + db SEAFOAM_ISLANDS_B1F, SEAFOAM_ISLANDS_B4F + ; all ROCKET_HIDEOUT maps + db ROCKET_HIDEOUT_B1F, ROCKET_HIDEOUT_B4F db -1 ; end diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 8bc1ebae..37829c9f 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -5291,6 +5291,21 @@ AdjustDamageForMoveType: ld b, a ld a, [hl] ; a = damage multiplier ldh [hMultiplier], a + and a ; cp NO_EFFECT ;This fixes incorrect type effectiveness messages + jr z, .gotMultiplier + cp NOT_VERY_EFFECTIVE + jr nz, .nothalf + ld a, [wDamageMultipliers] + and $7f + srl a + jr .gotMultiplier +.nothalf + cp SUPER_EFFECTIVE + jr nz, .gotMultiplier + ld a, [wDamageMultipliers] + and $7f + sla a +.gotMultiplier add b ld [wDamageMultipliers], a xor a diff --git a/engine/movie/oak_speech/oak_speech.asm b/engine/movie/oak_speech/oak_speech.asm index 93cdfaab..202fb7be 100644 --- a/engine/movie/oak_speech/oak_speech.asm +++ b/engine/movie/oak_speech/oak_speech.asm @@ -157,7 +157,7 @@ OakSpeechText1: text_end OakSpeechText2: text_far _OakSpeechText2A - sound_cry_nidorina + sound_cry_nidorino text_far _OakSpeechText2B text_end IntroducePlayerText: diff --git a/home/text.asm b/home/text.asm index b1f5e55c..64d184f9 100644 --- a/home/text.asm +++ b/home/text.asm @@ -516,7 +516,7 @@ TextCommand_SOUND:: jr .loop .play - cp TX_SOUND_CRY_NIDORINA + cp TX_SOUND_CRY_NIDORINO jr z, .pokemonCry cp TX_SOUND_CRY_PIDGEOT jr z, .pokemonCry @@ -546,7 +546,7 @@ TextCommandSounds:: db TX_SOUND_GET_ITEM_2, SFX_GET_ITEM_2 db TX_SOUND_GET_KEY_ITEM, SFX_GET_KEY_ITEM db TX_SOUND_DEX_PAGE_ADDED, SFX_DEX_PAGE_ADDED - db TX_SOUND_CRY_NIDORINA, NIDORINA ; used in OakSpeech + db TX_SOUND_CRY_NIDORINO, NIDORINO ; used in OakSpeech db TX_SOUND_CRY_PIDGEOT, PIDGEOT ; used in SaffronCityText12 db TX_SOUND_CRY_DEWGONG, DEWGONG ; unused diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm index 418e839c..1e41d87e 100644 --- a/macros/scripts/text.asm +++ b/macros/scripts/text.asm @@ -127,9 +127,9 @@ MACRO sound_dex_page_added db TX_SOUND_DEX_PAGE_ADDED ENDM - const TX_SOUND_CRY_NIDORINA ; $14 -MACRO sound_cry_nidorina - db TX_SOUND_CRY_NIDORINA + const TX_SOUND_CRY_NIDORINO ; $14 +MACRO sound_cry_nidorino + db TX_SOUND_CRY_NIDORINO ENDM const TX_SOUND_CRY_PIDGEOT ; $15 diff --git a/scripts/RocketHideoutB4F.asm b/scripts/RocketHideoutB4F.asm index a65ffb54..ba579694 100644 --- a/scripts/RocketHideoutB4F.asm +++ b/scripts/RocketHideoutB4F.asm @@ -182,18 +182,18 @@ RocketHideout4BattleText4: RocketHideout4EndBattleText4: text_far _RocketHideout4EndBattleText4 - text_end + text_promptbutton + text_asm + SetEvent EVENT_ROCKET_DROPPED_LIFT_KEY + ld a, HS_ROCKET_HIDEOUT_B4F_ITEM_5 + ld [wMissableObjectIndex], a + predef ShowObject + jp TextScriptEnd RocketHideout4AfterBattleText4: text_asm ld hl, RocketHideout4Text_455ec call PrintText - CheckAndSetEvent EVENT_ROCKET_DROPPED_LIFT_KEY - jr nz, .asm_455e9 - ld a, HS_ROCKET_HIDEOUT_B4F_ITEM_5 - ld [wMissableObjectIndex], a - predef ShowObject -.asm_455e9 jp TextScriptEnd RocketHideout4Text_455ec: From 28b5d01e089943c24b50f19a27b670886d72f725 Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Wed, 28 Sep 2022 10:57:47 +0100 Subject: [PATCH 2/9] Freeing up some event space --- constants/event_constants.asm | 37 ++++++++++++++++--------------- constants/hide_show_constants.asm | 7 +++--- 2 files changed, 23 insertions(+), 21 deletions(-) diff --git a/constants/event_constants.asm b/constants/event_constants.asm index f585c874..af2d3d8b 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -582,10 +582,27 @@ const EVENT_BEAT_SS_ANNE_10_TRAINER_4 const EVENT_BEAT_SS_ANNE_10_TRAINER_5 -; Diglett's Cave events - const_next $650 +; New static encounter events + const_next $620 const_skip const EVENT_BEAT_CROCKY + const_skip 7 + const EVENT_BEAT_CACTUS + const_skip 7 + const EVENT_BEAT_MOLTRES + const_skip 7 + const EVENT_BEAT_OMEGA + +; Celadon University + salesman events + const_next $640 + const_skip + const_skip + const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_0 + const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_1 + const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_2 + const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_3 + const EVENT_BOUGHT_CUBONE + const EVENT_BOUGHT_DITTO ; Victory Road 3F events const_next $660 @@ -778,22 +795,6 @@ const_skip 8 const EVENT_BEAT_ARTICUNO -; Celadon University events - const_next $9E0 - const_skip - const_skip - const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_0 - const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_1 - const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_2 - const EVENT_BEAT_CELADON_UNIVERSITY_OUTSIDE_TRAINER_3 - const EVENT_BOUGHT_CUBONE - const EVENT_BOUGHT_DITTO - -; Cinnabar Volcano events - const_next $9F0 - const_skip - const EVENT_BEAT_MOLTRES - ; End of events const_next $A00 DEF NUM_EVENTS EQU const_value diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 6cbf6585..fc59c8ee 100644 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -237,7 +237,8 @@ DEF SHOW EQU $15 const HS_SEAFOAM_ISLANDS_B4F_BOULDER_1 ; E1 const HS_SEAFOAM_ISLANDS_B4F_BOULDER_2 ; E2 const HS_ARTICUNO ; E3 X - const HS_CROCKY ; E4 X - const HS_MEW ; E5 X - const HS_MOLTRES ; E6 X + const HS_CROCKY ; E4 X + const HS_MEW ; E5 X + const HS_MOLTRES ; E6 X + const HS_CACTUS ; E7 X DEF NUM_HS_OBJECTS EQU const_value From f9d86cdde9bbe2d5f8ce18e5a8faa20923c315d6 Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Wed, 28 Sep 2022 13:43:17 +0100 Subject: [PATCH 3/9] Town Map and PC stuff --- constants/hide_show_constants.asm | 2 +- data/events/bench_guys.asm | 1 + data/events/hidden_objects.asm | 7 +++++ data/maps/names.asm | 2 ++ data/maps/town_map_entries.asm | 6 ++++- data/maps/town_map_order.asm | 1 + data/pokemon/cries.asm | 2 +- data/text_predef_pointers.asm | 2 +- data/trainers/parties.asm | 28 +++++++++++++++----- engine/events/hidden_objects/bench_guys.asm | 2 +- gfx/town_map/town_map.rle | Bin 171 -> 170 bytes 11 files changed, 41 insertions(+), 12 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index fc59c8ee..165add45 100644 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -240,5 +240,5 @@ DEF SHOW EQU $15 const HS_CROCKY ; E4 X const HS_MEW ; E5 X const HS_MOLTRES ; E6 X - const HS_CACTUS ; E7 X + ; const HS_CACTUS ; E7 X DEF NUM_HS_OBJECTS EQU const_value diff --git a/data/events/bench_guys.asm b/data/events/bench_guys.asm index 8f3d0948..da9ba840 100644 --- a/data/events/bench_guys.asm +++ b/data/events/bench_guys.asm @@ -17,4 +17,5 @@ BenchGuyTextPointers: bench_guy_text SAFFRON_POKECENTER, SPRITE_FACING_LEFT, SaffronCityPokecenterBenchGuyText bench_guy_text MT_MOON_POKECENTER, SPRITE_FACING_LEFT, MtMoonPokecenterBenchGuyText bench_guy_text ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT, RockTunnelPokecenterBenchGuyText + bench_guy_text CELADON_UNIVERSITY_POKECENTER, SPRITE_FACING_LEFT, CeladonUniversityPokecenterBenchGuyText db -1 ; end diff --git a/data/events/hidden_objects.asm b/data/events/hidden_objects.asm index 55e33731..7c752adc 100644 --- a/data/events/hidden_objects.asm +++ b/data/events/hidden_objects.asm @@ -84,6 +84,7 @@ HiddenObjectMaps: db VERMILION_CITY db CERULEAN_CITY db ROUTE_4 + db CELADON_UNIVERSITY_POKECENTER db -1 ; end HiddenObjectPointers: @@ -173,6 +174,7 @@ HiddenObjectPointers: dw VermilionCityHiddenObjects dw CeruleanCityHiddenObjects dw Route4HiddenObjects + dw CeladonUniversityPokecenterHiddenObjects MACRO hidden_object db \2 ; y coord @@ -666,3 +668,8 @@ CeruleanCityHiddenObjects: Route4HiddenObjects: hidden_object 40, 3, GREAT_BALL, HiddenItems db -1 ; end + +CeladonUniversityPokecenterHiddenObjects: + hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText + hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC + db -1 ; end diff --git a/data/maps/names.asm b/data/maps/names.asm index 2599f0c4..97ba84cf 100644 --- a/data/maps/names.asm +++ b/data/maps/names.asm @@ -9,6 +9,7 @@ FuchsiaCityName: db "FUCHSIA CITY@" CinnabarIslandName: db "CINNABAR ISLAND@" IndigoPlateauName: db "INDIGO PLATEAU@" SaffronCityName: db "SAFFRON CITY@" +CitrineCityName: db "CITRINE CITY@" Route1Name: db "ROUTE 1@" Route2Name: db "ROUTE 2@" Route3Name: db "ROUTE 3@" @@ -43,6 +44,7 @@ PokemonLeagueName: db "#MON LEAGUE@" UndergroundPathName: db "UNDERGROUND PATH@" PokemonTowerName: db "#MON TOWER@" SeafoamIslandsName: db "SEAFOAM ISLANDS@" +CinnabarVolcanoName: db "CINNABAR VOLCANO@" VictoryRoadName: db "VICTORY ROAD@" DiglettsCaveName: db "DIGLETT's CAVE@" RocketHQName: db "ROCKET HQ@" diff --git a/data/maps/town_map_entries.asm b/data/maps/town_map_entries.asm index 78b7ff62..ac77eed4 100644 --- a/data/maps/town_map_entries.asm +++ b/data/maps/town_map_entries.asm @@ -18,7 +18,7 @@ ExternalMapEntries: external_map 2, 15, CinnabarIslandName external_map 0, 2, IndigoPlateauName external_map 10, 5, SaffronCityName - external_map 0, 0, PalletTownName ; unused + external_map 7, 10, CitrineCityName external_map 2, 10, Route1Name external_map 2, 6, Route2Name external_map 4, 3, Route3Name @@ -112,8 +112,12 @@ InternalMapEntries: internal_map SAFARI_ZONE_NORTH_REST_HOUSE, 8, 12, SafariZoneName internal_map CERULEAN_CAVE_1F, 9, 1, CeruleanCaveName internal_map NAME_RATERS_HOUSE, 14, 5, LavenderTownName + internal_map CINNABAR_VOLCANO, 3, 14, CinnabarVolcanoName internal_map CERULEAN_BADGE_HOUSE, 10, 2, CeruleanCityName internal_map ROCK_TUNNEL_B1F, 14, 3, RockTunnelName internal_map SILPH_CO_ELEVATOR, 10, 5, SilphCoName + internal_map CELADON_UNIVERSITY_OUTSIDE, 7, 4, CeladonCityName + internal_map CELADON_UNIVERSITY_INSIDE, 7, 4, CeladonCityName + internal_map CELADON_UNIVERSITY_POKECENTER, 7, 4, CeladonCityName internal_map AGATHAS_ROOM, 0, 2, PokemonLeagueName db -1 ; end diff --git a/data/maps/town_map_order.asm b/data/maps/town_map_order.asm index a082c376..6d9ab496 100644 --- a/data/maps/town_map_order.asm +++ b/data/maps/town_map_order.asm @@ -40,6 +40,7 @@ TownMapOrder: db SEAFOAM_ISLANDS_B1F db ROUTE_20 db CINNABAR_ISLAND + db CINNABAR_VOLCANO db ROUTE_21 db ROUTE_22 db ROUTE_23 diff --git a/data/pokemon/cries.asm b/data/pokemon/cries.asm index 0afa4c3b..47d347f4 100644 --- a/data/pokemon/cries.asm +++ b/data/pokemon/cries.asm @@ -212,5 +212,5 @@ CryData:: mon_cry SFX_CRY_00, $00, $00 ; Steelix mon_cry SFX_CRY_00, $00, $00 ; Blissey mon_cry SFX_CRY_1D, $E3, $1A ; Hitmontop - mon_cry SFX_CRY_1D, $08, $B1 ; Crobat + mon_cry SFX_CRY_1D, $01, $B1 ; Crobat assert_table_length NUM_POKEMON_INDEXES diff --git a/data/text_predef_pointers.asm b/data/text_predef_pointers.asm index d13e0f16..66df2108 100644 --- a/data/text_predef_pointers.asm +++ b/data/text_predef_pointers.asm @@ -30,7 +30,7 @@ TextPredefs:: add_tx_pre SaffronCityPokecenterBenchGuyText ; 18 add_tx_pre MtMoonPokecenterBenchGuyText ; 19 add_tx_pre RockTunnelPokecenterBenchGuyText ; 1A - add_tx_pre UnusedBenchGuyText1 ; 1B XXX unused + add_tx_pre CeladonUniversityPokecenterBenchGuyText1 ; 1B add_tx_pre UnusedBenchGuyText2 ; 1C XXX unused add_tx_pre UnusedBenchGuyText3 ; 1D XXX unused add_tx_pre UnusedPredefText ; 1E XXX unused diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 8aa3a341..81f64e88 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -535,11 +535,11 @@ ScientistData: GiovanniData: ; Rocket Hideout B4F - db $FF, 25, ONIX, 24, RHYHORN, 29, KANGASKHAN, 0 + db $FF, 27, RHYHORN, 26, DECILLA, 31, KANGASKHAN, 31, PERSIAN, 0 ; Silph Co. 11F - db $FF, 37, NIDORINO, 35, KANGASKHAN, 37, RHYHORN, 41, NIDOQUEEN, 0 + db $FF, 37, KANGASKHAN, 36, NIDORINO, 37, NIDOQUEEN, 40, PERSIAN, 42, RHYDON, 0 ; Viridian Gym - db $FF, 47, TRAMPEL, 46, DUGTRIO, 46, NIDOQUEEN, 48, PERSIAN, 48, NIDOKING, 50, RHYDON, 0 + db $FF, 47, TRAMPEL, 46, DUGTRIO, 46, NIDOQUEEN, 48, PERSIAN, 48, NIDOKING, 50, RHYPERIOR, 0 RocketData: ; Mt. Moon B2F @@ -638,28 +638,42 @@ CooltrainerFData: db 43, PERSIAN, NINETALES, RAICHU, 0 BrunoData: - db $FF, 54, PRIMEAPE, 55, ONIX, 55, POLIWRATH, 56, HITMONLEE, 56, PURAKKUSU, 58, MACHAMP, 0 + db $FF, 54, PRIMEAPE, 55, STEELIX, 55, POLIWRATH, 56, HITMONTOP, 56, PURAKKUSU, 58, MACHAMP, 0 BrockData: db $FF, 13, GEODUDE, 12, OMANYTE, 12, KABUTO, 12, DECILLA, 15, ONIX, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, GOLEM, 67, OMASTAR, 67, KABUTOPS, 66, KLEAVOR, 67, NIDOREIGN, 70, GYAOON, 0 MistyData: db $FF, 19, HORSEA, 18, CHEEP, 18, BLOTTLE, 19, BLASTYKE, 21, STARMIE, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, GOLDUCK, 67, PENDRAKEN, 67, JABETTA, 66, JAGG, 67, BLASTOISE, 70, STARMIE, 0 LtSurgeData: db $FF, 22, VOLTORB, 21, GAOTORA, 22, MAGNEMITE, 23, ELECTABUZZ, 24, GOROCHU, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, ELECTABUZZ, 67, GOROTORA, 67, ELECTRODE, 66, JOLTEON, 67, GOROCHU, 70, ZAPDOS, 0 ErikaData: - db $FF, 28, WEEPINBELL, 29, TANGELA, 28, CACTUS, 28, PARASECT, 31, VILEPLUME, 0 + db $FF, 28, WEEPINBELL, 28, GLOOM, 29, CACTUS, 28, PARASECT, 31, TANGROWTH, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, CACTUS, 67, VILEPLUME, 67, VICTREEBEL, 66, DEER, 67, LEAFEON, 70, TANGROWTH, 0 KogaData: - db $FF, 38, GOLBAT, 39, VENOMOTH, 38, NIDOREIGN, 39, MUK, 41, WEEZING, 0 + db $FF, 39, VENOMOTH, 38, NIDOREIGN, 39, MUK, 39, WEEZING, 41, CROBAT, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, TENTACRUEL, 67, MUK, 67, WEEZING, 66, VENOMOTH, 67, TSUBOMITTO, 70, CROBAT, 0 BlaineData: db $FF, 45, MAGMAR, 44, NINETALES, 45, RAPIDASH, 44, FLAREON, 47, ARCANINE, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, MAGMAR, 67, NINETALES, 67, RAPIDASH, 66, FLAREON, 67, ARCANINE, 70, MOLTRES, 0 SabrinaData: db $FF, 39, HYPNO, 40, MR_MIME, 39, SLOWBRO, 40, JYNX, 43, ALAKAZAM, 0 +; post-game rematch team (currently unused) + ; db $FF, 66, MR_MIME, 67, HYPNO, 67, JYNX, 66, SLOWBRO, 67, EXEGGUTOR, 70, ALAKAZAM, 0 GentlemanData: ; SS Anne 1F Rooms @@ -738,7 +752,7 @@ ChannelerData: db 33, GASTLY, GASTLY, HAUNTER, 0 AgathaData: - db $FF, 57, GENGAR, 56, GOLBAT, 56, HAUNTER, 58, CROAKOZUNA, 58, ARBOK, 60, GENGAR, 0 + db $FF, 57, CROAKOZUNA, 56, CROBAT, 56, TSUBOMITTO, 58, UMBREON, 58, ARBOK, 60, GENGAR, 0 LanceData: db $FF, 58, CROCKY, 57, GYARADOS, 57, AERODACTYL, 59, CRYITHAN, 59, CHARIZARD, 62, DRAGONITE, 0 diff --git a/engine/events/hidden_objects/bench_guys.asm b/engine/events/hidden_objects/bench_guys.asm index 55090c01..aca8b918 100644 --- a/engine/events/hidden_objects/bench_guys.asm +++ b/engine/events/hidden_objects/bench_guys.asm @@ -47,7 +47,7 @@ RockTunnelPokecenterBenchGuyText:: text_far _RockTunnelPokecenterGuyText text_end -UnusedBenchGuyText1:: +CeladonUniversityPokecenterBenchGuyText:: text_far _UnusedBenchGuyText1 text_end diff --git a/gfx/town_map/town_map.rle b/gfx/town_map/town_map.rle index f9ede0ec78bf5e198a7fed8b1d1394e9837abaa8..09356f3eb8ecdf830701f693dce379fbdc6e54d4 100644 GIT binary patch delta 105 zcmWlROAUZ95CuV6OZX%tkd^RS3_QR94yc4);j|KvfCO+*2hh{ZT;?o~a_=0Xr)TA6 z0bwI@K!1W7HUn9MRh#p76DMj7(Ntq?B2BWv({;(*&nyeH4cziXdkCNFy~m;W09ep3 AGXMYp delta 106 zcmWlQ(Gh?k3`1o!TfDaO2*r7xY*7osf$!{bU3-6$3aXRF7zt6l(!v~Rw BF9ZMp From bcef765d45c6f12fdd380ad0d1a2c049670b46ef Mon Sep 17 00:00:00 2001 From: May Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Wed, 28 Sep 2022 13:59:54 +0100 Subject: [PATCH 4/9] Fix the Ghost identification and squiggly lines from night shade, etc pretty objective fixes, need to make the rocket hideout more interesting --- engine/battle/animations.asm | 3 +++ engine/battle/core.asm | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index f79b02b0..8dc9ab45 100644 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -1878,6 +1878,8 @@ AnimationWavyScreen: ld c, $ff ld hl, WavyScreenLineOffsets .loop + ld a, [hl] ; this fixes the wavy screen - PvK + ldh [hSCX], a push hl .innerLoop call WavyScreen_SetSCX @@ -1894,6 +1896,7 @@ AnimationWavyScreen: dec c jr nz, .loop xor a + ldh [hSCX], a ; also fixing the wavy screen - PvK ldh [hWY], a call SaveScreenTilesToBuffer2 call ClearScreen diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 37829c9f..900209b8 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -1675,7 +1675,7 @@ LoadBattleMonFromParty: ld bc, 1 + NUM_STATS * 2 call CopyData call ApplyBurnAndParalysisPenaltiesToPlayer - call ApplyBadgeStatBoosts + call ApplyBadgeStatBoosts ; if this is commented out maybe it stops them entirely? test - PvK ld a, $7 ; default stat modifier ld b, NUM_STAT_MODS ld hl, wPlayerMonAttackMod @@ -2405,7 +2405,11 @@ PartyMenuOrRockOrRun: ld [wd0b5], a call GetMonHeader ld de, vFrontPic - call LoadMonFrontSprite + call IsGhostBattle ; this prevents ghosts from being identified without the silph scope - PvK + push af + call nz, LoadMonFrontSprite + pop af + call z, LoadGhostPic ; fix ends here, just make it "call LoadMonFrontSprite on line 2408 to revert. jr .enemyMonPicReloaded .doEnemyMonAnimation ld b, BANK(AnimationSubstitute) ; BANK(AnimationMinimizeMon) @@ -6285,12 +6289,15 @@ LoadEnemyMonData: ld a, [wEnemyMonSpecies2] ld [wd11e], a predef IndexToPokedex + call IsGhostBattle ; this prevents it from being identified early + jr nz, .noMarkSeen ; part of the ghost fix ld a, [wd11e] dec a ld c, a ld b, FLAG_SET ld hl, wPokedexSeen predef FlagActionPredef ; mark this mon as seen in the pokedex +.noMarkSeen ; part of the ghost fix ld hl, wEnemyMonLevel ld de, wEnemyMonUnmodifiedLevel ld bc, 1 + NUM_STATS * 2 From 23106d3417018dab056686d4c451f89f71e576cc Mon Sep 17 00:00:00 2001 From: May Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Wed, 28 Sep 2022 14:04:16 +0100 Subject: [PATCH 5/9] Add Mikons to Pokemon Tower More in-line with the general wildmon design philosophy, and adds a bit more variety overall. --- data/wild/maps/PokemonTower3F.asm | 4 ++-- data/wild/maps/PokemonTower4F.asm | 4 ++-- data/wild/maps/PokemonTower5F.asm | 4 ++-- data/wild/maps/PokemonTower6F.asm | 2 +- data/wild/maps/PokemonTower7F.asm | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/data/wild/maps/PokemonTower3F.asm b/data/wild/maps/PokemonTower3F.asm index 662240eb..fb55a2f7 100644 --- a/data/wild/maps/PokemonTower3F.asm +++ b/data/wild/maps/PokemonTower3F.asm @@ -3,8 +3,8 @@ PokemonTower3FWildMons: db 20, GASTLY db 21, GASTLY db 22, GASTLY - db 23, GASTLY - db 19, GASTLY + db 15, MIKON + db 16, MIKON db 18, VULPIX db 24, VULPIX db 20, CUBONE diff --git a/data/wild/maps/PokemonTower4F.asm b/data/wild/maps/PokemonTower4F.asm index 18a2e51e..5fef09ba 100644 --- a/data/wild/maps/PokemonTower4F.asm +++ b/data/wild/maps/PokemonTower4F.asm @@ -3,8 +3,8 @@ PokemonTower4FWildMons: db 20, GASTLY db 21, GASTLY db 22, GASTLY - db 23, GASTLY - db 19, GASTLY + db 15, MIKON + db 16, MIKON db 23, VULPIX db 25, HAUNTER db 20, CUBONE diff --git a/data/wild/maps/PokemonTower5F.asm b/data/wild/maps/PokemonTower5F.asm index cfec68b0..00ef3434 100644 --- a/data/wild/maps/PokemonTower5F.asm +++ b/data/wild/maps/PokemonTower5F.asm @@ -2,8 +2,8 @@ PokemonTower5FWildMons: def_grass_wildmons 10 ; encounter rate db 20, GASTLY db 21, GASTLY - db 22, GASTLY - db 23, GASTLY + db 15, MIKON + db 16, MIKON db 23, VULPIX db 24, VULPIX db 25, HAUNTER diff --git a/data/wild/maps/PokemonTower6F.asm b/data/wild/maps/PokemonTower6F.asm index 6dcf3ffa..d6cf9539 100644 --- a/data/wild/maps/PokemonTower6F.asm +++ b/data/wild/maps/PokemonTower6F.asm @@ -3,7 +3,7 @@ PokemonTower6FWildMons: db 21, GASTLY db 22, GASTLY db 23, GASTLY - db 24, GASTLY + db 20, MIKON db 23, VULPIX db 24, VULPIX db 26, HAUNTER diff --git a/data/wild/maps/PokemonTower7F.asm b/data/wild/maps/PokemonTower7F.asm index bf294434..64aa4ab5 100644 --- a/data/wild/maps/PokemonTower7F.asm +++ b/data/wild/maps/PokemonTower7F.asm @@ -2,7 +2,7 @@ PokemonTower7FWildMons: def_grass_wildmons 15 ; encounter rate db 21, GASTLY db 22, GASTLY - db 23, GASTLY + db 21, MIKON db 24, VULPIX db 25, VULPIX db 28, HAUNTER From 5bb215ec2322a92b7187b953f1ae054c462ecb1d Mon Sep 17 00:00:00 2001 From: May Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Wed, 28 Sep 2022 14:50:54 +0100 Subject: [PATCH 6/9] revert 2 bug fixes due to issues, add to celadon U the ghost without silph scope fix doesn't work due to a codebase change, and the night shade wiggly animation causes a bank overflow celadon university has 3 more books detailing lore from one of the old pokedex books --- data/maps/objects/CeladonUniversityInside.asm | 5 +- engine/battle/animations.asm | 6 +- engine/battle/core.asm | 6 +- scripts/CeladonUniversityInside.asm | 15 +++++ text/CeladonUniversityInside.asm | 64 ++++++++++++++++++- 5 files changed, 86 insertions(+), 10 deletions(-) diff --git a/data/maps/objects/CeladonUniversityInside.asm b/data/maps/objects/CeladonUniversityInside.asm index 35ad2bf2..483100ce 100644 --- a/data/maps/objects/CeladonUniversityInside.asm +++ b/data/maps/objects/CeladonUniversityInside.asm @@ -11,8 +11,11 @@ CeladonUniversityInside_Object: def_object_events object_event 18, 5, SPRITE_MIDDLE_AGED_MAN, STAY, ANY_DIR, 1 ; person object_event 4, 17, SPRITE_GAMEBOY_KID, STAY, DOWN, 2 ; person - object_event 3, 15, SPRITE_POKEDEX, STAY, NONE, 3 ; person + object_event 3, 15, SPRITE_PAPER, STAY, NONE, 3 ; person object_event 17, 5, SPRITE_POKEDEX, STAY, NONE, 4 ; person object_event 10, 5, SPRITE_SCIENTIST, STAY, NONE, 5 ; person + object_event 3, 8, SPRITE_PAPER, STAY, NONE, 6 ; person + object_event 5, 4, SPRITE_PAPER, STAY, NONE, 7 ; person + object_event 1, 4, SPRITE_PAPER, STAY, NONE, 8 ; person def_warps_to CELADON_UNIVERSITY_INSIDE \ No newline at end of file diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index 8dc9ab45..a85fa459 100644 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -1878,8 +1878,8 @@ AnimationWavyScreen: ld c, $ff ld hl, WavyScreenLineOffsets .loop - ld a, [hl] ; this fixes the wavy screen - PvK - ldh [hSCX], a + ; ld a, [hl] ; this fixes the wavy screen, but causes a bank overflow + ; ldh [hSCX], a push hl .innerLoop call WavyScreen_SetSCX @@ -1896,7 +1896,7 @@ AnimationWavyScreen: dec c jr nz, .loop xor a - ldh [hSCX], a ; also fixing the wavy screen - PvK + ; ldh [hSCX], a ; also fixing the wavy screen ldh [hWY], a call SaveScreenTilesToBuffer2 call ClearScreen diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 900209b8..14cc65c2 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -2405,11 +2405,7 @@ PartyMenuOrRockOrRun: ld [wd0b5], a call GetMonHeader ld de, vFrontPic - call IsGhostBattle ; this prevents ghosts from being identified without the silph scope - PvK - push af - call nz, LoadMonFrontSprite - pop af - call z, LoadGhostPic ; fix ends here, just make it "call LoadMonFrontSprite on line 2408 to revert. + call LoadMonFrontSprite ; want to implement https://github.com/pret/pokered/wiki/Bugs-and-Glitches#the-pok%C3%A9mon-behind-the-ghost-is-identified-as-seen-in-the-pok%C3%A9dex-even-if-you-didnt-use-the-silph-scope-on-it but the codebase was changed since the time of writing jr .enemyMonPicReloaded .doEnemyMonAnimation ld b, BANK(AnimationSubstitute) ; BANK(AnimationMinimizeMon) diff --git a/scripts/CeladonUniversityInside.asm b/scripts/CeladonUniversityInside.asm index c4d1e38c..c300ffe9 100644 --- a/scripts/CeladonUniversityInside.asm +++ b/scripts/CeladonUniversityInside.asm @@ -8,6 +8,9 @@ CeladonUniversityInside_TextPointers: dw CeladonUniversityInsideText3 dw CeladonUniversityInsideText4 dw CeladonUniversityInsideText5 + dw CeladonUniversityInsideBookcaseText1 + dw CeladonUniversityInsideBookcaseText2 + dw CeladonUniversityInsideBookcaseText3 CeladonUniversityInsideText1: text_far _CeladonUniversityInsideText1 @@ -44,4 +47,16 @@ CeladonUniversityInsideText5: call DisplayPokedex jp TextScriptEnd +CeladonUniversityInsideBookcaseText1: + text_far _BookcaseText1 + text_end + +CeladonUniversityInsideBookcaseText2: + text_far _BookcaseText2 + text_end + +CeladonUniversityInsideBookcaseText3: + text_far _BookcaseText3 + text_end + text_end ; unused diff --git a/text/CeladonUniversityInside.asm b/text/CeladonUniversityInside.asm index 4c032572..beb810cd 100644 --- a/text/CeladonUniversityInside.asm +++ b/text/CeladonUniversityInside.asm @@ -59,4 +59,66 @@ _CeladonUniversityInsideMagikarpText:: cont "ancestors, it" cont "can use DRAGON" cont "RAGE." - prompt \ No newline at end of file + prompt + +_BookcaseText1:: + text "The fossil record" + line "of #MON dates" + cont "back around 2" + cont "million years." + + para "However, the first" + line "proper study into" + cont "their biology was" + cont "conducted by" + cont "BARON TAJIRIN of" + cont "France in the 18th" + cont "century." + + para "At the time, only" + line "30 species were" + cont "recognised." + + done + +_BookcaseText2:: + text "In 1899, PROF." + line "WESTWOOD of Japan" + cont "released a study" + cont "on the observation" + cont "on the evolution" + cont "of PIKACHU." + + para "Japan became the" + line "global leader" + cont "in #MON study," + cont "discovering 80" + cont "#MON at the" + cont "time." + + para "As of today," + line "PROF. OAK's" + cont "efforts have" + cont "led to 150" + cont "#MON being" + cont "recognised." + + done + +_BookcaseText3:: + text "#BALL technology" + line "was discovered by" + cont "PROF. WESTWOOD," + cont "who accidentally" + cont "administered too" + cont "many drugs to a" + cont "PRIMEAPE, as part" + cont "of an experiment" + cont "to extract its" + cont "angry energy." + + para "Weakened, it" + line "curled into a" + cont "ball and fit into" + cont "his glasses case." + \ No newline at end of file From 0e770f33d7874dea2622e93eed8f2837688aab1c Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Wed, 28 Sep 2022 14:58:02 +0100 Subject: [PATCH 7/9] made an error, fixed now --- data/text_predef_pointers.asm | 2 +- data/trainers/parties.asm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/text_predef_pointers.asm b/data/text_predef_pointers.asm index 66df2108..c78df372 100644 --- a/data/text_predef_pointers.asm +++ b/data/text_predef_pointers.asm @@ -30,7 +30,7 @@ TextPredefs:: add_tx_pre SaffronCityPokecenterBenchGuyText ; 18 add_tx_pre MtMoonPokecenterBenchGuyText ; 19 add_tx_pre RockTunnelPokecenterBenchGuyText ; 1A - add_tx_pre CeladonUniversityPokecenterBenchGuyText1 ; 1B + add_tx_pre CeladonUniversityPokecenterBenchGuyText ; 1B add_tx_pre UnusedBenchGuyText2 ; 1C XXX unused add_tx_pre UnusedBenchGuyText3 ; 1D XXX unused add_tx_pre UnusedPredefText ; 1E XXX unused diff --git a/data/trainers/parties.asm b/data/trainers/parties.asm index 81f64e88..b10ce2d5 100644 --- a/data/trainers/parties.asm +++ b/data/trainers/parties.asm @@ -673,7 +673,7 @@ BlaineData: SabrinaData: db $FF, 39, HYPNO, 40, MR_MIME, 39, SLOWBRO, 40, JYNX, 43, ALAKAZAM, 0 ; post-game rematch team (currently unused) - ; db $FF, 66, MR_MIME, 67, HYPNO, 67, JYNX, 66, SLOWBRO, 67, EXEGGUTOR, 70, ALAKAZAM, 0 + ; db $FF, 66, JYNX, 67, HYPNO, 67, MR_MIME, 66, SLOWBRO, 67, EXEGGUTOR, 70, ALAKAZAM, 0 GentlemanData: ; SS Anne 1F Rooms From 04d66ade5e9c6f05aa9727fc0dce3f8a3130a333 Mon Sep 17 00:00:00 2001 From: MementoMartha Date: Wed, 28 Sep 2022 15:18:06 +0100 Subject: [PATCH 8/9] minor text fixes --- text/CeladonUniversityInside.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/text/CeladonUniversityInside.asm b/text/CeladonUniversityInside.asm index beb810cd..bebe3e8a 100644 --- a/text/CeladonUniversityInside.asm +++ b/text/CeladonUniversityInside.asm @@ -99,14 +99,14 @@ _BookcaseText2:: para "As of today," line "PROF. OAK's" cont "efforts have" - cont "led to 150" + cont "led to over 200" ;changed from 150 to 200 because we've expanded the dex :P cont "#MON being" cont "recognised." done _BookcaseText3:: - text "#BALL technology" + text "# BALL technology" line "was discovered by" cont "PROF. WESTWOOD," cont "who accidentally" From 4e9399bed5a9924efae9a8d53538a67aad79a9bc Mon Sep 17 00:00:00 2001 From: May Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Wed, 28 Sep 2022 15:58:30 +0100 Subject: [PATCH 9/9] more things for celadon u --- data/maps/objects/CeladonUniversityInside.asm | 10 +-- scan_includes.exe.stackdump | 10 +-- scripts/CeladonUniversityInside.asm | 40 +++++++---- text/CeladonUniversityInside.asm | 67 +++++++++++++------ 4 files changed, 84 insertions(+), 43 deletions(-) diff --git a/data/maps/objects/CeladonUniversityInside.asm b/data/maps/objects/CeladonUniversityInside.asm index 483100ce..1e39bae8 100644 --- a/data/maps/objects/CeladonUniversityInside.asm +++ b/data/maps/objects/CeladonUniversityInside.asm @@ -6,7 +6,8 @@ CeladonUniversityInside_Object: warp_event 11, 19, CELADON_UNIVERSITY_OUTSIDE, 1 def_bg_events - bg_event 9, 3, 6 ; Magikarp + bg_event 9, 3, 10 ; Magikarp + bg_event 19, 4, 11 ; PC Screen def_object_events object_event 18, 5, SPRITE_MIDDLE_AGED_MAN, STAY, ANY_DIR, 1 ; person @@ -14,8 +15,9 @@ CeladonUniversityInside_Object: object_event 3, 15, SPRITE_PAPER, STAY, NONE, 3 ; person object_event 17, 5, SPRITE_POKEDEX, STAY, NONE, 4 ; person object_event 10, 5, SPRITE_SCIENTIST, STAY, NONE, 5 ; person - object_event 3, 8, SPRITE_PAPER, STAY, NONE, 6 ; person - object_event 5, 4, SPRITE_PAPER, STAY, NONE, 7 ; person - object_event 1, 4, SPRITE_PAPER, STAY, NONE, 8 ; person + object_event 3, 8, SPRITE_PAPER, STAY, NONE, 6 ; Book 1 + object_event 5, 4, SPRITE_PAPER, STAY, NONE, 7 ; Book 2 + object_event 1, 4, SPRITE_PAPER, STAY, NONE, 8 ; Book 3 + object_event 20, 7, SPRITE_MONSTER, STAY, NONE, 9 ; Slowbro def_warps_to CELADON_UNIVERSITY_INSIDE \ No newline at end of file diff --git a/scan_includes.exe.stackdump b/scan_includes.exe.stackdump index 03d68360..ae8f00ad 100644 --- a/scan_includes.exe.stackdump +++ b/scan_includes.exe.stackdump @@ -1,15 +1,15 @@ Exception: STATUS_ACCESS_VIOLATION at rip=00100401246 -rax=FFFFFFF7FFF8D781 rbx=000000000000007C rcx=0000000800000010 -rdx=0000000000000000 rsi=000000080006276B rdi=0000000000000000 +rax=FFFFFFF7FFF958F1 rbx=0000000000000908 rcx=0000000800000010 +rdx=0000000000000000 rsi=000000080005A5AA rdi=0000000000000000 r8 =00000000FFFFC7C4 r9 =0000000000000000 r10=0000000100000000 -r11=0000000100401282 r12=0000000800072880 r13=0000000100403148 +r11=00000001004013C6 r12=000000080006A710 r13=0000000100403148 r14=0000000000000000 r15=0000000000000001 rbp=0000000100403156 rsp=00000000FFFFCA60 -program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 1487, thread main +program=C:\cygwin64\home\chipp\kep-hack\tools\scan_includes.exe, pid 794, thread main cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B Stack trace: Frame Function Args -00100403156 00100401246 (0080006276B, 00000000022, 00100403166, 000FFFFCB90) +00100403156 00100401246 (0080005A5AA, 00000000022, 00100403166, 000FFFFCB90) 00100403156 00100401409 (00000000000, 00100000001, 00180227860, 00100407000) 00100403178 00100401C87 (00000000020, 00000000000, 00180049B11, 00180048A70) 000FFFFCD30 00180049B7D (00000000000, 00000000000, 00000000000, 00000000000) diff --git a/scripts/CeladonUniversityInside.asm b/scripts/CeladonUniversityInside.asm index c300ffe9..ac0ca441 100644 --- a/scripts/CeladonUniversityInside.asm +++ b/scripts/CeladonUniversityInside.asm @@ -7,10 +7,12 @@ CeladonUniversityInside_TextPointers: dw CeladonUniversityInsideText2 dw CeladonUniversityInsideText3 dw CeladonUniversityInsideText4 - dw CeladonUniversityInsideText5 dw CeladonUniversityInsideBookcaseText1 dw CeladonUniversityInsideBookcaseText2 dw CeladonUniversityInsideBookcaseText3 + dw SlowbroCry + dw CeladonUniversityInsideText5 + dw CeladonUniversityPCScreen CeladonUniversityInsideText1: text_far _CeladonUniversityInsideText1 @@ -35,18 +37,6 @@ CeladonUniversityInsideText4: text_far _CeladonUniversityInsideText4 text_end -CeladonUniversityInsideMagikarpText: - text_far _CeladonUniversityInsideMagikarpText - text_end - -CeladonUniversityInsideText5: - text_asm - ld hl, CeladonUniversityInsideMagikarpText - call PrintText - ld a, MAGIKARP - call DisplayPokedex - jp TextScriptEnd - CeladonUniversityInsideBookcaseText1: text_far _BookcaseText1 text_end @@ -59,4 +49,28 @@ CeladonUniversityInsideBookcaseText3: text_far _BookcaseText3 text_end +SlowbroCry: + text_far _SlowbroCry + text_asm + ld a, SLOWBRO + call PlayCry + call WaitForSoundToFinish + jp TextScriptEnd + +CeladonUniversityInsideMagikarpText: + text_far _CeladonUniversityInsideMagikarpText + text_end + +CeladonUniversityInsideText5: + text_asm + ld hl, CeladonUniversityInsideMagikarpText + call PrintText + ld a, MAGIKARP + call DisplayPokedex + jp TextScriptEnd + +CeladonUniversityPCScreen: + text_far _ComputerScreen + text_end + text_end ; unused diff --git a/text/CeladonUniversityInside.asm b/text/CeladonUniversityInside.asm index beb810cd..7289a21b 100644 --- a/text/CeladonUniversityInside.asm +++ b/text/CeladonUniversityInside.asm @@ -5,7 +5,7 @@ _CeladonUniversityInsideText1:: para "My name is PROF." line "WESTWOOD V!" - para "My grandfather" + para "My ancestors" line "created the" cont "# BALL!" @@ -44,10 +44,6 @@ _CeladonUniversityInsideText4:: line "TRAINERs in" cont "VERMILLION!" - para "So far, nobody" - line "has come up" - cont "with a reason." - done _CeladonUniversityInsideMagikarpText:: @@ -72,8 +68,8 @@ _BookcaseText1:: cont "their biology was" cont "conducted by" cont "BARON TAJIRIN of" - cont "France in the 18th" - cont "century." + cont "France in the" + cont "18th century." para "At the time, only" line "30 species were" @@ -84,36 +80,39 @@ _BookcaseText1:: _BookcaseText2:: text "In 1899, PROF." line "WESTWOOD of Japan" - cont "released a study" - cont "on the observation" - cont "on the evolution" - cont "of PIKACHU." + cont "released a book" + cont "observing the" + cont "evolution of a" + cont "PIKACHU." para "Japan became the" - line "global leader" - cont "in #MON study," + line "global leader in" + cont "#MON study," cont "discovering 80" cont "#MON at the" cont "time." para "As of today," line "PROF. OAK's" - cont "efforts have" - cont "led to 150" - cont "#MON being" + cont "efforts have led" + cont "to 150 #MON" + cont "species being" cont "recognised." done _BookcaseText3:: - text "#BALL technology" - line "was discovered by" + text "The idea of the" + line "# BALL was" + cont "discovered by" cont "PROF. WESTWOOD," cont "who accidentally" cont "administered too" cont "many drugs to a" - cont "PRIMEAPE, as part" - cont "of an experiment" + cont "PRIMEAPE." + + para "This was part" + line "of an experiment" cont "to extract its" cont "angry energy." @@ -121,4 +120,30 @@ _BookcaseText3:: line "curled into a" cont "ball and fit into" cont "his glasses case." - \ No newline at end of file + + para "The modern #" + line "BALL was made by" + cont "researchers at" + cont "CELADON" + cont "UNIVERSITY" + cont "in 1925, and" + cont "mass production" + cont "began at SILPH" + cont "CO. soon after." + + done + +_SlowbroCry:: + text "..." + para "..." + para "..." + para "...BRO?" + + done + +_ComputerScreen:: + text "Chaotic graphs are" + line "visible on the PC" + cont "screen." + + done \ No newline at end of file