Saving progress on scudp disassembly

git-svn-id: https://svn.code.sf.net/p/model3emu/code/trunk@457 48849e4c-6218-0410-9df5-a815ca0b3254
master
trzy 6 years ago
parent 7ca6169371
commit 3a42f1baa7
  1. 195
      Disassembled/scudp.txt

@ -132,6 +132,201 @@ MainLoop:
0x00014984: 0x4BFF2C35 bl 0x000075B8
0x00014988: 0x4801D599 bl 0x00031F20 ; timing
0x0001498C: 0x4BFFFFD0 b 0x0001495C
Sub75B8:
0x000075B8: 0x3821FFF0 addi r1,r1,-0x10
0x000075BC: 0x7C0802A6 mfspr r0,lr
0x000075C0: 0x90010000 stw r0,0x00(r1)
0x000075C4: 0x806D8328 lwz r3,-0x7CD8(r13)
0x000075C8: 0x54600001 and. r0,r3,0x80000000
0x000075CC: 0x40820008 bf cr0[eq],0x000075D4 ; if (-0x7cd8(r13) & 0x80000000) goto 75d4
0x000075D0: 0x480010DD bl 0x000086AC
0x000075D4: 0x480012F5 bl 0x000088C8
0x000075D8: 0x80CD820C lwz r6,-0x7DF4(r13)
0x000075DC: 0x38C6FFC6 addi r6,r6,-0x3A ; r6 = -0x7df4(r13) - 0x3a (0x3a=58)
0x000075E0: 0x3C600100 li r3,0x01000000 ; r3 = 0x01000000
0x000075E4: 0x800D8204 lwz r0,-0x7DFC(r13) ; r0 = -0x7dfc(r13)
0x000075E8: 0x38460001 addi r2,r6,0x01 ; r2 = r6 + 1
0x000075EC: 0x544211CA rlwinm r2,r2,2,0xFDFFFFFF ; r2 = ROTL(r2, 2) & 0xfdffffff
0x000075F0: 0x7C62052C stwbrx r3,r2,r0 ; (r2+r0) = bswap32(r3)
0x000075F4: 0x806D8328 lwz r3,-0x7CD8(r13) ; r3 = -0x7cd8(r13)
0x000075F8: 0x54606001 rlwinm. r0,r3,12,0x80000000 ; r0 = (r3 << 12) & 0x80000000
0x000075FC: 0x4182000C bt cr0[eq],0x00007608 ; if (r0 == 0) goto 7608
0x00007600: 0x806D84EC lwz r3,-0x7B14(r13) ; r3 = -0x7b14(r13)
0x00007604: 0x906D8218 stw r3,-0x7DE8(r13) ; -0x7de8(r13) = -0x7b14(r13)
0x00007608: 0x48000259 bl 0x00007860 ; Sub7860()
0x0000760C: 0x3C800080 li r4,0x00800000 ; r4 = 0x00800000
0x00007610: 0x806D820C lwz r3,-0x7DF4(r13)
0x00007614: 0x7C641850 sub r3,r3,r4 ; r3 = -0x7df4(r13) - r4
0x00007618: 0x48000261 bl 0x00007878 ; Sub7878()
0x0000761C: 0x3821FFF0 addi r1,r1,-0x10 ; r1 -= 16
0x00007620: 0x92010000 stw r16,0x00(r1) ; push r16
0x00007624: 0x92210004 stw r17,0x04(r1) ; push r17
0x00007628: 0x92410008 stw r18,0x08(r1) ; push r18
0x0000762C: 0x9261000C stw r19,0x0C(r1) ; push r19
0x00007630: 0x806D8200 lwz r3,-0x7E00(r13) ; r3 = -0x7e00(r13)
0x00007634: 0x3A0D82E8 addi r16,r13,-0x7D18 ; r16 = r13 - 0x7d18
0x00007638: 0x1C630020 mulli r3,r3,0x20 ; r3 *= 32
0x0000763C: 0x7E101A14 add r16,r16,r3 ; r16 += r3
0x00007640: 0x3A200000 li r17,0x00000000 ; r17 = 0
0x00007644: 0x3A400020 li r18,0x00000020 ; r18 = 32
.L0:
0x00007648: 0x7C50882E lwzx r2,r16,r17 ; r2 = *(r16+r17)
0x0000764C: 0x2C020000 cmpi cr0,0,r2,0x00
0x00007650: 0x7C430034 cntlzw r3,r2 ; r3 = number of leading 0 bits in r2
0x00007654: 0x40820014 bf cr0[eq],0x00007668 ; if r2 != 0, goto .L1
0x00007658: 0x3A310004 addi r17,r17,0x04 ; r17 += 4
0x0000765C: 0x7C119000 cmp cr0,0,r17,r18
0x00007660: 0x4082FFE8 bf cr0[eq],0x00007648 ; if r17 != r18 goto .L0
0x00007664: 0x4800001C b 0x00007680 ; goto 7680 (then immediately to .L3 because cr0[eq] must be true
.L1:
0x00007668: 0x5C42187E rlwnm r2,r2,r3,0x7FFFFFFF
0x0000766C: 0x7C0300D0 neg r0,r3
0x00007670: 0x5C42003E rlwnm r2,r2,r0,0xFFFFFFFF
0x00007674: 0x7C50892E stwx r2,r16,r17
0x00007678: 0x56201838 rlwinm r0,r17,3,0xFFFFFFF8
0x0000767C: 0x7C630214 add r3,r3,r0
0x00007680: 0x41820070 bt cr0[eq],0x000076F0
0x00007684: 0x7C641B78 mr r4,r3
0x00007688: 0x1C630020 mulli r3,r3,0x20
0x0000768C: 0x3CA0001F li r5,0x001F0000
0x00007690: 0x38A590D0 addi r5,r5,-0x6F30
0x00007694: 0x7CA51A14 add r5,r5,r3
0x00007698: 0x1C640008 mulli r3,r4,0x08
0x0000769C: 0x3C800080 li r4,0x00800000
0x000076A0: 0x38840740 addi r4,r4,0x740
0x000076A4: 0x7C841A14 add r4,r4,r3
0x000076A8: 0x3821FFF0 addi r1,r1,-0x10
0x000076AC: 0x90810000 stw r4,0x00(r1)
0x000076B0: 0x800D8204 lwz r0,-0x7DFC(r13)
0x000076B4: 0x548211CA rlwinm r2,r4,2,0xFDFFFFFF
0x000076B8: 0x7C420214 add r2,r2,r0
0x000076BC: 0x7CAA2B78 mr r10,r5
0x000076C0: 0x39200008 li r9,0x00000008
0x000076C4: 0x800A0000 lwz r0,0x00(r10)
0x000076C8: 0x90020000 stw r0,0x00(r2)
0x000076CC: 0x394A0004 addi r10,r10,0x04
0x000076D0: 0x38420004 addi r2,r2,0x04
0x000076D4: 0x3529FFFF addic. r9,r9,-0x01
0x000076D8: 0x4082FFEC bf cr0[eq],0x000076C4
0x000076DC: 0x80810000 lwz r4,0x00(r1)
0x000076E0: 0x38210010 addi r1,r1,0x10
0x000076E4: 0x38600008 li r3,0x00000008
0x000076E8: 0x48000191 bl 0x00007878
0x000076EC: 0x4BFFFF5C b 0x00007648
.L3:
0x000076F0: 0x8261000C lwz r19,0x0C(r1)
0x000076F4: 0x82410008 lwz r18,0x08(r1)
0x000076F8: 0x82210004 lwz r17,0x04(r1)
0x000076FC: 0x82010000 lwz r16,0x00(r1)
0x00007700: 0x38210010 addi r1,r1,0x10
0x00007704: 0x3C800080 li r4,0x00800000
0x00007708: 0x38842A80 addi r4,r4,0x2A80
0x0000770C: 0x806D8214 lwz r3,-0x7DEC(r13)
0x00007710: 0x1C63000C mulli r3,r3,0x0C
0x00007714: 0x48000165 bl 0x00007878
0x00007718: 0x3C800080 li r4,0x00800000
0x0000771C: 0x38842C0C addi r4,r4,0x2C0C
0x00007720: 0x806D8218 lwz r3,-0x7DE8(r13)
0x00007724: 0x3863FFDF addi r3,r3,-0x21
0x00007728: 0x1C63000C mulli r3,r3,0x0C
0x0000772C: 0x4800014D bl 0x00007878
0x00007730: 0x3C800080 li r4,0x00800000
0x00007734: 0x38840B40 addi r4,r4,0xB40
0x00007738: 0x806D8210 lwz r3,-0x7DF0(r13)
0x0000773C: 0x7C641850 sub r3,r3,r4
0x00007740: 0x48000139 bl 0x00007878
0x00007744: 0x38ED821C addi r7,r13,-0x7DE4
0x00007748: 0x390D825C addi r8,r13,-0x7DA4
0x0000774C: 0x39200010 li r9,0x00000010
0x00007750: 0x80870000 lwz r4,0x00(r7)
0x00007754: 0x38E70004 addi r7,r7,0x04
0x00007758: 0x80680000 lwz r3,0x00(r8)
0x0000775C: 0x39080004 addi r8,r8,0x04
0x00007760: 0x7C641850 sub r3,r3,r4
0x00007764: 0x48000115 bl 0x00007878
0x00007768: 0x3529FFFF addic. r9,r9,-0x01
0x0000776C: 0x40A2FFE4 bf cr0[eq],0x00007750
0x00007770: 0x48000159 bl 0x000078C8
0x00007774: 0x3C600001 li r3,0x00010000
0x00007778: 0x386376A0 addi r3,r3,0x76A0
0x0000777C: 0x808D8204 lwz r4,-0x7DFC(r13)
0x00007780: 0x7C632214 add r3,r3,r4
0x00007784: 0x4BFFAF01 bl 0x00002684
0x00007788: 0x4BFFAF11 bl 0x00002698
0x0000778C: 0x38600002 li r3,0x00000002
0x00007790: 0x3821FF00 addi r1,r1,-0x100
0x00007794: 0x48006585 bl 0x0000DD18
0x00007798: 0x38210100 addi r1,r1,0x100
0x0000779C: 0x806D820C lwz r3,-0x7DF4(r13)
0x000077A0: 0x3C800080 li r4,0x00800000
0x000077A4: 0x38840740 addi r4,r4,0x740
0x000077A8: 0x7C032000 cmp cr0,0,r3,r4
0x000077AC: 0x40810008 bf cr0[gt],0x000077B4
0x000077B0: 0x48000000 b 0x000077B0
0x000077B4: 0x806D8210 lwz r3,-0x7DF0(r13)
0x000077B8: 0x3C800080 li r4,0x00800000
0x000077BC: 0x38842A80 addi r4,r4,0x2A80
0x000077C0: 0x7C032000 cmp cr0,0,r3,r4
0x000077C4: 0x40810008 bf cr0[gt],0x000077CC
0x000077C8: 0x48000000 b 0x000077C8
0x000077CC: 0x806D8218 lwz r3,-0x7DE8(r13)
0x000077D0: 0x388002EE li r4,0x000002EE
0x000077D4: 0x7C032000 cmp cr0,0,r3,r4
0x000077D8: 0x40810008 bf cr0[gt],0x000077E0
0x000077DC: 0x48000000 b 0x000077DC
0x000077E0: 0x3C600001 li r3,0x00010000
0x000077E4: 0x38637DD4 addi r3,r3,0x7DD4
0x000077E8: 0x808D8204 lwz r4,-0x7DFC(r13)
0x000077EC: 0x7C632214 add r3,r3,r4
0x000077F0: 0x808D82DC lwz r4,-0x7D24(r13)
0x000077F4: 0x7C041800 cmp cr0,0,r4,r3
0x000077F8: 0x40810008 bf cr0[gt],0x00007800
0x000077FC: 0x48000000 b 0x000077FC
0x00007800: 0x38ED825C addi r7,r13,-0x7DA4
0x00007804: 0x390D8220 addi r8,r13,-0x7DE0
0x00007808: 0x3920000F li r9,0x0000000F
0x0000780C: 0x39400000 li r10,0x00000000
0x00007810: 0x80670000 lwz r3,0x00(r7)
0x00007814: 0x38E70004 addi r7,r7,0x04
0x00007818: 0x80880000 lwz r4,0x00(r8)
0x0000781C: 0x39080004 addi r8,r8,0x04
0x00007820: 0x7C032000 cmp cr0,0,r3,r4
0x00007824: 0x40810008 bf cr0[gt],0x0000782C
0x00007828: 0x48000000 b 0x00007828
0x0000782C: 0x394A0001 addi r10,r10,0x01
0x00007830: 0x3529FFFF addic. r9,r9,-0x01
0x00007834: 0x40A2FFDC bf cr0[eq],0x00007810
0x00007838: 0x806D8298 lwz r3,-0x7D68(r13)
0x0000783C: 0x3C800080 li r4,0x00800000
0x00007840: 0x38845DA8 addi r4,r4,0x5DA8
0x00007844: 0x7C032000 cmp cr0,0,r3,r4
0x00007848: 0x40810008 bf cr0[gt],0x00007850
0x0000784C: 0x48000000 b 0x0000784C
0x00007850: 0x80010000 lwz r0,0x00(r1)
0x00007854: 0x7C0803A6 mtspr lr,r0
0x00007858: 0x38210010 addi r1,r1,0x10
0x0000785C: 0x4E800020 bclr 0x14,0
; This function is called at the end of the main program loop and appears to control frame timing.
Sub31F20:

Loading…
Cancel
Save