Difference between revisions of "000263d8 - 00026420"
Jump to navigation
Jump to search
(Created page with "<font face='Courier New'> 000263d8: 3c030400 lui r3,0x0400 000263dc: 3c028003 lui r2,0x8003 000263e0: 8c422968 lw r2,0x2968(r2) 000263e4: 34630002 ori r3,r3,0x0002 0002...") |
m |
||
Line 1: | Line 1: | ||
<font face='Courier New'> | <font face='Courier New'> | ||
− | + | Called to draw Otag list (tells GPU to start drawing to the screen) | |
+ | |||
000263d8: 3c030400 lui r3,0x0400 | 000263d8: 3c030400 lui r3,0x0400 | ||
000263dc: 3c028003 lui r2,0x8003 | 000263dc: 3c028003 lui r2,0x8003 | ||
− | 000263e0: 8c422968 lw r2,0x2968(r2) | + | 000263e0: 8c422968 lw r2,0x2968(r2) # GP1 |
000263e4: 34630002 ori r3,r3,0x0002 | 000263e4: 34630002 ori r3,r3,0x0002 | ||
− | 000263e8: ac430000 sw r3,0x0000(r2) | + | 000263e8: ac430000 sw r3,0x0000(r2) # write Gp1 instruction 2? |
000263ec: 3c028003 lui r2,0x8003 | 000263ec: 3c028003 lui r2,0x8003 | ||
− | 000263f0: 8c42296c lw r2,0x296c(r2) | + | 000263f0: 8c42296c lw r2,0x296c(r2) # DMA2 0x0 |
000263f4: 00000000 nop | 000263f4: 00000000 nop | ||
− | 000263f8: ac440000 sw r4,0x0000(r2) | + | 000263f8: ac440000 sw r4,0x0000(r2) # store primative list address |
000263fc: 3c028003 lui r2,0x8003 | 000263fc: 3c028003 lui r2,0x8003 | ||
− | 00026400: 8c422970 lw r2,0x2970(r2) | + | 00026400: 8c422970 lw r2,0x2970(r2) # DMA2 0x4 |
00026404: 3c030100 lui r3,0x0100 | 00026404: 3c030100 lui r3,0x0100 | ||
− | 00026408: ac400000 sw r0,0x0000(r2) | + | 00026408: ac400000 sw r0,0x0000(r2) # store 0 to DMA2 0x4 |
0002640c: 3c028003 lui r2,0x8003 | 0002640c: 3c028003 lui r2,0x8003 | ||
− | 00026410: 8c422974 lw r2,0x2974(r2) | + | 00026410: 8c422974 lw r2,0x2974(r2) # |
00026414: 34630401 ori r3,r3,0x0401 | 00026414: 34630401 ori r3,r3,0x0401 | ||
− | 00026418: ac430000 sw r3,0x0000(r2) | + | 00026418: ac430000 sw r3,0x0000(r2) # store 0x01000401 to DMA2 0x8 |
0002641c: 03e00008 jr r31 | 0002641c: 03e00008 jr r31 | ||
00026420: 00000000 nop | 00026420: 00000000 nop | ||
</font> | </font> | ||
+ | for references sake, DMA2 0x8 is stored as the following set of flags: | ||
+ | 0x8000 0000 - not used | ||
+ | 0x4000 0000 - unknown (R/W) | ||
+ | 0x2000 0000 - Pause related? | ||
+ | 0x1000 0000 - start trigger (0 normal, 1 manual) | ||
+ | 0x0e00 0000 - not used | ||
+ | 0x0100 0000 - started (0 stopped/completed, 1 start/busy) | ||
+ | 0x0080 0000 - not used | ||
+ | 0x0070 0000 - chopping CPU window size (not sure what this means) | ||
+ | 0x0008 0000 - not used | ||
+ | 0x0007 0000 - chopping DMA window size (not sure what this means) | ||
+ | 0x0000 f800 - not used | ||
+ | 0x0000 0600 - sync mode (0: start immediately, 1: sync blocks to dma requests, 2 linked list mode, 3 reserved (unused)) | ||
+ | 0x0000 0100 - chopping enabled | ||
+ | 0x0000 00fc - not used | ||
+ | 0x0000 0002 - madr step (0 +4 per, 1 -4 per) | ||
+ | 0x0000 0001 - transfer direction (0 is to ram, 1 is from ram) | ||
+ | |||
+ | therefore the above sends the instructions (considering 0 the default): | ||
+ | start, sync mode 2, transfer from ram |
Revision as of 02:57, 16 July 2023
Called to draw Otag list (tells GPU to start drawing to the screen)
000263d8: 3c030400 lui r3,0x0400 000263dc: 3c028003 lui r2,0x8003 000263e0: 8c422968 lw r2,0x2968(r2) # GP1 000263e4: 34630002 ori r3,r3,0x0002 000263e8: ac430000 sw r3,0x0000(r2) # write Gp1 instruction 2? 000263ec: 3c028003 lui r2,0x8003 000263f0: 8c42296c lw r2,0x296c(r2) # DMA2 0x0 000263f4: 00000000 nop 000263f8: ac440000 sw r4,0x0000(r2) # store primative list address 000263fc: 3c028003 lui r2,0x8003 00026400: 8c422970 lw r2,0x2970(r2) # DMA2 0x4 00026404: 3c030100 lui r3,0x0100 00026408: ac400000 sw r0,0x0000(r2) # store 0 to DMA2 0x4 0002640c: 3c028003 lui r2,0x8003 00026410: 8c422974 lw r2,0x2974(r2) # 00026414: 34630401 ori r3,r3,0x0401 00026418: ac430000 sw r3,0x0000(r2) # store 0x01000401 to DMA2 0x8 0002641c: 03e00008 jr r31 00026420: 00000000 nop
for references sake, DMA2 0x8 is stored as the following set of flags:
0x8000 0000 - not used 0x4000 0000 - unknown (R/W) 0x2000 0000 - Pause related? 0x1000 0000 - start trigger (0 normal, 1 manual) 0x0e00 0000 - not used 0x0100 0000 - started (0 stopped/completed, 1 start/busy) 0x0080 0000 - not used 0x0070 0000 - chopping CPU window size (not sure what this means) 0x0008 0000 - not used 0x0007 0000 - chopping DMA window size (not sure what this means) 0x0000 f800 - not used 0x0000 0600 - sync mode (0: start immediately, 1: sync blocks to dma requests, 2 linked list mode, 3 reserved (unused)) 0x0000 0100 - chopping enabled 0x0000 00fc - not used 0x0000 0002 - madr step (0 +4 per, 1 -4 per) 0x0000 0001 - transfer direction (0 is to ram, 1 is from ram)
therefore the above sends the instructions (considering 0 the default): start, sync mode 2, transfer from ram