Jump to content
Eternal Lands Official Forums
Torg

Major NEW_SOUND update - EL gets a (complete?) sound system

Recommended Posts

I've not modified anything accept ~/.elc/sound_warnings.txt and that does not contain any double commas. A quick check though sound_config.xml doesn't reveal any either. Weird.....

Yeah, it couldn't be in there either. That code is only used for parsing the points in boundary definitions. In theory it checks if the character is a comma and if not, then sets the value of the temp variable... it shouldn't find a comma without a value unless the comma is the first character, or there is a double in the boundary definition. Oh well... its all good.

Share this post


Link to post
Share on other sites

new crash

 

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
[Switching to process 9122 thread 0x561f]
0x000b70f7 in update_sound (ms=20) at sound.c:3992
3992					if (actors_list[i]->actor_id == yourself)
(gdb) bt full
#0  0x000b70f7 in update_sound (ms=20) at sound.c:3992
	i = 1
	error = 0
	pSource = (source_data *) 0xbfe37265
	pSample = (sound_sample *) 0x3fa2f684
	pSoundType = (sound_type *) 0x3c5fbc4
	pVariant = (sound_variants *) 0x6581c
	deadBuffer = 1
	numProcessed = -1339625944
	buffer = -1879030101
	state = -1339625976
	source = 1
	x = 77
	y = 53
	distanceSq = -1879030130
	maxDistSq = 0
	relative = -1339625944
	tx = 77
	ty = 70
	sourcePos = {77, 70, 0}
	listenerPos = {77, 70, 0}
	listenerVel = {0, 0, 0}
	listenerOri = {-1, -1, 0, 0, 0, 1}
	j = 2
	k = -1339625880
	l = -1339625824
	__FUNCTION__ = "update_sound"
#1  0x000cd59f in my_timer (interval=20, data=0x0) at timers.c:45
	new_time = 215432
	e = {
 type = 120 'x', 
 active = {
type = 120 'x', 
gain = 238 'î', 
state = 38 '&'
 }, 
 key = {
type = 120 'x', 
which = 238 'î', 
state = 38 '&', 
keysym = {
  scancode = 202 'Ê', 
  sym = 339847664, 
  mod = KMOD_NONE, 
  unicode = 17442
}
 }, 
 motion = {
type = 120 'x', 
which = 238 'î', 
state = 38 '&', 
x = 61130, 
y = 12290, 
xrel = -22032, 
yrel = 5185
 }, 
 button = {
type = 120 'x', 
which = 238 'î', 
button = 38 '&', 
state = 176 '°', 
x = 61130, 
y = 12290
 }, 
 jaxis = {
type = 120 'x', 
which = 238 'î', 
axis = 38 '&', 
value = -4406
 }, 
 jball = {
type = 120 'x', 
which = 238 'î', 
ball = 38 '&', 
xrel = -4406, 
yrel = 12290
 }, 
 jhat = {
type = 120 'x', 
which = 238 'î', 
hat = 38 '&', 
value = 176 '°'
 }, 
 jbutton = {
type = 120 'x', 
which = 238 'î', 
button = 38 '&', 
state = 176 '°'
 }, 
 resize = {
type = 120 'x', 
w = 805498570, 
h = 339847664
 }, 
 expose = {
type = 120 'x'
 }, 
 quit = {
type = 120 'x'
 }, 
 user = {
type = 120 'x', 
code = 805498570, 
data1 = 0x1441a9f0, 
data2 = 0x0
 }, 
 syswm = {
type = 120 'x', 
msg = 0x3002eeca
 }
}
#2  0x30008d44 in SDL_ThreadedTimerCheck ()
No symbol table info available.
#3  0x30008c66 in RunTimer ()
No symbol table info available.
#4  0x3002d641 in SDL_RunThread ()
No symbol table info available.
#5  0x3002f1e0 in RunThread ()
No symbol table info available.
#6  0x90024227 in _pthread_body ()
No symbol table info available.

Share this post


Link to post
Share on other sites
Program received signal EXC_BAD_ACCESS, Could not access memory.
3992					if (actors_list[i]->actor_id == yourself)

Hmmm, interesting. I guess this is due to not knowing who you are. I guess there should be a check if both of those variables exist, but I would have thought a comparison with NULL would be fine.

 

o.O

 

I'm a little tied up at the moment, but if no-one else hits it, I'll patch it tomorrow afternoon (around 16 hours)

Share this post


Link to post
Share on other sites

next one

 

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x170a0364
[Switching to process 11472 thread 0x9703]
0xb00ab856 in vorbis_book_decodevv_add ()
(gdb) bt full
#0  0xb00ab856 in vorbis_book_decodevv_add ()
No symbol table info available.
#1  0xb00b8ae1 in res2_inverse ()
No symbol table info available.
#2  0xb00b1b8c in mapping0_inverse ()
No symbol table info available.
#3  0xb00bf74a in _fetch_and_process_packet ()
No symbol table info available.
#4  0xb00c1eb5 in ov_read ()
No symbol table info available.
#5  0x000b2f75 in stream_ogg (buffer=2505, inStream=0x3cd745c, info=0x1b8b14e0) at sound.c:1954
	data = "Túl\003×ùe\002Iù_\002\027úB\0032ûu\002åú\f\001lû¼ÿÖýmþ}ÿhý\nÿ0þ?ÿGÿJ\000¬ÿX\000Wÿ¯ÿ~ÿåþ:þü¾û?ûYù\020þñøª\002Ëû]\004\017\001Q\003\003õ\003R\003\005¶\003\021\a0\005-\aÃ\004$\005[\003Û\000\034\003îþ4\003Ëþ*\002Ñü³ÿúÀü.ùýMû1\001¿ý\005Óüò\005uú\033\003\bú]\000Hü´ý \001û\026\006¡û>\a¤ÿû\005Y\004\005\v\006\004\002*\001\022ý+üÈù\023ù+ùSùeûtûþ\bý¯\001"...
	size = 41728
	section = 0
	result = 4096
	error = 0
	str = "4096\000\005Ú\000\030\005g\001¢\004A\002®\0040\001s\004ºÿ.\003¾ÿ;\002`\000ü\002[\000`\002½ÿ·\000mÿ\"ÿèþý¾ýiü\033ü\035ü@ûãüÞû\037þ#ýsÿoþ\000ïþ3\001>\000W\001\000Ë\001ÿâ\000Kÿÿþ\aÿýýmÿÕýx\000Dþ0\001¢þJ\001}ÿ\031\001±ÿÓ\001ÿ\002\003yÿ_\003\000\000\003S\001\f\004¦\001\004>\002h\005\002g\005¦\002^\004f\003\016\004P\004&\003m\004B\002C\004õ\001ë\003u\002Ý\003\023\003²\003\002E\003\001\003,\002\002u\000Ø\001½þú\000úý"...
	format = -1886383441
#6  0x000b4ae3 in process_stream (stream=0x3cd7440, gain=1, sleep=0xb0472eb8) at sound.c:2540
	error = 0
	state = 4116
	new_gain = 1
	buffer = 2505
#7  0x000b549c in update_streams (dummy=0x0) at sound.c:2733
	sleep = 300
	day_time = 1
	i = 2
	tx = 20
	ty = 24
	gain = 1
#8  0x3002d641 in SDL_RunThread ()
No symbol table info available.
#9  0x3002f1e0 in RunThread ()
No symbol table info available.
#10 0x90024227 in _pthread_body ()
No symbol table info available.

Share this post


Link to post
Share on other sites
Program received signal EXC_BAD_ACCESS, Could not access memory.
3992					if (actors_list[i]->actor_id == yourself)

Hmmm, interesting. I guess this is due to not knowing who you are. I guess there should be a check if both of those variables exist, but I would have thought a comparison with NULL would be fine.

 

o.O

 

I'm a little tied up at the moment, but if no-one else hits it, I'll patch it tomorrow afternoon (around 16 hours)

I'm still developing my understanding of the threads involved in the client but is it possible that we need some LOCK_ACTORS_LISTS() and UNLOCK_ACTORS_LISTS() around that block of code? update_sound() is called from the timer callback and UNLOCK_SOUND_LIST() could cause the thread to yield. Just forget I said it if I'm talking rubbish :)

Share this post


Link to post
Share on other sites
I'm still developing my understanding of the threads involved in the client but is it possible that we need some LOCK_ACTORS_LISTS() and UNLOCK_ACTORS_LISTS() around that block of code? update_sound() is called from the timer callback and UNLOCK_SOUND_LIST() could cause the thread to yield. Just forget I said it if I'm talking rubbish :icon13:

Heh. It's not rubbish, its a very good point. UNLOCK_SOUND_LIST isn't going to cause your problem, but it will be a problem for a slightly different reason. Yes, it probably needs an ACTOR mutex lock around it.

 

Actors are stored in the actors_list array by index. This function loops over that list of actors and processes them. If another function also loops over the actors and changes the list (say removes an actor) then it will break this loop's functionality either by the actor being skipped (maybe?) or overflowing the new size of the array. (This is all off the top of my head, I can't remember how that code loops).

Share this post


Link to post
Share on other sites

Torq

 

Please refer to my original post; http://www.eternal-lands.com/forum/index.php?showtopic=38425

 

Post # 94

 

Wow! Ok, this number of errors is huge. They shouldn't be occuring like this unless maybe you have been using the client for several hours and that was the complete error log (therefore only a couple of errors every 5 mins).

We should move this discussion to the Programming forum. Can you please post some more details about your OS, sound card and driver version in the NEW_SOUND thread over there.

 

 

Please find below the info you requested about my PC;

 

Video card: RADEON X800 Series x86/SSE2
Vendor ID: ATI Technologies Inc.
OpenGL Version: 2.0.6590 WinXP Release

Driver Provider : ATI Technologies Inc.
Driver Version: 8.380.0.0
Driver Date: 5/17/2007

 

I had been running the RC3 for less than 20 minutes after I installed it. RC3 was running great until I walked into the South Cave in MM and started killing Male and Female Gobs (refer Post#94).

 

After each client crash, I would restart the game (while still in the cave) and I would experience a series of "resync's to server" cases and then after about a minute of this the client woulld crash. I tried this about 5 times with the same results.

 

I decided to restart the game again and this time immediately "beamed" to IP...the "resync's to server" stopped and the game seemed to run "normal" again.

 

I'm continuing to walk around the Maps and plan to go back to the MM's south cave to see if I can recreate this "condition" again.

Share this post


Link to post
Share on other sites
Please find below the info you requested about my PC;

 

Video card: RADEON X800 Series x86/SSE2
Vendor ID: ATI Technologies Inc.
OpenGL Version: 2.0.6590 WinXP Release

Driver Provider : ATI Technologies Inc.
Driver Version: 8.380.0.0
Driver Date: 5/17/2007

Oops. I actually wanted your sound card details (this is a sound problem, not graphics).

 

I'm continuing to walk around the Maps and plan to go back to the MM's south cave to see if I can recreate this "condition" again.
That would be handy, thanks.

Share this post


Link to post
Share on other sites

Oops. I actually wanted your sound card details (this is a sound problem, not graphics).

 

Sorry about that Torq...;

 

PC: Pentium 4 - 3.2GHz
PC RAM: 3.27 GHz, 1 Gig.

Creative Sound Blaster Audigy 2 ZS WDM
Driver Date: 12/8/2005
Driver Version: 5.12.8.1164

Note: I'm running with ALL graphics and sound special effects turned ON.

 

 

I continue to roam and fight stuff...and yes I can recreate my previous conditions. During the fight everything is working well up until i hear the creatures 'battlecry' (which I think is the last sound to be heard at the conclusion of the fight). Then all the actors on the screen move very slow, rotating camera is slow, I begin seeing a number if 'resyncs to server occuring' and shortly afterwards the client crashes. Like before I can resolve the problem by beaming out of that map...game seems to restore and seems nominal.

Edited by marack

Share this post


Link to post
Share on other sites

marack, please pm me in game ASAP and we can test that together.

 

I went into that cave and killed a couple goblins myself..didn't have any probs.

Share this post


Link to post
Share on other sites
Creative Sound Blaster Audigy 2 ZS WDM

Hmmmmm. That certainly should not have any problems! Creative Labs are the primary maintainers of OpenAL.

 

I continue to roam and fight stuff...and yes I can recreate my previous conditions.
That's handy. Hopefully we can track it down... the problem being I don't have time and I'm the one that knows the code.

 

During the fight everything is working well up until i hear the creatures 'battlecry' (which I think is the last sound to be heard at the conclusion of the fight).
It's probably their death sound if it is the last sound at the conclusion.

Share this post


Link to post
Share on other sites
Hmmmmm. That certainly should not have any problems! Creative Labs are the primary maintainers of OpenAL.

 

Roja suggested that I disabled the sound effects and see if I could recreate the problem; I did so and COULD NOT recreate the problem.

 

Roja also suggested updating my sound card driver, which i did. I went back onto the test server as was able to reproduce the same problem with the sound effects enabled.

 

It's probably their death sound if it is the last sound at the conclusion.

 

I concur...I have no issues with any other sound (so far) or even during the fight.

Edited by marack

Share this post


Link to post
Share on other sites

crash on exit:

 

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x400ca38f
[Switching to process 11610 thread 0x9703]
0x000e340e in update_streams (dummy=0x0) at sound.c:2721
2721															gain = sound_gain * enviro_gain * sound_type_data[streams[i].sound].variant[streams[i].variant].gain;
(gdb) bt full
#0  0x000e340e in update_streams (dummy=0x0) at sound.c:2721
	sleep = 300
	day_time = 1
	i = 37
	tx = 102
	ty = 144
	gain = 0.150000006
#1  0x3002d641 in SDL_RunThread ()
No symbol table info available.

Share this post


Link to post
Share on other sites

another crash on exit:

 

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x143b015c
[Switching to process 9245 thread 0x9703]
0xb00ab856 in vorbis_book_decodevv_add ()
(gdb) bt full
#0  0xb00ab856 in vorbis_book_decodevv_add ()
No symbol table info available.
#1  0xb00b8ae1 in res2_inverse ()
No symbol table info available.
#2  0xb00b1b8c in mapping0_inverse ()
No symbol table info available.
#3  0xb00bf74a in _fetch_and_process_packet ()
No symbol table info available.
#4  0xb00c1eb5 in ov_read ()
No symbol table info available.
#5  0x000bf566 in stream_ogg ()
No symbol table info available.
#6  0x000bf45a in stream_ogg_file ()
No symbol table info available.
#7  0x000bfa8d in play_stream ()
No symbol table info available.
#8  0x000c0e04 in process_stream ()
No symbol table info available.
#9  0x000c14ed in update_streams ()
No symbol table info available.
#10 0x3002d641 in SDL_RunThread ()
No symbol table info available.
#11 0x3002f1e0 in RunThread ()
No symbol table info available.
#12 0x90024227 in _pthread_body ()
No symbol table info available.

Share this post


Link to post
Share on other sites

For me it used to sometimes crash on exit if the sound directory was not found. I am not sure if that is related, but could it be that it didn't find some file and because of this it crashes? Check your errors log for some sound file related message.

Share this post


Link to post
Share on other sites

For me it used to sometimes crash on exit if the sound directory was not found. I am not sure if that is related, but could it be that it didn't find some file and because of this it crashes? Check your errors log for some sound file related message.

All sounds and music play fine.

Share this post


Link to post
Share on other sites

Yes, but what I am saying is that maybe the client can't find just one single file, and it crashes because of that (like maybe freeing something that is not loaded).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×