+atari2600land Posted January 6, 2011 Share Posted January 6, 2011 Hey, I'm fiddling around with an idea again, this time it's a thing like Yars' Revenge, and I was wondering what the Neutral Zone (the colorful thick line) in Yars' Revenge is made of and if I can duplicate it in bB. Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 6, 2011 Share Posted January 6, 2011 The Neutral Zone is made from one of the playfield registers, being fed varying parts of the program code as data. It's not an easy effect to replicate with the standard bB kernels. I did one version of it in this thread, but it sacrifices a player to do it. Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted January 6, 2011 Share Posted January 6, 2011 (edited) Related links: http://www.atariage.com/forums/topic/170090-im-doing-it-wrong-but-it-works/page__view__findpost__p__2103953 http://www.atariage.com/forums/topic/121295-batari-wrote-an-example-of-yars-revenge-ion-field-awesome/ [Oops, I see one of the links was posted already. I started replying, then had to walk away and help watch a baby for a while.] Edited January 6, 2011 by Random Terrain Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 6, 2011 Author Share Posted January 6, 2011 How would I make it different colors like in the game? EDIT : OK, figured it out. Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 6, 2011 Share Posted January 6, 2011 here's v2 with per-line color, but you lose missile1 due to the multicolor player1. It should also be noted that you can change the height of the effect with player1height, so you could create a zone that shrinks or moves around, or do something entirely different, like a transporter effect. rem the energy barrier has large areas of blank space because this is a short program set kernel_options player1colors dim p1clo=player1color dim p1chi=player1color+1 datastart const datastarthi=(#>.datastart) player1x=50 player1y=90 player1height=90 player1pointerhi=datastarthi p1chi=datastarthi gameloop player1pointerlo=rand/2 p1clo=rand/2 rem COLUP0=rand REFP1=rand NUSIZ1=$07 drawscreen goto gameloop Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 7, 2011 Author Share Posted January 7, 2011 I'm fiddling around with your code and I can't figure out why the qotile's missile isn't showing. (Don't be afraid, I've remarked the use of every variable.) yar2.bas Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 7, 2011 Share Posted January 7, 2011 There were a few small things that were off... I commented the attached source code with my changes. The comments all start with "RevEng" to make it easier to find. This is looking really good! yar2.rev.bas yar2.bas.bin 2 Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 7, 2011 Author Share Posted January 7, 2011 Cool, thanks! I took your code and expanded on it even more, making this demo version (you can tell it's a demo because the colors change every 5 seconds like the early Atari 2600 games did when you first turn them on.) A surprising fact: when having player1colors on, putting "player1color=f" actually works for a one-pixel-tall sprite. I haven't checked this for sprites taller than this (which would be just about every sprite imaginable!) yar2a.bas yar2a.bas.bin Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 7, 2011 Share Posted January 7, 2011 It's impressive, especially for using the standard bB kernel! Quote Link to comment Share on other sites More sharing options...
Piggles Posted January 7, 2011 Share Posted January 7, 2011 Cool, thanks! I took your code and expanded on it even more, making this demo version (you can tell it's a demo because the colors change every 5 seconds like the early Atari 2600 games did when you first turn them on.) A surprising fact: when having player1colors on, putting "player1color=f" actually works for a one-pixel-tall sprite. I haven't checked this for sprites taller than this (which would be just about every sprite imaginable!) Well done! Go all the way good sir, and prove it can be done with bB! Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 7, 2011 Author Share Posted January 7, 2011 There's just one problem, though: The scanline count. It wavers somewhere between 261-263. This is evident when you look at the bottom of the screen and you can see it move back and forth one pixel, and you can also see the score move. Is there any way to fix this? Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 8, 2011 Share Posted January 8, 2011 (edited) I think it's a kernel bug. If I use "const pfres=25" or "const prfres=23" (instead of the current "const pfres=24") then I get a steady 262 count. Edited January 8, 2011 by RevEng Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 8, 2011 Author Share Posted January 8, 2011 Yes, but the score still wobbles. What is causing that? Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 8, 2011 Share Posted January 8, 2011 (edited) Yes, but the score still wobbles. What is causing that? I see what you mean - I was testing on the earlier version, so I missed the wobbly score thing. It looks like the kernel bug is still there... it appears to be triggered when you use no_blank_lines and pf_scroll. Here's an unofficial fix. Stick the attached std_kernel in your yar build directory, remove the .txt extension, and rebuild your binary. std_kernel.asm.txt I can't guarantee that I haven't introduced some other bug with this, so don't replace your official kernel with it. [edit - anyone wanting to see the change, just search for comments with "RevEng"] Edited January 8, 2011 by RevEng Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 8, 2011 Author Share Posted January 8, 2011 Is there a way to get rid of the little line the same color as the playfield that shows up when the shield is at the bottom 3 positions? Quote Link to comment Share on other sites More sharing options...
RevEng Posted January 8, 2011 Share Posted January 8, 2011 Its the "reboot" you're doing... the register that controls VBLANK is being zeroed before the background color is zeroed. To hide the line you can do a "COLUBK=0" right before the reboot, though it would be much cleaner to not use the reboot at all. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 8, 2011 Author Share Posted January 8, 2011 Here's a newer version. Next I will start working on starting the game and moving the ship. yar3.bas.bin yar3.bas Quote Link to comment Share on other sites More sharing options...
lucifershalo Posted January 8, 2011 Share Posted January 8, 2011 Hurray for Yars 3 what is it going to be called? Yar Strikes Back Attack of The Yar or the Phantom Yar ? Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 8, 2011 Author Share Posted January 8, 2011 How about "Yars' Other Revenge"? Actually, I don't know that much about the game, so I'll have to study the game some more in the near future. And "Yar 3" is just the name of the file, not the name of the game. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 24, 2011 Author Share Posted January 24, 2011 To start the game, press fire. To fire the missile, press fire. Shooting the qotile doesn't work yet, and also the qotile doesn't spin and come at you yet. yar4.bas.bin yar4.bas Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 25, 2011 Author Share Posted January 25, 2011 Been slaving away at this for hours now since the last version. I've included a lot of things, including sfx. One thing I am having trouble with is thinking about how to display the Zorlon cannon. If anyone has any ideas, feel free to reply. yar5.bas.bin yar5.bas Quote Link to comment Share on other sites More sharing options...
dbks Posted January 26, 2011 Share Posted January 26, 2011 Been slaving away at this for hours now since the last version. I've included a lot of things, including sfx. One thing I am having trouble with is thinking about how to display the Zorlon cannon. If anyone has any ideas, feel free to reply. I looked at your code and you set kernel_options player1colors no_blank_lines so that means no missile0 && missile1 available, right? So you must use player1. I was just messing around and I came up with the following for using player1: fire button - shoots the cannon joystick - move yar guy in the code set ZORLONMAXCOUNTER = 1 to draw it every frame or ZORLONMAXCOUNTER = n to draw it every n frames (this is so you can draw other things with player1 on the 'off' frames for the zorlon cannon). zorlonCannonPlayerSprites.bas.bin zorlonCannonPlayerSprites.bas I also did version using the missiles, but I don't think it came out so good and you aren't using them any way, but here it is: zorlonCannonMissiles.bas.bin zorlonCannonMissiles.bas My code might be messy and totally not what you're looking for, but I thought I'd show what I came up with. Quote Link to comment Share on other sites More sharing options...
+atari2600land Posted January 26, 2011 Author Share Posted January 26, 2011 I guess the only way to show the Zorlon cannon is to have p1 flicker twice. I really didn't want to do this, but in the end, I don't know if it looks good or if it's a total flickerfest. yar6.bas.bin yar6.bas Quote Link to comment Share on other sites More sharing options...
yuppicide Posted January 28, 2011 Share Posted January 28, 2011 Wow! That is fantastic!!!!! You should make Yars Revenge 2. Quote Link to comment Share on other sites More sharing options...
+Philsan Posted January 28, 2011 Share Posted January 28, 2011 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.