diff --git a/SOURCE/deoxysevent/00-C000-EN.raw-01.raw b/SOURCE/deoxysevent/00-C000-EN.raw-01.raw new file mode 100644 index 0000000..8c052af Binary files /dev/null and b/SOURCE/deoxysevent/00-C000-EN.raw-01.raw differ diff --git a/SOURCE/deoxysevent/00-C000.asm b/SOURCE/deoxysevent/00-C000.asm new file mode 100644 index 0000000..a617933 --- /dev/null +++ b/SOURCE/deoxysevent/00-C000.asm @@ -0,0 +1,174 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "testd.bin" +TicketPalette: ; 1604 + INCBIN "testd.pal" + +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 $08,$08,$00,$01,$01,$01,$01 ; width 15, height 8 + +Instructions1: ; 1921 + db "Link e-Reader to Pokémon Ruby or \n" + db "Sapphire and select MYSTERY EVENTS\n" + db "on the game's main menu.\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 Ruby or\n" + db "Sapphire to begin sending the\n" + db "DEOXYS EVENT.\0" + +DeliveryInProcess: ; 1a0d + db "DEOXYS EVENT delivery in Progress...\0" + +TicketDelivered: ; 1a2f + db "DEOXYS 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/deoxysevent/00-C000.raw b/SOURCE/deoxysevent/00-C000.raw new file mode 100644 index 0000000..eb53c43 Binary files /dev/null and b/SOURCE/deoxysevent/00-C000.raw differ diff --git a/SOURCE/deoxysevent/Makefile b/SOURCE/deoxysevent/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/deoxysevent/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/deoxysevent/eonticket.asm b/SOURCE/deoxysevent/eonticket.asm new file mode 100644 index 0000000..340cd28 --- /dev/null +++ b/SOURCE/deoxysevent/eonticket.asm @@ -0,0 +1,180 @@ +INCLUDE "../macros.asm" +INCLUDE "../constants/items.asm" +INCLUDE "../constants/scriptcommandsdeoxys.asm" + + Mystery_Event + + db CHECKSUM_CRC + dd 0 ; checksum placeholder + GBAPTR DataStart + GBAPTR DataEnd + +DataStart: + db IN_GAME_SCRIPT + db 24,3 ; Meteor Falls BF2 + db 1 ; TM02 Item + 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 "A Meteorite has crashed in METEOR FALLS.\n" + Text_EN "Something now lurks in the caverns below..@" + + + +NormanScriptStart: + setvirtualaddress NormanScriptStart + + checkitemroom MOON_STONE, 1 + + compare LASTRESULT, 0 + + virtualgotoif 1, NoRoomToGive + + + + + setwildbattle $19A, $1E, $122 + + copyvarifnotzero $8000, MOON_STONE + + copyvarifnotzero $8001, 1 + + checkitemtype $0001 + + callstd 1 + + closeonkeypress + + fadeout $3 + + virtualmsgbox Rumbling + + waitmsg + + waitkeypress + + release + + setvar $8004, $000F + + setvar $8005, $000F + + setvar $8006, $0FF3 + + setvar $8007, $000F + + + + special $136 + + sound $58 + + sound $58 + + waitstate + + pause $28 + + special $136 + + waitstate + + pause $28 + + callasm $2028E49 + + callasm $2028E5F + + callasm $2028E77 + + playmoncry $19A, $0 + + waitmoncry + + special $138 + + playsong $01CF, $0 + + + + + + +.delete_script + killscript + + + + EVENTLEGAL2 + METLOCATION + GAMEORIGIN + +NoRoomToGive: + virtualmsgbox ItemsPocketIsFull + waitmsg + waitkeypress + release + end + + + +ItemsPocketIsFull: + Text_DE "Lauf und besuche deinen Vater in der\n" + Text_DE "ARENA von BLÜTENBURG CITY.@" + + Text_EN "The Items Pocket in your Bag\n" + Text_EN "is full.@" + +Rumbling: + Text_DE "Lauf und besuche deinen Vater in der@" + + Text_EN "What is that rumbling?@" + + + + + +NormanScriptEnd: + + +PreloadScriptStart: + setvirtualaddress PreloadScriptStart + + clearflag $0438 + + virtualloadpointer GoSeeYourFather + + setbyte 2 + + end + + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/deoxysevent/eonticket.md5 b/SOURCE/deoxysevent/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/deoxysevent/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/deoxysevent/nedclib.dll b/SOURCE/deoxysevent/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/deoxysevent/nedclib.dll differ diff --git a/SOURCE/deoxysevent/nedcmake b/SOURCE/deoxysevent/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/deoxysevent/nedcmake differ diff --git a/SOURCE/deoxysevent/nevpk b/SOURCE/deoxysevent/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/deoxysevent/nevpk differ diff --git a/SOURCE/deoxysevent/prologue.asm b/SOURCE/deoxysevent/prologue.asm new file mode 100644 index 0000000..0db33e1 --- /dev/null +++ b/SOURCE/deoxysevent/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/deoxysevent/rgbasm b/SOURCE/deoxysevent/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/deoxysevent/rgbasm differ diff --git a/SOURCE/deoxysevent/rgblink b/SOURCE/deoxysevent/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/deoxysevent/rgblink differ diff --git a/SOURCE/deoxysevent/testd.bin b/SOURCE/deoxysevent/testd.bin new file mode 100644 index 0000000..4e43ab6 Binary files /dev/null and b/SOURCE/deoxysevent/testd.bin differ diff --git a/SOURCE/deoxysevent/testd.pal b/SOURCE/deoxysevent/testd.pal new file mode 100644 index 0000000..3cdd983 Binary files /dev/null and b/SOURCE/deoxysevent/testd.pal differ