home *** CD-ROM | disk | FTP | other *** search
/ Bila Vrana / BILA_VRANA.iso / 031A / CMOD313.ZIP / CAPAPLA2.ZIP / CAPAPLA2.DOC < prev    next >
Text File  |  1996-06-28  |  7KB  |  233 lines

  1.  
  2.                             * CapaPlay II 2.7 *
  3.             (c) Copyright 1993-1996 Heikki Ylinen (flap / Capacala)
  4.  
  5.          CapaPlay II may freely be used in any production as long as
  6.       credits are given to its author Heikki Ylinen (flap / Capacala).
  7.  
  8.  
  9. *************************** History of CapaPlay II ****************************
  10.  
  11.    Date       Version
  12. 12.11.1995    0.1b    Original version.
  13.             MOD and S3M supported.
  14.  
  15. 14.11.1995    0.2b    Many bugs fixed and some effects changed
  16.         
  17. 16.11.1995    0.3b    Fixed bugs in loader
  18.             Optimized the instrument information memory usage
  19.  
  20. 17.11.1995    0.4b    Fixed a bug in row system
  21.             Some changes with sample playing routines
  22.             
  23. 30.11.1995    0.5b    Fixed a bug in S3M default panning
  24.             Fixed a bug in S3M effect converter
  25.             
  26. 10.12.1995    0.6b    First version of XM loader
  27.               (no envelopes nor autovibratos)
  28.             Fixed a period convert bug in MOD loader
  29.             Big changes in the main player routine
  30.  
  31. 11.12.1995    0.7b    Linear frequency table supported
  32.             Changes in frequency calculation system
  33.  
  34. 14.12.1995    0.8b    Fadeout supported
  35.             Autovibrato supported
  36.             Changes in volume calculation system
  37.             Fixed a bug in 16-bit sample load
  38.  
  39. 17.12.1995    0.9b    Volume and panning envelopes supported
  40.             Fixed a bug in portamento with linear frequency table
  41.             Fixed a bug in XM sample loader
  42.             Fixed a bug in 16-bit sample player
  43.             Fixed a bug in vibrato
  44.  
  45. 19.12.1995    1.0b    Fixed a bug in XM pattern loader
  46.  
  47. 23.12.1995    1.1b    Fixed a bug in XM portamento
  48.             Fixed a bug in sample mute
  49.             Fixed a bug in break pattern
  50.             Changes in the sample loader
  51.               if there isn't room for 16-bit sample, it'll be
  52.               converted into 8-bits
  53.             Fixed a bug in pattern delay
  54.             Fixed a bug in jump to loop
  55.             Added global jump to loop (for S3Ms)
  56.             Added effect set envelope position
  57.             Fixed a bug in envelopes
  58.             Fixed a bug in 16-bit sample loader
  59.             Added support for MOD-like delay note
  60.  
  61.  8. 1.1996    1.2b    Fixed a bug in module identifier
  62.              Only the used part of sample is now loaded to GUS
  63.                this fixes problems with some looping samples
  64.  
  65. 15. 1.1996    1.3b    Fixed a bug in key off with set volume
  66.             Fixed a bug in S3M Sxx effect repeat
  67.  
  68. 21. 1.1996    1.4b    Support for DMA transfer
  69.             Fixed a bug with sample loop length 0 (XMs)
  70.             Fixed a bug in volume envelope with samples above 6
  71.  
  72.  5. 2.1996    1.5b    Fixed a bug if only new sample is given (MODs)
  73.             Optimizes the channel usage with all modules
  74.             Fixes in DMA transfer
  75.             Fixed a bug in vibratos
  76.               especially with linear frequency table
  77.             Fixed a bug in tempo calculation
  78.             Fixed a bug in sample offset
  79.  
  80.  6. 2.1996    1.6b    Fixed an irritating bug in sample offset
  81.  
  82.  7. 2.1996    1.7b    Fixed a bug in finetunes (MODs and XMs)
  83.  
  84. 11. 2.1996    1.8b    Different tempo calculation for S3Ms
  85.             Fixed a bug in two-way loops
  86.             Fixed a bug in jump to position
  87.             Fixed a bug in tremor
  88.             Fixed a bug in CP_SetChannelPanning
  89.  
  90. 19. 2.1996    1.9b    If DMA or IRQ is set zero, CapaPlay doesn't use it
  91.             Added global volume independent main volume
  92.             Fixed a bug in volume column portamento
  93.             Fixed a bug in volume column vibrato
  94.             
  95. 21. 2.1996    2.0b    Fixed a bug in vibrato volume slide (MODs)
  96.  
  97.  4. 3.1996    2.1b    Inits channels above 14 with MODs
  98.             Fixed a bug in vibrato with parameter 00
  99.  
  100.  6. 3.1996    2.2b    Fixed a bug in set waveform effects
  101.             Fixed a bug in portamento volume slide (MODs)
  102.             All used memory is now freed if load not succesful
  103.  
  104. 14. 3.1996    2.3b    Fixed a bug in panning if UsedChannels < NumOfChannels
  105.             Better DMA initialization
  106.             Fixed a bug in sample offset (XMs)
  107.  
  108.  3. 4.1996    2.4b    Corrupted modules can be played
  109.  
  110.  5. 4.1996    2.5b    Fixed a division by zero bug in envelopes
  111.  
  112. 17. 4.1996    2.6b    Fixed a bug in S3Ms with empty patterns
  113.             Added $G+ to CAPAPLA2.PAS to make sure it works
  114.  
  115. 27. 6.1996    2.7    First public source release!!!
  116.             Changed the DMA initialization system
  117.             Fixed a bug in volume slides (S3Ms)
  118.  
  119.  
  120. ************************** Some Info on CapaPlay II ***************************
  121.  
  122.    The assembler part of CapaPlay II (CP2ASM.OBJ) is compiled in large model.
  123.  The code and data resides in the same segment.
  124.  
  125.    Most of the  commands are pretty obvious,  but there are a few things that
  126.  require a little explanation.
  127.  
  128.  
  129.  * CP_GetIRQ(), CP_GetDMA() and CP_GetBasePort() 
  130.  
  131.  Value returned is the one determined by the ULTRASND envrionment variable
  132.  
  133.  
  134.  * CP_LoadModule(char *ModName,dword StartOffset,byte TransferMode) and
  135.    CP_LoadOnlyPatterns(char *ModName,dword StartOffset,byte TransferMode)
  136.  
  137.  StartOffset    - offset of module data in file
  138.  TransferMode    - 1=DMA, 0=manual
  139.  
  140.  Value returned is as follows:
  141.  
  142.      0    No error 
  143.      1    File not found
  144.      2    File read error
  145.      3    Out of memory
  146.      4    Unknown module format
  147.     5    Unknown module version
  148.     6    Corrupted module
  149.  
  150.  If the module is corrupted, it can be played anyway.
  151.  
  152.  
  153.  * CP_StartModule(byte Amplification,byte DefaultPanning,byte TimerMode)
  154.  
  155.  Amplificarion    - 0..48 or 255=auto configure
  156.  TimerMode    - 1=GUS IRQ, 0=system timer
  157.  
  158.  
  159.  * CP_GetModuleType()
  160.  
  161.  Value returned is as follows: 1=MOD, 2=S3M, 3=XM
  162.  
  163.  
  164.  * CP_PlaySample(byte ChannelNum,int InstrumentNum,int SampleNum,byte Note,byte Octave)
  165.  
  166.  ChannelNum must be above CP_GetNumOfUsedChannels and 
  167.  CP_GetNumOfUsedChannels must be below 16 to use this command
  168.  
  169.  
  170.  * CP_GetChannelEffect(int ChannelNum)
  171.  
  172.  Value returned is as follows:
  173.  
  174.  00    Arpeggio            20    Tremor
  175.  01    Slide Up            21    Extra Fine Slide Up
  176.  02    Slide Down            22    Extra Fine Slide Down
  177.  03    Tone Portamento            23    Set Global Volume
  178.  04    Vibrato                24    Fine Vibrato
  179.  05    Tone Portamento + Volume Slide    25    Global Volume Slide
  180.  06    Vibrato + VolumeSlide        26    Set Envelope Position
  181.  07    Tremolo                27        -
  182.  08    Set Panning            28        -
  183.  09    Set Sample Offset        29        -
  184.  0A    Volume Slide            2A        -
  185.  0B    Position Jump            2B        -
  186.  0C    Set Volume            2C        -
  187.  0D    Pattern Break            2D        -
  188.  0E    Set Tempo            2E        -
  189.  0F    Set Speed            2F        -
  190.  10 x    Set Filter            30        -
  191.  11    Fine Slide Up            31        -
  192.  12    Fine Slide Down            32        -
  193.  13    Glissando Control        33        -
  194.  14    Set Vibrato Waveform        34        -
  195.  15    Set Fine Tune            35        -
  196.  16 1)    Jump to Loop            36        -
  197.  17    Set Tremolo Waveform        37        -
  198.  18    Panning Slide            38        -
  199.  19    Retrig Note            39        -
  200.  1A    Fine Volume Slide Up        3A        -
  201.  1B    Fine Volume Slide Down        3B        -
  202.  1C    Cut Note            3C        -
  203.  1D 2)    Delay Note            3D        -
  204.  1E    Delay Pattern            3E        -
  205.  1F x    Invert Loop            3F        -
  206.  
  207.  40-7F -
  208.  
  209.  x = not supported
  210.  1) If bit 7 of effect parameters is set, jump to loop is handled as channel
  211.     independent (S3Ms)
  212.  2) If bit 7 of effect parameters is set, new volume for channel will be set
  213.     immediately (MODs)
  214.  
  215.  
  216.  * A simple pseudocode example of CapaPlay II usage
  217.  
  218.  CP_SetIRQ(CP_GetIRQ)
  219.  CP_SetDMA(CP_GetDMA)
  220.  CP_SetBasePort(CP_GetBasePort)
  221.  CP_LoadModule('module.mod',0,1)
  222.  CP_StartModule(255,36,1)
  223.  <wait until key pressed>
  224.  CP_StopModule
  225.  CP_FreeModule
  226.  
  227.  
  228.  * Note to Turbo Pascal users
  229.  
  230.    Remember to set the heap size to 0 with {$M <stacksize>,0,0}. CapaPlay II
  231.  cannot use the heap. If you however need some heap, make sure that there is
  232.  enough memory for the module outside the heap.
  233.