Adding modding folder with a hacked build.

This commit is contained in:
ml
2026-09-26 08:53:08 +02:00
parent cdb960dc71
commit c91080aba7
755 changed files with 50424 additions and 0 deletions
@@ -0,0 +1,107 @@
package voc_test
import (
"bytes"
"encoding/binary"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/inkyblackness/hacked/ss1/content/audio/voc"
)
func TestLoadReturnsErrorOnNil(t *testing.T) {
_, err := voc.Load(nil)
assert.Errorf(t, err, "source is nil")
}
func newHeader() *bytes.Buffer {
writer := bytes.NewBufferString(voc.FileHeader)
version := uint16(0x010A)
headerSize := uint16(0x001A)
_ = binary.Write(writer, binary.LittleEndian, headerSize)
_ = binary.Write(writer, binary.LittleEndian, version)
versionValidity := ^version + uint16(0x1234)
_ = binary.Write(writer, binary.LittleEndian, versionValidity)
return writer
}
func TestLoadReturnsErrorOnInvalidVersion(t *testing.T) {
writer := newHeader()
writer.Write([]byte{0x00}) // Terminator
data := writer.Bytes()
data[24] = 0x00
source := bytes.NewReader(data)
_, err := voc.Load(source)
assert.Errorf(t, err, "Version validity failed: 0x1129 != 0x1100")
}
func TestLoadReturnsErrorOnValidButEmptyFile(t *testing.T) {
writer := newHeader()
writer.Write([]byte{0x00}) // Terminator
source := bytes.NewReader(writer.Bytes())
_, err := voc.Load(source)
assert.Errorf(t, err, "No audio found")
}
func TestLoadReturnsSoundDataOnSampleData(t *testing.T) {
writer := newHeader()
writer.Write([]byte{0x01}) // sound data
writer.Write([]byte{0x03, 0x00, 0x00}) // block size
writer.Write([]byte{0x64, 0x00}) // divisor, sound type
writer.Write([]byte{0x80}) // one sample
writer.Write([]byte{0x00}) // Terminator
source := bytes.NewReader(writer.Bytes())
data, err := voc.Load(source)
require.Nil(t, err)
assert.NotNil(t, data)
}
func TestLoadReturnsSoundDataWithSampleRate(t *testing.T) {
writer := newHeader()
writer.Write([]byte{0x01}) // sound data
writer.Write([]byte{0x03, 0x00, 0x00}) // block size
writer.Write([]byte{0x9C, 0x00}) // divisor, sound type
writer.Write([]byte{0x80}) // one sample
writer.Write([]byte{0x00}) // Terminator
source := bytes.NewReader(writer.Bytes())
data, err := voc.Load(source)
require.Nil(t, err)
assert.Equal(t, float32(10000.0), data.SampleRate)
}
func TestLoadReturnsSoundDataWithSamples(t *testing.T) {
writer := newHeader()
samples := []byte{0x80, 0xFF, 0x00, 0xC0, 0x40, 0x7F, 0x81}
writer.Write([]byte{0x01}) // sound data
writer.Write([]byte{0x09, 0x00, 0x00}) // block size
writer.Write([]byte{0x9C, 0x00}) // divisor, sound type
writer.Write(samples) // samples
writer.Write([]byte{0x00}) // Terminator
source := bytes.NewReader(writer.Bytes())
data, err := voc.Load(source)
require.Nil(t, err)
assert.Equal(t, samples, data.Samples)
}