RAM_ARM9:0201D724 ; =============== S U B R O U T I N E ======================================= RAM_ARM9:0201D724 RAM_ARM9:0201D724 RAM_ARM9:0201D724 ; u32 __fastcall makePID(unsigned int idSet, int speciesValue, bool isGenderLocked, int generationType, int abilityLock, int shinyPrevent) RAM_ARM9:0201D724 makePID ; CODE XREF: sub_21531A0+192p RAM_ARM9:0201D724 ; sub_21531A0+1BAp ... RAM_ARM9:0201D724 RAM_ARM9:0201D724 var_18 = -0x18 RAM_ARM9:0201D724 abilityLock = 0 RAM_ARM9:0201D724 shinyPrevent = 4 RAM_ARM9:0201D724 RAM_ARM9:0201D724 F8 B5 PUSH {R3-R7,LR} RAM_ARM9:0201D726 1D 1C MOVS R5, R3 RAM_ARM9:0201D728 06 1C MOVS R6, R0 RAM_ARM9:0201D72A 0C 1C MOVS R4, R1 RAM_ARM9:0201D72C 00 92 STR R2, [SP,#0x18+var_18] RAM_ARM9:0201D72E 02 2D CMP R5, #2 RAM_ARM9:0201D730 04 D1 BNE loc_201D73C RAM_ARM9:0201D732 00 20 MOVS R0, #0 ; max RAM_ARM9:0201D734 E8 F7 08 F8 BL mainRand64 RAM_ARM9:0201D738 04 1C MOVS R4, R0 RAM_ARM9:0201D73A 24 E0 B loc_201D786 RAM_ARM9:0201D73C ; --------------------------------------------------------------------------- RAM_ARM9:0201D73C RAM_ARM9:0201D73C loc_201D73C ; CODE XREF: makePID+Cj RAM_ARM9:0201D73C 00 20 MOVS R0, #0 ; max RAM_ARM9:0201D73E E8 F7 03 F8 BL mainRand64 RAM_ARM9:0201D742 07 1C MOVS R7, R0 RAM_ARM9:0201D744 FF 21 MOVS R1, #0xFF RAM_ARM9:0201D746 8F 43 BICS R7, R1 RAM_ARM9:0201D748 2A 06 LSLS R2, R5, #0x18 RAM_ARM9:0201D74A 00 99 LDR R1, [SP,#0x18+var_18] RAM_ARM9:0201D74C 20 1C MOVS R0, R4 RAM_ARM9:0201D74E 12 0E LSRS R2, R2, #0x18 RAM_ARM9:0201D750 FF F7 80 FF BL sub_201D654 RAM_ARM9:0201D754 04 1C MOVS R4, R0 RAM_ARM9:0201D756 00 2D CMP R5, #0 RAM_ARM9:0201D758 09 D1 BNE loc_201D76E RAM_ARM9:0201D75A 02 F0 71 FE BL isGenderless RAM_ARM9:0201D75E 00 28 CMP R0, #0 RAM_ARM9:0201D760 05 D1 BNE loc_201D76E RAM_ARM9:0201D762 FE 20 MOVS R0, #0xFE ; '¦' RAM_ARM9:0201D764 00 1B SUBS R0, R0, R4 ; max RAM_ARM9:0201D766 E7 F7 EF FF BL mainRand64 RAM_ARM9:0201D76A 24 18 ADDS R4, R4, R0 RAM_ARM9:0201D76C 0A E0 B loc_201D784 RAM_ARM9:0201D76E ; --------------------------------------------------------------------------- RAM_ARM9:0201D76E RAM_ARM9:0201D76E loc_201D76E ; CODE XREF: makePID+34j RAM_ARM9:0201D76E ; makePID+3Cj RAM_ARM9:0201D76E 01 2D CMP R5, #1 RAM_ARM9:0201D770 08 D1 BNE loc_201D784 RAM_ARM9:0201D772 20 1C MOVS R0, R4 ; gender_rate RAM_ARM9:0201D774 02 F0 64 FE BL isGenderless RAM_ARM9:0201D778 00 28 CMP R0, #0 RAM_ARM9:0201D77A 03 D1 BNE loc_201D784 RAM_ARM9:0201D77C 20 1C MOVS R0, R4 ; max RAM_ARM9:0201D77E E7 F7 E3 FF BL mainRand64 RAM_ARM9:0201D782 44 1C ADDS R4, R0, #1 RAM_ARM9:0201D784 RAM_ARM9:0201D784 loc_201D784 ; CODE XREF: makePID+48j RAM_ARM9:0201D784 ; makePID+4Cj ... RAM_ARM9:0201D784 3C 43 ORRS R4, R7 RAM_ARM9:0201D786 RAM_ARM9:0201D786 loc_201D786 ; CODE XREF: makePID+16j RAM_ARM9:0201D786 07 98 LDR R0, [SP,#0x18+shinyPrevent] RAM_ARM9:0201D788 00 28 CMP R0, #0 RAM_ARM9:0201D78A 19 D0 BEQ loc_201D7C0 RAM_ARM9:0201D78C 01 28 CMP R0, #1 RAM_ARM9:0201D78E 02 D0 BEQ loc_201D796 RAM_ARM9:0201D790 02 28 CMP R0, #2 RAM_ARM9:0201D792 1E D0 BEQ loc_201D7D2 RAM_ARM9:0201D794 26 E0 B loc_201D7E4 RAM_ARM9:0201D796 ; --------------------------------------------------------------------------- RAM_ARM9:0201D796 RAM_ARM9:0201D796 loc_201D796 ; CODE XREF: makePID+6Aj RAM_ARM9:0201D796 14 49 LDR R1, =0xFFFF0000 RAM_ARM9:0201D798 20 06 LSLS R0, R4, #0x18 RAM_ARM9:0201D79A 31 40 ANDS R1, R6 RAM_ARM9:0201D79C 0A 0C LSRS R2, R1, #0x10 RAM_ARM9:0201D79E 31 04 LSLS R1, R6, #0x10 RAM_ARM9:0201D7A0 09 0C LSRS R1, R1, #0x10 RAM_ARM9:0201D7A2 00 0E LSRS R0, R0, #0x18 RAM_ARM9:0201D7A4 51 40 EORS R1, R2 RAM_ARM9:0201D7A6 41 40 EORS R1, R0 RAM_ARM9:0201D7A8 04 1C MOVS R4, R0 RAM_ARM9:0201D7AA 09 04 LSLS R1, R1, #0x10 RAM_ARM9:0201D7AC 0C 43 ORRS R4, R1 RAM_ARM9:0201D7AE 01 20 MOVS R0, #1 RAM_ARM9:0201D7B0 06 99 LDR R1, [SP,#0x18+abilityLock] RAM_ARM9:0201D7B2 00 04 LSLS R0, R0, #0x10 RAM_ARM9:0201D7B4 22 1C MOVS R2, R4 RAM_ARM9:0201D7B6 02 40 ANDS R2, R0 RAM_ARM9:0201D7B8 09 04 LSLS R1, R1, #0x10 RAM_ARM9:0201D7BA 8A 42 CMP R2, R1 RAM_ARM9:0201D7BC 12 D0 BEQ loc_201D7E4 RAM_ARM9:0201D7BE 10 E0 B loc_201D7E2 RAM_ARM9:0201D7C0 ; --------------------------------------------------------------------------- RAM_ARM9:0201D7C0 RAM_ARM9:0201D7C0 loc_201D7C0 ; CODE XREF: makePID+66j RAM_ARM9:0201D7C0 30 1C MOVS R0, R6 ; idSet RAM_ARM9:0201D7C2 21 1C MOVS R1, R4 ; pid RAM_ARM9:0201D7C4 FF F7 1E FB BL isShiny RAM_ARM9:0201D7C8 01 28 CMP R0, #1 RAM_ARM9:0201D7CA 02 D1 BNE loc_201D7D2 RAM_ARM9:0201D7CC 01 20 00 07 MOVS R0, 0x10000000 RAM_ARM9:0201D7D0 44 40 EORS R4, R0 RAM_ARM9:0201D7D2 RAM_ARM9:0201D7D2 loc_201D7D2 ; CODE XREF: makePID+6Ej RAM_ARM9:0201D7D2 ; makePID+A6j RAM_ARM9:0201D7D2 01 20 MOVS R0, #1 RAM_ARM9:0201D7D4 06 99 LDR R1, [SP,#0x18+abilityLock] RAM_ARM9:0201D7D6 00 04 LSLS R0, R0, #0x10 RAM_ARM9:0201D7D8 22 1C MOVS R2, R4 RAM_ARM9:0201D7DA 02 40 ANDS R2, R0 RAM_ARM9:0201D7DC 09 04 LSLS R1, R1, #0x10 RAM_ARM9:0201D7DE 8A 42 CMP R2, R1 RAM_ARM9:0201D7E0 00 D0 BEQ loc_201D7E4 RAM_ARM9:0201D7E2 RAM_ARM9:0201D7E2 loc_201D7E2 ; CODE XREF: makePID+9Aj RAM_ARM9:0201D7E2 44 40 EORS R4, R0 RAM_ARM9:0201D7E4 RAM_ARM9:0201D7E4 loc_201D7E4 ; CODE XREF: makePID+70j RAM_ARM9:0201D7E4 ; makePID+98j ... RAM_ARM9:0201D7E4 20 1C MOVS R0, R4 RAM_ARM9:0201D7E6 F8 BD POP {R3-R7,PC} RAM_ARM9:0201D7E6 ; End of function makePID RAM_ARM9:0201D7E6 RAM_ARM9:0201D7E6 ; --------------------------------------------------------------------------- RAM_ARM9:0201D7E8 00 00 FF FF dword_201D7E8 DCD 0xFFFF0000 ; DATA XREF: makePID:loc_201D796r