Show Posts

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 - squidgetx

Pages: 1 ... 54 55 [56] 57 58 ... 123
826
Official Contest / Re: Storm #1: BASIC Game in 30 days
« on: February 15, 2011, 06:00:46 pm »
ZaDoth:

Game concept/originality: Great concept 9/10
Ease of use: 5/10 Although speed was good, in several places key presses did not respond at all, which basically led to me dying. Additionally, I couldn't quite figure out TNT. Also when you died you had to press right or something to properly restart which was annoying...
Graphics: ASCII is acceptable by BASIC standards: 7.5/10
Overall: 21.5/30: Interesting puzzle/reflex concept that had me excited as I started the game. Unfortunately some buggy gameplay sort of ruined it. This would be amazing if ported to Axe with a scrolling map :o

FMA:
Game concept/originality: It's an RPG, plus I love FMA 9/10
Ease of use: 3/10 I couldn't get this to work at all :(. Wabbit would give me ERR UNDEFINED's since Windows can't extract the statvar-pics properly, and I couldn't get enough RAM free on real hardware. Other bugs people have reported in addition to the slow rendering times seen in the screenies have also influenced this rating.
Graphics: 9.5/10 amazing!!! Only reason it's not 10/10 is because of the slow char render times...
Overall: 21.5/30: It probably would have been epic if I had less programs taking up VAT space in my calculator...

So...I guess it's a tie then for me. :P I actually didn't plan that at all. Great. Now I have to actually decide....

827
TI Z80 / Re: Tio
« on: February 15, 2011, 05:18:28 pm »
I didn't take too close of a look at your code, but here is what I can suggest:

In SandLand, the way I moved from not-scrolling to scrolling was actually very simple. What I did was simply use the player's X and Y as offsets to figure out by how much to shift the tilemapper's window, and draw the character in the same place the whole time. Here is the tilemapping code...(unoptimized for readability, and btw these are 8x8 tiles)
Code: [Select]
For(A,0,12)  //For 13 columns...
For(B,0,8)    //For 9 rows...
{Y/8          //Take the Y position, divide by 8 to get the tile offset
-4           //But the character is in the middle of the screen, so -4 tiles worth
+B*32     //Add tilemapper's Y value, then multiply by 32 because that's how many tiles wide my maps are
+(X/8+A)-6 //Same as before but with X
+L1}->C  //Level data is stored in L1
Pt-On(A*8-(X^8),B*8-(Y^8),C-1*8+Pic1 //X^8 and Y^8 are the pixel offsets of the player
End
End
End

828
Ash: Phoenix / Re: Ash: Phoenix
« on: February 15, 2011, 05:06:23 pm »
Yeah, Shmibs said some of them were from Zelda.

Today I optimized off 140 bytes off the app :o and worked more on the map editor: among other things, the tile editor now displays 4 of the tiles you are editing so I can judge whether or not it looks good in a repeating pattern :)

829
Axe / Re: Bit issues
« on: February 15, 2011, 07:23:37 am »
Code: [Select]
W=60
H=50
.W=Width of map, H=Height of map, A=Start of appvar (returned from getcalc)
sub(BIT,Y*W+(X^8),Y*W+(X/8)+A,°U
.Bitnum, Address, Where to store the result of the test
.Code
Lbl BIT
{r2}er1->{r3}r
Return

830
Axe / Re: Axe Q&A
« on: February 15, 2011, 07:22:17 am »
Code: [Select]
If A
stuff
Else
!If B
stuff
End
End
is the same as
Code: [Select]
If A
stuff
Else!If B
stuff
End

EndIf does what it sounds like...it Ends the loop If condition is true. Like ReturnIf, but for loops instead of subroutines.

831
TI Z80 / Re: Tio
« on: February 15, 2011, 07:15:37 am »
The plain grey ones kill you instantly :D. The thing that's really cool about them is that they actually aren't grey, they're really a 2 frame animated checkerboard tile! That's really a pretty cool way to do it, Darl, props. Also, when I post it tells me that the max number of attachments is 50 :o

Anyway. Yeah, so if you look at the code, it's basically an optimized version of
Code: [Select]
Y/4*24+(X/4)+L1->G
Y/4*24+(X+3/4)+L1->F
Basically what it does, is it reduces your pixel coordinates to tile coordinates (the divide by 4). The Y value is multiplied by 24 because that's how wide the map is (It's now treated as a simple array). I use two values to check which tile the left and right side of the character is in. And now you can add or subtract from F and G to get different tiles; eg {F+24} is like adding one row's worth, and hence one tile down.

inData is a smaller way of doing If var=something or (var=something else) I believe the line reads If inData({F}+1,[040600])? So since both values 3 and 5 are respawn points, it checks if the current tile is either 3 or 5. But the data needs to be zero-terminated, which is why I added the +1 there. (and then scaled up the appropriate values)

832
Ash: Phoenix / Re: Ash: Phoenix
« on: February 14, 2011, 07:41:05 pm »
Yeah, I'm working on some different water tiles too (for the forest set).
Map switching works as follows:
1) Check if tile you are standing on is value 3 or 4 (warp tile)
2) Go through a predefined 20x5 array. The first 2 bytes of each entry are the position of the tile. Check for any matches.
3) If we get a match, the 3rd byte is the map to switch to and the next 2 bytes are the X and Y output.
  4) Load these 3 bytes into current map and current X,Y
5) If no match, load the last area and x/y coords that you had warped from. (pretty much all the warp tiles in the houses for example, are not defined and will take you back to where you were before--which was outside the house--when you step on them)
6)Activate fade effect and reload map data

Edit: Also, I thought of a bunch of optimizations that I could do....and also, I'm going to work on compression too, to get down this insane filesize. Does anyone know a good (maybe RLE?) routine for sprites/tiles before I go off and write one myself?

833
Miscellaneous / Re: Valentine's Day
« on: February 14, 2011, 06:49:22 pm »
I liked today ;)

Also, Raylin is leet!

834
The Axe Parser Project / Re: Assembly Programmers - Help Axe Optimize!
« on: February 14, 2011, 07:17:34 am »
Could this possibly be auto-optimized:

pxl-Test(CONST1,CONST2)

to

{CONST2*12+(CONST1/8)+L6}re(CONST1^8) (except ofc the math is all precalculated during parsing time.)? It saves more than 10 bytes and 200 cycles.

835
TI Z80 / Re: TAO: Unleashed (Progress)
« on: February 14, 2011, 07:13:26 am »
Nice progress. Although I must also post to say that I'm lovin the new avatar 8)

836
Ash: Phoenix / Re: Ash: Phoenix
« on: February 14, 2011, 07:10:27 am »
Eyecandy time. Thanks to shmibs for many of the beach and forest tiles :)

837
Ash: Phoenix / Re: [A:P] Demo Release/Discussion
« on: February 13, 2011, 08:34:00 pm »
Reuploaded the file, since it was lost earlier. Also, I guess I'll go back to the old way of inputting your name? (Earlier custom input was ahead in the poll so I went with that, but now arrow keys/2nd is ahead). :P

838
Blaster Master / Re: Blaster Master!
« on: February 13, 2011, 08:31:45 pm »
Sounds cool. Good luck. Unfortunately, I don't really have too much experience with variable length arrays. Didn't your dust toy use one though?

839
Axe / Re: Documentation of the Speed and Size of (Almost) Every Axe Command
« on: February 13, 2011, 08:21:21 pm »
Printer friendly version

840
Axe / Re: The Optimization Compilation
« on: February 13, 2011, 04:29:44 pm »
Pixel Testing

Pixel testing can be a mean and nasty cycle stealer from many programs. But never fear, it can be optimized...a lot. Remember that we have access to the screen buffer in L6.

If you are pixel testing a constant pixel, like pxl-Test(20,20), you can more than halve the speed of this command with the following optimization:
Code: [Select]
{20*12+L6+2}^^r e4 This optimization relies on the fact that the numbers can basically be pre-computed: use the following formula to derive the numbers you should use:
Code: [Select]
{Y*12+L6+(X/8)}e(X^8) So for another example, the command pxl-Test(8,1) becomes {12+L6}e1.

The speed gain from this is so great that you can even still save (although not as much) even with a variable Y value. How you treat the constant X value remains the same as before, but simply substitute in your variable Y value in the above code. So for example, pxl-Test(31,Y) becomes {Y*12+L6+3}e7.

Edit: here are the numbers if anyone wants them
pxl-Test is 53 bytes, ~237 cycles, plus 66 to call. Then we have to load two constants, adding 20 cycles. Let's make a conservative estimate and say 320 cycles.
{} is 14 cycles. Loading a constant into it is 10 cycles. The fastest bit-check is e7 which is 20 cycles, while the slowest is e2 which is 49 cycles. So we're in the range of 44-73 cycles, less than a third of pxl-Test() O.o

For variable Y, pxl-Test(Y,constant) is about 326 cycles. Now, loading a var is 16 cycles, *12 is 52, plus a constant is 21 cycles. The speed of this is 123-152 cycles, still more than twice as fast.

I suspect that variable X and Y with this method is about the same speed as regular pxl-testing.

Pages: 1 ... 54 55 [56] 57 58 ... 123