Maybe opening poster grabbed the source to 1.0 instead of 1.1? 1.0 was actually missing a bunch of files, but you fixed that when you released the 1.1 source.
As I mentioned to you in e-mail back in November, the only file missing from your 1.1 source distribution was consolas.fnt. This file was in the 1.0 source so I just grabbed it from there, although I could've probably extracted it from the .ipa in my iTunes library. I've had no problem making changes to and building modizer using those sources, so I can confirm once again that the 1.1 sources are fine.
The project doesn't open and compile out of the box, due to path and SDK differences (and I also had to clean out references to your signing certificates and replace them with mine) but if someone can't figure out how to fix those things themselves they probably don't know enough yet to make changes anyway...
Now to sidetrack things a bit, I see you've enabled .DSF support in 1.2. Did you actually manage to get good enough performance out of it to run at full sample rate? If so, what did you end up doing? I had given up on re-writing the AICA mixer after replacing just a few pieces with ARM assembly, because I was satisfied with the ~60% compatibility that I got by underclocking the ARM and cutting the sample rate to a 1/3rd of actual. When I got an iPad 2 a few months ago, I was dissapointed to discover that even it couldn't handle anything at full speed without dropping the sample rate in half.
I did some little changes in v1.2 and now my iPad (v1) can support DSF (did not tested enough to tell "most of" or "a few") at 44,1Khz but with DSP off.
Basically I changed the main loop to break the cpu/spu 1:1 ratio. I emulate between 1 and 30 samples by iteration (new settings added). 15 seems to be a good value.
I'll upload v1.2 sources as soon as Apple validate the new version.
If you want to test here is the change :
in "int32 dsf_gen(int16 *buffer, uint32 samples)"
=> add a "cycle_ratio" param (int). Typical values : 1,5,15,30 (you have to ensure it is a divider of
samples to avoid click in the sound buffer).
for (i = 0; i < samples; i+=cycle_ratio)
ARM7_Execute((33000000 / 60 / 4) / 735 *cycle_ratio);
arm7_execute((33000000 / 60 / 4) / 735 *cycle_ratio);
stereo = &output[opos];
stereo = &output2[opos];
AICA_Update(NULL, NULL, stereo, 1*cycle_ratio);
=> in aica sources, add a switch to bypass the DSP emulation code.
That change doesn't seem to make much difference for me. It's still doing the same amount of work because you're multiplying both by 15? Are you using a new ARM7 core for GSF support? Perhaps that was a source of speed increase?
I'll experiment with it more when 1.2 is out. I have several hundred DSF's to test with.
Edit: I combined that change with my hack to lower the sample rate. It definitely does make a difference. Before that change, I could only get good playback from the iPhone 4 on the with most files at 14,700hz. Now I can play them back at 22,050hz without skipping. However, desyncing the ARM and the AICA seems to mess up the playback a bit. Some songs, although they sound fine, play back slower than they should be. You don't notice this as much with a cycle_ratio of 5. The timing actually gets even better for some files if you then underclock the ARM7 in half. (It might make others worse, but I haven't noticed yet.)
I've tested over 30 files now on my iPhone 4, and at the settings I mentioned above (22,050hz, cycle_ratio of 5, and ARM 7 clocked in half) I don't get any skipping on any of them. The quality difference over 14,700hz is really noticable. While 14.7khz bothered me at times, 22khz does not. Aside from the timing issues, these settings seem to be perfect. When you release 1.2, I'll see if I can optimize some more of this and hand over my changes because I think they'd make nice optional settings to save battery life even if by chance it does run full speed without them.
Have you set up the git repo yet? I was interested in contributing a few more sound formats to Modizer, and a git repo would definitely be the most convenient way to grab the source. (Maybe a Github repo to manage patches, etc., too?)
I also noticed that the latest source available is 1.3 - is the 1.4 source up anywhere?
I'm running out of time, but it is still in progress. I've cleaned 50% of the code I wanted to review, so I think it will take a couple of days/week more.
Meanwhile, if you want the latest sourcecode just drop me an email.