How many titleIDs to read.
<title> : 8 * <count> bytes
List of titleIDs as u64.
+
+next : 1 byte : 0xFF
+ Resets state to default, and changes the base of code to the next instruction.
+ This opcode is not meant to be used directly - it's emitted when generating
+ caches.
execb(PATH_PATCHES "/errdisp.vco", progId, text, orig_size);
execb(PATH_PATCHES "/friends_ver.vco", progId, text, orig_size);
execb(PATH_PATCHES "/mset_str.vco", progId, text, orig_size);
- execb(PATH_PATCHES "/ns_force_menu.vco", progId, text, orig_size);
+// execb(PATH_PATCHES "/ns_force_menu.vco", progId, text, orig_size);
execb(PATH_PATCHES "/regionfree.vco", progId, text, orig_size);
execb(PATH_PATCHES "/secinfo_sigs.vco", progId, text, orig_size);
execb(PATH_PATCHES "/ro_sigs.vco", progId, text, orig_size);
.PHONY: all
-all: $(patsubst %.pco, %.vco, $(wildcard *.pco))
+all: clean $(patsubst %.pco, %.vco, $(wildcard *.pco))
mkdir -p ../out/corbenik/bin
cp *.vco ../out/corbenik/bin/
# Status: needs loader
find 000055E30110A0E3
+
# 16
-back 11
+back 10
set 0100A0E31EFF2FE1
#define OP_REWIND 0x08
#define OP_AND 0x09
#define OP_TITLE 0x0A
+#define OP_NEXT 0xFF
#ifdef LOADER
#define log(a) logstr(a)
}
code += *(code-1);
break;
+ case OP_NEXT:
+ bytecode = code + 1;
+ set_mode = 3;
+ current_mode = &modes[set_mode];
+ offset = 0;
+ test_was_false = 0;
+ code = bytecode;
+ break;
case OP_TITLE:
if (debug)
log("title\n");
}
if (!apply) {
- // Not meant for us. Not an error, though.
+ // Not meant for us.
return 0;
}
if (patch->titles != 0) {
// Not an error, per se, but it means this patch is meant for loader, not us.
// Patches intended for use during boot will always be applied to zero titles.
+ // We should generate a cache for loader in a file intended for titleid.
return 0;
}
patch_mem = (uint8_t*)patch + sizeof(struct system_patch) + (patch->depends * 8) + (patch->titles * 8);
patch_len = patch->size;
#endif
- return exec_bytecode(patch_mem, patch_len, 1);
+ return exec_bytecode(patch_mem, patch_len, 0);
}