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 ... 101 102 [103] 104 105 ... 135
1531
Miscellaneous / Re: Immersion
« on: May 13, 2010, 02:15:51 pm »
Also (although unfortunately on the calculator you don't see much of it) the music is a factor that really immerses me into a game as well.  It really sets the mood, often times even more than the backgrounds.  That's one of the reasons I loved Chrono Trigger and Secret of Mana becasue those games had awesome music along with an excellent story line and great graphics.

1532
TI Z80 / Re: Phoenix: Axe Version
« on: May 12, 2010, 11:25:16 pm »
Yeah, this is looking really great so far!  I would recommend making the player move a little faster though since the enemies are able to move twice as fast.  It would also be cool to have speed increases as upgrades.

1533
If you run out of room, you just use some free ram location.  You have to save the current stack pointer somewhere anyway before you can use it, otherwise the calc will crash becasue it can never return back to the operating system.  If you're not taking advantage of the automated push/pop features that are inherent to the stack pointer, then just use a ram location becasue its smaller and faster in ever way.  Trust me, you'll NEVER use the sp register until you get into the really advanced tricks, and even then you're not using it to store numbers, you're using it as a fast way to read or write to ram.

1534
Axe / Re: Turn order based on value in AppVar?
« on: May 12, 2010, 12:04:56 am »
Well, what should the behavior be in the event of a tie?  Just arbitrarily pick one to be more than the other?

1535
That's not something you would ever want to use unless you're seriously abusing the consequences of its normal use, which I only did once when I tried grayscale double buffering.  The sp register is the location of the stack.  If you change it, you will no longer be able to call or return from subroutines, push or pop variables, and some other nasty things.  Not to mention there's a lot of roundabout code you would have to use to even load stuff to or from it.

1536
The Axe Parser Project / Re: Axe Parser
« on: May 11, 2010, 07:08:39 pm »
2 bytes in the source code if you include the colon.  The actual size in the executable is 9 and 3 bytes for Full and Normal respectively.  Full is a little larger because it also returns if the calculator was successful in running 15MHz mode, which is used to distinguish what type of calculator is being used.

1537
Axe / Re: 4 level grayscale with 97 sprites drawn every frame
« on: May 11, 2010, 02:44:03 pm »
Just thought I'd mention I wrote a 4 level grayscale routine today for the next version and it seems to work very nicely.  The only problem is that it needs to be initialized before you can start using it, so you need to add one extra command to the top of your code, but the code itself is tiny.

1538
ASM / Re: Whats wrong with my dividing script? ASM TI 83/84+
« on: May 11, 2010, 01:05:16 pm »
I notice you're doing this a lot:

Code: [Select]
ld A,<some number>
ld B,A

You can load it directly instead.
Code: [Select]
ld B,<some number>
Secondly, you use djnz around a lot of subroutines.  Are you absolutely sure none of those subroutines are using the b register?  Because if any of them are, it will completely screw up the counting for the djnz.  If you use any bcalls in that routine, that also counts becasue bcalls generally mess up all the registers unless it specifically says it does not.

Code: [Select]
tbdn15:
CALL hidemoveshowncount
djnz tbdn15

If you can't avoid getting rid of b from the subroutine, you can save it before calling the subroutine and then restore it after with a push and pop.

Code: [Select]
tbdn15:
PUSH BC
CALL hidemoveshowncount
POP BC
djnz tbdn15

1539
The Axe Parser Project / Re: Axe Parser
« on: May 11, 2010, 12:51:43 pm »
No, a subroutine is negligible unless its called over 9000 times per second.  Typically, the screen updates around 20-60 times a second.

1540
The Axe Parser Project / Re: Axe Parser
« on: May 11, 2010, 12:37:47 pm »
I could have it do that for you, but I'd rather the programmer do it themselves since those making 6MHz games won't want to have the extra size increase for a feature they're not using.

1541
Axe / Re: Key delay help
« on: May 11, 2010, 12:48:17 am »
You can do this:

While getkey(0):End

That works even when you're using direct keys.  It will wait until you've let go of all the keys.

1542
The Axe Parser Project / Re: Axe Parser
« on: May 11, 2010, 12:30:48 am »
I actually switch to 6MHz before grayscale display in Chip's Challenge. It's not an uncommon method.
Alright, that reinforces my thoughts.  If you want 15MHz grayscale, you will have to switch to 6MHz manually to display it.  Even if some new programmer accidentally tries it in the 15MHz mode, it doesn't crash the calc or anything, it just displays funky garbage on the screen, so its not a big deal.

1543
The Axe Parser Project / Re: Axe Parser
« on: May 10, 2010, 08:48:34 pm »
Also, you can use it for general optimizing.

If you check the source of Starship, I was using a bunch of things like this: conj(A-3,B-3,4)
Which I changed to this: conj(A,B,4)r  Since it doesn't have to do extra subtractions.

1544
Axe / Re: MirageOs/Ion issue
« on: May 10, 2010, 05:56:01 pm »
Yes, I do use that flag.  That must be it.  Are there any flags that MOS doesn't use that I can steal?

1545
The Axe Parser Project / Re: Axe Parser
« on: May 10, 2010, 05:54:01 pm »
Quote
I prefer to keep my 15 MHz games cross-compatible, even if it means they run twice slower on older models.
What you can do is this:

prgm15MHZ
:Full
<some code>
:Normal
:DispGraphr
:Full
<more code>

That way it will do all the game calculations in 15MHz mode but still update the graph in 6MHz mode.  The 6MHz and 15MHz DispGraph routines take the same amount of time since they are limited by the same LCD delay in both cases.

One thing about the new update:

Can someone please tell me how the new commands would be used?
More specifically, conj()r and the bitwise "and", "or", and "xor".

This is a good explanation for the bitwise features:
http://en.wikipedia.org/wiki/Bitwise_operation

As for conjr, these are the same:
conj(L1,L6,100)
conj(L1+99,L6+99,100)r
It copies the 99th byte first then the 98th, the 97th, ... to the 0th byte instead of the other way around.

Pages: 1 ... 101 102 [103] 104 105 ... 135