msx-sound-audit
Validate MSX PSG sound emulation in EMULATORS, including AY-3-8910/YM2149 ports
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Validate MSX PSG sound emulation in EMULATORS, including AY-3-8910/YM2149 ports
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Apply the local C++ coding conventions of the EMULATORS framework. Use when Codex adds, edits, reviews, or scaffolds C++ code in this repository, especially new classes, headers, cpp files, CORE/COMMODORE module code, emulator components, registers, chips, memory, sound, IO, commands, or InfoClass-derived objects.
Validate and implement Sinclair ZX Spectrum 48K ROM-visible behavior in the EMULATORS repository, including reset and restart vectors, IM1/NMI handling, keyboard scanning and repeat, beeper and tape routines, screen/printer output, channels and streams, BASIC tokenization and execution, expression evaluation, memory movement, system variables, calculator stack, floating-point formats, ROM traps, localized ROM selection, and firmware/hardware timing contracts. Use when Codex reviews or edits ZX Spectrum ROM loading, KERNAL-style traps, keyboard, tape, screen, printer, BASIC files, tokens, system variables, startup, interrupts, or compatibility tests.
Validate and implement Sinclair ZX Spectrum 16K/48K ULA and board-level behavior in the EMULATORS repository, including PAL/NTSC raster timing, bitmap and attribute fetches, FLASH/BRIGHT/INK/PAPER rendering, CPU clock generation, lower-RAM and I/O contention, floating bus, snow effect, DRAM addressing and refresh, port FE keyboard/tape/border/sound behavior, interrupts, and ULA revision boundaries. Use when Codex reviews or edits namespace ZXSPECTRUM ULA, ULARegisters, Memory, PortManager, Screen, Sound, Datasette, Z80 bus timing, raster, contention, or ZX Spectrum hardware tests.
Build, audit, and modify EMULATORS runtime `.fmt` formatter files and keep them synchronized with C++ `getInfoStructure()` producers and their `.hpp` field documentation. Use when adding, renaming, or removing `InfoStructure` attributes or nested structures; diagnosing missing console fields; reviewing formatter includes, formatter names, placeholders, arrays, nested invocations, or table parameters; or changing namespace-specific `.fmt` files under `projects`.
Validate and implement Sinclair ZX80 video emulation in the EMULATORS repository, including CPU-driven display generation, display-file execution, Z80 M1/refresh/HALT/INT interactions, character and inverse-video fetches, line counter and shift register behavior, horizontal and vertical sync, collapsed display files, PAL timing, flicker, and cassette/video coupling. Use when Codex reviews or edits namespace ZX81 code for the /mZX80 model, especially ULA, ULARegisters, MemoryVideoCode, Memory, PortManager, Screen, CPU interrupt timing, raster, or video tests.
Validate and implement Sinclair ZX81 video emulation in the EMULATORS repository for /mZX811, /mZX812, and /mZX813, including ULA character generation, Z80 display-file execution, M1/refresh/HALT/INT behavior, scanline timing, HSYNC/VSYNC, NMI generator and WAIT synchronization, SLOW and FAST modes, PAL/NTSC margins, collapsed display files, inverse video, high-resolution techniques, ROM-version interactions, and ULA revision boundaries. Use when Codex reviews or edits namespace ZX81 ULA, ULARegisters, MemoryVideoCode, Memory, PortManager, Screen, CPU interrupt timing, raster, ROM-specific video flow, or ZX81 video tests.
| name | msx-sound-audit |
| description | Validate MSX PSG sound emulation in EMULATORS, including AY-3-8910/YM2149 ports |
Use this skill to audit whether EMULATORS models the MSX PSG as both a sound generator and an MSX-wired GPIO device.
references/sound.md before making claims or edits.include/MSX/PSG.hpp, src/MSX/PSG.cppinclude/MSX/Sound.hpp, src/MSX/Sound.cppinclude/MSX/PortManager.hpp, src/MSX/PortManager.cppinclude/GENERALINSTRUMENTS/AY38910/AY38910.hpp, src/GENERALINSTRUMENTS/AY38910/AY38910.cppinclude/GENERALINSTRUMENTS/AY38910/AY38910Registers.hpp, src/GENERALINSTRUMENTS/AY38910/AY38910Registers.cppinclude/GENERALINSTRUMENTS/AY38910/AY38910LibWrapper.hpp, src/GENERALINSTRUMENTS/AY38910/AY38910LibWrapper.cpp$emulators-framework-cpp-style.$msx-system-audit because those bits wire to joystick, cassette, keyboard layout, and LEDs.Prioritize correctness in this order:
For register bugs, use direct I/O tests against #A0-#A2 and avoid judging by audio alone. For GPIO bugs, test joystick/cassette reads through PSG register 14 and writes to register 15. For audible bugs, compare short generated samples at the same PSG clock and sample rate.
If a PLAY/BASIC symptom is involved, inspect BIOS-visible queue and interrupt behavior as well as the PSG registers.