diff --git a/SOURCE/rtcreset/00-C000-EN.raw-01.raw b/SOURCE/rtcreset/00-C000-EN.raw-01.raw new file mode 100644 index 0000000..5e02432 Binary files /dev/null and b/SOURCE/rtcreset/00-C000-EN.raw-01.raw differ diff --git a/SOURCE/rtcreset/00-C000.asm b/SOURCE/rtcreset/00-C000.asm new file mode 100644 index 0000000..884f84d --- /dev/null +++ b/SOURCE/rtcreset/00-C000.asm @@ -0,0 +1,174 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "clock.img.bin" +TicketPalette: ; 1604 + INCBIN "clock.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 $08,$08,$00,$01,$01,$01,$01 ; width 15, height 8 + +Instructions1: ; 1921 + db "\n" + db "\n" + db "\n" + db "\0" + +Instructions2: ; 199d + db "\n" + db "\n" + db "\n" + db "\0" + +DeliveryInProcess: ; 1a0d + db "\n" + 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/rtcreset/00-C000.raw b/SOURCE/rtcreset/00-C000.raw new file mode 100644 index 0000000..eb53c43 Binary files /dev/null and b/SOURCE/rtcreset/00-C000.raw differ diff --git a/SOURCE/rtcreset/00-C000EN.asm b/SOURCE/rtcreset/00-C000EN.asm new file mode 100644 index 0000000..22761ce --- /dev/null +++ b/SOURCE/rtcreset/00-C000EN.asm @@ -0,0 +1,174 @@ +INCLUDE "../macros.asm" +SECTION "eonticket",ROM0[$100] +jp Start +db $00 + +TicketSprite: ; 104 + INCBIN "clock.img.bin" +TicketPalette: ; 1604 + INCBIN "clock.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 $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 "in-game Clock Adjustment.\0" + +DeliveryInProcess: ; 1a0d + db "In-game Clock Adjustment\n" + db "delivery in Progress...\0" +TicketDelivered: ; 1a2f + db "In-game Clock Adjustment 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/rtcreset/Makefile b/SOURCE/rtcreset/Makefile new file mode 100644 index 0000000..11d6e49 --- /dev/null +++ b/SOURCE/rtcreset/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/rtcreset/clock.h b/SOURCE/rtcreset/clock.h new file mode 100644 index 0000000..6ccc1c3 --- /dev/null +++ b/SOURCE/rtcreset/clock.h @@ -0,0 +1,28 @@ + +//{{BLOCK(clock) + +//====================================================================== +// +// clock, 64x64@4, +// + palette 256 entries, not compressed +// + 64 tiles not compressed +// Total size: 512 + 2048 = 2560 +// +// Time-stamp: 2023-09-07, 13:04:07 +// Exported by Cearn's GBA Image Transmogrifier, v0.8.6 +// ( http://www.coranac.com/projects/#grit ) +// +//====================================================================== + +#ifndef GRIT_CLOCK_H +#define GRIT_CLOCK_H + +#define clockTilesLen 2048 +extern const unsigned short clockTiles[1024]; + +#define clockPalLen 512 +extern const unsigned short clockPal[256]; + +#endif // GRIT_CLOCK_H + +//}}BLOCK(clock) diff --git a/SOURCE/rtcreset/clock.img.bin b/SOURCE/rtcreset/clock.img.bin new file mode 100644 index 0000000..fa62bd3 Binary files /dev/null and b/SOURCE/rtcreset/clock.img.bin differ diff --git a/SOURCE/rtcreset/clock.pal.bin b/SOURCE/rtcreset/clock.pal.bin new file mode 100644 index 0000000..d872e91 Binary files /dev/null and b/SOURCE/rtcreset/clock.pal.bin differ diff --git a/SOURCE/rtcreset/eonticket.asm b/SOURCE/rtcreset/eonticket.asm new file mode 100644 index 0000000..d21ef6b --- /dev/null +++ b/SOURCE/rtcreset/eonticket.asm @@ -0,0 +1,20 @@ +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 CLOCK_ADJUSTMENT + + + + +DataEnd: + EOF + \ No newline at end of file diff --git a/SOURCE/rtcreset/eonticket.md5 b/SOURCE/rtcreset/eonticket.md5 new file mode 100644 index 0000000..cb426e5 --- /dev/null +++ b/SOURCE/rtcreset/eonticket.md5 @@ -0,0 +1 @@ +901180e44767e19e5dc9d5df881fe123 00-C000-EN.z80 diff --git a/SOURCE/rtcreset/nedclib.dll b/SOURCE/rtcreset/nedclib.dll new file mode 100644 index 0000000..8a71160 Binary files /dev/null and b/SOURCE/rtcreset/nedclib.dll differ diff --git a/SOURCE/rtcreset/nedcmake b/SOURCE/rtcreset/nedcmake new file mode 100644 index 0000000..45b06a3 Binary files /dev/null and b/SOURCE/rtcreset/nedcmake differ diff --git a/SOURCE/rtcreset/nevpk b/SOURCE/rtcreset/nevpk new file mode 100644 index 0000000..12cf788 Binary files /dev/null and b/SOURCE/rtcreset/nevpk differ diff --git a/SOURCE/rtcreset/prologue.asm b/SOURCE/rtcreset/prologue.asm new file mode 100644 index 0000000..dc9880e --- /dev/null +++ b/SOURCE/rtcreset/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_IT + db 0 + db "GameFreak inc." + db 0,0 + + EOF \ No newline at end of file diff --git a/SOURCE/rtcreset/rgbasm b/SOURCE/rtcreset/rgbasm new file mode 100644 index 0000000..deb0f72 Binary files /dev/null and b/SOURCE/rtcreset/rgbasm differ diff --git a/SOURCE/rtcreset/rgblink b/SOURCE/rtcreset/rgblink new file mode 100644 index 0000000..c38372b Binary files /dev/null and b/SOURCE/rtcreset/rgblink differ diff --git a/SOURCE/rtcreset/rtcadjustDE.raw b/SOURCE/rtcreset/rtcadjustDE.raw new file mode 100644 index 0000000..41e827b Binary files /dev/null and b/SOURCE/rtcreset/rtcadjustDE.raw differ diff --git a/SOURCE/rtcreset/rtcadjustEN.raw b/SOURCE/rtcreset/rtcadjustEN.raw new file mode 100644 index 0000000..9eb6369 Binary files /dev/null and b/SOURCE/rtcreset/rtcadjustEN.raw differ diff --git a/SOURCE/rtcreset/rtcadjustES.raw b/SOURCE/rtcreset/rtcadjustES.raw new file mode 100644 index 0000000..cd2b2fb Binary files /dev/null and b/SOURCE/rtcreset/rtcadjustES.raw differ diff --git a/SOURCE/rtcreset/rtcadjustFR.raw b/SOURCE/rtcreset/rtcadjustFR.raw new file mode 100644 index 0000000..32c01f0 Binary files /dev/null and b/SOURCE/rtcreset/rtcadjustFR.raw differ diff --git a/SOURCE/rtcreset/rtcadjustIT.raw b/SOURCE/rtcreset/rtcadjustIT.raw new file mode 100644 index 0000000..c95fe24 Binary files /dev/null and b/SOURCE/rtcreset/rtcadjustIT.raw differ diff --git a/SOURCE/rtcreset/rtcadjustJP.raw b/SOURCE/rtcreset/rtcadjustJP.raw new file mode 100644 index 0000000..17b9439 Binary files /dev/null and b/SOURCE/rtcreset/rtcadjustJP.raw differ