This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - Quigibo
Pages: 1 ... 70 71 [72] 73 74 ... 135
1066
« on: July 13, 2010, 09:30:54 pm »
No, currently a 3 level grayscale sprite is drawn like this: 00 = White 01 = Gray 10 = Black 11 = Black
and there is no way to do transparency without adding an extra sprite layer.
1067
« on: July 13, 2010, 09:25:21 pm »
Here is the fruit sprite in Pyoro.
Layer 1 is 0 and Layer 2 is 0: Transparent, these pixels will be ignored when the sprite is drawn. Layer 1 is 0 and Layer 2 is 1: A white pixel will be drawn here. Layer 1 is 1 and Layer 2 is 0: A gray pixel will be drawn here. Layer 1 is 1 and Layer 2 is 1: A black pixel will be drawn here.
Layer 1: 01110000 10001110 11100001 00010101 00111011 01101000 01111000 00110000 Layer 2: 01110000 11111110 11111111 00011111 00111011 01111000 01111000 00110000
1068
« on: July 13, 2010, 09:11:16 pm »
@DJ, no you are being clear, I think it is me who is not being clear. In the example you posted, if someone wants to format their data like that then that's their decision (although kind of a stupid one given you can get much higher efficiencies with your own formats). My point was that you can't ban certain data layouts just because they resemble BASIC. Sprite rotation is actually much trickier than flipping, those are both on the wishlist already. Something I was wondering though, would anyone be interested in specialty sprite routines? Sprite routines which are designed for very specific applications. Some ideas I had were: - 3 level grayscale compact masking for 8x8 sprites. I used this in Pyoro, it basically allows you to use the unused bit combination as an extra transparency layer so you can have automatic grayscale masking without needing an extra mask layer. 00=transparent 01=white 10=gray 11=black
- 16x16 aligned sprite drawing. Its a super fast and small way to draw 16x16 sprites when they're aligned horizontally and also using a more convenient array for the sprite data than trying to make 4 8x8 sprites.
- Unclipped unsafe 8x8 sprite drawing. Speeds up sprite drawing significantly for sprites that are always drawn completely on-screen for applications where speed really matters. But it would crash/corrupt data for sprites drawn partly or fully off-screen
Would anyone be interested in any of these? I would probably use the Plot1() - Plot3() tokens.
1069
« on: July 13, 2010, 08:47:51 pm »
Its a bug that doesn't allow you to have the last line of code be a command which can possibly use the r modifier, you have to add an extra [Enter] at the end. I've already fixed it, but it won't be updated until 0.4.0
Nice job DJ! I think I can optimize it a little though:
StoreGDB For(Z,0,31) Exch(Z*12+L6,L6+756-(Z*12),12) End DispGraph
That way it doesn't need the back buffer.
1070
« on: July 13, 2010, 05:43:11 pm »
DJ, I'm confused. How would you be able to tell if a BASIC variable was created in Axe or not? For instance, my music generator creates a BASIC program that can be imported into Axe but suppose someone ran out of room so just left that program in memory and read it from the main program to play the music. That would be non-Axe generated file but definitely Axe compatible. Or what if you typed your data file in the TI-BASIC editor and it had a similar format to TI-BASIC for whatever reason? That would have to be allowed since its data.
The main problem with this is that Axe can generate ANY file with ANY combination of characters inside so technically all files are "Axe Created" and everyone will claim that they are. It is extremely easy since you can just fill the Data() command with all the tokens you need and then Copy() them into the program. I think what you're worried about most is that people will find a way to make a BASIC hybrid program somehow. But let me reassure you this is impossible due to rule #1 since Axe will not support any commands to run BASIC programs or Assembly programs during the duration of the contest (other than the Asm() command which is forbidden).
1071
« on: July 13, 2010, 05:17:16 pm »
Ah, if only i had a better calc to try this on. Mine is an H from the K factory (or possibly vise versa). What was the asm code you used in case anyone else wants to try it?
1072
« on: July 13, 2010, 05:58:35 am »
Yeah I'm not sure what DJ is talking about. Especially for large games, it will become impossible to keep all the data in a single program and it would be silly to have to package data in other axe programs just so they can be extracted. Unless he is referring specifically to the BASIC language and not to the BASIC variables themselves which I think is what he is referring to but I'm not sure what the rules are about external data and if there are limits or not so please correct me if I'm wrong. Its possible that external data might be forbidden, that is, entries must be a single program.
EDIT: Actually, after re-reading the rules, I think its pretty clear that you are allowed to use them as long as they're not being executed or interpreted by the OS. So I think DJ just misspoke.
I might be able to do the increments in the for loops. I will see if I can get them optimized enough.
1073
« on: July 13, 2010, 02:07:02 am »
Deep Thought, you're exactly correct. The only thing I might add to that, because its a new feature, is that not all OS Pic variables are created equal. The ones that are made using StorePic are 756 bytes yes, but many pic vars made on the computer are actually 768 bytes since they can edit the last row and so the amount of data it imports will depend on the picture itself.
As for 0.4.0 features, there will be some small GUI changes probably, I'll try to check off some of those wishlist features, and hopefully there will be some more optimizations to make the code smaller possibly involving a third pass.
1074
« on: July 12, 2010, 04:47:11 pm »
EDIT: calcdude, it appears to be another "end of line" bug. Just make sure you add an extra enter to the end of the program and it should work fine. I'm fixing that now.
Yeah, DJ is mostly right. But a pause 9000 is still a pause 9000. The thing is, it pauses a little first, then subtracts 1 before checking if its done pausing so a pause 0 is actually a pause 65536, which is even longer than a pause 65535. This is only done for size optimization (obviously not speed since this is a pause command).
1075
« on: July 12, 2010, 07:00:21 am »
Buckeye, is that trick to use bcall() instead of bjump() always safe to use? And does that also work with bjump(_Mon)?
1076
« on: July 12, 2010, 06:51:05 am »
Its pretty interesting actually. Let me explain using decimal and then you can extrapolate to hexadecimal.
So say you have two 4 digit numbers, always positive. If you do a multiplication, what is the largest number you can possibly get? Well, that's simple to find:
9999 x 9999 = 99980001
Notice how we end up with an 8 digit number. Since our variables can only hold 4 digit numbers, like the input, we have to decide which 4 digits to keep and which ones to throw away. We have now have 3 methods to choose (only the underlined part is kept):
9999 * 9999 = 99980001 9999 ** 9999 = 99980001 9999 *^ 9999 = 99980001
There is a little more to ** when you have negative numbers because its signed instead of unsigned, but this is basically how all of these commands works. Don't forget, you won't get these answers on the calculator because my examples are in base 10 for demonstration.
1077
« on: July 12, 2010, 03:16:48 am »
Sorry about the typos in the commands list, I'll fix it next update.
@Builderboy, yeah, its really easy to get 4 lvl gs for the fractal using mod 3, I had it originally, but i thought it was overkill.
1078
« on: July 12, 2010, 12:45:20 am »
First of all, matthias1992 I can tell you're new to assembly. The .org is an organization command that keeps track of what to make the jumps, calls, and labels. If you had .org $9D95 and in your code you were jumping to a label which was $20 bytes past your .org statement, the assembler would know to make the jump address at $9D95 + $20 = $9DB5. The .org statement itself does not contribute anything to the code, rather it is a command to tell the assembler what to add for each label. I don't know what compiler you are using, but at this point in time, computer compilers are the only reliable way to compile assembly language programs. However there are some promising projects in the works.
DJ, quasi_Phthalo was referring to the example code matthias1992 posted which would be like in BASIC: Lbl A:While 1:GotoA:End which just causes a stack overflow and crash. There isn't really any exploit you would use this for so he is right in questioning his intentions. I think he just misunderstood that this is just some example code to help explain what he is talking about and not an actual program.
1079
« on: July 11, 2010, 10:51:23 pm »
No, most likely I was just sloppy about my DirectX coding. Its probably relying on some dll file that I had to manually download, but I have no idea what it would be. Either that or its relying on some VS files or something.
1080
« on: July 11, 2010, 05:51:59 pm »
Out of curiosity, why was the "Forum Users Online In The Last 30 Minutes" bar moved to the top of the page instead of the bottom. I'm used to seeing it on the bottom in most forums I visit and I kinda liked it there. I have it minimized now so I can see the new posts at the top of the page.
Pages: 1 ... 70 71 [72] 73 74 ... 135
|