Compynerd255 wrote:
Interestingly enough, the pixels do flash, but the bug still occurs sometimes. I will investigate my lobby code to make sure all my logistics are correct.
Hmm, please do, and get back to me with any logic questions that I might assist with. There are a few gotchas as to when you should be clearing buffers and such.
Here is my lobby code transcribed, with some comments attached (after the period, since that is Axe's comment syntax)

Code:

Lbl LKG
Fill(GDB6ADRS,5,0) .FILL 5 BYTE ADDRESS SPACE
CnOn .TURN ON CALCNET
CnOn(r) .TURN ON DEBUG MODE ((r) is superscript r)
ClrDraw
Text(0,0,"WAITING..."
Text(0,0,"PRESS CLEAR TO CANCEL"
0→C→{°TXSIZ+1} .CLEAR C AND TX FLAG
Fill(°TXID,5,0) .SET BROADCAST MODE
128→TXDAT .2-BYTE STORE TO TX DATA
2→TXSIZ .STORE TX SIZE
.DON'T SET TX FLAG YET
Repeat C
If RXSIZee0 .CHECK MSB OF RX SIZE
!If RXDAT(r)-128 .SEE IF FIRST BYTE OF DATA IS 128
Copy(°RXID,GDB6ADRS,5) .COPY SENDER ID TO ADDRESS SPACE
0→{°TXSIZ+1} .CLEAR SEND FLAG
2→C .SIGNAL THAT WE'RE READY
!If {°RXDAT+1} .IF SECOND BYTE OF DATA WAS EMPTY...
Copy(°RXID,°TXID,5) .SET UP DIRECTED SEND TO REPLY
128→TXDAT(r)
1→{°TXDAT+1}
2→TXSIZ
Stop .HALT FOR NEXT INTERRUPT
128→{°TXSIZ+1} .SET SEND FLAG
End
End
0→{°RXSIZ+1} .ACKNOWLEDGE RECIEVED FRAME
End
!If TXSIZee0 .CHECK MSB OF TX SIZE
128→{°TXSIZ+1} .SET SEND FLAG AGAIN
End
DispGraph .SAME AS iFastCopy
getKey(15)+C→C .ADD [CLEAR] TO C FOR EXIT CONDITIONS
End
!If C-2 .SEE IF C=2 (YES RECIEVE, NO [CLEAR])
Text(2,32,"READY! STARTING GAME..."
DispGraph
GAM(1) .START GAME WITH MULTIPLAYER ENABLED
End
CnOff .TURN OFF CALCNET
Return .BACK TO MAIN MENU
In this part:
Code:
2→TXSIZ
Stop .HALT FOR NEXT INTERRUPT
128→{°TXSIZ+1} .SET SEND FLAG
Why do you wait for the next interrupt? Also, for this one:
Code:
!If TXSIZee0 .CHECK MSB OF TX SIZE
128→{°TXSIZ+1} .SET SEND FLAG AGAIN
End
If I recall, the CALCnet interrupt clears both TXSIZ and TXSIZ+1 when sending succeeds, but I'll double-check.
Well, whaddaya know? It worked! It does look like both bytes of the size word are cleared when the send succeeds!

However, I just experienced a gameplay issue during the testing I did just now: one calculator is forever stuck, the other takes a severe drop in framerate, so it appears that one calculator is stuck in its Cn2 interrupt. I'll try testing again with DCS 7.1.1 on both calculators and see if the issue still happens (I noticed that Obliterate does something similar where the guest calculator is stuck as "Waiting for terrain..." when the game starts in 7.2 Beta, but not 7.1).
Note that anything before 7.1.1 has an issue with how CALCnet calculates the checksum for frames. I'm confused about the issue happening in 7.2 Beta, therefore. Sad I'm glad that my suggestion worked. Smile
I am pleased to announce that Eitrix has is first true CALCnet2.2 compatible release! Here's the link:

http://www.cemetech.net/programs/index.php?mode=file&id=800

I've also made a few more modifications to the game, all of which are detailed in the readme file. The most significant of these is the change in the way the Antidote works: as soon as it counters an attack, it's gone, but if it lasts till the end, it clears the row the special block is in, allowing you to more easily harvest specials. In addition, you start the game with one Antidote.

So, please test it out over a >2 calc network, including on "EitHub" on gCn! Note, however, that I will be making even more changes to the game, including changes that will break compatibility with earlier versions (but will include version handshaking to allow different versions of Eitrix to communicate with themselves on the same hub).

EDIT: I just had another thought about this: what if, after I was done with the 84 Plus game, I wrote a PC-side game that also connected to the gCn network and was 100% compatible with the 84 Plus game? And maybe even a smartphone version if I felt like it?

EDIT 2: It appears that the link to the game is broken. I uploaded the file in a different directory than the previous file ("TI-83+ Assembly Games" instead of "Beta Programs"). The new game is in the right folder (I presume) but the archives entry is still in Beta Programs, causing an unattractive "Invalid Format" error when I try to download the file. Could one of you admins please fix this?
This I would like to SEE!!! especially the pc side game.
The_Coded wrote:
This I would like to SEE!!! especially the pc side game.

If you mean "see" literally, I can post screenshots with the official release of Eitrix 1.2 on ticalc.org (once it's bug-free and version-safe). I do have a question about that, though: where can I find an exact, step-by-step procedure for linking two calculators on WabbitEmu? I understand that I can create linked screenshots of all active calculators, but how do I actually link the calculators to one another?

Also, when I was thinking about possible PC-side stuff, I had two questions:
1) My best bet on allowing computers to connect to calculators is by having the gCn game client simulate each computer as a separate calculator. Because of this, I will have to generate a unique ID (serial number) for each computer. How can I ensure that I won't generate a key that doesn't match one of real calculator that might join the network? Is there some systematic way I can ensure this, or will I have to accrue a database of calculators that have been bricked?
2) I also realize that in order for the two systems to be compatible, both must be completely independent of frame rate and must thus run off of a time interval. I'd normally implement this on the calc using an interrupt, but since I'm using CALCnet, I can't use my own interrupt. Is there any memory address in Cn2's RAM space that increments by 1 every time the interrupt fires, so I can use that as a time-watching system?

EDIT: Also, when I was looking in the archives, I saw that the link to the program had been removed from the beta folder, but had not been added to the asm/games folder. I did give it a different title and name, so would that have something to do with the problem?
Hello all!

I know that it's been a very long time - life caught up with me something good - but I finally have some good and cool news to add: a fully functional, CALCnet enabled version of my Tetris adaption Eitrix has now been posted to the ticalc archives!

http://www.ticalc.org/archives/files/fileinfo/466/46644.html

Enjoy!
Wow, this is really exciting! Can you tell us a little bit more about it? What kind of competitive features does it have? Did you document the final protocol it uses over CALCnet (as initially refined in our discussion above)? Have you tested it over gCn? I hope you'll also upload it to our archives.
Heya Compynerd, nice to see you again Very Happy
KermMartian wrote:
Wow, this is really exciting! Can you tell us a little bit more about it? What kind of competitive features does it have? Did you document the final protocol it uses over CALCnet (as initially refined in our discussion above)? Have you tested it over gCn? I hope you'll also upload it to our archives.

OK, I'll answer these questions the best I can:
  • Basically, for those who haven't seen it before (or who don't remember what it was like), it's a multiplayer Tetris with powerups. It's written with Axe and uses the CALCnet Axiom (basically function bindings) to provide 2-player matching linkplay over any CALCnet compatible network.
  • Within game, there is plenty of competition. Most of the special blocks that appear (which you activate by clearing the row they're in) negatively affect your opponent. You can also see your opponent's grid height on the right side of your screen, and you win when your opponent dies or quits. Outside of game, things are more limited - you don't see each other's screennames, but (theoretically, at least) when any two players with the same version of Eitrix enter a hub, they are immediately matched for a game and communicate independently of anyone else on the hub.
  • The CALCnet frames themselves are relatively simple: just two bytes of information per frame. Lobby packets are sent as broadcast packets to alert other players of their presence, and another calculator can send a response packet to directly start a game. Within the game, the first byte can either indicate a special send, a height update, or a game loss, with the second byte indicating what the special is or what the height is.
  • I will upload this to the Cemetech archives. And the source code will also make its way to Github, because not only do I see the immediate need to port this game to the color 84 Plus calculators (to stay relevant), but also a feature that I've been wanting to implement since this project's inception nearly 5 years ago: battle between up to 4 (or more!) simultaneous players and an extra button to select your target!
I have to say, as fan of multiplayer Tetris, I'd love to see some animated screenshots of this in action.

p.s., I fixed up your list formatting. Our BBCode should look like the following, for unordered lists:

Code:

[list]
[*] thing one
[*] thing two
[/list]
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 2 of 2
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement