Это видео недоступно.
Сожалеем об этом.
Amiga style demo effects on a ZX Spectrum Next
HTML-код
- Опубликовано: 30 янв 2022
- Let's look at how to make an 8bit computer produce graphics normally seen on an Amiga.
The Spectrum Next contains extra hardware that lets us very accurately control when things happen relative to the screen being drawn. This is done using a piece of hardware called the "copper".
The copper is a processor external to the main CPU and can be given a list of instructions to follow that are synchronised to the generation of the screen. By cleverly manipulating the Spectrum Next's registers we can create some impressive visual effects normally only seen on 16 bit machines like the Amiga.
In this video I explain how to create the classic copper bars effect, some nice gradient backgrounds and parallax scrolling. The full source for this is available on my github, linked below and a detailed explanation of the code is on my website also linked below.
If you manage to make anything with this, let me know in the comments or send me a message on Twitter - @ncot_tech
In-depth written version: docs.ncot.uk/s...
Github - github.com/nco...
Blog - ncot.uk/spectr...
Chapters
=======
Overview - 00:53
The Copper - 01:57
Copper Programming Overview - 05:10
Copper Bars - 06:28
Parallax Scrolling - 14:14
Outro - 16:52
Links to the Github repo and full explanation of what's going on:
In-depth written version: docs.ncot.uk/spectrum-next/copper/index.html
Github - github.com/ncot-technology/specnext-copper
Blog - ncot.uk/spectrum-next/the-copper
I can understand now after watching some of your videos why you teach, your delivery is so calm and non patronising.
That is a very good explanation - thank you!
Would be really great to have an example in assembly of parallax using copper
Border Effects on the classic spectrum worked by... chasing the beam :)
They would count T-States, counting number of CPU instructions and then changing the border colour (an OUT) and rewrite the attribute memory, as required per scanline (or, more often, two scanlines)
-Dx
See that's the proper witchcraft right there. I imagine there's not much CPU time left over for actual game logic doing it the hard way.
@@ncot_tech Technically, it's almost _all_ available, but you have count every instructions duration so you know when to issue the colour change instruction - which means no variable execution, so "branchless" computing, or making sure every branch is the same duration, or similar wizzardry.
-Dx
This was actually my next project before I started at uni in the early 90s. I'd calculated all op code timings, but was somewhat anxious about keeping track of how many cycles had fine by when you had varying conditions such as dealing with a key pressed or not. I'd written a ludicrously fast version of space invaders where the pixels were laid out but the attributes were moving, the plan was to have this function during loading from tape. I never finished it. I did however write characters to the border. Unrolled `out` instructions, essentially pre-generated z80 code to change the border colour as fast as was possible, could best change the colour every three characters (24 pixels). The demo referenced in the middle of this video shows this very wide characters on the border effect exactly as I worked on.
@@Xalior Yeah - and there are some great multicolour games written in recent years that demonstrate the potential. Old Tower springs to mind.
Great videos. I'm awaiting the KS2 to be released and am reading loads on all the new programmable features of the ZX Next. The beauty of the Next is that it still has the quality that the programmer is in complete control of the computer. ... and that all the Z80 programming knowledge ports straight across. Keep the videos coming! Thanks
Ace video. I like the image compositing (stuff going on in the background whilst you are talking) and the info and pacing is easy to absorb. I ordered a ZXSpecNext and am :-( about the delay but had started using emulators to get going with programming (I don't have any programming skills whatsoever) z80 machine code. I shelved it until the actual Next arrives as the emulators (on Linux) are (were?) a bit tricky to get working. And Life got in the way etc. But might have another bash at it. Especially with vids like these! I searched for vids on new features of the Next over the trad Spectrum and this one was pretty much the only one that looked like it had any substance to it. Great stuff. Much appreciated! I've seen the DMA vid you've done - will rewatch and study at some point.
Another superb video, your efforts are greatly appreciated. Simply, thank you.
Thanks. I think that's what the Next needs to attract coders.
Great stuff! You've inspired me to finally take a proper look at the copper. Btw, the copper was included on the Amiga because the engineers were impressed by what programmers did on the Atari VCS, so they wanted to make sure there was some beam sychronised hardware on the Amiga. Heard about it here: ruclips.net/video/ehgFgMZG6Nk/видео.html
We could almost do cpu bars on the original speccy. Changing the border was easy but there wasn't enough clocks per scan line to update the attribute ram on a complete line.
There’s a section on a rolling in the Amiga hardware reference manual which tells you how to handle the vertical bar flickering so you can scroll by pixels rather that 16 pixels,or however big the vertical bar was.
It's interesting how the next gen C64 (the Mega 65) is easily as capable as an Amiga, but the approach taken is basically beefing up the standard custom chips (VIC and SID) with additional modes and then adding DMA and extra memory banking support. And driving the main processor at 40x as fast as a standard Commodore 64. It's like taking a 1980s era Ford Escort and fitting a V8 to it, whilst adding very little additional extra features to make it a modern car - like screen based displays or a satnav. Both these "modern retro" machines seem to have taken the same approach in how they were designed.
This is probably the most informative video you've done on the Spectrum Next :) I hope it boost your channel to new heights :)
Like share subscribe ring the bell.
😉
cool, the Amstrad CPC runs the Program Counter on the Spectrum next
Brilliant, thanks for sharing!
Fucking YES!
It seems like many of these effects were possible, to a certain degree, on the original hardware, not just the Next. In principle, it seems similar to how stuff like the Nirvana engine works to produce more colours on the screen.
Obviously having a coprocessor metaphorically blows the doors off, though.
I remember the Anfractuos border effects.
Entertaining video!
Very nice, cheers for putting this together!
I'll need to get an emulator going to play with this - expecting my Next in the next (heh) batch.
I wonder how much fun is to be had writing a script (Perl, Python etc.) to generate those long lists of wait/move copper instructions.
Could perhaps even derive a secondary DSL to define vertical text scrollers, bars, colours and so on.
The copper on the Amiga could control hardware sprites, should be the same here.
I'm sorry about this but every tutorial about the Next I've seen is based on coding in, or downloading, C+ and compiling it to an emulator. Me and my PC can't do that. I don't understand C/+/++ and the Next emulator won't work on my PC without glitching or crashing.
I have been programing the Speccy since 1983 in BASIC and raw M/C in DATA lines. Is there a database of Next basic files to download that I can just load straight onto my SD card ?
I'm realy sorry for this rant, but I've had this great computer for 3 months and I'm realy struggling to find programing tips that I understand or can load and run.
Any help would be apreciated, again sorry.
Atari 8bit display lists
Can't hear you, pal!!!!
The only worthy demo is a playable game