diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 2dcd48d9..e603b255 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -34,7 +34,8 @@ Version 3.6 - HJB: Added IDE driver master media detect option - WBW: Add support for S100 Serial I/O DLP Serial connection - P?D: Generate compressed ROM for EaZyZ80 512 -- DDW: Added support for the 'N8PC' platform. Includes support for the M6242 RTC chip. +- DDW: Added support for the 'N8PC' platform. Includes support for the M6242 RTC chip +- JMD: Added VGMINFO application Version 3.5.1 ------------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index b1d18c5b..5e56d516 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 034d94a9..574ee365 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Hardware.pdf b/Doc/RomWBW Hardware.pdf index 3ecea136..a4502eaa 100644 Binary files a/Doc/RomWBW Hardware.pdf and b/Doc/RomWBW Hardware.pdf differ diff --git a/Doc/RomWBW Introduction.pdf b/Doc/RomWBW Introduction.pdf index fc37d55c..d57135e7 100644 Binary files a/Doc/RomWBW Introduction.pdf and b/Doc/RomWBW Introduction.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index c40dcf78..d5b2a60e 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index b7d1e1c3..250ae4aa 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/ReadMe.md b/ReadMe.md index c1b29dc3..397a72b1 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -7,7 +7,7 @@ **RomWBW Introduction** \ Version 3.6 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -30 Nov 2025 +07 Dec 2025 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 980498e6..98f7a0b1 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW Introduction Wayne Warthen (wwarthen@gmail.com) -30 Nov 2025 +07 Dec 2025 diff --git a/Source/Apps/VGM/Build.cmd b/Source/Apps/VGM/Build.cmd index 0a032701..a93165d3 100644 --- a/Source/Apps/VGM/Build.cmd +++ b/Source/Apps/VGM/Build.cmd @@ -7,6 +7,8 @@ set TASMTABS=%TOOLS%\tasm32 tasm -t80 -g3 -fFF -dWBW vgmplay.asm vgmplay.com vgmplay.lst || exit /b tasm -t80 -g3 -fFF -dWBW ymfmdemo.asm ymfmdemo.com ymfmdemo.lst || exit /b +tasm -t80 -g3 -fFF -dWBW vgminfo.asm vgminfo.com vgminfo.lst || exit /b copy /Y vgmplay.com ..\..\..\Binary\Apps\ || exit /b +copy /Y vgminfo.com ..\..\..\Binary\Apps\ || exit /b copy /Y Tunes\*.vgm ..\..\..\Binary\Apps\Tunes\ || exit /b diff --git a/Source/Apps/VGM/Makefile b/Source/Apps/VGM/Makefile index fdb643d9..60df84ed 100644 --- a/Source/Apps/VGM/Makefile +++ b/Source/Apps/VGM/Makefile @@ -1,4 +1,4 @@ -OBJECTS = vgmplay.com +OBJECTS = vgmplay.com vgminfo.com DEST = ../../../Binary/Apps TOOLS = ../../../Tools OTHERS = *.LST @@ -13,6 +13,9 @@ vgmplay.com: $(DEPS) ym2612.com: $(TASM) -dWBW ymfmdemo.asm ymfmdemo.com ymfmdemo.lst +vgminfo.com: + $(TASM) -dWBW vgminfo.asm vgminfo.com vgminfo.lst + all:: mkdir -p $(DEST)/Tunes cp Tunes/*.vgm $(DEST)/Tunes diff --git a/Source/Doc/Applications.md b/Source/Doc/Applications.md index a326a268..a4ad0070 100644 --- a/Source/Doc/Applications.md +++ b/Source/Doc/Applications.md @@ -988,6 +988,7 @@ included within RomWBW may be found within the Binary/Apps directory. | TIMER | Yes | Yes | | TUNE | No | Yes | | VGMPLAY | No | Yes | +| VGMINFO | No | Yes | | WDATE | No | Yes | | XM | Yes | Yes | | ZMD | No | Yes | @@ -2640,6 +2641,66 @@ The source code is provided in the RomWBW distribution. `\clearpage`{=latex} +## VGMINFO (Video Game Music File Information) + +| VGMPLAY | | +| --------------------|---| +| ROM-based |No | +| Disk-based |Yes| + +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 + +#### Syntax + +| `VGMINFO` + +#### Usage + +No command line arguments are needed. The program will automatically scan +all .VGM files in the current directory. + +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 + +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) + - YM3812 (OPL2 - FM synthesis chip) + - YMF262 (OPL3 - Enhanced FM synthesis chip) + - AY-3-8910 (PSG used in many arcade and home computers) + +#### 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. + +#### Etymology + +The `VGMINFO` application was written and contributed to RomWBW by +Joao Miguel Duraes. + +`\clearpage`{=latex} + ## VGMPLAY (Video Game Music Play) | VGMPLAY | | diff --git a/Source/Images/fd_cpm22.txt b/Source/Images/fd_cpm22.txt index cd82e472..9a0676aa 100644 --- a/Source/Images/fd_cpm22.txt +++ b/Source/Images/fd_cpm22.txt @@ -37,6 +37,7 @@ d_cpm22/ReadMe.txt 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # # Add OS image # diff --git a/Source/Images/fd_cpm3.txt b/Source/Images/fd_cpm3.txt index 638d38d6..6b555f23 100644 --- a/Source/Images/fd_cpm3.txt +++ b/Source/Images/fd_cpm3.txt @@ -56,6 +56,7 @@ d_cpm3/ReadMe.txt 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # # Add Common Applications # diff --git a/Source/Images/fd_qpm.txt b/Source/Images/fd_qpm.txt index 268ccf5f..5d4cc9d4 100644 --- a/Source/Images/fd_qpm.txt +++ b/Source/Images/fd_qpm.txt @@ -41,6 +41,7 @@ d_cpm22/u0/*.* 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # # Add OS image # diff --git a/Source/Images/fd_zsdos.txt b/Source/Images/fd_zsdos.txt index ef1e493f..92e1d54a 100644 --- a/Source/Images/fd_zsdos.txt +++ b/Source/Images/fd_zsdos.txt @@ -41,6 +41,7 @@ d_cpm22/u0/*.* 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # # Add OS image # diff --git a/Source/Images/hd_bp.txt b/Source/Images/hd_bp.txt index 4cc81913..f07261ec 100644 --- a/Source/Images/hd_bp.txt +++ b/Source/Images/hd_bp.txt @@ -47,6 +47,7 @@ Common/Z3/u15/ZEX.COM 0: ../../Binary/Apps/zmconfig.ovr 15: ../../Binary/Apps/zmd.com 15: ../../Binary/Apps/vgmplay.com 15: +../../Binary/Apps/vgminfo.com 15: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: diff --git a/Source/Images/hd_cpm22.txt b/Source/Images/hd_cpm22.txt index b928c473..7832cee0 100644 --- a/Source/Images/hd_cpm22.txt +++ b/Source/Images/hd_cpm22.txt @@ -42,6 +42,7 @@ d_cpm22/ReadMe.txt 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: diff --git a/Source/Images/hd_cpm3.txt b/Source/Images/hd_cpm3.txt index bdf7e5a5..3fca8da3 100644 --- a/Source/Images/hd_cpm3.txt +++ b/Source/Images/hd_cpm3.txt @@ -61,6 +61,7 @@ d_cpm3/ReadMe.txt 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: diff --git a/Source/Images/hd_nzcom.txt b/Source/Images/hd_nzcom.txt index 60f5f686..cbfad96f 100644 --- a/Source/Images/hd_nzcom.txt +++ b/Source/Images/hd_nzcom.txt @@ -57,6 +57,7 @@ d_zsdos/u0/*.DAT 15: ../../Binary/Apps/zmconfig.ovr 15: ../../Binary/Apps/zmd.com 15: ../../Binary/Apps/vgmplay.com 15: +../../Binary/Apps/vgminfo.com 15: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: diff --git a/Source/Images/hd_qpm.txt b/Source/Images/hd_qpm.txt index 0e66f92d..4a263e81 100644 --- a/Source/Images/hd_qpm.txt +++ b/Source/Images/hd_qpm.txt @@ -46,6 +46,7 @@ d_cpm22/u0/*.* 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: diff --git a/Source/Images/hd_z3plus.txt b/Source/Images/hd_z3plus.txt index 3f738c5e..7836b2c3 100644 --- a/Source/Images/hd_z3plus.txt +++ b/Source/Images/hd_z3plus.txt @@ -68,6 +68,7 @@ d_cpm3/u0/HELP.HLP 0: ../../Binary/Apps/zmconfig.ovr 15: ../../Binary/Apps/zmd.com 15: ../../Binary/Apps/vgmplay.com 15: +../../Binary/Apps/vgminfo.com 15: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: diff --git a/Source/Images/hd_zpm3.txt b/Source/Images/hd_zpm3.txt index 96e38390..3b6dd886 100644 --- a/Source/Images/hd_zpm3.txt +++ b/Source/Images/hd_zpm3.txt @@ -67,6 +67,7 @@ d_cpm3/u0/HELP.HLP 0: ../../Binary/Apps/zmconfig.ovr 15: ../../Binary/Apps/zmd.com 15: ../../Binary/Apps/vgmplay.com 15: +../../Binary/Apps/vgminfo.com 15: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: diff --git a/Source/Images/hd_zsdos.txt b/Source/Images/hd_zsdos.txt index 7dc8526c..4210af7d 100644 --- a/Source/Images/hd_zsdos.txt +++ b/Source/Images/hd_zsdos.txt @@ -46,6 +46,7 @@ d_cpm22/u0/*.* 0: ../../Binary/Apps/zmconfig.ovr 0: ../../Binary/Apps/zmd.com 0: ../../Binary/Apps/vgmplay.com 0: +../../Binary/Apps/vgminfo.com 0: # ../../Binary/Apps/Test/*.com 2: ../../Binary/Apps/Test/*.doc 2: