Jump to content
IGNORED

Graphics on your TI... are YOU interested?


Omega-TI

Graphics on the TI  

28 members have voted

  1. 1. Would you be interested in a TI graphics repository thread?

    • Yes
      18
    • No
      2
    • Possibly
      8
  2. 2. If "Yes" to question #1 would you be interested in... (multiple choice)

    • Downloading stuff people post to the thread?
      21
    • Creating new graphics to add to the thread?
      14
    • N/A - Other - No Interest
      4
  3. 3. If interested, do you think we should settle on a single graphic format?

    • Yes
      4
    • No
      11
    • Maybe
      12
    • N/A - Other - No Interest
      1
  4. 4. If you chose 2 or 3 in the previous question, would you be interested in an F18A format?

    • Yes
      15
    • No
      6
    • Depends
      4
    • N/A - Other - No Interest
      3

  • Please sign in to vote in this poll.

Recommended Posts

Messing with Bob in post #21 has 2 lines that cause the compiler to crash: Line 1401 and line 1465 which are the same code:

 

1401 if CM=4 then cm=3 else cm=4 The compiler will only accept IF THEN ELSE statements as used in TI BASIC. I changed this to be:

 

1401 CM=4+(CM=4) and did the same for line 1465 and the program compiles and runs fine. (And fast!)

 

How does this statement work? In your line, CM should always become 4 unless it already is 4, in which case it should become 3. In my line (CM=4) is -1 if true, but is 0 if not true. So CM will become 4 with 1 subtracted only if CM already is a 4.

If that method is too obscure you can always do something like this:

1401 IF CM=4 THEN 1402::CM=4::GOTO 1405

1402 CM=3

1405 program continues...

I basically just wanted a quick and easy switch for Call Magnify (CM). It switches the floating Dobbsheads from big to small and back again (CALL MAGNIFY(3) OR CALL MAGNIFY(4)).

 

Link to comment
Share on other sites

Sinphaltimus, your programming style should work very well with the XB compiler. I took a quick look through post #20 and did not see anything that would not be compatible. You will not have to run in emulation with the CPU turned way up; real iron will be plenty fast enough.

 

What is the XB compiler? Will it allow me to convert my XB programs to bin files for the flashROM99?

 

EDIT:::Oh, I see: http://atariage.com/forums/topic/206961-xb-compiler-v21/page-6

Edited by Sinphaltimus
Link to comment
Share on other sites

I basically just wanted a quick and easy switch for Call Magnify (CM). It switches the floating Dobbsheads from big to small and back again (CALL MAGNIFY(3) OR CALL MAGNIFY(4)).

 

Please don't misunderstand, what you did is fine in XB. The compiler cannot handle XB type IF THEN statements, and if you compile the program as is it will crash when it comes to that line. I was just showing a couple of ways that make it possible to compile the program.

  • Like 1
Link to comment
Share on other sites

I understand. I've read the limitations to the compiler once I found the link and began looking in to how to use it. Unfortunately, I don't have additional ram and my ony way to tranfer programs from PC to TI is tape drive so I'm stuck with 12k programming to tape.


Not this program in particular but another one I wrote is going through the wringer now. I'd like to take this one and the other on to a flashrom99. But I have no way of testing. http://atariage.com/forums/topic/255751-help-compiling-xb-in-to-bin-for-flashrom99/

At some point I'm going to have to get more ram or stop. As far as I can tell I'm stuck with 12k at the moment.

Link to comment
Share on other sites

Here's a bin of the above graphics most recently discussed. I saved from XB as merged file then loaded up XB compiler 256 did all that through to the e/a5 file the ti99dir convert to v9t9 and finally module creator 2.0 to get this bin.

Can any of you check to see if this works on a flashrom99?

bob.bin

Link to comment
Share on other sites

I've refined running jumping man's jump. Next I'm going to create platforms and gravity. I want to ask how others simulate gravity but I won't. I want to try and figure this out without help as I have some ideas. Let's see what the next version looks like. As for this version, enjoy the new jump. Oh and PS - Just kidding, I'm actually going to stop the running man from sliding (instant stop when joystick released), then I will work on gravity.

100 CALL CLEAR
110 YP=12 :: XP=15 :: RS=0 :: CS=16 !start position direction and velocity
120 !running patterns right
130 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
140 !stop and jump right
150 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
160 !jumping right
170 DATA 0303040609081010,1818141810106000,1818103810180C00,1818503010180404
180 !landing right
190 DATA 0018183050180818,1818101038501018
200 !running patterns left
210 DATA 1818080808080818,1818183C3828640C,18583C7A58CC0206,18987E19384E8200,18987E1918284EC2,18181C7A1A38246C
220 !stop and jump left
230 DATA 1818080808080818,0030380C1A100818,000030380C3A3818,00006070183C3018,00C0E03018100818
240 !jumping left
250 DATA C0C0206090100808,1818281808080600,1818081C08183000,18180A0C08182020
260 !landing right
270 DATA 0018180C0A181018,181808081C0A0818
280 FOR CHRR=40 TO 45 !setup for creating running characters right
290 READ PAT$
300 CALL CHAR(CHRR,PAT$)
310 NEXT CHRR
320 REM CHR=CHRR
330 FOR CHSR=46 TO 50 !setup for creating stop and jump characters right
340 READ PAT$
350 CALL CHAR(CHSR,PAT$)
360 NEXT CHSR
370 FOR CHJR=51 TO 54 !setup for creating jumping characters right
380 READ PAT$
390 CALL CHAR(CHJR,PAT$)
400 NEXT CHJR
410 FOR CHLR=56 TO 56 !setup for creating landing characters right
420 READ PAT$
430 CALL CHAR(CHLR,PAT$)
440 NEXT CHLR
450 REM left running***********************
460 FOR CHRL=57 TO 62 !setup for creating running characters left
470 READ PAT$
480 CALL CHAR(CHRL,PAT$)
490 NEXT CHRL
500 FOR CHSL=63 TO 67 !setup for creating stop and jump characters left
510 READ PAT$
520 CALL CHAR(CHSL,PAT$)
530 NEXT CHSL
540 FOR CHJL=68 TO 71 !setup for creating jumping characters left
550 READ PAT$
560 CALL CHAR(CHJL,PAT$)
570 NEXT CHJL
580 FOR CHLL=72 TO 73 !setup for creating landing characters left
590 READ PAT$
600 CALL CHAR(CHLL,PAT$)
610 NEXT CHLL
602 gir$="FFC3A59999A5C3FF"
605 call char(100,gir$)
620 REM******Create Sprite Idle********
630 CALL SPRITE(#1,CHRR,2,YP,XP)!create the runner and send running***What to assign chr***
640 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
650 IF S=0 THEN 1290 !nothing pressed for button keep running
660 REM ********jump routine check********
670 CALL MOTION(#1,0,0)
680 IF CS<>-16 THEN 720
690 CALL POSITION(#1,YP,XP)!get new position for next sprite
700 GOSUB 760 ! goto jump left
710 GOTO 620
720 IF CS<>16 THEN 1290
730 CALL POSITION(#1,YP,XP)!get new position for next sprite
740 GOSUB 1030 !goto jump right**************************
750 GOTO 620
760 REM *************jump left routine*********
770 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running!
780 CALL SPRITE(#1,CHSL,2,YP,XP)!recreate sprite1 as stop and jump characters
790 FOR PT=63 TO 67 !setup stop and jump animation
800 CALL PATTERN(#1,PT) !ANIMATE
810 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
820 NEXT DELAY
830 NEXT PT !continue animating the stop and jump until done
840 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping
850 CS=-18
855 YP=9
860 CALL SPRITE(#1,CHJL,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion
870 FOR PT=68 TO 71 !setup jumping characters left
880 CALL PATTERN(#1,PT)
890 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
900 NEXT DELAY
910 NEXT PT
920 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
930 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
935 YP=12 !RESET YP TO BE GROUND.
940 CALL SPRITE(#1,CHLL,2,YP,XP)
950 FOR PT=72 TO 73 !setup landing animation left
960 CALL PATTERN(#1,PT)
970 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
980 NEXT DELAY
990 NEXT PT ! continue landing animation until last frame
1000 CS=-16 :: CALL MOTION(#1,0,CS)
1010 CALL POSITION(#1,YP,XP)!get new position for next sprite
1020 RETURN
1030 REM *************jump right routine******
1040 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running! right
1050 CALL SPRITE(#1,CHSR,2,YP,XP)!recreate sprite1 as stop and jump characters right
1060 FOR PT=46 TO 50 !setup stop and jump animation right
1070 CALL PATTERN(#1,PT)
1080 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1090 NEXT DELAY
1100 NEXT PT !continue animating the stop and jump until done right
1110 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping right
1120 CS=18 ::YP=9:: CALL SPRITE(#1,CHJR,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion right
1130 FOR PT=51 TO 54 !setup jumping characters right
1140 CALL PATTERN(#1,PT)
1150 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1160 NEXT DELAY
1170 NEXT PT
1180 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
1190 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
1195 YP=12
1200 CALL SPRITE(#1,CHLR,2,YP,XP)
1210 FOR PT=56 TO 56 !setup landing animation
1220 CALL PATTERN(#1,PT)
1230 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1240 NEXT DELAY
1250 NEXT PT ! continue landing animation until last frame
1260 CS=16 :: CALL MOTION(#1,0,CS)
1270 CALL POSITION(#1,YP,XP)!get new position for next sprite
1280 RETURN
1290 REM **************Check Joyst Options************
1300 IF JX<>0 THEN 1330
1310 CALL MOTION(#1,0,0)
1320 GOTO 640
1330 REM ********Check direction and continue running.***************
1340 IF JX<>-4 THEN 1370
1350 CALL POSITION(#1,YP,XP)!get new position for next sprite
1360 GOSUB 1550
1370 IF JX<>4 THEN 640
1380 CALL POSITION(#1,YP,XP)!get new position for next sprite
1390 GOSUB 1410
1400 GOTO 640 !after RETURN goto joyst check
1410 REM ************run right routine********
1420 CS=16 :: CALL SPRITE(#1,CHRR,2,YP,XP)!create the runner and send running
1430 CALL MOTION(#1,0,JX*4)
1440 FOR PT=40 TO 45 !setup for animating the run
1450 CALL PATTERN(#1,PT)
1460 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1470 REM IF S=0 THEN 1620 else 1670 !nothing pressed for button keep running
1480 IF JX=4 THEN 1510
1490 IF JX=0 THEN 1500 ELSE 1540 !not joy pressed keep running
1500 IF JX=-4 THEN 1540
1510 NEXT PT
1520 IF JX=4 THEN 1440
1530 CALL POSITION(#1,YP,XP)!check position and store before stopping motion
1540 RETURN
1550 REM **********run left routine**************
1560 CS=-16 :: CALL SPRITE(#1,CHRL,2,YP,XP)!create the runner and send running
1570 CALL MOTION(#1,0,JX*4)
1580 FOR PT=57 TO 62 !setup for animating the run
1590 CALL PATTERN(#1,PT)
1600 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1610 REM IF S=0 THEN 1750 else 1800 !nothing pressed for button keep running
1620 IF JX=-4 THEN 1650
1630 IF JX=0 THEN 1640 ELSE 1680 !not joy pressed keep running
1640 IF JX=4 THEN 1680
1650 NEXT PT
1660 IF JX=-4 THEN 1570
1670 CALL POSITION(#1,YP,XP)!check position and store for next sprite
1680 RETURN
  • Like 1
Link to comment
Share on other sites

Here's the instant stop version. I'm going to move on to gravity.

A few notes: if you tap the joystick left or right, for subtle advancement, the rj man may not appear to animate. I'm OK with this. He's "sneaking inch by inch".
If you tap left, the idle frame, I dunno what frame that is or why it gets stuck there. I will look in to it at some point but otherwise I cannot explain why it looks like he's about to pee.

100 CALL CLEAR
110 YP=12 :: XP=15 :: RS=0 :: CS=16 !start position direction and velocity
120 !running patterns right
130 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
140 !stop and jump right
150 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
160 !jumping right
170 DATA 0303040609081010,1818141810106000,1818103810180C00,1818503010180404
180 !landing right
190 DATA 0018183050180818,1818101038501018
200 !running patterns left
210 DATA 1818080808080818,1818183C3828640C,18583C7A58CC0206,18987E19384E8200,18987E1918284EC2,18181C7A1A38246C
220 !stop and jump left
230 DATA 1818080808080818,0030380C1A100818,000030380C3A3818,00006070183C3018,00C0E03018100818
240 !jumping left
250 DATA C0C0206090100808,1818281808080600,1818081C08183000,18180A0C08182020
260 !landing right
270 DATA 0018180C0A181018,181808081C0A0818
280 FOR CHRR=40 TO 45 !setup for creating running characters right
290 READ PAT$
300 CALL CHAR(CHRR,PAT$)
310 NEXT CHRR
320 REM CHR=CHRR
330 FOR CHSR=46 TO 50 !setup for creating stop and jump characters right
340 READ PAT$
350 CALL CHAR(CHSR,PAT$)
360 NEXT CHSR
370 FOR CHJR=51 TO 54 !setup for creating jumping characters right
380 READ PAT$
390 CALL CHAR(CHJR,PAT$)
400 NEXT CHJR
410 FOR CHLR=56 TO 56 !setup for creating landing characters right
420 READ PAT$
430 CALL CHAR(CHLR,PAT$)
440 NEXT CHLR
450 REM left running***********************
460 FOR CHRL=57 TO 62 !setup for creating running characters left
470 READ PAT$
480 CALL CHAR(CHRL,PAT$)
490 NEXT CHRL
500 FOR CHSL=63 TO 67 !setup for creating stop and jump characters left
510 READ PAT$
520 CALL CHAR(CHSL,PAT$)
530 NEXT CHSL
540 FOR CHJL=68 TO 71 !setup for creating jumping characters left
550 READ PAT$
560 CALL CHAR(CHJL,PAT$)
570 NEXT CHJL
580 FOR CHLL=72 TO 73 !setup for creating landing characters left
590 READ PAT$
600 CALL CHAR(CHLL,PAT$)
610 NEXT CHLL
602 gir$="FFC3A59999A5C3FF"
605 call char(100,gir$)
620 REM******Create Sprite Idle********
630 CALL SPRITE(#1,CHRR,2,YP,XP)!create the runner and send running***What to assign chr***
640 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
650 IF S=0 THEN 1290 !nothing pressed for button keep running
660 REM ********jump routine check********
670 CALL MOTION(#1,0,0)
680 IF CS<>-16 THEN 720
690 CALL POSITION(#1,YP,XP)!get new position for next sprite
700 GOSUB 760 ! goto jump left
710 GOTO 620
720 IF CS<>16 THEN 1290
730 CALL POSITION(#1,YP,XP)!get new position for next sprite
740 GOSUB 1030 !goto jump right**************************
750 GOTO 620
760 REM *************jump left routine*********
770 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running!
780 CALL SPRITE(#1,CHSL,2,YP,XP)!recreate sprite1 as stop and jump characters
790 FOR PT=63 TO 67 !setup stop and jump animation
800 CALL PATTERN(#1,PT) !ANIMATE
810 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
820 NEXT DELAY
830 NEXT PT !continue animating the stop and jump until done
840 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping
850 CS=-18
855 YP=9
860 CALL SPRITE(#1,CHJL,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion
870 FOR PT=68 TO 71 !setup jumping characters left
880 CALL PATTERN(#1,PT)
890 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
900 NEXT DELAY
910 NEXT PT
920 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
930 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
935 YP=12 !RESET YP TO BE GROUND.
940 CALL SPRITE(#1,CHLL,2,YP,XP)
950 FOR PT=72 TO 73 !setup landing animation left
960 CALL PATTERN(#1,PT)
970 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
980 NEXT DELAY
990 NEXT PT ! continue landing animation until last frame
1000 CS=-16 :: CALL MOTION(#1,0,CS)
1010 CALL POSITION(#1,YP,XP)!get new position for next sprite
1020 RETURN
1030 REM *************jump right routine******
1040 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running! right
1050 CALL SPRITE(#1,CHSR,2,YP,XP)!recreate sprite1 as stop and jump characters right
1060 FOR PT=46 TO 50 !setup stop and jump animation right
1070 CALL PATTERN(#1,PT)
1080 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1090 NEXT DELAY
1100 NEXT PT !continue animating the stop and jump until done right
1110 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping right
1120 CS=18 ::YP=9:: CALL SPRITE(#1,CHJR,2,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion right
1130 FOR PT=51 TO 54 !setup jumping characters right
1140 CALL PATTERN(#1,PT)
1150 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1160 NEXT DELAY
1170 NEXT PT
1180 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
1190 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
1195 YP=12
1200 CALL SPRITE(#1,CHLR,2,YP,XP)
1210 FOR PT=56 TO 56 !setup landing animation
1220 CALL PATTERN(#1,PT)
1230 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1240 NEXT DELAY
1250 NEXT PT ! continue landing animation until last frame
1260 CS=16 :: CALL MOTION(#1,0,CS)
1270 CALL POSITION(#1,YP,XP)!get new position for next sprite
1280 RETURN
1290 REM **************Check Joyst Options************
1300 IF JX<>0 THEN 1330
1310 CALL MOTION(#1,0,0)
1320 GOTO 640
1330 REM ********Check direction and continue running.***************
1340 IF JX<>-4 THEN 1370
1350 CALL POSITION(#1,YP,XP)!get new position for next sprite
1360 GOSUB 1550
1370 IF JX<>4 THEN 640
1380 CALL POSITION(#1,YP,XP)!get new position for next sprite
1390 GOSUB 1410
1400 GOTO 640 !after RETURN goto joyst check
1410 REM ************run right routine********
1420 CS=16 :: CALL SPRITE(#1,CHRR,2,YP,XP)!create the runner and send running
1430 CALL MOTION(#1,0,JX*4)
1440 FOR PT=40 TO 45 !setup for animating the run
1450 CALL PATTERN(#1,PT)
1460 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1470 IF JX<>0 THEN 1480 ELSE 1471 !not joy pressed keep running
1471 call motion(#1,0,0)::return
1480 IF JX=4 THEN 1510
1500 IF JX=-4 THEN 1540
1510 NEXT PT
1520 IF JX=4 THEN 1440
1530 CALL POSITION(#1,YP,XP)!check position and store before stopping motion
1540 RETURN
1550 REM **********run left routine**************
1560 CS=-16 :: CALL SPRITE(#1,CHRL,2,YP,XP)!create the runner and send running
1570 CALL MOTION(#1,0,JX*4)
1580 FOR PT=57 TO 62 !setup for animating the run
1590 CALL PATTERN(#1,PT)
1600 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1610 REM IF S=0 THEN 1750 else 1800 !nothing pressed for button keep running
1615 IF JX<>0 THEN 1620 ELSE 1616!not joy pressed keep running
1616 call motion(#1,0,0)::return
1620 IF JX=-4 THEN 1650
1640 IF JX=4 THEN 1680
1650 NEXT PT
1660 IF JX=-4 THEN 1570
1670 CALL POSITION(#1,YP,XP)!check position and store for next sprite
1680 RETURN
 
  • Like 1
Link to comment
Share on other sites

I think this will be the last post here for running jumping man. That is to say I'll probably start my own thread since I figure I might as well develop this in to some new game.
Anyway, here I have gravity or falling simulated. You can jump over the hole but down get too close to the edge or you will fall in.

Joystick Required. joystick up or down will reset the demo. Resetting the demo moves the hole to a random position. Left right joystick to move, any button to jump.

 

 

 
 
100 CALL CLEAR
115 RANDOMIZE
110 CALL SCREEN(2)
120 CALL COLOR(9,15,1):: CALL COLOR(2,14,1)
130 YP=9 :: XP=15 :: RS=0 :: CS=16 !start position direction and velocity
140 GRND=17 !current ground level on top girder (YP+8pixels)
150 !running patterns right
160 DATA 1818101010101018,1818183C1C142630,181A3C5E1A334060,18197E981C724100,18197E9818147243,1818385E581C2436
170 !stop and jump right
180 DATA 1818101010101018,000C1C3058081018,00000C1C305C1C18,0000060E183C0C18,0003070C18081018
190 !jumping right
200 DATA 0303040609081010,1818141810106000,1818103810180C00,1818503010180404
210 !landing right
220 DATA 0018183050180818,1818101038501018
230 !running patterns left
240 DATA 1818080808080818,1818183C3828640C,18583C7A58CC0206,18987E19384E8200,18987E1918284EC2,18181C7A1A38246C
250 !stop and jump left
260 DATA 1818080808080818,0030380C1A100818,000030380C3A3818,00006070183C3018,00C0E03018100818
270 !jumping left
280 DATA C0C0206090100808,1818281808080600,1818081C08183000,18180A0C08182020
290 !landing right
300 DATA 0018180C0A181018,181808081C0A0818
310 FOR CHRR=40 TO 45 !setup for creating running characters right
320 READ PAT$
330 CALL CHAR(CHRR,PAT$)
340 NEXT CHRR
350 REM CHR=CHRR
360 FOR CHSR=46 TO 50 !setup for creating stop and jump characters right
370 READ PAT$
380 CALL CHAR(CHSR,PAT$)
390 NEXT CHSR
400 FOR CHJR=51 TO 54 !setup for creating jumping characters right
410 READ PAT$
420 CALL CHAR(CHJR,PAT$)
430 NEXT CHJR
440 FOR CHLR=56 TO 56 !setup for creating landing characters right
450 READ PAT$
460 CALL CHAR(CHLR,PAT$)
470 NEXT CHLR
480 REM left running***********************
490 FOR CHRL=57 TO 62 !setup for creating running characters left
500 READ PAT$
510 CALL CHAR(CHRL,PAT$)
520 NEXT CHRL
530 FOR CHSL=63 TO 67 !setup for creating stop and jump characters left
540 READ PAT$
550 CALL CHAR(CHSL,PAT$)
560 NEXT CHSL
570 FOR CHJL=68 TO 71 !setup for creating jumping characters left
580 READ PAT$
590 CALL CHAR(CHJL,PAT$)
600 NEXT CHJL
610 FOR CHLL=72 TO 73 !setup for creating landing characters left
620 READ PAT$
630 CALL CHAR(CHLL,PAT$)
640 NEXT CHLL
650 BGIR$="3C4426D999A5C3FF" !BAD girder for level HOLE creation
660 GIR$="FFC3A59999A5C3FF" !GIRDER FOR LEVELS
670 CALL CHAR(101,BGIR$,100,GIR$)!girder for level creation
680 GRAV$="FFFFFFFFFFFFFFFF" :: CALL CHAR(126,GRAV$)!THE HOLE
690 GOSUB 1880 !*******************************Create Level
700 REM******Create Sprite Idle********
710 CALL SPRITE(#1,CHRR,6,YP,XP)
720 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
730 IF JY=0 THEN 740 ELSE 2070
740 GOSUB 2010 !fall check
750 IF S=0 THEN 1430 !no kb pressed check for joyst
760 REM ********jump routine check********
770 CALL MOTION(#1,0,0)
780 IF CS<>-16 THEN 820
790 CALL POSITION(#1,YP,XP)!get new position for next sprite
800 GOSUB 860 ! goto jump left
810 GOTO 700
820 IF CS<>16 THEN 1430
830 CALL POSITION(#1,YP,XP)!get new position for next sprite
840 GOSUB 1150 !goto jump right**************************
850 GOTO 700
860 REM *************jump left routine*********
870 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running!
880 CALL SPRITE(#1,CHSL,6,YP,XP)!recreate sprite1 as stop and jump characters
890 FOR PT=63 TO 67 !setup stop and jump animation
900 CALL PATTERN(#1,PT)!ANIMATE
910 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
920 NEXT DELAY
930 NEXT PT !continue animating the stop and jump until done
940 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping
950 CS=-20 :: YP=YP-3
960 CALL SPRITE(#1,CHJL,6,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion
970 FOR PT=68 TO 71 !setup jumping characters left
980 CALL PATTERN(#1,PT)
990 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1000 NEXT DELAY
1010 NEXT PT
1020 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
1030 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
1040 YP=YP+3 !RESET YP TO BE GROUND.
1050 CALL SPRITE(#1,CHLL,6,YP,XP)
1060 FOR PT=72 TO 73 !setup landing animation left
1070 CALL PATTERN(#1,PT)
1080 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1090 NEXT DELAY
1100 NEXT PT ! continue landing animation until last frame
1110 REM CS=-16::CALL MOTION(#1,0,CS)
1120 CALL POSITION(#1,YP,XP)!get new position for next sprite
1130 REM GOSUB 1980 !fall check
1140 RETURN
1150 REM *************jump right routine******
1160 CS=0 :: CALL MOTION(#1,0,CS)!joystick button pressed so STOP running! right
1170 CALL SPRITE(#1,CHSR,6,YP,XP)!recreate sprite1 as stop and jump characters right
1180 FOR PT=46 TO 50 !setup stop and jump animation right
1190 CALL PATTERN(#1,PT)
1200 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1210 NEXT DELAY
1220 NEXT PT !continue animating the stop and jump until done right
1230 CALL POSITION(#1,YP,XP)!get new postion for animating the jumping right
1240 CS=20 :: YP=YP-3 :: CALL SPRITE(#1,CHJR,6,YP,XP,RS,CS)!recreat sprite 1 as jumping characters and put in to motion right
1250 FOR PT=51 TO 54 !setup jumping characters right
1260 CALL PATTERN(#1,PT)
1270 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1280 NEXT DELAY
1290 NEXT PT
1300 CS=0 :: CALL MOTION(#1,0,CS)!stop motion at end of jumping animation to begin landing animation.
1310 CALL POSITION(#1,YP,XP)!get new position for starting landing animation.
1320 YP=YP+3
1330 CALL SPRITE(#1,CHLR,6,YP,XP)
1340 FOR PT=56 TO 56 !setup landing animation
1350 CALL PATTERN(#1,PT)
1360 FOR DELAY=1 TO 6 !these delays adjusts animation frame rate to match desired rate.
1370 NEXT DELAY
1380 NEXT PT ! continue landing animation until last frame
1390 REM CS=16::CALL MOTION(#1,0,CS)
1400 CALL POSITION(#1,YP,XP)!get new position for next sprite
1410 REM GOSUB 1980 !fall check
1420 RETURN
1430 REM **************Check Joyst Options************
1440 IF JX<>0 THEN 1470
1450 CALL MOTION(#1,0,0)
1460 GOTO 720
1470 REM ********running check***************
1480 IF JX<>-4 THEN 1510
1490 CALL POSITION(#1,YP,XP)!get new position for next sprite
1500 GOSUB 1700
1510 IF JX<>4 THEN 720
1520 CALL POSITION(#1,YP,XP)!get new position for next sprite
1530 GOSUB 1550
1540 GOTO 720 !after RETURN goto joyst check
1550 REM ************run right routine********
1560 CS=16 :: CALL SPRITE(#1,CHRR,6,YP,XP)!create the runner and send running
1570 CALL MOTION(#1,0,JX*4)
1580 FOR PT=40 TO 45 !setup for animating the run
1590 CALL PATTERN(#1,PT)
1600 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1610 GOSUB 2010 !fall check
1620 IF JX<>0 THEN 1640 ELSE 1630 !not joy pressed keep running
1630 CALL MOTION(#1,0,0):: RETURN
1640 IF JX=4 THEN 1660
1650 IF JX=-4 THEN 1690
1660 NEXT PT
1670 IF JX=4 THEN 1580
1680 CALL POSITION(#1,YP,XP)!check position and store before stopping motion
1690 RETURN
1700 REM **********run left routine**************
1710 CS=-16 :: CALL SPRITE(#1,CHRL,6,YP,XP)!create the runner and send running
1720 CALL MOTION(#1,0,JX*4)
1730 FOR PT=57 TO 62 !setup for animating the run
1740 CALL PATTERN(#1,PT)
1750 CALL JOYST(1,JX,JY):: CALL KEY(1,B,S)!check for joystick input (key is for fire button)
1760 IF JY=0 THEN 1770 ELSE 2070
1770 GOSUB 2010 !fall check
1780 REM IF S=0 THEN 1750 else 1800 !nothing pressed for button keep running
1790 IF JX<>0 THEN 1810 ELSE 1800 !not joy pressed keep running
1800 CALL MOTION(#1,0,0):: RETURN
1810 IF JX=-4 THEN 1830
1820 IF JX=4 THEN 1860
1830 NEXT PT
1840 IF JX=-4 THEN 1720
1850 CALL POSITION(#1,YP,XP)!check position and store for next sprite
1860 RETURN
1870 REM ******************level creation************************
1880 HLE=INT((RND*10)+10)
1885 CALL VCHAR(1,1,100,24)
1890 CALL VCHAR(1,28,100,24)
1900 CALL HCHAR(3,1,100,HLE-1):: CALL SPRITE(#2,126,1,GRND-3,(HLE*+1):: CALL HCHAR(3,HLE+3,100,28-(HLE+3))
1910 CALL HCHAR(3,HLE,101):: CALL HCHAR(3,HLE+2,101)
1920 CALL HCHAR(6,1,100,28)
1930 REM CALL HCHAR(7,1,100,28)
1940 REM CALL HCHAR(9,1,100,28)
1950 REM CALL HCHAR(11,1,100,28)
1960 CALL HCHAR(13,1,100,28)
1970 CALL HCHAR(15,1,100,28)
1980 CALL HCHAR(17,1,100,28)
1990 CALL HCHAR(19,1,100,28)
2000 RETURN
2010 REM *************fall check*******
2020 CALL POSITION(#1,YP,XP)
2030 CALL COINC(#1,#2,6,C)
2040 IF C<>0 THEN 2050 ELSE 2060
2050 FOR FALL=1 TO 24 :: YP=YP+1 :: CALL SPRITE(#1,CHRR,6,YP,XP):: NEXT FALL
2060 RETURN
2070 REM ***********DEMO RESET*************
2080 CALL DELSPRITE(ALL)
2090 RESTORE 160
2100 GOTO 100
 
 
Link to comment
Share on other sites

First time I've run through your efforts in this thread (and run those efforts) Sinphaltimus, It was a real treat watching the running man proggie develop. I personally liked his horizontal motion in the first version of him going across screen (the later, smoother animation made him look kinda "floaty"....not that that's a bad thing, it made him kind of a low def Zack McCracken.

 

The char definition for the character itself looked fantastic (a solitary 8x8 character isn't always easy to define, but you pulled it off with real panache), and the animation was spot on.

 

Coming from a 1980's Graphic-Design background (where we shamelessly stole every illustration ever made in the 50's) "Bob" made me laugh out loud! Although his final animation was a tad seizure inducing, it was a lot of fun, and demonstrated, that we're probably going to see some très-cool XB demos and games from you in the future!

 

Thank you for the momentary respite from a stressful week, and your kick-a$$ contribution to this graphics thread!

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Zombie walk.

post-47352-0-08218600-1478263135_thumb.gif

 

 

100 CALL CLEAR::CALL SCREEN(2)
110 CALL CHAR(96,"3C2418FF9918183C")
120 CALL CHAR(97,"3C2C18F81838246C3C2C18F8181818383C34181F181C24363C34181F1818181C")
130 ZY=12::ZX=12::ZEDDIR=1
140 ZEDSTEPL=0::ZEDSETPR=0
150 CALL SPRITE(#10,97,4,ZY,ZX)
160 CALL KEY(1,K,S)::IF S<>0 THEN 170 ELSE 190
170 CALL SPRITE(#10,96,4,ZY,ZX)
180 IF ZEDDIR=1 THEN ZEDDIR=-1 ELSE ZEDDIR=1
190 IF ZEDDIR=-1 THEN 220
200 ZX=ZX+1::IF ZX>=100 THEN 210 ELSE 240
210 ZX=11::GOTO 240
220 ZX=ZX-1::IF ZX<=10 THEN 230 ELSE 240
230 ZX=99
240 IF ZEDDIR=1 THEN 250 ELSE 280
250 IF ZEDSTEPR=0 THEN 260 ELSE 270
260 CALL SPRITE(#10,100,4,ZY,ZX)::ZEDSTEPR=1::GOTO 160
270 CALL SPRITE(#10,99,4,ZY,ZX)::ZEDSTEPR=0::GOTO 160
280 IF ZEDSTEPL=0 THEN 290 ELSE 300
290 CALL SPRITE(#10,98,4,ZY,ZX)::ZEDSTEPL=1::GOTO 160
300 CALL SPRITE(#10,97,4,ZY,ZX)::ZEDSTEPL=0::GOTO 160
310 GOTO 160
  • Like 1
Link to comment
Share on other sites

 

Here is a link to the latest version of Magellan:

http://atariage.com/forums/topic/161356-magellan/page-18?do=findComment&comment=3473225

 

But note that Magellan is not a good tool for full screen bitmap editing. Multipaint in MSX1 mode is a better choice:

http://www.pouet.net/prod.php?which=66976

  • Like 2
Link to comment
Share on other sites

  • 2 months later...

I've been mulling over an idea for a graphics demo and an wondering if anyone else had attempted this....

 

"VIDEO"

 

What I mean is, super low res, like maybe 3 characters high by 4 characters wide. (24px x 32px).

 

My demo would be maybe 120 frames and only one color as a proof of concept.

 

The a 120 frame video, rotodcope it, load each frame in to Larry Wilhelm's compressor, tweak code and run. I have no idea what the frame rate would be but the graphics are small and the compressed images load super fast as I've seen in other programs.

 

Has anyone ever tried anything like this before?

 

Of course there wouldn't be any audio. At least for now.

Link to comment
Share on other sites

I still have the converter scripts online here: http://www.harmlesslion.com/software/vidconvert

 

I need to update them to let you pass parameters to Convert9918 though, especially now that there's a proper ordered dither in there.

 

The aforementioned video is here:

https://www.youtube.com/watch?v=j_J7LHCgOfc

 

And I have a collection of other videos (although many will require up to 32MB, which we don't have yet) here:

http://www.harmlesslion.com/temp/vids/

 

Even though we don't yet have the carts to play them on hardware, Classic99 supports the larger cartridges there. :)

  • Like 3
Link to comment
Share on other sites

But it's not really worth it, I guess. ;)

 

There are just some some things, while technically possible might not be too practical, however, I've found in the hobbyist community, practicality is not always taken into account. So I pose this, "YOU GOTTA BE FREAKING KIDDING ME IDEA." :lolblue:

 

You've shown that it's possible to convert video.

... so...

There are lot's of Windows based converters for many different formats and devices out there...

... so ...

Why not a converter for the TI format too?

 

So... if a video player program could be made for the FlashROM 99, and the program could read the video format off the SD card... and the fact that there are GIGABYTES on those SD cards. It's easy to see where I'm going right? Minimum requirements would only be one of Matt's 32K gadgets and a FlashROM 99... not bad eh?

 

One could then convert anything and watch them on their TI.

Link to comment
Share on other sites

The video player requires minimal-wait-state access to the data it's displaying to maintain frame rate and it requires predictable timing for the audio. To stream off an SD card isn't impossible but you'd need the microcontroller on the AVR to be able to manage getting the data into RAM, so the TI can focus on simply reading and displaying it.

 

This isn't a new idea, though. ;) I already have The Lion King (384MB) and Kung Fury (can't remember) and Dragon's Lair (96MB) converted, all can play through Classic99 using a (for-now) hack, and I have a 512MB cartridge laid out on paper.

 

Although "why not a converter for the TI format too".... isn't that what I already released?

  • Like 3
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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