# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0-beta.6rc] - 2026-05-16
### :sparkles: New Features
- [`11f952d`](https://github.com/crazii/SBEMU/commit/11f952d8aff28b60c8418119ab5f52ff9a321700) - integrate TSF from  https://github.com/Cacodemon345/VSBHDASF with adjustments; /VMPU and /VMSF options added, if soundfont file path is relative, it is relative to the SBEMU.EXE *(commit by [@crazii](https://github.com/crazii))*

### :bug: Bug Fixes
- [`3de27bd`](https://github.com/crazii/SBEMU/commit/3de27bd0d51d70ccc95044e9bdebd1103977fb5d) - fix problems on TSR communication for string options, fix TSF handling on soundfont option change. *(commit by [@crazii](https://github.com/crazii))*
- [`ef7bf21`](https://github.com/crazii/SBEMU/commit/ef7bf216ac1f00535fd1a9e85550e65fd176336b) - bugfix for DPMI_LStr*cmp *(commit by [@crazii](https://github.com/crazii))*

### :zap: Performance Improvements
- [`ad266f6`](https://github.com/crazii/SBEMU/commit/ad266f649d6c86791deac2719d64b178f860d6bf) - TSF: enable -ffast-math; optimize memory usage by LUT. *(commit by [@crazii](https://github.com/crazii))*

### :recycle: Refactors
- [`3bc70a2`](https://github.com/crazii/SBEMU/commit/3bc70a241f789233ee8ad62d597c8a5c5c42bd4c) - VMPU: improve output messages. *(commit by [@crazii](https://github.com/crazii))*

### :construction_worker: Build System
- [`64216a0`](https://github.com/crazii/SBEMU/commit/64216a05f50e90ba9f3797b50f28855e08b53eb2) - Enforce Conventional Commits in Pull Requests *(commit by [@volkertb](https://github.com/volkertb))*

### :memo: Documentation Changes
- [`d4ac635`](https://github.com/crazii/SBEMU/commit/d4ac6357da823c7dfaa9550048eb4b9a97e08a8c) - Add `CONTRIBUTING.md` file to project with guidelines for project contributors *(commit by [@volkertb](https://github.com/volkertb))*

### :wrench: Chores
- [`7506b6e`](https://github.com/crazii/SBEMU/commit/7506b6ed46bba9ce66da244d3edfbeadd76e4b50) - Add JetBrains IDE metadata directory to .gitignore *(commit by [@volkertb](https://github.com/volkertb))*

### :flying_saucer: Other Changes
- [`75fea77`](https://github.com/crazii/SBEMU/commit/75fea77164d527c0040cd2d5e4feb5202cc75930) - Merge pull request [#135](https://github.com/crazii/SBEMU/pull/135) from volkertb/enforce-conventional-commits

ci: Enforce Conventional Commits in Pull Requests *(commit by [@volkertb](https://github.com/volkertb))*
- [`e1692b8`](https://github.com/crazii/SBEMU/commit/e1692b81ddb79faf6e19c266e92800db31aafb1b) - fix missing linux drivers in makefile.dos

Linux drivers are missing in dos makefile. Please note, that native DOS could not create recursive directories with md, thus output directories have to be created manually. *(commit by [@ElTentakel](https://github.com/ElTentakel))*
- [`f0cbde0`](https://github.com/crazii/SBEMU/commit/f0cbde063396deb2c1246c9b3108a37755c68e9a) - Merge pull request [#139](https://github.com/crazii/SBEMU/pull/139) from ElTentakel/patch-1

fix missing linux drivers in makefile.dos *(commit by [@volkertb](https://github.com/volkertb))*
- [`bbd67a3`](https://github.com/crazii/SBEMU/commit/bbd67a3e0a2f6f05f24cd79c7ffae1d7d0015123) - Update build-release-artifacts.sh *(commit by [@crazii](https://github.com/crazii))*
- [`6432df9`](https://github.com/crazii/SBEMU/commit/6432df996c7b8995e732f7381204c2df462c7a85) - Update build-release-artifacts.sh

update to freedos1.4 *(commit by [@crazii](https://github.com/crazii))*

[1.0.0-beta.6rc]: https://github.com/crazii/SBEMU/compare/1.0.0-beta.5...1.0.0-beta.6rc

# User instructions

## Available files

If you wish to use SBEMU and its dependencies in an existing DOS installation, you'll find the necessary
files in `SBEMU.zip`.

Alternatively, `SBEMU-FD13-USB.img.xz` provides SBEMU and is dependencies preconfigured inside a compressed
bootable FreeDOS image that you can write to a USB flash drive or an SD card.

<details>
<summary>Preparing a bootable USB drive</summary>

## Preparing a bootable USB drive

The USB image can be written to a USB drive or SD card using a tool like [balenaEtcher](https://etcher.balena.io/).

The advantage of using Etcher is that you don't have to decompress the `.xz` archive first.
It will decompress such files automatically, before writing the image to the target drive.
</details>
<details>
<summary>Booting the USB image in a virtual machine</summary>

## Booting the USB image in a virtual machine

You can run the image in a VM with QEMU as follows:

```shell
unxz SBEMU-FD13-USB.img.xz
qemu-system-i386 -drive file=SBEMU-FD13-USB.img,format=raw -device AC97
```

If you wish to test Intel HDA compatibility instead of ICHx AC'97 compatibility, replace `AC97` with `intel-hda` in the last command above.
On Linux, you can include the parameter `--enable-kvm` to run the VM with hardware-assisted virtualization.

If you prefer to use another hypervisor, such as VirtualBox or VMware, you may have to convert the raw image to a supported VM image format first:

```shell
unxz SBEMU-FD13-USB.img.xz
qemu-img convert -f raw -O vmdk SBEMU-FD13-USB.img SBEMU-FD13-USB.vmdk
```

**NOTE**: Although VMs can sometimes be useful during development, testing and debugging, you should not rely on those for actual hardware compatibility testing, since the sound cards that the hypervisors emulate are themselves merely approximations of actual hardware, and will not behave like the real thing in every single corner case.
Basically, you shouldn't test emulators on other emulators.
</details>
<details>
<summary>Where can I get some DOS games to test with?</summary>

## Where can I get some DOS games to test with?

There are multiple convenient distributions out there that contain DOS games that can be distributed freely and legally.
Specifically freeware, shareware, open source and free demo versions.

Here are a few links to such distributions:

- [The PC/DOS Mini](http://vieju.net/pcdosmini/), a compilation of 100+ DOS games ready to play for free
- [GAFFA DOS Shareware/Freeware Pack](https://archive.org/details/gaffa-dos-shareware-pack) (please [donate to the Internet Archive](https://archive.org/donate/), by the way!️ ❤️)
</details>
