Sound programs that use +3DOS/Assembler
Hi
I am working on my final JSWed project and have nearly finished but i am considering changing the standard in game tune you get,the editor instructions state that music can be imported but +3DOS and Assembler are the only two formats supported.So which music programs would be best suited that support these formats? or would i have to use something sound tracker and then another program to convert the file before importing the file across?
I am working on my final JSWed project and have nearly finished but i am considering changing the standard in game tune you get,the editor instructions state that music can be imported but +3DOS and Assembler are the only two formats supported.So which music programs would be best suited that support these formats? or would i have to use something sound tracker and then another program to convert the file before importing the file across?
Post edited by jammajup on
Comments
you can use Beepola or Vortex Tracker
For you to be help me i am going to be honest,i am a beginner at making games which is why i am using the Jetset Willy / Manic Miner editor JSWed for the second and final time on this project before moving on to using AGD and reading up on Assembly.
I have never used the utilities you have mentioned,below is a copy of the music editor page from the JSWed instructions but apparently all i have to do is select import file from the the editor menu ,select the speccy tune on my computer and JSWed inserts the code and does the rest and that is all i know.So i have been looking for Zx Spectrum music in the two mentioned formats Assembler and +3DOS but cannot find any way of creating it.
JSWed Music Editor
6.10 The Music editor
The music editor is present only in 128k games (JSW128 and JSW64). It allows the
three tunes to be played, exported or imported. Under the description of each tune are
three buttons:
Test runs the game in an emulator, just as pressing F5 does; except that the title screen
tune is changed to be the tune you want to test.
Export saves the selected tune. Two formats are supported: +3DOS (this just saves
the tune as a block of memory) and Assembly (a text format, described more
fully below).
Import loads a new tune over the currently selected one. Both formats are supported.
If the new tune won't fit in the space available, the import will fail. JSWED will
automatically fix-up the file as it loads, so you can load a tune into a slot other
than the one it was saved from.
6.10.1 The Assembly fille format
The Assembly file format is the most suitable format for editing a tune or creating
a new one (though that's not saying much). It's in the form of an assembly language
listing, compatible with Udo Munk's Z80ASM assembler. The only directives used
(and the only ones that will be recognised on import) are:
org defw defb end
A tune specied in Assembly format should be laid out as follows:
org 0f700h
The org (origin) directive should be the rst one in the le. The value following it
should be greater than 4000h but is otherwise comparatively unimportant. In the case
of tunes saved by JSWED, it gives the address where the tune was saved from.
The next three directives must be the addresses of the three channels:
defw Gf706
defw Gf751
defw Gf752
Usually these are stored as label names, but you could use numerical addresses if you
wanted. JSWED outputs labels of the form Gxxxx, but you might want to use more
memorable names - eg:
defw channel1
defw channel2
defw channel3
17
Following the channel addresses, the remainder of the le describes the tune data. For
example:
GF706: defb 0FEh ;Call subroutine
defw Gf732
defb 0FEh ;Call subroutine
defw Gf742
defb 03eh,00ah
defb 03bh,00ah
defb 03eh,014h
defb 03dh,028h
The rst line in the listing has a label. You can put a label on any line of the file, but it
only makes sense to put them at the start of channels and at the start of subroutines.
Each channel is formed of a series of instructions, constructed using defb and defw
directives. The rst byte is a command byte, which may then be followed by parameter
bytes. These can be on the same line or on different lines; JSWED doesn't care.
Any text on a line after a ; is ignored.
end
JSWED's output files end with the 'end' directive, but this is optional.
Command byte Number of parameter bytes Meaning
000h 1 Rest. The parameter byte is the duration in jiffies.
001h-0F8h 1 Play a note. The parameter byte is the duration in jiffies.
The command byte is the pitch in semitones; 48 is middle C.
0F9h 1 Set waveform effect (like 'W' in a PLAY command)
0FAh 1 Set waveform period (like 'X' in a PLAY command)
0FBh 1 Set the volume (like 'V' in a PLAY command)
If you want to use waveforms, set the volume to 16 rst.
0FCh 3 Loop - used to repeat a preceding section.
The rst and second parameter bytes should both be set
to the loop count. The third is the relative address of the
start of the section to repeat.
0FDh 0 Return from a sub-tune.
0FEh 2 Call a sub-tune, which must end with a 0FDh byte.
The 2 parameter bytes are the address of the sub-tune.
0FFh 0 End of channel. All channels must end with this.
Note that on the import side, JSWED is very restricted compared to a real assembler.
You can't use EQU directives, conditional assembly or arithmetic. If you need
any of these, use a proper assembler.
However: last time this discussion came up, John Elliott produced a patched version of JSWed that accepts Soundtracker files directly. I have no experience of JSW editing and no idea of what you need to make that work, so I shall just point you to that thread.
To be honest with my game Terry Turtle my plan is to perhaps just have a `Heart-Beat` sound instead of any tune or melody,as well as being a small sound file that can be repeated it would also be quite appropriate for the game with the short life span these poor creatures can have. ;( .