Beta Zelda ... Kind Of


EvilDragon said:
Well, instead of tracker, you could also use OGG. Should need less CPU speed.
I don't think that is quite right... mixing a couple of samples should require way less CPU cycles
than doing all the DSP number cruching it takes to decode MP3 or Vorbis... just consider the machines that were used
for tracking in the early nineties, like PCs with < 40MHz CPUs...

@Sebt: Have you tried different timidity patches? Has the beviour changed at all after the mainloop fix?
 
Last edited by a moderator:
sebt3 said:
hmn said:
@sebt3: Can you get a backtrace of that? I have a hard time debugging this on the Wiz, as I see no symbols for any system libs... maybe Pandora has proper dbg support packages?
First gdb experience ever :)
For now :
Code:
ALSA lib pcm.c:7234:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7234:(snd_pcm_recover) underrun occured
ALSA lib pcm.c:7234:(snd_pcm_recover) underrun occured
^C
Program received signal SIGINT, Interrupt.
0x401494a4 in nanosleep () from /lib/libpthread.so.0
(gdb) bt
#0  0x401494a4 in nanosleep () from /lib/libpthread.so.0
#1  0x40148270 in ?? () from /lib/libpthread.so.0
Cannot access memory at address 0x0
#2  0x40148270 in ?? () from /lib/libpthread.so.0
Cannot access memory at address 0x0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


There is no debug symbol available for angstrom, so I'm stuck here :(

You can install the -dbg library to get debug symbols.

# opkg install uclibc-dbg
 
Last edited by a moderator:
hmn said:
EvilDragon said:
Well, instead of tracker, you could also use OGG. Should need less CPU speed.
I don't think that is quite right... mixing a couple of samples should require way less CPU cycles
than doing all the DSP number cruching it takes to decode MP3 or Vorbis... just consider the machines that were used
for tracking in the early nineties, like PCs with < 40MHz CPUs...
It all depend on the number of track and samples :)
The problem is that some tunes use a lot's of instruments (and it sound like timidity is ignoring some of them). That's mean a lot's of tracks to mix.
Once I remove the rotozoom to do the scale 2x :D , the games usually used 50% CPU. With ".it" files it is "playable" at 700Mz (link isn't fast enough).
On pandora, playing mp3 usually account for 20% of the CPU at 500Mz.
So I guess it's a good idea actually. :)


hmn said:
@Sebt: Have you tried different timidity patches?
This is part of the base system. So no. But I tried 3 differents pats-set without success. Ultimatly I'll fall back checking that.

hmn said:
Has the beviour changed at all after the mainloop fix?
No. :( I realy think that on pandora 2 differents kind of freeze happened. But on pandora, the freeze you found happened way less often just as its CPU is faster, so the probability that the tick got increased between the two. By the way, I was reading the original autor's forum today, and I discover that the linux and windows version does also have some weird freeze. I guess you could send a patch or two :D

Hitnrun said:
You can install the -dbg library to get debug symbols.

# opkg install uclibc-dbg
thanks, but we aren't using uclibc are we ?
 
Last edited by a moderator:
@hmn: Thank you again hmn, unfortunately there are still some minor memory leaks, even in zelda ROTH, I could find after a long playing time.

I have no problem with timidity on dingoo so far.
 
sebt3 said:
Hitnrun said:
You can install the -dbg library to get debug symbols.

# opkg install uclibc-dbg
thanks, but we aren't using uclibc are we ?

Hmm, really? That was the only libc I found on angstrom repo, maybe this part does not come from there?
 
Last edited by a moderator:
Hitnrun said:
sebt3 said:
thanks, but we aren't using uclibc are we ?

Hmm, really? That was the only libc I found on angstrom repo, maybe this part does not come from there?
http://www.angstrom-distribution.org/unstable/feed/armv7a/base/libc6_2.9-r36.3.5_armv7a.ipk
which is glibc6 2.9 :)
 
Last edited by a moderator:
@Shin-NiL: I have already tried to find some of the memleaks (valgrind found a lot). The problem is actually finding the root of the leak, as pointers are shared all over the code :) It is not always clear who has pointer ownership...
 
@sebt3: You could try taking the libs from your toolchain - this is what I did on the Wiz. It should work, as long as they are the same version. Or this :)
 
EvilDragon said:
Well, instead of tracker, you could also use OGG. Should need less CPU speed.
Shall I convert them properly?
Done that... The PND is 200M which is completly obscene :(

Ohh and the performance hit was my fault not the tracker format, sorry about that.
I reupped a tracker version at the same download link which isn't slow (50% cpu used)

Please test : i'm looking for feed back.

@hmn & @Shin-NiL : I'd like to read your patch against original source code (I may have missed a fix somewhere)
 
Last edited by a moderator:
200MB for OGG files?
Heck, that would be 3 - 4 hours music in good quality :eek:
How did you convert them...?

Well, if it works fast with the tracker again, it's not needed anymore anyways :D
 
sebt3 said:
Ohh and the performance hit was my fault not the tracker format, sorry about that.
I reupped a tracker version at the same download link which isn't slow (50% cpu used)

Please test : i'm looking for feed back.

@hmn & @Shin-NiL : I'd like to read your patch against original source code (I may have missed a fix somewhere)

I tried to test, but I think there's something wrong with the pnd. It's not being detected by MiniMenu or xfce on my pandora.
 
Last edited by a moderator:
sebt3 said:
@hmn & @Shin-NiL : I'd like to read your patch against original source code (I may have missed a fix somewhere)

My latest working code can be found here: http://www.megaupload.com/?d=USUJJB8P

I commented all the changes I made, you can find them easily by running a grep "Shin-NiL" in the directory with the code :p

I began to examine the OLB code, it seems that it consumes more memory and cpu than ROTH, then I will have some more work to do.
 
Last edited by a moderator:
EvilDragon said:
200MB for OGG files?
Heck, that would be 3 - 4 hours music in good quality :eek:
How did you convert them...?
oggenc -q4 which is already prety low quality (4/10).
But there are 110 tunes in there, and most of them use more than 17 instruments/tracks.

naples39 said:
I tried to test, but I think there's something wrong with the pnd. It's not being detected by MiniMenu or xfce on my pandora.
Hum broken upload sorry :(
re-up :) (size should be 26067424o)
And thanks for help :)

Shin-NiL said:
My latest working code can be found here: http://www.megaupload.com/?d=USUJJB8P
I commented all the changes I made, you can find them easily by running a grep "Shin-NiL" in the directory with the code :p
Thanks a lot :) I plan on using diff anyway :p

Shin-NiL said:
I began to examine the OLB code, it seems that it consumes more memory and cpu than ROTH, then I will have some more work to do.
yes, but you can more or less already apply your same fix as most of the code just slightly differ from one games to an other(beside the stuff handling the sorry, but I guess you didn't touched that :p)
 
Last edited by a moderator:
@sebt3: ROTH Patch against Linux source: http://pastie.org/1087694
(With line endings normalized to DOS style)
 
Played the newest pnd a bit and all seems well so far. Nice to have music back, and the new controls came naturally to me anyway. I just unconsciously started hitting the SNES style button layout, and it took me about 2 minutes to realize the controls weren't that way in the last release. :)

Speed seems about the same as the last release. Generally fine at 500mhz, except the forest runs slow and some hiccups in a dungeon I saw.
 
Sebt3: Glad to hear you got something figured out, weird that it acts up like that though :S

I don't know how to explain it properly, but it almost sounds like the pandora's mixer is just dropping some of the instruments/channels when it gets overwhelmed and then timidity is just sitting there waiting it to return from something it can't... but I'm not a linux audio genius, so I might just be blowing smoke outta my ass ;)
 
Some more fixes I have made:

  • There was a memory leak in the savegame selection menu
  • There was a memory leak in Ennemi::init
  • The most important one: There were memory leaks in Listable due to a non-virtual destructor - that meant that almost any "Listable"-object in
    the game (enemies, NPCs, objects, projectiles etc.) would not get properly de-allocated (unless it was the first in it's list).

A patch for these fixes is here (ignore the Audio.cpp part): http://pastie.org/1094090
This is applicable to all three games btw.
 
Cool, nice to see that going :)

So many Zelda games (these three and Zelda Classic with Quests...) are available now :)
 
EvilDragon said:
Cool, nice to see that going :)

So many Zelda games (these three and Zelda Classic with Quests...) are available now :)

Plus LttP, AST, the original, BS Zelda Maps1&2, Link's Awakening, and Minish Cap all through emulation. ;)

-God Ginrai
 
Last edited by a moderator:
God Ginrai said:
EvilDragon said:
Cool, nice to see that going :)

So many Zelda games (these three and Zelda Classic with Quests...) are available now :)

Plus LttP, AST, the original, BS Zelda Maps1&2, Link's Awakening, and Minish Cap all through emulation. ;)

-God Ginrai

Yeah, but I played those already on the original systems :D
I love to have new quests :)
 
Last edited:
Back
Top