private Dictionary <string, long> SaveInternal(Stream s, bool forReal) { var ret = new Dictionary <string, long>(); var w = new BinaryWriter(s); w.Write("BIZHAWK-CDL-2"); w.Write(SubType.PadRight(15)); w.Write(Count); w.Flush(); long addr = s.Position; if (forReal) { foreach (var kvp in this) { w.Write(kvp.Key); w.Write(kvp.Value.Length); w.Write(kvp.Value); } } else { foreach (var kvp in this) { addr += kvp.Key.Length + 1; //assumes shortly-encoded key names addr += 4; ret[kvp.Key] = addr; addr += kvp.Value.Length; } } w.Flush(); return(ret); }