|
Prev: MPS 1270A compatibility
Next: plus/4 GEOS questions
From: Peter van Merkerk on 15 Jan 2006 06:56 Simon Scott wrote: > Geoff Wearmouth wrote: > > >>In another large thread >>Simon Scott wrote: >> > Tell you what, you write a demo moving 24 sprites around the >> > screen smoothly on speccy (in a sinus or something), and Ill >> > do the same on the c64, and we'll compare used/remaining CPU >> > and see if you can back this up with action. >> >>Gasman wrote >> >OK. First pass, I've managed... 23. :-( With no masking whatsoever >> >yet, and a terminal case of blanking-at-the-wrong-time (thought >> >I'd be able to avoid Y-sorting them, turns out I can't). >> >> >http://www.west.co.tt/matt/speccy/sprites/sprites_mk1.tar.gz > > > Why do I only see 8 (under fuse)? > > I hit pause and the most sprites Ive seen is 8. I have seen somewhere between 7 and 9 sprites here with the spectrum emulator Geoff posted (http://www.wearmouth.demon.co.uk/zz/gasman.htm)
From: Jason on 15 Jan 2006 07:09 Simon Scott wrote: > Oh damn, that means I have to write a multiplexor now :) No you don't, i mentioned it in the other thread already but i already did it during a previous flamewar and released it in a demo; http://cosine.org.uk/products.php?prod=spectral&4mat=c64 That's 32 hi-res sprites over a converted Spectrum picture, with a converted Spectrum tune playing too... It's pre-sorted for speed, but i seem to remember there being about 70-80% of the raster time free so i could've sorted realtime as well - i'm just lazy like that. =-) -- ______________________________ _________________________________ / /\/ ___/ / ___/ / / ___/\ / Website: www.cosine.org.uk / / /\_/ / /__ / / / / __/\\/ / ICQ: 44373717 IRC: TMR{C0S} / / /__/ / / / / / / / / /\ /_____________________________/ /_____/_____/_____/__/__/__/_____/ / \_____________________________\/\_____\_____\_____\__\__\__\_____\/TMR
From: Matthew Westcott on 15 Jan 2006 07:40 White Flame (aka David Holz) wrote: > "Geoff Wearmouth" <geoff(a)wearmouth.demon.co.uk> wrote in message > news:C8xhtIDGlZyDFwUq(a)wearmouth.demon.co.uk... > >>http://www.wearmouth.demon.co.uk/zz/gasman.htm > > I'm just curious if this uses preshifted sprites, if that's common on the > Spectrum or if that's normally considered to take too much RAM. If > non-preshifted is more usable in games due to the RAM footprint, it should > probably do that. Yep, preshifted sprites a-go-go. I'm treating this as a demoscene-ish challenge - try to find out what the absolute limit is, and screw practicality. (I don't think it's reached the stage of complete practical uselessness yet, though) I have no idea what the most common approach is in games, but based on this experiment, if I were writing a game what I'd do is store the images initially unshifted, then preshift them in a scratchpad area just before they're needed. A fully preshifted sprite at this size would take 384 bytes, or 768 with a mask, and I doubt that many games require more than 4-5 *different* sprites on screen at once (especially if 20something turns out to be the hard limit), so 4K isn't such a bad sacrifice to make. > Also, I presume it's doing full-screen blanking instead > of doing dirty rectangles? That's got to offer a speedup to switch over to > rects. It is doing dirty rectangles - a full-screen blank would take over 33000 cycles out of the ~70000 we have in a frame, not counting the delays the ULA would throw in. What I've actually ended up doing is fudging the routine so that it doesn't use the stack at all for conventional storage, and PUSHing the screen addresses as we write to them, POPping them back when they have to be cleared. > But I'm a bit disappointed that it's only doing 256 pixels per sprite > (16x16) whereas the C64 does 504 (24x21). That's only half the pixels. Well, yes, if we were intent on putting the Spectrum at the greatest possible disadvantage in the comparison then 24x21 would do the job. Somehow I think the C64 would be put at an even greater disadvantage if we'd chosen 25x22 instead :-)
From: Matthew Westcott on 15 Jan 2006 08:00 Simon Scott wrote: > Why do I only see 8 (under fuse)? > > I hit pause and the most sprites Ive seen is 8. That'll be the terminal case of blanking-at-the-wrong-time. In FUSE you can briefly see all 23 if you reset, but that's about the only way I can find of showing it. > Is that using all the CPU? Why 23 and not 24? Yep, 23 is as many as I've been able to fit into one frame. I can get 24 if I set my emulator to Pentagon (a Russian clone with a marginally faster CPU and no slowdown from the ULA when writing to screen memory), if that counts for anything... no, thought not :-) > Lastly, my PC is kinda slow and the demo looks a bit glitchy and not 50Hz. If you get a steady red border and sprites disappearing at various points, it's 50Hz - if the border and sprites flicker, it's run into the end of the frame.
From: Simon Scott on 15 Jan 2006 08:03
Peter van Merkerk wrote: >> I hit pause and the most sprites Ive seen is 8. > > I have seen somewhere between 7 and 9 sprites here with the spectrum > emulator Geoff posted (http://www.wearmouth.demon.co.uk/zz/gasman.htm) OK.... so 23? Or is that the screen blanking glitch he mentioned? Still, its impressive for him to produce something so quickly - kudos! |