TMR Posted October 7, 2015 Share Posted October 7, 2015 (edited) The term "software sprites" just means anything that moves around independetly that is rendered in software rather than using hardware, that can be anything from a single character object moving around from cell to cell like early Jeff Minter VIC 20 games to fully masked, objects with pixel accurate positioning... and pretty much everything in between really. Edited October 7, 2015 by TMR 3 Quote Link to comment Share on other sites More sharing options...
carlsson Posted October 22, 2015 Share Posted October 22, 2015 Tom Griner also was very good at implementing software sprites on the VIC-20. Quote Link to comment Share on other sites More sharing options...
landondyer Posted October 25, 2015 Share Posted October 25, 2015 (edited) I'm kind of curious why you want to use soft sprites, unless it's for ease of porting games. One of the reasons I got the A800 to start with was PMG, which was pretty much unique at the time. I don't think I could have written the one game I did get published with soft sprites. (Cosmic Defender in Analog)... On the 400/800, "Soft sprites" (heck, it's just bitmap animation) potentially give you more colors, and more objects on a line. For instance, in Super Pac-Man pretty much everything is done by animating character graphics cells (all the ghosts, the fruit, etc.), and Pac-Man uses two players and one missile (a 17-pixel wide circle looks way better than a 16-pixel wide one). I think that the eyes of some of the ghosts are done with missiles positioned over the ghost, an effect that nobody ever noticed, but kind of fun to do (and it probably got an extra color). Restricting your moving objects to the hardware sprites is pretty limiting, and I saw a lot of games that fell into the trap of "welp, we've animated all we can with those things, and we're done," the result being a title that looked kind of spare and unengaging. Those objects are just tools, and sometimes you're better off using them as "flair" rather than the primary vehicle for your animation. Edited October 25, 2015 by landondyer 8 Quote Link to comment Share on other sites More sharing options...
Ranger03 Posted July 22, 2018 Share Posted July 22, 2018 coding sprites on ST with interleaved bitplanes??? I guess concept is on both the same... you have shifted versions of data to position pixel precise, you got an AND mask to erase background.... etc... I guess it's "easier" on ST because the 68k is faster... so penalties are not that quickly hit... but where is the difference of LDA screen,y AND mask,x ORA spritedata,x STA screen,y compared to move.w (a1),d0 and.w (a0),d0 ora.w (a2),d0 move.w d0,(a1) Beware, I am not so familiar with 68k. i am to a point. working with static variables (sega genesis) is a nightmare Quote Link to comment Share on other sites More sharing options...
tebe Posted July 23, 2018 Share Posted July 23, 2018 simple and fast lda data_sprite,x eor (screen),y sta (screen),y first call -> draw second call -> erase 1 Quote Link to comment Share on other sites More sharing options...
emkay Posted July 23, 2018 Share Posted July 23, 2018 simple and fast lda data_sprite,x eor (screen),y sta (screen),y first call -> draw second call -> erase The old discussion. Most coders deny to use EOR sprites, but a lot of games could be done using it. Particular hires games do well with it. Quote Link to comment Share on other sites More sharing options...
xxl Posted July 23, 2018 Share Posted July 23, 2018 or lda (data_sprite),yeor (screen),ysta (screen),y like in "Gremlins"... Quote Link to comment Share on other sites More sharing options...
tebe Posted July 23, 2018 Share Posted July 23, 2018 like in "Mario" http://a8.fandal.cz/detail.php?files_id=2339 like in "Pang" on title screen Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted July 25, 2018 Share Posted July 25, 2018 (edited) Like Zone Ranger, Goonies, Zorro, Hat Mack, Asteroids, Drol,... Edited July 25, 2018 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
emkay Posted July 25, 2018 Share Posted July 25, 2018 ... and, if you decide to use the PMg with some multiplexing for background , instead of sprites, you can use EOR softwaresprites without any "wrong" pixels. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted July 26, 2018 Share Posted July 26, 2018 But then you can copy straight. Lda (sprite),y or lda sprite,x Sta (screen),y But then you can not overlap sprites. Even without background you can not avoid the eor clashes. Eor sprites are nice because draw them in again and they restore magically the background or prior screen state. Gremlins is a good example how it looks good. Quote Link to comment Share on other sites More sharing options...
tebe Posted July 26, 2018 Share Posted July 26, 2018 ... and, if you decide to use the PMg with some multiplexing for background , instead of sprites, you can use EOR softwaresprites without any "wrong" pixels. Pang Title Screen, HiRes, EOR + PM pang_title.xex 6 Quote Link to comment Share on other sites More sharing options...
emkay Posted July 26, 2018 Share Posted July 26, 2018 But then you can copy straight. Lda (sprite),y or lda sprite,x Sta (screen),y But then you can not overlap sprites. Even without background you can not avoid the eor clashes. Eor sprites are nice because draw them in again and they restore magically the background or prior screen state. Gremlins is a good example how it looks good. It's a question of game design. If your sprite moves over a fixed platform or else, it looks "not so good" when the bit mixing happens. When moving objects overlap that way, it won't disturb the presentation that much. 2 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted July 26, 2018 Share Posted July 26, 2018 You just need to take care that it doesnt get a mess... good examples are on VIC20 most Tom Griner games... esp Predator. Quote Link to comment Share on other sites More sharing options...
emkay Posted July 26, 2018 Share Posted July 26, 2018 You just need to take care that it doesnt get a mess... good examples are on VIC20 most Tom Griner games... esp Predator. On the VIC20. But the Atari HAS hardware overlay. And it is still not to understand why most people use the part of the hardware that has only low details available for high details , and to use low details where high details would be simply there. A nice multiplexed background via PMG plus a lot of detail moving objects using EOR sprites, would always result in a nice game. 1 Quote Link to comment Share on other sites More sharing options...
tebe Posted July 26, 2018 Share Posted July 26, 2018 (edited) EOR is saving memory (50%), it's a big difference Edited July 26, 2018 by tebe 2 Quote Link to comment Share on other sites More sharing options...
emkay Posted July 26, 2018 Share Posted July 26, 2018 EOR is saving memory (50%), it's a big difference It saves also a lot of CPU . In theory not a bit of bit calculation is needed there. 1 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted July 27, 2018 Share Posted July 27, 2018 On the VIC20. But the Atari HAS hardware overlay. And it is still not to understand why most people use the part of the hardware that has only low details available for high details , and to use low details where high details would be simply there. A nice multiplexed background via PMG plus a lot of detail moving objects using EOR sprites, would always result in a nice game. Yup. Some Amiga games used multiplexed Sprites for background. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted July 27, 2018 Share Posted July 27, 2018 (edited) http://codetapper.com/amiga/sprite-tricks/jim-power/ http://codetapper.com/amiga/sprite-tricks/risky-woods/ etc... nice site btw. Edited July 27, 2018 by Heaven/TQA 5 Quote Link to comment Share on other sites More sharing options...
emkay Posted July 29, 2018 Share Posted July 29, 2018 http://codetapper.com/amiga/sprite-tricks/jim-power/ http://codetapper.com/amiga/sprite-tricks/risky-woods/ etc... nice site btw. Didn't know that, but it's a logical thing. Well, on the Atari the PMg isn't as powerful as the "sprites" on the Amiga. Ever seen a game, using the PMg for a "scrolling" screen, and a lot of Hires "Sprites", for example? If people accept some "EOR" clash here and there, using the PMg for the main background... everything is possible. Even using character modes would be possible. Quote Link to comment Share on other sites More sharing options...
R0ger Posted July 31, 2018 Share Posted July 31, 2018 I wonder how one would define a soft sprite? See first post on this page (page 3): The term "software sprites" just means anything that moves around independetly that is rendered in software rather than using hardware, that can be anything from a single character object moving around from cell to cell like early Jeff Minter VIC 20 games to fully masked, objects with pixel accurate positioning... and pretty much everything in between really. I think that covers it nicely .. 1 Quote Link to comment Share on other sites More sharing options...
777ismyname Posted February 23, 2019 Share Posted February 23, 2019 IMHO software sprites are not that complicated. It's just simple LDA, AND, ORA, STA sequence for each byte and just calculating the right position to video memory and softsprites data. I attached simple softsprite routine in graphics mode (not character mode). Actually it's my first test on software sprites which I did 8 years ago (in 2007). I just replaced all (at least I hope) XASM specific instructions to pure 6502 language. it uses just some specific directives for tables and data generating. The sprite data at the end are that each line is 4 bytes for sprite data, 4 bytes for mask data of that sprite and then 3x the same shifted. But till today I think that I didn't use real software sprites (object moving over background) in any of my productions. Best would be if you specify what exactly you have problem with. Good Day! Would it be easy to fix this code to work with TurboBASIC XL or Fast Basic, calling it with a USR? I've just started studying assembly in the last few days and could never do it on my own, unfortunately. 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.