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

Pages: 1 ... 107 108 [109] 110 111 ... 135
1621
The Axe Parser Project / Re: Bug Reports
« on: April 26, 2010, 11:00:33 pm »
No, the random number generator uses 3 levels of random.  First it uses a seed.  Then it reads a whatever memory location that seed points to and integrates that into the number, then it checks the "r" register which is kind of like a timer and adds that to the mix.  So seeding is rather pointless.

But yes, you can retrieve the last random number generated like this: {L1-2}r

1622
The Axe Parser Project / Re: Bug Reports
« on: April 26, 2010, 10:37:24 pm »
ZOMG!  That was such a lame mistake.  I forgot to update the fact that the "L1" free RAM is now 2 addresses down.  So {L1} and {L1+1} were actually pointing to the random number seed lol!  That made it randomly change the explosion byte for the first ship to think that its exploding.

Strangely, I just so happened to notice another bug that sometimes doesn't let you parse comments when there are user variables in the comment.  Fixed that too.

I'll edit the update shortly to correct these.  Thanks so much for pointing this out!

1623
The Axe Parser Project / Re: The Axe Pages
« on: April 26, 2010, 05:54:57 pm »
Use this for now, I'll put a copy of it in the next update, which might be tonight since I think I may have a serious bug that needs fixing.  Nothing new in the update and not a separate version, just a fix to the previous.


The numbering actually kind of makes sense in hexadecimal, but in base 10, the numbering system seems kind of random.

1624
The Axe Parser Project / Re: Bug Reports
« on: April 26, 2010, 02:10:50 pm »
I just tested the old version before I made some changes to the source and they both are doing the same thing, so it must be something with either a command or the way the parser compiles the code.  The only command I changed was the pixel drawing which isn't used anywhere except for drawing the stars, but I can't rule that out as a possibility.  I'll have to do some disassembly to figure out what the problem is.

1625
The Axe Parser Project / Re: Bug Reports
« on: April 26, 2010, 01:57:19 pm »
Uh oh. :( That's really weird.  I'll go fix that, I must have changed something by mistake...

1626
The Axe Parser Project / Re: Features Wishlist
« on: April 26, 2010, 02:01:35 am »
Yeah, that's actually exactly what I'm planning.  That's how the MOS routine works, so that would make the routines compatible.

1627
The Axe Parser Project / Re: Axe Parser
« on: April 25, 2010, 11:13:02 pm »
its 6 bytes per program, not six bytes per call correct?  Or else that would be very significant :P yayyyy line routine!  This is one i have been waiting for a while, glad its finally in :) and signed division yaayyyyy!  Haha now to go through and re-optimise some of the code i have ;D
Yes, for the entire program.  Glad you like the update :)

1628
The Axe Parser Project / Re: ASM Routines - Source Code
« on: April 25, 2010, 10:45:50 pm »
These routines might actually need some optimizing.  I couldn't find an algorithm for signed division anywhere on the internet, so I had to do it the really bulky/lazy way with taking the absolute value and then adding the sign at the end.  The line drawing I just translated the pseudo-code from Wikipedia directly into assembly, but there might be a better way for that as well.

1629
The Axe Parser Project / Re: Axe Parser
« on: April 25, 2010, 06:42:52 pm »
Hope everyone likes the new update!

I had a bad experience when I accidentally did drawing off-screen.  I couldn't get the calculator to ram clear and removing the batteries wasn't helping either.  I had to actually unscrew the case and remove the little button cell battery to unfreeze the calc.  Anyway, I don't want that to happen to anybody else, so I added a little check when drawing pixels.  Its only 6 more bytes total and any slowdown is negligible compared to the entire routine.  It also allows you to clip lines off the right and bottom sides of the screen if they overextend.

1630
The Axe Parser Project / Re: Latest Updates (***DO NOT POST HERE!***)
« on: April 25, 2010, 06:37:34 pm »
Axe Parser
Beta 0.2.1



New Features:
  • Line command
  • Counter statement
  • Signed division
  • Use theta as a variable
  • Lowercase toggle built into parser
  • Error message list added to doc

Changed:
  • Pixel drawing and line drawing are now safe.  They won't corrupt ram when drawn off screen.
  • The free RAM in L1 has shrunk by 2 bytes (becasue theta needs those).
  • Fixed a bugs that made some negative constants unoptimized.

My attempt at 3d:

1631
The Axe Parser Project / Re: The Axe Pages
« on: April 25, 2010, 02:37:30 pm »
WOW how did I miss that... I forgot I moved it to the end, thanks.

1632
The Axe Parser Project / Re: The Axe Pages
« on: April 25, 2010, 02:32:43 pm »
Yeah, I fixed that already.  Another thing I noticed is that I refer to  an "Error Table" for error messages, but I forgot to write that.  :-[

1633
The Axe Parser Project / Re: Axe Parser
« on: April 25, 2010, 01:48:09 am »
It should be as long as all the data is one after the other, but be careful with the size counting!  I think the limit to program sizes is 16k though or something just becasue of the way the RAM is works.  What are you doing that uses that much memory?  Is it picture files or something?  And how is the parser working by the way, I haven't actually tried it with that much data before.

EDIT: As for individual levels at a time, there really isn't an easy way to do that.  You could split the level data into more than one appvar maybe.  Also, you can get more room in the ram if you have the program archive itself at the start (doesn't affect the copy of the program that is actually running).

1634
The Axe Parser Project / Re: Axe Parser
« on: April 25, 2010, 01:31:00 am »
Sure, lets say you have 10 blocks of data:

[Data Block 0]->Str0
[Data Block 1]
[Data Block 2]
...
[Data Block 9]

You then make an array with the cumulative sizes for each block like this:

dList(0,size of block 0,total size of blocks 0 to 1,total size of blocks 0 to 2, ... )->GDB1

These should all be 2 byte numbers so end them all with the "r" modifier.

Now, lets say you want the pointer to the Nth block of data, you can get it by doing:

Str0+{N*2+GDB1}r

So if you want the 3rd byte of the 4th block of data, you could do:

{2+Str0+{6+GDB1}r}

1635
I think the hardest part of learning asm is the shift in paradigm.  In my opinion, someone with very little programming background will be able to learn the language and understand it better initially than someone who has exclusively programmed in higher level languages their whole lives.  I remember the concept of flags, registers, unsigned arithmetic, bit shifting, etc.  seemed so foreign to me when I was first learning.  You never cover that stuff in high level.  In my head I kept trying to make my code look and feel like the languages I was used to so then it would all be simple and I could just naturally pick it up.  But you can't do that, its impossible.  You miss all the concepts that are absolutely essential to do all the low level tasks which is the whole point.

You have to start with a very open mind.  Your knowledge of how to ride a bike isn't going to help you much when you're trying to fly a helicopter.  It took me about a whole summer to get the hang of it and it was almost a year before I could write a game with it.

Can you explain that?  Are you saying I should not talk to people with the idea of Ti-Basic, assuming that they know that language?  Otherwise, what do you mean?

Yeah that's the general suggestion I'm making.  It wasn't in response to the lesson you posted, I haven't read it yet, I was just giving my personal experience.

Pages: 1 ... 107 108 [109] 110 111 ... 135