Yosikuma Posted January 6, 2017 Share Posted January 6, 2017 Well damn, and here I was hoping I could finally implement my Pitfall-esque rope mechanic. Some day .. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted April 29, 2017 Share Posted April 29, 2017 It looks like this effect doesn't work with the multisprite kernel, sadly. Any chance that I'm mistaken? Quote Link to comment Share on other sites More sharing options...
RevEng Posted April 30, 2017 Author Share Posted April 30, 2017 Sad but correct. The multisprite kernel does a bunch of mid-screen hmoves that reset the effect, messing it up. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted May 1, 2017 Share Posted May 1, 2017 A couple more notes from my testing (and I'm happy to have any of these refuted): * This is only compatible with the standard kernel if NO_BLANK_LINES is enabled * There is no way to exploit this trick on the Flashback Portable (I guess this was too much for me to hope for given that it is based on a hardware bug. It worked as expected in Stella, however). Quote Link to comment Share on other sites More sharing options...
RevEng Posted May 1, 2017 Author Share Posted May 1, 2017 At work right now, but AFAIK it should work without NO_BLANK_LINES. Since the missile will be under kernel control, you'll need to position the missile vertically and set it's height. The effect should show up where the missle would normally be. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted May 2, 2017 Share Posted May 2, 2017 At work right now, but AFAIK it should work without NO_BLANK_LINES. Since the missile will be under kernel control, you'll need to position the missile vertically and set it's height. The effect should show up where the missle would normally be. Confirmed - thanks! Hopefully this will be my last question, but it looks like this bug only applies to missile 0, and not missile 1? I tried setting ENAM1=2 and positioning missile 1, but no luck. My hope was to be able to use the other missile so that I could use a kernel option that took away missile 1 instead of missile 0 (player1colors) and still retain one working missile. Quote Link to comment Share on other sites More sharing options...
RevEng Posted May 2, 2017 Author Share Posted May 2, 2017 The TIA bug applies to all positionable objects. To switch my example over to missile1, just change references in the vblank routine from HMM0 to HMM1. (And change any other missile0*/ENAM0 references to missile1*/ENAM1) Quote Link to comment Share on other sites More sharing options...
+Karl G Posted May 2, 2017 Share Posted May 2, 2017 Also confirmed - I had missed changing the assembly on my previous attempt. Thanks again! Quote Link to comment Share on other sites More sharing options...
RevEng Posted May 2, 2017 Author Share Posted May 2, 2017 Not a problem. You're welcome. Quote Link to comment Share on other sites More sharing options...
+Karl G Posted May 4, 2017 Share Posted May 4, 2017 Here's a slightly different example in case it is useful to anyone. Use the joystick to appear to move the ship in 8 different directions. I commented the code to show what needs to be changed to use a different missile or the ball instead in case anyone else could benefit from that. Now I just need to dream up a space game where 8 directions of movement would be fun. spaceflight.bas spaceflight.bas.bin 4 Quote Link to comment Share on other sites More sharing options...
Buckaroo Posted May 16, 2017 Share Posted May 16, 2017 This example uses both missiles on the screen at the same time and with Fixed Point 8.8 variables which can create some nice Parallax effects. I've made them as big as possible and duplicated each 3 times so they cover the majority of the screen, Is it possible to glitch the ball or players in the same way? I've been fiddling around with the variables but cant make them repeat. Controls: • Select which missile to edit ↕ Adjust by big amount ↔ Adjust by small amount Reset: Picks new Preset Difficulty Switches: Toggle missile visibility Glitch.bas Glitch.bas.bin 1 Quote Link to comment Share on other sites More sharing options...
RevEng Posted May 16, 2017 Author Share Posted May 16, 2017 This example uses both missiles on the screen at the same time and with Fixed Point 8.8 variables which can create some nice Parallax effects. I've made them as big as possible and duplicated each 3 times so they cover the majority of the screen, Well done - that is some trippy stuff! Is it possible to glitch the ball or players in the same way? I've been fiddling around with the variables but cant make them repeat. It's technically possible, yes. I'm not sure what the issue is - I'll give it a shot in the next couple days, if you don't beat me to it. Quote Link to comment Share on other sites More sharing options...
Buckaroo Posted May 17, 2017 Share Posted May 17, 2017 It's technically possible, yes. I'm not sure what the issue is - I'll give it a shot in the next couple days, if you don't beat me to it. The problem I was having was putting all 5 objects in at the same time, I was able to put one or two in before. ----------------------------------------------------------------------------------------------------------------------- This new example uses all 5 objects in the glitch player0,player1,ball,missile0 and missile1. In Visual BB I was able to make it work by keeping all of the horizontal moves on one line and calling WSYNC once You can adjust the direction/speed in the same way but are unable to turn them on or off as before. Glitch2.bas Glitch2.bas.bin 1 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted August 13, 2017 Share Posted August 13, 2017 I've noticed that the starfield effect seems to somehow interfere with horizontal player movement, as shown in this example. It happens regardless of whether the effect is done using either missile or the ball. Any ideas on what is causing this, or how to work around it? vert.bas vert.bas.bin Quote Link to comment Share on other sites More sharing options...
RevEng Posted August 13, 2017 Author Share Posted August 13, 2017 Yeah, looks the HMOVE for the player is getting retriggered. A fairly easy fix is to add this to the beginning of the vblank routine... sta HMCLR sta WSYNC Thanks for the bug report! I've already updated the previous examples in this thread. 1 Quote Link to comment Share on other sites More sharing options...
+Karl G Posted August 13, 2017 Share Posted August 13, 2017 That fixed it - thanks! 1 Quote Link to comment Share on other sites More sharing options...
Mountain King Posted December 27, 2017 Share Posted December 27, 2017 I'm trying to use missile1 instead of missile0 for the starfield. This seems like it would be a simple change in the DPC+ kernal. Change all instances of missile 0 to missile 1 and hmm0 to hmm1. But I can't seem to get it to work. Am I missing something? DPCplus.Bb.starfield.all.directions missile1.bas.bin DPCplus.Bb.starfield.all.directions missile1.bas Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted December 27, 2017 Share Posted December 27, 2017 But I can't seem to get it to work. Am I missing something? HMOVE cancels out the starfield effect. Load the ROM in Stella. hit ` to enter the debugger make sure the Prompt is active type trapwrite HMOVE watch the scanline count as you keep hitting ` to exit debugger you'll notice that bB's DPC+ Kernel hits HMOVE every-other-scanline. Quote Link to comment Share on other sites More sharing options...
RevEng Posted December 27, 2017 Author Share Posted December 27, 2017 I'm trying to use missile1 instead of missile0 for the starfield. This seems like it would be a simple change in the DPC+ kernal. Change all instances of missile 0 to missile 1 and hmm0 to hmm1. But I can't seem to get it to work. Am I missing something? Your attachment works perfectly for me, when I compile it myself. Make sure you're using the latest bB and remove all *.asm files from your build directory - the first version of the bB starfield effect that I released used a custom assembly file, but I incorporated the changes required into my bB dist. When I did that, I recall cleaning the fix up a bit. HMOVE cancels out the starfield effect. Indeed it does. But if you're already hitting HMOVE continuously, you can move some object(s) in large amounts each time, and get pretty much the same visual result as the starfield effect. It's technically not the starfield effect, since it doesn't utilize the TIA bug, but I think the TIA bug version amounts to the same thing - the object keeps getting (automatically) shifted large amounts each scanline. As a bonus, the "hit HMOVE every scanline" version of the effect should be universal and consistent between TIA versions, unlike the TIA bug version. I have a bB DPC+ example near the top of this thread, which includes a binary. Quote Link to comment Share on other sites More sharing options...
Mountain King Posted December 28, 2017 Share Posted December 28, 2017 I updated to the latest bb. That did it. Thank you. 1 Quote Link to comment Share on other sites More sharing options...
Captain Spazer Posted January 26, 2019 Share Posted January 26, 2019 How do I change missile to ball? Quote Link to comment Share on other sites More sharing options...
+Karl G Posted January 26, 2019 Share Posted January 26, 2019 Change missile0x to ballx in the bB code, and change HMM0 to HMBL in the assembly portion. 1 Quote Link to comment Share on other sites More sharing options...
Captain Spazer Posted January 26, 2019 Share Posted January 26, 2019 Hm, I did as you said, and I put it in bank 2, all I get is a red line in the top of the screen following player0, what did I do wrong? dim frame=m dim effect=n main gosub __Snowbank bank2 drawscreen goto main bank 2 __Snowbank frame=frame+1 if frame=0 then effect=effect+1 if effect>6 then effect=0 ENAM0=2 : rem ** set ENAM0=0 when you want the stars to be gone rem ** no adjustment leaves the stars in place if effect=0 then score=0 rem ** Adjusting missile0x by +1 or -1 moves the stars right or left if effect=1 then ballx=ballx-1:score=1 rem ** +8 or -8 moves the stars diagonally, and displays them closer together if effect=2 then ballx=ballx-8:score=8 rem ** +16 or -16 moves them diagonally, and displays them farther apart if effect=3 then ballx=ballx+16:score=16 rem ** +12 or -12 is quick and nearly vertical if effect=4 then ballx=ballx-12:score=12 rem ** +48 or -48 is a slow diagonal effect if effect=5 then ballx=ballx-48:score=48 rem ** +48 or -48 is a slow diagonal effect if effect=6 then ballx=ballx+32:score=32 rem ** You need to ensure the missile0x position ranges from 0-159. rem ** If missile0x is 0 and decreases, then set it to 159. rem ** If missile0x is 159 and increases, set it to 0. if ballx>200 then ballx=ballx+160 if ballx>159 then ballx=ballx-160 vblank rem ** Enable the TIA bug that causes missile0 to be repeated asm sta HMCLR sta WSYNC lda #$ff sta HMBL lda #$c0 sta WSYNC sta HMOVE sleep 5 sta HMBL end return drawscreen return Quote Link to comment Share on other sites More sharing options...
+Karl G Posted January 26, 2019 Share Posted January 26, 2019 Try adding ballheight = 255 1 Quote Link to comment Share on other sites More sharing options...
Captain Spazer Posted January 27, 2019 Share Posted January 27, 2019 It worked, thank you 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.