iwan-iwanowitsch-goratschin Posted July 1, 2011 Share Posted July 1, 2011 Impressive work! That thing is looking awesome so far! Quote Link to comment Share on other sites More sharing options...
roland p Posted August 1, 2011 Share Posted August 1, 2011 I've now made some rotofoils. I wanted to make them scale nicely when you go back/forward, so they grow one pixel left and right when they move a scanline down. The downside of this is that the rotofoils look too small when they are at the horizon (just compare them with a tile and see). I'm afraid that if I do it the correct way, the scaling will be less smooth. Please let me now what you think. I also made the rotofoils gently dissapear at the horizon, just like the original ballblazer. Movement left/right is not implemented yet. How to test: move forward/backward (but not too much ) rotofoil_test.bin Quote Link to comment Share on other sites More sharing options...
+Random Terrain Posted August 1, 2011 Share Posted August 1, 2011 I haven't tried the older versions in a long time, so my memory is a little fuzzy, but I think this looks better than the scaling I saw before. Quote Link to comment Share on other sites More sharing options...
roland p Posted August 1, 2011 Share Posted August 1, 2011 I haven't tried the older versions in a long time, so my memory is a little fuzzy, but I think this looks better than the scaling I saw before. This one is handcrafted (the previous one was calculated), just tweaking around until it looks good. Quote Link to comment Share on other sites More sharing options...
RevEng Posted August 1, 2011 Share Posted August 1, 2011 ...The downside of this is that the rotofoils look too small when they are at the horizon (just compare them with a tile and see). I really wouldn't have noticed if you hadn't pointed it out, and nobody is going to care when the game is playing. Good progress! Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted August 1, 2011 Share Posted August 1, 2011 This one is handcrafted (the previous one was calculated), just tweaking around until it looks good. By handcrafted do you mean multiple copies of the sprite at different "zoom" levels? Quote Link to comment Share on other sites More sharing options...
roland p Posted August 1, 2011 Share Posted August 1, 2011 This one is handcrafted (the previous one was calculated), just tweaking around until it looks good. By handcrafted do you mean multiple copies of the sprite at different "zoom" levels? Yes, for each "zoom level" (every time the rotofoil gets a scanline closer) there is a different copy of the sprite. I figured out this would be the fastest way to make the rotofoils. Quote Link to comment Share on other sites More sharing options...
GroovyBee Posted August 1, 2011 Share Posted August 1, 2011 Yes, for each "zoom level" (every time the rotofoil gets a scanline closer) there is a different copy of the sprite. I figured out this would be the fastest way to make the rotofoils. Do you think it'll have much impact on the ROM size? Quote Link to comment Share on other sites More sharing options...
Keatah Posted August 1, 2011 Share Posted August 1, 2011 (edited) This one is handcrafted (the previous one was calculated), just tweaking around until it looks good. By handcrafted do you mean multiple copies of the sprite at different "zoom" levels? Yes, for each "zoom level" (every time the rotofoil gets a scanline closer) there is a different copy of the sprite. I figured out this would be the fastest way to make the rotofoils. Hahahahah!! Why don't you just say it's Pre-rendered MipMapping! Is it possible to add some detail on the "closest" or largest renderings? Like a window or just some stripes of a sort? Something like in the first rotofoil test? ballblazer_rotofoil_test.bin also, doesn't the first test have faster grid-scrolling action too? But either way, this is really really looking up! Just take your time to make it perfect and have fun while doing so. Edited August 1, 2011 by Keatah Quote Link to comment Share on other sites More sharing options...
roland p Posted August 2, 2011 Share Posted August 2, 2011 (edited) Yes, for each "zoom level" (every time the rotofoil gets a scanline closer) there is a different copy of the sprite. I figured out this would be the fastest way to make the rotofoils. Do you think it'll have much impact on the ROM size? The rotofoil is now about 1.5K, so this fits in one bank, however, if I want more representations of the rotofoil it might be a problem. But for now, I keep it simple. Hahahahah!! Why don't you just say it's Pre-rendered MipMapping! Is it possible to add some detail on the "closest" or largest renderings? Like a window or just some stripes of a sort? Something like in the first rotofoil test? ballblazer_rotofoil_test.bin also, doesn't the first test have faster grid-scrolling action too? But either way, this is really really looking up! Just take your time to make it perfect and have fun while doing so. I can add windows by cutting a bit out of the current sprites. The first test seems faster indeed. I checked with the 5200 version and that version seems to be even faster! I have to tweak a bit with friction and acceleration I guess. I now chose values which produced a checkerboard that looks nice in motion. Edited August 2, 2011 by roland p Quote Link to comment Share on other sites More sharing options...
djmips Posted August 2, 2011 Share Posted August 2, 2011 I was curious how you planned on putting in the goal posts and ball? Quote Link to comment Share on other sites More sharing options...
roland p Posted August 3, 2011 Share Posted August 3, 2011 (edited) I was curious how you planned on putting in the goal posts and ball? I want to use the missiles for the goalpost and the ball for the 'plasmorb'. The width will have coarse steps but the height will have fine steps so I hope it looks ok. Edited August 3, 2011 by roland p Quote Link to comment Share on other sites More sharing options...
+JAC! Posted August 11, 2011 Share Posted August 11, 2011 Maximum respect roland - this is totally ace! Also it confirms what I've learned in the past 6 months coding for the VCS: You can do amazing stuff on the VCS - but it takes ages Quote Link to comment Share on other sites More sharing options...
+JAC! Posted August 13, 2011 Share Posted August 13, 2011 Is the "DEC $84" only to get the 5 cycles delay or is the counter actually used? If not, you could use "PHA:PLA" instead of "DEC $84:NOP" to save 1 byte for every occurrence. Quote Link to comment Share on other sites More sharing options...
roland p Posted August 13, 2011 Share Posted August 13, 2011 Is the "DEC $84" only to get the 5 cycles delay or is the counter actually used? If not, you could use "PHA:PLA" instead of "DEC $84:NOP" to save 1 byte for every occurrence. Thanks, it is used for delay so it can be optimised. This is my sleep macro, I removed the LDA instructions because they trash the A register: MAC _SLEEP ;usage: SLEEP n (n>1) .CYCLES SET {1} IF .CYCLES < 2 ECHO "MACRO ERROR: '_SLEEP': Duration must be > 1" ERR ENDIF IF .CYCLES = 2 NOP ENDIF IF .CYCLES = 3 NOP 0 ENDIF IF .CYCLES = 4 NOP NOP ENDIF IF .CYCLES = 5 DEC DUMMY ENDIF IF .CYCLES = 6 ;lda ($80,X) NOP NOP NOP ENDIF IF .CYCLES = 7 PHA PLA ENDIF IF .CYCLES = 8 ;lda ($80,X) ;NOP NOP NOP NOP NOP ENDIF IF .CYCLES = 9 DEC DUMMY NOP NOP ENDIF IF .CYCLES = 10 DEC DUMMY DEC DUMMY ENDIF IF .CYCLES = 11 DEC DUMMY NOP NOP NOP ; STA $8000,X ;5 ; LDA ($80,X) ;6 ENDIF IF .CYCLES = 12 JSR WasteTime12 ENDIF IF .CYCLES = 13 DEC DUMMY DEC DUMMY NOP 0 ;STA $8000,X ;LDA ($80,X) ;NOP ENDIF IF .CYCLES >= 14 JSR WasteTime14 - [.CYCLES - 14] ENDIF ENDM I borrowed some code from this topic: http://www.atariage.com/forums/topic/180714-request-for-programming-tips/page__view__findpost__p__2264304 Quote Link to comment Share on other sites More sharing options...
+Propane13 Posted August 13, 2011 Share Posted August 13, 2011 That is a fine macro. I may have to use that one someday-- thanks for sharing. -John Quote Link to comment Share on other sites More sharing options...
roland p Posted August 13, 2011 Share Posted August 13, 2011 (edited) That is a fine macro. I may have to use that one someday-- thanks for sharing. -John It needs this table: ;WasteTime SUBROUTINE .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 .byte $80 ;+0 36 cycles .byte $80 ;+1 35 .byte $80 ;+2 34 .byte $80 ;+3 33 .byte $80 ;+4 32 .byte $80 ;+5 31 .byte $80 ;+6 30 .byte $80 ;+7 29 .byte $80 ;+8 28 .byte $80 ;+9 27 .byte $80 ;+10 26 .byte $80 ;+11 25 .byte $80 ;+12 24 .byte $80 ;+13 23 .byte $80 ;+14 22 .byte $80 ;+15 21 .byte $80 ;+16 20 .byte $80 ;+17 19 .byte $80 ;+18 18 .byte $80 ;+19 17 .byte $80 ;+20 16 .byte $04 ;+21 15 WasteTime14 nop ;+22 14 WasteTime12 rts ;+23 12 Thanks to Omegamatrix Edited August 13, 2011 by roland p Quote Link to comment Share on other sites More sharing options...
+JAC! Posted August 15, 2011 Share Posted August 15, 2011 Nice. I used to have 2 Wait... sub routines (one ofr the even and one for the odd delayes), so this one evens saves on byte. Also in the macro IF .CYCLES = 11 DEC DUMMY NOP NOP NOP is the same pattern, hence IF .CYCLES = 11 PHA PLA NOP NOP saves one more. Not sure if it's relevant for 32 KB, but who knows. BTW: The way you bounce off at the playfield limits feels and looks really cool! Quote Link to comment Share on other sites More sharing options...
philipj Posted August 15, 2011 Share Posted August 15, 2011 I just tried the rom out and man... I'm blown away. This is excellent stuff. Quote Link to comment Share on other sites More sharing options...
Keatah Posted August 15, 2011 Share Posted August 15, 2011 (edited) ..and showing us snippets of code and demos and how it's done, that's great! This is 2600 homebrewing at its best I'm sure. Edited August 15, 2011 by Keatah Quote Link to comment Share on other sites More sharing options...
Godzilla Posted August 16, 2011 Share Posted August 16, 2011 yes this is truly supreme! great work! Quote Link to comment Share on other sites More sharing options...
djmips Posted August 16, 2011 Share Posted August 16, 2011 That macro is a total 'waste of time' Hahaha actually pretty cool. Thanks. I'll add it to my quiver. 1 Quote Link to comment Share on other sites More sharing options...
roland p Posted August 26, 2011 Share Posted August 26, 2011 (edited) Now I've included: - horizontal motion of the rotofoil, including motion behind the horizon. - rotofoil scales a little at the horizon. - masking left/right of grp0 and grp1 The masking of the double and quad sized rotofoils may seem a little weird, but this is the best I could do. I have to fix a few glitches but the rotofoil display seems pretty much finished now. Maybe I could increase the resolution of vertical placement by alternating the STA GRP0 and STA GRP1 and use VDEL for nudging the rotofoil a scanline up/down. rotofoil_test2.bin Edited August 26, 2011 by roland p 3 Quote Link to comment Share on other sites More sharing options...
+SpiceWare Posted August 26, 2011 Share Posted August 26, 2011 Cool! I implemented the same masking for Chun Li as well. Works great for single sized sprites, and while it looked odd at first for double and quad sprites, it is much better than the wrap-around graphics or having sprites disappear as soon as they touch the edge of the screen. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted August 26, 2011 Share Posted August 26, 2011 (edited) This is cool. I'm pretty sure there's not enough raster time left for this, but maybe you might use the M0/M1 to overlap the 0..3 clipped pixels at position 0.33 and 156..159. This would work at least in case there is no transparent area inside the rotofoil. Edited August 26, 2011 by JAC! 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.