Author Topic: Splash screen test on TI-84+C  (Read 5173 times)

0 Members and 1 Guest are viewing this topic.

Offline JamesV

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 266
  • Rating: +76/-0
    • View Profile
    • James V's TI-Calculator page
Splash screen test on TI-84+C
« on: May 17, 2013, 01:41:24 pm »
After finally getting my 84+C last night, I decided to try and display a (small) splash screen. Here's the first working version. Currently it's an uncompressed 16-bit BGR image. The image is 82x42 pixels, thus 6888 bytes.

http://youtu.be/8vDO5Zvj6Ik

The next step I plan to take is compressing the image and then having the program decompress and display it.

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: Splash screen test on TI-84+C
« Reply #1 on: May 17, 2013, 06:26:25 pm »
Any thoughts about doing some fancy lossy image compression? I estimated that, using JPEG-like DCT compression, you could fit a full-resolution image that's almost indistinguishable from an uncompressed image in about 20 K.
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55838
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Splash screen test on TI-84+C
« Reply #2 on: May 17, 2013, 06:37:06 pm »
Ooh I like it! The best thing would definitively be compression, especially for people who will use 320x240 title screens.
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7918
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Splash screen test on TI-84+C
« Reply #3 on: May 17, 2013, 07:02:57 pm »
That is pretty nice! I like it :D
Compression would be awesome, yeah, maybe you can also add a option for only half screen?

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline JamesV

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 266
  • Rating: +76/-0
    • View Profile
    • James V's TI-Calculator page
Re: Splash screen test on TI-84+C
« Reply #4 on: May 17, 2013, 09:40:27 pm »
Thanks guys. Yeah the next step is I want to implement some compression, so we'll see how that goes.

This program isn't really intended to be particularly useful, it's more just me learning how to use the 84+C lcd. But I'm releasing the source with each version in case anyone wants to see how it works :)

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55838
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Splash screen test on TI-84+C
« Reply #5 on: May 18, 2013, 01:09:14 am »
I think the best would be to use 256 colors (or 255+transparency) or even less, then use RLE compression or something.

This program isn't really intended to be particularly useful, it's more just me learning how to use the 84+C lcd. But I'm releasing the source with each version in case anyone wants to see how it works :)
Can we expect an Alien Breed, Banchor or Centipede port in the future? :P
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline JamesV

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 266
  • Rating: +76/-0
    • View Profile
    • James V's TI-Calculator page
Re: Splash screen test on TI-84+C
« Reply #6 on: May 18, 2013, 04:02:28 am »
I think the best would be to use 256 colors (or 255+transparency) or even less, then use RLE compression or something.

Can we expect an Alien Breed, Banchor or Centipede port in the future? :P
Yeah I was thinking about 8-bit color images today, which I'll try over the next few days, as well as some other cool ideas.

I do have a lot of ideas for different games I'd like to make on the 84+C, but I won't promise anything until I see what I'm capable of actually doing with it first lol. I'm thinking my first game will be something new that I haven't made before though :)

Offline tr1p1ea

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 647
  • Rating: +110/-0
    • View Profile
Re: Splash screen test on TI-84+C
« Reply #7 on: May 18, 2013, 06:49:56 am »
awesome! What did you use to convert the image?
"My world is Black & White. But if I blink fast enough, I see it in Grayscale."


Offline JamesV

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 266
  • Rating: +76/-0
    • View Profile
    • James V's TI-Calculator page
Re: Splash screen test on TI-84+C
« Reply #8 on: May 18, 2013, 07:10:23 am »
awesome! What did you use to convert the image?
Thanks tr1p! I wrote a small C# Windows console utility, it's included in the zip file (on Cemetech, and ticalc.org once it's processed) :)

EDIT:
Tonight I've made some updates, so that it can now load images that are stored in 8-bit format, with a color index table. As long as your original 16-bit image used 1KB+ of space, then 8-bit with the color index table is more memory efficient, and still loads nice and fast. Of course, the only downside is that the colors aren't quite as smooth

I'll post another video showing this update tomorrow, and then start working on a compressed 8-bit image version :)
« Last Edit: May 18, 2013, 12:26:18 pm by JamesV »

Offline DJ Omnimaga

  • Former TI programmer
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55838
  • Rating: +3151/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • DJ Omnimaga Music
Re: Splash screen test on TI-84+C
« Reply #9 on: May 19, 2013, 12:30:18 am »
It would be nice if image compression could be integrated into DCS8 or some standalone lib for BASIC programmers as well. How fast is it for full screen (or at least 160x240) animations?
« Last Edit: May 19, 2013, 12:30:42 am by DJ Omnimaga »
In case you are wondering where I went, I left Omni back in 2015 to form CodeWalrus due to various reasons explained back then, but I stopped calc dev in 2016 and am now mostly active on the CW Discord server at https://discord.gg/cuZcfcF



Official Website |T-Shirt store | Reverbnation | Facebook | Youtube | Twitter | Spotify

Offline JamesV

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 266
  • Rating: +76/-0
    • View Profile
    • James V's TI-Calculator page
Re: Splash screen test on TI-84+C
« Reply #10 on: May 19, 2013, 09:31:24 am »
Here's where it's currently at. This is a 180x171 image, compressed in 8-bit colour. The program uncompresses it and converts back to 16-bit BGR on the fly.

An uncompressed 180x171 16-bit image would take up 61560 bytes, but the image data used in this program takes up only 6828 bytes, plus 512 bytes for the colour index table used to convert from 8-bit to 16-bit. Of course, the compression is fairly good on this image, as there aren't a lot of different colours being used..

I should note that I'm very new to working with 8-bit / 16-bit colour conversions, etc. so I wouldn't be surprised if this could be done better. I'll release the updated code in the next day or so once I've cleaned it up and tested it some more.

Apologies for my iPhone/hand reflection on the calculator when the screen goes dark :P



It would be nice if image compression could be integrated into DCS8 or some standalone lib for BASIC programmers as well. How fast is it for full screen (or at least 160x240) animations?
I'm sure some kind of library will get coded up eventually. I have some ideas for it, but I don't have a lot of experience in creating ASM tools for BASIC programs. I'd love to give it a try (and maybe I will!), but no doubt someone else could do a better job.

I haven't done any animation testing yet, although tr1p1ea did a scrolling background test running in 160x240 mode, and it looked quite fast!

Offline Matrefeytontias

  • Axe roxxor (kinda)
  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1982
  • Rating: +310/-12
  • Axe roxxor
    • View Profile
    • RMV Pixel Engineers
Re: Splash screen test on TI-84+C
« Reply #11 on: May 19, 2013, 11:02:18 am »
Waw ... it's looking great :D now to see how fast it is with animations.

Offline Sorunome

  • Fox Fox Fox Fox Fox Fox Fox!
  • Support Staff
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 7918
  • Rating: +374/-13
  • Derpy Hooves
    • View Profile
    • My website! (You might lose the game)
Re: Splash screen test on TI-84+C
« Reply #12 on: May 19, 2013, 04:24:28 pm »
That is pretty quick for a fullscale image O.O Nice job! :D

THE GAME
Also, check out my website
If OmnomIRC is screwed up, blame me!
Click here to give me an internet!

Offline DrDnar

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 546
  • Rating: +97/-1
    • View Profile
Re: Splash screen test on TI-84+C
« Reply #13 on: May 19, 2013, 05:05:49 pm »
Quote
   - Brandon Wilson for the LCD driver info on WikiTI, and for ti84pcse.inc
Actually, Brandon Wilson provided almost none of that information. If you check the history, you will see that I did 98% of the LCD driver write-up. The RAM, B_CALL, and flag equates of ti84pcse.inc were discovered by Benjamin Moody (Flop) and the new token equates were given by Christopher Martin (KermM). I wrote up the list of symbolic names for ports and collected the data into a unified include file, and I just posted a minor update to the file. The MicrOS post I made a while ago contains a complete text-mode driver for the color screen, and shows both writing (PutC) and reading (ReadChar). I may also soon post code for turning the LCD on and off and for controlling the backlight.
"No tools will make a man a skilled workman, or master of defense, nor be of any use to him who has not learned how to handle them, and has never bestowed any attention upon them. . . . Yes, [] the tools which would teach men their own use would be beyond price."—Plato's The Republic, circa 380 BC

Offline JamesV

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 266
  • Rating: +76/-0
    • View Profile
    • James V's TI-Calculator page
Re: Splash screen test on TI-84+C
« Reply #14 on: May 19, 2013, 09:12:59 pm »
Quote
    - Brandon Wilson for the LCD driver info on WikiTI, and for ti84pcse.inc
Actually, Brandon Wilson provided almost none of that information. If you check the history, you will see that I did 98% of the LCD driver write-up. The RAM, B_CALL, and flag equates of ti84pcse.inc were discovered by Benjamin Moody (Flop) and the new token equates were given by Christopher Martin (KermM). I wrote up the list of symbolic names for ports and collected the data into a unified include file, and I just posted a minor update to the file. The MicrOS post I made a while ago contains a complete text-mode driver for the color screen, and shows both writing (PutC) and reading (ReadChar). I may also soon post code for turning the LCD on and off and for controlling the backlight.

Sorry DrDnar, I hadn't realised this. I'll correct the readme when I upload the updated version :) And thank you!