HSC Music Player
Unit: PlayHSC
AdLib/OPL2 music player (1994, GLAMOROUS RAY).
HSC_obj Methods
procedure HSC_obj.Init(Port: Word); { Port: 0=auto-detect }
procedure HSC_obj.LoadFile(const FileName: string);
procedure HSC_obj.LoadMem(Data: Pointer; Size: Word);
procedure HSC_obj.Start;
procedure HSC_obj.Stop;
procedure HSC_obj.Fade;
procedure HSC_obj.Done;
Example
uses PlayHSC;
begin
HSC_obj.Init(0); { Auto-detect AdLib port }
HSC_obj.LoadFile('MENU.HSC');
HSC_obj.Start;
{ Game loop... }
HSC_obj.Fade; { Fade out }
HSC_obj.Done; { CRITICAL: Unhook IRQ0 }
end;
Critical Notes
IRQ0 Hook: HSC hooks Timer IRQ0 (18.2 Hz). MUST call
Donebefore exit or system hangs.PIT Conflict: Don’t read PIT Timer 0 while HSC active. Use RTCTIMER (IRQ8) instead.
ExitProc: Install handler to call
Doneon Ctrl+C:OldExit := ExitProc; ExitProc := @MyExitProc;
File Format
See DOCS\HSC.md for HSC file format specification.
Compatibility
AdLib (OPL2)
Sound Blaster FM synthesis
Requires port $388 (or $220 for SB)