wut v1.8.0
Wii U Toolchain
Loading...
Searching...
No Matches
title.h
Go to the documentation of this file.
1#pragma once
2
3#include <wut.h>
4#include <nn/acp/result.h>
5#include <nn/acp/device.h>
6#include <coreinit/mcp.h>
7
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20typedef uint64_t ACPTitleId;
21typedef struct ACPMetaXml ACPMetaXml;
22
23struct WUT_PACKED ACPMetaXml {
24 uint64_t title_id;
25 uint64_t boss_id;
26 uint64_t os_version;
27 uint64_t app_size;
33 uint32_t version;
34 char product_code[32];
35 char content_platform[32];
36 char company_code[8];
37 char mastering_date[32];
38 uint32_t logo_type;
42 uint32_t no_event_log;
45 uint32_t install_flag;
46 uint32_t closing_msg;
47 uint32_t title_version;
48 uint32_t group_id;
51 uint32_t join_game_id;
52 uint32_t olv_accesskey;
53 uint32_t wood_tin;
54 uint32_t e_manual;
56 uint32_t region;
57 uint32_t pc_cero;
58 uint32_t pc_esrb;
59 uint32_t pc_bbfc;
60 uint32_t pc_usk;
61 uint32_t pc_pegi_gen;
62 uint32_t pc_pegi_fin;
63 uint32_t pc_pegi_prt;
64 uint32_t pc_pegi_bbfc;
65 uint32_t pc_cob;
66 uint32_t pc_grb;
67 uint32_t pc_cgsrr;
68 uint32_t pc_oflc;
69 uint32_t pc_reserved0;
70 uint32_t pc_reserved1;
71 uint32_t pc_reserved2;
72 uint32_t pc_reserved3;
75 uint32_t ext_dev_urcc;
76 uint32_t ext_dev_board;
78 uint32_t ext_dev_etc;
79 char ext_dev_etc_name[512];
80 uint32_t eula_version;
81 uint32_t drc_use;
82 uint32_t network_use;
84 uint32_t direct_boot;
93 char longname_ja[512];
94 char longname_en[512];
95 char longname_fr[512];
96 char longname_de[512];
97 char longname_it[512];
98 char longname_es[512];
99 char longname_zhs[512];
100 char longname_ko[512];
101 char longname_nl[512];
102 char longname_pt[512];
103 char longname_ru[512];
104 char longname_zht[512];
105 char shortname_ja[256];
106 char shortname_en[256];
107 char shortname_fr[256];
108 char shortname_de[256];
109 char shortname_it[256];
110 char shortname_es[256];
111 char shortname_zhs[256];
112 char shortname_ko[256];
113 char shortname_nl[256];
114 char shortname_pt[256];
115 char shortname_ru[256];
116 char shortname_zht[256];
117 char publisher_ja[256];
118 char publisher_en[256];
119 char publisher_fr[256];
120 char publisher_de[256];
121 char publisher_it[256];
122 char publisher_es[256];
123 char publisher_zhs[256];
124 char publisher_ko[256];
125 char publisher_nl[256];
126 char publisher_pt[256];
127 char publisher_ru[256];
128 char publisher_zht[256];
129 uint32_t add_on_unique_id[32];
130 WUT_UNKNOWN_BYTES(52);
131};
132WUT_CHECK_OFFSET(ACPMetaXml, 0x00, title_id);
133WUT_CHECK_OFFSET(ACPMetaXml, 0x08, boss_id);
134WUT_CHECK_OFFSET(ACPMetaXml, 0x10, os_version);
135WUT_CHECK_OFFSET(ACPMetaXml, 0x18, app_size);
136WUT_CHECK_OFFSET(ACPMetaXml, 0x20, common_save_size);
137WUT_CHECK_OFFSET(ACPMetaXml, 0x28, account_save_size);
138WUT_CHECK_OFFSET(ACPMetaXml, 0x30, common_boss_size);
139WUT_CHECK_OFFSET(ACPMetaXml, 0x38, account_boss_size);
140WUT_CHECK_OFFSET(ACPMetaXml, 0x40, join_game_mode_mask);
141WUT_CHECK_OFFSET(ACPMetaXml, 0x48, version);
142WUT_CHECK_OFFSET(ACPMetaXml, 0x4C, product_code);
143WUT_CHECK_OFFSET(ACPMetaXml, 0x6C, content_platform);
144WUT_CHECK_OFFSET(ACPMetaXml, 0x8C, company_code);
145WUT_CHECK_OFFSET(ACPMetaXml, 0x94, mastering_date);
146WUT_CHECK_OFFSET(ACPMetaXml, 0xB4, logo_type);
147WUT_CHECK_OFFSET(ACPMetaXml, 0xB8, app_launch_type);
148WUT_CHECK_OFFSET(ACPMetaXml, 0xBC, invisible_flag);
149WUT_CHECK_OFFSET(ACPMetaXml, 0xC0, no_managed_flag);
150WUT_CHECK_OFFSET(ACPMetaXml, 0xC4, no_event_log);
151WUT_CHECK_OFFSET(ACPMetaXml, 0xC8, no_icon_database);
152WUT_CHECK_OFFSET(ACPMetaXml, 0xCC, launching_flag);
153WUT_CHECK_OFFSET(ACPMetaXml, 0xD0, install_flag);
154WUT_CHECK_OFFSET(ACPMetaXml, 0xD4, closing_msg);
155WUT_CHECK_OFFSET(ACPMetaXml, 0xD8, title_version);
156WUT_CHECK_OFFSET(ACPMetaXml, 0xDC, group_id);
157WUT_CHECK_OFFSET(ACPMetaXml, 0xE0, save_no_rollback);
158WUT_CHECK_OFFSET(ACPMetaXml, 0xE4, bg_daemon_enable);
159WUT_CHECK_OFFSET(ACPMetaXml, 0xE8, join_game_id);
160WUT_CHECK_OFFSET(ACPMetaXml, 0xEC, olv_accesskey);
161WUT_CHECK_OFFSET(ACPMetaXml, 0xF0, wood_tin);
162WUT_CHECK_OFFSET(ACPMetaXml, 0xF4, e_manual);
163WUT_CHECK_OFFSET(ACPMetaXml, 0xF8, e_manual_version);
164WUT_CHECK_OFFSET(ACPMetaXml, 0xFC, region);
165WUT_CHECK_OFFSET(ACPMetaXml, 0x100, pc_cero);
166WUT_CHECK_OFFSET(ACPMetaXml, 0x104, pc_esrb);
167WUT_CHECK_OFFSET(ACPMetaXml, 0x108, pc_bbfc);
168WUT_CHECK_OFFSET(ACPMetaXml, 0x10C, pc_usk);
169WUT_CHECK_OFFSET(ACPMetaXml, 0x110, pc_pegi_gen);
170WUT_CHECK_OFFSET(ACPMetaXml, 0x114, pc_pegi_fin);
171WUT_CHECK_OFFSET(ACPMetaXml, 0x118, pc_pegi_prt);
172WUT_CHECK_OFFSET(ACPMetaXml, 0x11C, pc_pegi_bbfc);
173WUT_CHECK_OFFSET(ACPMetaXml, 0x120, pc_cob);
174WUT_CHECK_OFFSET(ACPMetaXml, 0x124, pc_grb);
175WUT_CHECK_OFFSET(ACPMetaXml, 0x128, pc_cgsrr);
176WUT_CHECK_OFFSET(ACPMetaXml, 0x12C, pc_oflc);
177WUT_CHECK_OFFSET(ACPMetaXml, 0x130, pc_reserved0);
178WUT_CHECK_OFFSET(ACPMetaXml, 0x134, pc_reserved1);
179WUT_CHECK_OFFSET(ACPMetaXml, 0x138, pc_reserved2);
180WUT_CHECK_OFFSET(ACPMetaXml, 0x13C, pc_reserved3);
181WUT_CHECK_OFFSET(ACPMetaXml, 0x140, ext_dev_nunchaku);
182WUT_CHECK_OFFSET(ACPMetaXml, 0x144, ext_dev_classic);
183WUT_CHECK_OFFSET(ACPMetaXml, 0x148, ext_dev_urcc);
184WUT_CHECK_OFFSET(ACPMetaXml, 0x14C, ext_dev_board);
185WUT_CHECK_OFFSET(ACPMetaXml, 0x150, ext_dev_usb_keyboard);
186WUT_CHECK_OFFSET(ACPMetaXml, 0x154, ext_dev_etc);
187WUT_CHECK_OFFSET(ACPMetaXml, 0x158, ext_dev_etc_name);
188WUT_CHECK_OFFSET(ACPMetaXml, 0x358, eula_version);
189WUT_CHECK_OFFSET(ACPMetaXml, 0x35C, drc_use);
190WUT_CHECK_OFFSET(ACPMetaXml, 0x360, network_use);
191WUT_CHECK_OFFSET(ACPMetaXml, 0x364, online_account_use);
192WUT_CHECK_OFFSET(ACPMetaXml, 0x368, direct_boot);
193WUT_CHECK_OFFSET(ACPMetaXml, 0x36C, reserved_flag0);
194WUT_CHECK_OFFSET(ACPMetaXml, 0x370, reserved_flag1);
195WUT_CHECK_OFFSET(ACPMetaXml, 0x374, reserved_flag2);
196WUT_CHECK_OFFSET(ACPMetaXml, 0x378, reserved_flag3);
197WUT_CHECK_OFFSET(ACPMetaXml, 0x37C, reserved_flag4);
198WUT_CHECK_OFFSET(ACPMetaXml, 0x380, reserved_flag5);
199WUT_CHECK_OFFSET(ACPMetaXml, 0x384, reserved_flag6);
200WUT_CHECK_OFFSET(ACPMetaXml, 0x388, reserved_flag7);
201WUT_CHECK_OFFSET(ACPMetaXml, 0x38C, longname_ja);
202WUT_CHECK_OFFSET(ACPMetaXml, 0x58C, longname_en);
203WUT_CHECK_OFFSET(ACPMetaXml, 0x78C, longname_fr);
204WUT_CHECK_OFFSET(ACPMetaXml, 0x98C, longname_de);
205WUT_CHECK_OFFSET(ACPMetaXml, 0xB8C, longname_it);
206WUT_CHECK_OFFSET(ACPMetaXml, 0xD8C, longname_es);
207WUT_CHECK_OFFSET(ACPMetaXml, 0xF8C, longname_zhs);
208WUT_CHECK_OFFSET(ACPMetaXml, 0x118C, longname_ko);
209WUT_CHECK_OFFSET(ACPMetaXml, 0x138C, longname_nl);
210WUT_CHECK_OFFSET(ACPMetaXml, 0x158C, longname_pt);
211WUT_CHECK_OFFSET(ACPMetaXml, 0x178C, longname_ru);
212WUT_CHECK_OFFSET(ACPMetaXml, 0x198C, longname_zht);
213WUT_CHECK_OFFSET(ACPMetaXml, 0x1B8C, shortname_ja);
214WUT_CHECK_OFFSET(ACPMetaXml, 0x1C8C, shortname_en);
215WUT_CHECK_OFFSET(ACPMetaXml, 0x1D8C, shortname_fr);
216WUT_CHECK_OFFSET(ACPMetaXml, 0x1E8C, shortname_de);
217WUT_CHECK_OFFSET(ACPMetaXml, 0x1F8C, shortname_it);
218WUT_CHECK_OFFSET(ACPMetaXml, 0x208C, shortname_es);
219WUT_CHECK_OFFSET(ACPMetaXml, 0x218C, shortname_zhs);
220WUT_CHECK_OFFSET(ACPMetaXml, 0x228C, shortname_ko);
221WUT_CHECK_OFFSET(ACPMetaXml, 0x238C, shortname_nl);
222WUT_CHECK_OFFSET(ACPMetaXml, 0x248C, shortname_pt);
223WUT_CHECK_OFFSET(ACPMetaXml, 0x258C, shortname_ru);
224WUT_CHECK_OFFSET(ACPMetaXml, 0x268C, shortname_zht);
225WUT_CHECK_OFFSET(ACPMetaXml, 0x278C, publisher_ja);
226WUT_CHECK_OFFSET(ACPMetaXml, 0x288C, publisher_en);
227WUT_CHECK_OFFSET(ACPMetaXml, 0x298C, publisher_fr);
228WUT_CHECK_OFFSET(ACPMetaXml, 0x2A8C, publisher_de);
229WUT_CHECK_OFFSET(ACPMetaXml, 0x2B8C, publisher_it);
230WUT_CHECK_OFFSET(ACPMetaXml, 0x2C8C, publisher_es);
231WUT_CHECK_OFFSET(ACPMetaXml, 0x2D8C, publisher_zhs);
232WUT_CHECK_OFFSET(ACPMetaXml, 0x2E8C, publisher_ko);
233WUT_CHECK_OFFSET(ACPMetaXml, 0x2F8C, publisher_nl);
234WUT_CHECK_OFFSET(ACPMetaXml, 0x308C, publisher_pt);
235WUT_CHECK_OFFSET(ACPMetaXml, 0x318C, publisher_ru);
236WUT_CHECK_OFFSET(ACPMetaXml, 0x328C, publisher_zht);
237WUT_CHECK_OFFSET(ACPMetaXml, 0x338C, add_on_unique_id);
238WUT_CHECK_SIZE(ACPMetaXml,0x3440);
239
242
245
254 ACPMetaXml *metaXml);
255
263static inline ACPResult
265 ACPMetaXml *metaXml) {
266 if ((uintptr_t) metaXml & 0x3F) {
268 }
269 return RPLWRAP(ACPGetTitleMetaXml)(titleId, metaXml);
270}
271
273RPLWRAP(ACPGetTitleSaveMetaXml)(uint64_t titleId,
274 ACPMetaXml* metaXml,
275 ACPDeviceType deviceType);
276
285static inline ACPResult
287 ACPMetaXml *metaXml,
288 ACPDeviceType deviceType) {
289 if ((uintptr_t) metaXml & 0x3F) {
291 }
292 return RPLWRAP(ACPGetTitleSaveMetaXml)(titleId, metaXml, deviceType);
293}
294
297 char *directory,
298 size_t directoryLen);
299
302 char* directory,
303 size_t directoryLen,
304 ACPDeviceType deviceType);
305
308 char* directory,
309 size_t directoryLen);
310
311#ifdef __cplusplus
312}
313#endif
314
ACPDeviceType
Definition device.h:15
ACPResult
Definition result.h:11
@ ACP_RESULT_INVALID_PARAMETER
Definition result.h:15
uint64_t ACPTitleId
Definition save.h:18
uint64_t boss_id
Definition title.h:25
uint64_t title_id
Definition title.h:24
uint32_t eula_version
Definition title.h:80
uint32_t drc_use
Definition title.h:81
uint32_t pc_grb
Definition title.h:66
uint32_t pc_reserved3
Definition title.h:72
uint32_t ext_dev_usb_keyboard
Definition title.h:77
uint32_t wood_tin
Definition title.h:53
uint32_t pc_pegi_gen
Definition title.h:61
uint32_t ext_dev_urcc
Definition title.h:75
uint32_t pc_reserved2
Definition title.h:71
uint32_t closing_msg
Definition title.h:46
uint64_t app_size
Definition title.h:27
uint32_t logo_type
Definition title.h:38
uint32_t pc_pegi_fin
Definition title.h:62
uint32_t ext_dev_classic
Definition title.h:74
uint32_t install_flag
Definition title.h:45
uint32_t pc_bbfc
Definition title.h:59
uint32_t join_game_id
Definition title.h:51
uint32_t no_event_log
Definition title.h:42
uint32_t ext_dev_etc
Definition title.h:78
uint32_t no_managed_flag
Definition title.h:41
uint32_t pc_cgsrr
Definition title.h:67
uint32_t online_account_use
Definition title.h:83
uint32_t ext_dev_nunchaku
Definition title.h:73
uint32_t reserved_flag7
Definition title.h:92
uint32_t pc_usk
Definition title.h:60
uint32_t pc_oflc
Definition title.h:68
uint32_t no_icon_database
Definition title.h:43
uint32_t pc_cob
Definition title.h:65
uint32_t group_id
Definition title.h:48
uint64_t os_version
Definition title.h:26
uint32_t ext_dev_board
Definition title.h:76
uint32_t direct_boot
Definition title.h:84
uint32_t network_use
Definition title.h:82
uint64_t account_boss_size
Definition title.h:31
uint32_t save_no_rollback
Definition title.h:49
uint32_t pc_esrb
Definition title.h:58
uint32_t launching_flag
Definition title.h:44
uint32_t pc_reserved0
Definition title.h:69
uint32_t pc_pegi_bbfc
Definition title.h:64
uint64_t join_game_mode_mask
Definition title.h:32
uint32_t pc_cero
Definition title.h:57
uint32_t reserved_flag3
Definition title.h:88
uint64_t common_save_size
Definition title.h:28
uint32_t pc_pegi_prt
Definition title.h:63
uint32_t reserved_flag2
Definition title.h:87
uint32_t version
Definition title.h:33
uint32_t e_manual
Definition title.h:54
uint64_t account_save_size
Definition title.h:29
uint32_t olv_accesskey
Definition title.h:52
uint32_t bg_daemon_enable
Definition title.h:50
uint32_t app_launch_type
Definition title.h:39
uint32_t reserved_flag6
Definition title.h:91
uint32_t e_manual_version
Definition title.h:55
uint32_t invisible_flag
Definition title.h:40
uint64_t common_boss_size
Definition title.h:30
uint32_t reserved_flag5
Definition title.h:90
uint32_t reserved_flag0
Definition title.h:85
uint32_t reserved_flag1
Definition title.h:86
uint32_t region
Definition title.h:56
uint32_t reserved_flag4
Definition title.h:89
uint32_t pc_reserved1
Definition title.h:70
uint32_t title_version
Definition title.h:47
uint64_t ACPTitleId
Definition title.h:20
ACPResult RPLWRAP() ACPGetTitleSaveMetaXml(uint64_t titleId, ACPMetaXml *metaXml, ACPDeviceType deviceType)
Gets the save dir MetaXML for a given title id.
Definition title.h:286
ACPResult ACPGetTitleIdOfMainApplication(ACPTitleId *titleId)
ACPResult ACPAssignTitlePatch(MCPTitleListType *titleInfo)
ACPResult ACPGetTitleMetaDirByTitleListType(MCPTitleListType titleListType, char *directory, size_t directoryLen)
ACPResult ACPGetTitleMetaDir(ACPTitleId titleId, char *directory, size_t directoryLen)
ACPResult RPLWRAP() ACPGetTitleMetaXml(ACPTitleId titleId, ACPMetaXml *metaXml)
Gets the MetaXML for a given title id.
Definition title.h:264
ACPResult ACPGetTitleMetaDirByDevice(ACPTitleId titleId, char *directory, size_t directoryLen, ACPDeviceType deviceType)
#define RPLWRAP(func)
Definition wut_rplwrap.h:3