News:

Herr Otto Partz says you're all nothing but pipsqueaks!

Main Menu

Sound Files Editing (VCE)

Started by Zapper, July 27, 2010, 06:18:39 PM

Previous topic - Next topic

Daniel3D

Quote from: Daniel3D on July 13, 2022, 09:20:11 PM
I know what you mean by limited time. Most of the time is spent on it this last few weeks were at the expense of sleep. Which is not advisable, but excitement got the better of me..

Being able to play sounds would be very helpful, but also limited in long term use. I can do a lot without.

I have discovered that a vce file with every available instrument chunk works fine in stunts. When loading a Kms music file the code only loads the instrument chunks it needs.

i am trying to expand the data.
I have a new instrument pack (113 now)
and i have found a way to make songs from other games work in Stunts.

So attached a reverse compatible instrument library (stunts songs still sound the same)
and the title song from mission impossible. (which fits the animation quite nicely)
Edison once said,
"I have not failed 10,000 times,
I've successfully found 10,000 ways that will not work."
---------
Currently running over 20 separate instances of Stunts
---------
Check out the STUNTS resources on my Mega (globe icon)

llm

i started to investigate my dosbox-extension-to-trace-DRV-data-communication-idea
seems to be easy, i've branched dosbox-staging and started to implement stunts-DRV-tracing :)

what can we do with that: each driver got 22 functions - few of them are used and i know at least based on my https://github.com/LowLevelMahn/UnifiedMT15 project what the parameter,content-size/types are - but not if these data just the VCE, MKS content

hope i've got a little time on the week-end to get at least some of my micro-projects ready


Daniel3D

Quote from: llm on July 13, 2022, 06:47:07 PM
maybe its just more or less the content of the VCE files then we can understand how this data is used exactly in den DRV
and write a small program that uses the DRV-Plugins to play the sounds without using stunts
i can do it, but my limited time makes every fun project a problem :)
Could you make it play the music as well?
Somebody (Darien?) Made a convert to midi at some point.
Edison once said,
"I have not failed 10,000 times,
I've successfully found 10,000 ways that will not work."
---------
Currently running over 20 separate instances of Stunts
---------
Check out the STUNTS resources on my Mega (globe icon)

llm

Quote from: Daniel3D on July 14, 2022, 08:35:20 PM
Could you make it play the music as well?
Somebody (Darien?) Made a convert to midi at some point.

the first step is to analyse the Stunts <-> DRV communication - after that im able to write a player - but it will take some time

Daniel3D

Quote from: llm on July 14, 2022, 09:43:43 PM
Quote from: Daniel3D on July 14, 2022, 08:35:20 PM
Could you make it play the music as well?
Somebody (Darien?) Made a convert to midi at some point.
the first step is to analyse the Stunts <-> DRV communication - after that im able to write a player - but it will take some time
I have noticed   8)
Quote from: llm on July 19, 2021, 10:57:20 AM
@Daniel3D

my next goal is to write an MT15.drv based player to play the game sounds outside of the game
Edison once said,
"I have not failed 10,000 times,
I've successfully found 10,000 ways that will not work."
---------
Currently running over 20 separate instances of Stunts
---------
Check out the STUNTS resources on my Mega (globe icon)

llm

#110
my dosbox extension for hooking the drv load+drv calling prototype works!
very few changes to dosbox staging needed to get it working :) +-45min

that means: i can trace all function calls from stunts into the sound driver (all drivers contain a equal jump-table with 23 functions - but only a few are needed for the driver to work - it seem like a generic interface with serveral features)

my github dosbox-staging fork branch: main_stunts_tests
commit: https://github.com/LowLevelMahn/dosbox-staging/commit/3604bcd5de0e6c4a188807f35b94088abbd51f08
main code: https://github.com/LowLevelMahn/dosbox-staging/blob/3604bcd5de0e6c4a188807f35b94088abbd51f08/src/_stunts/_stunts.cpp

dosbox detects the stunts game.exe start and hooks the drv function call tsub00 - the driver init - nothing more so far
https://imgur.com/a/MIF6i02

how to build:
1. VS2019 community edition (or VS2022) is needed to build under windows, or any not too old debian/ubuntu
2. clone my dosbox staging fork: https://github.com/LowLevelMahn/dosbox-staging
3. checkout main_stunts_tests branch
4. build sln file .\vs\dosbox.sln
(everything should build out of the box)


llm

#111
i've did a quick trace with the MT15.DRV

all tsub[NR] names are the functions from the public driver interface (the 23 functions in the jump table)
in my C-Port all the public functions are currently called c_tsub[NR] - just named by the order they appear in the jump-table
(buts is mostly know what these functions do - very simple C-Code in my port)


tsub0 called 1 -> is driver init
tsub1 called 1 -> only calls tsub2 -> driver shutdown
tsub2 called 1 -> reset everything, silence
tsub3 called 76
tsub4 called 101
tsub5 called 74 -> empty implementation (called by Stunts but not needed by the MT15.DRV)
tsub6 called 6
tsub7 called 4
tsub8 called 2
tsub10 called 16
tsub11 called 6
tsub13 called 947
tsub16 called 581 -> empty implementation (called by Stunts but not needed by the MT15.DRV)
tsub21 called 1
tsub22 called 1


find for example "tsub0" in my MT15.DRV project

Original Assembler
https://github.com/LowLevelMahn/UnifiedMT15/blob/2947002fe4a839e7e4a3d66a27e5f3d6ff38587c/MT15.asm#L1198
C-Port:
https://github.com/LowLevelMahn/UnifiedMT15/blob/2947002fe4a839e7e4a3d66a27e5f3d6ff38587c/drv.c#L648

more traces with better parameter names


game.exe startet
driver = mt15.drv
driver init done
MT32: LCD-Message:   (C)1990,1991 DSI
tsub10: channel: 0
tsub10: channel: 1
tsub10: channel: 2
tsub10: channel: 3
tsub10: channel: 4
tsub10: channel: 5
tsub10: channel: 6
tsub10: channel: 7
tsub10: channel: 8
tsub10: channel: 9
tsub10: channel: 10
tsub10: channel: 11
tsub10: channel: 12
tsub10: channel: 13
tsub10: channel: 14
tsub10: channel: 15
tsub8: unknown0: 21410
tsub22: should be MT32.PLB content with MT15.DRV: {05 02 00 18 32 18 00 00 00 45 6E 67 69 6E 65 20 31 20 20 07 05 0F 00 17 15 0B 01 01 00 35 07 00 00 00 37 28 32 23 0A 32 46 46 14 0D 10 10 23 14 09 69 07 37 00 00 00 00 2A 2E 64 32 64 64 64 64 64 32 5B 0C 1B 0C 00 00 05 00 00 00 19 64 64 64 64 17 4C 0B 01 01 00 35 07 00 00 00 37 28 32 23 0A 32 46 46 14 0D 10 10 23 14 09 69 07 37 00 00 00 00 2A 2E 64 32 64 64 64 64 64 32 5B 0C 1B 0C 00 00 05 00 00 00 19 64 64 64 64 18 32 0B 01 01 35 25 07 00 00 00 37 2D 2D 23 0A 32 46 46 14 0C 00 10 39 14 09 69 07 37 00 00 00 00 2A 2C 64 32 64 64 64 64 64 32 5B 0C 1B 0C 00 00 05 00 00 00 1D 64 64 63 64 00 00 0B 01 01 2B 35 07 00 00 00 37 28 32 23 0A 32 46 46 14 0D 10 10 23 14 09 69 07 37 00 00 00 00 2A 2E 64 32 64 64 64 64 64 32 5B 0C 1B 0C 00 00 05 00 00 00 19 64 64 64 64 02 01 18 32 0C 00 01 00 53 71 75 65 65 6C 20 20 20 20 00 08 0F 00 24 19 0B 01 00 25 64 07 00 00 00 00 06 00 00 00 64 64 64 00 48 64 00 03 1E 09 69 07 64 00 00 00 00 00 00 00 00 64 64 64 64 32 64 5B 0C 1B 0C 00 00 05 00 00 00 00 64 63 00 63 24 56 0B 01 00 25 58 07 00 00 00 00 06 00 00 00 64 64 64 00 48 64 00 03 1E 09 69 07 64 00 00 00 00 00 00 00 00 64 64 64 64 32 64 5B 0C 1B 0C 00 00 05 00 00 00 00 64 63 00 63 13 0B 0B 01 01 35 25 07 00 00 00 00 00 00 00 00 4E 4E 4E 00 32 64 10 39 14 09 69 07 37 00 00 00 00 2A 2C 64 32 64 64 64 64 46 64 5B 0C 1B 0C 00 00 05 02 00 00 00 64 63 00 64 07 5E 0B 01 00 35 64 07 00 00 00 00 00 00 00 00 50 50 51 00 21 64 00 1C 1E 09 69 07 37 00 00 00 00 2A 2C 64 32 64 64 64 64 46 64 5B 0C 1B 0C 00 00 05 00 00 00 00 64 63 00 63 02 02 18 32 0C 00 01 00 44 61 6D 61 67 65 20 20 20 20 05 05 0F 00 15 00 0F 00 00 12 42 00 04 00 00 14 1E 00 00 00 14 28 00 00 05 00 00 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 0E 00 46 00 0A 00 61 00 00 09 00 0F 00 00 13 41 00 04 00 00 14 14 00 00 64 50 00 00 00 0A 1E 00 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 13 11 3B 37 00 00 63 2D 04 12 00 0F 00 00 18 41 04 08 00 00 4C 17 13 0A 34 00 00 00 11 05 00 00 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 00 00 41 1D 0E 00 5E 17 03 14 00 0F 00 00 53 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 00 32 33 50 0C 53 64 2D 00 02 03 18 32 0C 00 01 00 4D 65 74 61 6C 43 6C 61 6E 6B 08 09 03 00 05 00 0F 00 00 45 41 00 03 00 00 14 1E 00 00 31 14 28 00 00 05 00 00 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 00 3F 3D 00 0A 62 00 00 00 0D 00 0F 00 01 58 41 00 04 00 00 3D 00 00 00 31 2F 00 00 00 18 0D 05 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 00 39 0C 04 2A 64 00 00 00 24 00 0F 00 00 18 41 04 05 00 00 4C 17 13 0A 34 00 00 00 11 05 00 00 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 00 40 06 17 1D 64 00 00 00 36 00 0F 00 00 53 41 00 02 00 00 0A 0A 00 00 64 50 32 00 00 00 00 00 64 00 0B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 4C 00 00 00 00 00 00 00 39 00 26 2C 64 00 00 00 02 04 18 32 0C 00 01 00 45 6E 67 69 6E 65 20 31 20 20 02 02 0F 00 24 32 0B 01 00 53 64 0E 00 00 00 37 2D 2D 23 0A 32 46 46 14 13 64 10 22 00 09 69 07 37 00 00 00 00 2A 2C 64 32 64 64 64 64 0D 32 40 0C 00 0C 00 00 05 00 00 00 13 64 64 64 64 18 4C 0B 01 01 00 35 07 00 00 00 37 28 32 23 0A 32 46 46 14 0D 10 10 23 14 09 69 07 37 00 00 00 00 2A 2E 64 32 64 64 64 64 64 32 5B 0C 1B 0C 00 00 05 00 00 00 19 64 64 64 64 16 32 0B 01 01 58 25 07 00 00 00 37 2D 2D 23 0A 32 46 46 14 0C 00 10 39 14 09 69 07 37 00 00 00 00 2A 2C 64 32 64 64 64 64 0E 32 5B 0C 1B 0C 00 00 05 00 00 00 1D 64 64 63 64 0C 36 0B 01 00 00 32 07 02 00 00 37 28 32 23 32 32 37 40 14 0D 10 10 38 12 0B 69 07 37 00 00 00 00 2A 2E 64 32 64 64 64 64 23 32 5B 0C 1B 0C 00 00 05 00 00 00 19 64 64 64 64}
tsub21: size: 4, buffer: {10 00 16 64}
tsub8: unknown0: 1
tsub6: channel_: 9, unknown2_: 0, controller_value_: 0x7F
tsub11: channel_: 9, unknown1: 0, unknown2: 81fc, buffer_(seg:ofs): 4543:118
MT32: playSysexWithoutHeader: Message checksum is incorrect (provided: 532ff5b0, expected: 7d)!
tsub3: channel: 9, struct1_(seg:ofs): 81fc:a2b6, key_note_number_: 24, velocity_: 5d, struct2_(seg:ofs): 4543:118
tsub6: channel_: 9, unknown2_: 0, controller_value_: 0x7F
tsub11: channel_: 9, unknown1: 0, unknown2: 8248, buffer_(seg:ofs): 4543:118
MT32: playSysexWithoutHeader: Message checksum is incorrect (provided: 532ff5b0, expected: 7d)!
tsub3: channel: 9, struct1_(seg:ofs): 8248:a2e4, key_note_number_: 31, velocity_: 3e, struct2_(seg:ofs): 4543:118
tsub6: channel_: 2, unknown2_: 0, controller_value_: 0x7F
tsub11: channel_: 2, unknown1: 0, unknown2: 8294, buffer_(seg:ofs): 4543:5e
tsub3: channel: 2, struct1_(seg:ofs): 8294:a312, key_note_number_: 3d, velocity_: 38, struct2_(seg:ofs): 4543:5e
tsub6: channel_: 5, unknown2_: 0, controller_value_: 0x7F
tsub11: channel_: 5, unknown1: 0, unknown2: 82e0, buffer_(seg:ofs): 4543:1d2
tsub6: channel_: 3, unknown2_: 0, controller_value_: 0x7F
tsub11: channel_: 3, unknown1: 0, unknown2: 832c, buffer_(seg:ofs): 4543:bb
tsub6: channel_: 6, unknown2_: 0, controller_value_: 0x7F
tsub11: channel_: 6, unknown1: 0, unknown2: 8378, buffer_(seg:ofs): 0:0
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub3: channel: 2, struct1_(seg:ofs): 8294:a2b6, key_note_number_: 36, velocity_: 2f, struct2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub3: channel: 9, struct1_(seg:ofs): 8248:a2e4, key_note_number_: 2c, velocity_: 12, struct2_(seg:ofs): 4543:118
tsub3: channel: 2, struct1_(seg:ofs): 8294:a312, key_note_number_: 31, velocity_: 3a, struct2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a2b6, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub3: channel: 9, struct1_(seg:ofs): 8248:a2b6, key_note_number_: 2a, velocity_: e, struct2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub3: channel: 9, struct1_(seg:ofs): 81fc:a2b6, key_note_number_: 24, velocity_: 5d, struct2_(seg:ofs): 4543:118
tsub3: channel: 9, struct1_(seg:ofs): 8248:a2e4, key_note_number_: 2a, velocity_: 18, struct2_(seg:ofs): 4543:118
tsub3: channel: 2, struct1_(seg:ofs): 8294:a312, key_note_number_: 31, velocity_: 35, struct2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 9, buffer1_(seg:ofs): 81fc:a2b6, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 9, buffer1_(seg:ofs): 8248:a2e4, buffer2_(seg:ofs): 4543:118
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e
tsub13: channel_: 2, buffer1_(seg:ofs): 8294:a312, buffer2_(seg:ofs): 4543:5e


attached is a full log of getting to the game menu and then exit to DOS
this trace contains all data sent to the driver so you would hear the stunts sounds/music if i could replay this trace with the same timing :)

llm

#112
btw: this type of tracing is possible for every stunts function or code part - if its relevant for understanding what stunts is doing etc.

Daniel3D

Quote from: llm on July 16, 2022, 07:50:10 AM
btw: this type of tracing is possible for every stunts function or code part - if its relevant for understanding what stunts is doing etc.
Well,I can kinda follow what you are doing. But this is to advanced for me.
I did find a code part where the track is loaded. It seems to be a sequence of multiple passes per tile. Maybe there are clues about collision data hidden there.
Edison once said,
"I have not failed 10,000 times,
I've successfully found 10,000 ways that will not work."
---------
Currently running over 20 separate instances of Stunts
---------
Check out the STUNTS resources on my Mega (globe icon)

llm

Quote from: Daniel3D on July 16, 2022, 09:11:13 AM
Well,I can kinda follow what you are doing. But this is to advanced for me.

the implementation itself is easy if one knows the dosbox/16bit code internas a little
but the stunts related code (offsets etc.) needs stunts knowledge from reversing

Quote from: Daniel3D on July 16, 2022, 09:11:13 AM
I did find a code part where the track is loaded. It seems to be a sequence of multiple passes per tile. Maybe there are clues about collision data hidden

it sometimes helps to see the data live going through the functions for analysis - my tracer is something like that
debugging step by step isn't always the best way understanding it clearly