Vgm sro
VGM Sample-ROM Optimizer. Used when the game preloads data. When the game streams RF5C68/164 data in realtime, use optvgmrf.
It strips all unused data by itself (inaudibly-lossy compression). It only shows what it has done.
Commandline syntax is:
vgm_sro [-strip-empty] [input.vgm] [output.vgm]
The optional -strip-empty
can be used to strip datablocks completely when they are empty. (Default is to keep the ROM allocation intact.)
Like vgm_cmp, this tool can greatly reduce the size of a VGM. It strips unused data from sample ROMs. The file size of optimized files usually decreases to 5-10%.
Before any data is stripped, vgm_sro will display all ROM regions, so you can see what data is stripped.
The following chips are supported:
- C140
- C219
- C352
- ES5503
- ES5506
- Irem GA20
- K053260
- K054539
- NES APU (DPCM data)
- OKIM6295
- Q-Sound
- RF5C68/RF5C164 (if not streamed)
- SegaPCM
- UPD7759 (if not streamed)
- X1-010
- Y8950 (DELTA-T)
- YM2608 (DELTA-T)
- YM2610 (ADPCM and DELTA-T)
- YMF278B (ROM and RAM)
- YMF271
- YMZ280B
- YRW258/MultiPCM
It will still incorrectly strip K053260 PCM roms.
Notes:
- When there is nothing to be optimized, vgm_sro won't write an output file
- SegaPCM support isn't 100% safe. That means, that there may be samples stripped off, although they're used. That can happen between 2 memory writes that relocate the playing address and shouldn't be audible.