Archival snapshot of the Virtual World Entertainment Tesla cockpit software, 1994-1996: MUNGA engine and L4 pod layer source (Borland C++ 5.0), BT/RP game code, and game content (models, audio, maps, gauges, Division renderer data). Includes third-party libraries: Division dVS/DPL graphics, HMI SOS audio, WATTCP networking. Files are preserved byte-for-byte (.gitattributes disables all line-ending conversion). README.md documents the layout, target hardware, and toolchain. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
193 lines
7.1 KiB
PHP
193 lines
7.1 KiB
PHP
;***************************************************************************
|
|
; general equates
|
|
;***************************************************************************
|
|
_MAX_VOICES equ 32
|
|
_ERR_NO_SLOTS equ -1
|
|
_ERR_NO_ERROR equ 0
|
|
_ERR_INVALID_HANDLE equ 10
|
|
_TRUE equ 1
|
|
_FALSE equ 0
|
|
|
|
;***************************************************************************
|
|
; macro definitions follow
|
|
;***************************************************************************
|
|
|
|
; macro for function start
|
|
CFuncStart macro
|
|
|
|
push ebx
|
|
push ecx
|
|
push edx
|
|
push esi
|
|
push edi
|
|
push es
|
|
|
|
endm
|
|
|
|
; macro for function end
|
|
CFuncEnd macro
|
|
|
|
pop es
|
|
pop edi
|
|
pop esi
|
|
pop edx
|
|
pop ecx
|
|
pop ebx
|
|
|
|
endm
|
|
|
|
;***************************************************************************
|
|
; equates for sample flags
|
|
;***************************************************************************
|
|
_ACTIVE equ 8000h
|
|
_LOOPING equ 4000h
|
|
_FIRST_TIME equ 2000h
|
|
_PENDING_RELEASE equ 1000h
|
|
_CONTINUE_BLOCK equ 0800h
|
|
_PITCH_SHIFT equ 0400h
|
|
_PANNING equ 0200h
|
|
_VOLUME equ 0100h
|
|
_TRANSLATE16TO8 equ 0080h
|
|
_STAGE_LOOP equ 0040h
|
|
_TRANSLATE8TO16 equ 0020h
|
|
_STEREOTOMONO equ 0010h
|
|
_SKIP_PROCESSED_CB equ 0008h
|
|
_SKIP_LOOP_CB equ 0004h
|
|
_SKIP_DONE_CB equ 0002h
|
|
|
|
;***************************************************************************
|
|
; data stucture definitions follow.
|
|
;***************************************************************************
|
|
|
|
_SOS_START_SAMPLE struc
|
|
|
|
; pointer to sample data
|
|
pSamplePtr dd 0
|
|
dd 0
|
|
|
|
; size of the sample
|
|
dwSampleSize dd 0
|
|
|
|
; loop count
|
|
wLoopCount dd 0
|
|
|
|
; channel
|
|
wChannel dd 0
|
|
|
|
; volume
|
|
wVolume dd 0
|
|
|
|
; sample ID
|
|
wSampleID dd 0
|
|
|
|
; call back
|
|
pCallback dd 0
|
|
dd 0
|
|
|
|
; port
|
|
wSamplePort dd 0
|
|
|
|
; flags
|
|
wSampleFlags dd 0
|
|
|
|
; length in bytes
|
|
dwSampleByteLength dd 0
|
|
|
|
; loop point for sample
|
|
dwSampleLoopPoint dd 0
|
|
dwSampleLoopLength dd 0
|
|
|
|
; pitch shifting components
|
|
dwSamplePitchAdd dd 0
|
|
wSamplePitchFraction dd 0
|
|
|
|
; panning components
|
|
wSamplePanLocation dd 0
|
|
wSamplePanSpeed dd 0
|
|
wSamplePanDirection dd 0
|
|
wSamplePanStart dd 0
|
|
wSamplePanEnd dd 0
|
|
|
|
; delay components
|
|
wSampleDelayBytes dd 0
|
|
wSampleDelayRepeat dd 0
|
|
|
|
; compression components
|
|
dwSampleADPCMPredict dd 0
|
|
wSampleADPCMIndex dd 0
|
|
|
|
; root note for MIDI
|
|
wSampleRootNoteMIDI dd 0
|
|
|
|
; filler
|
|
dwSampleTemp1 dd 0
|
|
dwSampleTemp2 dd 0
|
|
dwSampleTemp3 dd 0
|
|
|
|
ends
|
|
|
|
sampleStartSize equ type _SOS_START_SAMPLE
|
|
|
|
; this structure is used inside the timer handlers
|
|
timerSAMPLE struc
|
|
|
|
samplePtr dq 0 ; pointer to sample data
|
|
sampleDataPtr dq 0 ; pointer to active data
|
|
sampleLoopPtr dq 0 ; pointer to loop back
|
|
|
|
sampleLength dd 0 ; DWORD length of sample
|
|
sampleIndex dd 0 ; DWORD index into sample
|
|
sampleLoopLength dd 0 ; DWORD length of loop segment
|
|
|
|
sampleBytesLeft dd 0 ; bytes left to play
|
|
|
|
sampleLoopPoint dd 0 ; byte count for loop point
|
|
sampleLoopEndLength dd 0 ; length of end loop point
|
|
|
|
sampleFlags dw 0 ; sample flags
|
|
sampleVolume dw 0 ; sample attinuation value
|
|
sampleID dw 0 ; sample ID value
|
|
|
|
sampleChannel dw 0 ; current play channel
|
|
sampleLoopCount dw 0 ; loop count
|
|
sampleLastFill dw 0 ; last point of filling
|
|
sampleCallback dq 0 ; call back function
|
|
|
|
samplePitchAdd dd 0 ; pitch shift value
|
|
samplePitchFraction dw 0 ; sample pitch fraction
|
|
|
|
samplePort dw 0 ; port for non-DMA device
|
|
|
|
sampleTotalBytes dd 0 ; total bytes processed
|
|
sampleByteLength dd 0 ; actual length of sample
|
|
|
|
samplePanLocation dw 0 ; location of pan
|
|
samplePanSpeed dw 0 ; speed of pan
|
|
samplePanDirection dw 0 ; pan direction +- 1..
|
|
samplePanStart dw 0 ; pan start
|
|
samplePanEnd dw 0 ; pan end
|
|
|
|
sampleDelayBytes dw 0 ; bytes for delay
|
|
sampleDelayRepeat dw 0 ; number of repeats
|
|
|
|
sampleADPCMPredicted dd 0 ; predicted value
|
|
sampleADPCMIndex dw 0 ; index into table
|
|
|
|
sampleRootNoteMIDI dw 0 ; root note for sample
|
|
|
|
sampleFraction dw 0 ; reserved
|
|
|
|
timerSAMPLE ends
|
|
|
|
timerSAMPLESize equ type timerSAMPLE
|
|
|
|
; structure to represent a "far" pointer w/selector and offset
|
|
SFAR struc
|
|
|
|
; selector and offset
|
|
wOffset dd 0
|
|
wSelector dd 0
|
|
|
|
SFAR ends
|
|
|