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

Pages: 1 ... 21 22 [23] 24
331
Axe / Re: How do I use calcnet for Axe?
« on: January 14, 2011, 11:26:46 pm »
Insofar as I can tell, using calcnet seems to be fairly simple - a certain amount of RAM is allocated for data, and there are about 4 commands I can use to send/recieve data.  However, I have no idea on the specifics, and the nature of the sending-of-data.
So out of curiosity...

1] Which area of RAM can I store data to?  (I think it's L1?)
2] How do I instruct my calculator to send/recieve data?
3] When sending data, how exactly does it work?  Does it take the contents of my buffer and update every other buffer to match mine, or what?
4] Is there a way to use Calcnet without having to require/bundle DoorsCS 7.1 with each program?
5] Could somebody provide a simple example of an Axe program using Calcnet?
6] How do I simulate linking two calculators in wabbitemu?
7] How is Calcnet spelled?  Is it 'calcnet', or 'CalcNet', or 'Calcnet', etc...
1) About the first 600 bytes of L1 are used by CALCnet2.2, so if you want to store data, you must store to the end of L1, to L3 (abandoning grayscale, L4 (abandoning archiving), or an appvar in user memory (this is actually what I do in Eitrix, which is being developed here).
2) Read the CALCnet whitepaper on cemetech.net. Sending basically is storing bytes in certain locations in a certain order. Recieving happens automatically, and you only have to check the recieve buffer, do what you want with it, and then clear it. The CALCnet interrupt takes care of the rest.
3) CALCnet uses point-to-point sending. Each calculator has a unique 3-byte address based on its serial number. When you send data, you store where you want it to go, and it will get there in less than a tenth of a second if everything is working right. You would store 0 to the address to send the message to everyone (this is how you would send your ID), and use AAAAAA to connect to a router that connects to the Internet.
4) Sadly, you do need DoorsCS, unless you can somewhow embed the libraries into your program. Someone with influence at Cemetech could convince Kerm to make a smaller version with some of the features removed (such as the BASIC libs).
6) I don't know about wabbitemu, but Tilem 0.992 (the emulator I use) supports libticables, which allows an instance of the emulator to set a virtual link cable for linking together two calculators. You can also use this to link with a real cable (except for TI-84 Plus Directlink) which you could modify or couple to link with more than one calculator (although I don't know how good that is for your computer).
7) The first time you use it, you write CALCnet2.2. Thereafter, you can write CALCnet.

CALCnet is essential when you are sending a lot of data or linking more than one calculator (through simply splicing link cables together). Other than that, you should use Axe's linking functionality.

332
Axe / Re: How do I use calcnet for Axe?
« on: January 14, 2011, 02:44:29 pm »
Using CALCnet is actually very important for having 3+ player games. It basically works with every calculator having a 3-byte address. When you send data to someone else, you store the address first, then the packet contents, then the size of the packet contents, in that order. Once you do that, the interrupt routine will simply send the information byte by byte to the target's recieve buffer. Look up the CALCnet2.2 whitepaper on cemetech.net.

333
TI Z80 / Re: Eitrix for TI-84 Plus
« on: January 14, 2011, 02:41:23 pm »
Hey guys! I have a new version of Eitrix: 0.3.1!

The big new thing is Attacks: effects that mess up your block configurations. Every frame, there is a 1 in 256 chance that you will recieve an Attack on your screen.

However, the real reason that I wanted to post now is that I wanted to get some optimizations before I added CALCnet2.2. These are the things that need fixed:
- The game becomes incredibly slow when more blocks are added to the grid
- The title screen does not like to show up when compiled with Axe 0.4.7
- The game freezes when run with Doors CS 7.1

Please look at this code and tell me what you find!

EDIT: I just made a change to the game code that made the game a whole heck-of-a-lot faster. It uses an appvar to keep a rendered copy of the grid, and the grid is only rerendered when it is changed. This makes the game that much faster (except when specials are active). I'll post this update soon, after I fix the key timers to be more sane.

334
TI Z80 / Re: [Mini-Project] Axe TRON
« on: January 14, 2011, 10:41:57 am »
I think an Axiom for Calcnet could be written. That would be cool.
CALCnet2.2 is actually very easy to use. It works by modifying memory addresses in a certain order and calling four different subroutines, using Asm(CD####) (where #### is the Hex for the subroutine - thank you, Eeems). I don't know the addresses of the subroutines themselves, but you can get details on them on the CALCnet Whitepaper: (http://www.cemetech.net/projects/techreports/tech004_calcnet22.pdf)

I have actually never played a tron game :P so i am not 100% sure about everything you said.

Tank: are you saying like tanks from Wii Play?
Disk fighting: could you describe that for me?
One thing that I meant was that players would have Files that would be worth a certain amount of points, and players would play the games in order to steal or defend the files.
The tank game is having several tanks that in a maze, firing from a 360-degree rotating turret, shooting at other tanks and flying machines. It is kind of like Tanks from Wii Play, but without the bombs.
Disk fighting is where two players stand on platforms made from concentric rings and ricochet Frizbee-like disks off walls in an attempt to hit the other player. You are allowed to deflect the disks thrown at you with your own disk.
The best reference to make a true Tron game is to watch the 1982 movie.

335
TI Z80 / Re: [Mini-Project] Axe TRON
« on: January 11, 2011, 10:35:53 am »
I can't download the program myself, but I think that it would be cool to interface this game with CALCnet2.2 on DoorsCS, if you are an advocate of that. Four player (or eight player) Lightcycle would be awesome, and it would also be cool with the tank and disc fighting mode.

One thing that I've always wanted to do for a Tron game is where every calculator is a User, and a User could have multiple Programs, which you send on raids to steal files from other Users, which are worth points. Users would use their Game Grid games to defend their files (e.g. you have to play Lightcycle to get that government intelligence, for example).

336
TI Z80 / Re: Eitrix for TI-84 Plus
« on: January 09, 2011, 01:09:24 am »
Scanning the keys yourself is actually much faster than GetCSC.  But obviously scanning all the keys is always going to be slower than scanning a single key.

Code: [Select]
:Lbl KEY
:For(A,1,56)
:ReturnIf getkey(A)
:End
:Return 0

Calling this subroutine will give A the value of the current key being pressed or 0 if nothing is pressed.

Oh, and the actual slowdown for variable key detection is so small compared to Dispgraph or sprite drawing that I would consider it negligible.  It isn't much bigger either since it only needs to add the subroutine to the program once.

This is actually useful stuff, Quigibo. But the reason I was asking about this is because I use the getKey(XX) method to get the key input for the player (download the game and look). I wanted to know if I could still do that, and apparently I can. You (somewhat indirectly) answered my question. This is cool code, anyway. Thanks, Quigibo!

EDIT: Yes, and I do plan to use custom keys for the game, eventually. I know that people have different opinions about what keys should drop and what keys should rotate (I've seen several games where UP drops, and some games where UP rotates). I personally prefer UP as my drop key, but I know that other people think differently, so I'll allow players to redefine their keys.

337
TI Z80 / Re: Eitrix for TI-84 Plus
« on: January 06, 2011, 12:02:46 pm »
call ** == $CD
Just put that hex in the program followed by the hex equate of the subroutine so:
[shameless plug] http://future_history.freehostia.com/Files/Resources/program%20readmes/Axe/Commands.htm#Sym [/shameless plug]
Code: [Select]
...code...
Asm(CD####)
...code...
I believe this works.
Thank you, Eeems. I'll remember that, and I'll be forever greatful.

One thing I also read in the whitepaper is since CALCnet2.2 uses interrupts, it does not like GetCSC as a scan code, instead providing its own subroutine for getting keys. However, the keys are debounced, which is probably not what I want. What method does Axe use for the direct Getkey method (getkey(XX))? If it uses GetCSC, how would I read the input directly?

Oh - and I also read the Axe documentation and noticed that the direct getkey command had been changed so that it could use a variable and not just a constant. If, of course, this doesn't mean it's using GetCSC, I could let players remap the keys to whatever they want. How does that sound?

338
TI Z80 / Re: Eitrix for TI-84 Plus
« on: January 05, 2011, 10:29:31 am »
Hey people, sorry I haven't posted in a while...

I'm not posting a new version because it's not ready yet, but I've made the following changes so far...
- Up rotates and Alpha drops
- The game engine has been reassimilated into the main source
- You will randomly be hit by an Attack Special

These are the changes I'm going to make before I release again:
- You will eventually be able to send Attack specials to your opponents over link (using Axe's protocol for now)
- A menu on the title screen will let you choose between Single and Multiplayer

Also, since the new version of Axe came out, I can now start interfacing with Calcnet 2.2. I know that there are four subroutines that need to be called (StartCalcNet, StopCalcNet, ClearSendBuffer, and ClearRecieveBuffer). I downloaded the whitepaper and can figure out the address equates, but could someone please tell me how to call a subroutine with an absolute address in Axe? Thanks.

Oh, and BTW, several times when I ran the game in Doors CS, my calc froze. Can anyone help me figure out why?

339
TI Z80 / Re: Eitrix for TI-84 Plus
« on: December 25, 2010, 08:47:15 pm »
Merry Christmas, everyone!

I have a nice Christmas present for all of you: Eitrix version 0.3! This new version contains Special Blocks, blocks with special powers that are activated when they are cleared. It's all in the readme.

And also, is there a more appropriate place to put this topic? I know that there is a Calc Projects board somewhere, and I think that that board would be a better place to move this. What do you think?

340
Introduce Yourself! / Re: Say Hello to Compynerd255!
« on: December 25, 2010, 08:36:22 pm »
As for autism some family members does have the asperget syndrome form of it. I wouldn't be surprised if I actually had it to a minimal level, too, since I have troubles communicating with other people sometimes.
Actually, everyone has autism to some degree. It's just that people who are labeled as autistic are more autistic than the rest of the world.

Are you an axe programmer, ti-basic programmer, or asm programmer?  (for calc.)
I'm mainly an Axe programmer. I used to do TI-Basic until Axe came out and I saw what awesome power it had. However, I still write in TI-Basic when I'm writing math programs. As for ASM, that's pretty much out of the question. I don't have the time or inclination to learn it.

341
Introduce Yourself! / Re: Say Hello to Compynerd255!
« on: December 24, 2010, 05:38:06 pm »
Thank you so much for the peanuts. You have some creative skills. I wish I had a sack of peanuts to contribute.

342
TI Z80 / Re: Eitrix for TI-84 Plus
« on: December 24, 2010, 05:30:20 pm »
Hey, I just posted a new poll. I was thinking about that empty Score display and wondered just how many people care about score and how else I could use my screen real estate. Thank you for voting!

EDIT: Also, I wanted to mention that we are also developing an XBox and PC version of this game. It is also called Eitrix, and is available at http://betafreak.com/betafreak/Games/Eitrix/index.aspx . That game also has another discussion forum, which is linked to on my Betafreak site. (Betafreak is my company name)

343
TI Z80 / Re: Eitrix for TI-84 Plus
« on: December 24, 2010, 11:10:02 am »
Actually, this isn't my first Axe game. I've coded several games before, and my first Axe game was a simple zombie shooter that can be found on ticalc.org (Axe Zombie). I used Paint to make the cool title screen for that game, and I will probably use it again to revamp the HUD picture.

Thanks for your feedback, everyone! And that's really good news that I will be able to move A-Z around. And thanks for that screenshot, ScoutDavid.

344
The Axe Parser Project / Re: Features Wishlist
« on: December 24, 2010, 12:48:18 am »

And objects, or course ;)

Hopefully not. I don't like OOP.
I actually love OOP, but it's not for Axe. Maybe another language altogether.

There are languages that can be OOP, but not fully OOP, like Python.

Not to break the DispGraph:ClrDraw feature discussion all of a sudden. I think it does sound cool.

You know, you could actually do something like OOP very easily in something like Axe. Since I am a C# programmer, I think in objects a lot, and find myself using idioms for multidimensional arrays ({I*3+2+L1} or whatnot) to reference objects. This is my idea of how it could be implemented:

- Somewhere in your code (such as in a library) you write this:
 Class(NME
 Var(X,2)
 Var(Y,2)
 Var(S,8)
 End
This creates a class called NME with a 2-byte X, a 2-byte Y, and an 8-byte S

- Then, somewhere else in your code, you write this:
 Instance(NME, JOE, L1
This will tell Axe that you want an instance of NME named JOE at L1

- Then you can do things with the object:
"JOE(X)" returns the value of JOE's X
"3->JOE(X)" stores the value into JOE's X
"Pt-On(JOE(X),JOE(Y),JOE(S)<degree symbol>)" will draw JOE to the screen.

- You might even want subroutines inside the object itself that omit the JOE( part, so you can simply call JOE's version of the subroutine to have JOE preform operations on himself.

But you can do what you want. I just think that OOP would be really cool.

345
Axe / Re: Full Normal Slow?
« on: December 24, 2010, 12:34:39 am »
I think that the best way to make a game slower is to embellish it. If you have a lot of processor power, don't waste it with Pause commands or whatnot. Make your game look better. Put in some nice looking grayscale or something!

But yes, if you are looking to save power, then I don't know how to help you. I don't think it can be done, unless you want to lower the contrast on the calc automatically (that should lower power consumption). The battery life on those things lasts for about a year anyway. AAA batteries aren't that expensive.

Pages: 1 ... 21 22 [23] 24