vgm logging openmsx

Page 2/2
1 |

By ren

Paragon (1143)

ren's picture

24-03-2017, 21:53

@Manuel hehe.. of all places.. It's the (absolute) path to Catapult/bin, and indeed, music.vgm!

By Manuel

Ascended (14573)

Manuel's picture

24-03-2017, 23:40

OK, Catapult starts up the openMSX process and openMSX apparently inherits the working directory which was valid for Catapult.

By niek

Expert (74)

niek's picture

09-07-2017, 23:18

Hello all, I've added some things to the script, now it can record Y8950 and Moonsound as well. You can define with parameters which chips to record and the VGM header will be creating accordingly.

Here's the github page.

By Grauw

Enlighted (7361)

Grauw's picture

09-07-2017, 23:22

Awesome Niek Smile. I’ve seen your emails btw, just not replied to them yet (lazy me!).

By niek

Expert (74)

niek's picture

14-07-2017, 00:04

@Grauw; No problem, lucky for you I figured it out otherwise you'd receive some more spam. Wink

SCC is supported now as well!

By Grauw

Enlighted (7361)

Grauw's picture

14-07-2017, 19:55

Awesome! This will be useful.

SCC logging is a bit awkward in the VGM format if you ask me, in an attempt to abstract away the difference between SCC and SCC+, but it follows a bit too closely the internal implementation of the SCC emulator IMO, using the “port” to group the SCC registers. It would’ve been simpler to log directly the I/O and use a different command for the SCC+, or to use the “port” value 0/1 to indicate the SCC or SCC+ bank. No way to change it anymore now unfortunately.

Btw, if you’re adding support for logging SCC+ music, be sure to set bit 31 of the K051649 clock value to indicate that it is indeed SCC+. VGMPlay for MSX relies on it. It’s not in the official spec yet but should be in the next version, all SCC+ VGMs on vgmrips also have this bit set.

niek wrote:

You can define with parameters which chips to record and the VGM header will be creating accordingly.

The VGM tools allow you to easily strip out unused chips afterwards btw.

Finally, you have my vote for completing the OPL4 support by logging FM1 as well, even though it’s not used much in MSX music currently. Smile

p.s. Sorry I passed on the incorrect OPL4 port value order!

By niek

Expert (74)

niek's picture

14-07-2017, 21:59

Ok, I will have a look at the SCC+ thing, that's the last thing on my list, because then we have a pretty complete VGM ripping script, i.e. supporting all sound chips which are used on a regular basis in MSX software. Smile I just remembered there are some games with MIDI support...?

FM1 is in! Completely untested however... in the downloads section there's FM music it seems, I'll have a look later on.

By niek

Expert (74)

niek's picture

15-07-2017, 00:08

SCC+ seems to be working, thanks for this bit 31 thing. vgm2txt also handles it as being SCC+ mode.

By niek

Expert (74)

niek's picture

11-05-2018, 11:46

I made a lot of changes to the script a few months back, but didn't release it. Now I have at https://github.com/niekvlessert/openmsx_tcl_vgm_export/

Feedback is welcome!

- Merged all settings and actions in one command, vgm_rec, ‘the UX way’
- -end saves the current recording
- -abort aborts the current recording
- Implemented an -auto_next feature; if no audio is written to the chips for longer then one second the recording stops and the next recording is started
- Implemented -next feature, to skip to the next recording manually
- Added specific hacks for MBWave and MBWave basic driver using -enable_hack. Different tab completion it implemented when that command is in the line. Hacks can be disabled using -disable_hacks
- -enable_hack MBWave_title: extract the title from the memory and uses it as a filename
- -enable_hack MBWave_basic_title: same for MBWave Basic drivers
- -enable_hack MBWave_loop: a loop detector for MBWave for convenient VGM logging; it stops playback after 3 loops. Not two, since transposing can be used. It saves Pokey VGM commands at every loop point. If vgmlpfnd won’t find the obvious loop point, vgm2txt can be used and then the Pokey commands will tell you the actual loop points. vgm_cmp will optimise the Pokey commands away so the VGM is not polluted.
- Recording from the VGM file will now start when there’s actual audio data send to the chips, when the command is issued the recording stands ready. This means no silence needs to be removed at the beginning of the resulting VGM file.
- OPL4 and Y8950 sample RAM are now saved at the end of recording as datablock in the VGM file. This means the VGM commands to fill the sample RAM won’t be needed in the VGM file. In other words, recording can be started after loading the sample RAM. Beware; OPL4 datablock support in VGM is very new on this moment, use the latest vgmplay source. Or Grauw's player on the real thing. :)
- OPL4 initialisation is written to the VGM file by default, so if the MSX player engine is not initialising it all the time, but just once when loading the player, like MBWave, the resulting VGM files will still work. Any duplicate initialisation will be optimised away by vgm_cmp.

Page 2/2
1 |
My MSX profile