I'm really sorry Stef, I forgot to copy the updated version of my homepage on my flasher which means no source today...
64KB because 2x 8-bit registers form 1 16-bit reg which can hold numbers from 0...65535. Bank changes are automatic so no 32KB limit. I was wondering yesterday, that what might happen if the WAV header is too close to the end of bank... lots of static ?
No problem for the source code, i can wait :p
When you said "bank change is automatic", you mean your code does it automatically right ?
What about forcing your wav len to be 8 bytes boundary (you can use 4 or 16 also) ?
Fill the last unused bytes with silent then you can use your 16 bits reg to store (lenght / 8 ) instead of lenght. That permit you to play (65536 * 8 ) bytes lenght wav easily and also unroll your play loop to 8 bytes
Last edited by Stef on Tue Jan 16, 2007 2:19 pm, edited 1 time in total.
Yes, the software does it automatically with no clicks or pops
For larger files you can always uncomment ~10 lines in the source (makes things slightly slower) if you need to play long samples. You don't need any additional "tweaks".
As for unrolling, it makes the code very ugly, my implementation is not very unrolling friendly. if you do unrolling, the speed increase would be very minimal.
TmEE co.(TM) wrote:Yes, the software does it automatically with no clicks or pops
For larger files you can always uncomment ~10 lines in the source (makes things slightly slower) if you need to play long samples. You don't need any additional "tweaks".
As for unrolling, it makes the code very ugly, my implementation is not very unrolling friendly. if you do unrolling, the speed increase would be very minimal.
Ok
Unrolling can be cool for channel mixing but for a single wav playback i guess the Z80 is more than enough
When you said "makes things slightly slower", does that lower the playback rate ?
I had a quick look on it but as i'm not very familiar with Z80 assembly, i can't really suggest something for now
Something i noticed : you have the "setBankValue" code duplicated in the source or somethink like that, is it required ?
Anyway i'll have more time to study it after my job
Funny clip, i have it somewhere on my HD
Impressive image rate for a such big window ! And the video quality is always getting better
Are you refreshing the entire image at each frame ?
Are you setting top and bottom border as blank area to maximize the VDP VRAM write capabilities ?
Funny clip, i have it somewhere on my HD Wink
Impressive image rate for a such big window ! And the video quality is always getting better Smile
Are you refreshing the entire image at each frame ?
Are you setting top and bottom border as blank area to maximize the VDP VRAM write capabilities ?
Thank you
It upload only 96 tiles every 1.25 frames this is Equinoxe's Main advantage... I don't have to optimise any dma period
Are you refreshing the entire image at each frame ?
Partialy, it have a sort of MPEG-like refreshing... Only moving parts are refreshed.
You cannot see it here because everything is moving and because the video isn't enough fullscreen (so the encoder did not destroyed much).