Page 1 of 10
BadApple... again :)
Posted: Sat Aug 18, 2012 6:15 pm
by Stef
Highly inspired by this :
http://68000.web.fc2.com/bad_apple.html
I wanted to do almost the same stuff except that i wanted to keep the full sega genesis resolution to get the best video quality.
Edit :
Done
The total rom size is 8 MB but it does play at full 320x224 resolution, 30 FPS playback and 2bpp color.
Sound is 4bit ADPCM @13Khz.
Source code (also contains first part video data) :
https://www.dropbox.com/s/xrpak1eatkkdb ... rc.7z?dl=0
Final version 4 MB version :
https://www.dropbox.com/s/fg8oymtgjv6o7 ... 1.bin?dl=0
https://www.dropbox.com/s/v8dffnxpcgvo9 ... 2.bin?dl=0
Final version 8 MB version (without bank switch) :
https://www.dropbox.com/s/6fy2y71zfssom ... e.bin?dl=0
YouTube :
http://www.youtube.com/watch?v=2vPe452cegU
Note that the 8 MB version can work only with Mega Everdrive or custom flash cart supporting full 8 MB mapping (without SSF2 bank switch style).
Also some special emulator can support it as well (as
this one).
Re: BadApple... again :)
Posted: Sat Aug 18, 2012 7:50 pm
by Chilly Willy
Uhhhh - no, we can't.
Posted: Sat Aug 18, 2012 7:53 pm
by Stef
err :-/ stupid french share stuff
I'll try to find another one.
Posted: Sat Aug 18, 2012 7:57 pm
by Stef
Dropbox link... far better.
Posted: Sat Aug 18, 2012 8:23 pm
by Chilly Willy
That's better!
Well, it's looking good - now you just have to get the speed up a bit. nice job on the compression - getting it to look decent and fit in 4M is no easy task.
Posted: Sat Aug 18, 2012 10:32 pm
by Stef
Yeah as you said, getting that fit in 4 MB was a hard task
But now it need more speed, hopefully there is room for that !
Posted: Sun Aug 19, 2012 7:59 pm
by Stef
New version :
https://dl.dropbox.com/u/93332624/dev/m ... Apple2.bin
Speed is a bit better (not that much) but at least i fixed last bugs. The video is not anymore choppy and buggy in some place
I am still in C but even with ASM i will need very important optimizations to get things at correct speed.
Posted: Mon Aug 20, 2012 12:11 am
by Chilly Willy
It's definitely better. It's usually best to work out the bugs, THEN work on the speed.
Posted: Mon Aug 20, 2012 7:42 am
by Stef
Yep, now i can work at 100% on optimizations
Posted: Thu Aug 30, 2012 4:32 pm
by Stef
New version :
https://dl.dropbox.com/u/93332624/dev/m ... Apple3.bin
Better speed but still far from what i need :p
I had to add a 128 KB lookup table to improve the 2 bpp to 4 bpp tile conversion speed... that hurts when you are so close from the 4 MB limit.
Posted: Sat Sep 01, 2012 11:12 pm
by Stef
Again a new version :
https://dl.dropbox.com/u/93332624/dev/m ... Apple4.bin
I passed almost all the tile unpack algo to ASM code.
Unfortunately that is still too slow :-/
I do not see much more room for big improvements now...
~600000 tiles on the total 850000 tiles are packed with dictionary method.
Unfortunately the dictionary unpack code is the more complex and slowest one : i believe that i have 20% to 70% of CPU time (depending the frame complexity) eat in that code.
I profiled time to unpack a single 2bpp tile with dictionary method : 5 to 16 scanlines (close to 8000 cycles in worst case) ! And we can have 250 tiles to unpack per frame. I think i should find a simpler unpacking method :p
Posted: Sat Sep 01, 2012 11:23 pm
by Chilly Willy
The speed on the latest is actually rather good. While it's still slow on large changes, it's not THAT slow - just not real-time. There are packing schemes that are very fast depacking... of course, the tradeoff is usually space. You won't know until you try.
Posted: Sun Sep 02, 2012 12:11 am
by Stef
Yeah speed is much better in the last version, basically because i moved to ASM all "bitstream" code (read a buffer bit per bit) which is used everywhere as well as the tile unpack code. Some others parts can be ported to ASM but there are not the bottleneck so i don't bother with them...
As you said all the problem is to find the good trade off between speed and space. I will try to find how i can simplify compression code without sacrificing too much space... There are always ways to do better :p
Posted: Sun Sep 02, 2012 1:13 pm
by ammianus
Wow that is awesome stuff. Hats off to you.
Posted: Sun Sep 02, 2012 7:08 pm
by Stef
Hehe thanks
I have to admit that i already spent many time in that small demo, i really hope to get it up to the end