diff options
-rw-r--r-- | asm/berry_tag_screen.s | 1538 | ||||
-rw-r--r-- | asm/item_menu.s | 2 | ||||
-rw-r--r-- | asm/item_menu_icons.s | 18 | ||||
-rw-r--r-- | data/berry_tag_screen.s | 34 | ||||
-rw-r--r-- | include/berry_tag_screen.h | 6 | ||||
-rw-r--r-- | include/graphics.h | 6 | ||||
-rw-r--r-- | include/item.h | 1 | ||||
-rw-r--r-- | include/item_menu.h | 13 | ||||
-rw-r--r-- | include/item_menu_icons.h | 6 | ||||
-rw-r--r-- | include/item_use.h | 54 | ||||
-rw-r--r-- | include/menu_helpers.h | 1 | ||||
-rw-r--r-- | include/strings.h | 13 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/berry_tag_screen.c | 653 | ||||
-rw-r--r-- | sym_ewram.txt | 5 |
15 files changed, 766 insertions, 1588 deletions
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s deleted file mode 100644 index 8a32f5b3a..000000000 --- a/asm/berry_tag_screen.s +++ /dev/null @@ -1,1538 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8177C14 -sub_8177C14: @ 8177C14 - push {r4,lr} - ldr r4, =gUnknown_0203BCF4 - ldr r0, =0x0000180c - bl AllocZeroed - str r0, [r4] - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemIdToBerryType - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xC0 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - ldr r0, =sub_8177C84 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8177C14 - - thumb_func_start sub_8177C54 -sub_8177C54: @ 8177C54 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8177C54 - - thumb_func_start sub_8177C70 -sub_8177C70: @ 8177C70 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8177C70 - - thumb_func_start sub_8177C84 -sub_8177C84: @ 8177C84 - push {lr} -_08177C86: - bl sub_81221EC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08177CAA - bl sub_8177CB0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08177CAA - bl sub_81221AC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08177C86 -_08177CAA: - pop {r0} - bx r0 - thumb_func_end sub_8177C84 - - thumb_func_start sub_8177CB0 -sub_8177CB0: @ 8177CB0 - push {lr} - sub sp, 0x4 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xF - bls _08177CC4 - b _08177DF4 -_08177CC4: - lsls r0, 2 - ldr r1, =_08177CD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08177CD8: - .4byte _08177D18 - .4byte _08177D26 - .4byte _08177D2C - .4byte _08177D40 - .4byte _08177D46 - .4byte _08177D4C - .4byte _08177D5C - .4byte _08177D78 - .4byte _08177D84 - .4byte _08177D8A - .4byte _08177D90 - .4byte _08177D96 - .4byte _08177D9C - .4byte _08177DA6 - .4byte _08177DB4 - .4byte _08177DC2 -_08177D18: - bl SetVBlankHBlankCallbacksToNull - bl ResetVramOamAndBgCntRegs - bl clear_scheduled_bg_copies_to_vram - b _08177DDC -_08177D26: - bl ScanlineEffect_Stop - b _08177DDC -_08177D2C: - bl ResetPaletteFade - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - b _08177DDA - .pool -_08177D40: - bl ResetSpriteData - b _08177DDC -_08177D46: - bl FreeAllSpritePalettes - b _08177DDC -_08177D4C: - bl sub_81221AC - lsls r0, 24 - cmp r0, 0 - bne _08177DDC - bl ResetTasks - b _08177DDC -_08177D5C: - bl sub_8177E14 - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - ldr r1, =0x00001808 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - b _08177DDC - .pool -_08177D78: - bl sub_8177E88 - lsls r0, 24 - cmp r0, 0 - beq _08177E0C - b _08177DDC -_08177D84: - bl sub_8178008 - b _08177DDC -_08177D8A: - bl sub_8178090 - b _08177DDC -_08177D90: - bl sub_81780F4 - b _08177DDC -_08177D96: - bl sub_8178338 - b _08177DDC -_08177D9C: - bl sub_817839C - bl sub_8178404 - b _08177DDC -_08177DA6: - ldr r0, =sub_8178654 - movs r1, 0 - bl CreateTask - b _08177DDC - .pool -_08177DB4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - b _08177DDC -_08177DC2: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 -_08177DDA: - strb r0, [r2, 0x8] -_08177DDC: - ldr r1, =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08177E0C - .pool -_08177DF4: - ldr r0, =sub_8177C70 - bl SetVBlankCallback - ldr r0, =sub_8177C54 - bl SetMainCallback2 - movs r0, 0x1 - b _08177E0E - .pool -_08177E0C: - movs r0, 0 -_08177E0E: - add sp, 0x4 - pop {r1} - bx r1 - thumb_func_end sub_8177CB0 - - thumb_func_start sub_8177E14 -sub_8177E14: @ 8177E14 - push {r4,lr} - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085EFCF0 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =gUnknown_0203BCF4 - ldr r1, [r4] - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 4 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - bl ResetAllBgsCoordinates - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8177E14 - - thumb_func_start sub_8177E88 -sub_8177E88: @ 8177E88 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =gUnknown_0203BCF4 - ldr r0, [r1] - ldr r2, =0x00001808 - adds r0, r2 - ldrh r0, [r0] - adds r7, r1, 0 - cmp r0, 0x5 - bls _08177E9E - b _08177FEC -_08177E9E: - lsls r0, 2 - ldr r1, =_08177EB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08177EB4: - .4byte _08177ECC - .4byte _08177EF8 - .4byte _08177F1C - .4byte _08177F3C - .4byte _08177FA8 - .4byte _08177FC8 -_08177ECC: - bl reset_temp_tile_data_buffers - ldr r1, =gUnknown_08D9BB44 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gUnknown_0203BCF4 - ldr r1, [r0] - ldr r0, =0x00001808 - adds r1, r0 - b _08177FD6 - .pool -_08177EF8: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08177F06 - b _08177FFC -_08177F06: - ldr r0, =gUnknown_08D9BF98 - ldr r4, =gUnknown_0203BCF4 - ldr r1, [r4] - bl LZDecompressWram - ldr r1, [r4] - b _08177FD2 - .pool -_08177F1C: - ldr r0, =gUnknown_08D9C13C - ldr r1, [r7] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - bl LZDecompressWram - ldr r1, [r7] - ldr r0, =0x00001808 - adds r1, r0 - b _08177FD6 - .pool -_08177F3C: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08177F78 - movs r2, 0 - ldr r6, =gUnknown_0203BCF4 - movs r5, 0x80 - lsls r5, 4 - ldr r4, =0x00004042 - ldr r3, =0x000003ff -_08177F52: - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r5 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _08177F52 - b _08177F98 - .pool -_08177F78: - movs r2, 0 - ldr r6, =gUnknown_0203BCF4 - movs r5, 0x80 - lsls r5, 4 - ldr r4, =0x00005042 - ldr r3, =0x000003ff -_08177F84: - ldr r0, [r6] - lsls r1, r2, 1 - adds r0, r5 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _08177F84 -_08177F98: - ldr r1, [r7] - b _08177FD2 - .pool -_08177FA8: - ldr r0, =gUnknown_08D9BEF0 - movs r1, 0 - movs r2, 0xC0 - bl LoadCompressedPalette - ldr r0, =gUnknown_0203BCF4 - ldr r1, [r0] - ldr r0, =0x00001808 - adds r1, r0 - b _08177FD6 - .pool -_08177FC8: - ldr r0, =gUnknown_0857FDEC - bl LoadCompressedObjectPic - ldr r0, =gUnknown_0203BCF4 - ldr r1, [r0] -_08177FD2: - ldr r2, =0x00001808 - adds r1, r2 -_08177FD6: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _08177FFC - .pool -_08177FEC: - ldr r0, =gUnknown_0857FDF4 - bl LoadCompressedObjectPalette - movs r0, 0x1 - b _08177FFE - .pool -_08177FFC: - movs r0, 0 -_08177FFE: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8177E88 - - thumb_func_start sub_8178008 -sub_8178008: @ 8178008 - push {r4,lr} - ldr r0, =gUnknown_085EFD28 - bl InitWindows - bl DeactivateAllTextPrinters - ldr r0, =gUnknown_085EFD00 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - movs r4, 0 -_08178020: - lsls r0, r4, 24 - lsrs r0, 24 - bl PutWindowTilemap - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08178020 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178008 - - thumb_func_start sub_817804C -sub_817804C: @ 817804C - push {r4-r6,lr} - sub sp, 0x14 - ldr r6, [sp, 0x24] - ldr r5, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_085EFD20 - adds r4, r5 - str r4, [sp, 0x8] - lsls r6, 24 - asrs r6, 24 - str r6, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - bl AddTextPrinterParameterized2 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817804C - - thumb_func_start sub_8178090 -sub_8178090: @ 8178090 - push {r4,lr} - sub sp, 0x8 - movs r0, 0 - bl GetBgTilemapBuffer - ldr r1, =gUnknown_0203BCF4 - ldr r1, [r1] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - movs r2, 0x80 - lsls r2, 4 - bl memcpy - movs r0, 0x3 - movs r1, 0xFF - bl FillWindowPixelBuffer - ldr r4, =gText_BerryTag - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0x40 - bl GetStringCenterAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x3 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_817804C - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178090 - - thumb_func_start sub_81780F4 -sub_81780F4: @ 81780F4 - push {lr} - bl sub_8178110 - bl sub_8178174 - bl itemid_copy_name - bl sub_81782D0 - bl sub_8178304 - pop {r0} - bx r0 - thumb_func_end sub_81780F4 - - thumb_func_start sub_8178110 -sub_8178110: @ 8178110 - push {r4-r6,lr} - sub sp, 0x8 - ldr r5, =gUnknown_0203BCF4 - ldr r0, [r5] - movs r4, 0xC0 - lsls r4, 5 - adds r0, r4 - ldrb r0, [r0] - bl GetBerryInfo - adds r6, r0, 0 - ldr r0, =gStringVar1 - ldr r1, [r5] - adds r1, r4 - ldrh r1, [r1] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar2 - adds r1, r6, 0 - bl StringCopy - ldr r4, =gStringVar4 - ldr r1, =gText_UnkF908Var1Var2 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_817804C - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178110 - - thumb_func_start sub_8178174 -sub_8178174: @ 8178174 - push {r4-r7,lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r4, r0, 0 - ldr r2, =gText_SizeSlash - movs r7, 0x1 - str r7, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldrh r0, [r4, 0x8] - cmp r0, 0 - beq _08178230 - adds r1, r0, 0 - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - movs r1, 0xFE - bl __divsi3 - adds r5, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _081781C8 - adds r5, 0xA -_081781C8: - adds r0, r5, 0 - movs r1, 0x64 - bl __umodsi3 - movs r1, 0xA - bl __udivsi3 - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0x64 - bl __udivsi3 - adds r5, r0, 0 - ldr r0, =gStringVar1 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, =gStringVar4 - ldr r1, =gText_Var1DotVar2 - adds r0, r4, 0 - bl StringExpandPlaceholders - str r7, [sp] - str r6, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0x28 - bl PrintTextOnWindow - b _08178242 - .pool -_08178230: - ldr r2, =gText_ThreeMarks - str r7, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x28 - bl PrintTextOnWindow -_08178242: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178174 - - thumb_func_start itemid_copy_name -itemid_copy_name: @ 8178250 - push {r4-r6,lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r6, r0, 0 - ldr r2, =gText_FirmSlash - movs r5, 0x11 - str r5, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - ldrb r0, [r6, 0x7] - cmp r0, 0 - beq _081782B0 - ldr r0, =gBerryFirmnessStringPointers - ldrb r1, [r6, 0x7] - subs r1, 0x1 - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x28 - bl PrintTextOnWindow - b _081782C2 - .pool -_081782B0: - ldr r2, =gText_ThreeMarks - str r5, [sp] - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x1 - movs r1, 0x1 - movs r3, 0x28 - bl PrintTextOnWindow -_081782C2: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end itemid_copy_name - - thumb_func_start sub_81782D0 -sub_81782D0: @ 81782D0 - push {lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - ldr r2, [r0, 0xC] - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_81782D0 - - thumb_func_start sub_8178304 -sub_8178304: @ 8178304 - push {lr} - sub sp, 0xC - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - ldr r2, [r0, 0x10] - movs r0, 0x11 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x2 - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - add sp, 0xC - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178304 - - thumb_func_start sub_8178338 -sub_8178338: @ 8178338 - push {r4,lr} - ldr r4, =gUnknown_0203BCF4 - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x38 - movs r2, 0x40 - bl sub_80D50D4 - ldr r1, [r4] - ldr r2, =0x00001802 - adds r1, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178338 - - thumb_func_start sub_817836C -sub_817836C: @ 817836C - push {lr} - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - ldr r1, =0x00001802 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - bl sub_80D510C - pop {r0} - bx r0 - .pool - thumb_func_end sub_817836C - - thumb_func_start sub_817839C -sub_817839C: @ 817839C - push {r4,lr} - movs r0, 0x40 - bl sub_80D518C - ldr r4, =gUnknown_0203BCF4 - ldr r1, [r4] - ldr r2, =0x00001803 - adds r1, r2 - strb r0, [r1] - movs r0, 0x68 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001804 - adds r1, r2 - strb r0, [r1] - movs r0, 0x90 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001805 - adds r1, r2 - strb r0, [r1] - movs r0, 0xB8 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001806 - adds r1, r2 - strb r0, [r1] - movs r0, 0xE0 - bl sub_80D518C - ldr r1, [r4] - ldr r2, =0x00001807 - adds r1, r2 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_817839C - - thumb_func_start sub_8178404 -sub_8178404: @ 8178404 - push {r4,r5,lr} - ldr r4, =gUnknown_0203BCF4 - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldrb r0, [r0] - bl GetBerryInfo - adds r5, r0, 0 - ldrb r0, [r5, 0x15] - cmp r0, 0 - beq _08178448 - ldr r3, =gSprites - ldr r0, [r4] - ldr r1, =0x00001803 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _08178462 - .pool -_08178448: - ldr r3, =gSprites - ldr r0, [r4] - ldr r1, =0x00001803 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178462: - strb r1, [r0] - adds r4, r3, 0 - ldrb r0, [r5, 0x16] - cmp r0, 0 - beq _0817849C - ldr r3, =gUnknown_0203BCF4 - ldr r0, [r3] - ldr r1, =0x00001804 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _081784B6 - .pool -_0817849C: - ldr r3, =gUnknown_0203BCF4 - ldr r0, [r3] - ldr r1, =0x00001804 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_081784B6: - strb r1, [r0] - ldrb r0, [r5, 0x17] - cmp r0, 0 - beq _081784E8 - ldr r0, [r3] - ldr r1, =0x00001805 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _08178500 - .pool -_081784E8: - ldr r0, [r3] - ldr r1, =0x00001805 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178500: - strb r1, [r0] - ldrb r0, [r5, 0x18] - cmp r0, 0 - beq _0817852C - ldr r0, [r3] - ldr r1, =0x00001806 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _08178544 - .pool -_0817852C: - ldr r0, [r3] - ldr r1, =0x00001806 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178544: - strb r1, [r0] - ldrb r0, [r5, 0x19] - cmp r0, 0 - beq _08178570 - ldr r0, [r3] - ldr r1, =0x00001807 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - b _08178588 - .pool -_08178570: - ldr r0, [r3] - ldr r1, =0x00001807 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 -_08178588: - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178404 - - thumb_func_start sub_8178594 -sub_8178594: @ 8178594 - push {r4,lr} - movs r4, 0 -_08178598: - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - ldr r1, =0x00001803 - adds r0, r1 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _08178598 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178594 - - thumb_func_start sub_81785D0 -sub_81785D0: @ 81785D0 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8178610 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81785D0 - - thumb_func_start sub_8178610 -sub_8178610: @ 8178610 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08178642 - bl sub_817836C - bl sub_8178594 - ldr r0, =gUnknown_0203BCF4 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - ldr r0, =bag_menu_mail_related - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08178642: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178610 - - thumb_func_start sub_8178654 -sub_8178654: @ 8178654 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r4, r2, 0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081786A6 - ldr r3, =gMain - ldrh r0, [r3, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _08178688 - movs r1, 0x1 - negs r1, r1 - adds r0, r2, 0 - bl sub_81786AC - b _081786A6 - .pool -_08178688: - cmp r1, 0x80 - bne _08178696 - adds r0, r2, 0 - movs r1, 0x1 - bl sub_81786AC - b _081786A6 -_08178696: - ldrh r1, [r3, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081786A6 - adds r0, r4, 0 - bl sub_81785D0 -_081786A6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8178654 - - thumb_func_start sub_81786AC -sub_81786AC: @ 81786AC - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r2, =gTasks + 0x8 - adds r4, r0, r2 - ldr r2, =gUnknown_0203CE58 - ldrh r0, [r2, 0xE] - ldrh r2, [r2, 0x18] - adds r0, r2 - lsls r0, 16 - asrs r0, 16 - lsrs r7, r1, 24 - asrs r6, r1, 24 - adds r0, r6 - cmp r0, 0x2D - bhi _08178718 - lsls r1, r0, 16 - lsrs r1, 16 - movs r0, 0x4 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - cmp r0, 0 - beq _08178718 - cmp r6, 0 - bge _081786F4 - movs r0, 0x2 - b _081786F6 - .pool -_081786F4: - movs r0, 0x1 -_081786F6: - strh r0, [r4, 0x2] - movs r0, 0 - strh r0, [r4] - movs r0, 0x5 - bl PlaySE - lsls r0, r7, 24 - asrs r0, 24 - bl sub_8178728 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_81787AC - str r1, [r0] -_08178718: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81786AC - - thumb_func_start sub_8178728 -sub_8178728: @ 8178728 - push {r4-r6,lr} - ldr r5, =gUnknown_0203CE70 - adds r6, r5, 0 - subs r6, 0xA - lsls r0, 24 - asrs r4, r0, 24 - cmp r4, 0 - ble _08178764 - ldrh r0, [r6] - cmp r0, 0x3 - bls _08178752 - ldrh r1, [r5] - adds r1, 0x8 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - cmp r0, 0 - bne _08178760 -_08178752: - ldrh r0, [r6] - adds r0, r4 - strh r0, [r6] - b _0817877A - .pool -_08178760: - ldrh r0, [r5] - b _08178776 -_08178764: - ldrh r1, [r6] - cmp r1, 0x3 - bhi _08178770 - ldrh r0, [r5] - cmp r0, 0 - bne _08178776 -_08178770: - adds r0, r1, r4 - strh r0, [r6] - b _0817877A -_08178776: - adds r0, r4 - strh r0, [r5] -_0817877A: - ldrh r1, [r6] - ldrh r5, [r5] - adds r1, r5 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x4 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl ItemIdToBerryType - ldr r1, =gUnknown_0203BCF4 - ldr r1, [r1] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xC0 - lsls r2, 5 - adds r1, r2 - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8178728 - - thumb_func_start sub_81787AC -sub_81787AC: @ 81787AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - ldrh r0, [r6] - adds r0, 0x10 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6] - movs r1, 0x2 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _08178828 - movs r2, 0 - ldrsh r0, [r6, r2] - cmp r0, 0x70 - beq _08178888 - cmp r0, 0x70 - bgt _081787FE - cmp r0, 0x40 - beq _0817881A - cmp r0, 0x40 - bgt _081787F4 - cmp r0, 0x30 - beq _08178898 - b _081788A6 - .pool -_081787F4: - cmp r0, 0x50 - beq _0817888E - cmp r0, 0x60 - beq _08178820 - b _081788A6 -_081787FE: - cmp r0, 0xA0 - beq _08178824 - cmp r0, 0xA0 - bgt _08178810 - cmp r0, 0x80 - beq _08178882 - cmp r0, 0x90 - beq _08178878 - b _081788A6 -_08178810: - cmp r0, 0xB0 - beq _08178872 - cmp r0, 0xC0 - beq _0817886C - b _081788A6 -_0817881A: - bl sub_8178110 - b _081788A6 -_08178820: - movs r0, 0x1 - b _0817889A -_08178824: - movs r0, 0x2 - b _0817889A -_08178828: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x70 - beq _0817887E - cmp r0, 0x70 - bgt _0817884C - cmp r0, 0x40 - beq _0817886C - cmp r0, 0x40 - bgt _08178842 - cmp r0, 0x30 - beq _08178868 - b _081788A6 -_08178842: - cmp r0, 0x50 - beq _08178872 - cmp r0, 0x60 - beq _08178878 - b _081788A6 -_0817884C: - cmp r0, 0xA0 - beq _0817888E - cmp r0, 0xA0 - bgt _0817885E - cmp r0, 0x80 - beq _08178882 - cmp r0, 0x90 - beq _08178888 - b _081788A6 -_0817885E: - cmp r0, 0xB0 - beq _08178898 - cmp r0, 0xC0 - beq _081788A2 - b _081788A6 -_08178868: - movs r0, 0x2 - b _0817889A -_0817886C: - bl sub_8178304 - b _081788A6 -_08178872: - bl sub_81782D0 - b _081788A6 -_08178878: - bl sub_8178404 - b _081788A6 -_0817887E: - movs r0, 0x1 - b _0817889A -_08178882: - bl itemid_copy_name - b _081788A6 -_08178888: - bl sub_8178174 - b _081788A6 -_0817888E: - bl sub_817836C - bl sub_8178338 - b _081788A6 -_08178898: - movs r0, 0 -_0817889A: - movs r1, 0 - bl FillWindowPixelBuffer - b _081788A6 -_081788A2: - bl sub_8178110 -_081788A6: - movs r2, 0x2 - ldrsh r0, [r6, r2] - cmp r0, 0x1 - bne _081788B8 - ldrh r0, [r6] - negs r0, r0 - lsls r0, 16 - lsrs r5, r0, 16 - b _081788BA -_081788B8: - ldrh r5, [r6] -_081788BA: - ldr r2, =gSprites - ldr r3, =gUnknown_0203BCF4 - ldr r0, [r3] - ldr r1, =0x00001802 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r5, [r0, 0x26] - movs r4, 0 - adds r7, r2, 0 - ldr r2, =0x00001803 -_081788D6: - ldr r0, [r3] - adds r0, r2 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x26] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _081788D6 - movs r4, 0x80 - lsls r4, 5 - ldrb r2, [r6, 0x2] - movs r0, 0x1 - adds r1, r4, 0 - bl ChangeBgY - ldrb r2, [r6, 0x2] - movs r0, 0x2 - adds r1, r4, 0 - bl ChangeBgY - movs r2, 0 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _08178922 - ldr r0, =gTasks - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8178654 - str r0, [r1] -_08178922: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81787AC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s index 591b91775..010e83c49 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -4524,7 +4524,7 @@ ItemMenu_CheckTag: @ 81AD378 lsrs r0, 24 ldr r1, =gUnknown_0203CE54 ldr r2, [r1] - ldr r1, =sub_8177C14 + ldr r1, =DoBerryTagScreen str r1, [r2] bl unknown_ItemMenu_Confirm pop {r0} diff --git a/asm/item_menu_icons.s b/asm/item_menu_icons.s index 1adc0feb7..0d42796d4 100644 --- a/asm/item_menu_icons.s +++ b/asm/item_menu_icons.s @@ -527,8 +527,8 @@ _080D5082: .pool thumb_func_end sub_80D5070 - thumb_func_start sub_80D50D4 -sub_80D50D4: @ 80D50D4 + thumb_func_start CreateBerryTagSprite +CreateBerryTagSprite: @ 80D50D4 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 @@ -554,17 +554,17 @@ sub_80D50D4: @ 80D50D4 pop {r1} bx r1 .pool - thumb_func_end sub_80D50D4 + thumb_func_end CreateBerryTagSprite - thumb_func_start sub_80D510C -sub_80D510C: @ 80D510C + thumb_func_start FreeBerryTagSpritePalette +FreeBerryTagSpritePalette: @ 80D510C push {lr} ldr r0, =0x00007544 bl FreeSpritePaletteByTag pop {r0} bx r0 .pool - thumb_func_end sub_80D510C + thumb_func_end FreeBerryTagSpritePalette thumb_func_start sub_80D511C sub_80D511C: @ 80D511C @@ -617,8 +617,8 @@ _080D5172: .pool thumb_func_end sub_80D511C - thumb_func_start sub_80D518C -sub_80D518C: @ 80D518C + thumb_func_start CreateBerryFlavorCircleSprite +CreateBerryFlavorCircleSprite: @ 80D518C push {lr} adds r1, r0, 0 ldr r0, =gUnknown_0857FE10 @@ -632,6 +632,6 @@ sub_80D518C: @ 80D518C pop {r1} bx r1 .pool - thumb_func_end sub_80D518C + thumb_func_end CreateBerryFlavorCircleSprite .align 2, 0 @ Don't pad with nop. diff --git a/data/berry_tag_screen.s b/data/berry_tag_screen.s deleted file mode 100644 index 13078e8e5..000000000 --- a/data/berry_tag_screen.s +++ /dev/null @@ -1,34 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_085EFCF0:: @ 85EFCF0 - .4byte 0x000001f0, 0x000011e1, 0x000021d2, 0x000031c3 - - .align 2 -gUnknown_085EFD00:: @ 85EFD00 - .incbin "graphics/interface/berry_tag_screen.gbapal" - - .align 2 -gUnknown_085EFD20:: @ 85EFD20 struct TextColor - .byte 0x00, 0x02, 0x03 - - .byte 0x0F, 0x0E, 0x0D - - .align 2 -gUnknown_085EFD28:: @ 85EFD28 - window_template 0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045 - window_template 0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055 - window_template 0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d - window_template 0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101 - null_window_template - - .align 2 -gBerryFirmnessStringPointers:: @ 85EFD50 - .4byte gBerryFirmnessString_VerySoft - .4byte gBerryFirmnessString_Soft - .4byte gBerryFirmnessString_Hard - .4byte gBerryFirmnessString_VeryHard - .4byte gBerryFirmnessString_SuperHard diff --git a/include/berry_tag_screen.h b/include/berry_tag_screen.h new file mode 100644 index 000000000..26664bea6 --- /dev/null +++ b/include/berry_tag_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BERRY_TAG_SCREEN_H +#define GUARD_BERRY_TAG_SCREEN_H + +void DoBerryTagScreen(void); + +#endif // GUARD_BERRY_TAG_SCREEN_H diff --git a/include/graphics.h b/include/graphics.h index 5917e9d2a..6731dc973 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2654,6 +2654,12 @@ extern const u8 gBattleTerrainPalette_StadiumWallace[]; extern const u8 gPokedexMenu2_Gfx[]; extern const u8 gPokedexText_Pal[]; +// berry tag screen +extern const u8 gUnknown_08D9BB44[]; +extern const u8 gUnknown_08D9BF98[]; +extern const u8 gUnknown_08D9C13C[]; +extern const u8 gUnknown_08D9BEF0[]; + // rayquaza scene gfx extern const u8 gRaySceneGroudon_Gfx[]; extern const u8 gRaySceneGroudon2_Gfx[]; diff --git a/include/item.h b/include/item.h index a136f03ec..06eb08046 100644 --- a/include/item.h +++ b/include/item.h @@ -60,5 +60,6 @@ u8 ItemId_GetBattleUsage(u16 itemId); ItemUseFunc ItemId_GetBattleFunc(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); +u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos); #endif // ITEM_H diff --git a/include/item_menu.h b/include/item_menu.h index 85655e9d5..0ddd6766b 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -2,11 +2,24 @@ #define GUARD_item_menu_H // Exported type declarations +struct BagStruct +{ + void *func; + u8 unk4; + u8 pocket; + u8 unk6[2]; + u16 unk8[5]; + u16 unk12[5]; + void *unk1C; +}; + +extern struct BagStruct gUnknown_0203CE58; // Exported RAM declarations // Exported ROM declarations void sub_81AAC50(void); void sub_81AAC70(void); +void bag_menu_mail_related(void); #endif //GUARD_item_menu_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 553e7c262..c3932390c 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -1,6 +1,12 @@ #ifndef GUARD_ITEM_MENU_ICONS #define GUARD_ITEM_MENU_ICONS +extern const struct CompressedSpriteSheet gUnknown_0857FDEC; +extern const struct CompressedSpritePalette gUnknown_0857FDF4; + u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3); +u8 CreateBerryTagSprite(u8 id, s16 x, s16 y); +void FreeBerryTagSpritePalette(void); +u8 CreateBerryFlavorCircleSprite(s16 x); #endif // GUARD_ITEM_MENU_ICONS diff --git a/include/item_use.h b/include/item_use.h new file mode 100644 index 000000000..ee7939824 --- /dev/null +++ b/include/item_use.h @@ -0,0 +1,54 @@ +#ifndef GUARD_ITEM_USE_H +#define GUARD_ITEM_USE_H + +extern u16 gSpecialVar_ItemId; + +void ItemUseOutOfBattle_Mail(u8); +void ItemUseOutOfBattle_Bike(u8); +void ItemUseOnFieldCB_Bike(u8); +void ItemUseOutOfBattle_Rod(u8); +void ItemUseOnFieldCB_Rod(u8); +void ItemUseOutOfBattle_Itemfinder(u8); +void ItemUseOnFieldCB_Itemfinder(u8); +void RunItemfinderResults(u8); +void ExitItemfinder(u8); +bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8); +void sub_80C9720(u8); +void sub_80C9838(u8, s16, s16); +u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); +void SetPlayerDirectionTowardsItem(u8); +void DisplayItemRespondingMessageAndExitItemfinder(u8); +void RotatePlayerAndExitItemfinder(u8); +void ItemUseOutOfBattle_PokeblockCase(u8); +void ItemUseOutOfBattle_CoinCase(u8); +void ItemUseOutOfBattle_SSTicket(u8); +void sub_80C9D00(u8); +void ItemUseOutOfBattle_WailmerPail(u8); +void sub_80C9D74(u8); +void ItemUseOutOfBattle_Medicine(u8); +void ItemUseOutOfBattle_SacredAsh(u8); +void ItemUseOutOfBattle_PPRecovery(u8); +void ItemUseOutOfBattle_PPUp(u8); +void ItemUseOutOfBattle_RareCandy(u8); +void ItemUseOutOfBattle_TMHM(u8); +void sub_80C9EE4(u8); +void sub_80C9F10(u8); +void sub_80C9F80(u8); +void sub_80C9FC0(u8); +void ItemUseOutOfBattle_Repel(u8); +void ItemUseOutOfBattle_BlackWhiteFlute(u8); +void task08_080A1C44(u8); +u8 CanUseEscapeRopeOnCurrMap(void); +void ItemUseOutOfBattle_EscapeRope(u8); +void ItemUseOutOfBattle_EvolutionStone(u8); +void ItemUseInBattle_PokeBall(u8); +void ItemUseInBattle_StatIncrease(u8); +void ItemUseInBattle_Medicine(u8); +void ItemUseInBattle_PPRecovery(u8); +void ItemUseInBattle_Escape(u8); +void ItemUseOutOfBattle_EnigmaBerry(u8); +void ItemUseInBattle_EnigmaBerry(u8); +void ItemUseOutOfBattle_CannotUse(u8); +u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); + +#endif // GUARD_ITEM_USE_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 14b6d32ca..a91c89645 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -17,6 +17,7 @@ void sub_812225C(u16 *, u16 *, u8, u8); void sub_8122298(u16 *, u16 *, u8, u8, u8); void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data); bool8 sub_81221AC(void); +bool8 sub_81221EC(void); void ResetVramOamAndBgCntRegs(void); void SetVBlankHBlankCallbacksToNull(void); void ResetAllBgsCoordinates(void); diff --git a/include/strings.h b/include/strings.h index 305007c5d..9c998ca51 100644 --- a/include/strings.h +++ b/include/strings.h @@ -210,4 +210,17 @@ extern const u8 gText_LoadingEvent[]; extern const u8 gText_DontRemoveCableTurnOff[]; extern const u8 gText_LinkStandby2[]; +// berry tag screen text +extern const u8 gBerryFirmnessString_VerySoft[]; +extern const u8 gBerryFirmnessString_Soft[]; +extern const u8 gBerryFirmnessString_Hard[]; +extern const u8 gBerryFirmnessString_VeryHard[]; +extern const u8 gBerryFirmnessString_SuperHard[]; +extern const u8 gText_BerryTag[]; +extern const u8 gText_UnkF908Var1Var2[]; +extern const u8 gText_SizeSlash[]; +extern const u8 gText_Var1DotVar2[]; +extern const u8 gText_ThreeMarks[]; +extern const u8 gText_FirmSlash[]; + #endif //GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 345afb27f..31d699fc1 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -229,7 +229,7 @@ SECTIONS { asm/credits.o(.text); src/lottery_corner.o(.text); src/diploma.o(.text); - asm/berry_tag_screen.o(.text); + src/berry_tag_screen.o(.text); src/mystery_event_menu.o(.text); src/save_failed_screen.o(.text); src/braille_puzzles.o(.text); @@ -504,7 +504,7 @@ SECTIONS { src/lottery_corner.o(.rodata); src/diploma.o(.rodata); data/strings.o(.rodata); - data/berry_tag_screen.o(.rodata); + src/berry_tag_screen.o(.rodata); src/mystery_event_menu.o(.rodata); src/save_failed_screen.o(.rodata); data/braille_puzzles.o(.rodata); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c new file mode 100644 index 000000000..1e029bece --- /dev/null +++ b/src/berry_tag_screen.c @@ -0,0 +1,653 @@ +#include "global.h" +#include "berry_tag_screen.h" +#include "berry.h" +#include "decompress.h" +#include "field_map_obj.h" +#include "item_menu.h" +#include "constants/items.h" +#include "item.h" +#include "item_use.h" +#include "main.h" +#include "menu.h" +#include "text.h" +#include "window.h" +#include "task.h" +#include "menu_helpers.h" +#include "palette.h" +#include "overworld.h" +#include "constants/songs.h" +#include "sound.h" +#include "sprite.h" +#include "string_util.h" +#include "strings.h" +#include "bg.h" +#include "malloc.h" +#include "scanline_effect.h" +#include "gpu_regs.h" +#include "graphics.h" +#include "item_menu_icons.h" +#include "decompress.h" +#include "international_string_util.h" + +// There are 4 windows used in berry tag screen. +enum +{ + WIN_BERRY_NAME, + WIN_SIZE_FIRM, + WIN_DESC, + WIN_BERRY_TAG +}; + +struct BerryTagScreenStruct +{ + u16 tilemapBuffers[3][0x400]; + u16 berryId; + u8 berrySpriteId; + u8 flavorCircleIds[FLAVOR_COUNT]; + u16 gfxState; +}; + +// EWRAM vars +static EWRAM_DATA struct BerryTagScreenStruct *sBerryTag = NULL; + +// const rom data +static const struct BgTemplate sBackgroundTemplates[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 28, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +static const u16 sFontPalette[] = INCBIN_U16("graphics/interface/berry_tag_screen.gbapal"); + +static const struct TextColor sTextColors[] = +{ + {0, 2, 3}, + {15, 14, 13} +}; + +static const struct WindowTemplate sWindowTemplates[] = +{ + {0x01, 0x0b, 0x04, 0x08, 0x02, 0x0f, 0x0045}, // WIN_BERRY_NAME + {0x01, 0x0b, 0x07, 0x12, 0x04, 0x0f, 0x0055}, // WIN_SIZE_FIRM + {0x01, 0x04, 0x0e, 0x19, 0x04, 0x0f, 0x009d}, // WIN_DESC + {0x00, 0x02, 0x00, 0x08, 0x02, 0x0f, 0x0101}, // WIN_BERRY_TAG + DUMMY_WIN_TEMPLATE +}; + +static const u8 *const sBerryFirmnessStrings[] = +{ + gBerryFirmnessString_VerySoft, + gBerryFirmnessString_Soft, + gBerryFirmnessString_Hard, + gBerryFirmnessString_VeryHard, + gBerryFirmnessString_SuperHard +}; + +// this file's functions +static void CB2_InitBerryTagScreen(void); +static void HandleInitBackgrounds(void); +static void HandleInitWindows(void); +static void AddBerryTagTextToBg0(void); +static void PrintAllBerryData(void); +static void CreateBerrySprite(void); +static void CreateFlavorCircleSprites(void); +static void SetFlavorCirclesVisiblity(void); +static void PrintBerryNumberAndName(void); +static void PrintBerrySize(void); +static void PrintBerryFirmness(void); +static void PrintBerryDescription1(void); +static void PrintBerryDescription2(void); +static bool8 InitBerryTagScreen(void); +static bool8 LoadBerryTagGfx(void); +static void Task_HandleInput(u8 taskId); +static void Task_CloseBerryTagScreen(u8 taskId); +static void Task_DisplayAnotherBerry(u8 taskId); +static void TryChangeDisplayedBerry(u8 taskId, s8 toMove); +static void HandleBagCursorPositionChange(s8 toMove); + +// code +void DoBerryTagScreen(void) +{ + sBerryTag = AllocZeroed(sizeof(*sBerryTag)); + sBerryTag->berryId = ItemIdToBerryType(gSpecialVar_ItemId); + SetMainCallback2(CB2_InitBerryTagScreen); +} + +static void CB2_BerryTagScreen(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void VblankCB(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void CB2_InitBerryTagScreen(void) +{ + while (1) + { + if (sub_81221EC() == TRUE) + break; + if (InitBerryTagScreen() == TRUE) + break; + if (sub_81221AC() == TRUE) + break; + } +} + +static bool8 InitBerryTagScreen(void) +{ + switch (gMain.state) + { + case 0: + SetVBlankHBlankCallbacksToNull(); + ResetVramOamAndBgCntRegs(); + clear_scheduled_bg_copies_to_vram(); + gMain.state++; + break; + case 1: + ScanlineEffect_Stop(); + gMain.state++; + break; + case 2: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = 1; + gMain.state++; + break; + case 3: + ResetSpriteData(); + gMain.state++; + break; + case 4: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 5: + if (!sub_81221AC()) + ResetTasks(); + gMain.state++; + break; + case 6: + HandleInitBackgrounds(); + sBerryTag->gfxState = 0; + gMain.state++; + break; + case 7: + if (LoadBerryTagGfx()) + gMain.state++; + break; + case 8: + HandleInitWindows(); + gMain.state++; + break; + case 9: + AddBerryTagTextToBg0(); + gMain.state++; + break; + case 10: + PrintAllBerryData(); + gMain.state++; + break; + case 11: + CreateBerrySprite(); + gMain.state++; + break; + case 12: + CreateFlavorCircleSprites(); + SetFlavorCirclesVisiblity(); + gMain.state++; + break; + case 13: + CreateTask(Task_HandleInput, 0); + gMain.state++; + break; + case 14: + BlendPalettes(-1, 0x10, 0); + gMain.state++; + break; + case 15: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + gPaletteFade.bufferTransferDisabled = 0; + gMain.state++; + break; + default: // done + SetVBlankCallback(VblankCB); + SetMainCallback2(CB2_BerryTagScreen); + return TRUE; + } + + return FALSE; +} + +static void HandleInitBackgrounds(void) +{ + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, sBackgroundTemplates, ARRAY_COUNT(sBackgroundTemplates)); + SetBgTilemapBuffer(2, sBerryTag->tilemapBuffers[0]); + SetBgTilemapBuffer(3, sBerryTag->tilemapBuffers[1]); + ResetAllBgsCoordinates(); + schedule_bg_copy_tilemap_to_vram(2); + schedule_bg_copy_tilemap_to_vram(3); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); +} + +static bool8 LoadBerryTagGfx(void) +{ + u16 i; + + switch (sBerryTag->gfxState) + { + case 0: + reset_temp_tile_data_buffers(); + decompress_and_copy_tile_data_to_vram(2, gUnknown_08D9BB44, 0, 0, 0); + sBerryTag->gfxState++; + break; + case 1: + if (free_temp_tile_data_buffers_if_possible() != TRUE) + { + LZDecompressWram(gUnknown_08D9BF98, sBerryTag->tilemapBuffers[0]); + sBerryTag->gfxState++; + } + break; + case 2: + LZDecompressWram(gUnknown_08D9C13C, sBerryTag->tilemapBuffers[2]); + sBerryTag->gfxState++; + break; + case 3: + if (gSaveBlock2Ptr->playerGender == MALE) + { + for (i = 0; i < ARRAY_COUNT(sBerryTag->tilemapBuffers[1]); i++) + sBerryTag->tilemapBuffers[1][i] = 0x4042; + } + else + { + for (i = 0; i < ARRAY_COUNT(sBerryTag->tilemapBuffers[1]); i++) + sBerryTag->tilemapBuffers[1][i] = 0x5042; + } + sBerryTag->gfxState++; + break; + case 4: + LoadCompressedPalette(gUnknown_08D9BEF0, 0, 0xC0); + sBerryTag->gfxState++; + break; + case 5: + LoadCompressedObjectPic(&gUnknown_0857FDEC); + sBerryTag->gfxState++; + break; + default: + LoadCompressedObjectPalette(&gUnknown_0857FDF4); + return TRUE; // done + } + + return FALSE; +} + +static void HandleInitWindows(void) +{ + u16 i; + + InitWindows(sWindowTemplates); + DeactivateAllTextPrinters(); + LoadPalette(sFontPalette, 0xF0, 0x20); + for (i = 0; i < ARRAY_COUNT(sWindowTemplates) - 1; i++) + PutWindowTilemap(i); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); +} + +static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId) +{ + AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, &sTextColors[colorStructId], speed, text); +} + +static void AddBerryTagTextToBg0(void) +{ + memcpy(GetBgTilemapBuffer(0), sBerryTag->tilemapBuffers[2], sizeof(sBerryTag->tilemapBuffers[2])); + FillWindowPixelBuffer(WIN_BERRY_TAG, 0xFF); + PrintTextInBerryTagScreen(WIN_BERRY_TAG, gText_BerryTag, GetStringCenterAlignXOffset(1, gText_BerryTag, 0x40), 1, 0, 1); + PutWindowTilemap(WIN_BERRY_TAG); + schedule_bg_copy_tilemap_to_vram(0); +} + +static void PrintAllBerryData(void) +{ + PrintBerryNumberAndName(); + PrintBerrySize(); + PrintBerryFirmness(); + PrintBerryDescription1(); + PrintBerryDescription2(); +} + +static void PrintBerryNumberAndName(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, 2, 2); + StringCopy(gStringVar2, berry->name); + StringExpandPlaceholders(gStringVar4, gText_UnkF908Var1Var2); + PrintTextInBerryTagScreen(WIN_BERRY_NAME, gStringVar4, 0, 1, 0, 0); +} + +static void PrintBerrySize(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL); + if (berry->size != 0) + { + u32 inches, fraction; + + inches = 1000 * berry->size / 254; + if (inches % 10 > 4) + inches += 10; + fraction = (inches % 100) / 10; + inches /= 100; + + ConvertIntToDecimalStringN(gStringVar1, inches, 0, 2); + ConvertIntToDecimalStringN(gStringVar2, fraction, 0, 2); + StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL); + } + else + { + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL); + } +} + +static void PrintBerryFirmness(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL); + if (berry->firmness != 0) + PrintTextOnWindow(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL); + else + PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL); +} + +static void PrintBerryDescription1(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL); +} + +static void PrintBerryDescription2(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + PrintTextOnWindow(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL); +} + +static void CreateBerrySprite(void) +{ + sBerryTag->berrySpriteId = CreateBerryTagSprite(sBerryTag->berryId - 1, 56, 64); +} + +static void DestroyBerrySprite(void) +{ + DestroySprite(&gSprites[sBerryTag->berrySpriteId]); + FreeBerryTagSpritePalette(); +} + +static void CreateFlavorCircleSprites(void) +{ + sBerryTag->flavorCircleIds[FLAVOR_SPICY] = CreateBerryFlavorCircleSprite(64); + sBerryTag->flavorCircleIds[FLAVOR_DRY] = CreateBerryFlavorCircleSprite(104); + sBerryTag->flavorCircleIds[FLAVOR_SWEET] = CreateBerryFlavorCircleSprite(144); + sBerryTag->flavorCircleIds[FLAVOR_BITTER] = CreateBerryFlavorCircleSprite(184); + sBerryTag->flavorCircleIds[FLAVOR_SOUR] = CreateBerryFlavorCircleSprite(224); +} + +static void SetFlavorCirclesVisiblity(void) +{ + const struct Berry *berry = GetBerryInfo(sBerryTag->berryId); + + if (berry->spicy) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = 1; + + if (berry->dry) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = 1; + + if (berry->sweet) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = 1; + + if (berry->bitter) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = 1; + + if (berry->sour) + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 0; + else + gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = 1; +} + +static void DestroyFlavorCircleSprites(void) +{ + u16 i; + + for (i = 0; i < FLAVOR_COUNT; i++) + DestroySprite(&gSprites[sBerryTag->flavorCircleIds[i]]); +} + +static void PrepareToCloseBerryTagScreen(u8 taskId) +{ + PlaySE(SE_SELECT); + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + gTasks[taskId].func = Task_CloseBerryTagScreen; +} + +static void Task_CloseBerryTagScreen(u8 taskId) +{ + if (!gPaletteFade.active) + { + DestroyBerrySprite(); + DestroyFlavorCircleSprites(); + Free(sBerryTag); + FreeAllWindowBuffers(); + SetMainCallback2(bag_menu_mail_related); + DestroyTask(taskId); + } +} + +static void Task_HandleInput(u8 taskId) +{ + if (!gPaletteFade.active) + { + u16 arrowKeys = gMain.newAndRepeatedKeys & DPAD_ANY; + if (arrowKeys == DPAD_UP) + TryChangeDisplayedBerry(taskId, -1); + else if (arrowKeys == DPAD_DOWN) + TryChangeDisplayedBerry(taskId, 1); + else if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + PrepareToCloseBerryTagScreen(taskId); + } +} + +static void TryChangeDisplayedBerry(u8 taskId, s8 toMove) +{ + s16 *data = gTasks[taskId].data; + s16 currPocketPosition = gUnknown_0203CE58.unk12[3] + gUnknown_0203CE58.unk8[3]; + u32 newPocketPosition = currPocketPosition + toMove; + if (newPocketPosition < 46 && BagGetItemIdByPocketPosition(BAG_BERRIES, newPocketPosition) != 0) + { + if (toMove < 0) + data[1] = 2; + else + data[1] = 1; + + data[0] = 0; + PlaySE(SE_SELECT); + HandleBagCursorPositionChange(toMove); + gTasks[taskId].func = Task_DisplayAnotherBerry; + } +} + +static void HandleBagCursorPositionChange(s8 toMove) +{ + u16 *scrollPos = &gUnknown_0203CE58.unk12[3]; + u16 *cursorPos = &gUnknown_0203CE58.unk8[3]; + if (toMove > 0) + { + if (*cursorPos < 4 || BagGetItemIdByPocketPosition(BAG_BERRIES, *scrollPos + 8) == 0) + *cursorPos += toMove; + else + *scrollPos += toMove; + } + else + { + if (*cursorPos > 3 || *scrollPos == 0) + *cursorPos += toMove; + else + *scrollPos += toMove; + } + + sBerryTag->berryId = ItemIdToBerryType(BagGetItemIdByPocketPosition(BAG_BERRIES, *scrollPos + *cursorPos)); +} + +static void Task_DisplayAnotherBerry(u8 taskId) +{ + u16 i; + s16 posY; + s16 *data = gTasks[taskId].data; + data[0] += 0x10; + data[0] &= 0xFF; + + if (data[1] == 1) + { + switch (data[0]) + { + case 0x30: + FillWindowPixelBuffer(0, 0); + break; + case 0x40: + PrintBerryNumberAndName(); + break; + case 0x50: + DestroyBerrySprite(); + CreateBerrySprite(); + break; + case 0x60: + FillWindowPixelBuffer(1, 0); + break; + case 0x70: + PrintBerrySize(); + break; + case 0x80: + PrintBerryFirmness(); + break; + case 0x90: + SetFlavorCirclesVisiblity(); + break; + case 0xA0: + FillWindowPixelBuffer(2, 0); + break; + case 0xB0: + PrintBerryDescription1(); + break; + case 0xC0: + PrintBerryDescription2(); + break; + } + } + else + { + switch (data[0]) + { + case 0x30: + FillWindowPixelBuffer(2, 0); + break; + case 0x40: + PrintBerryDescription2(); + break; + case 0x50: + PrintBerryDescription1(); + break; + case 0x60: + SetFlavorCirclesVisiblity(); + break; + case 0x70: + FillWindowPixelBuffer(1, 0); + break; + case 0x80: + PrintBerryFirmness(); + break; + case 0x90: + PrintBerrySize(); + break; + case 0xA0: + DestroyBerrySprite(); + CreateBerrySprite(); + break; + case 0xB0: + FillWindowPixelBuffer(0, 0); + break; + case 0xC0: + PrintBerryNumberAndName(); + break; + } + } + + if (data[1] == 1) + posY = -data[0]; + else + posY = data[0]; + + gSprites[sBerryTag->berrySpriteId].pos2.y = posY; + for (i = 0; i < FLAVOR_COUNT; i++) + gSprites[sBerryTag->flavorCircleIds[i]].pos2.y = posY; + + ChangeBgY(1, 0x1000, data[1]); + ChangeBgY(2, 0x1000, data[1]); + + if (data[0] == 0) + gTasks[taskId].func = Task_HandleInput; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index b32e11739..fc24a66df 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1247,10 +1247,7 @@ gUnknown_0203BCE8: @ 203BCE8 .include "src/lottery_corner.o" .include "src/diploma.o" - -gUnknown_0203BCF4: @ 203BCF4 - .space 0x4 - + .include "src/berry_tag_screen.o" .include "src/mystery_event_menu.o" .include "src/save_failed_screen.o" |