diff --git a/SOURCE/jirachievent - Fr/00-C000.asm b/SOURCE/jirachievent - Fr/00-C000.asm new file mode 100644 index 0000000..faee2d3 --- /dev/null +++ b/SOURCE/jirachievent - Fr/00-C000.asm @@ -0,0 +1,174 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "jirachi.img.bin" +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 TicketSprite,TicketPalette + db $04,$04,$01,$01,$01,$01,$01 + +Instructions1: ; 1921 + db "Veuillez connecter l'e-Reader a\n" + db "RUBIS ou SAPHIR et sélectionner\n" + db "EVENEMENTS MYSTERES sur le menu\n" + db "principal. B pour annuler.\0" + +Instructions2: ; 199d + db "Appuyez sur le Bouton A de la\n" + db "Game Boy Advance contenant\n" + db "POKéMON RUBIS ou SAPHIR pour\n" + db "commencer l'envoi de JIRACHI\0" + +DeliveryInProcess: ; 1a0d + db " Réception JIRACHI en cours...\0" + +TicketDelivered: ; 1a2f + db "JIRACHI recu!\n" + db "\n" + db "Appuyez sur A pour renvoyer.\n" + db "Appuyez sur B pour annuler.\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 - Fr/Makefile b/SOURCE/jirachievent - Fr/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/jirachievent - Fr/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 - Fr/eonticket.asm b/SOURCE/jirachievent - Fr/eonticket.asm new file mode 100644 index 0000000..2ce9f1f --- /dev/null +++ b/SOURCE/jirachievent - Fr/eonticket.asm @@ -0,0 +1,225 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsjirachibattlefr.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 “La PIERRE BLANCHE à ALGATIA\n" + Text_EN "brille…@" + + + + +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 + +Movement1: + + + applymovement $FF, $02029034 + + waitmovement $FF + +Movement2: + + + + 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 "As-tu un vœu?@" + +Youdo: + Text_EN "Vraiment? Alors touche\n" + Text_EN "la PIERRE BLANCHE!@" +Change: + Text_EN "Tu es sûr? Tout le monde a\n" + Text_EN "un voeux…@" +Flew: + Text_EN "Le JIRACHI s’est envolé!@" +NoSpace: + Text_EN "Tu ne peux pas faire un vœu\n" + Text_EN "avec une équipe pleine!@" + +Pokemon: + Text_EN "Oh? Un Pokémon?@" +Jirachi: + Text_EN "Voeeeu!@" + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - Fr/eonticket.md5 b/SOURCE/jirachievent - Fr/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/jirachievent - Fr/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/jirachievent - Fr/jirachi.img.bin b/SOURCE/jirachievent - Fr/jirachi.img.bin new file mode 100644 index 0000000..f4acf56 Binary files /dev/null and b/SOURCE/jirachievent - Fr/jirachi.img.bin differ diff --git a/SOURCE/jirachievent - Fr/jirachi.pal.bin b/SOURCE/jirachievent - Fr/jirachi.pal.bin new file mode 100644 index 0000000..24678b1 Binary files /dev/null and b/SOURCE/jirachievent - Fr/jirachi.pal.bin differ diff --git a/SOURCE/jirachievent - Fr/nedclib.dll b/SOURCE/jirachievent - Fr/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/jirachievent - Fr/nedclib.dll differ diff --git a/SOURCE/jirachievent - Fr/nedcmake b/SOURCE/jirachievent - Fr/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/jirachievent - Fr/nedcmake differ diff --git a/SOURCE/jirachievent - Fr/nevpk b/SOURCE/jirachievent - Fr/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/jirachievent - Fr/nevpk differ diff --git a/SOURCE/jirachievent - Fr/prologue.asm b/SOURCE/jirachievent - Fr/prologue.asm new file mode 100644 index 0000000..21090d3 --- /dev/null +++ b/SOURCE/jirachievent - Fr/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_FR + db 0 + db "GameFreak inc." + db 0,0 + + EOF \ No newline at end of file diff --git a/SOURCE/jirachievent - Fr/rgbasm b/SOURCE/jirachievent - Fr/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/jirachievent - Fr/rgbasm differ diff --git a/SOURCE/jirachievent - Fr/rgblink b/SOURCE/jirachievent - Fr/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/jirachievent - Fr/rgblink differ diff --git a/SOURCE/jirachievent - Fr/teststuff.asm b/SOURCE/jirachievent - Fr/teststuff.asm new file mode 100644 index 0000000..e8e8e6c --- /dev/null +++ b/SOURCE/jirachievent - Fr/teststuff.asm @@ -0,0 +1,104 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommands.asm" + + Mystery_Event + + db CHECKSUM_CRC + dd 0 ; checksum placeholder + GBAPTR DataStart + GBAPTR DataEnd + +DataStart: + db IN_GAME_SCRIPT + db 14,10 ; Petalburg Gym + db 2 ; Norman + GBAPTR NormanScriptStart + GBAPTR NormanScriptEnd + + + + db MIX_RECORDS_ITEM + db 1 ; ??? +IF REGION == REGION_DE + db 5 ; distribution limit from German debug ROM +ELSE + db 30 ; distribution limit from English release +ENDC + dw EON_TICKET + + + + db PRELOAD_SCRIPT + GBAPTR PreloadScriptStart + + db END_OF_CHUNKS + + +GoSeeYourFather: + Text_DE "Lauf und besuche deinen Vater in der\n" + Text_DE "ARENA von BLÜTENBURG CITY.@" + + Text_EN "Go see your father at the GYM in\n" + Text_EN "PETALBURG.@" + + +NormanScriptStart: + setvirtualaddress NormanScriptStart + + + setwildbattle $19A, $1E, $5e + + callasm $08080ec1 + + callasm $08053441 + + callasm $08080919 + + callasm $0805334d + + pause $300 + + + playmoncry $19A, $0 + + waitmoncry + + dowildbattle + + + + + + + +.delete_script + killscript + + + + EVENTLEGAL2 + METLOCATION + GAMEORIGIN + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + clearflag $0438 + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - Ger/00-C000.asm b/SOURCE/jirachievent - Ger/00-C000.asm new file mode 100644 index 0000000..6e8bf35 --- /dev/null +++ b/SOURCE/jirachievent - Ger/00-C000.asm @@ -0,0 +1,174 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "jirachi.img.bin" +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 TicketSprite,TicketPalette + db $04,$04,$01,$01,$01,$01,$01 ; + +Instructions1: ; 1921 + db "Verbinde den e-Reader mit POKéMON\n" + db "Rubin oder Saphir und wahle\n" + db "GEHEIMGESCHEHEN im Spiels.\n" + db "Drucke B, um abzubrechen.\0" + +Instructions2: ; 199d + db "Drucke den A auf dem GameBoy\n" + db "Advance mit Pokémon Rubin oder\n" + db "Saphir, um mit der Ubertragung des\n" + db "AON-TICKET zu beginnen\0" + +DeliveryInProcess: ; 1a0d + db "Die Ubertragung des AON-TICKET\n" + db "bist im Gange..\0" + +TicketDelivered: ; 1a2f + db "Das AON-TICKET wurde ubertragen!\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 - Ger/Makefile b/SOURCE/jirachievent - Ger/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/jirachievent - Ger/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 - Ger/eonticket.asm b/SOURCE/jirachievent - Ger/eonticket.asm new file mode 100644 index 0000000..440cabe --- /dev/null +++ b/SOURCE/jirachievent - Ger/eonticket.asm @@ -0,0 +1,225 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsjirachibattleger.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 "Der WEISSE FELSEN in MOOSBACH\n" + Text_EN "leuchtet.@" + + + + +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 + +Movement1: + + + applymovement $FF, $02029034 + + waitmovement $FF + +Movement2: + + + + 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 "Hast du einen Wunsch?@" + +Youdo: + Text_EN "Ja? Dann leg einen Wunschzettel\n" + Text_EN "auf den WEISSEN FELSEN!@" +Change: + Text_EN "Ich dachte, jeder hat etwas.@" + +Flew: + Text_EN "JIRACHI ist weggeflogen!@" +NoSpace: + Text_EN "Ohne Platz im Team hast du\n" + Text_EN "keinen Wunsch!@" + +Pokemon: + Text_EN "Hm? Ein Pokémon?@" +Jirachi: + Text_EN "Wish!@" + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - Ger/eonticket.md5 b/SOURCE/jirachievent - Ger/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/jirachievent - Ger/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/jirachievent - Ger/jirachi.img.bin b/SOURCE/jirachievent - Ger/jirachi.img.bin new file mode 100644 index 0000000..f4acf56 Binary files /dev/null and b/SOURCE/jirachievent - Ger/jirachi.img.bin differ diff --git a/SOURCE/jirachievent - Ger/jirachi.pal.bin b/SOURCE/jirachievent - Ger/jirachi.pal.bin new file mode 100644 index 0000000..24678b1 Binary files /dev/null and b/SOURCE/jirachievent - Ger/jirachi.pal.bin differ diff --git a/SOURCE/jirachievent - Ger/nedclib.dll b/SOURCE/jirachievent - Ger/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/jirachievent - Ger/nedclib.dll differ diff --git a/SOURCE/jirachievent - Ger/nedcmake b/SOURCE/jirachievent - Ger/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/jirachievent - Ger/nedcmake differ diff --git a/SOURCE/jirachievent - Ger/nevpk b/SOURCE/jirachievent - Ger/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/jirachievent - Ger/nevpk differ diff --git a/SOURCE/jirachievent - Ger/prologue.asm b/SOURCE/jirachievent - Ger/prologue.asm new file mode 100644 index 0000000..25844e4 --- /dev/null +++ b/SOURCE/jirachievent - Ger/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_DE + db 0 + db "GameFreak inc." + db 0,0 + + EOF \ No newline at end of file diff --git a/SOURCE/jirachievent - Ger/rgbasm b/SOURCE/jirachievent - Ger/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/jirachievent - Ger/rgbasm differ diff --git a/SOURCE/jirachievent - Ger/rgblink b/SOURCE/jirachievent - Ger/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/jirachievent - Ger/rgblink differ diff --git a/SOURCE/jirachievent - Ita/00-C000.asm b/SOURCE/jirachievent - Ita/00-C000.asm new file mode 100644 index 0000000..75ec963 --- /dev/null +++ b/SOURCE/jirachievent - Ita/00-C000.asm @@ -0,0 +1,175 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "jirachi.img.bin" +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 TicketSprite,TicketPalette + db $04,$04,$01,$01,$01,$01,$01 ; + +Instructions1: ; 1921 + db "Collega l'e-reader a POKéMON\n" + db "seleziona EVENTI SEGRETI\n" + db "nel del gioco. Ad inviare del\n" + db "del JIRACHI.\0" + +Instructions2: ; 199d + db "Premi il pulsante A sul Game Boy\n" + db "Advance che contiene POKéMON\n" + db "per cominciare ad inviare\n" + db "JIRACHI\0" + +DeliveryInProcess: ; 1a0d + db "Consegna del JIRACHI in corso\0" + +TicketDelivered: ; 1a2f + db "del JIRACHI consegnato!\n" + db "\n" + db "Premi A per inviare di nuovo\n" + db "Premi B per annullare.\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 - Ita/Makefile b/SOURCE/jirachievent - Ita/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/jirachievent - Ita/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 - Ita/eonticket.asm b/SOURCE/jirachievent - Ita/eonticket.asm new file mode 100644 index 0000000..e42f04a --- /dev/null +++ b/SOURCE/jirachievent - Ita/eonticket.asm @@ -0,0 +1,225 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsjirachibattleita.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 "La ROCCIA BIANCA a VERDEAZZUPOLI\n" + Text_EN "sta brillando@" + + + + +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 + +Movement1: + + + applymovement $FF, $02029034 + + waitmovement $FF + +Movement2: + + + + 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 "Hai un desiderio@" + +Youdo: + Text_EN "Allora lascia un fogliettino\n" + Text_EN "col tuo desiderio sulla\l" + Text_EN "ROCCIA BIANCA@" +Change: + Text_EN "un desiderio@" +Flew: + Text_EN "JIRACHI volato via!@" +NoSpace: + Text_EN "Non puoi esprimere un desiderio con\n" + Text_EN "la squadra al completo@" + +Pokemon: + Text_EN "Un POKéMON?@" +Jirachi: + Text_EN "Wish!@" + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - Ita/eonticket.md5 b/SOURCE/jirachievent - Ita/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/jirachievent - Ita/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/jirachievent - Ita/jirachi.img.bin b/SOURCE/jirachievent - Ita/jirachi.img.bin new file mode 100644 index 0000000..f4acf56 Binary files /dev/null and b/SOURCE/jirachievent - Ita/jirachi.img.bin differ diff --git a/SOURCE/jirachievent - Ita/jirachi.pal.bin b/SOURCE/jirachievent - Ita/jirachi.pal.bin new file mode 100644 index 0000000..24678b1 Binary files /dev/null and b/SOURCE/jirachievent - Ita/jirachi.pal.bin differ diff --git a/SOURCE/jirachievent - Ita/nedclib.dll b/SOURCE/jirachievent - Ita/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/jirachievent - Ita/nedclib.dll differ diff --git a/SOURCE/jirachievent - Ita/nedcmake b/SOURCE/jirachievent - Ita/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/jirachievent - Ita/nedcmake differ diff --git a/SOURCE/jirachievent - Ita/nevpk b/SOURCE/jirachievent - Ita/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/jirachievent - Ita/nevpk differ diff --git a/SOURCE/jirachievent - Ita/prologue.asm b/SOURCE/jirachievent - Ita/prologue.asm new file mode 100644 index 0000000..0db33e1 --- /dev/null +++ b/SOURCE/jirachievent - Ita/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 - Ita/rgbasm b/SOURCE/jirachievent - Ita/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/jirachievent - Ita/rgbasm differ diff --git a/SOURCE/jirachievent - Ita/rgblink b/SOURCE/jirachievent - Ita/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/jirachievent - Ita/rgblink differ diff --git a/SOURCE/jirachievent - JPN/00-C000.asm b/SOURCE/jirachievent - JPN/00-C000.asm new file mode 100644 index 0000000..9a9e218 --- /dev/null +++ b/SOURCE/jirachievent - JPN/00-C000.asm @@ -0,0 +1,175 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "jirachi.img.bin" +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 TicketSprite,TicketPalette + db $04,$04,$01,$01,$01,$01,$01 ; + +Instructions1: ; 1921 + db "\n" + db "\n" + db "\n" + db "\0" + +Instructions2: ; 199d + db "\n" + db "\n" + db "\n" + db "\0" + +DeliveryInProcess: ; 1a0d + db "\0" + +TicketDelivered: ; 1a2f + db "\n" + db "\n" + db "\n" + db "\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 - JPN/Makefile b/SOURCE/jirachievent - JPN/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/jirachievent - JPN/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 - JPN/eonticket.asm b/SOURCE/jirachievent - JPN/eonticket.asm new file mode 100644 index 0000000..0747d22 --- /dev/null +++ b/SOURCE/jirachievent - JPN/eonticket.asm @@ -0,0 +1,226 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsjirachibattlejpn.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 "トクサネティの しろい いわに\n" + Text_EN "なにか いへんが おきているようだ....@" + + + + + +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 + +Movement1: + + + applymovement $FF, $02028D94 + + waitmovement $FF + +Movement2: + + + + applymovement $FF, $02028D97 + +battle: + waitmovement $FF + + pause $10 + + special $13B + + sound $83 + + pause $10 + + pause $10 + + applymovement $FF, $02028D9C + + waitmovement $FF + + sound $15 + + virtualmsgbox Pokemon + + waitmsg + + waitkeypress + + release + + playmoncry $199, $0 + + virtualmsgbox Jirachi + + waitmsg + + waitkeypress + + release + + callasm $02028B51 + + callasm $02028D1D + + waitmoncry + + special $139 + + playsong $01CE, $0 + + waitstate + + db $43 + + comparevar LASTRESULT, $800B + + virtualgotoif 3, FlewAway + + +Catch: + callasm $02028D51 + killscript + + +NoRoom: + virtualmsgbox NoSpace + waitmsg + waitkeypress + release + end + + +FlewAway: + db $97, $01 + db $97, $00 + virtualmsgbox Flew + waitmsg + waitkeypress + release + end + +Wish: + Text_EN "あなたも たんざくに ねがいごとを かくの?@" + +Youdo: + Text_EN "いいわね! かきおわったら\n" + Text_EN "しろい いわに でも おいといて!@" +Change: + Text_EN "ながれぼしに ねがうの? それも ありね!@" + +Flew: + Text_EN "ジラーチ は きえてしまった...@" +NoSpace: + Text_EN "てもちポケモンが いっぱいね\n" + Text_EN "せいりしたら またきて!@" + +Pokemon: + Text_EN "おや....?@" +Jirachi: + Text_EN "ジラーチ!@" + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - JPN/eonticket.md5 b/SOURCE/jirachievent - JPN/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/jirachievent - JPN/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/jirachievent - JPN/jirachi.img.bin b/SOURCE/jirachievent - JPN/jirachi.img.bin new file mode 100644 index 0000000..f4acf56 Binary files /dev/null and b/SOURCE/jirachievent - JPN/jirachi.img.bin differ diff --git a/SOURCE/jirachievent - JPN/jirachi.pal.bin b/SOURCE/jirachievent - JPN/jirachi.pal.bin new file mode 100644 index 0000000..24678b1 Binary files /dev/null and b/SOURCE/jirachievent - JPN/jirachi.pal.bin differ diff --git a/SOURCE/jirachievent - JPN/nedclib.dll b/SOURCE/jirachievent - JPN/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/jirachievent - JPN/nedclib.dll differ diff --git a/SOURCE/jirachievent - JPN/nedcmake b/SOURCE/jirachievent - JPN/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/jirachievent - JPN/nedcmake differ diff --git a/SOURCE/jirachievent - JPN/nevpk b/SOURCE/jirachievent - JPN/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/jirachievent - JPN/nevpk differ diff --git a/SOURCE/jirachievent - JPN/prologue.asm b/SOURCE/jirachievent - JPN/prologue.asm new file mode 100644 index 0000000..0db33e1 --- /dev/null +++ b/SOURCE/jirachievent - JPN/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 - JPN/rgbasm b/SOURCE/jirachievent - JPN/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/jirachievent - JPN/rgbasm differ diff --git a/SOURCE/jirachievent - JPN/rgblink b/SOURCE/jirachievent - JPN/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/jirachievent - JPN/rgblink differ diff --git a/SOURCE/jirachievent - spa/00-C000.asm b/SOURCE/jirachievent - spa/00-C000.asm new file mode 100644 index 0000000..eab4665 --- /dev/null +++ b/SOURCE/jirachievent - spa/00-C000.asm @@ -0,0 +1,175 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "jirachi.img.bin" +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 TicketSprite,TicketPalette + db $04,$04,$01,$01,$01,$01,$01 ; + +Instructions1: ; 1921 + db "Vincula el e-Reader a Pokémon Rubi\n" + db "o Zafiro y pulsa EVENTOS MISTERIOSOS\n" + db "desde el menu Principal.\n" + db "Pulsa el Boton B para cancelar.\0" + +Instructions2: ; 199d + db "Pulsa el Boton A en la Game Boy\n" + db "Advance con Pokémon Rubi o\n" + db "Zafiro para iniciar el envio del\n" + db "TICKET EON\0" + +DeliveryInProcess: ; 1a0d + db "Cargando el TICKET EON...\0" + +TicketDelivered: ; 1a2f + db "TICKET EON enviado!\n" + db "\n" + db "Pulsa el Boton A para reenviar.\n" + db "Pulsa el Boton B para cancelar.\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 - spa/Makefile b/SOURCE/jirachievent - spa/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/jirachievent - spa/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 - spa/eonticket.asm b/SOURCE/jirachievent - spa/eonticket.asm new file mode 100644 index 0000000..3ad4d4e --- /dev/null +++ b/SOURCE/jirachievent - spa/eonticket.asm @@ -0,0 +1,224 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsjirachibattlespa.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 "La roca blanca de CIUDAD ALGARIA\n" + Text_EN "está brillando@" + + + + +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 + +Movement1: + + + applymovement $FF, $02029034 + + waitmovement $FF + +Movement2: + + + + 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 "¿Tienes un deseo?@" + +Youdo: + Text_EN "¡En ese caso, coloca una tablilla\n" + Text_EN "con el deseo sobre la roca blanca!@" +Change: + Text_EN "Pensaba que todos tenían deseos@" +Flew: + Text_EN "¡JIRACHI ha huido!@" +NoSpace: + Text_EN "Será mejor antes hacer hueco\n" + Text_EN "en el equipo@" + +Pokemon: + Text_EN "Un POKéMON@" +Jirachi: + Text_EN "¡Achi!@" + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/jirachievent - spa/eonticket.md5 b/SOURCE/jirachievent - spa/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/jirachievent - spa/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/jirachievent - spa/jirachi.img.bin b/SOURCE/jirachievent - spa/jirachi.img.bin new file mode 100644 index 0000000..f4acf56 Binary files /dev/null and b/SOURCE/jirachievent - spa/jirachi.img.bin differ diff --git a/SOURCE/jirachievent - spa/jirachi.pal.bin b/SOURCE/jirachievent - spa/jirachi.pal.bin new file mode 100644 index 0000000..24678b1 Binary files /dev/null and b/SOURCE/jirachievent - spa/jirachi.pal.bin differ diff --git a/SOURCE/jirachievent - spa/nedclib.dll b/SOURCE/jirachievent - spa/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/jirachievent - spa/nedclib.dll differ diff --git a/SOURCE/jirachievent - spa/nedcmake b/SOURCE/jirachievent - spa/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/jirachievent - spa/nedcmake differ diff --git a/SOURCE/jirachievent - spa/nevpk b/SOURCE/jirachievent - spa/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/jirachievent - spa/nevpk differ diff --git a/SOURCE/jirachievent - spa/prologue.asm b/SOURCE/jirachievent - spa/prologue.asm new file mode 100644 index 0000000..4b93e27 --- /dev/null +++ b/SOURCE/jirachievent - spa/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_ES + db 0 + db "GameFreak inc." + db 0,0 + + EOF \ No newline at end of file diff --git a/SOURCE/jirachievent - spa/rgbasm b/SOURCE/jirachievent - spa/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/jirachievent - spa/rgbasm differ diff --git a/SOURCE/jirachievent - spa/rgblink b/SOURCE/jirachievent - spa/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/jirachievent - spa/rgblink differ