Ha. Didn't need a calculator. The problem is obvious once I starting writing it out.
All image have to have dimensions in powers of 2. The default skin chain chews up around 5.5 meg, with the A skin taking up roughly 4 meg. By halving the height of images (ie: going to 2:1 aspect ratio) we halve the byte count. Oh goody. So what happens then? We double the linear dimensions! Yay!
This gives us ((5.5)/2)(4) = 11 meg. Which is more than 8 last time I looked.
Ok, can we remove the biggest one and still end up ahead? No. It goes like this:
8 Meg limit allows for 31,249 chunks. Call it 31,240 to be safe.
Each chunk is 8 pixels by 8 pixels.
Progression 8 > 16 > 32 > 64 > 128 > 256 > 512 > 1024 takes up 21,845 chunks.
Byte counts proportional to 1 > 4 > 16 > 64 > 256 > 1024 > 4096 > 16384
Next logical progression is 2:1 aspect ratio, which if starting from 16x8 would give 43,690 chunks which is too much.
Byte counts proportional to 2 > 8 > 32 > 128 > 512 > 2048 > 8192 > 32768
We need to remove at least 12,441 chunks from that, which puts our biggest image at 8192, which is half the resolution of a 1024x1024.
Ok, let's try 4:1 aspect ratio says he merrily (with brain in neutral and great enthusiasm).
Byte counts 1 > 4 > 16 > 64 > 256 > 1024 > 4096 > 16384 > 65536
Which adds up to about 22,000 ish if the highest one is removed, with the biggest one at 16384. Which is where we started. Grumble.
8:1 aspect ratio? Hmm. Not likely to help but anyway...
Byte counts 2 > 8 > 32 > 128 > 512 > 2048 > 8192 > 32768 > 65536
Which is obviously useless. It puts our biggest image at 8192, which again is half the resolution of a 1024x1024.
------------------------------------------------------------------
At this point the problem should be obvious. The only way around it, which might possibly work at the cost of some hit to performance, would be to deliberately break the PO2 rule and hope the game doesn't spit the dummy.
I already know a 768x768 A skin will work (
test pic here). What I don't know is how the game handles that internally. Obviously for rendering it has to be scaled up to 1024x1024, or down to 512x512. The key questions here are:
1/ Does the scaling count towards the game's internal limit or not? If not, and if the game only counts actual bytes of actual skins, then we could theoretically cheat up upwards towards an 8 meg limit if that is applicable.
2/ How does the game handle scaling to PO2? Will this result in a loss of image quality?
3/ Given that breaking PO2 will incur a performance hit when rendering graphics, is this going to be bad enough to outweigh any possible gains in eye candy?