Hey Will,

> I suspect this is either a numeric thing or a pygame thing -- aren't 
> there some compiled bits in those libraries for speed purposes on some 
> systems? I recall having a 64-bit problem myself when I was first 
> mucking with PyKaraoke myself ;)

Yep I believe that one was a pygame vs 64-bit bug.

In this case there are no libraries involved, however. It's just our own 
C module _pycdgAux.c which is reading the CDG bytes read directly from 
the CDG file. The problem is that it's reading an x,y offset from the 
CDG file which is outside of the 300x216 screen size, i.e. the data in 
the file at this location isn't a perfect rip of the original CDG 
command. The C code was then using this x,y offset to index into an 
array sized at 300x216. This was what caused the seg fault that Daniel 
sent the debug info on. It won't necessarily cause a seg fault on all 
machines though, as I found on my PC. It would have just been stomping 
on some memory somewhere that it probably shouldn't :-)

It turns out that both of these files fail when using the pure Python 
implementation of pycdg as well, for the same reason: array index out of 
bounds. I'd better fix that one up too. The lesson here is to 
sanity-check the CDG commands as they aren't always perfectly ripped.

Kelvin.

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Pykaraoke-discuss mailing list
Pykaraoke-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pykaraoke-discuss

Reply via email to