*************** GUSOBJ v0.71á *************** 1. Welcome to GUSOBJ v0.71á GUSOBJ is a music-system for playing 4/6/8 channel modules in demos, games etc... This system only support The Gravis UltraSound, this means that it does not take up a whole lot of processor resources. It uses only about 5%, so there is a lot left for graphics. GUSOBJ is programmed in pure assembler. Programming by The Bogeyman - Twilight Zone (Morten Eriksen) Betatesting and test-module by L.K.A. - Twilight Zone (Lars Kristian Aasbrenne) UltraSound information by Cyberstrike - Renaissance (Joshua Jensen) GUSOBJ v0.71á is distributed as FREEWARE. This means that you may share and use this music-system as long as all the files below are in the package, and that we get this line in your demo/game: UltraSound Music-System (GUSOBJ v0.71á) by The Bogeyman / Twilight Zone Included files: GUSOBJ .OBJ - Assembler object-file GUSOBJ .DOC - This documentation TWILIGHT.NFO - Twilight Zone info-file PLAY .ASM - Example program (compilable with TASM 2.X) PLAY .EXE - Compiled PLAY.ASM REALEF .MOD - 6 channels example module by L.K.A. 2. GUSOBJ Support The following ProTracker effects are supported by GUSOBJ: Effect nr. Effect name 1 - Portamento Up 2 - Portamento Down 8 - Timing byte 9 - Set Sampleoffset A - Volume Slide B - Position Jump C - Set Volume D - Pattern break E1 - Fine portamento up E2 - Fine portamento down EA - Fine volume slide up EB - Fine volume slide down F - Set Tempo GUSOBJ just skip all the effects that are not supported. Effect 8 is not a protracker effect. You can use this effect to time graphics etc. The number you write after 8 will be placed in the GEFFECT8 variable. More effects will be supportet later... I just wanted to release it as fast a possible, so that the GUS will get more support. A new version will be released after my last-year-at-college celebrations :-) I don't think there will be any problems running this obj-file together with godplay. 3. Bugs and other problems I think I have corrected most of the bugs, but there may still be more. Contact me if you find any, but don't contact me to tell me that vibrato doesn't work! Look at the list one page up for supported effects. I will not hear any complains about this obj-file, other than bugs. I released it, because I think the GUS needed it. There is still some problems with UltraClicks TM. I will try to correct this problem in version 1.0. Meanwhile, you have to live with them. Try to adjust you modules so they sound good, it doesn't help much complaining to me. The patterns can only be 64k, this means that 4 channel modules can use 64 patterns, 6 channel modules can use 42 patterns and 8 channel modules can only use 32 patterns. GUSOBJ will crash if you exceed these limits. This will also be fixed in version 1.0 4. The Procedures and Variables in GUSOBJ v0.71á First the variables: -------------------- GBAR1 word - Bar values for channel 1 (0-63) GBAR2 word - Bar values for channel 2 (0-63) GBAR3 word - Bar values for channel 3 GBAR4 word - Bar values for channel 4 GBAR5 word - Bar values for channel 5 GBAR6 word - Bar values for channel 6 GBAR7 word - Bar values for channel 7 GBAR8 word - Bar values for channel 8 GEFFECT8 word - Variable to ready the effect 8 value ; The default panpos's are: 5,9,9,5,5,9,9,5 PANPOS1 word - Panning position for channel 1 (1-14) PANPOS2 word - Panning position for channel 2 (1-14) PANPOS3 word - Panning position for channel 3 (1-14) PANPOS4 word - Panning position for channel 4 (1-14) PANPOS5 word - Panning position for channel 5 (1-14) PANPOS6 word - Panning position for channel 6 (1-14) PANPOS7 word - Panning position for channel 7 (1-14) PANPOS8 word - Panning position for channel 8 (1-14) MASTER_VOL word - Mastervolume, very useful for fading the - volume. (0-63) You should not go higher than 30, because the volume table is a bit to high.... 30 is default. This will be fixed in version 1.0! --------- INIT_GUS --------- Initializes the GUS and sets the panning positions. If carry is set, then the GUS was not detected. ------------ LOAD_MODULE ------------ This procedure allocates all the memory for patterns, and loads the samples into GUS Dram. There is no error-message when when the GUS memory is full. You can load 4, 6 or 8 channel modules. The 6 and 8 channel format is the same as the ones in FastTracker. This procedure also use a 64k buffer while loading the samples! Example: .Data filename db 'modname.Mod',0 .Code mov ax,_Data mov ds,ax Call INIT_GUS mov dx,Offset FileName ; DS:DX points to the filename call load_module ; Carry set if error jnc no_error mov ah,4ch int 21h ; Exit on error no_error: ------------- START_MODULE ------------- Starts playing the module. Example: Call Start_Module Mov Al,0 ; Out 21h,Al ; Turn on all interrupts Mainwait: In Al,60h Cmp Al,1 Jne Mainwait ; Wait for ESC Xor Al,Al Out 21h,Al Call Stop_Module ------------ STOP_MODULE ------------ Stop playing the module and deallocates the memory used. See START_MODULE for an example. 5. Revision History 25.May 1993 v0.71á - GUS detect bug fixed. 6. May 1993 v0.70á - First Beta release. 6. Money If you have a lot of money, and you want to share them with me, just send some cash to: Morten Eriksen Kitteroedv 16 1712 Graalum Norway