Sharp X68000 ripping

From vgmrips

To rip music from the Sharp X68000, you'll need to use the latest XM6 Pro-68k, which has VGM logging support.

Ripping songs

  1. Install XM6 Pro-68k.
  2. Get the ROMS (cgrom.dat and iplrom.dat)
  3. Start up the emulator.
  4. Load your floppy image in drive 0 and 1
  5. Reset emulator with Alt+R if necessary, then boot into game
  6. If the game has a sound test menu, access it.
  7. Otherwise, you'll have to rip the music from the game itself, trying to avoid making any sound effects (this is the difficult part). Then advance through the stages to get the music for all the stages.
  8. An alternative to that is to figure out what music driver the game is using, and find the music data on the floppy image, and try to get the music driver to play the music separate from the game.
  9. Before each song, click on Tools -> VGM dump..., pick a sequential song name (ie song 1, song 2 etc..), wait a few seconds before starting the song, play the song so it loops at least twice, then be sure to stop the VGM logging BEFORE you stop the song. I don't recommend that you use frame skipping, since that might result in errors in the resulting songs. However, if you want to skip, the key is ~ (tilde).
  10. At the end of this procedure, you'll have a VGM file for each song, and you can begin trimming.

Trimming songs

There are exceptions for this, but usually you run vgm_cmp on each vgm file, then vgm2txt on each optimized file, then look in the text file where the long waits end (there will be a few waits of 65536 samples. Mark the sample at the end of the waits. Then go to the end of the text file, and see if there are long waits there as well. This means the song doesn't loop. Mark the sample before the first wait near the end of the file. So now you should have the starting trim sample and for non looping songs, the end sample. We still need to find the looping point. So use vgmlpfnd for that, and you'll have all three points.

To trim songs that don't loop, render them to a WAV file, with vgmplay -LogSound:1 file.vgm then load them up in an audio editor, such as Audacity or Sony Sound Forge, and find the last non-zero audio sample. That way, you make sure you capture the release part of the envelope of the last note.

Ripping OPMDRV songs

A lot of games use OPMDRV. What you can do is boot from a HDD image, then insert the game floppies, they will usually be B: and C:. Take a look at config.sys by typing type config.sys, and it will show you how OPMDRV is loaded. Usually you just need to execute OPMDRV.X or SYS/OPMDRV.X. Then, you need to locate the songs themselves. Some games just have the songs in plaintext .OPM format. If this is the case, then you can play each song with copy SONG.OPM OPM. If the songs are not in plaintext, I haven't found a way of playing them, so you'll have to use the game's sound test.

Ripping ZmuSiC songs

A lot of games also use ZmuSiC for playing music. Usually it is loaded from autoexec.bat. Boot from a HDD image, insert the floppies, then check for a line that starts with zmsc or zmsc.x. Use type autoexec.bat to list it. After you initialize ZmuSiC, you can use ZP to play individual songs. The files usually have the ZMD extension. Use ZP FILE.ZMD to play a file, and ZP -S to stop playback. You should use ZP -S between each song that you log.

Good luck!