+
+ {deviceInfo && (
+
+ {deviceInfo.deviceName}
+ {deviceInfo.hardwareRevision
+ ? ` · ${deviceInfo.hardwareRevision}`
+ : ""}
+
+ )}
+
+
+
+
+
+
+ Figures on portal
+
+
+
+ {rows.length === 0 ? (
+
+
+
+ Place a Skylanders figure on the portal...
+
+
+ ) : (
+
+ {rows.map((entry) => (
+ handleSave(entry.slot)}
+ />
+ ))}
+
+ )}
+
+
+
+
+ Saved as the raw encrypted tag dump — identify or decrypt the .bin in an
+ external tool.
+
+
+ );
+}
+
+function SlotRow({ entry, onSave }: { entry: SlotEntry; onSave: () => void }) {
+ const label = `Slot ${entry.slot}`;
+ if (entry.phase === "error") {
+ return (
+