Cybergoth Posted October 2, 2008 Share Posted October 2, 2008 Hi there! I'm interested to see some 8-Bit games with smooth 8-ways scrolling backgrounds (think C64 Paradroid). Can you point me to some examples? Greetings, Manuel Quote Link to comment Share on other sites More sharing options...
olavese@online.no Posted October 2, 2008 Share Posted October 2, 2008 Hi there! I'm interested to see some 8-Bit games with smooth 8-ways scrolling backgrounds (think C64 Paradroid). Can you point me to some examples? Greetings, Manuel Not so sure about the smoothness, but Survivor from Synapse maybe? And Zone Ranger Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 2, 2008 Share Posted October 2, 2008 (edited) Zone Ranger does not scroll... what about Rally Speedway? Schloss Schreckenstein Last V8 Action Biker Red Max 7 cities of Gold Gauntlet/Dark Chambers Zeppelin Spelunkler Murder on the Zinderneuf Fort Apocalypse just to name few which came to my mind... Edited October 2, 2008 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted October 2, 2008 Author Share Posted October 2, 2008 Not so sure about the smoothness, but Survivor from Synapse maybe? And Zone Ranger I didn't manage to run Survivor in Atari800Win, but Zone Ranger at least. It sure is a pretty cool scrolling, but I'm assuming it is probably cheating and just using missiles and sprites for the effect? Is there anything with "more" background? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 2, 2008 Share Posted October 2, 2008 (edited) Cybergoth... Zone Ranger does not scroll but the soft sprites do... Survivor I guess you have to activate OS-B 800 mode... Edited October 2, 2008 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted October 2, 2008 Author Share Posted October 2, 2008 just to name few which came to my mind... Hey, I just found one that pretty much does what I was looking for, it's called Venus Express Did you ever release the source code? Is that kind of scrolling very expensive? What are its limits? E.g can it be expanded to fullscreen? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 2, 2008 Share Posted October 2, 2008 hahaha.... Venus? you are from C64 so you could grab Aleksi's code instead... Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted October 2, 2008 Author Share Posted October 2, 2008 hahaha.... Venus? you are from C64 so you could grab Aleksi's code instead... Really? I'd assume the scrolling part of the code was the bit where probably most of the conversion work went, so that is where your Atari magic kicks in Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 2, 2008 Share Posted October 2, 2008 haven't got the source here but maybe i posted it in this thread: http://www.atariage.com/forums/index.php?s...l=venus+express no...scrolling is far less time consuming than on c64... Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 2, 2008 Share Posted October 2, 2008 Manuel, Aleksi generates a whole map in memory and on c64 he copies the damned stuff into screen ram when needed while adjusting the soft scroll registers. on atari the hscrol register was treated with an additional lsr, as on atari you are scrolling in colour clocks not high res pixels and thanks to Antic the display list was set with 256 bytes scanlines so each charline has 256 bytes length if i remember it correct. but as soon as I can get hold on the source I can post it here. no problem at all... Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted October 2, 2008 Author Share Posted October 2, 2008 haven't got the source here but maybe i posted it in this thread: Thanks, I'll have a look. no...scrolling is far less time consuming than on c64... Could the Venus engine also scroll a more complex background, made of the whole charset? And what are the color limitations? For example I just stumbled accross the A8 Druid conversion, which both looks pretty ugly and scolls only a small portion of the screen. Quote Link to comment Share on other sites More sharing options...
bfollett Posted October 2, 2008 Share Posted October 2, 2008 If I recall, Maxwell Manor had 8 way scrolling. Bob Quote Link to comment Share on other sites More sharing options...
peteym5 Posted October 3, 2008 Share Posted October 3, 2008 Boulder Dash, could scroll in any of 8 directions. The Atari is indeed capable of scrolling on a large playfield in 8 directions and having it in perfect sync with the TV. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2008 Share Posted October 3, 2008 Manuel, aehm... what do you want to do? you can scroll whatever you want... bitmap, charset made screens etc. due to flexibility of the chipset you don't need to move whole screen parts in screen ram around.... simply adjust the screen pointers (LMS commands of the display list). Fullscreen 48x28 screens in antic mode 4 (f.e. 192x224x4) are piece of cake... no need for FLD and other VIC-tricks. http://www.atariarchives.org/dere/chapt06.php scrolling methods are many possible... you can use the "game boy" mode like I have used in Boinxx prototype. http://www.atariage.com/forums/index.php?s...5&hl=boinxx Gameboy style means scrolling 1 screen size while building "behind" the 2nd one and when reaching the end of the window jumping back to the new build one. the map is build in realtime using tiles (charpad from c64 for designing the tiles) complete map in memory means like in East Front or Venus Express. So the level layout is complete depacked in memory Cavelord: http://atari.fandal.cz/detail.php?files_id=1668 Schloss Schreckenstein http://atari.fandal.cz/detail.php?files_id=4420 there are more complex scroll techniques possible http://www.atariage.com/forums/index.php?s...p;hl=mario+bros unfortunatly the source codes seems to be deleted... this one was really clever but very weird to understand. Does anybody have all sources Analmux posted here in the forums??? Together with the pictures how the scrolling works? Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2008 Share Posted October 3, 2008 man...still love Schreckenstein plus the Axxis Komputerkunst Intro... Quote Link to comment Share on other sites More sharing options...
Cybergoth Posted October 3, 2008 Author Share Posted October 3, 2008 Manuel, aehm... what do you want to do? I just have a vague project idea at the moment and am considering it's doability. I'm not even sure wether I want to target the A8 or the NES for it or wether it is a good idea or not, just checking out what the machines can do. I'm often tempted to try A8 programming and maybe try writing a game for the Abbuc contest. The project idea itself in two words is "Paradroid 2". My three major points of critic regarding Paradroid are - The small scrolling area. - The generic graphics - The single ship level The Miggy version (Paradroid 90) actually remedies all three of them, but is missing perfection by the flawed vertical only scrolling. So my vision of Paradoid 2 is an 8-ways scrolling version of Paradroid 90 returning to an 8-Bit machine. Quote Link to comment Share on other sites More sharing options...
Oswald Posted October 3, 2008 Share Posted October 3, 2008 http://www.atariage.com/forums/index.php?s...p;hl=mario+bros[/url] unfortunatly the source codes seems to be deleted... this one was really clever but very weird to understand. Does anybody have all sources Analmux posted here in the forums??? Together with the pictures how the scrolling works? hmm gameboy style only works in one dir right? no way one could predict the direction otherwise. is it not possible to have the screen wrap around so the problem solves itself nicely ? that would be the best. the analmux thread is completely ruined Quote Link to comment Share on other sites More sharing options...
MaPa Posted October 3, 2008 Share Posted October 3, 2008 (edited) hmm gameboy style only works in one dir right? no way one could predict the direction otherwise. is it not possible to have the screen wrap around so the problem solves itself nicely ? that would be the best. the analmux thread is completely ruined IMHO gameboy style works in 8way scrolling too, you just need 2x2 screen buffer and have to update more bytes. Here somewhere on Aage is thread with MWP (Minimum Wrap/Warp? Principal) method of scrolling and some demo. It uses only just slightly more than 1 screen of ram. Sidebuffers are there automatically from setting hscroll so ANTIC fetch more bytes than screen width. Verticall buffer is not needed. You use 2 LMS instructions and change it's position inside DLIST to wrap the screen around... for me it's really hard to understand and try to code something around it. The MWP was also discussed in Crownland preview thread, and there is the demo with source too, from gauntman. Edited October 3, 2008 by MaPa Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2008 Share Posted October 3, 2008 Thanks MaPa, good that the sources are not gone... Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2008 Share Posted October 3, 2008 can someone explain me again how the MWP works? as mux deleted the threads I can not find any description plus the grafix which describe the stuff. Quote Link to comment Share on other sites More sharing options...
MaPa Posted October 3, 2008 Share Posted October 3, 2008 can someone explain me again how the MWP works? as mux deleted the threads I can not find any description plus the grafix which describe the stuff. http://atariwiki.strotmann.de/xwiki/bin/vi...nman+Atari#HMWP Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2008 Share Posted October 3, 2008 MaPa. Great! Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2008 Share Posted October 3, 2008 ok. here is the source code MADS compatible... ;======================================================================= ; Minimum Warp Principal Demo ; ; Written by Mark Schmelzenbach (aka Gauntman) ; Sep 14,2004 ; ; Developed with ATasm, although should work with most other assemblers ; as no specialized macros or non-standard features are used ; ; This is the rudimentary framework for a MWP engine, a more interesting ; demo would uncompress screen data into the borders as necessary. ; MWP allows large maps to take up minimal space, if clever compression ; is used (useful for when RAM is tight, or for 5200 games) ; ; The MWP concept was first described by AnalMux (the coder formerly ; known as ANALogue MUltipleXer) on the Atari Age prgorammig forums ; (www.atariage.com); Perform a search there for more theory... ;======================================================================= ; Some useful equates SETVBV = $E45C XITVBV = $E462 STICK0 = $278 ;======================================================================= org $4000 begin lda #<dlist ; point to our dlist sta $230 lda #>dlist sta $231 ; dummy screen filler for demo lda #<screen sta $c0 lda #>screen sta $c1 ldx #33 g0 ldy #24 txa g1 sta ($c0),y dey bpl g1 lda $c0 clc adc #24 sta $c0 lda $c1 adc #0 sta $c1 inx cpx #54 bne g0 ; note that the last line and line 0 MUST be duplicates ; any data written to the last line must also be represented in ; sline0! lda #53 ldx #23 g2 sta sline0,x dex bpl g2 ldy #<vblank; set vertical blank ldx #>vblank lda #$07; deferred jsr setvbv ; loop forever done jmp done ;================================================================== ; VBLANK - read joystick and perform scrolling ;================================================================== vblank lda 20 ; just a byte on screen lsr ; changing to add interest... lsr sta screen+4 ; read stick0 and scroll... lda stick0 and #$02 ;down bit? bne chkup lda finey bne okdn lda #8 sta finey lda #0 jsr mwp okdn dec finey chkup lda stick0 and #$01 ; up bit? bne chkrt lda finey cmp #7 bne okup lda #$ff sta finey lda #1 jsr mwp okup inc finey chkrt lda stick0 and #$08 ;right bit? bne chklf lda finex cmp #7 bne okrt lda #$ff sta finex lda #3 jsr mwp okrt inc finex chklf lda stick0 and #$04 ;left bit bne vdone lda finex bne oklf lda #8 sta finex lda #2 jsr mwp oklf dec finex vdone lda finex sta $d404 ; update fine-scroll registers lda finey sta $d405 jmp xitvbv ;================================================================== ; MWP - routine to perform MWP scroll, updates display list ; appropriately. This routine could be made tighter still ; mostly left unoptimized to aid readability ; ; Parameters: A direction 0 - down; 1 - up; 2 - right; 3 - left ; Clobbers A,X,Y ;================================================================== mwp ldy mwpy sta tdir cmp #2 bcc mwp_erase ; up/down beq mwp_left ; Note: When HSCROLL bit is set in the DLIST, ANTIC will grab ; extra data on each character line; This means that on a regular ; width screen there are 24 characters per row instead of 20! ; This is good, as it provides a hidden buffer for us to write ; screen data into without having to resort to masks... mwp_right lda mwpx bne mwp_r1 lda #24 sta mwpx lda #0 sta tdir beq mwp_erase mwp_r1 dec mwpx lda #0 jmp mwp_lms mwp_left lda mwpx cmp #24 beq mwp_l1 inc mwpx jmp mwp_lms mwp_l1 lda #0 sta mwpx lda #1 sta tdir mwp_erase lda mwp_idx,y tax lda #$36 ; erase old LMS sta lms1+3,x sta lms1+4,x cpx #18 bne mwp_e1 lda #$16 ; a bit annoying, but last line of scroll map ; should not have vscroll set; this prevents ; 'popping' mwp_e1 sta lms1+5,x lda tdir beq mwp_down cmp #1 bne mwp_lms mwp_up iny cpy #21 bne mwp_lms ldy #0 beq mwp_lms mwp_down dey bpl mwp_lms ldy #20 mwp_lms sty mwpy ; update lower LMS lda mwp_idx,y ; get index into DLIST tax lda mwp_botlo,y clc adc mwpx ; this will never overflow worst-case: $18+$30 sta lms1+4,x lda #>sline0 adc #0 sta lms1+5,x lda mwp_toplo+1,y ; now, set top lms clc ; carry cleared above, no need to clc here adc mwpx sta lms1+1 lda mwp_tophi+1,y adc #0 sta lms1+2 lda #64+$36 ; actual instruction for lower LMS cpx #18 ; see note above bne mwp_lms2 lda #64+$16 mwp_lms2 sta lms1+3,x rts ;================================================================== ; Look-up tables for MWP mwp_toplo ; .rept 22 ; .byte <[sline0+[*-mwp_toplo]*24] ; .endr .byte $00,$18,$30,$48,$60,$78,$90,$A8,$C0,$D8,$F0 .byte $08,$20,$38,$50,$68,$80,$98,$B0,$C8,$E0,$00;$F8 mwp_tophi ; .rept 22 ; .byte >[sline0+[*-mwp_tophi]*24] ; .endr .byte $44,$44,$44,$44,$44,$44,$44,$44,$44,$44,$44 .byte $45,$45,$45,$45,$45,$45,$45,$45,$45,$45,$44 mwp_idx .byte 0,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0 ; silly table, probably can be removed with a bit of thought... mwp_botlo .byte $30,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00 .byte $00,$00,$00,$00,$00,$00,$00,$00,$18 ;================================================================== ; Misc data for MWP demo tdir .byte 0 mwpy .byte 0 ; between 0-21 mwpx .byte 0 ; between 0-23 finex .byte 0 finey .byte 0 dlist .byte 112,112,112,64+2,<top,>top,2,0,2,0 lms1 .byte 64+$36,<screen,>screen .byte 64+$36,<(screen+24),>screen .byte $36,$36,$36,$36,$36,$36,$36,$36,$36 .byte $36,$36,$36,$36,$36,$36,$36,$36,$16 .byte 0,64+2,<(top+120),>(top+120),112 .byte 65,<dlist,>dlist top dta ' Minimum-Warp Principal Demo ' dta ' ' dta ' ' dta '...and a line at the bottom ' ;================================================================== org $4400 sline0 .ds 24 screen .ds 21*20 so...maybe I am stupid...but when scrolling to the right...the writing of the collum (adresses) always change? or is here a trick I do not get yet? Quote Link to comment Share on other sites More sharing options...
MaPa Posted October 3, 2008 Share Posted October 3, 2008 so...maybe I am stupid...but when scrolling to the right...the writing of the collum (adresses) always change? or is here a trick I do not get yet? I don't undersdtand what you mean, but when scrolling in any direction, you "just" change the two LMS's and eventually change position of one of those LMS inside DLIST. That's all.. of course in real use you need to fill buffers with new data etc. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted October 3, 2008 Share Posted October 3, 2008 that is exactly what I do not get yet... filling the buffers in an easy way means calculating the buffer adresses. 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.