Jump to content
unhuman

Trolling / Reading / I've now got my idea!

Recommended Posts

Well BATTLEZONE only has wire frame graphics and three colors on screen. (Green/White/Black)

 

That is about as minimum graphics wise as you can get.

Share this post


Link to post
Share on other sites

Well, a variant of the game I'm doing now has been on the TI, but it's a variant. Assuming I can get to it this weekend (and or remember to bring my laptop when I visit my folks)... Hopefully there's something to be seen....

 

Anyhow... I'm glad this topic has spawned some fun discussion.

 

Pretty sure Battlezone only had 2 colors... No white. Unless the version you had someone pulled off the green filter.

 

And, if I don't have anything to combine it with, it's not worth doing. I'm already doing something not combined.

 

:)

Share this post


Link to post
Share on other sites

Well BATTLEZONE only has wire frame graphics and three colors on screen. (Green/White/Black)

 

That is about as minimum graphics wise as you can get.

 

I believe we have already concluded that vector graphics games on the TI would run too slow:

http://atariage.com/forums/topic/228142-atarisoft-missing-in-action/page-2?do=findComment&comment=3043483

Share this post


Link to post
Share on other sites

Maybe my mind is playing tricks on me-but I seem to remember some Atarisoft advertisments where a TI99/4a Joust box was shown which probably indicated that there was a conversion intended at some point, I definately remember a UK company "Parco" who advertised Robotron for sale, I know I have a copy of the ad somewhere.

Share this post


Link to post
Share on other sites

I have Robotron:2084 prototype on ROM. Plays nicely. I recollect from bits and pieces I have read around this har Interwebs that Joust was prototyped and pretty much completed but never released.

Share this post


Link to post
Share on other sites

In the case of Battlezone, the moon, horizon, mountains and score appear to be easily achieved with predefined characters. Battlezone is not on my list as a game, but I might do it as a demo. Got another vector game on the list though.

 

;)

Edited by sometimes99er

Share this post


Link to post
Share on other sites

Yea another problem with BATTLEZONE is only works with two joysticks just like the way you steer a real Tank or Caterpillar.

Share this post


Link to post
Share on other sites

There is one game that has been in DEMO status for awhile... I've been quietly waiting... but I've seen nothing new. It looks like it could be the BEST game ever for the TI.

 

Are we waiting for the F18A to go to 1.6 first? Just curious.

 

post-35324-0-87996700-1412437739_thumb.gif

  • Like 1

Share this post


Link to post
Share on other sites

Coding RIGHT NOW!

 

Edit: I've got my screen generation working. :) Things are going to be a bit tight... I don't want to use 8x8 chars (although then I could use Mr. Bojangles), but 16x16 is too big...

Edited by unhuman

Share this post


Link to post
Share on other sites

Maybe my mind is playing tricks on me-but I seem to remember some Atarisoft advertisments where a TI99/4a Joust box was shown which probably indicated that there was a conversion intended at some point, I definately remember a UK company "Parco" who advertised Robotron for sale, I know I have a copy of the ad somewhere.

 

Hope this link works, but yes, Joust was advertised for the TI (as well as Jungle Hunt).

 

http://books.google.co.uk/books?id=bWYEAAAAMBAJ&pg=PA7&lpg=PA7&dq=atarisoft+all+the+hits+your+computer+is+missing&source=bl&ots=ggWS7hqw_Q&sig=yV_bJ8oIPtqkxM6GrgwRs7vBCpY&hl=en&ei=mDn2TeSwOI7Msgaq8sCkBg&sa=X&oi=book_result&ct=result&resnum=3&ved=0CCMQ6AEwAg#v=onepage&q=atarisoft%20all%20the%20hits%20your%20computer%20is%20missing&f=false

  • Like 2

Share this post


Link to post
Share on other sites

There's nothing special about Joust. Excellent ports/clones have appeared on consoles and computers far less powerful than the TI-99/4a.

Actually, there is something special about Joust. Not necessarily from a game-play standpoint, but on the hardware side the Williams computer that runs Joust, Robotron, Defender, Stargate, Bubbles, and a few others has 48K of RAM backing a 308x256 visible pixel display, using 4-bits (16 colors) per pixel. Board revisions running Joust and Robotron also had a custom blitter chip (two chips actually) that could push around 1M to 2M pixels per second. That makes it very hard to do a *good* accurate port IMO.

Share this post


Link to post
Share on other sites

There is one game that has been in DEMO status for awhile... I've been quietly waiting... but I've seen nothing new. It looks like it could be the BEST game ever for the TI.

 

Are we waiting for the F18A to go to 1.6 first? Just curious.

Probably. The 1.6 firmware will have some serious layer changes that were worked out based on the needs and feedback from Rasmus. He is waiting on me to finish the final implementation and get him something to test with. However, I've been unable to allocate time for hobbies for a few months, but I hope to get it finished soon.

  • Like 3

Share this post


Link to post
Share on other sites

Qix! I loved that game in the Arcade back when I was much younger.

I second that sentiment. The F18A bitmap layer and the GPU's PIX instruction would be perfect for this. :-)

  • Like 2

Share this post


Link to post
Share on other sites

I second that sentiment. The F18A bitmap layer and the GPU's PIX instruction would be perfect for this. :-)

 

Here's the code for a F18A GPU/PIX based line drawing algorithm if anyone's interested. Note that BSTK and RSTK are WinAsm99's names for the F18A GPU opcodes CALL and RET.

*********************************************************************
*
* Draw a line from (x1,y1) to (x2,y2)
*
* Translated from C version at:
* http://rosettacode.org/wiki/Bitmap/Bresenham's_line_algorithm#C
*
* void line(int x1, int y1, int x2, int y2) {
* 
*  int dx = abs(x2-x1), sx = x1<x2 ? 1 : -1;
*  int dy = abs(y2-y1), sy = y1<y2 ? 1 : -1; 
*  int err = (dx>dy ? dx : -dy)/2, e2;
* 
*  for(; {
*    setPixel(x1,y1);
*    if (x1==x2 && y1==y2) break;
*    e2 = err;
*    if (e2 >-dx) { err -= dy; x1 += sx; }
*    if (e2 < dy) { err += dx; y1 += sy; }
*  }
* }
*
* R0	x1 value
* R1	y1 value
* R2	x2 value
* R3	y2 value
* R13   Color (0-3)
*
* Modifies registers R0-R10
*
LINE   
*	   Setup variables	   
	   CLR	R6				* R6 is sx = 0
	   MOV	R2,R4				* R4 is dx = x2
	   S	R0,R4				* dx = x2 - x1 
	   JGT	DXPOS
	   DEC 	R6				* sx = -1
	   JMP  LINE1
DXPOS      INC 	R6				* sx = 1
LINE1      ABS	R4				* dx = abs(dx)b
	   CLR	R7				* R7 is sy = 0
	   MOV	R3,R5				* R5 is dy = y2
	   S	R1,R5				* dy = y2 - y1 
	   JGT	DYPOS
	   DEC 	R7				* sy = -1
	   JMP  LINE2
DYPOS      INC	R7				* sy = 1
LINE2      ABS	R5				* dy = abs(dy)
	   C	R4,R5				* Compare dx to dy
	   JGT	DXGTR
	   MOV 	R5,R8				* R8 is err = dy
	   NEG 	R8				* err = -dy
	   JMP 	LINE3
DXGTR      MOV	R4,R8				* R8 is err = dx
LINE3      SRA  R8,1				* err = err / 2
	   MOV	R4,R10				
	   NEG	R10				* R10 = -dx
*	   Main loop
LINEL      BSTK	@PLOT	   			* Plot (x1,y1)
	   C	R0,R2				* Compare x1 to x2
	   JNE	CONT				* Continue if x1 != x2
	   C    R1,R3				* Compare y1 to y2
	   JNE	CONT				* Continue if y1 != y2
	   RSTK					* Break
CONT       MOV	R8,R9				* R9 is e2 = err
	   C	R9,R10				* Compare e2 to -dx
	   JLT	LINE4				* Jump if e2 < -dx
	   S	R5,R8				* err -= dy
	   A	R6,R0				* x1 += sx
LINE4      C	R9,R5				* Compare e2 to dy
	   JGT	LINEL				* Loop if e2 > dy
	   A	R4,R8				* err += dx
	   A	R7,R1				* y1 += sy
	   JMP	LINEL				* Loop
*// LINE

*********************************************************************
*
* Plot a pixel at (x,y)
*
* R0	x value
* R1	y value
* R13	color
*
PLOT       MOV	R0,R12
	   SWPB	R12
	   SOC	R1,R12
	   XOP	R12,R13				* PIX
	   RSTK
*// PLOT
  • Like 3

Share this post


Link to post
Share on other sites

I've got my idea for my next project. I'll be doing a Compiled XB game. I got my idea reading other threads and... It might just work. It might not given that there's potentially a lot of characters moving around... You may guess. If you guess, I'll fess up. Otherwise... Wait and see!

There are a couple of things you should do.

1 - be sure to use the compiler posted in "Extended BASIC game developers package" in post #1

2 - before doing anything, make the change described in Post 48 in that thread

Then read the part in the manual about sound lists and the COMPRESS utility When your program is finalized, you can use COMPRESS to make images of the VDP memory and store it in DATA statments. Then you can delete the XB lines that created the screen, defined the characters etc. and read that from DATA statements and write directly to VDP with CWRITE. This is way faster and way more compact, and can be used in both XB and compiled programs. Then work through the sound list section of the manual. Sound lists run off the interrupt and once started do not need any intervention by the XB or compiled program. Also you can have 2 sound lists, say background music and then have an explosion sound when desired without interrupting the background music.

Share this post


Link to post
Share on other sites

@senior - thanks for pointing that out. I grabbed it from the 2.1 compiler thread since I noticed the one on the development thread was out of date (and commented on that thread as such). I'll fix my comment.

 

I'm going to do audio last. I'm going to make the game "work" in XB first and then endure the pain of making it more compiler friendly. It's just easier to develop that way, especially since I'm rusty...

 

And the 4 way scrolling is in there - fantastic. I had an idea to work around not having that, but looks like I'll be happy.

 

-H

Share this post


Link to post
Share on other sites

Just to give you an idea of what can be done, take a look at post #46 in XB Game Developers Package. It shows 1980 gamer's Frogger demo running normally in XB, then writing compressed DATA statements to the screen, character definitions and color table. Note that this is not compiled at all, but still running in XB. The program is 1/5th the size and loads the screen 75x faster!

  • Like 1

Share this post


Link to post
Share on other sites

Is this routine meant to run on the f18a gpu directly? I'm trying to access such a routine from c that would do this very thing on a coleco

 

On 10/4/2014 at 5:26 PM, Asmusr said:

 

Here's the code for a F18A GPU/PIX based line drawing algorithm if anyone's interested. Note that BSTK and RSTK are WinAsm99's names for the F18A GPU opcodes CALL and RET.

*********************************************************************
*
* Draw a line from (x1,y1) to (x2,y2)
*
* Translated from C version at:
* http://rosettacode.org/wiki/Bitmap/Bresenham's_line_algorithm#C
*
* void line(int x1, int y1, int x2, int y2) {
* 
*  int dx = abs(x2-x1), sx = x1<x2 ? 1 : -1;
*  int dy = abs(y2-y1), sy = y1<y2 ? 1 : -1; 
*  int err = (dx>dy ? dx : -dy)/2, e2;
* 
*  for(; {
*    setPixel(x1,y1);
*    if (x1==x2 && y1==y2) break;
*    e2 = err;
*    if (e2 >-dx) { err -= dy; x1 += sx; }
*    if (e2 < dy) { err += dx; y1 += sy; }
*  }
* }
*
* R0	x1 value
* R1	y1 value
* R2	x2 value
* R3	y2 value
* R13   Color (0-3)
*
* Modifies registers R0-R10
*
LINE   
*	   Setup variables	   
	   CLR	R6				* R6 is sx = 0
	   MOV	R2,R4				* R4 is dx = x2
	   S	R0,R4				* dx = x2 - x1 
	   JGT	DXPOS
	   DEC 	R6				* sx = -1
	   JMP  LINE1
DXPOS      INC 	R6				* sx = 1
LINE1      ABS	R4				* dx = abs(dx)b
	   CLR	R7				* R7 is sy = 0
	   MOV	R3,R5				* R5 is dy = y2
	   S	R1,R5				* dy = y2 - y1 
	   JGT	DYPOS
	   DEC 	R7				* sy = -1
	   JMP  LINE2
DYPOS      INC	R7				* sy = 1
LINE2      ABS	R5				* dy = abs(dy)
	   C	R4,R5				* Compare dx to dy
	   JGT	DXGTR
	   MOV 	R5,R8				* R8 is err = dy
	   NEG 	R8				* err = -dy
	   JMP 	LINE3
DXGTR      MOV	R4,R8				* R8 is err = dx
LINE3      SRA  R8,1				* err = err / 2
	   MOV	R4,R10				
	   NEG	R10				* R10 = -dx
*	   Main loop
LINEL      BSTK	@PLOT	   			* Plot (x1,y1)
	   C	R0,R2				* Compare x1 to x2
	   JNE	CONT				* Continue if x1 != x2
	   C    R1,R3				* Compare y1 to y2
	   JNE	CONT				* Continue if y1 != y2
	   RSTK					* Break
CONT       MOV	R8,R9				* R9 is e2 = err
	   C	R9,R10				* Compare e2 to -dx
	   JLT	LINE4				* Jump if e2 < -dx
	   S	R5,R8				* err -= dy
	   A	R6,R0				* x1 += sx
LINE4      C	R9,R5				* Compare e2 to dy
	   JGT	LINEL				* Loop if e2 > dy
	   A	R4,R8				* err += dx
	   A	R7,R1				* y1 += sy
	   JMP	LINEL				* Loop
*// LINE

*********************************************************************
*
* Plot a pixel at (x,y)
*
* R0	x value
* R1	y value
* R13	color
*
PLOT       MOV	R0,R12
	   SWPB	R12
	   SOC	R1,R12
	   XOP	R12,R13				* PIX
	   RSTK
*// PLOT

 

Share this post


Link to post
Share on other sites
1 hour ago, digress said:

Is this routine meant to run on the f18a gpu directly? I'm trying to access such a routine from c that would do this very thing on a coleco

Yes the routine must be uploaded to VDP RAM and executed by the GPU.

Share this post


Link to post
Share on other sites
23 minutes ago, Asmusr said:

Yes the routine must be uploaded to VDP RAM and executed by the GPU.

Ok so I have done that previously with the tile scroll routine so I can find that again.

 

i compiled this using asm994a. almost worked for me. i got 1 error

 

 *** Warning #1: Missing END directive
  91  005E 0000         END   * WinAsm99 Supplied Directive

 

edit: i just realized that i don't need to alter that asm994a already added the end statement for me.

 

 

 

 

how do I set in memory these variables does that mean register0 of the f18a?

* R0	x1 value
* R1	y1 value
* R2	x2 value
* R3	y2 value
* R13   Color (0-3)

 

Edited by digress

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...