Omnimaga
Calculator Community => Completed => Major Community Projects => Portal X => Topic started by: Builderboy on December 08, 2010, 07:16:09 pm
-
So i have started working on the title screen, and it is quite detailed and i want to refrain from just posting all 768 bytes into the program, as i feel that would be a bit large. And so, i have decided to make a compression challenge! Whoever can compress this screen into the least number of bytes will get their name in the credits and my eternal respect and gratitude :D Note that the final size should include everything that is needed to put the screen into L6, through whatever means necessary.
Note: I decided to release the real title screen :P
-
/me accepts your challenge >:D
EDIT: I should ask: what drawing routines will already exist in the program? I don't want to use the rectangle routine, for instance, if it doesn't already exist and adding it would inflate the code larger than using some other method.
-
Do you use Rect()/RectI() in portal's code already? because then the routines are only like 15 bytes to call instead of having to include a 200 byte subroutine.
by the way, the image is 192 x 134... is that intentional?
-
Yes rect and rectI() are both used, including line() and all the pixel/sprite commands. As for the size, D: i'll upload a new version really quick
-
Yes rect and rectI() are both used, including line() and all the pixel/sprite commands. As for the size, D: i'll upload a new version really quick
unless you plan on having a title screen that can scroll an amazing..... three pixels!
-
Haha negative :P
-
wouldn't that be three screens?
-
Hmm? In what way?
-
can the screen be assumed cleared?
-
Sure
-
Does the DrawInv routine already exist?
-
Nope
-
RotCC/RotC?
-
Nope
-
The tricky part of this is trying to compress it in a way that the size of the code itself doesn't offset the amount of data saved, because not much data is being compressed.
But I got 608 bytes. Storing the data as a raw picture and putting it onto the screen and buffer would take 777 bytes. If anyone gets any better, let me (and Builderboy) know.
EDIT: 606 bytes.
EDIT 2: 605 bytes.
EDIT 3: 602 bytes. I think this is as small as I'm going to get it, so I'm attaching what I have. I included two versions because, although the second is 2 bytes larger than the first, you might consider it better. Whereas the second one updates the screen all at once, the first one updates the screen 4 times throughout the process due to the Bitmap() calls drawing directly to the screen. This slight delay isn't very noticable, but I figure I'll just give you both options.
-
Yeah, i know what you mean runner, i couldn't get much better numbers than those. I might just end up storing the whole thing to one big buffer :/
-
Although not a terribly large saving, you may as well use what I've been working on and save yourself about 170 bytes.
-
True ^^ although i'll wait to see if nemo can best you :P
-
i doubt it, i'm having issues with my program. too much java, clearly.
-
I attatched my solution (602 bytes) to my original post (http://ourl.ca/8230/151102) saying that I had completed it.
-
wouldn't that be three screens?
Nah, he just zoomed the image so it's easier to look at on forums. On calc it will be 96x64. :P
Also Nice runer! Not a huge size gain but still a size gain. How fast does it decompress? In addition to that you're close to 666 posts. :P
-
Wait for me! I wanna compress it!
-
Haha okay good Sir
-
Okay, so I have a few questions. The Y and the A in your menu text (maybe the X too?) are not the same as the TIOS font, but everything else is. Can we change it? Also, can we use inline asm?
I think I can shrink this sucker down to size ;)
-
I noticed that about the font too, but I didn't change it because that would be cheating. :P
Also, I purposely avoided inline because that would be cheating too. :P
(Unless Builderboy specifies otherwise)
-
You can use the Ti-OS font ^^ but i'd like it all to be pure Axe :)
-
Great, pure Axe it is, and the TIOS font I shall use :)
-
In which case the size to beat is 586 bytes. ;)
(Remarks distinguishing the two versions I attached can be found on the bottom of the first page)
EDIT: I just realized that I had previously added comments with the size of the code, but I hadn't updated it. So ignore all the comments that declare a size of 608 bytes.
-
Cool :D I wonder how small this can get...
-
Okay, with no reliable way of transferring files from my calc, I can't really do this effectively. Nevermind, then :(
-
Sorry to hear. :(
By the way I hear you saying you have no way to send files to your calc more and more often lately. I might have forgotten, but is it because you lost your link cable or is it because your parents became even more strict on what you can do on your computer?
-
No, it's because I don't have admin access, and TI-Connect doesn't work without it. I've been playing around with it to try and fix the problem.
-
Aw thats too bad, well it looks like i'll be using Runner's screen then :D
-
How long will this contest be open? I had a good compression idea, but I'm too busy to work on it until this Sunday.
-
No, it's because I don't have admin access, and TI-Connect doesn't work without it. I've been playing around with it to try and fix the problem.
Ah, right, I see now. X.x
-
How long will this contest be open? I had a good compression idea, but I'm too busy to work on it until this Sunday.
Until the release of PortalX
-
This long? O.O Won't you need the title screen at one point, though? Or is the code really easy to replace?
-
It should be easy to replace, so i'm just using the plain 768 bytes and replacing it near the end
-
Ah ok, thanks for the info :)
-
So by l6 do you mean the list l6, or is it an axe variable? Sorry, I'm an axe n00b.
-
L6 is neither a List nor a variable, its whats known as a pointer. What it does is 'points' to the location of the screen buffer. What this means is that it gives you the location of start of the screen buffer in RAM. In reality, L6 is just a number, just as the start address to the screen buffer is just a number
-
I assume it is supposed to be made procedurally? I think I can sqeeuze it quite a bit but I am not sure...
-
It can be made any way you like as long as its smaller XD