diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..0839f7d --- /dev/null +++ b/README.en.md @@ -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. diff --git a/README.md b/README.md index 0fd150f..7bb1f06 100644 --- a/README.md +++ b/README.md @@ -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** и их клонов.