Contents
Ripping Songs
The Song Ripper is available in the menus under File->Import->Spectrum Song Ripper...
This feature is capable of ripping a variety of song data from Spectrum emulator files (TAP or Z80) directly into Beepola for subsequent playing or editing.
The ripper will currently automatically search for the following types of data:-
Original Music Box compositions (made using Wham! The Music Box editor, or the Mark Time Music Box editor)
Phaser1 compositions made using Shiru's original (non-pattern based) Spectrum version of Phaser1
Phaser1 compositions compiled with Beepola.
Music Box compositions compiled with Beepola.
Special FX (Fuzz Click) compositions compiled with Beepola.
Huby compositions compiled either with Beepola or Shiru's original xm2huby utility (due to note table differences, xm2huby songs may have some suspect tuning when imported into Beepola).
Tritone and QChan songs from any source.
Tips for Ripping songs
The TAP file reader in Beepola is very limited and will ignore
headerless data blocks. Also, games that make use of data compression or
that use one player routine to play multiple songs during the course of a
game may be foiled by the ripper.
Therefore, to get the best results, it is highly recommended that you load the game into an emulator and take a snapshot in *.Z80 format while the target tune is playing and select this file in the ripper rather than the original game file. This gives the ripper the best possible chance of locating the required song data and importing it into Beepola format.
Manual Ripping
If the automated ripper is unable to locate the required song data
(for example, if a player routine has been heavily modified from its
standard form), a manual process can be used.
To manually rip a song you have to tell Beepola the location in the Spectrum memory map of the song data, and the format that the data is in (in other words, which beeper engine the data is for). The song data location can usually be found relatively quickly by using a debugger in an emulator. Break into the executing code as soon as the target song has begun playing to find the rough location of the player code in memory and work backward from there -- for most player routines, the HL register pair is set up to point to the start of the music data either just before the main player routine is CALLed, or near the start of the player routine itself.