(count);
+ using (var input = file.CreateStream (8, (uint)count * 0x15))
+ {
+ foreach (var entry in ReadIndex (input, count, scheme, key))
+ {
+ if (!entry.CheckPlacement (file.MaxOffset))
+ return null;
+ if (is_script)
+ entry.Hash ^= scheme.Hash;
+ dir.Add (entry);
+ }
+ }
+ return new ArcFile (file, this, dir);
+ }
+
+ public override Stream OpenEntry (ArcFile arc, Entry entry)
+ {
+ var dent = entry as ArcDatEntry;
+ if (null == dent || 0 == dent.Size)
+ return arc.File.CreateStream (entry.Offset, entry.Size);
+ var data = arc.File.View.ReadBytes (entry.Offset, entry.Size);
+ if (dent.IsPacked)
+ {
+ DecryptData (data, (uint)dent.Hash);
+ return new ZLibStream (new MemoryStream (data), CompressionMode.Decompress);
+ }
+ if (dent.RawName != null && 0 != dent.Flags)
+ DecryptWithName (data, dent.RawName);
+ return new BinMemoryStream (data, entry.Name);
+ }
+ }
+}
diff --git a/supported.html b/supported.html
index 53bf0ec5..0875ffdb 100644
--- a/supported.html
+++ b/supported.html
@@ -906,6 +906,7 @@ Otto no Mae de Okasarete...
*.gec | - | No |
*.arc | - | No | AI6WIN |
Gakuen Saimin Reido
+Shinsou Noise
|
*.akb | AKB | No |
*.cpz | CPZ2 CPZ5 CPZ6 | No | CMVS CVNS |
@@ -1061,8 +1062,9 @@ Shin Genre Esudere!!
Valkyrie Complex
|
*.cps | - | No |
-arc*.dat script.dat | - | No | non color |
+ |
arc*.dat script.dat | - ACV1 | No | non color mirai |
Doubly na Kanojo
+Hana Hime * Absolute!
Nora to Oujo to Noraneko Heart
Tsujidou-san no Jun'ai Road
Tsujidou-san no Virgin Road
@@ -1289,6 +1291,9 @@ Maou no Ingu
Doreijou
|
*.kgf | KGF | No |
+*.pfs | pf8 | No | Artemis Engine |
+Boku no Elf Onee-san
+ |
Non-encrypted only