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