summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/scene/berry_blender.c487
1 files changed, 483 insertions, 4 deletions
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c
index 2535f02a6..5b013e8de 100644
--- a/src/scene/berry_blender.c
+++ b/src/scene/berry_blender.c
@@ -274,7 +274,7 @@ static void sub_8051B18(void);
static void sub_805123C(void);
static void sub_8050954(void);
static bool8 Blender_PrintBlendingRanking(void);
-static bool8 Blender_PrintBlendingResults(void);
+bool8 Blender_PrintBlendingResults(void);
static void sub_80510E8(void);
static void sub_8050E30(void);
static void sub_805197C(u16 a0, u16 a1);
@@ -3278,10 +3278,489 @@ static void sub_8051C04(struct Sprite* sprite)
#if DEBUG
__attribute__((naked))
-static bool8 Blender_PrintBlendingResults(void)
+bool8 Blender_PrintBlendingResults(void)
{
- // TODO: disassemble this!
- asm(".incbin \"baserom_de_debug.gba\", 0x56178, 0x5655C-0x56178");
+ asm(".syntax unified\n\
+loc_8056178:\n\
+ PUSH {R4-R7,LR}\n\
+ MOV R7, R10\n\
+ MOV R6, R9\n\
+ MOV R5, R8\n\
+ PUSH {R5-R7}\n\
+ SUB SP, SP, #0x34\n\
+ LDR R1, off_805619C\n\
+ LDR R0, [R1]\n\
+ LDRB R0, [R0]\n\
+ ADDS R2, R1, #0\n\
+ CMP R0, #6 @ switch 7 cases\n\
+ BLS loc_8056192\n\
+ B def_805619A @ jumptable 0805619A default case\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_8056192:\n\
+ LSLS R0, R0, #2\n\
+ LDR R1, off_80561A0\n\
+ ADDS R0, R0, R1\n\
+ LDR R0, [R0]\n\
+ MOV PC, R0 @ switch jump\n\
+@ ---------------------------------------------------------------------------\n\
+off_805619C: .4byte gBerryBlenderData\n\
+off_80561A0: .4byte jpt_805619A\n\
+jpt_805619A: .4byte loc_80561C0 @ jump table for switch statement\n\
+ .4byte loc_80561D6 @ jumptable 0805619A case 1\n\
+ .4byte loc_80561F0 @ jumptable 0805619A case 2\n\
+ .4byte loc_8056240 @ jumptable 0805619A case 3\n\
+ .4byte loc_805645C @ jumptable 0805619A case 4\n\
+ .4byte loc_8056470 @ jumptable 0805619A case 5\n\
+ .4byte loc_8056538 @ jumptable 0805619A case 6\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_80561C0: @ jumptable 0805619A case 0\n\
+ LDR R1, [R2]\n\
+ LDRB R0, [R1]\n\
+ ADDS R0, #1\n\
+ STRB R0, [R1]\n\
+ LDR R0, [R2]\n\
+ MOVS R1, #0x98\n\
+ LSLS R1, R1, #1\n\
+ ADDS R0, R0, R1\n\
+ MOVS R1, #0x11\n\
+ STR R1, [R0]\n\
+ B def_805619A @ jumptable 0805619A default case\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_80561D6: @ jumptable 0805619A case 1\n\
+ LDR R1, [R2]\n\
+ MOVS R0, #0x98\n\
+ LSLS R0, R0, #1\n\
+ ADDS R2, R1, R0\n\
+ LDR R0, [R2]\n\
+ SUBS R0, #0xA\n\
+ STR R0, [R2]\n\
+ CMP R0, #0\n\
+ BLT loc_80561EA\n\
+ B def_805619A @ jumptable 0805619A default case\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_80561EA:\n\
+ MOVS R0, #0\n\
+ STR R0, [R2]\n\
+ B loc_8056520\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_80561F0: @ jumptable 0805619A case 2\n\
+ LDR R1, [R2]\n\
+ MOVS R2, #0x98\n\
+ LSLS R2, R2, #1\n\
+ ADDS R1, R1, R2\n\
+ LDR R0, [R1]\n\
+ ADDS R0, #1\n\
+ STR R0, [R1]\n\
+ CMP R0, #0x14\n\
+ BGT loc_8056204\n\
+ B def_805619A @ jumptable 0805619A default case\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_8056204:\n\
+ MOVS R6, #0\n\
+\n\
+loc_8056206:\n\
+ LDR R4, off_8056238\n\
+ LDR R0, [R4]\n\
+ ADDS R0, #0x50\n\
+ ADDS R0, R0, R6\n\
+ LDRB R1, [R0]\n\
+ LSLS R0, R1, #4\n\
+ ADDS R0, R0, R1\n\
+ LSLS R0, R0, #2\n\
+ LDR R1, off_805623C\n\
+ ADDS R0, R0, R1\n\
+ BL DestroySprite\n\
+ ADDS R0, R6, #1\n\
+ LSLS R0, R0, #0x10\n\
+ LSRS R6, R0, #0x10\n\
+ CMP R6, #2\n\
+ BLS loc_8056206\n\
+ LDR R1, [R4]\n\
+ MOVS R0, #0x98\n\
+ LSLS R0, R0, #1\n\
+ ADDS R2, R1, R0\n\
+ MOVS R0, #0\n\
+ STR R0, [R2]\n\
+ B loc_8056520\n\
+@ ---------------------------------------------------------------------------\n\
+ .align 2, 0\n\
+off_8056238: .4byte gBerryBlenderData\n\
+off_805623C: .4byte gSprites\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_8056240: @ jumptable 0805619A case 3\n\
+ MOVS R0, #4\n\
+ MOVS R1, #2\n\
+ MOVS R2, #0x19\n\
+ MOVS R3, #0x11\n\
+ BL Menu_DrawStdWindowFrame\n\
+ LDR R0, dword_805642C\n\
+ MOVS R1, #5\n\
+ MOVS R2, #3\n\
+ MOVS R3, #0xA0\n\
+ BL sub_8072BD8\n\
+ MOVS R6, #0\n\
+ LDR R1, off_8056430\n\
+ LDR R0, [R1]\n\
+ ADDS R0, #0x88\n\
+ ADD R2, SP, #0xC\n\
+ MOV R8, R2\n\
+ MOV R2, SP\n\
+ ADDS R2, #0x16\n\
+ STR R2, [SP,#0x30]\n\
+ LDRB R0, [R0]\n\
+ CMP R6, R0\n\
+ BCS loc_8056322\n\
+ MOV R9, R1\n\
+ LDR R0, off_8056434\n\
+ MOV R10, R0\n\
+\n\
+loc_8056276:\n\
+ MOV R1, R9\n\
+ LDR R2, [R1]\n\
+ MOVS R1, #0xB2\n\
+ LSLS R1, R1, #1\n\
+ ADDS R0, R2, R1\n\
+ ADDS R0, R0, R6\n\
+ LDRB R4, [R0]\n\
+ LSLS R1, R4, #4\n\
+ ADDS R1, R1, R2\n\
+ MOVS R2, #0xBF\n\
+ LSLS R2, R2, #1\n\
+ ADDS R1, R1, R2\n\
+ MOV R0, R8\n\
+ BL StringCopy\n\
+ LSLS R5, R4, #3\n\
+ SUBS R5, R5, R4\n\
+ LSLS R5, R5, #2\n\
+ MOV R1, R10\n\
+ ADDS R0, R5, R1\n\
+ LDRB R1, [R0,#0x1A]\n\
+ MOV R0, R8\n\
+ BL ConvertInternationalString\n\
+ MOV R0, R8\n\
+ LDR R1, dword_8056438\n\
+ BL de_sub_8073174\n\
+ MOV R2, R9\n\
+ LDR R0, [R2]\n\
+ ADDS R7, R0, #0\n\
+ ADDS R7, #0xAB\n\
+ ADDS R4, R6, #1\n\
+ ADDS R0, R7, #0\n\
+ ADDS R1, R4, #0\n\
+ BL ConvertIntToDecimalString\n\
+ ADDS R7, R0, #0\n\
+ MOVS R1, #0\n\
+ STRB R1, [R7]\n\
+ MOVS R0, #0xAD\n\
+ STRB R0, [R7,#1]\n\
+ STRB R1, [R7,#2]\n\
+ ADDS R7, #3\n\
+ LDR R0, off_805643C\n\
+ ADDS R5, R5, R0\n\
+ ADDS R0, R7, #0\n\
+ ADDS R1, R5, #0\n\
+ MOVS R2, #0x58\n\
+ MOVS R3, #0\n\
+ BL sub_8072C74\n\
+ ADDS R7, R0, #0\n\
+ ADD R1, SP, #0xC\n\
+ MOVS R2, #0x9D\n\
+ MOVS R3, #0\n\
+ BL sub_8072C74\n\
+ MOV R2, R9\n\
+ LDR R1, [R2]\n\
+ ADDS R0, R1, #0\n\
+ ADDS R0, #0xAB\n\
+ LDR R3, dword_8056440\n\
+ ADDS R1, #0x88\n\
+ LDRB R2, [R1]\n\
+ ADDS R3, R2, R3\n\
+ LDR R1, dword_8056444\n\
+ ADDS R2, R2, R1\n\
+ LDRB R1, [R2]\n\
+ ADDS R2, R6, #0\n\
+ MULS R2, R1\n\
+ LDRB R3, [R3]\n\
+ ADDS R2, R2, R3\n\
+ LSLS R2, R2, #0x18\n\
+ LSRS R2, R2, #0x18\n\
+ MOVS R1, #5\n\
+ BL Menu_PrintText\n\
+ LSLS R4, R4, #0x10\n\
+ LSRS R6, R4, #0x10\n\
+ MOV R1, R9\n\
+ LDR R0, [R1]\n\
+ ADDS R0, #0x88\n\
+ LDRB R0, [R0]\n\
+ CMP R6, R0\n\
+ BCC loc_8056276\n\
+\n\
+loc_8056322:\n\
+ LDR R6, off_8056430\n\
+ LDR R0, [R6]\n\
+ ADDS R0, #0x5A\n\
+ LDRH R0, [R0]\n\
+ MOVS R1, #0x64\n\
+ BL __umodsi3\n\
+ ADDS R1, R0, #0\n\
+ LSLS R1, R1, #0x10\n\
+ LSRS R1, R1, #0x10\n\
+ MOV R0, R8\n\
+ MOVS R2, #2\n\
+ MOVS R3, #2\n\
+ BL ConvertIntToDecimalStringN\n\
+ LDR R0, [R6]\n\
+ ADDS R7, R0, #0\n\
+ ADDS R7, #0xAB\n\
+ LDR R1, dword_8056448\n\
+ ADDS R0, R7, #0\n\
+ BL StringCopy\n\
+ ADDS R7, R0, #0\n\
+ LDR R0, [R6]\n\
+ ADDS R0, #0x5A\n\
+ LDRH R0, [R0]\n\
+ MOVS R1, #0x64\n\
+ BL __udivsi3\n\
+ ADDS R1, R0, #0\n\
+ LSLS R1, R1, #0x10\n\
+ LSRS R1, R1, #0x10\n\
+ ADDS R0, R7, #0\n\
+ MOVS R2, #0x79\n\
+ MOVS R3, #1\n\
+ BL sub_8072C14\n\
+ ADDS R7, R0, #0\n\
+ MOVS R0, #0xB8\n\
+ STRB R0, [R7]\n\
+ ADDS R7, #1\n\
+ ADDS R0, R7, #0\n\
+ MOV R1, R8\n\
+ MOVS R2, #0x88\n\
+ MOVS R3, #1\n\
+ BL sub_8072C74\n\
+ ADDS R7, R0, #0\n\
+ LDR R1, off_805644C\n\
+ BL StringCopy\n\
+ LDR R0, [R6]\n\
+ ADDS R0, #0xAB\n\
+ MOVS R1, #5\n\
+ MOVS R2, #0xD\n\
+ BL Menu_PrintText\n\
+ LDR R0, [R6]\n\
+ MOVS R2, #0x96\n\
+ LSLS R2, R2, #1\n\
+ ADDS R0, R0, R2\n\
+ LDR R0, [R0]\n\
+ MOVS R1, #0x3C\n\
+ BL __udivsi3\n\
+ ADDS R4, R0, #0\n\
+ LSLS R4, R4, #0x10\n\
+ LSRS R4, R4, #0x10\n\
+ ADDS R0, R4, #0\n\
+ MOVS R1, #0x3C\n\
+ BL __umodsi3\n\
+ ADDS R5, R0, #0\n\
+ LSLS R5, R5, #0x10\n\
+ LSRS R5, R5, #0x10\n\
+ ADDS R0, R4, #0\n\
+ MOVS R1, #0x3C\n\
+ BL __udivsi3\n\
+ ADDS R1, R0, #0\n\
+ LSLS R1, R1, #0x10\n\
+ LSRS R1, R1, #0x10\n\
+ MOV R0, R8\n\
+ MOVS R2, #2\n\
+ MOVS R3, #2\n\
+ BL ConvertIntToDecimalStringN\n\
+ LDR R0, [SP,#0x30]\n\
+ ADDS R1, R5, #0\n\
+ MOVS R2, #2\n\
+ MOVS R3, #2\n\
+ BL ConvertIntToDecimalStringN\n\
+ LDR R0, [R6]\n\
+ ADDS R7, R0, #0\n\
+ ADDS R7, #0xAB\n\
+ LDR R1, dword_8056450\n\
+ ADDS R0, R7, #0\n\
+ BL StringCopy\n\
+ ADDS R7, R0, #0\n\
+ MOV R1, R8\n\
+ MOVS R2, #0x63\n\
+ MOVS R3, #1\n\
+ BL sub_8072C74\n\
+ ADDS R7, R0, #0\n\
+ LDR R1, dword_8056454\n\
+ BL StringAppend\n\
+ ADDS R7, R0, #0\n\
+ LDR R1, [SP,#0x30]\n\
+ MOVS R2, #0x88\n\
+ MOVS R3, #1\n\
+ BL sub_8072C74\n\
+ ADDS R7, R0, #0\n\
+ LDR R1, dword_8056458\n\
+ BL StringCopy\n\
+ LDR R0, [R6]\n\
+ ADDS R0, #0xAB\n\
+ MOVS R1, #5\n\
+ MOVS R2, #0xF\n\
+ BL Menu_PrintText\n\
+ LDR R1, [R6]\n\
+ MOVS R0, #0x98\n\
+ LSLS R0, R0, #1\n\
+ ADDS R2, R1, R0\n\
+ MOVS R0, #0\n\
+ STR R0, [R2]\n\
+ B loc_8056520\n\
+@ ---------------------------------------------------------------------------\n\
+dword_805642C: .4byte gOtherText_ResultsOfBlending\n\
+off_8056430: .4byte gBerryBlenderData\n\
+off_8056434: .4byte gLinkPlayers\n\
+dword_8056438: .4byte gOtherText_Berry\n\
+off_805643C: .4byte gLinkPlayers+0x8\n\
+dword_8056440: .4byte gUnknown_082165E9\n\
+dword_8056444: .4byte gUnknown_082165EE\n\
+dword_8056448: .4byte gOtherText_MaxSpeed\n\
+off_805644C: .4byte gOtherText_RPM\n\
+dword_8056450: .4byte gOtherText_RequiredTime\n\
+dword_8056454: .4byte gOtherText_Min\n\
+dword_8056458: .4byte gOtherText_Sec\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_805645C: @ jumptable 0805619A case 4\n\
+ LDR R0, off_805646C\n\
+ LDRH R1, [R0,#0x2E]\n\
+ MOVS R0, #1\n\
+ ANDS R0, R1\n\
+ CMP R0, #0\n\
+ BEQ def_805619A @ jumptable 0805619A default case\n\
+ LDR R1, [R2]\n\
+ B loc_8056520\n\
+@ ---------------------------------------------------------------------------\n\
+off_805646C: .4byte gMain\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_8056470: @ jumptable 0805619A case 5\n\
+ BL Menu_EraseScreen\n\
+ MOVS R0, #0\n\
+ MOVS R1, #0xE\n\
+ MOVS R2, #0x1D\n\
+ MOVS R3, #0x13\n\
+ BL Menu_DrawStdWindowFrame\n\
+ MOVS R6, #0\n\
+ ADD R1, SP, #0xC\n\
+ MOV R8, R1\n\
+ ADD R5, SP, #0x28\n\
+ LDR R0, off_8056528\n\
+ LDR R0, [R0]\n\
+ ADDS R3, R0, #0\n\
+ ADDS R3, #0x80\n\
+ ADD R2, SP, #0x20\n\
+\n\
+loc_8056492:\n\
+ LSLS R1, R6, #1\n\
+ ADDS R0, R3, R1\n\
+ LDRH R0, [R0]\n\
+ CMP R0, #0\n\
+ BEQ loc_80564A2\n\
+ ADDS R1, R2, R1\n\
+ SUBS R0, #0x85\n\
+ STRH R0, [R1]\n\
+\n\
+loc_80564A2:\n\
+ ADDS R0, R6, #1\n\
+ LSLS R0, R0, #0x10\n\
+ LSRS R6, R0, #0x10\n\
+ CMP R6, #3\n\
+ BLS loc_8056492\n\
+ BL sub_8050760\n\
+ LDR R4, off_8056528\n\
+ LDR R3, [R4]\n\
+ MOVS R2, #0xBE\n\
+ LSLS R2, R2, #1\n\
+ ADDS R0, R3, R2\n\
+ ADDS R1, R3, #0\n\
+ ADDS R1, #0x88\n\
+ LDRB R2, [R1]\n\
+ SUBS R1, #0x2E\n\
+ LDRH R1, [R1]\n\
+ STR R1, [SP]\n\
+ ADDS R1, R5, #0\n\
+ ADD R3, SP, #4\n\
+ BL Blender_CalculatePokeblock\n\
+ LDR R1, [R4]\n\
+ ADDS R1, #0xAB\n\
+ ADDS R0, R5, #0\n\
+ BL Blender_PrintMadePokeblockString\n\
+ LDR R0, off_805652C\n\
+ MOVS R1, #6\n\
+ BL CreateTask\n\
+ BL sub_8007E40\n\
+ ADDS R1, R0, #0\n\
+ MOV R0, R8\n\
+ MOVS R2, #0\n\
+ MOVS R3, #4\n\
+ BL ConvertIntToHexStringN\n\
+ LDR R1, dword_8056530\n\
+ MOV R0, R8\n\
+ BL StringAppend\n\
+ LDR R0, [R4]\n\
+ ADDS R0, #0xAB\n\
+ MOV R1, R8\n\
+ BL StringAppend\n\
+ LDR R0, [R4]\n\
+ ADDS R0, #0xAB\n\
+ MOVS R1, #1\n\
+ MOVS R2, #0xF\n\
+ BL MenuPrintMessage\n\
+ LDR R0, off_8056534\n\
+ LDRH R0, [R0]\n\
+ MOVS R1, #1\n\
+ BL RemoveBagItem\n\
+ ADDS R0, R5, #0\n\
+ BL sub_810CA34\n\
+ LDR R1, [R4]\n\
+\n\
+loc_8056520:\n\
+ LDRB R0, [R1]\n\
+ ADDS R0, #1\n\
+ STRB R0, [R1]\n\
+ B def_805619A @ jumptable 0805619A default case\n\
+@ ---------------------------------------------------------------------------\n\
+off_8056528: .4byte gBerryBlenderData\n\
+off_805652C: .4byte sub_8052BD0+1\n\
+dword_8056530: .4byte gUnknown_08216249\n\
+off_8056534: .4byte gSpecialVar_ItemId\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+loc_8056538: @ jumptable 0805619A case 6\n\
+ BL Menu_UpdateWindowText\n\
+ LSLS R0, R0, #0x18\n\
+ CMP R0, #0\n\
+ BEQ def_805619A @ jumptable 0805619A default case\n\
+ BL Blender_TrySettingRecord\n\
+ MOVS R0, #1\n\
+ B loc_805654C\n\
+@ ---------------------------------------------------------------------------\n\
+\n\
+def_805619A: @ jumptable 0805619A default case\n\
+ MOVS R0, #0\n\
+\n\
+loc_805654C:\n\
+ ADD SP, SP, #0x34\n\
+ POP {R3-R5}\n\
+ MOV R8, R3\n\
+ MOV R9, R4\n\
+ MOV R10, R5\n\
+ POP {R4-R7}\n\
+ POP {R1}\n\
+ BX R1\n\
+ .syntax divided\n");
}
#else
static bool8 Blender_PrintBlendingResults(void)