Line 3: |
Line 3: |
| {{#vardefine:ipc_offset|0}} | | {{#vardefine:ipc_offset|0}} |
| {{IPC/RequestEntry|Header code [0x00100102]}} | | {{IPC/RequestEntry|Header code [0x00100102]}} |
− | {{IPC/RequestEntry|Unknown, usually 0xffffffff.}} | + | {{IPC/RequestEntry|u32 filter}} |
| {{IPC/RequestEntry|Buffer size in words(max entries).}} | | {{IPC/RequestEntry|Buffer size in words(max entries).}} |
− | {{IPC/RequestEntry|u16, unknown.}} | + | {{IPC/RequestEntry|u16, starting word-index in the internal NsDataId list.}} |
− | {{IPC/RequestEntry|u32, unknown.}} | + | {{IPC/RequestEntry|u32, start_NsDataId.}} |
| {{IPC/MapPointerW|Destination pointer}} | | {{IPC/MapPointerW|Destination pointer}} |
| {{IPC/RequestEnd}} | | {{IPC/RequestEnd}} |
Line 16: |
Line 16: |
| {{IPC/RequestEntry|Result code}} | | {{IPC/RequestEntry|Result code}} |
| {{IPC/RequestEntry|u16 Actual number of output entries.}} | | {{IPC/RequestEntry|u16 Actual number of output entries.}} |
− | {{IPC/RequestEntry|u16 Unknown}} | + | {{IPC/RequestEntry|u16 Last word-index copied to output in the internal NsDataId list.}} |
| {{IPC/RequestEnd}} | | {{IPC/RequestEnd}} |
| + | |
| + | =Filter= |
| + | Content filtering is enabled when this word isn't 0xffffffff. This is only used for the following: <code>if(filterword_u16high!=contentdatatype_u16high || (filterword_u16low & contentdatatype_u16low) == 0)continue;</code> Hence, filterword_u16high must match contentdatatype_u16high, and the bitmask specified by filterword_u16low must be non-zero in contentdatatype_u16low. The contentdatatype is extracted from the extdata filename, which originates from the [[SpotPass|BOSS-container]]. The NsDataId for the content entry is only written to the output when processing isn't skipped due to filtering. |
| + | |
| + | =Start NsDataId= |
| + | This field is only used when starting_wordindex is non-zero or when this field is non-zero. |
| + | |
| + | The NsDataId at the specified start-wordindex must match this field, otherwise error 0xD840F846 is returned. It will then skip normal content entry processing for this matching entry(cur_wordindex is field is increased by 0x1 before starting the content entry processing loop). |
| | | |
| =Description= | | =Description= |
| This writes an array of u32 entries(NsDataId) to the output buffer, for the current programID. | | This writes an array of u32 entries(NsDataId) to the output buffer, for the current programID. |
| + | |
| + | This eventually calls a function with the following type parameters: 0, 1, 1. This function doesn't use the second type parameter. Afterwards another function is called using the programID. |