diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm index 5cd615f..c112f73 100644 --- a/constants/engine_flags.asm +++ b/constants/engine_flags.asm @@ -67,7 +67,7 @@ const ENGINE_UNLOCKED_UNOWNS_L_TO_R const ENGINE_UNLOCKED_UNOWNS_S_TO_W const ENGINE_UNLOCKED_UNOWNS_X_TO_Z - const ENGINE_UNLOCKED_UNOWNS_UNUSED_4 + const ENGINE_UNLOCKED_UNOWNS_EXCLAMATION_QUESTION const ENGINE_UNLOCKED_UNOWNS_UNUSED_5 const ENGINE_UNLOCKED_UNOWNS_UNUSED_6 const ENGINE_UNLOCKED_UNOWNS_UNUSED_7 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index af9d4b9..3033e0d 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -466,4 +466,6 @@ endc const UNOWN_X ; 24 const UNOWN_Y ; 25 const UNOWN_Z ; 26 + const UNOWN_EXCLAMATION ; 27 + const UNOWN_QUESTION ; 28 DEF NUM_UNOWN EQU const_value - 1 ; 26 diff --git a/data/pokemon/unown_pic_pointers.asm b/data/pokemon/unown_pic_pointers.asm index 3617ddf..0bfec0b 100644 --- a/data/pokemon/unown_pic_pointers.asm +++ b/data/pokemon/unown_pic_pointers.asm @@ -53,4 +53,8 @@ UnownPicPointers:: dba UnownYBackpic dba UnownZFrontpic dba UnownZBackpic + dba UnownExclamationFrontpic + dba UnownExclamationBackpic + dba UnownQuestionFrontpic + dba UnownQuestionBackpic assert_table_length NUM_UNOWN diff --git a/data/pokemon/unown_words.asm b/data/pokemon/unown_words.asm index f6acb4a..d0eda5c 100644 --- a/data/pokemon/unown_words.asm +++ b/data/pokemon/unown_words.asm @@ -35,6 +35,8 @@ UnownWords: dw UnownWordX dw UnownWordY dw UnownWordZ + dw UnownWordExclamation + dw UnownWordQuestion assert_table_length NUM_UNOWN + 1 UnownWordA: unownword "ANGRY" @@ -63,3 +65,6 @@ UnownWordW: unownword "WANT" UnownWordX: unownword "XXXXX" UnownWordY: unownword "YIELD" UnownWordZ: unownword "ZOOM" +UnownWordExclamation: unownword "(((((" ; "!!!!!" since "Z" + 1 == "(" +UnownWordQuestion: unownword ")))))" ; "?????" since "Z" + 2 == ")" +; these use the words from the hgss unown report diff --git a/data/wild/unlocked_unowns.asm b/data/wild/unlocked_unowns.asm index 4c0d838..1ed2397 100644 --- a/data/wild/unlocked_unowns.asm +++ b/data/wild/unlocked_unowns.asm @@ -13,6 +13,7 @@ UnlockedUnownLetterSets: dw .Set_L_R ; UNLOCKED_UNOWNS_L_TO_R_F dw .Set_S_W ; UNLOCKED_UNOWNS_S_TO_W_F dw .Set_X_Z ; UNLOCKED_UNOWNS_X_TO_Z_F + dw .Set_Exclamation_Question ; UNLOCKED_UNOWNS_EXCLAMATION_QUESTION assert_table_length NUM_UNLOCKED_UNOWN_SETS .Set_A_K: @@ -23,3 +24,5 @@ UnlockedUnownLetterSets: unown_set S, T, U, V, W .Set_X_Z: unown_set X, Y, Z +.Set_Exclamation_Question ; I'm not the biggest fan of this - could easily just put them with XYZ, but it seems in HGSS it was made more awkward, so let's do it this way. Could also be used to place them somewhere else - Tanoby Ruins? + unown_set EXCLAMATION, QUESTION diff --git a/engine/gfx/load_pics.asm b/engine/gfx/load_pics.asm index 9cebf5d..537d0c4 100644 --- a/engine/gfx/load_pics.asm +++ b/engine/gfx/load_pics.asm @@ -1,3 +1,5 @@ +; Modified to add ! and ? +; Used https://github.com/pret/pokecrystal/wiki/Add-a-new-Unown-form GetUnownLetter: ; Return Unown letter in wUnownLetter based on DVs at hl @@ -31,20 +33,25 @@ GetUnownLetter: srl a or b -; Divide by 10 to get 0-25 +; Divide by 9 to get 0-28 - changed to add ! and ? ldh [hDividend + 3], a xor a ldh [hDividend], a ldh [hDividend + 1], a ldh [hDividend + 2], a - ld a, $ff / NUM_UNOWN + 1 + ld a, 9 ldh [hDivisor], a ld b, 4 call Divide -; Increment to get 1-26 +; Increment to get 1-29 ldh a, [hQuotient + 3] inc a +; The valid range is 1-28, so use UNOWN_E (5) instead of 29 + cp NUM_UNOWN + 1 + jr c, .valid + ld a, UNOWN_E +.valid ld [wUnownLetter], a ret diff --git a/engine/pokedex/pokedex.asm b/engine/pokedex/pokedex.asm index 3f7eb75..096cac2 100644 --- a/engine/pokedex/pokedex.asm +++ b/engine/pokedex/pokedex.asm @@ -1005,7 +1005,7 @@ Pokedex_UnownModeEraseCursor: Pokedex_UnownModePlaceCursor: ld a, [wDexCurUnownIndex] - ld c, FIRST_UNOWN_CHAR + NUM_UNOWN ; diamond cursor + ld c, $5c ; diamond cursor Pokedex_UnownModeUpdateCursorGfx: ld e, a @@ -1468,14 +1468,14 @@ Pokedex_PlaceSearchResultsTypeStrings: Pokedex_DrawUnownModeBG: call Pokedex_FillBackgroundColor2 hlcoord 2, 1 - lb bc, 10, 13 + lb bc, 10, 14 call Pokedex_PlaceBorder hlcoord 2, 14 - lb bc, 1, 13 + lb bc, 1, 14 call Pokedex_PlaceBorder hlcoord 2, 15 ld [hl], $3d - hlcoord 16, 15 + hlcoord 17, 15 ld [hl], $3e hlcoord 6, 5 call Pokedex_PlaceFrontpicAtHL @@ -1529,14 +1529,16 @@ UnownModeLetterAndCursorCoords: dwcoord 11, 3, 11, 2 ; P dwcoord 12, 3, 12, 2 ; Q dwcoord 13, 3, 13, 2 ; R - dwcoord 14, 3, 15, 2 ; S - dwcoord 14, 4, 15, 4 ; T - dwcoord 14, 5, 15, 5 ; U - dwcoord 14, 6, 15, 6 ; V - dwcoord 14, 7, 15, 7 ; W - dwcoord 14, 8, 15, 8 ; X - dwcoord 14, 9, 15, 9 ; Y - dwcoord 14,10, 15,10 ; Z + dwcoord 14, 3, 14, 2 ; S + dwcoord 15, 3, 16, 2 ; T + dwcoord 15, 4, 16, 4 ; U + dwcoord 15, 5, 16, 5 ; V + dwcoord 15, 6, 16, 6 ; W + dwcoord 15, 7, 16, 7 ; X + dwcoord 15, 8, 16, 8 ; Y + dwcoord 15, 9, 16, 9 ; Z + dwcoord 15,10, 16,10 ; ! + dwcoord 15,11, 16,11 ; ? Pokedex_FillBackgroundColor2: hlcoord 0, 0 diff --git a/gfx/font/unown_font.png b/gfx/font/unown_font.png index 5ac70b8..b649ea0 100644 Binary files a/gfx/font/unown_font.png and b/gfx/font/unown_font.png differ diff --git a/gfx/pics.asm b/gfx/pics.asm index 54291e5..ab7acd2 100644 --- a/gfx/pics.asm +++ b/gfx/pics.asm @@ -711,7 +711,10 @@ UnownRBackpic: INCBIN "gfx/pokemon/unown_r/back.2bpp.lz" SECTION "Pics 19", ROMX -; Seems to be an accidental copy of the previous bank +UnownExclamationFrontpic: INCBIN "gfx/pokemon/unown_exclamation/front.animated.2bpp.lz" +UnownExclamationBackpic: INCBIN "gfx/pokemon/unown_exclamation/back.2bpp.lz" +UnownQuestionFrontpic: INCBIN "gfx/pokemon/unown_question/front.animated.2bpp.lz" +UnownQuestionBackpic: INCBIN "gfx/pokemon/unown_question/back.2bpp.lz" BellignanFrontpic: INCBIN "gfx/pokemon/bellignan/front.animated.2bpp.lz" BellignanBackpic: INCBIN "gfx/pokemon/bellignan/back.2bpp.lz" diff --git a/gfx/pokemon/munchlax/credit.txt b/gfx/pokemon/munchlax/credit.txt new file mode 100644 index 0000000..b34e14f --- /dev/null +++ b/gfx/pokemon/munchlax/credit.txt @@ -0,0 +1,2 @@ +Taken from here: https://github.com/pret/pokecrystal/wiki/Add-a-new-Pok%C3%A9mon +Made by SCMidna \ No newline at end of file diff --git a/gfx/pokemon/unown_anim_pointers.asm b/gfx/pokemon/unown_anim_pointers.asm index 334a5f9..208cb50 100644 --- a/gfx/pokemon/unown_anim_pointers.asm +++ b/gfx/pokemon/unown_anim_pointers.asm @@ -26,4 +26,6 @@ UnownAnimationPointers: dw UnownXAnimation dw UnownYAnimation dw UnownZAnimation + dw UnownExclamationAnimation + dw UnownQuestionAnimation assert_table_length NUM_UNOWN diff --git a/gfx/pokemon/unown_anims.asm b/gfx/pokemon/unown_anims.asm index 6aa239e..ebfe93c 100644 --- a/gfx/pokemon/unown_anims.asm +++ b/gfx/pokemon/unown_anims.asm @@ -24,3 +24,5 @@ UnownWAnimation: INCLUDE "gfx/pokemon/unown_w/anim.asm" UnownXAnimation: INCLUDE "gfx/pokemon/unown_x/anim.asm" UnownYAnimation: INCLUDE "gfx/pokemon/unown_y/anim.asm" UnownZAnimation: INCLUDE "gfx/pokemon/unown_z/anim.asm" +UnownExclamationAnimation: INCLUDE "gfx/pokemon/unown_exclamation/anim.asm" +UnownQuestionAnimation: INCLUDE "gfx/pokemon/unown_question/anim.asm" diff --git a/gfx/pokemon/unown_bitmask_pointers.asm b/gfx/pokemon/unown_bitmask_pointers.asm index bfdc3ea..0946e23 100644 --- a/gfx/pokemon/unown_bitmask_pointers.asm +++ b/gfx/pokemon/unown_bitmask_pointers.asm @@ -26,4 +26,6 @@ UnownBitmasksPointers: dw UnownXBitmasks dw UnownYBitmasks dw UnownZBitmasks + dw UnownExclamationBitmasks + dw UnownQuestionBitmasks assert_table_length NUM_UNOWN diff --git a/gfx/pokemon/unown_bitmasks.asm b/gfx/pokemon/unown_bitmasks.asm index 99604c9..fae7c49 100644 --- a/gfx/pokemon/unown_bitmasks.asm +++ b/gfx/pokemon/unown_bitmasks.asm @@ -24,3 +24,5 @@ UnownWBitmasks: INCLUDE "gfx/pokemon/unown_w/bitmask.asm" UnownXBitmasks: INCLUDE "gfx/pokemon/unown_x/bitmask.asm" UnownYBitmasks: INCLUDE "gfx/pokemon/unown_y/bitmask.asm" UnownZBitmasks: INCLUDE "gfx/pokemon/unown_z/bitmask.asm" +UnownExclamationBitmasks: INCLUDE "gfx/pokemon/unown_exclamation/bitmask.asm" +UnownQuestionBitmasks: INCLUDE "gfx/pokemon/unown_question/bitmask.asm" diff --git a/gfx/pokemon/unown_exclamation/anim.asm b/gfx/pokemon/unown_exclamation/anim.asm new file mode 100644 index 0000000..fd6c3df --- /dev/null +++ b/gfx/pokemon/unown_exclamation/anim.asm @@ -0,0 +1,9 @@ + frame 0, 09 + frame 1, 09 + frame 2, 09 + frame 3, 05 + frame 2, 05 + frame 4, 05 + frame 1, 05 + frame 1, 05 + endanim \ No newline at end of file diff --git a/gfx/pokemon/unown_exclamation/anim_idle.asm b/gfx/pokemon/unown_exclamation/anim_idle.asm new file mode 100644 index 0000000..adb95e8 --- /dev/null +++ b/gfx/pokemon/unown_exclamation/anim_idle.asm @@ -0,0 +1,6 @@ + frame 0, 18 + setrepeat 2 + frame 5, 05 + frame 0, 05 + dorepeat 2 + endanim \ No newline at end of file diff --git a/gfx/pokemon/unown_exclamation/back.png b/gfx/pokemon/unown_exclamation/back.png new file mode 100644 index 0000000..76ce7d4 Binary files /dev/null and b/gfx/pokemon/unown_exclamation/back.png differ diff --git a/gfx/pokemon/unown_exclamation/credit.txt b/gfx/pokemon/unown_exclamation/credit.txt new file mode 100644 index 0000000..eb84c56 --- /dev/null +++ b/gfx/pokemon/unown_exclamation/credit.txt @@ -0,0 +1 @@ +Taken from Rangi's Tutorial: https://github.com/pret/pokecrystal/wiki/Add-a-new-Unown-form \ No newline at end of file diff --git a/gfx/pokemon/unown_exclamation/front.png b/gfx/pokemon/unown_exclamation/front.png new file mode 100644 index 0000000..0358dc6 Binary files /dev/null and b/gfx/pokemon/unown_exclamation/front.png differ diff --git a/gfx/pokemon/unown_frame_pointers.asm b/gfx/pokemon/unown_frame_pointers.asm index 245cff0..7934e17 100644 --- a/gfx/pokemon/unown_frame_pointers.asm +++ b/gfx/pokemon/unown_frame_pointers.asm @@ -26,4 +26,6 @@ UnownFramesPointers: dw UnownXFrames dw UnownYFrames dw UnownZFrames + dw UnownExclamationFrames + dw UnownQuestionFrames assert_table_length NUM_UNOWN diff --git a/gfx/pokemon/unown_frames.asm b/gfx/pokemon/unown_frames.asm index d5ed3d6..cac4786 100644 --- a/gfx/pokemon/unown_frames.asm +++ b/gfx/pokemon/unown_frames.asm @@ -26,3 +26,5 @@ UnownWFrames: INCLUDE "gfx/pokemon/unown_w/frames.asm" UnownXFrames: INCLUDE "gfx/pokemon/unown_x/frames.asm" UnownYFrames: INCLUDE "gfx/pokemon/unown_y/frames.asm" UnownZFrames: INCLUDE "gfx/pokemon/unown_z/frames.asm" +UnownExclamationFrames: INCLUDE "gfx/pokemon/unown_exclamation/frames.asm" +UnownQuestionFrames: INCLUDE "gfx/pokemon/unown_question/frames.asm" diff --git a/gfx/pokemon/unown_idle_pointers.asm b/gfx/pokemon/unown_idle_pointers.asm index f0af7c6..29a59a3 100644 --- a/gfx/pokemon/unown_idle_pointers.asm +++ b/gfx/pokemon/unown_idle_pointers.asm @@ -26,4 +26,6 @@ UnownAnimationIdlePointers: dw UnownXAnimationIdle dw UnownYAnimationIdle dw UnownZAnimationIdle + dw UnownExclamationAnimationIdle + dw UnownQuestionAnimationIdle assert_table_length NUM_UNOWN diff --git a/gfx/pokemon/unown_idles.asm b/gfx/pokemon/unown_idles.asm index 6964a48..e020f0c 100644 --- a/gfx/pokemon/unown_idles.asm +++ b/gfx/pokemon/unown_idles.asm @@ -24,3 +24,5 @@ UnownWAnimationIdle: INCLUDE "gfx/pokemon/unown_w/anim_idle.asm" UnownXAnimationIdle: INCLUDE "gfx/pokemon/unown_x/anim_idle.asm" UnownYAnimationIdle: INCLUDE "gfx/pokemon/unown_y/anim_idle.asm" UnownZAnimationIdle: INCLUDE "gfx/pokemon/unown_z/anim_idle.asm" +UnownExclamationAnimationIdle: INCLUDE "gfx/pokemon/unown_exclamation/anim_idle.asm" +UnownQuestionAnimationIdle: INCLUDE "gfx/pokemon/unown_question/anim_idle.asm" diff --git a/gfx/pokemon/unown_question/anim.asm b/gfx/pokemon/unown_question/anim.asm new file mode 100644 index 0000000..80d1dbe --- /dev/null +++ b/gfx/pokemon/unown_question/anim.asm @@ -0,0 +1,8 @@ + frame 0, 09 + setrepeat 3 + frame 1, 05 + frame 2, 05 + frame 1, 05 + frame 0, 05 + dorepeat 2 + endanim \ No newline at end of file diff --git a/gfx/pokemon/unown_question/anim_idle.asm b/gfx/pokemon/unown_question/anim_idle.asm new file mode 100644 index 0000000..0b94de1 --- /dev/null +++ b/gfx/pokemon/unown_question/anim_idle.asm @@ -0,0 +1,6 @@ + frame 0, 13 + setrepeat 2 + frame 3, 05 + frame 0, 05 + dorepeat 2 + endanim \ No newline at end of file diff --git a/gfx/pokemon/unown_question/back.png b/gfx/pokemon/unown_question/back.png new file mode 100644 index 0000000..e727d2b Binary files /dev/null and b/gfx/pokemon/unown_question/back.png differ diff --git a/gfx/pokemon/unown_question/credit.txt b/gfx/pokemon/unown_question/credit.txt new file mode 100644 index 0000000..eb84c56 --- /dev/null +++ b/gfx/pokemon/unown_question/credit.txt @@ -0,0 +1 @@ +Taken from Rangi's Tutorial: https://github.com/pret/pokecrystal/wiki/Add-a-new-Unown-form \ No newline at end of file diff --git a/gfx/pokemon/unown_question/front.png b/gfx/pokemon/unown_question/front.png new file mode 100644 index 0000000..e368ab7 Binary files /dev/null and b/gfx/pokemon/unown_question/front.png differ diff --git a/ram/wram.asm b/ram/wram.asm index 3a04ad1..3543559 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -3328,7 +3328,7 @@ wPartyMon{d:n}Nickname:: ds MON_NAME_LENGTH endr wPartyMonNicknamesEnd:: - ds 22 + ds 20 ; modified to fit the new unown wPokedexCaught:: flag_array NUM_POKEMON wEndPokedexCaught::