anchor.diff:  function LoadWavStream(Stream: Tstream; var format: TALenum; var data: TALvoid; var size: TALsizei; var freq: TALsizei; var loop: TALint): Boolean;
   var
     WavHeader: TWavHeader;
  -  readname: pchar;
  -  name: string;
  -  readint: integer;
  +  readname: pansichar;
  +  name: ansistring;
  +  readint: longint;
   begin
       Result:=False;
  +
  +    size:=0;
  +    data:=nil;
   
       //Read wav header
       stream.Read(WavHeader, sizeof(TWavHeader));
  
positive.code:   AL_FORMAT_MONO16                          =$1101;
    AL_FORMAT_STEREO8                         =$1102;
    AL_FORMAT_STEREO16                        =$1103;
  
    //source specific reference distance
    //Type: ALfloat
  
negative.code: 
      //go to end of wavheader
      stream.seek((8-44)+12+4+WavHeader.FormatHeaderSize+4,soFromCurrent); //hmm crappy...
  
      getmem(readname,4); //only alloc memory once, thanks to zy.
      //loop to rest of wave file data chunks
      repeat
        //read chunk name
        stream.Read(readname^, 4);
        name := readname[0]+readname[1]+readname[2]+readname[3];
        if name='data' then
        begin
          //Get the size of the wave data
          stream.Read(readint,4);
          size:=readint;
          //if WavHeader.BitsPerSample = 8 then size:=size+8; //fix for 8bit???
          //Read the actual wave data
          getmem(data,size);
          stream.Read(Data^, size);
  