mirror of https://github.com/wwarthen/RomWBW.git
Browse Source
- Fixed missing chip detection (e.g., SN76489 in SHIRAKAW.VGM)
- Fixed false positive detection (e.g., AY-3-8910 in files without it)
- Implemented hybrid detection strategy:
* Check VGM header clock values (offsets 0x0C, 0x2C, 0x30, 0x74) to
determine which chip types are present
* Scan VGM command stream (up to 255 commands) to detect multiple
instances of same chip type (e.g., '2xSN76489')
- Added VGM version check: only read AY-3-8910 clock for VGM v1.51+
to avoid false positives from invalid data in earlier versions
- Updated documentation with new detection approach and examples
pull/635/head
2 changed files with 198 additions and 5 deletions
@ -0,0 +1,83 @@ |
|||
VGM File Info Scanner for CP/M |
|||
=============================== |
|||
|
|||
A utility that scans all .VGM files in the current directory and |
|||
displays a table showing which audio chips each file uses. |
|||
|
|||
Version 1.1 uses a hybrid detection approach: |
|||
- Checks VGM header clock values to detect chip types |
|||
- Scans VGM command stream to detect multiple instances of same chip type |
|||
|
|||
Usage: |
|||
------ |
|||
|
|||
Simply run the program from a directory containing VGM files: |
|||
|
|||
VGMINFO |
|||
|
|||
No command line arguments are needed. The program will automatically scan |
|||
all .VGM files in the current directory. |
|||
|
|||
Output: |
|||
------- |
|||
|
|||
The program displays a formatted table with two columns: |
|||
- Filename: The name of the VGM file |
|||
- Chips Used: A comma-separated list of audio chips used in that file |
|||
|
|||
Supported Chips: |
|||
---------------- |
|||
|
|||
The program can detect the following audio chips: |
|||
- SN76489 (PSG - Programmable Sound Generator) |
|||
- YM2612 (FM Synthesis chip used in Sega Genesis/Mega Drive) |
|||
- YM2151 (OPM - FM Operator Type-M) |
|||
- AY-3-8910 (PSG used in many arcade and home computers) |
|||
|
|||
Example Output: |
|||
--------------- |
|||
|
|||
VGM Music Chip Scanner v1.1 |
|||
|
|||
Filename Chips Used |
|||
======== ===================== |
|||
BGM 2xAY-3-8910 |
|||
ENDING AY-3-8910 |
|||
INCHINA YM2612 |
|||
SHIRAKAW SN76489, YM2612 |
|||
STARTDEM 2xSN76489, AY-3-8910 |
|||
WONDER01 2xSN76489 |
|||
======== ===================== |
|||
|
|||
Notes: |
|||
------ |
|||
|
|||
- The program reads the VGM file headers and scans up to 255 commands from |
|||
the VGM data stream for accurate chip detection. |
|||
|
|||
- Files that don't have a valid VGM header are silently skipped. |
|||
|
|||
- Chip detection uses a hybrid approach: |
|||
* VGM header clock values (offsets 0x0C, 0x2C, 0x30, 0x74) determine |
|||
which chip types are present |
|||
* Command stream scanning detects multiple instances (e.g., "2xSN76489") |
|||
|
|||
- AY-3-8910 clock detection respects VGM version - only checked for v1.51+ |
|||
to avoid false positives from invalid header data in older VGM versions. |
|||
|
|||
Building: |
|||
--------- |
|||
|
|||
To rebuild from source: |
|||
|
|||
build_vgminfo.cmd |
|||
|
|||
Or manually with TASM: |
|||
|
|||
tasm -t80 -b -g3 -fFF vgminfo.asm vgminfo.com |
|||
|
|||
Author: |
|||
------- |
|||
|
|||
Created for RomWBW/CP/M systems |
|||
Based on VGM format specification from vgmrips.net |
|||
Loading…
Reference in new issue