matthew180 Posted September 13, 2010 Share Posted September 13, 2010 It has been rather quiet on the forum lately (I think summer had a lot to do with it), and I miss all the activity and development that was going on during the first two game contests. That and I think a few people are MIA, like what happened to Codex? Anyway, since we have already done two game contests I thought I might propose something little different. I'm willing to sponsor (provide a prize or two for) an animation and special effects contest. Basically the kind of thing that you might do as a transition between screens, title screens, smooth scrolling text, windowing, explosions, movement, color cycling tricks, sounds, etc. The focus would be on usability in a game or other program. Two examples would be the: 1. The "entrance" of FlyGuy in my FlyGuyII remake 2. Owen's screen transition in Lemonade Stand (which I remember seeing at the Faire last year and I liked the effect a lot, and it was done in XB!) No restrictions on language or anything, but it has to run on a real 99/4A in a 32K,SSSD,XB/EA configuration. What I'd like to see emerge from this contest is a library of pluggable code and examples that people can use when making games or whatever. For me it is easier to start with an idea and see what is possible rather than starting from scratch. It is also fun to see some of this stuff and wonder in amazement how it was done, then be able to see the code and use it! Since I now have about one hundred 64K Boards available, I'll put one of those up as a prize with your choice of EPROM size (64, 128, 256, 512.) I'll even burn it with whatever you want. :-) I could also put up a PITFALL! cart with manual (providing I can get the printing sorted) if Retroclouds gives his blessing. I would put up an F18A, but they are not ready yet... I would like some help on judging too, if anyone does not have time to compete, but still wants to participate in some way. I didn't want to think too hard about the judging criteria yet, but I think it is only fair that contestants know what they will be judged upon. So, here is some initial criteria, subject to change based on group feedback: 1. Size. 1 to 10 points. Size is critical on our little 99/4A, so the smaller the size, the more points. I'm thinking of basing this on a percentage of usage. For XB your program would be loaded and the SIZE command run. That would be divided by the value of SIZE without any program loaded, and multiplied by 100 to get a percentage, which would then inversely correlate to the 10 points, i.e. 1% to 9% is 10 points, 10% to 19% is 9 points, etc. For assembly language the same thing would apply, however the compiled object code would be divided by >8000 (32K) which is the amount or RAM available to an assembly language program, and roughly the same amount of memory available to XB. There will also be the human factor of "damn, that's small" to make sure the size comparisons are consistent. This means that XB programmers don't need to try and cram everything on a single line (that makes reading code a lot harder.) Last, how much RAM being used while running will be considered. So even if you have a 1-liner, but it allocates an 8K array or something, that will count against the size and reduce the points. 2. Ease of use. 1 to 10 points. How easy it is to use the effect in a larger program. This includes code readability, commenting, etc. Comments will not count against XB users for size (since REM statements take up real memory.) You could also submit a runnable version and a documented version. 3. Wow factor. 1 to 10 points. How cool is the effect. Remember, it does not have to be big or elaborate to get a good "wow". A "that's pretty freaking neat" is just as good as "wow". :-) 4. Cleverness. 1 to 10 points. Did you come up with doing something in a way never shown before. This includes using XB or assembly instructions in interesting ways. An example would be the way Codex, in the original FlyGuy, managed to store an entire level using a single number! That was pretty clever. 5. Smoothness. 1 to 10 points. How fast (set up time) and smooth the effect runs or sounds (in the case of audio.) I think there was 1 more category but I can't remember. Thus 50 points total, and fine grained enough to balance out the results I think. I'm not sure how long this should run, but I'm thinking 30 days? So judging could begin on Oct 16th, which is actually a little longer than 30 days. You can enter multiple effects, but only 1 will be considered per user so you will have to let us know which one you want as the final in the contest. Feel free to start other threads based on your effect for discussion, etc., but please submit all final entries to this thread. Anyone interested? Matthew Quote Link to comment Share on other sites More sharing options...
ti99iuc Posted September 13, 2010 Share Posted September 13, 2010 I always loved the demo scenes, and since dell'amiga and commodore64 ... would be wonderful if some good programmer can program a intro / demo for ti99!! .... there would be a starting demo scenes for our ti99! beautiful would be able to make one with the new polyphonic music .. Quote Link to comment Share on other sites More sharing options...
matthew180 Posted September 13, 2010 Author Share Posted September 13, 2010 I was thinking about a Demo Scene style contest, so maybe this one will get people warmed up for one! There are some MSX guys who do that kind of thing and they made some very impressive demo's for the MSX1 which use the 9918A. Matthew Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 14, 2010 Share Posted September 14, 2010 Nasty secret--- that Lemonade Stand effect was written in assembly. it's CALL LINKed. If you DL the Lemonade Stand zip from my website the source code for that subroutine is included. And I didn't write it, either. It was a gift. I love this idea, by the way. I might enter something, who knows. Quote Link to comment Share on other sites More sharing options...
matthew180 Posted September 14, 2010 Author Share Posted September 14, 2010 Well, hopefully whoever wrote it will submit it, or give you permission to. I really like it and I'd like to see it distilled into a stand alone subroutine to include in assembly programs (or usage info for using in XB.) So far it looks like there won't be much competition though. I hope our little corner of A.A. has not lost its steam. Matthew Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted September 14, 2010 Share Posted September 14, 2010 I'd love to enter but I've just started a couple of projects for the Intellivision. Those along with my 7800 stuff is keeping me pretty occupied at the moment. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 14, 2010 Share Posted September 14, 2010 (edited) Where is that redneck?? Hull, you around? . It's a magnificent effect. I believe it just scrambles the character def table several times and then returns control back to XB. The source code is on my website in a couple forms. The zipfile containing the FIAD version has the source sitting as an individual file and the .DSK version has it included as well. Marc is quite a fantastic programmer. I'd love to see more from him on the software side once he is done with his very cool SID card. Edited September 14, 2010 by Opry99er Quote Link to comment Share on other sites More sharing options...
+retroclouds Posted September 14, 2010 Share Posted September 14, 2010 ..... I could also put up a PITFALL! cart with manual (providing I can get the printing sorted) if Retroclouds gives his blessing. I would put up an F18A, but they are not ready yet... you have my blessing for the Pitfall! cart with manual Thanks for starting this new competion Quote Link to comment Share on other sites More sharing options...
marc.hull Posted September 14, 2010 Share Posted September 14, 2010 Where is that redneck?? Hull, you around? . It's a magnificent effect. I believe it just scrambles the character def table several times and then returns control back to XB. The source code is on my website in a couple forms. The zipfile containing the FIAD version has the source sitting as an individual file and the .DSK version has it included as well. Marc is quite a fantastic programmer. I'd love to see more from him on the software side once he is done with his very cool SID card. It's pretty simple really. It just reads the SIT one at a time and if the char is greater than >20+whatever offset the language is using then it decrements it by a few (cant remember how many) and then writes it back to the screen. It does this until all values are >20+the offset. Owen has the source maybe he can post it. I'm a little busy to enter the demo contest this go around but it sounds pretty neat. I'd like to help judge if you need assistance still and I would make one suggestion... All entrants should have a cool 80's sounding handle to qualify Quote Link to comment Share on other sites More sharing options...
InfernalKeith Posted September 14, 2010 Share Posted September 14, 2010 One more vote of thanks and support for this contest. This isn't my area of expertise at all, so I won't have an entry to contribute, but I look forward to seeing some great stuff develop. I'm trying to regain some "steam" over here, in the form of more TI time... my guess is as everyone's lives get more and less busy, there'll be 'boom' and 'bust' times on AA, and we'll see more surges of activity and interest as people's spare time frees up. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 14, 2010 Share Posted September 14, 2010 I'll post that source code in a minute. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 14, 2010 Share Posted September 14, 2010 Compliments of Marc Hull. This is called "MELT" DEF MELT VDPWA EQU >8C02 VDPWD EQU >8C00 VDPRD EQU >8800 BUF BSS 768 MELT LI R6,->0100 LI R0,0 LI R1,BUF LI R2,768 SWPB R0 MOVB R0,@VDPWA SWPB R0 MOVB R0,@VDPWA VMBW MOVB @VDPRD,*R1+ DEC R2 JNE VMBW START LI R1,BUF CLR R5 LOOP1 CLR R2 MOVB *R1,R2 CI R2,>8000 JEQ NEXT JL ADJUST A R6,R2 AI R6,->0100 CI R6,->1F00 JNE NOREST LI R6,->0100 NOREST LI R5,1 MOVB R2,*R1 JMP NEXT ADJUST LI R2,>8000 LI R5,1 MOVB R2,*R1 NEXT INC R1 CI R1,BUF+768 JNE LOOP1 CI R5,0 JEQ DONE CLR R0 LI R1,BUF LI R2,768 ORI R0,>4000 (THIS ROUTINE CHANGES THE SWPB R0 MEMORY CONTENTS) MOVB R0,@VDPWA SWPB R0 MOVB R0,@VDPWA NOP VMBW1 MOVB *R1+,@VDPWD DEC R2 JNE VMBW1 LI R0,>9F00 MOVB R0,@>8400 TURN SOUND OFF FOR OWENS PROG JMP START DONE RT END MELT Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 14, 2010 Share Posted September 14, 2010 (edited) I'm sure Sometimes99er won't me mind showing this... It's something he posted to the Atariventure thread, and it's just beautiful. It looks better on hardware than in emulation, but you can see it. =) 100 CALL CLEAR :: CALL SCREEN(5) :: CALL MAGNIFY(3) 110 CALL CHAR(48,"1C0F0707010100000306000000000000000080E0E0F87CFCC") 120 CALL CHAR(52,"381F0F0F030100000306000000000000000080C0C0F87CFECE") 130 CALL CHAR(56,"603C1F0F07010000030600000000000000000080C0F878FEDF07") 140 CALL CHAR(60,"0080701E0F03000003060000000000000000000080F8F8FCDE0F0701") 150 CALL CHAR(64,"000000007C0F0F0003060000000000000000000000D8F8F8DC1E0F0701") 160 CALL CHAR(68,"000000000000000F3D67040000000000000000000018F8F8DC1C1E0E0E020202") 170 CALL CHAR(72,"0000000000000003070F0C1800000000000000000018F8F8FC1C0E0E0E060604") 180 CALL CHAR(76,"00000000000003060D1B0400000000000000000000F8F8FCDC1E0E0E060602") 190 CALL CHAR(80,"00000000071F7F00010304000000000000000000C0F8FCFCDE1E0E060202") 200 CALL CHAR(84,"0000067F7F0701000103040000000000000000C0C0F8FCFCDE0E06") 210 CALL CHAR(88,"003E0F07070100000302040000000000000080E0E0F8FCFCCC") 220 CALL CHAR(92,"000F07030100000003020400000000000080C0E0E0F878F8C") 230 CALL CHAR(96,"180F07070101000003060400000000000080C0E0E0FC78F8C") 240 CALL SPRITE(#1,48,2,120,10,-1, 250 FOR A=48 TO 96 STEP 4 :: CALL PATTERN(#1,A) :: CALL SOUND(10,110,30) :: NEXT A :: GOTO 250 My favorite part is that this is done in XB. Quite cool. Edited September 14, 2010 by Opry99er 1 Quote Link to comment Share on other sites More sharing options...
matthew180 Posted September 14, 2010 Author Share Posted September 14, 2010 (edited) Cool. I'll have to check that out later tonight and see what I can do with it. :-) Edit: so far you are winning this contest... Matthew Edited September 14, 2010 by matthew180 Quote Link to comment Share on other sites More sharing options...
+adamantyr Posted September 14, 2010 Share Posted September 14, 2010 Well, I'm really focused on trying to get my CRPG done before getting side-lined, but I can share this: I plan to use sprite graphics to create special effects in combat. One of my requirements was the ability to have them move in circles. I also did not want to use the nasty floating-point mathematical functions. So I wrote my own integer-based system: * Data block for trigonometric values TRGDAT BYTE 0,6,12,18,25,31,37,43 BYTE 49,56,62,68,74,80,86,92 BYTE 97,103,109,115,120,126,131,136 BYTE 142,147,152,157,162,167,171,176 BYTE 181,185,189,193,197,201,205,209 BYTE 212,216,219,222,225,228,231,234 BYTE 236,238,241,243,244,246,248,249 BYTE 251,252,253,254,254,255,255,255 * R0 = Radius * R1 - Angle (0-255) * R2 = Position Adjustment TRIGX AI R1,64 ANDI R1,>00FF TRIGY MOV R11,*R10+ MOV R1,R3 SRL R3,6 JEQ TG1 CI R3,1 JEQ TG2 CI R3,2 JEQ TG3 MOVB @TRGDAT(R1),R2 SRL R2,8 AI R2,-256 ABS R2 MPY R0,R2 DIV @W256,R2 NEG R2 JMP TG4 TG1 MOVB @TRGDAT(R1),R2 SRL R2,8 MPY R0,R2 DIV @W256,R2 JMP TG4 TG2 MOVB @TRGDAT(R1),R2 SRL R2,8 AI R2,-256 ABS R2 MPY R0,R2 DIV @W256,R2 JMP TG4 TG3 MOV @TRGDAT(R1),R2 SRL R2,8 MPY R0,R2 DIV @W256,R2 NEG R2 TG4 RT You supply your radius and angle, and it returns an X and Y position adjustment in R2. I have a demo here as a MESS disk image. You can use TI99Dir if you want to extract the files to Classic99. 1. Insert the E/A cartridge (or set the ROM, whatever) 2. Select option #3 3. Type in "DSK#.CIRCLE" where # is the disk you've extracted the files to 4. Press and hold any key Adamantyr Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 15, 2010 Share Posted September 15, 2010 Ill try this out in the AM adamantyr, thanks. I'm gonna try to come up with some cool XB demos once I finish CC. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted September 15, 2010 Share Posted September 15, 2010 (edited) Thanks to Owen for remembering my old "dude looks like a lady" XB animation. Was supposed to be a dragon.This one is called FAT, and it takes whatever character patterns are available (in VDP memory) and make them "fat". Basically I'm using two instructions, SRL and SOC.SRL = Shift Right Logical. It moves all pixels one position to the right.SOC = Set Ones Corresponding. It takes the pixels moved right and combines them with the original pixels. A "fat" effect ... Edited November 17, 2013 by sometimes99er Quote Link to comment Share on other sites More sharing options...
unhuman Posted September 15, 2010 Share Posted September 15, 2010 Ohh... trying to draw me in again, eh? I have a really nice explosion in the game (XB) that I was working on and haven't for a while... Would prefer the explosion's delivery first in my game, but I just might have to enter. -H Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 15, 2010 Share Posted September 15, 2010 I found the first successful program I ever wrote. =) haha... I pasted it below. Please understand that I post this for nostalgia and the "ha ha" factor, and not as an entry into this contest. =) I remember writing this.... took me two hours to get it to work and I was so frustrated... it's pretty awesome to find little stuff like this. It was on an old 5.25 floppy I was going through last night. The disk was corrupted and this was the only thing I could get off of it. =) 100 CALL CLEAR 110 CALL SCREEN(16) 120 PRINT "COLOR TEST" 130 PRINT 140 PRINT 150 PRINT "BBD8($*!*;" 160 PRINT "b8*Blshue," 170 PRINT "8ghsn#&*LV" 180 PRINT "hs84$*()B," 190 PRINT "fF*N0R#*2F" 191 PRINT "***OWEN***" 192 PRINT "**FIRST***" 193 PRINT "**PROGRAM*" 194 PRINT "BKFH**3290" 200 FOR S=2 TO 14 210 FG=INT(RND*10)+4 220 BG=INT(RND*10)+4 230 CALL COLOR(S,FG,BG) 240 NEXT S 250 GOTO 200 Good memories! Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 15, 2010 Share Posted September 15, 2010 This is another of my favorite XB effects. Karsten wrote the Brick program, and I added the SPRITE for effect. ***For those of you who don't know, sometimes99er is a badass 100 CALL MAGNIFY(3) 110 CALL CHAR(96,"0F1F1C1C1E1F0F03030307070202020384C4241424C4841FC43C040480804070") 120 CALL CHAR(100,"0F1F1C1C1E1F0F03030307070303030380C0201020C18204A8502840000080E0") 130 CALL CHAR(104,"0F1F1C1C1E1F0F03030307070305080E80C0201020C080000040FF4080008070") 140 CALL CLEAR 150 CALL SCREEN(2) 160 CALL CHAR(33,"FF") 170 CALL HCHAR(1,1,40,256) 180 CALL HCHAR(8,1,33,32) 190 CALL COLOR(1,15,1) 200 CALL COLOR(2,15,7) 210 CALL SPRITE(#1,96,2,42,100) 220 CALL PATTERN(#1,96) 230 CALL CHAR(40,"FF202020FF020202") 240 CALL CHAR(40,"FF404040FF040404") 250 CALL PATTERN(#1,100) 260 CALL CHAR(40,"FF808080FF080808") 270 CALL CHAR(40,"FF010101FF10101") 280 CALL PATTERN(#1,104) 290 CALL CHAR(40,"FF020202FF20202") 300 CALL CHAR(40,"FF040404FF40404") 310 CALL PATTERN(#1,100) 320 CALL CHAR(40,"FF080808FF80808") 330 CALL CHAR(40,"FF101010FF010101") 340 GOTO 220 1 Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 15, 2010 Share Posted September 15, 2010 Hey sometimes--- that SRL/SOC font thing is pretty wicked! I am very impressed. To reverse it, you would just Re-write the original TEXT to the screen, thereby negating the effect... This could be useful in many applications--and not just for text. Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted September 15, 2010 Share Posted September 15, 2010 Hey sometimes--- that SRL/SOC font thing is pretty wicked! I am very impressed. To reverse it, you would just Re-write the original TEXT to the screen, thereby negating the effect... This could be useful in many applications--and not just for text. Nah, you'd do a CALL CHARSET. Wouldn't you ? Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted September 15, 2010 Share Posted September 15, 2010 ***For those of you who don't know, sometimes99er is a badass Likewise ! 100 CALL CLEAR :: CALL SCREEN(1) :: N=4 110 READ A$ :: IF A$="END" THEN 130 120 DISPLAY AT(N,1):A$ :: N=N+1 :: GOTO 110 130 CALL COLOR(1,12,14) 140 CALL CHAR(35,"B844A2928A443A") :: CALL SOUND(100,110,0,111,0) 150 CALL CHAR(35,"38549292925438") :: CALL SOUND(100,130,0,131,0) 160 CALL CHAR(35,"3A448A92A244B8") :: CALL SOUND(100,220,0,221,0) 170 CALL CHAR(35,"384482FE824438") :: CALL SOUND(100,147,0,148,0) 180 GOTO 140 190 DATA " ### ### #### ##### # #","# # # # # # #" 200 DATA " ### # #### #### # #"," # # # # # # # #" 210 DATA "#### ### # # ##### # #",""," # # ### # #" 220 DATA " # # # # # #"," ### # # # #"," # # # # #" 230 DATA " # ### ###",""," ### # # ##### # #" 240 DATA " # # # # # ## #"," # # # # #### # # #" 250 DATA " # # # # # # # ##"," ### # # ##### # #","END" Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 15, 2010 Share Posted September 15, 2010 Well, I mainly meant that if your routine FATO was modified to revert back to original that you would do it that way... I wasn't referring to the XB program, but perhaps I should have. . Yes, CHARSET would be most effiient in XB. I have yet to run your XB listing... On my phone now. Quote Link to comment Share on other sites More sharing options...
Opry99er Posted September 15, 2010 Share Posted September 15, 2010 hahaha!!!! That's awesome 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.