diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-16 22:29:54 -0500 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2015-11-16 22:29:54 -0500 |
commit | 0b8fe4bac31c83a8164567da6d7889a18ab3eb4b (patch) | |
tree | 8a133a7ffd83ce64ad8aeb3622150823acb917d9 /event | |
parent | 042fc4bfe5f55df87712d33b6f832a591b136f1a (diff) |
More specials; bank 12 mobile
Diffstat (limited to 'event')
-rwxr-xr-x | event/celebi.asm | 354 | ||||
-rwxr-xr-x | event/photo.asm | 299 |
2 files changed, 653 insertions, 0 deletions
diff --git a/event/celebi.asm b/event/celebi.asm new file mode 100755 index 000000000..a5c3c0735 --- /dev/null +++ b/event/celebi.asm @@ -0,0 +1,354 @@ +Special_CelebiShrineEvent: ; 4989a + call DelayFrame + ld a, [VramState] + push af + xor a + ld [VramState], a + call LoadCelebiGFX + lb de, $07, $50 + ld a, SPRITE_ANIM_INDEX_2C + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $84 + ld hl, $2 + add hl, bc + ld [hl], $1f + ld hl, $f + add hl, bc + ld a, $80 + ld [hl], a + ld a, $a0 + ld [wcf64], a + ld d, $0 +.loop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .done + push bc + call Function49bae + inc d + push de + ld a, $90 + ld [wc3b5], a + callba Function8cf7a + call Function49935 + ld c, 2 + call DelayFrames + pop de + pop bc + jr .loop + +.done + pop af + ld [VramState], a + call Function498f9 + call Function49bf3 + ret +; 498f9 + +Function498f9: ; 498f9 + ld hl, Sprites + 2 + xor a + ld c, $4 +.loop + ld [hli], a +rept 3 + inc hl +endr + inc a + dec c + jr nz, .loop + ld hl, Sprites + $10 + ld bc, $90 + xor a + call ByteFill + ret +; 49912 + +LoadCelebiGFX: ; 49912 + callba Function8cf53 + ld de, SpecialCelebiLeafGFX + ld hl, VTiles1 + lb bc, BANK(SpecialCelebiLeafGFX), 4 + call Request2bpp + ld de, SpecialCelebiGFX + ld hl, VTiles1 tile $04 + lb bc, BANK(SpecialCelebiGFX), $10 + call Request2bpp + xor a + ld [wJumptableIndex], a + ret +; 49935 + +Function49935: ; 49935 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_4993e + dec [hl] + ret + +.asm_4993e + ld hl, wJumptableIndex + set 7, [hl] + ret +; 49944 + +Function49944: ; 49944 + ld hl, wcf65 + ld a, [hl] + inc [hl] + and $7 + ret nz + ld a, [hl] + and $18 + sla a + add $40 + ld d, a + ld e, $0 + ld a, SPRITE_ANIM_INDEX_18 ; fly land + call _InitSpriteAnimStruct + ld hl, $3 + add hl, bc + ld [hl], $80 + ret +; 49962 + +SpecialCelebiLeafGFX: ; 49962 +INCBIN "gfx/special/celebi/leaf.2bpp" +SpecialCelebiGFX: ; 499a2 +INCBIN "gfx/special/celebi/1.2bpp" +INCBIN "gfx/special/celebi/2.2bpp" +INCBIN "gfx/special/celebi/3.2bpp" +INCBIN "gfx/special/celebi/4.2bpp" + + +Function49aa2: ; 49aa2 (12:5aa2) + ld hl, $6 + add hl, bc + ld a, [hl] + push af + ld hl, $5 + add hl, bc + ld a, [hl] + cp $52 + jp nc, Function49b30 + ld hl, $5 + add hl, bc + inc [hl] + ld hl, $f + add hl, bc + ld a, [hl] + ld d, a + cp $3a + jr c, .asm_49ac6 + jr z, .asm_49ac6 + sub $3 + ld [hl], a +.asm_49ac6 + ld hl, $e + add hl, bc + ld a, [hl] + inc [hl] + call Function49b3b + ld hl, $6 + add hl, bc + ld [hl], a + ld d, a + ld hl, $4 + add hl, bc + add [hl] + cp $5c + jr nc, .asm_49ae2 + cp $44 + jr nc, .asm_49b0d +.asm_49ae2 + pop af + push af + cp d + jr nc, .asm_49af2 + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr c, .asm_49b05 + jr .asm_49afb +.asm_49af2 + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr nc, .asm_49b05 +.asm_49afb + ld hl, $5 + add hl, bc + ld a, [hl] + sub $2 + ld [hl], a + jr .asm_49b0d +.asm_49b05 + ld hl, $5 + add hl, bc + ld a, [hl] + add $1 + ld [hl], a +.asm_49b0d + pop af + ld hl, $4 + add hl, bc + add [hl] + cp $50 + jr c, .asm_49b26 + cp $e6 + jr nc, .asm_49b26 + ld hl, $1 + add hl, bc + ld a, $41 + call Function3b3c + jr .asm_49b2f +.asm_49b26 + ld hl, $1 + add hl, bc + ld a, $40 + call Function3b3c +.asm_49b2f + ret + +Function49b30: ; 49b30 (12:5b30) + pop af + ld hl, $1 + add hl, bc + ld a, $40 + call Function3b3c + ret + +Function49b3b: ; 49b3b (12:5b3b) + add $10 + and $3f + cp $20 + jr nc, .asm_49b48 + call Function49b52 + ld a, h + ret +.asm_49b48 + and $1f + call Function49b52 + ld a, h + xor $ff + inc a + ret + +Function49b52: ; 49b52 (12:5b52) + ld e, a + ld a, d + ld d, $0 + ld hl, Unknown_49b6e +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld hl, 0 +.asm_49b61 + srl a + jr nc, .asm_49b66 + add hl, de +.asm_49b66 + sla e + rl d + and a + jr nz, .asm_49b61 + ret +; 49b6e (12:5b6e) + +Unknown_49b6e: ; 49b6e + sine_wave $100 +; 49bae + +Function49bae: ; 49bae + push hl + push bc + push de + ld a, d + ld d, $3 + ld e, d + cp $0 + jr z, .asm_49bd0 + cp d + jr z, .asm_49bd4 + call Function49bed + cp d + jr z, .asm_49bd8 + call Function49bed + cp d + jr z, .asm_49bdc + call Function49bed + cp d + jr c, .asm_49be9 + jr .asm_49be5 + +.asm_49bd0 + ld a, $84 + jr .asm_49bde + +.asm_49bd4 + ld a, $88 + jr .asm_49bde + +.asm_49bd8 + ld a, $8c + jr .asm_49bde + +.asm_49bdc + ld a, $90 + +.asm_49bde + ld hl, $3 + add hl, bc + ld [hl], a + jr .asm_49be9 + +.asm_49be5 + pop de + ld d, $ff + push de + +.asm_49be9 + pop de + pop bc + pop hl + ret +; 49bed + +Function49bed: ; 49bed + push af + ld a, d + add e + ld d, a + pop af + ret +; 49bf3 + +Function49bf3: ; 49bf3 + ld a, BATTLETYPE_CELEBI + ld [BattleType], a + ret +; 49bf9 + +Function49bf9: ; 49bf9 + ld a, [wBattleResult] + bit 6, a + jr z, .asm_49c07 + ld a, $1 + ld [ScriptVar], a + jr .asm_49c0b + +.asm_49c07 + xor a + ld [ScriptVar], a + +.asm_49c0b + ret +; 49c0c diff --git a/event/photo.asm b/event/photo.asm new file mode 100755 index 000000000..fd603fef9 --- /dev/null +++ b/event/photo.asm @@ -0,0 +1,299 @@ +UnownPrinter: ; 16be4 + ld a, [UnownDex] + and a + ret z + + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + ld a, [Options] + push af + set NO_TEXT_SCROLL, a + ld [Options], a + call ClearBGPalettes + call ClearTileMap + + ld de, UnownDexATile + ld hl, VTiles1 tile $6f + lb bc, BANK(UnownDexBTile), 1 + call Request1bpp + + ld de, UnownDexBTile + ld hl, VTiles1 tile $75 + lb bc, BANK(UnownDexBTile), 1 + call Request1bpp + + hlcoord 0, 0 + lb bc, 3, 18 + call TextBox + + hlcoord 0, 5 + lb bc, 7, 7 + call TextBox + + hlcoord 0, 14 + lb bc, 2, 18 + call TextBox + + hlcoord 1, 2 + ld de, AlphRuinsStampString + call PlaceString + + hlcoord 1, 16 + ld de, UnownDexDoWhatString + call PlaceString + + hlcoord 10, 6 + ld de, UnownDexMenuString + call PlaceString + + xor a + ld [wJumptableIndex], a + call Function16cc8 + call WaitBGMap + + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [TempMonDVs], a + ld [TempMonDVs + 1], a + + ld b, SCGB_1C + call GetSGBLayout + call SetPalettes + +.joy_loop + call JoyTextDelay + + ld a, [hJoyPressed] + and B_BUTTON + jr nz, .pressed_b + + ld a, [hJoyPressed] + and A_BUTTON + jr nz, .pressed_a + + call Function16ca0 + call DelayFrame + jr .joy_loop + +.pressed_a + ld a, [wJumptableIndex] + push af + callba Function84560 + call RestartMapMusic + pop af + ld [wJumptableIndex], a + jr .joy_loop + +.pressed_b + pop af + ld [Options], a + pop af + ld [hInMenu], a + call ReturnToMapFromSubmenu + ret +; 16ca0 + +Function16ca0: ; 16ca0 + ld a, [hJoyLast] + and D_RIGHT + jr nz, .press_right + ld a, [hJoyLast] + and D_LEFT + jr nz, .press_left + ret + +.press_left + ld hl, wJumptableIndex + ld a, [hl] + and a + jr nz, .wrap_around_left + ld [hl], $1b + +.wrap_around_left + dec [hl] + jr .return + +.press_right + ld hl, wJumptableIndex + ld a, [hl] + cp $1a + jr c, .wrap_around_right + ld [hl], $ff + +.wrap_around_right + inc [hl] + +.return + call Function16cc8 + ret +; 16cc8 + +Function16cc8: ; 16cc8 + ld a, [wJumptableIndex] + cp 26 + jr z, Function16d20 + inc a + ld [UnownLetter], a + ld a, UNOWN + ld [CurPartySpecies], a + xor a + ld [wc2c6], a + ld de, VTiles2 + predef GetFrontpic + call Function16cff + hlcoord 1, 6 + xor a + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + ld de, VTiles2 tile $31 + callba Functione0000 + ret +; 16cff + +Function16cff: ; 16cff + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + + ld a, BANK(sScratch) + call GetSRAMBank + ld de, w6_d000 + ld hl, sScratch + ld a, [hROMBank] + ld b, a + ld c, $31 + call Get2bpp + call CloseSRAM + + pop af + ld [rSVBK], a + ret +; 16d20 + +Function16d20: ; 16d20 + hlcoord 1, 6 + lb bc, 7, 7 + call ClearBox + hlcoord 1, 9 + ld de, UnownDexVacantString + call PlaceString + xor a + call GetSRAMBank + ld hl, sScratch + ld bc, $31 tiles + xor a + call ByteFill + ld hl, VTiles2 tile $31 + ld de, sScratch + ld c, $31 + ld a, [hROMBank] + ld b, a + call Get2bpp + call CloseSRAM + ld c, 20 + call DelayFrames + ret +; 16d57 + +AlphRuinsStampString: + db " ALPH RUINS STAMP@" + +UnownDexDoWhatString: + db "Do what?@" + +UnownDexMenuString: + db "♂ PRINT" + next "♀ CANCEL" + next "← PREVIOUS" + next "→ NEXT" + db "@" + +UnownDexVacantString: + db "VACANT@" +; 16d9c + +UnownDexATile: ; 16d9c +INCBIN "gfx/unknown/016d9c.1bpp" +UnownDexBTile: ; 16da4 +INCBIN "gfx/unknown/016da4.1bpp" +; 16dac + +Function16dac: ; 16dac + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + hlcoord 7, 11 + ld a, $31 + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + ret +; 16dc7 + +PhotoStudio: ; 16dc7 + ld hl, .Text_AskWhichMon + call PrintText + callba SelectMonFromParty + jr c, .cancel + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + + ld hl, .Text_HoldStill + call PrintText + call DisableSpriteUpdates + callba Function8461a + call Function2b74 + ld a, [$ffac] + and a + jr nz, .cancel + ld hl, .Text_Presto + jr .print_text + +.cancel + ld hl, .Text_NoPicture + jr .print_text + +.egg + ld hl, .Text_Egg + +.print_text + call PrintText + ret +; 16e04 + +.Text_AskWhichMon: ; 0x16e04 + ; Which #MON should I photo- graph? + text_jump UnknownText_0x1be024 + db "@" +; 0x16e09 + +.Text_HoldStill: ; 0x16e09 + ; All righty. Hold still for a bit. + text_jump UnknownText_0x1be047 + db "@" +; 0x16e0e + +.Text_Presto: ; 0x16e0e + ; Presto! All done. Come again, OK? + text_jump UnknownText_0x1be06a + db "@" +; 0x16e13 + +.Text_NoPicture: ; 0x16e13 + ; Oh, no picture? Come again, OK? + text_jump UnknownText_0x1c0000 + db "@" +; 0x16e18 + +.Text_Egg: ; 0x16e18 + ; An EGG? My talent is worth more… + text_jump UnknownText_0x1c0021 + db "@" +; 0x16e1d |