This is an archived, read-only copy of the United-TI subforum , including posts and topic from May 2003 to April 2012. If you would like to discuss any of the topics in this forum, you can visit Cemetech's Your Projects subforum. Some of these topics may also be directly-linked to active Cemetech topics. If you are a Cemetech member with a linked United-TI account, you can link United-TI topics here with your current Cemetech topics.

This forum is locked: you cannot post, reply to, or edit topics. Project Ideas/Start New Projects => Your Projects
Author Message
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 10 Feb 2004 04:22:11 pm    Post subject:

I'm pleased to announce that Robot War is finally going beta. After months and months of coding and debugging, the long project is finally nearing its close! So now I'm asking my fellow forum members to help me gather some last-minute expert gaming opinions.



So how does it look so far?
Back to top
Jedd
1980 Pong World Champion


Elite


Joined: 18 Nov 2003
Posts: 823

Posted: 10 Feb 2004 05:56:22 pm    Post subject:

Wow!!! Robot wars is actually going beta!!! I thought this was one of those projects that never gets finished. Can't wait to play it!
Back to top
Adm.Wiggin
aka Tianon


Know-It-All


Joined: 02 Jun 2003
Posts: 1874

Posted: 10 Feb 2004 06:47:04 pm    Post subject:

that looks amazing... totally awesome dude Smile
Back to top
ISUCK


Newbie


Joined: 09 Feb 2004
Posts: 41

Posted: 10 Feb 2004 07:13:25 pm    Post subject:

Hey, remind me again, is this only for 82?
Back to top
Jedd
1980 Pong World Champion


Elite


Joined: 18 Nov 2003
Posts: 823

Posted: 10 Feb 2004 07:18:11 pm    Post subject:

It's being made on the 82, then moved to the 83 and 83+ since there's this cool software or something to do it. There is info on the Robot War page.
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 10 Feb 2004 11:06:44 pm    Post subject:

Yep, so far it's being written for TI82, but I'm planning include special notes in the source code to help people port it to other models. I'm hoping to port it with the help of Guillaume Hoffmann's tutorials at the TI Unification Page, which specializes in TI82/83(+) game porting. TI-86 users can also use a 82->86 emulator for the smaller RW versions. The ports will also be link-compatible (hopefully Wink ) , so TI-83+s can battle TI-82s.

I'm thinkin' the beta will feature the Cape City map (seen in the screenshot), along with the "target practice" mini-game and Cape City Battle Tournament.

Game Release Schedule: (I hope)
======================
February 19th - First beta released
March 24th - Secondary beta released with full features
April 28 - Final Standard/Linked Editions released at ticalc.org
Summer 2004 - Lite/Battle Edition released at ticalc.org
Back to top
Adm.Wiggin
aka Tianon


Know-It-All


Joined: 02 Jun 2003
Posts: 1874

Posted: 11 Feb 2004 08:34:46 am    Post subject:

you could do it for ion on the 83/+... then it is just one compile and it makes for 83 and 83+ Very Happy
Back to top
X1011
10100111001


Active Member


Joined: 14 Nov 2003
Posts: 657

Posted: 11 Feb 2004 03:58:52 pm    Post subject:

Maybe we could run the 82 version in MirageOS. Does that even work?
Back to top
ISUCK


Newbie


Joined: 09 Feb 2004
Posts: 41

Posted: 11 Feb 2004 05:11:53 pm    Post subject:

It does, but you need the OS to be i think 1.12 lor lower
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 11 Feb 2004 06:12:50 pm    Post subject:

Quote:
Maybe we could run the 82 version in MirageOS. Does that even work?


Quote:
It does, but you need the OS to be i think 1.12 lor lower


So does the MirageOS emulate for game linking too?
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 12 Feb 2004 11:49:11 pm    Post subject:

Okay, here's my first question. It's a pretty tough one, but here goes:

I downloaded this linking code for 2-player matches in the game. Originally, these 2 routines set/cleared the zero flags to indicated failed/good links. But I had to change it set/clear the carry flags instead, in order to send zeros too. Here's the problem: The prog works fine if a link is present, but the linksend code will always returns a success value after it tries to send; even if there's no link present! I can't seem to find out what's going wrong. The linkget routine works as planned...


Code:
;;################################################
;;                                               #
;;               linkget                         #
;;                                               #
;; Receive 1 byte through link port.             #
;; (includes timeout)                            #
;;                                               #
;; IN: -nothing-                                 #
;; OUT: Carry Set.  Link failed           #
;;      NoCarry     Link successful              #
;;        C=byte received                        #
;;                                               #
;;------------------------------------------------
;;               linksend                        #
;;                                               #
;; Send byte in A register through link port     #
;; (Use ALPHA to cancel transmission             #
;;                                               #
;; IN:  A = byte to send                         #
;; OUT: NoCarry              Byte sent!          #
;;      Carry Set            Transfer canceled   #
;;                                               #
;;------------------------------------------------
linkget:;RECIEVES A BYTE
 push hl;save hl
 ld hl,16383;timeout value you may change this if you want (you could also
            ;use the d register here for a smaller timeout)
 ld e,1;e is for the or'ing below
 ld c,0; byte that will be received
 ld b,8; 8 bits = 1 byte counter
 ld a,$C0;both wires active
 out (0),a;send to port
checkresponse:
 call checktimeoutget  ;check timeout
 in a,(0);read from port
 and 3  ;mask off the rest of a reg
 cp 3    ;if its 3 then both wires are still active
  ;(meaning no response from other calc yet)
 jr z,checkresponse;if not 3 then other calc says 'ready'
othercalcready:
 cp 2    ;if the send routine on other calc says bit 1 of a (a=2 now)
  ;is sent then it is a zero that will be sent
  ;(white is active, red is not, so go turn red wire on)
 jr z,getlinkzero;if so go get the zero
 ld a,c
 or e  ;this makes the bit of the current bit ((8-bitcounter)+1)
  ;and turns on that bit and
 ld c,a;stores it back to a
 ld a,$D4;turn on white wire
 out (0),a;send to linkport
 jr sendgotbit
getlinkzero:
 ld a,$E8;red wire on  (red = 0, white = 1)
 out (0),a;send to port
sendgotbit:
 call checktimeoutget
 in a,(0);check to see if both wires not active
;(sending calc said i got your response that you got that bit)
 and 3
 jr z,sendgotbit
 ld a,$C0;both wires on
 out (0),a
 rl e;next bit to do
 djnz checkresponse
 ld a,c;byte recived.
 or a  ;do the comparision
 pop hl;get saved hl
 scf                          ;; Indicate successful transfer
 ccf                          ;;
 ret  ;return back with recieved byte
checktimeoutget:
 dec hl;hl-1 ->hl
 ld a,l;if hl=0
 or h  ;
 ret nz;return if hl!=0 (it starts at 16383)
 pop hl;get saved hl
 pop de;trash last stack address so youll
;return to the lable that called linkget
;; xor a;say no byte reciecved
 scf                          ;; Indicate link error
 ret  ;return back (timeout occured)
;------------------------------------------------------------------------------------
linksend:;SENDS A BYTE
 ld b,8;bit counter
 ld c,a;byte to send
 ld a,$C0;both wires active
 out (0),a;send to port
checkreceivecalc:
 call checksendcanceled
 in a,(0);read from port
 and 3  ;mask off all but the first two (bit 0,and 1) of a
 cp 3    ;if 3 then other calc has both wires active
;(other calc is ready)
 jr nz,checkreceivecalc;other calc is ready if both wires active
;reloop untill other calc is ready or you press exit
othercalcready2:
 ld a,c;byte to send into a
 and 1;only the first bit of it counts (its checked like this):
      ;a reg =                  % 0 0 0 0  0 0 0 0
      ;bit number                 7 6 5 4  3 2 1 0
      ;and'ing by 1 gets rid of all but  --------^----- that bit there
 jr z,linksendone;if so send bit == 1
linksendzero:
 ld a,$E8;red wire on
 out (0),A;send to port
 jr checkifbitgot
linksendone:
 ld a,$D4;white wire on (on and active are same thing)
 out (0),A;send it to linkport
checkifbitgot:
 call checksendcanceled
 in a,(0);read from port
 and 3; if its anything other than 3 that means
;other calc (recieveing end) got the bit
 jr nz,checkifbitgot;reloop until bit got
 ld a,$C0  ;both wires active
 out (0),A;send to port
 srl c    ;next bit of c to be checked (shifts it all one to right)
 djnz checkreceivecalc
;; xor a;a=0 byte=sent
 scf                          ;; Indicate successful transfer
 ccf                          ;;
 ret      ;go back to where linksend was called
checksendcanceled:
; ld a,%00111111;checks keyport if exit is pressed
; out (1),a
; in a,(1)
; bit 6,a
 push hl
 call GET_KEY
 pop hl
 cp G_ALPHA
 ret nz
 pop de;trash checksendcanceled call
 pop de;trash linksend call
 scf                          ;; Indicate link error
 ret  ;; Return with the bad news.  A = G_ALPHA


This code is basically the centerpeice of the game, so it's vital I find the bug before I can move on... Wink


Last edited by Guest on 12 Feb 2004 11:51:45 pm; edited 1 time in total
Back to top
DigiTan
Unregistered HyperCam 2


Super Elite (Last Title)


Joined: 10 Nov 2003
Posts: 4468

Posted: 14 Feb 2004 04:09:41 pm    Post subject:

Eh...okay. That question doesn't seem to be drawing any responce. Moving on: my next question is about mini-games. I'm trying to come up a few basic mini-game ideas the put into Story Mode. I need four games total, and I've got 3 three ideas so far (including the target game). Any ideas?

-----------------------

Also, if it helps here are the one-way link progs I was trying to use...

Receiver end...

Code:
#include "crash82.inc"
.db "Link test: RECEIVER",0

 ROM_CALL(CLEARLCD)
top:
 call linkget
 jr c,top
 ld a,c
 cp G_CLEAR
 ret z
 ld hl,GRAPH_MEM
 ld (hl),c
 call CR_GRBCopy
 jr top



#include "link.asm"
.end


Transmitter End....
Quote:
#include "crash82.inc"
.db "Link test: SENDER",0

ROM_CALL(CLEARLCD)

top:
call GET_KEY
cp G_NONE
jr z,top
push af
call linksend
pop af
ld hl,GRAPH_MEM
ld (hl),a
cp G_CLEAR
ret z
call CR_GRBCopy
jr top

#include "link.asm"

.end


When linked up, the receiver and sender are supposed to display matching bit patterns in the corner of the screen--based on what keys you press. Pressing CLEAR makes both calcs exit the prog.
Back to top
Display posts from previous:   
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
    »
» View previous topic :: View next topic  
Page 1 of 1 » All times are UTC - 5 Hours

 

Advertisement