Opened 14 years ago

Closed 14 years ago

Last modified 12 months ago

#8460 closed patch

Kyra 1 Sound Patch

Reported by: lordhoto Owned by: cyxx
Priority: normal Component: Engine: Kyra
Keywords: Cc:
Game: Kyrandia 1

Description

Hi,

this patch adds basic sound support to Kyrandia.
The music now works with Adlib emulation nearly
correct, except some times. The sound effects are
nearly everytime wrong, but the right sound is played,
maybe a wrong instrument is used. Also the music is
sometimes played to fast or to slow (to fast in the
first scene, in the malcolm tree and in the malcolm
kallak scene to slow)
Btw. you have to specify Adlib emulation for Adlib
sound, because nativ MIDI is preferred. Should work ok
with MT-32 emulation, but NOT testet well.

TODO:
- check the XMIDI Parser "Hack"
- get music synced correctly
- get effects to work correctly
- test it with the CD version (only tested with german
floppy)
- check for other bugs

Hope it will work OK.

Ticket imported from: #1281714. Ticket imported from: patches/565.

Attachments (2)

kyra_sound_v1.patch (13.4 KB ) - added by lordhoto 14 years ago.
patch against todays cvs
kyra_sound_v2.patch (14.3 KB ) - added by lordhoto 14 years ago.
patch against todays cvs

Download all attachments as: .zip

Change History (8)

by lordhoto, 14 years ago

Attachment: kyra_sound_v1.patch added

patch against todays cvs

comment:1 by cyxx, 14 years ago

Owner: set to cyxx

comment:2 by cyxx, 14 years ago

Tested it, seems to work quite well. Good work.

Some minor remarks, though :
- read the code conventions, switch/break indentation is wrong
- constants definitions should be consistent within an
engine, you used kConst style whereas I used CONST style
- you have some debug() calls left in your code
- it would have been nice to match the disassembly in
particular for opcode 25, sound seems to be only started if
param != 0 and != 1

And some more important remarks (which prevent the patch to
be committed) :
- in loadSoundEffectFile(), you load some data, where is it
free()'d ?
- you modified some common sound code (ie.
midiparser_xmidi.cpp) ; it would be better to know what
event 7 is supposed to do instead of skipping it.

Concerning the CD version, I just checked, the bytecode used
in it is different (they added new opcodes and shifted the
existing ones) ; so no need to waste time on it now.

by lordhoto, 14 years ago

Attachment: kyra_sound_v2.patch added

patch against todays cvs

comment:3 by lordhoto, 14 years ago

new version, fixes the XMIDIParser Hack, also the memory
leak is 'fixed' and the swtich parts should now be indeted
correctly.

comment:4 by cyxx, 14 years ago

Committed with minor modifications. Thanks.

comment:5 by cyxx, 14 years ago

Status: newclosed

comment:6 by digitall, 12 months ago

Component: Engine: Kyra
Game: Kyrandia 1
Note: See TracTickets for help on using tickets.