User:Morgan525
I'm also known as "Tycho" on Strategycore forums. I've been learning about disassembly and coding since December of 2011. I guess I started learning disassembly to mod the tank/cannon into a chaingun. I started playing with DOSbox but switched to the CE version and began focusing on its sound problems. Lately, I have been tinkering with Seb's UFOloader and added those fixes of my own. I've also been trying to rearrange Seb's INI file to make it less overwhelming to new users.
Table of Battlescape sound calls
The following is a list of how most events in TACTICAL generate sounds. This data is scattered throughout the executable in various data arrays. First an event number is passed to the sound subroutine. The program then compares the event with its corresponding entry in another section to determine how to play that sound. 06 is the standard method. 01 plays the sound uninterrupted by other sounds.
Play CAT Evt# Setting reference Description 00 00 -- Normal bipedal movement. Routine refers to tileset and alternates between 1 and 2. 01 01 0E normal tank move 02 01 00 snakeman move 03 02 -- 04 01 0F Flying unit move 05 01 10 Celatid move 06 01 2F Silacoid move 07 02 -- 08 02 -- 09 02 -- 0A 01 28 hovertank/cyberdisk move 0B 06 04 rifle/pistol shoot 0C 06 16 bullet hit 0D 03 14 sliding door opens. Routine randomly plays 1 of the 2 entries in SAMPLE2. 0E 06 03 normal door opens 0F 02 -- 10 06 0C big gun shoots 11 06 0D big gun hits 12 06 0B laser gun shoots 13 06 13 laser shot hits 14 06 12 plasma gun shoots 15 06 13 plasma shot hits 16 06 34 rocket launches 17 06 35 blaster bomb/stun launcher shoots 18 06 0C small explosion (problem: zombie move) 19 06 05 big explosion 1A 02 -- stun rod (*problem*) 1B 06 24 psi attack 1C 06 06 mind probe use* 1D 06 11 reload weapon 1E 06 26 place an item 1F 02 -- 20 04 -- death of a male. Routine randomly plays 1 of the 3 sounds in SAMPLE2. 21 06 17 tank destroyed 22 06 0A sectoid death 23 06 08 snakeman death 24 06 09 etheral death 25 06 06 muton death 26 06 0A floater death 27 06 07 celatid death 28 06 08 silacoid death 29 06 09 chryssalid death 2A 06 0A reaper death 2B 06 17 sectopod death 2C 06 17 cyberdisk death 2D 06 30 zombie & reaper attack 2E 06 31 chryssalid attack 2F 06 32 silacoid attack 30 06 30 celatid attack 31 06 27 throw an item 32 05 -- death of a female. Routine randomly plays 1 of the 3 sounds in SAMPLE2. 33 02 -- 34 02 35 02 36 02 37 02
Other Random Sound Information
406100-subroutine for melee attacks 406110- set default melee sound event to 1A (4067C8)data base of melee attacks value offset sound event # 00 461B2 2F 01 461BC 2E 02 461C6 2D 03 461E7 skip 04 461E7 skip 05 461E7 skip 06 461E7 skip 07 461C6 2D Reference points for unit movement sound event IDs. [this word referenced] .data:0046D1A0 00 00 00 00 01 00 01 00 00 00 00 00 [00 00] 00 00 .data:0046D1B0 [00 00] 00 00 [00 00] 00 00 [01 00] 01 00 [00 00] 00 00 .data:0046D1C0 [02 00] 01 00 [00 00] 00 00 [00 00] 00 00 [04 00] 01 00 .data:0046D1D0 [05 00] 01 00 [06 00] 01 00 [00 00] 00 00 [00 00] 00 00 .data:0046D1E0 [00 00] 00 00 [0A 00] 01 00 [00 00] 00 00 [00 00] 00 00 .data:0046D1F0 [18 00] 01 00 01 00 00 00 01 00 0B 00 0C 00 01 00 data set for death scream per unit. 0.data:0046B644 word_46B644 dw 20h ; DATA XREF: sub_40E450+55�r 1.data:0046B646 db 20h 2.data:0046B648 db 20h 3.data:0046B64A db 21h 4.data:0046B64C db 22h 5.data:0046B64E db 23h 6.data:0046B650 db 24h 7.data:0046B652 db 25h 8.data:0046B654 db 26h 9.data:0046B656 db 27h A.data:0046B658 db 28h B.data:0046B65A db 29h C.data:0046B65C db 2Ah D.data:0046B65E db 2Bh E.data:0046B660 db 2Ch F.data:0046B662 db 20h 10.data:0046B664 db 32h 11.data:0046B666 db 20h SUBROUTINE USED FOR 404650+1AE PSI ATTACK EFX 406100+4F9 TERRORIST MELEE ATTACK EFX 40B420+111 EXPLOSION EFX 40B420+24F EXPLOSION EFX? 40E450+73 DEATH SCREAM EFX 40F2C0+285 PLACE ITEM EFX 4110E0+E0 ITEM USE EFX 4110E0+901 SHOT HIT EFX 419660+1A5 PLACE ITEM (INVENTORY) EFX 419660+346 RELOAD EFX 41DCC0+D1 STUN ROD ATTACK EFX 41EE10+8C PSI ATTACK EFX 41F0F0+8C PSI ATTACK EFX 41FD10+8B MIND PROBE EFX 421140+13 DOORS EFX 4247D0+27A NON-WALK MOVE EFX 4247D0+4D4 WALK MOVE EFX 42A630+B7 GMTATICS.MID 42A6F0+18 GMLOSE.MID 42B6F0+E9 GMWIN.MID 43D8C0+E GEOSCAPE OPEN WINDOW EFX 4407D0+2E ? 4407D0+9C GMGEOx.MID 445B00+BC GMINTER.MID 4467C0+1C1 X-COM CRAFT LEFT WEAPON EFX 4467C0+233 X-COM CRAFT RIGHT WEAPON EFX 446DA0+267 UFO HIT EFX 4470B0+F2 UNKNOWN INTERCEPTION EVENT (CRAFT CRASH EFX?) 447EE0+32 GMSTORY.MID 448390+28F ?? 448390+2DD BASE DEFENSE (EVENT 9) 448390+3DC ?0A (BASE DEFENSE?) 448390+3F1 ?0A 448390+406 ?0A 44A220+15 GMSTORY.MID 44C940+10 GMDEFEND.MID 44CD40+26 GMBASE.MID 44D030+D GMDEFEND.MID 44D3C0+E GMMARS.MID 44D690+10 GMMARS.MID 44DACO+10 GMBASE.MID 450F10+91 BLEEP (1) 45DCA0+17 ??