If you accidentally forget that you cannot save files from a beta version, you can follow this post to publish it if you don't use any new features or new elements in the beta version. If you used, you'll has to wait for next version to load it, or remove them.
1.Unpublish your save and download it as a cps file. Then rename it convert.stm.
You can also save as a stamp and rename the stamp convert.stm.
2.Copy those code:
Function ReadBinary(FileName)
Dim Buf(), I
With CreateObject("ADODB.Stream")
.Mode = 3: .Type = 1: .Open: .LoadFromFile FileName
ReDim Buf(.Size - 1)
For I = 0 To .Size - 1: Buf(I) = AscB(.Read(1)): Next
.Close
End With
ReadBinary = Buf
End Function
Sub WriteBinary(FileName, Buf)
Dim I, aBuf, Size, bStream
Size = UBound(Buf): ReDim aBuf(Size \ 2)
For I = 0 To Size - 1 Step 2
aBuf(I \ 2) = ChrW(Buf(I + 1) * 256 + Buf(I))
Next
If I = Size Then aBuf(I \ 2) = ChrW(Buf(I))
aBuf=Join(aBuf, "")
Set bStream = CreateObject("ADODB.Stream")
bStream.Type = 1: bStream.Open
With CreateObject("ADODB.Stream")
.Type = 2 : .Open: .WriteText aBuf
.Position = 2: .CopyTo bStream: .Close
End With
bStream.SaveToFile FileName, 2: bStream.Close
Set bStream = Nothing
End Sub
Dim Buf
Buf = ReadBinary("convert.stm")
Buf(4) = 0
WriteBinary "convert.stm", Buf
Save into a vbs file. Copy convert.stm to the same folder and run this script.
3.Open convert.stm and publish it.
[to developers]
GameSave.cpp:458
throw ParseException(ParseException::WrongVersion, "Save from newer version");
But you can still load it, and all the new elements are just recognized as empty. I think we should remove this line, and check it in GameSave.cpp:823 instead.
It just modifies the major version to 0. Then you can open it.
I said, the new elements are recognized as empty, that's all.
Here is a C version for linux users/windows users with a compiler:
http://server.triclops200.com/MiningMarsh/powder-save-convert.c
Does the same thing, just changes byte 4 (indexed from 0, is the version) in the file to 0.
EDIT:
Changed it to ask you what version to set the file to. Little better then always setting to 0.
theabove.bf:
+[,+>][<]>>>>>[-]+<<<<<[>-.]
// NOTE: requires a brainfuck interpreter for which values can go over 255 !!!
$ cat mybrokensave.cps | bf theabove.bf > myfixedsave.cps