summaryrefslogtreecommitdiff
path: root/event
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-11-16 22:29:54 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2015-11-16 22:29:54 -0500
commit0b8fe4bac31c83a8164567da6d7889a18ab3eb4b (patch)
tree8a133a7ffd83ce64ad8aeb3622150823acb917d9 /event
parent042fc4bfe5f55df87712d33b6f832a591b136f1a (diff)
More specials; bank 12 mobile
Diffstat (limited to 'event')
-rwxr-xr-xevent/celebi.asm354
-rwxr-xr-xevent/photo.asm299
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