Jump to content
Eternal Lands Official Forums

d000hg

Members
  • Content count

    56
  • Joined

  • Last visited

About d000hg

  • Rank
    Rat
  1. [Patch] custom WAV loader

    Note the latest version has two paths depending if NEW_SOUND is defined. You'd have to replace the wav-loading in two places - not that it would be difficult but please be aware. Has the update not finally gone through yet?
  2. Eternal on psp

    It would get a lot more publicity for EL - there can't be many proper MMORPGs on PDP so far. But mainly it would be really interesting to work on for anyone with a lot of expereince with PSP.
  3. Eternal on psp

    I don't know what the newtorking capabilities of PSP/DS are, but if it's still server-orientated it may not be too bad. The 3D graphics must be the biggest performance drain - a top-down 2D renderer would be a good start. With reduced assets maybe the memory aspect wouldn't be an issue. It would certainly be interesting but still a big job - a team would be required I suspect.
  4. NEW_SOUND

    I no longer know what the differnce are between my changes and Torg's fix, but I'll get that version and look again! I don't reemmber commenting out the mutex macros but may well have decided that they weren't required and then forgotten - there's certainly no reason not to re-enable them. You say you're testing on an UNSTABLE version of Linux?
  5. NEW_SOUND

    Um, I think that patch has been applied and checked in, unless I misunderstood Torg? Trying to re-apply it, well I don't know what might happen! Thanks for testing. What is your OS please? When did it hang - randomly or when doing something in particular? And does the music on/off check-box function but with no music, or can you simply not turn it on at all?
  6. NEW_SOUND

    Without using NEW_SOUND, the OS X client builds fine. I too have not yet tried with NEW_SOUND. When are we going to have a code freeze before the update? IMHO only bugs should be addressed at this point rather than adding new features. That's why the define NEW_SOUND is there! Maintaining the patch for sound changes while everyone kept changing stuff was a pain so it seemed sensible to get it checked in in a 'safe' state.
  7. NEW_SOUND

    So are we happy that the non-NEW_SOUND build is completely fine, including the surning-sound-and-music-on-and-off changes?
  8. [Patch] custom WAV loader

    Huh? AFAIK, there's never been any discussion of using .ogg for anything other than music. Since we already have the ogg implementation working for music (for what, two years?), I'd assume we would use it for sound too if we really wanted it... Yeah, I think we can re-use existing code to load .ogg sounds. It's not hard anyway since sounds won't be streamed like music is.
  9. [Patch] custom WAV loader

    Thing to note, I believe they want to switch to .ogg eventually!
  10. NEW_SOUND

    Oh for crying out loud...! I incorporated the fix for that into my changes; I find the logic for this thing a little tortuous so could someone who worked on the previous fix take a look and see what stupid thing I did?! So to clarify it works fine unless you urn music off and back on while sound is ON? In this case do the check-boxes still work but just no music happens? ps:Thanks for the commit Torg.
  11. NEW_SOUND

    I don't know if I ever got told this properly - or which port I normally use! Is it a setting in the .ini file? I can't check stuff in; if anyone can verify my patch from 2 posts back and get those changes committed. Then I'll look at the NEW_SOUND-specific issues.
  12. NEW_SOUND

    Right. I have the old version working fine. I got rid of all the annoying messages when using NEW_SOUND. Here is a diff - I just used cvs diff, if I need to use other parameters (-u ?) let me know. If somebody could re-try without NEW_SOUND then we need to check in the changes since the client is kind of broken currently! I did reproduce the error when ou turn off sound&music and then turn one back on. I don't get any lag but the game jsut hangs on exit. I've not fixed this yet - I'll look but it seems more urgent to fix the version that is being used! Diff follows... Index: asc.c =================================================================== RCS file: /cvsroot/elc/elc/asc.c,v retrieving revision 1.58 diff -r1.58 asc.c 505c505 < LOG_ERROR("Unable to find property %s in node %s\n", prop, node->name); --- > if(log)LOG_ERROR("Unable to find property %s in node %s\n", prop, node->name); 509c509 < char *get_string_property (xmlNode *node, const char *prop) { --- > char *get_string_property (xmlNode *node, const char *prop, int log) { 518,519c518,519 < LOG_ERROR("Unable to find property %s in node %s\n", prop, node->name); < return; --- > if(log)LOG_ERROR("Unable to find property %s in node %s\n", prop, node->name); > return NULL; Index: asc.h =================================================================== RCS file: /cvsroot/elc/elc/asc.h,v retrieving revision 1.34 diff -r1.34 asc.h 253c253 < char *get_string_property (xmlNode *node, const char *prop); --- > char *get_string_property (xmlNode *node, const char *prop, int log); Index: actor_scripts.c =================================================================== RCS file: /cvsroot/elc/elc/actor_scripts.c,v retrieving revision 1.137 diff -r1.137 actor_scripts.c 1402c1402 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1412c1412 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1422c1422 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1432c1432 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1658c1658 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1668c1668 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1678c1678 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1688c1688 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1698c1698 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1708c1708 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1718c1718 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1728c1728 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1738c1738 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1748c1748 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1758c1758 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1768c1768 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1778c1778 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1788c1788 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1798c1798 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1808c1808 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1818c1818 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1828c1828 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1838c1838 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1848c1848 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1858c1858 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1868c1868 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1878c1878 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 1888c1888 < , get_string_property(item,"sound") --- > , get_string_property(item,"sound",0) 2106c2106 < strcpy(name,get_string_property(cfg, "type")); --- > strcpy(name,get_string_property(cfg, "type",1)); 2121c2121 < strcpy(name,get_string_property(cfg, "type")); --- > strcpy(name,get_string_property(cfg, "type",1)); 2129c2129 < strcpy(act->actor_name, get_string_property(cfg, "type")); --- > strcpy(act->actor_name, get_string_property(cfg, "type",1)); Index: sound.c =================================================================== RCS file: /cvsroot/elc/elc/sound.c,v retrieving revision 1.83 diff -r1.83 sound.c 14,15c14,15 < #define LOCK_SOUND_LIST()// SDL_LockMutex(sound_list_mutex) < #define UNLOCK_SOUND_LIST()// SDL_UnlockMutex(sound_list_mutex); --- > #define LOCK_SOUND_LIST() SDL_LockMutex(sound_list_mutex) > #define UNLOCK_SOUND_LIST() SDL_UnlockMutex(sound_list_mutex); 148a149 > LOCK_SOUND_LIST(); 160c161,162 < --- > > UNLOCK_SOUND_LIST(); 182a185 > LOCK_SOUND_LIST(); 183a187 > UNLOCK_SOUND_LIST(); 374c378 < --- > LOCK_SOUND_LIST(); 388a393 > UNLOCK_SOUND_LIST(); 401a407 > UNLOCK_SOUND_LIST(); 413a420 > UNLOCK_SOUND_LIST(); 422a430 > UNLOCK_SOUND_LIST(); 517a526 > UNLOCK_SOUND_LIST(); 528a538,539 > { > UNLOCK_SOUND_LIST(); 529a541 > } 534a547,548 > { > UNLOCK_SOUND_LIST(); 535a550 > } 730a746 > LOCK_SOUND_LIST(); 743a760 > UNLOCK_SOUND_LIST(); 1282,1290c1299,1302 < void toggle_music(int * var){ < if(!have_music && *var){ < #ifdef NEW_SOUND < init_sound(SOUND_CONFIG_PATH); < #else < init_sound(); < #endif //NEW_SOUND < } < if(music_on){ --- > void toggle_music(int * var) > { > *var=!*var; > if(!music_on) 1292c1304 < } else { --- > else 1294,1295d1305 < } < *var=!*var; 1309d1318 < music_on=0; 1567c1576 < if(!inited){ --- > if(!inited) 1576c1585,1586 < if(music_thread != NULL){ --- > if(music_thread != NULL) > { 1580c1590,1591 < while(queued-- > 0){ --- > while(queued-- > 0) > { 1612,1613c1623,1626 < for(i=0;i<MAX_BUFFERS;i++) { < if(alIsBuffer(sound_buffer)) { --- > for(i=0;i<MAX_BUFFERS;i++) > { > if(alIsBuffer(sound_buffer)) > { 1619a1633 > { 1631c1645,1646 < if(context != NULL) { --- > if(context != NULL) > { 2136a2152 > LOCK_SOUND_LIST(); 2151a2168 > UNLOCK_SOUND_LIST();
  13. NEW_SOUND

    Thanks very much for your help. So in reverse order: 1)I don't know why (UN)LOCK_SOUND_LIST is like that. I can't connect to CVS to check when this was changed right now. 2)Yep, destroy_sound was a little cocked up. Fixed. 3)toggle_music: init_sound is called in turn_music_on if required so your version is correct I think with/without NEW_SOUND (I'll test it now)...
  14. NEW_SOUND

    Oh, I had a quick look through sound.c and I think under some conditions the sound effects mutex can be locked in a function, and then if the function breaks out with an error the lock isn't removed. I don't really know what these mutexes are used for but does that sound the kind of thing which might cause the 20s-hang on exit and stuff? Is it possible anyone can debug it and see where it hangs - I just don't get this issue. In fact the only problem I can reproduce is the non-toggling music. I'll have a look and make sure this gets fixed... like I say the use of mutexes here doesn't seem required in the first place and I don't know why some functions use it and not others!
  15. NEW_SOUND

    All this talk of test servers keeps confusing me. Torg are you listening to this and can advise me? Bluap, the toggle_music function is this: void toggle_music(int * var){ if(!have_music && *var){ #ifdef NEW_SOUND init_sound(SOUND_CONFIG_PATH); #else init_sound(); #endif //NEW_SOUND } if(music_on){ turn_music_off(); } else { turn_music_on(); } *var=!*var; } Can you post what you replace it with? I did notice that toggling music is wierd for me too with NEW_SOUND; I never use music. As for the error log, the errors like : [07:31:33] Unable to find property sound in node CAL_attack_up_1 are generated because there is no sound set for most animations - only for human_male / human_female.xml (take a look). This must be being generated from line 509 of asc.c in function char *get_string_property (xmlNode *node, const char *prop). Since animation sounds shouldn't ever be mandatory we should make a way for these messages to be optional somehow - maybe: char *get_string_property (xmlNode *node, const char *prop,bool log) { xmlAttr *attr; for (attr = node->properties; attr; attr = attr->next) { if (attr->type == XML_ATTRIBUTE_NODE && xmlStrcasecmp (attr->name, (Uint8 *)prop) == 0) { return attr->children->content; } } if(log)LOG_ERROR("Unable to find property %s in node %s\n", prop, node->name); return; } The other errors about sources and so on are from OpenAL - it seems some systems just don't like OpenAL in the new version but I don't know why. Can people who DID get the new sounds to work please raise a hand, and say their OS please and whether they get these errors?
×