This commit is contained in:
Alex-2-Graf 2026-06-21 15:25:04 +02:00
parent 62749e7e8f
commit 5abb655ac8
2 changed files with 84 additions and 0 deletions

82
README.en.md Normal file
View File

@ -0,0 +1,82 @@
# LGT-Turbo-Sound-emulator
## Hardware Turbo Sound (Dual AY/YM) emulator for ZX Spectrum based on the high-speed LGT8F328P microcontroller.
> [English](README.en.md) | [Русский](README.md)
This project features a hardware emulator for two sound coprocessors, AY-3-8910 and YM2149F (complying with the **Turbo Sound** standard), designed for **ZX Spectrum** computers and their clones. The device is powered by the **LGT8F328P** microcontroller. Thanks to its 32 MHz clock speed and advanced architecture, it can process the Spectrum system bus commands with high accuracy and generate lag-free, 6-channel chiptune audio.
## ⚙️ Technical Highlights
* **Superior Sound Quality:** Utilizes the built-in **8-bit Digital-to-Analog Converter (DAC)** of the LGT8F328P. Unlike traditional PWM emulation, this approach ensures clean chiptune sound without high-frequency switching noise and significantly reduces the required external component count.
* **Maximum Performance:** Running the LGT8F328P core at 32 MHz provides precise bus timing synchronization.
* **Full Compatibility:** Complete emulation of the 6-channel Turbo Sound hardware standard.
* **Cost-Effective & Available:** The LGT8F328P microcontroller is considerably cheaper, faster, and more accessible than the standard ATmega328P.
## 📐 Hardware Layouts
All printed circuit boards were designed using **KiCad**. The repository contains complete project directories, schematics, and production-ready Gerber files compatible with modern PCB fabs (JLCPCB, PCBWay, etc.).
The project supports **4 hardware form-factor variants** to suit different installation needs:
### 1. DIP-28 (Crystal-less)
The most compact variant relying entirely on the internal 32 MHz oscillator. Ideal for tight spaces.
* [Schematics](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Placement](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Gerber](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator)
### 2. DIP-28 (With Crystal)
A compact layout that includes footprints for an external crystal oscillator (40/48/50 MHz) to achieve absolute timing accuracy.
* [Schematics](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Placement](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Gerber](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator)
### 3. DIP-40 (Crystal-less)
A convenient drop-in replacement form-factor designed to plug directly into standard vintage ZX Spectrum CPU or sound chip sockets without requiring any extra pin adapters.
* [Schematics](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Placement](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Gerber](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator)
### 4. DIP-40 (With Crystal)
A full-sized drop-in replacement layout utilizing an external clock generator for the ultimate emulation quality and stability.
* [Schematics](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Placement](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) | [Gerber](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator)
## 💾 Firmware & Configuration
The project features specific binary builds corresponding to different clock generator modes, as well as separate firmware versions optimized for either **AY-3-8910** or **YM2149F** chips (taking their unique hardware volume envelope tables into account).
### **AY-3-8910 Targeted Firmware**
* `TS_Emu_INT_32MHz_AY` — Internal 32 MHz oscillator, AY-3-8910 tables.
* `TS_Emu_INT_37MHz_AY` — Internal 37 MHz oscillator, AY-3-8910 tables (*Recommended for crystal-less builds*).
* `TS_Emu_EXT_40MHz_AY` — External 40 MHz clock, AY-3-8910 tables.
* `TS_Emu_EXT_48MHz_AY` — External 48 MHz clock, AY-3-8910 tables.
* `TS_Emu_EXT_50MHz_AY` — External 50 MHz clock, AY-3-8910 tables.
### **YM2149F Targeted Firmware**
* `TS_Emu_INT_32MHz_YM` — Internal 32 MHz oscillator, YM2149F tables.
* `TS_Emu_INT_37MHz_YM` — Internal 37 MHz oscillator, YM2149F tables (*Recommended for crystal-less builds*).
* `TS_Emu_EXT_40MHz_YM` — External 40 MHz clock, YM2149F tables.
* `TS_Emu_EXT_48MHz_YM` — External 48 MHz clock, YM2149F tables.
* `TS_Emu_EXT_50MHz_YM` — External 50 MHz clock, YM2149F tables.
---
## Flashing Instructions
To flash the LGT8F328P microcontroller, a specialized hardware programmer is required.
You can easily build one yourself using one of these DIY options:
1. An **Arduino-based** programmer using [LarduinoISP](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator).
2. An **RP2040-based** programmer using [LarduinoISP](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator).
Once your hardware programmer is ready, you can flash the compiled hex files using the **AVRDUDESS** GUI software tool.
### Source Code Compilation
The complete source files can be found in the [/Sources](https://github.com/Alex-2-Graf/LGT-Turbo-Sound-emulator) directory. The project compiles successfully using **Atmel Studio 7.0**.
---
## 🤝 Credits & Acknowledgments
* **Alexander Korochinsky** — Author of the original high-performance firmware core for AY-3-8910 and YM2149F emulation.
* **Alex-2-Graf** — Hardware schematics, KiCad PCB routing, optimization, and project curation.
---
## 📜 License
This project is licensed under the MIT License - see the `LICENSE` file for details.

View File

@ -1,6 +1,8 @@
# LGT-Turbo-Sound-emulator
Hardware Turbo Sound (Dual AY/YM) emulator for ZX Spectrum based on the high-speed LGT8F328P microcontroller.
> [English](README.en.md) | [Русский](README.md)
# Эмулятор Turbo Sound на микроконтроллере LGT8F328P 🎹⚡
Проект аппаратного эмулятора двух музыкальных сопроцессоров AY-3-8910 / YM2149F (стандарт **Turbo Sound**) для компьютеров **ZX Spectrum** и их клонов.