diff --git a/SOURCE/celebieventbattleunlocked - Em/00-C000.asm b/SOURCE/celebieventbattleunlocked - Em/00-C000.asm new file mode 100644 index 0000000..d500710 --- /dev/null +++ b/SOURCE/celebieventbattleunlocked - Em/00-C000.asm @@ -0,0 +1,174 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "celebis.bin" +TicketPalette: ; 1604 + INCBIN "celebispal.bin" + +Prologue: + INCBIN "prologue-{REGION_NAME}.bin" + +DataPacket: ; 164a + INCBIN "eonticket-{REGION_NAME}.mev" + db 0,0,0 ; padding + +INCLUDE "../common/mem_struct.asm" + +SpriteData: + dw TicketSprite,TicketPalette + db $07,$07,$01,$01,$01,$01,$01 ; 64 x 64 size + +Instructions1: ; 1921 + db "Link e-Reader to Pokémon Emerald\n" + db "and use MYSTERY EVENTS by talking\n" + db "to the MYSTERY GIFT MAN\n" + db "Press the B Button to cancel.\0" + +Instructions2: ; 199d + db "Press the A Button on the Game Boy\n" + db "Advance containing Pokémon Emerald\n" + db "to begin sending the UNLOCKED\n" + db "CELEBI EVENT.\0" + +DeliveryInProcess: ; 1a0d + db "UNLOCKED EVENT delivery in Progress\0" + +TicketDelivered: ; 1a2f + db "UNLOCKED CELEBI EVENT delivered!\n" + db "\n" + db "Press the A Button to resend.\n" + db "Press the B Button to cancel.\0" + +; this function is subtly different than the one +; on the Battle e cards, for no apparent reason +TransferData: + LD_IND_HL SomeVar1 + push de + ld hl, $bbbb + LD_IND_HL Space_1 + EX_DE_HL + LD_IND_HL Space_2 + API_0C7 Space_1 + + wait $01 + pop hl + inc hl + ld b, $01 + call WordShiftRight + + LD_IND_HL SomeVar2 +.asm_1aa1 + LD_HL_IND SomeVar2 + ld a, l + or h + ret z + + ld hl, $8888 + LD_IND_HL Space_1 + ld e, $01 + +.asm_1aaf + ld a, e + cp $08 + jr nc, .asm_1ad9 + + push de + LD_HL_IND SomeVar1 + ld c, [hl] + inc hl + ld b, [hl] + inc hl + LD_IND_HL SomeVar1 + ld l, e + ld h, $00 + add hl, hl + ld de, Space_1 + add hl, de + ld [hl], c + inc hl + ld [hl], b + pop de + LD_HL_IND SomeVar2 + dec hl + LD_IND_HL SomeVar2 + ld a, l + or h + jr z, .asm_1ad9 + + inc e + jr .asm_1aaf + +.asm_1ad9 + API_0C7 Space_1 + wait $01 + jr .asm_1aa1 + +Start: ; 1ae2 + API_121 + + CreateCustomSprite SpriteHandlePtr, $80, SpriteData + SetSpritePos SpriteHandlePtr, 120, 64 + SpriteHide SpriteHandlePtr + + CreateRegion RegionHandlePtr, 30, 6, 0, 14, 0, 4 + + ld h, a + ld l, $00 + SetTextSize + + API_09B RegionHandlePtr, $0102 + SetTextColor RegionHandlePtr, 2, 0 + SetRegionColor RegionHandlePtr, 0 + SetBackgroundPalette 16, $0040, TicketPalette + + FadeIn 16 + wait 16 + + API $0C6 + + DrawText RegionHandlePtr, Instructions1, 8, 4 + API $08D + +INCLUDE "../common/wait_for_link.asm" + + SpriteShow SpriteHandlePtr + + DrawText RegionHandlePtr, Instructions2, 8, 4 + API $08D + + ld a, b + nop + +UNKNOWN_VALUE EQU $0078 +INCLUDE "../common/wait_for_ready.asm" + + DrawText RegionHandlePtr, DeliveryInProcess, 8, 4 + +DATA_TRANSFER_LENGTH EQU 6144 +INCLUDE "../common/transfer_data.asm" + ld hl, $5fff + LD_IND_HL Space_1 + API_0C7 Space_1 + + wait $80 + + SpriteHide SpriteHandlePtr + + DrawText RegionHandlePtr, TicketDelivered, 8, 4 + + API $08D + ld c, a + nop + +INCLUDE "../common/wrap_up.asm" + +INCLUDE "../common/word_shift_right.asm" + +SomeVar1: ; 1CA2 + db $FF,0 ; mark EOF +RegionHandlePtr: db 0 ; 1CA4 +SpriteHandlePtr: db 0,0 ; 1CA5 +SomeVar2: db 0,0 ; 1CA7 \ No newline at end of file diff --git a/SOURCE/celebieventbattleunlocked - Em/00-C000.raw b/SOURCE/celebieventbattleunlocked - Em/00-C000.raw new file mode 100644 index 0000000..eb53c43 Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/00-C000.raw differ diff --git a/SOURCE/celebieventbattleunlocked - Em/Makefile b/SOURCE/celebieventbattleunlocked - Em/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/celebieventbattleunlocked - Em/Makefile @@ -0,0 +1,40 @@ +all: 00-C000-EN.raw verify +verify: + md5sum --check eonticket.md5 + + +eonticket-%.tx: eonticket.asm + python ../scripts/regionalize.py $< $@ $* $* +eonticket-%.o: eonticket-%.tx + ./rgbasm -o $@ $< +eonticket-%.gbc: eonticket-%.o + ./rgblink -o $@ $< +eonticket-%.bin: eonticket-%.gbc + python ../scripts/stripgbc.py $< $@ +eonticket-%.mev: eonticket-%.bin + python ../scripts/checksum.py $< $@ + +prologue-%.tx: prologue.asm + python ../scripts/regionalize.py $< $@ $* $* +prologue-%.o: prologue-%.tx + ./rgbasm -o $@ $< +prologue-%.gbc: prologue-%.o + ./rgblink -o $@ $< +prologue-%.bin: prologue-%.gbc + python ../scripts/stripgbc.py $< $@ + +00-C000-%.tx: 00-C000.asm eonticket-%.mev prologue-%.bin + python ../scripts/ereadertext.py $< $@ $* +00-C000-%.o: 00-C000-%.tx + ./rgbasm -o $@ $< +00-C000-%.gbc: 00-C000-%.o + ./rgblink -o $@ $< +00-C000-%.z80: 00-C000-%.gbc + python ../scripts/stripgbc.py $< $@ +00-C000-%.vpk: 00-C000-%.z80 + ./nevpk -c -i $< -o $@ +00-C000-%.raw: 00-C000-%.vpk + ./nedcmake -i $< -o $@ -type 1 -region 1 + +clean: + rm -f *.tx *.o *.gbc *.z80 *.bin *.mev *.vpk *.raw \ No newline at end of file diff --git a/SOURCE/celebieventbattleunlocked - Em/Spr_3r_251.img.bin b/SOURCE/celebieventbattleunlocked - Em/Spr_3r_251.img.bin new file mode 100644 index 0000000..a9deace Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/Spr_3r_251.img.bin differ diff --git a/SOURCE/celebieventbattleunlocked - Em/Spr_3r_251.pal.bin b/SOURCE/celebieventbattleunlocked - Em/Spr_3r_251.pal.bin new file mode 100644 index 0000000..184e787 --- /dev/null +++ b/SOURCE/celebieventbattleunlocked - Em/Spr_3r_251.pal.bin @@ -0,0 +1 @@ +_F9WkSO;"$r'fY|^A \ No newline at end of file diff --git a/SOURCE/celebieventbattleunlocked - Em/celebis.bin b/SOURCE/celebieventbattleunlocked - Em/celebis.bin new file mode 100644 index 0000000..53287f3 Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/celebis.bin differ diff --git a/SOURCE/celebieventbattleunlocked - Em/celebispal.bin b/SOURCE/celebieventbattleunlocked - Em/celebispal.bin new file mode 100644 index 0000000..9ce52a2 Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/celebispal.bin differ diff --git a/SOURCE/celebieventbattleunlocked - Em/eonticket.asm b/SOURCE/celebieventbattleunlocked - Em/eonticket.asm new file mode 100644 index 0000000..c495fc1 --- /dev/null +++ b/SOURCE/celebieventbattleunlocked - Em/eonticket.asm @@ -0,0 +1,576 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandscelebibattleunlockedem.asm" + + Mystery_Event + + db CHECKSUM_CRC + dd 0 ; checksum placeholder + GBAPTR DataStart + GBAPTR DataEnd + +DataStart: + db IN_GAME_SCRIPT + db 24,11 ; petalburg gym + db 2 ; norman + GBAPTR NormanScriptStart + GBAPTR NormanScriptEnd + + db PRELOAD_SCRIPT + GBAPTR PreloadScriptStart + + db END_OF_CHUNKS + + +GoSeeYourFather: + Text_EN "A bright flash was seen in\n" + Text_EN "PETALBURG WOODS!\p" + Text_EN "Ever since, a rare Pokemon has been\n" + Text_EN "seen healing thin trees.@" + + + +NormanScriptStart: + setvirtualaddress NormanScriptStart + + callasm $02025301 + + writebytetoaddr $00, $030026F9 + + virtualmsgbox Poor + waitmsg + db $6E, $17, $8 + release + + compare LASTRESULT, 0 + + virtualgotoif 1, Changemind + + virtualgotoif 5, CelebiEvent + + + db $00 + + STRUCTURETABLEG + STRUCTURETABLEA + STRUCTURETABLEE + STRUCTURETABLEM + LOADSTOREPARTYAMOUNT + COLORNG + MEMCPYSETUP + SUBSTRUCTURECPY + CHECKSUM + ENCRYPT + CALCSTATS + CAPTURECELEBI + CELEBICOPY1 + SRFIX + + + + +CelebiEvent: + db $43 + + compare LASTRESULT, 5 + + virtualgotoif 2, NoRoom + + copyvar $800B, $800D + + writebytetoaddr $00, $02028590 + + writebytetoaddr $69, $02025398 + + writebytetoaddr $54, $02025399 + + setwildbattle $F4, $30, $00 + + callasm $020291BD ;LOAD STORE PARTY + + callasm $020291D1 ;Colo RNG + + callasm $020292B1 ;Memcopy + + callasm $020292C1 ;checksum + + callasm $020292F5 ;copy celebi over + + callasm $0202930D + + special $13F + + sound $13 + + waitstate + + playmoncry $FB, $0 + + virtualmsgbox Celebi + + waitmsg + + waitmoncry + + waitkeypress + + release + + special $145 + + playsong $0166, $0 + + waitmoncry + + callasm $020253A1 + + waitstate + + db $00 + + db $00 + + db $00 + + pause $80 + + callasm $02025301 + + writebytetoaddr $00, $030026F9 + + db $43 + + comparevar LASTRESULT, $800B + + virtualgotoif 3, FlewAway + + virtualgotoif 2, Catch + + + + +Catch: + callasm $020292D1 + killscript + + + +NoRoom: + virtualmsgbox NoSpace + waitmsg + waitkeypress + release + end + +Changemind: + virtualmsgbox Change + waitmsg + waitkeypress + release + end + + +NoRoomToGive: + virtualloadpointer PartyFull + setbyte 3 + killscript + +FlewAway: + copybyte $03005D80, $02022C34 + + copybyte $03005D81, $02022C35 + + copybyte $03005D82, $02022C36 + + copybyte $03005D83, $02022C37 + virtualmsgbox Flew + waitmsg + waitkeypress + release + writebytetoaddr $3A, $02025398 + writebytetoaddr $91, $02025399 + end + +PartyFull: + Text_EN "You need space in your party\n" + Text_EN "to play this MYSTERY EVENT!@" +Poor: + Text_EN "A Pokemon is rustling around\n" + Text_EN "in this tree.\p" + Text_EN "Would you like to investigate?@" +Change: + Text_EN "Maybe another time.@" +Flew: + Text_EN "The CELEBI flew away!@" + +NoSpace: + Text_EN "You need space in your party\n" + Text_EN "to capture CELEBI!@" + +Celebi: + Text_EN "CELEBI: Biyoo!@" + + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + db $43 + + compare LASTRESULT, 5 + + virtualgotoif 2, NoRoomToGive + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + writebytetoaddr $00, $2024744 ;Temp Celebi + writebytetoaddr $00, $2024745 + writebytetoaddr $00, $2024746 + writebytetoaddr $00, $2024747 + writebytetoaddr $91, $2024748 + writebytetoaddr $79, $2024749 + writebytetoaddr $00, $202474A + writebytetoaddr $00, $202474B + writebytetoaddr $5E, $202474C + writebytetoaddr $7A, $202474D + writebytetoaddr $97, $202474E + writebytetoaddr $80, $202474F + writebytetoaddr $FF, $2024750 + writebytetoaddr $00, $2024751 + writebytetoaddr $00, $2024752 + writebytetoaddr $00, $2024753 + writebytetoaddr $00, $2024754 + writebytetoaddr $00, $2024755 + writebytetoaddr $01, $2024756 + writebytetoaddr $02, $2024757 + writebytetoaddr $51, $2024758 + writebytetoaddr $8A, $2024759 + writebytetoaddr $64, $202475A + writebytetoaddr $FF, $202475B + writebytetoaddr $00, $202475C + writebytetoaddr $00, $202475D + writebytetoaddr $00, $202475E + writebytetoaddr $00, $202475F + writebytetoaddr $CB, $2024760 + writebytetoaddr $18, $2024761 + writebytetoaddr $00, $2024762 + writebytetoaddr $00, $2024763 + writebytetoaddr $FB, $2024764 + writebytetoaddr $00, $2024765 + writebytetoaddr $00, $2024766 + writebytetoaddr $00, $2024767 + writebytetoaddr $30, $2024768 + writebytetoaddr $02, $2024769 + writebytetoaddr $00, $202476A + writebytetoaddr $00, $202476B + writebytetoaddr $00, $202476C + writebytetoaddr $46, $202476D + writebytetoaddr $00, $202476E + writebytetoaddr $00, $202476F + writebytetoaddr $5D, $2024770 + writebytetoaddr $00, $2024771 + writebytetoaddr $69, $2024772 + writebytetoaddr $00, $2024773 + writebytetoaddr $D7, $2024774 + writebytetoaddr $00, $2024775 + writebytetoaddr $DB, $2024776 + writebytetoaddr $00, $2024777 + writebytetoaddr $19, $2024778 + writebytetoaddr $14, $2024779 + writebytetoaddr $05, $202477A + writebytetoaddr $19, $202477B + writebytetoaddr $00, $202477C + writebytetoaddr $00, $202477D + writebytetoaddr $00, $202477E + writebytetoaddr $00, $202477F + writebytetoaddr $00, $2024780 + writebytetoaddr $00, $2024781 + writebytetoaddr $00, $2024782 + writebytetoaddr $00, $2024783 + writebytetoaddr $00, $2024784 + writebytetoaddr $00, $2024785 + writebytetoaddr $00, $2024786 + writebytetoaddr $00, $2024787 + writebytetoaddr $00, $2024788 + writebytetoaddr $FF, $2024789 + writebytetoaddr $0A, $202478A + writebytetoaddr $A1, $202478B + writebytetoaddr $00, $202478C + writebytetoaddr $00, $202478D + writebytetoaddr $00, $202478E + writebytetoaddr $00, $202478F + writebytetoaddr $00, $2024790 + writebytetoaddr $00, $2024791 + writebytetoaddr $00, $2024792 + writebytetoaddr $00, $2024793 + + writebytetoaddr $00, $20248FB ;MemCopy CallASM + writebytetoaddr $04, $20248FC ;This memory copies from enemy ram to Battle-E Location + writebytetoaddr $4D, $20248FD + writebytetoaddr $2D, $20248FE + writebytetoaddr $68, $20248FF + writebytetoaddr $04, $2024900 + writebytetoaddr $48, $2024901 + writebytetoaddr $06, $2024902 + writebytetoaddr $49, $2024903 + writebytetoaddr $04, $2024904 + writebytetoaddr $4A, $2024905 + writebytetoaddr $06, $2024906 + writebytetoaddr $4E, $2024907 + writebytetoaddr $AD, $2024908 + writebytetoaddr $1B, $2024909 + writebytetoaddr $29, $202490A + writebytetoaddr $44, $202490B + writebytetoaddr $0B, $202490C + writebytetoaddr $DF, $202490D + writebytetoaddr $70, $202490E + writebytetoaddr $47, $202490F + writebytetoaddr $90, $2024910 + writebytetoaddr $5D, $2024911 + writebytetoaddr $00, $2024912 + writebytetoaddr $03, $2024913 + writebytetoaddr $44, $2024914 + writebytetoaddr $47, $2024915 + writebytetoaddr $02, $2024916 + writebytetoaddr $02, $2024917 + writebytetoaddr $2D, $2024918 + writebytetoaddr $00, $2024919 + writebytetoaddr $00, $202491A + writebytetoaddr $04, $202491B + writebytetoaddr $40, $202491C + writebytetoaddr $56, $202491D + writebytetoaddr $02, $202491E + writebytetoaddr $02, $202491F + writebytetoaddr $54, $2024920 + writebytetoaddr $4A, $2024921 + writebytetoaddr $02, $2024922 + writebytetoaddr $02, $2024923 + + callasm $20248FD ;Do Memory Copy + + writebytetoaddr $00, $2024744 ;ASLR Compensation code. Forces ASLR to be lowes value code or w/e. + writebytetoaddr $00, $2024745 + writebytetoaddr $17, $2024746 + writebytetoaddr $4E, $2024747 + writebytetoaddr $30, $2024748 + writebytetoaddr $68, $2024749 + writebytetoaddr $17, $202474A + writebytetoaddr $49, $202474B + writebytetoaddr $08, $202474C + writebytetoaddr $60, $202474D + writebytetoaddr $17, $202474E + writebytetoaddr $48, $202474F + writebytetoaddr $00, $2024750 + writebytetoaddr $68, $2024751 + writebytetoaddr $17, $2024752 + writebytetoaddr $49, $2024753 + writebytetoaddr $47, $2024754 + writebytetoaddr $1A, $2024755 + writebytetoaddr $17, $2024756 + writebytetoaddr $48, $2024757 + writebytetoaddr $17, $2024758 + writebytetoaddr $49, $2024759 + writebytetoaddr $01, $202475A + writebytetoaddr $60, $202475B + writebytetoaddr $17, $202475C + writebytetoaddr $4A, $202475D + writebytetoaddr $02, $202475E + writebytetoaddr $23, $202475F + writebytetoaddr $13, $2024760 + writebytetoaddr $70, $2024761 + writebytetoaddr $17, $2024762 + writebytetoaddr $48, $2024763 + writebytetoaddr $38, $2024764 + writebytetoaddr $44, $2024765 + writebytetoaddr $01, $2024766 + writebytetoaddr $78, $2024767 + writebytetoaddr $01, $2024768 + writebytetoaddr $30, $2024769 + writebytetoaddr $02, $202476A + writebytetoaddr $78, $202476B + writebytetoaddr $01, $202476C + writebytetoaddr $30, $202476D + writebytetoaddr $03, $202476E + writebytetoaddr $78, $202476F + writebytetoaddr $01, $2024770 + writebytetoaddr $30, $2024771 + writebytetoaddr $04, $2024772 + writebytetoaddr $78, $2024773 + writebytetoaddr $11, $2024774 + writebytetoaddr $44, $2024775 + writebytetoaddr $19, $2024776 + writebytetoaddr $44, $2024777 + writebytetoaddr $21, $2024778 + writebytetoaddr $44, $2024779 + writebytetoaddr $49, $202477A + writebytetoaddr $42, $202477B + writebytetoaddr $11, $202477C + writebytetoaddr $4A, $202477D + writebytetoaddr $12, $202477E + writebytetoaddr $4B, $202477F + writebytetoaddr $09, $2024780 + writebytetoaddr $04, $2024781 + writebytetoaddr $51, $2024782 + writebytetoaddr $43, $2024783 + writebytetoaddr $19, $2024784 + writebytetoaddr $44, $2024785 + writebytetoaddr $31, $2024786 + writebytetoaddr $60, $2024787 + writebytetoaddr $00, $2024788 + writebytetoaddr $00, $2024789 + writebytetoaddr $00, $202478A + writebytetoaddr $00, $202478B + writebytetoaddr $14, $202478C + writebytetoaddr $4A, $202478D + writebytetoaddr $0F, $202478E + writebytetoaddr $4B, $202478F + writebytetoaddr $00, $2024790 + writebytetoaddr $00, $2024791 + writebytetoaddr $0F, $2024792 + writebytetoaddr $48, $2024793 + writebytetoaddr $0F, $2024794 + writebytetoaddr $49, $2024795 + writebytetoaddr $01, $2024796 + writebytetoaddr $60, $2024797 + writebytetoaddr $0F, $2024798 + writebytetoaddr $48, $2024799 + writebytetoaddr $10, $202479A + writebytetoaddr $49, $202479B + writebytetoaddr $01, $202479C + writebytetoaddr $60, $202479D + writebytetoaddr $00, $202479E + writebytetoaddr $00, $202479F + writebytetoaddr $13, $20247A0 + writebytetoaddr $60, $20247A1 + writebytetoaddr $70, $20247A2 + writebytetoaddr $47, $20247A3 + writebytetoaddr $80, $20247A4 + writebytetoaddr $5D, $20247A5 + writebytetoaddr $00, $20247A6 + writebytetoaddr $03, $20247A7 + writebytetoaddr $34, $20247A8 + writebytetoaddr $2C, $20247A9 + writebytetoaddr $02, $20247AA + writebytetoaddr $02, $20247AB + writebytetoaddr $90, $20247AC + writebytetoaddr $5D, $20247AD + writebytetoaddr $00, $20247AE + writebytetoaddr $03, $20247AF + writebytetoaddr $54, $20247B0 + writebytetoaddr $4A, $20247B1 + writebytetoaddr $02, $20247B2 + writebytetoaddr $02, $20247B3 + writebytetoaddr $EC, $20247B4 + writebytetoaddr $2F, $20247B5 + writebytetoaddr $02, $20247B6 + writebytetoaddr $02, $20247B7 + writebytetoaddr $02, $20247B8 + writebytetoaddr $00, $20247B9 + writebytetoaddr $3E, $20247BA + writebytetoaddr $01, $20247BB + writebytetoaddr $F9, $20247BC + writebytetoaddr $26, $20247BD + writebytetoaddr $00, $20247BE + writebytetoaddr $03, $20247BF + writebytetoaddr $5E, $20247C0 + writebytetoaddr $4A, $20247C1 + writebytetoaddr $02, $20247C2 + writebytetoaddr $02, $20247C3 + writebytetoaddr $65, $20247C4 + writebytetoaddr $EB, $20247C5 + writebytetoaddr $B9, $20247C6 + writebytetoaddr $EE, $20247C7 + writebytetoaddr $A1, $20247C8 + writebytetoaddr $61, $20247C9 + writebytetoaddr $35, $20247CA + writebytetoaddr $0A, $20247CB + writebytetoaddr $B1, $20247CC + writebytetoaddr $61, $20247CD + writebytetoaddr $08, $20247CE + writebytetoaddr $08, $20247CF + writebytetoaddr $C4, $20247D0 + writebytetoaddr $75, $20247D1 + writebytetoaddr $03, $20247D2 + writebytetoaddr $02, $20247D3 + writebytetoaddr $69, $20247D4 + writebytetoaddr $6F, $20247D5 + writebytetoaddr $FD, $20247D6 + writebytetoaddr $FF, $20247D7 + writebytetoaddr $48, $20247D8 + writebytetoaddr $0E, $20247D9 + writebytetoaddr $00, $20247DA + writebytetoaddr $03, $20247DB + writebytetoaddr $3A, $20247DC + writebytetoaddr $91, $20247DD + writebytetoaddr $02, $20247DE + writebytetoaddr $02, $20247DF + writebytetoaddr $C4, $20247E0 + writebytetoaddr $22, $20247E1 + writebytetoaddr $00, $20247E2 + writebytetoaddr $03, $20247E3 + + writebytetoaddr $28, $2024918 + writebytetoaddr $00, $202491C + writebytetoaddr $53, $202491D + + callasm $20248FD ;Do Memory Copy Again + + writebytetoaddr $03, $2024744 ;Memory copy for second half of script + writebytetoaddr $48, $2024745 + writebytetoaddr $05, $2024746 + writebytetoaddr $49, $2024747 + writebytetoaddr $03, $2024748 + writebytetoaddr $4A, $2024749 + writebytetoaddr $0B, $202474A + writebytetoaddr $DF, $202474B + writebytetoaddr $04, $202474C + writebytetoaddr $48, $202474D + writebytetoaddr $05, $202474E + writebytetoaddr $49, $202474F + writebytetoaddr $08, $2024750 + writebytetoaddr $60, $2024751 + writebytetoaddr $70, $2024752 + writebytetoaddr $47, $2024753 + writebytetoaddr $88, $2024754 + writebytetoaddr $93, $2024755 + writebytetoaddr $02, $2024756 + writebytetoaddr $02, $2024757 + writebytetoaddr $54, $2024758 + writebytetoaddr $00, $2024759 + writebytetoaddr $00, $202475A + writebytetoaddr $04, $202475B + writebytetoaddr $60, $202475C + writebytetoaddr $54, $202475D + writebytetoaddr $02, $202475E + writebytetoaddr $02, $202475F + writebytetoaddr $60, $2024760 + writebytetoaddr $54, $2024761 + writebytetoaddr $02, $2024762 + writebytetoaddr $02, $2024763 + writebytetoaddr $48, $2024764 + writebytetoaddr $0E, $2024765 + writebytetoaddr $00, $2024766 + writebytetoaddr $03, $2024767 + + + writebytetoaddr $09, $2024918 + writebytetoaddr $A0, $202491C + writebytetoaddr $53, $202491D + + callasm $20248FD ;Do Memory Copy Again + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/celebieventbattleunlocked - Em/eonticket.md5 b/SOURCE/celebieventbattleunlocked - Em/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/celebieventbattleunlocked - Em/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/celebieventbattleunlocked - Em/nedclib.dll b/SOURCE/celebieventbattleunlocked - Em/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/nedclib.dll differ diff --git a/SOURCE/celebieventbattleunlocked - Em/nedcmake b/SOURCE/celebieventbattleunlocked - Em/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/nedcmake differ diff --git a/SOURCE/celebieventbattleunlocked - Em/nevpk b/SOURCE/celebieventbattleunlocked - Em/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/nevpk differ diff --git a/SOURCE/celebieventbattleunlocked - Em/prologue.asm b/SOURCE/celebieventbattleunlocked - Em/prologue.asm new file mode 100644 index 0000000..0db33e1 --- /dev/null +++ b/SOURCE/celebieventbattleunlocked - Em/prologue.asm @@ -0,0 +1,15 @@ +INCLUDE "../macros.asm" +SECTION "prologue", ROM0[$100] + + db "GameFreak inc." + db 0,0,0,0,0,0 + dd 0 + Text "e reader" ; no string terminator + db 0,0,0,0,$01,$55 + db 0,0,0,0 + db REGION + db 0 + db "GameFreak inc." + db 0,0 + + EOF \ No newline at end of file diff --git a/SOURCE/celebieventbattleunlocked - Em/rgbasm b/SOURCE/celebieventbattleunlocked - Em/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/rgbasm differ diff --git a/SOURCE/celebieventbattleunlocked - Em/rgblink b/SOURCE/celebieventbattleunlocked - Em/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/celebieventbattleunlocked - Em/rgblink differ diff --git a/SOURCE/celebieventbattleunlocked - Em/shiny.gbapal b/SOURCE/celebieventbattleunlocked - Em/shiny.gbapal new file mode 100644 index 0000000..759b284 --- /dev/null +++ b/SOURCE/celebieventbattleunlocked - Em/shiny.gbapal @@ -0,0 +1 @@ +9Wss?cNA wwM/"El^A \ No newline at end of file diff --git a/SOURCE/jirachievent - Em/00-C000.asm b/SOURCE/jirachievent - Em/00-C000.asm new file mode 100644 index 0000000..349be36 --- /dev/null +++ b/SOURCE/jirachievent - Em/00-C000.asm @@ -0,0 +1,171 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + + +TicketPalette: ; 1604 + INCBIN "jirachi.pal.bin" + +Prologue: + INCBIN "prologue-{REGION_NAME}.bin" + +DataPacket: ; 164a + INCBIN "eonticket-{REGION_NAME}.mev" + db 0,0,0 ; padding + +INCLUDE "../common/mem_struct.asm" + +SpriteData: + dw TicketPalette + db $00,$00,$01,$01,$01,$01,$01 ; + +Instructions1: ; 1921 + db "Link e-Reader to Pokémon Emerald\n" + db "and activate Mystery Event.\n" + db "Press the B Button to cancel.\0" + +Instructions2: ; 199d + db "Press the A Button on the Game Boy\n" + db "Advance containing Pokémon Emerald\n" + db "to begin sending the JIRACHI EVENT.\0" + +DeliveryInProcess: ; 1a0d + db "JIRACHI EVENT delivery in Progress...\0" + +TicketDelivered: ; 1a2f + db "JIRACHI EVENT delivered!\n" + db "\n" + db "Press the A Button to resend.\n" + db "Press the B Button to cancel.\0" + +; this function is subtly different than the one +; on the Battle e cards, for no apparent reason +TransferData: + LD_IND_HL SomeVar1 + push de + ld hl, $bbbb + LD_IND_HL Space_1 + EX_DE_HL + LD_IND_HL Space_2 + API_0C7 Space_1 + + wait $01 + pop hl + inc hl + ld b, $01 + call WordShiftRight + + LD_IND_HL SomeVar2 +.asm_1aa1 + LD_HL_IND SomeVar2 + ld a, l + or h + ret z + + ld hl, $8888 + LD_IND_HL Space_1 + ld e, $01 + +.asm_1aaf + ld a, e + cp $08 + jr nc, .asm_1ad9 + + push de + LD_HL_IND SomeVar1 + ld c, [hl] + inc hl + ld b, [hl] + inc hl + LD_IND_HL SomeVar1 + ld l, e + ld h, $00 + add hl, hl + ld de, Space_1 + add hl, de + ld [hl], c + inc hl + ld [hl], b + pop de + LD_HL_IND SomeVar2 + dec hl + LD_IND_HL SomeVar2 + ld a, l + or h + jr z, .asm_1ad9 + + inc e + jr .asm_1aaf + +.asm_1ad9 + API_0C7 Space_1 + wait $01 + jr .asm_1aa1 + +Start: ; 1ae2 + API_121 + + CreateCustomSprite SpriteHandlePtr, $80, SpriteData + SetSpritePos SpriteHandlePtr, 120, 64 + SpriteHide SpriteHandlePtr + + CreateRegion RegionHandlePtr, 30, 6, 0, 14, 0, 4 + + ld h, a + ld l, $00 + SetTextSize + + API_09B RegionHandlePtr, $0102 + SetTextColor RegionHandlePtr, 2, 0 + SetRegionColor RegionHandlePtr, 0 + SetBackgroundPalette 16, $0040, TicketPalette + + FadeIn 16 + wait 16 + + API $0C6 + + DrawText RegionHandlePtr, Instructions1, 8, 4 + API $08D + +INCLUDE "../common/wait_for_link.asm" + + SpriteShow SpriteHandlePtr + + DrawText RegionHandlePtr, Instructions2, 8, 4 + API $08D + + ld a, b + nop + +UNKNOWN_VALUE EQU $0078 +INCLUDE "../common/wait_for_ready.asm" + + DrawText RegionHandlePtr, DeliveryInProcess, 8, 4 + +DATA_TRANSFER_LENGTH EQU 6144 +INCLUDE "../common/transfer_data.asm" + ld hl, $5fff + LD_IND_HL Space_1 + API_0C7 Space_1 + + wait $80 + + SpriteHide SpriteHandlePtr + + DrawText RegionHandlePtr, TicketDelivered, 8, 4 + + API $08D + ld c, a + nop + +INCLUDE "../common/wrap_up.asm" + +INCLUDE "../common/word_shift_right.asm" + +SomeVar1: ; 1CA2 + db $FF,0 ; mark EOF +RegionHandlePtr: db 0 ; 1CA4 +SpriteHandlePtr: db 0,0 ; 1CA5 +SomeVar2: db 0,0 ; 1CA7 \ No newline at end of file diff --git a/SOURCE/jirachievent - Em/Makefile b/SOURCE/jirachievent - Em/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/jirachievent - Em/Makefile @@ -0,0 +1,40 @@ +all: 00-C000-EN.raw verify +verify: + md5sum --check eonticket.md5 + + +eonticket-%.tx: eonticket.asm + python ../scripts/regionalize.py $< $@ $* $* +eonticket-%.o: eonticket-%.tx + ./rgbasm -o $@ $< +eonticket-%.gbc: eonticket-%.o + ./rgblink -o $@ $< +eonticket-%.bin: eonticket-%.gbc + python ../scripts/stripgbc.py $< $@ +eonticket-%.mev: eonticket-%.bin + python ../scripts/checksum.py $< $@ + +prologue-%.tx: prologue.asm + python ../scripts/regionalize.py $< $@ $* $* +prologue-%.o: prologue-%.tx + ./rgbasm -o $@ $< +prologue-%.gbc: prologue-%.o + ./rgblink -o $@ $< +prologue-%.bin: prologue-%.gbc + python ../scripts/stripgbc.py $< $@ + +00-C000-%.tx: 00-C000.asm eonticket-%.mev prologue-%.bin + python ../scripts/ereadertext.py $< $@ $* +00-C000-%.o: 00-C000-%.tx + ./rgbasm -o $@ $< +00-C000-%.gbc: 00-C000-%.o + ./rgblink -o $@ $< +00-C000-%.z80: 00-C000-%.gbc + python ../scripts/stripgbc.py $< $@ +00-C000-%.vpk: 00-C000-%.z80 + ./nevpk -c -i $< -o $@ +00-C000-%.raw: 00-C000-%.vpk + ./nedcmake -i $< -o $@ -type 1 -region 1 + +clean: + rm -f *.tx *.o *.gbc *.z80 *.bin *.mev *.vpk *.raw \ No newline at end of file diff --git a/SOURCE/jirachievent - Em/eonticket.asm b/SOURCE/jirachievent - Em/eonticket.asm new file mode 100644 index 0000000..dee0462 --- /dev/null +++ b/SOURCE/jirachievent - Em/eonticket.asm @@ -0,0 +1,726 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsjirachibattleemerald.asm" + + Mystery_Event + + db CHECKSUM_CRC + dd 0 ; checksum placeholder + GBAPTR DataStart + GBAPTR DataEnd + +DataStart: + db IN_GAME_SCRIPT + db 0,6 ; mossdeep + db 8 ; girl near rock + GBAPTR NormanScriptStart + GBAPTR NormanScriptEnd + + + db PRELOAD_SCRIPT + GBAPTR PreloadScriptStart + + db END_OF_CHUNKS + + +GoSeeYourFather: + Text_EN "The WHITE ROCK in MOSSDEEP has\n" + Text_EN "been glowing...@" + + + + +NormanScriptStart: + setvirtualaddress NormanScriptStart + + +Start: + callasm $02025301 + + writebytetoaddr $00, $030026F9 + + db $5A + + virtualmsgbox Wish + + waitmsg + + db $6E, $17, $8 + + release + + compare LASTRESULT, 0 + + virtualgotoif 5, checkspot + +Changemind: + virtualmsgbox Change + waitmsg + waitkeypress + release + end + db $00 + + CHANNELRNG + STORAGETABLE + TEMPJIRACHI2 + STRUCTURETABLEG + MEMCOPYJIRACHI + RETURN + MOVEPLAYERDOWNRIGHT + MOVEPLAYERRIGHTFACEUP + MOVEPLAYERQUESTION +checkspot: + + virtualmsgbox Youdo + + waitmsg + + waitkeypress + + release + + db $43 + + compare LASTRESULT, 5 + + virtualgotoif 2, NoRoom + + copyvar $800B, $800D + + getplayerpos $8000, $8001 + + compare $8000, $37 + + virtualgotoif 5, Movement1 + +Movement0: + + + applymovement $FF, $020292E4 + + waitmovement $FF + +Movement1: + + + + applymovement $FF, $020292E7 + +battle: + waitmovement $FF + + pause $10 + + special $13D + + sound $83 + + pause $10 + + pause $10 + + applymovement $FF, $020292EC + + waitmovement $FF + + sound $15 + + writebytetoaddr $00, $02028590 + + writebytetoaddr $69, $02025398 + + writebytetoaddr $54, $02025399 + + setwildbattle $F4, $30, $00 + + virtualmsgbox Pokemon + + waitmsg + + waitkeypress + + release + + playmoncry $199, $0 + + virtualmsgbox Jirachi + + waitmsg + + waitkeypress + + release + + callasm $02029161 + + callasm $0202518D + + waitmoncry + + special $145 + + playsong $01CE, $0 + + db $00 + + callasm $020253A1 + + waitstate + + db $00 + + db $00 + + db $00 + + pause $80 + + callasm $02025301 + + writebytetoaddr $00, $030026F9 + + db $43 + + comparevar LASTRESULT, $800B + + virtualgotoif 3, FlewAway + + +Catch: + callasm $020251C1 + killscript + + +NoRoom: + virtualmsgbox NoSpace + waitmsg + waitkeypress + release + end + + +FlewAway: + copybyte $03005D80, $02022C34 + + copybyte $03005D81, $02022C35 + + copybyte $03005D82, $02022C36 + + copybyte $03005D83, $02022C37 + + virtualmsgbox Flew + waitmsg + waitkeypress + release + writebytetoaddr $3A, $02025398 + writebytetoaddr $91, $02025399 + end + +Wish: + Text_EN "Do you have a wish?@" + +Youdo: + Text_EN "You do? Then leave a wish tag\n" + Text_EN "on the WHITE ROCK!@" +Change: + Text_EN "Really? I thought everyone had\n" + Text_EN "a wish.@" +Flew: + Text_EN "JIRACHI ran away!@" +NoSpace: + Text_EN "You can’t wish with a\n" + Text_EN "full party!@" + +Pokemon: + Text_EN "Huh? A POKéMON?@" +Jirachi: + Text_EN "Wiish!@" + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + writebytetoaddr $00, $2024744 ;Temp Jirachi + writebytetoaddr $00, $2024745 + writebytetoaddr $00, $2024746 + writebytetoaddr $00, $2024747 + writebytetoaddr $BA, $2024748 + writebytetoaddr $9C, $2024749 + writebytetoaddr $00, $202474A + writebytetoaddr $00, $202474B + writebytetoaddr $C4, $202474C + writebytetoaddr $C3, $202474D + writebytetoaddr $CC, $202474E + writebytetoaddr $BB, $202474F + writebytetoaddr $BD, $2024750 + writebytetoaddr $C2, $2024751 + writebytetoaddr $C3, $2024752 + writebytetoaddr $FF, $2024753 + writebytetoaddr $00, $2024754 + writebytetoaddr $00, $2024755 + writebytetoaddr $02, $2024756 + writebytetoaddr $02, $2024757 + writebytetoaddr $BD, $2024758 + writebytetoaddr $C2, $2024759 + writebytetoaddr $BB, $202475A + writebytetoaddr $C8, $202475B + writebytetoaddr $C8, $202475C + writebytetoaddr $BF, $202475D + writebytetoaddr $C6, $202475E + writebytetoaddr $00, $202475F + writebytetoaddr $DB, $2024760 + writebytetoaddr $A0, $2024761 + writebytetoaddr $00, $2024762 + writebytetoaddr $00, $2024763 + writebytetoaddr $99, $2024764 + writebytetoaddr $01, $2024765 + writebytetoaddr $00, $2024766 + writebytetoaddr $00, $2024767 + writebytetoaddr $5A, $2024768 + writebytetoaddr $62, $2024769 + writebytetoaddr $02, $202476A + writebytetoaddr $00, $202476B + writebytetoaddr $00, $202476C + writebytetoaddr $64, $202476D + writebytetoaddr $00, $202476E + writebytetoaddr $00, $202476F + writebytetoaddr $11, $2024770 + writebytetoaddr $01, $2024771 + writebytetoaddr $5E, $2024772 + writebytetoaddr $00, $2024773 + writebytetoaddr $07, $2024774 + writebytetoaddr $00, $2024775 + writebytetoaddr $5B, $2024776 + writebytetoaddr $01, $2024777 + writebytetoaddr $0A, $2024778 + writebytetoaddr $0A, $2024779 + writebytetoaddr $0F, $202477A + writebytetoaddr $14, $202477B + writebytetoaddr $00, $202477C + writebytetoaddr $00, $202477D + writebytetoaddr $00, $202477E + writebytetoaddr $00, $202477F + writebytetoaddr $00, $2024780 + writebytetoaddr $00, $2024781 + writebytetoaddr $00, $2024782 + writebytetoaddr $00, $2024783 + writebytetoaddr $00, $2024784 + writebytetoaddr $00, $2024785 + writebytetoaddr $00, $2024786 + writebytetoaddr $00, $2024787 + writebytetoaddr $00, $2024788 + writebytetoaddr $FF, $2024789 + writebytetoaddr $80, $202478A + writebytetoaddr $20, $202478B + writebytetoaddr $00, $202478C + writebytetoaddr $00, $202478D + writebytetoaddr $00, $202478E + writebytetoaddr $00, $202478F + writebytetoaddr $00, $2024790 + writebytetoaddr $00, $2024791 + writebytetoaddr $00, $2024792 + writebytetoaddr $00, $2024793 + + writebytetoaddr $00, $20248FB ;MemCopy CallASM + writebytetoaddr $04, $20248FC ;This memory copies from enemy ram to Battle-E Location + writebytetoaddr $4D, $20248FD + writebytetoaddr $2D, $20248FE + writebytetoaddr $68, $20248FF + writebytetoaddr $04, $2024900 + writebytetoaddr $48, $2024901 + writebytetoaddr $06, $2024902 + writebytetoaddr $49, $2024903 + writebytetoaddr $04, $2024904 + writebytetoaddr $4A, $2024905 + writebytetoaddr $06, $2024906 + writebytetoaddr $4E, $2024907 + writebytetoaddr $AD, $2024908 + writebytetoaddr $1B, $2024909 + writebytetoaddr $29, $202490A + writebytetoaddr $44, $202490B + writebytetoaddr $0B, $202490C + writebytetoaddr $DF, $202490D + writebytetoaddr $70, $202490E + writebytetoaddr $47, $202490F + writebytetoaddr $90, $2024910 + writebytetoaddr $5D, $2024911 + writebytetoaddr $00, $2024912 + writebytetoaddr $03, $2024913 + writebytetoaddr $44, $2024914 + writebytetoaddr $47, $2024915 + writebytetoaddr $02, $2024916 + writebytetoaddr $02, $2024917 + writebytetoaddr $2D, $2024918 + writebytetoaddr $00, $2024919 + writebytetoaddr $00, $202491A + writebytetoaddr $04, $202491B + writebytetoaddr $40, $202491C + writebytetoaddr $56, $202491D + writebytetoaddr $02, $202491E + writebytetoaddr $02, $202491F + writebytetoaddr $54, $2024920 + writebytetoaddr $4A, $2024921 + writebytetoaddr $02, $2024922 + writebytetoaddr $02, $2024923 + + callasm $20248FD ;Do Memory Copy + + writebytetoaddr $F0, $2024744 ;To Battle tower slot + writebytetoaddr $B5, $2024745 + writebytetoaddr $7C, $2024746 + writebytetoaddr $46, $2024747 + writebytetoaddr $09, $2024748 + writebytetoaddr $34, $2024749 + writebytetoaddr $A6, $202474A + writebytetoaddr $46, $202474B + writebytetoaddr $12, $202474C + writebytetoaddr $48, $202474D + writebytetoaddr $13, $202474E + writebytetoaddr $4B, $202474F + writebytetoaddr $18, $2024750 + writebytetoaddr $47, $2024751 + writebytetoaddr $11, $2024752 + writebytetoaddr $49, $2024753 + writebytetoaddr $88, $2024754 + writebytetoaddr $83, $2024755 + writebytetoaddr $7C, $2024756 + writebytetoaddr $46, $2024757 + writebytetoaddr $09, $2024758 + writebytetoaddr $34, $2024759 + writebytetoaddr $A6, $202475A + writebytetoaddr $46, $202475B + writebytetoaddr $0E, $202475C + writebytetoaddr $48, $202475D + writebytetoaddr $10, $202475E + writebytetoaddr $4B, $202475F + writebytetoaddr $18, $2024760 + writebytetoaddr $47, $2024761 + writebytetoaddr $7C, $2024762 + writebytetoaddr $46, $2024763 + writebytetoaddr $09, $2024764 + writebytetoaddr $34, $2024765 + writebytetoaddr $A6, $2024766 + writebytetoaddr $46, $2024767 + writebytetoaddr $0B, $2024768 + writebytetoaddr $48, $2024769 + writebytetoaddr $0E, $202476A + writebytetoaddr $4B, $202476B + writebytetoaddr $18, $202476C + writebytetoaddr $47, $202476D + writebytetoaddr $0A, $202476E + writebytetoaddr $48, $202476F + writebytetoaddr $0D, $2024770 + writebytetoaddr $49, $2024771 + writebytetoaddr $0E, $2024772 + writebytetoaddr $4A, $2024773 + writebytetoaddr $0B, $2024774 + writebytetoaddr $DF, $2024775 + writebytetoaddr $F0, $2024776 + writebytetoaddr $BD, $2024777 + writebytetoaddr $FF, $2024778 + writebytetoaddr $B4, $2024779 + writebytetoaddr $0B, $202477A + writebytetoaddr $48, $202477B + writebytetoaddr $0D, $202477C + writebytetoaddr $49, $202477D + writebytetoaddr $0C, $202477E + writebytetoaddr $4A, $202477F + writebytetoaddr $64, $2024780 + writebytetoaddr $26, $2024781 + writebytetoaddr $0D, $2024782 + writebytetoaddr $4B, $2024783 + writebytetoaddr $1F, $2024784 + writebytetoaddr $78, $2024785 + writebytetoaddr $77, $2024786 + writebytetoaddr $43, $2024787 + writebytetoaddr $39, $2024788 + writebytetoaddr $44, $2024789 + writebytetoaddr $0B, $202478A + writebytetoaddr $DF, $202478B + writebytetoaddr $12, $202478C + writebytetoaddr $30, $202478D + writebytetoaddr $12, $202478E + writebytetoaddr $31, $202478F + writebytetoaddr $1B, $2024790 + writebytetoaddr $32, $2024791 + writebytetoaddr $0B, $2024792 + writebytetoaddr $DF, $2024793 + writebytetoaddr $FF, $2024794 + writebytetoaddr $BC, $2024795 + writebytetoaddr $70, $2024796 + writebytetoaddr $47, $2024797 + writebytetoaddr $44, $2024798 + writebytetoaddr $47, $2024799 + writebytetoaddr $02, $202479A + writebytetoaddr $02, $202479B + writebytetoaddr $79, $202479C + writebytetoaddr $8C, $202479D + writebytetoaddr $06, $202479E + writebytetoaddr $08, $202479F + writebytetoaddr $29, $20247A0 + writebytetoaddr $A2, $20247A1 + writebytetoaddr $06, $20247A2 + writebytetoaddr $08, $20247A3 + writebytetoaddr $0D, $20247A4 + writebytetoaddr $8D, $20247A5 + writebytetoaddr $06, $20247A6 + writebytetoaddr $08, $20247A7 + writebytetoaddr $90, $20247A8 + writebytetoaddr $56, $20247A9 + writebytetoaddr $02, $20247AA + writebytetoaddr $02, $20247AB + writebytetoaddr $14, $20247AC + writebytetoaddr $00, $20247AD + writebytetoaddr $00, $20247AE + writebytetoaddr $04, $20247AF + writebytetoaddr $04, $20247B0 + writebytetoaddr $00, $20247B1 + writebytetoaddr $00, $20247B2 + writebytetoaddr $00, $20247B3 + writebytetoaddr $EC, $20247B4 + writebytetoaddr $44, $20247B5 + writebytetoaddr $02, $20247B6 + writebytetoaddr $02, $20247B7 + writebytetoaddr $EE, $20247B8 + writebytetoaddr $75, $20247B9 + writebytetoaddr $03, $20247BA + writebytetoaddr $02, $20247BB + + + writebytetoaddr $3D, $2024918 ;This changes end location and amount of words for memcopy program. + writebytetoaddr $8C, $202491C + writebytetoaddr $51, $202491D + + callasm $20248FD ;Do Memory Copy Again + + writebytetoaddr $00, $2024744 ;ASLR Compensation code. Forces ASLR to be lowes value code or w/e. + writebytetoaddr $00, $2024745 + writebytetoaddr $17, $2024746 + writebytetoaddr $4E, $2024747 + writebytetoaddr $30, $2024748 + writebytetoaddr $68, $2024749 + writebytetoaddr $17, $202474A + writebytetoaddr $49, $202474B + writebytetoaddr $08, $202474C + writebytetoaddr $60, $202474D + writebytetoaddr $17, $202474E + writebytetoaddr $48, $202474F + writebytetoaddr $00, $2024750 + writebytetoaddr $68, $2024751 + writebytetoaddr $17, $2024752 + writebytetoaddr $49, $2024753 + writebytetoaddr $47, $2024754 + writebytetoaddr $1A, $2024755 + writebytetoaddr $17, $2024756 + writebytetoaddr $48, $2024757 + writebytetoaddr $17, $2024758 + writebytetoaddr $49, $2024759 + writebytetoaddr $01, $202475A + writebytetoaddr $60, $202475B + writebytetoaddr $17, $202475C + writebytetoaddr $4A, $202475D + writebytetoaddr $02, $202475E + writebytetoaddr $23, $202475F + writebytetoaddr $13, $2024760 + writebytetoaddr $70, $2024761 + writebytetoaddr $17, $2024762 + writebytetoaddr $48, $2024763 + writebytetoaddr $38, $2024764 + writebytetoaddr $44, $2024765 + writebytetoaddr $01, $2024766 + writebytetoaddr $78, $2024767 + writebytetoaddr $01, $2024768 + writebytetoaddr $30, $2024769 + writebytetoaddr $02, $202476A + writebytetoaddr $78, $202476B + writebytetoaddr $01, $202476C + writebytetoaddr $30, $202476D + writebytetoaddr $03, $202476E + writebytetoaddr $78, $202476F + writebytetoaddr $01, $2024770 + writebytetoaddr $30, $2024771 + writebytetoaddr $04, $2024772 + writebytetoaddr $78, $2024773 + writebytetoaddr $11, $2024774 + writebytetoaddr $44, $2024775 + writebytetoaddr $19, $2024776 + writebytetoaddr $44, $2024777 + writebytetoaddr $21, $2024778 + writebytetoaddr $44, $2024779 + writebytetoaddr $49, $202477A + writebytetoaddr $42, $202477B + writebytetoaddr $11, $202477C + writebytetoaddr $4A, $202477D + writebytetoaddr $12, $202477E + writebytetoaddr $4B, $202477F + writebytetoaddr $09, $2024780 + writebytetoaddr $04, $2024781 + writebytetoaddr $51, $2024782 + writebytetoaddr $43, $2024783 + writebytetoaddr $19, $2024784 + writebytetoaddr $44, $2024785 + writebytetoaddr $31, $2024786 + writebytetoaddr $60, $2024787 + writebytetoaddr $00, $2024788 + writebytetoaddr $00, $2024789 + writebytetoaddr $00, $202478A + writebytetoaddr $00, $202478B + writebytetoaddr $14, $202478C + writebytetoaddr $4A, $202478D + writebytetoaddr $0F, $202478E + writebytetoaddr $4B, $202478F + writebytetoaddr $00, $2024790 + writebytetoaddr $00, $2024791 + writebytetoaddr $0F, $2024792 + writebytetoaddr $48, $2024793 + writebytetoaddr $0F, $2024794 + writebytetoaddr $49, $2024795 + writebytetoaddr $01, $2024796 + writebytetoaddr $60, $2024797 + writebytetoaddr $0F, $2024798 + writebytetoaddr $48, $2024799 + writebytetoaddr $10, $202479A + writebytetoaddr $49, $202479B + writebytetoaddr $01, $202479C + writebytetoaddr $60, $202479D + writebytetoaddr $00, $202479E + writebytetoaddr $00, $202479F + writebytetoaddr $13, $20247A0 + writebytetoaddr $60, $20247A1 + writebytetoaddr $70, $20247A2 + writebytetoaddr $47, $20247A3 + writebytetoaddr $80, $20247A4 + writebytetoaddr $5D, $20247A5 + writebytetoaddr $00, $20247A6 + writebytetoaddr $03, $20247A7 + writebytetoaddr $34, $20247A8 + writebytetoaddr $2C, $20247A9 + writebytetoaddr $02, $20247AA + writebytetoaddr $02, $20247AB + writebytetoaddr $90, $20247AC + writebytetoaddr $5D, $20247AD + writebytetoaddr $00, $20247AE + writebytetoaddr $03, $20247AF + writebytetoaddr $54, $20247B0 + writebytetoaddr $4A, $20247B1 + writebytetoaddr $02, $20247B2 + writebytetoaddr $02, $20247B3 + writebytetoaddr $EC, $20247B4 + writebytetoaddr $2F, $20247B5 + writebytetoaddr $02, $20247B6 + writebytetoaddr $02, $20247B7 + writebytetoaddr $02, $20247B8 + writebytetoaddr $00, $20247B9 + writebytetoaddr $3E, $20247BA + writebytetoaddr $01, $20247BB + writebytetoaddr $F9, $20247BC + writebytetoaddr $26, $20247BD + writebytetoaddr $00, $20247BE + writebytetoaddr $03, $20247BF + writebytetoaddr $5E, $20247C0 + writebytetoaddr $4A, $20247C1 + writebytetoaddr $02, $20247C2 + writebytetoaddr $02, $20247C3 + writebytetoaddr $65, $20247C4 + writebytetoaddr $EB, $20247C5 + writebytetoaddr $B9, $20247C6 + writebytetoaddr $EE, $20247C7 + writebytetoaddr $A1, $20247C8 + writebytetoaddr $61, $20247C9 + writebytetoaddr $35, $20247CA + writebytetoaddr $0A, $20247CB + writebytetoaddr $B1, $20247CC + writebytetoaddr $61, $20247CD + writebytetoaddr $08, $20247CE + writebytetoaddr $08, $20247CF + writebytetoaddr $C4, $20247D0 + writebytetoaddr $75, $20247D1 + writebytetoaddr $03, $20247D2 + writebytetoaddr $02, $20247D3 + writebytetoaddr $2F, $20247D4 + writebytetoaddr $6F, $20247D5 + writebytetoaddr $FD, $20247D6 + writebytetoaddr $FF, $20247D7 + writebytetoaddr $48, $20247D8 + writebytetoaddr $0E, $20247D9 + writebytetoaddr $00, $20247DA + writebytetoaddr $03, $20247DB + writebytetoaddr $3A, $20247DC + writebytetoaddr $91, $20247DD + writebytetoaddr $02, $20247DE + writebytetoaddr $02, $20247DF + writebytetoaddr $C4, $20247E0 + writebytetoaddr $22, $20247E1 + writebytetoaddr $00, $20247E2 + writebytetoaddr $03, $20247E3 + + writebytetoaddr $28, $2024918 + writebytetoaddr $00, $202491C + writebytetoaddr $53, $202491D + + callasm $20248FD ;Do Memory Copy Again + + writebytetoaddr $03, $2024744 ;Memory copy for second half of script + writebytetoaddr $48, $2024745 + writebytetoaddr $05, $2024746 + writebytetoaddr $49, $2024747 + writebytetoaddr $03, $2024748 + writebytetoaddr $4A, $2024749 + writebytetoaddr $0B, $202474A + writebytetoaddr $DF, $202474B + writebytetoaddr $04, $202474C + writebytetoaddr $48, $202474D + writebytetoaddr $05, $202474E + writebytetoaddr $49, $202474F + writebytetoaddr $08, $2024750 + writebytetoaddr $60, $2024751 + writebytetoaddr $70, $2024752 + writebytetoaddr $47, $2024753 + writebytetoaddr $90, $2024754 + writebytetoaddr $93, $2024755 + writebytetoaddr $02, $2024756 + writebytetoaddr $02, $2024757 + writebytetoaddr $54, $2024758 + writebytetoaddr $00, $2024759 + writebytetoaddr $00, $202475A + writebytetoaddr $04, $202475B + writebytetoaddr $60, $202475C + writebytetoaddr $54, $202475D + writebytetoaddr $02, $202475E + writebytetoaddr $02, $202475F + writebytetoaddr $60, $2024760 + writebytetoaddr $54, $2024761 + writebytetoaddr $02, $2024762 + writebytetoaddr $02, $2024763 + writebytetoaddr $48, $2024764 + writebytetoaddr $0E, $2024765 + writebytetoaddr $00, $2024766 + writebytetoaddr $03, $2024767 + + + writebytetoaddr $09, $2024918 + writebytetoaddr $A0, $202491C + writebytetoaddr $53, $202491D + + callasm $20248FD ;Do Memory Copy Again + + end + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - Em/eonticket.md5 b/SOURCE/jirachievent - Em/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/jirachievent - Em/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/jirachievent - Em/icon.4bpp b/SOURCE/jirachievent - Em/icon.4bpp new file mode 100644 index 0000000..6ad72b3 Binary files /dev/null and b/SOURCE/jirachievent - Em/icon.4bpp differ diff --git a/SOURCE/jirachievent - Em/icon2.4bpp b/SOURCE/jirachievent - Em/icon2.4bpp new file mode 100644 index 0000000..6ad72b3 Binary files /dev/null and b/SOURCE/jirachievent - Em/icon2.4bpp differ diff --git a/SOURCE/jirachievent - Em/jirachi.asm b/SOURCE/jirachievent - Em/jirachi.asm new file mode 100644 index 0000000..2c63919 --- /dev/null +++ b/SOURCE/jirachievent - Em/jirachi.asm @@ -0,0 +1,225 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsjirachibattle.asm" + + Mystery_Event + + db CHECKSUM_CRC + dd 0 ; checksum placeholder + GBAPTR DataStart + GBAPTR DataEnd + +DataStart: + db IN_GAME_SCRIPT + db 0,6 ; mossdeep + db 8 ; girl near rock + GBAPTR NormanScriptStart + GBAPTR NormanScriptEnd + + + db PRELOAD_SCRIPT + GBAPTR PreloadScriptStart + + db END_OF_CHUNKS + + +GoSeeYourFather: + Text_EN "The WHITE ROCK in MOSSDEEP has\n" + Text_EN "been glowing...@" + + + + +NormanScriptStart: + setvirtualaddress NormanScriptStart + + db $5A + + virtualmsgbox Wish + + waitmsg + + db $6E, $17, $8 + + release + + compare LASTRESULT, 0 + + virtualgotoif 5, checkspot + +Changemind: + virtualmsgbox Change + waitmsg + waitkeypress + release + end + + + CHANNELRNG + STORAGETABLE + TEMPJIRACHI + STRUCTURETABLEG + MEMCOPYJIRACHI + RETURN + FIXJIRACHIANDCOPY + CAPTUREJIRACHI + FINALSTORAGE + MOVEPLAYERDOWNRIGHT + MOVEPLAYERRIGHTFACEUP + MOVEPLAYERQUESTION +checkspot: + + virtualmsgbox Youdo + + waitmsg + + waitkeypress + + release + + db $43 + + compare LASTRESULT, 5 + + virtualgotoif 2, NoRoom + + copyvar $800B, $800D + + getplayerpos $8000, $8001 + + compare $8000, $37 + + virtualgotoif 5, Movement2 + +Movement0: + + + applymovement $FF, $02029034 + + waitmovement $FF + +Movement1: + + + + applymovement $FF, $02029037 + +battle: + waitmovement $FF + + pause $10 + + special $13B + + sound $83 + + pause $10 + + pause $10 + + applymovement $FF, $0202903C + + waitmovement $FF + + sound $15 + + virtualmsgbox Pokemon + + waitmsg + + waitkeypress + + release + + playmoncry $199, $0 + + virtualmsgbox Jirachi + + waitmsg + + waitkeypress + + release + + callasm $02028DF1 + + callasm $02028FBD + + waitmoncry + + special $139 + + playsong $01CE, $0 + + waitstate + + db $43 + + comparevar LASTRESULT, $800B + + virtualgotoif 3, FlewAway + + +Catch: + callasm $02028FF1 + killscript + + +NoRoom: + virtualmsgbox NoSpace + waitmsg + waitkeypress + release + end + + +FlewAway: + db $97, $01 + db $97, $00 + virtualmsgbox Flew + waitmsg + waitkeypress + release + end + +Wish: + Text_EN "Do you have a wish?@" + +Youdo: + Text_EN "You do? Then leave a wish tag\n" + Text_EN "on the WHITE ROCK!@" +Change: + Text_EN "Really? I thought everyone had\n" + Text_EN "a wish...@" +Flew: + Text_EN "The JIRACHI flew away!@" +NoSpace: + Text_EN "You can’t make a wish with a\n" + Text_EN "full party!@" + +Pokemon: + Text_EN "Huh? A Pokémon?@" +Jirachi: + Text_EN "Wiiish!@" + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - Em/jirachi.img.bin b/SOURCE/jirachievent - Em/jirachi.img.bin new file mode 100644 index 0000000..f4acf56 Binary files /dev/null and b/SOURCE/jirachievent - Em/jirachi.img.bin differ diff --git a/SOURCE/jirachievent - Em/jirachi.pal.bin b/SOURCE/jirachievent - Em/jirachi.pal.bin new file mode 100644 index 0000000..24678b1 Binary files /dev/null and b/SOURCE/jirachievent - Em/jirachi.pal.bin differ diff --git a/SOURCE/jirachievent - Em/nedclib.dll b/SOURCE/jirachievent - Em/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/jirachievent - Em/nedclib.dll differ diff --git a/SOURCE/jirachievent - Em/nedcmake b/SOURCE/jirachievent - Em/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/jirachievent - Em/nedcmake differ diff --git a/SOURCE/jirachievent - Em/nevpk b/SOURCE/jirachievent - Em/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/jirachievent - Em/nevpk differ diff --git a/SOURCE/jirachievent - Em/prologue.asm b/SOURCE/jirachievent - Em/prologue.asm new file mode 100644 index 0000000..0db33e1 --- /dev/null +++ b/SOURCE/jirachievent - Em/prologue.asm @@ -0,0 +1,15 @@ +INCLUDE "../macros.asm" +SECTION "prologue", ROM0[$100] + + db "GameFreak inc." + db 0,0,0,0,0,0 + dd 0 + Text "e reader" ; no string terminator + db 0,0,0,0,$01,$55 + db 0,0,0,0 + db REGION + db 0 + db "GameFreak inc." + db 0,0 + + EOF \ No newline at end of file diff --git a/SOURCE/jirachievent - Em/rgbasm b/SOURCE/jirachievent - Em/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/jirachievent - Em/rgbasm differ diff --git a/SOURCE/jirachievent - Em/rgblink b/SOURCE/jirachievent - Em/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/jirachievent - Em/rgblink differ diff --git a/SOURCE/jirachievent - Em/ticket.pal b/SOURCE/jirachievent - Em/ticket.pal new file mode 100644 index 0000000..c1a8373 --- /dev/null +++ b/SOURCE/jirachievent - Em/ticket.pal @@ -0,0 +1,5 @@ + RGB 18, 0, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 31, 31 + RGB 6, 15, 29 \ No newline at end of file