Difference between revisions of "APT:SendCaptureBufferInfo"

From 3dbrew
Jump to navigation Jump to search
m
Line 12: Line 12:
 
|-
 
|-
 
| 2
 
| 2
| <nowiki>(Size<<14) | 2</nowiki>
+
| <nowiki>(Size << 14) | 2</nowiki>
 
|-
 
|-
 
| 3
 
| 3
| Input buffer ptr
+
| void*, Input Buffer
 
|}
 
|}
  
Line 31: Line 31:
 
|}
 
|}
  
 
+
=Capture Info=
=Capture info structure=
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-

Revision as of 05:33, 22 November 2015

Request

Index Word Description
0 Header code [0x00400042]
1 Size
2 (Size << 14) | 2
3 void*, Input Buffer

Response

Index Word Description
0 Header code
1 Result code

Capture Info

Index Word Description
0 Pixel bytesize * 0x7000 + base0. (main-screen. base0 = Pixel bytesize * 0x19000 + base1, base1 = indexword3 value)
1 u8: 0 = framebuffer addresses from GSP captureinfo+0 / captureinfo+4 match, otherwise this is value 1 when those addresses don't match.
2 Pixel bytesize * 0x14000 + base. (base = 0, sub-screen)
3 Same as wordindex 2. When the above u8 flag!=0, this is: Pixel bytesize * 0x19000 + base. (base = indexword2 value, main-screen)
4 Low 3-bits of main-screen 0x1EF00X70 value(color format).
5 Normally zero.
6 Normally zero.
7 Low 3-bits of sub-screen 0x1EF00X70 value(color format).

The user process initializes this structure using data from GSPGPU:ImportDisplayCaptureInfo. The pixel bytesize is determined by the color format for that screen. When the color-format is RGBA, the pixel bytesize used is value 3.

Description

The input size is clamped to 0x20-bytes by NS. The input buffer with the clamped size is then copied to a NS state buffer. The size field for this state buffer is also set to this clamped size.