Tursi Posted September 13, 2017 Share Posted September 13, 2017 Just a little quickie... I saw a neat screen in an old Sega Genesis demo and wanted to see if I could reproduce it... I did it in XB for speed of coding. It came out all right, though I'd like to use assembly to get it just right. Some day. In the meantime, maybe a little type-in (or paste-in these days) demo. 100 MID=11 110 CALL CLEAR 120 CALL SCREEN(2) 130 CALL COLOR(9,5,1) 140 CALL COLOR(10,6,5) 150 CALL COLOR(11,16,6) 160 CALL COLOR(12,16,1) 170 D$="0000114455AAEEBBFFFF" 180 CALL CHAR(96,D$,104,D$,112,D$) 190 CALL CHAR(113,RPT$("F",16)) 200 R=MID 210 CALL HCHAR(R,1,96,32) 220 R=R+1 230 CALL HCHAR(R,1,104,32) 240 R=R+1 250 CALL HCHAR(R,1,112,32) 260 R=R+1 270 CALL HCHAR(R,1,113,32) 280 R=R+1 290 CALL CHAR(97,RPT$("FF00",4)) 300 CALL CHAR(98,"00FF0000FF0000FF") 310 CALL CHAR(99,"0000FF000000FF") 320 CALL CHAR(100,"0000FF00000000FF") 330 CALL CHAR(101,"0000000000FF") 340 CALL CHAR(102,"00000000FF") 350 CALL HCHAR(R,1,97,32) 360 R=R+1 370 CALL HCHAR(R,1,98,32) 380 R=R+1 390 CALL HCHAR(R,1,99,32) 400 R=R+1 410 CALL HCHAR(R,1,100,32) 420 R=R+1 430 CALL HCHAR(R,1,101,32) 440 R=R+1 450 CALL HCHAR(R,1,102,32) 460 R=R+1 470 IF R<24 THEN 450 480 CALL CHAR(120,"00000008"&RPT$("0",56)) 490 FOR I=1 TO 15 500 CALL HCHAR(INT(RND*(MID-1))+1,INT(RND*32)+1,120) 510 NEXT I 520 CALL MAGNIFY(4) 530 S=5 540 FOR I=MID TO 24 STEP 4 550 R=(I-1)*8+1 :: C=0 560 FOR J=0 TO 3 570 CALL SPRITE(#S,32,1,R,255) 580 S=S+1 590 NEXT J 600 NEXT I 610 THRES=107 620 SMAX=7 630 FOR I=0 TO SMAX 640 RS=INT(RND*20)+5 650 CALL SPRITE(#S+I,120,16,THRES,127,-RS,INT(RND*(RS*2))-RS) 660 NEXT I 670 CALL CHAR(36,"7FC0F8790909090909090B0F0F0F0F03FE1FFFFEF0F0F0F0F0F0F0F0F0F0F0C0") 680 CALL CHAR(40,"03070C090909090909090B0F0F0F0F03C0F0F0F0F0F0F0F0F0F0F0F0F0F0F0C0") 690 CALL CHAR(44,"3F70FFB0A0E0F0FFFF7F00007FC0FF7FF87CFE6E262666E6E6E62E2EFE7EFCF8") 700 CALL CHAR(48,"3F70FFB0A0E0F0FFFF7F00007FC0FF7FF87CFE6E262666E6E6E62E2EFE7EFCF8") 710 FOR I=1 TO 4 720 CALL SPRITE(#I,36+(I-1)*4,3,116+(I-1)*4,60+(I-1)*36) 730 NEXT I 740 FOR I=1 TO 4 :: CALL MOTION(#I,-2,-:: NEXT I 750 FOR I=0 TO SMAX 760 CALL POSITION(#I+S,R,C) 770 IF R<=THRES THEN 810 780 RS=INT(RND*20)+5 790 CALL MOTION(#I+S,-RS,INT(RND*(RS*2))-RS) 800 CALL LOCATE(#I+S,THRES,127) 810 NEXT I 820 FOR I=1 TO 4 830 CALL POSITION(#I,R,C) 840 IF R<=THRES THEN CALL MOTION(#I,2,-8)ELSE IF R>148 THEN CALL MOTION(#I,-2,- 850 NEXT I 860 GOTO 750 870 GOTO 870 7 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted September 13, 2017 Share Posted September 13, 2017 Very nice. Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted September 13, 2017 Share Posted September 13, 2017 cool Quote Link to comment Share on other sites More sharing options...
PeBo Posted September 13, 2017 Share Posted September 13, 2017 Gotta love what can be accomplished with a few lines of (mainly) character redefinition. Quote Link to comment Share on other sites More sharing options...
+eebuckeye Posted September 13, 2017 Share Posted September 13, 2017 is there an online emulator you can copy and paste the code? Quote Link to comment Share on other sites More sharing options...
Asmusr Posted September 13, 2017 Share Posted September 13, 2017 is there an online emulator you can copy and paste the code? Yes: http://js99er.net/ Quote Link to comment Share on other sites More sharing options...
+eebuckeye Posted September 13, 2017 Share Posted September 13, 2017 That is awesome! Thanks! Quote Link to comment Share on other sites More sharing options...
Tursi Posted September 13, 2017 Author Share Posted September 13, 2017 Yes: http://js99er.net/ I'm on the road with nothing but a Chromebook -- so JS99er is actually where I developed it too. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.