- CEVidium - Video playback for the CE
- 11 Nov 2017 11:26:03 pm
- Last edited by Iambian on 01 May 2019 09:15:29 pm; edited 3 times in total
Some people might remember a really old iteration of this project for the TI-84+(SE) monochrome calculator, which itself was an iteration of an older idea of getting the popular Bad Apple video onto the calculator.
I wanted Bad Apple to run on the CE and now that I know enough to do it, I did... well. Something.
What I created was a video playback program that accepts specially-formatted videos split across multiple files with an accompanying ASM stub for decoding. My first attempt was an encoding scheme which did pixel tripling to expand a 96 by ** video to better fit the screen, done in 1bpp mode at 30fps. I don't have a (good) screenshot of that because I never finished writing the timing code to actually play the 30fps video at 30fps. It would play closer to 60fps.
The second attempt was to do much the same except in 2bpp mode with a palette of grays. This is the result, using the One Punch Man opening scene as the test video.
OPM Opening - 2bpp animated .gif
The third attempt was to do the same except in 4bpp mode. This time, I added color but used this fixed palette during encoding:
Code:
Yes, I know there's a duplicate value in there. I intend to fix that by changing the first to a lighter gray and the other to a darker gray. I'm also using the One Punch Man opening scene in this one and here's the result of that:
OPM Opening - 4bpp fixed palette
The fourth attempt, which I worked on at the same time as the third due to encoding difficulties, was to go back to 1bpp mode, but have no zooming in order to accept a higher resolution video. Finally, it's a Bad Apple video that's not all that blocky.
Bad Apple - 1bpp improved (from 94x72) res
I intend to release source once I'm finished having fun with writing stuff.
EDIT: The color OPM video is about 1.7MB on-calc while the Bad Apple video is about 2.3MB
EDIT2: The .gif files were shot at 12-16 fps using an external .gif capture tool since CEmu leaves too many artifacts when I use its built-in capture.
TODO: fix crash-on-exit problem with 4bpp decoder
EDIT3: Changed embedded images to links to prevent performance problems when viewing this thread using apotato low end machine.
EDIT4: Somewhere along the line, the project was named "CEVidium", so I (hopefully?) changed the title of thread to reflect that.
I wanted Bad Apple to run on the CE and now that I know enough to do it, I did... well. Something.
What I created was a video playback program that accepts specially-formatted videos split across multiple files with an accompanying ASM stub for decoding. My first attempt was an encoding scheme which did pixel tripling to expand a 96 by ** video to better fit the screen, done in 1bpp mode at 30fps. I don't have a (good) screenshot of that because I never finished writing the timing code to actually play the 30fps video at 30fps. It would play closer to 60fps.
The second attempt was to do much the same except in 2bpp mode with a palette of grays. This is the result, using the One Punch Man opening scene as the test video.
OPM Opening - 2bpp animated .gif
The third attempt was to do the same except in 4bpp mode. This time, I added color but used this fixed palette during encoding:
Code:
palette = [0,0,0, 128,0,0, 0,128,0, 0,0,128,
128,128,0, 0,128,128, 128,0,128, 128,128,128,
128,128,128, 255,0,0, 0,255,0, 0,0,255,
255,255,0, 0,255,255, 255,0,255, 255,255,255]
OPM Opening - 4bpp fixed palette
The fourth attempt, which I worked on at the same time as the third due to encoding difficulties, was to go back to 1bpp mode, but have no zooming in order to accept a higher resolution video. Finally, it's a Bad Apple video that's not all that blocky.
Bad Apple - 1bpp improved (from 94x72) res
I intend to release source once I'm finished having fun with writing stuff.
EDIT: The color OPM video is about 1.7MB on-calc while the Bad Apple video is about 2.3MB
EDIT2: The .gif files were shot at 12-16 fps using an external .gif capture tool since CEmu leaves too many artifacts when I use its built-in capture.
TODO: fix crash-on-exit problem with 4bpp decoder
EDIT3: Changed embedded images to links to prevent performance problems when viewing this thread using a
EDIT4: Somewhere along the line, the project was named "CEVidium", so I (hopefully?) changed the title of thread to reflect that.