From 54c96d9c34231b109d1ebb9b562dfc8ce736d7f1 Mon Sep 17 00:00:00 2001 From: g026r Date: Fri, 27 Sep 2024 17:53:47 -0400 Subject: [PATCH 1/2] Add documentation. --- cmd/playfix/main.go | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 cmd/playfix/main.go diff --git a/cmd/playfix/main.go b/cmd/playfix/main.go new file mode 100644 index 0000000..a501f38 --- /dev/null +++ b/cmd/playfix/main.go @@ -0,0 +1,58 @@ +package main + +import ( + "encoding/binary" + "log" + "os" + + "github.com/g026r/pocket-toolkit/pkg/io" +) + +// Simple application to fix played times & nothing else. + +func main() { + entries, err := io.LoadEntries(os.DirFS("./")) + if err != nil { + log.Fatal(err) + } + p, err := io.LoadPlaytimes(os.DirFS("./")) + if err != nil { + log.Fatal(err) + } + + complete := false + out, err := os.CreateTemp("", "playtimes_*.bin") + if err != nil { + log.Fatal(err) + } + defer func() { + _ = out.Close() + if complete { // Overwrite the original with the temp file if successful; delete it if not. + err = os.Rename(out.Name(), "System/Played Games/playtimes.bin") + } else { + err = os.Remove(out.Name()) + } + }() + + // Write header + if err := binary.Write(out, binary.BigEndian, io.PlaytimesHeader); err != nil { + log.Fatal(err) + } + if err := binary.Write(out, binary.LittleEndian, uint32(len(entries))); err != nil { + log.Fatal(err) + } + + // Write entries in the same order as list.bin + for _, e := range entries { + tmp := p[e.Sig] + tmp.Played = tmp.Played &^ 0xFF000000 + if err := binary.Write(out, binary.LittleEndian, e.Sig); err != nil { + log.Fatal(err) + } + if _, err := tmp.WriteTo(out); err != nil { + log.Fatal(err) + } + } + + complete = true +} From 2c1227652dbfddfc510bede6ac6adf54b55ecc7a Mon Sep 17 00:00:00 2001 From: g026r Date: Fri, 27 Sep 2024 17:55:09 -0400 Subject: [PATCH 2/2] Comment --- cmd/playfix/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/playfix/main.go b/cmd/playfix/main.go index a501f38..dc6a4a6 100644 --- a/cmd/playfix/main.go +++ b/cmd/playfix/main.go @@ -45,7 +45,7 @@ func main() { // Write entries in the same order as list.bin for _, e := range entries { tmp := p[e.Sig] - tmp.Played = tmp.Played &^ 0xFF000000 + tmp.Played = tmp.Played &^ 0xFF000000 // Fix the time. System prefix will get written by WriteTo if err := binary.Write(out, binary.LittleEndian, e.Sig); err != nil { log.Fatal(err) }