                 ķ
Ĵ H U B R I S   M O D U L E   P L A Y E R v1.0Ŀ
                ͼ                
                                                                           
 Hubris Module Player and all the files included in this package are       
 Copyright (C) 1997 by Kaj Bjrklund a.k.a. Chem of Hubris. All rights are 
 reserved. Use this software at your own risk - I'm not responsible of any 
 damage caused by this software. You may only distribute HMP in its orinal 
 package and in its original form, i.e. unmodified.                        
                                                                           
Ĵ
                                                                           
 HMP features:                                                             
                                                                           
  - SB (1.0, 1.5, 2.0, pro and 16, 8-bit, 16-bit, mono, stereo) support.   
  - GUS support. Also a simple sample crunching <click> is implemented, so 
    you're able to load as large modules as you please without having to   
    worry about running out of gus memory. You may have seen a similar     
    technique in CP and XTC-play (only it works in them :).                
  - up to 32 channel, 31 instrument protracker/ft1 .MOD support.           
  - up to 32 channel scream tracker 3.xx .S3M support.                     
  - Nearly all MOD&S3M effects are supported. Note delay, glissando, funk  
    repeat / invert loop are not supported.                                
  - Most of the supported effects are even played correctly. This means    
    most, not all :)                                                       
  - HMP compiles with DJGPP v2 and NASM.                                   
  - HMP is not perfect, far from it, but does its job.                     
                                                                           
Ĵ
                                                                           
 HMP's greatest problems:                                                  
                                                                           
  - HMP lacks the support for gus_free_sample but you're still able to     
    free a module and all samples by calling free_mod().                   
  - The sfx-"engine" is written in about 10 minutes and it shows.          
  - Loading and playing more than one module is a bit complex.             
  - Gus memory control is very poor. This isn't very helpful considering   
    the problems mentioned above.                                          
  - The interface code is messy. Most of the other code is messy, too.     
  - "Some" rewriting should be done, but the lack of time prevents that.   
                                                                           
Ĵ
                                                                           
 Using HMP:                                                                
                                                                           
  You are free to use HMP on the following conditions:                     
                                                                           
  - HMP is swapware. You use it, you send me something. Send some code,    
    send the registered version of your game/program, send some coke, send 
    cash, just send something.                                             
  - Always greet me and hubris, no matter what you do :)                   
  - Do not use HMP in a "Rocket Chase"-clone/look-alike.                   
  - Other than that, you're free to use HMP in any freeware/sw/commericial 
    production.                                                            
  - Feel free to distribute HMP unmodified in its original form on any     
    media (cd,ftp,bbs,etc). However, you're not allowed to *sell* *hmp*.   
  - If you make modifications, send 'em to me. I might be interested even  
    to use them :)                                                         
  - Always download the latest version of Rocket Chase ;)                  
                                                                           
Ĵ
                                                                           
 Ok, that's when one gets to use HMP. But *HOW* to use it?                 
                                                                           
  - #include "hub_mp.h"                                                    
  - rhide: add "hub_mp.a" and "mix.o" to linker options.                   
  - gcc <switches> my_prog.[o/exe] my_prog.c hub_mp.a mix.o                
  - Peek at "hmp.c" and "comp_hmp.bat"                                     
  - The basic usage: (add "full" sound support in 15 easy steps ;)         
                                                                           
      memset(error,0,sizeof(error));                                       
      init_device(1);                                                      
      module.file_offset=0;                                                
      module.sample_space=the_size_of_the_sfx_to_load_later_in_bytes;      
      __load_MOD_or_S3M("ode2ptk.mod");                                    
      __init_sam_engine();                                                 
      __init_sfx_engine(1);                                                
      _output_loadsample_signed_8_bits_raw(name,(sfx_handle[number]=       
       __get_smp_nro()),rate,pan,loopstart,loopend);                       
      _output_set_channels(module.channels);                               
      init_playing();                                                      
      _output.playsample(__get_sfx_chan(),sfx_handle[number],64,-1,-1,0);  
      <show the demo :)>                                                   
      deinit_playing();                                                    
      free_mod();                                                          
      deinit_device();                                                     
      lopeta(0);                                                           
                                                                           
  Note that module's channels + sfx channels may not be greater than 32.   
  And the init and deinit order presented is what you should use. If you   
  want to play more than 1 tune during the whole operation (which you      
  probably do) and want to use sound effects (which you probably do, too), 
  you are really going to have fun as I haven't designed this so far yet;) 
  So either you write some code of your own to deal with this, or simply   
  call free_mod() and then load *everything* (samples+the new module)      
  again.                                                                   
                                                                           
Ĵ
                                                                           
 Contacting:                                                               
                Ŀ    Ŀ      
  E-mail me to   kaj.bjorklund@mbnet.fi  or  kmb@cyber.fipnet.fi       
                          
  or send       Ŀ                             
  snail mail to  Kaj Bjrklund                                           
                 Roihuvuorentie 18 D 164                                 
                 FIN-00820 Helsinki Finland                              
                                             
                                                                           
  I'd really like to hear you telling if this thing works and so. However, 
  I don't want to hear about XM-support. It'll come if I get it done. I'm  
  also painfully aware of the most of the improvements needed, but feel    
  free to send any suggestions and so on.                                  
                                                                           
Ĵ
                                                                           
 Thanks:                                                                   
                                                                           
  I would like to thank the following people for their efforts. Their      
  contributions have been crucial to this project.                         
                                                                           
    DJ Delorie                                                    djgpp    
    Draeden of VLA                                              dma_vla    
    Firelight                                                  fmoddoc2    
    David Jurgens                                                helppc    
    Petteri Kangaslampi & Jarno Paananen              midas soundsystem    
    Simon Tatham                                                   nasm    
    Robert Hhne                                                  rhide    
    Andr Baresel & Craig Jackson                              sblaster    
    Ethan Brodsky                                                  smix    
    Tran and Joshua Jensen                                     ultradox    
    Pekka Nurminen                                   useful information    
                                                                           
Ĵ
                                                                           
 Howdy:                                                                    
                                                                           
    Acute/Hubris                                                           
    Bull/Hubris                                                            
    Hubris members                                                         
    Ica/Hubris         This whole player is your fault as you were the one 
                                            who got me started on DJGPP ;) 
    Jere Sanisalo                                                          
    Jokke/Bad Karma                Still waiting for your XM-loader code.. 
    Markku Ekblom(/SPC ;)                                                  
    MVZ/Vtzn                                                               
    Olli & Mikko Haanper, and the rest of the RC people.                  
    RoDeX/Static                                                           
    tAAt members                                   tAAttua laatua pojat :) 
    tArzAn/tAAt                                                            
    TexMex/GM$                                                             
    Tweeker/Hubris/SunSoft                                                 
    Zen/bC!/AV                  has found a whole new level of laziness ;) 
                                                                           
Ĵ
 oh, btw, check out rcha*.zip [get it NOW], 3dica*.zip [finnish],          
 tpsbmod!.zip [my Old pascal-player]                                       


