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

llm

#105
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

#106
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

#107
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