Amiga style demo effects on a ZX Spectrum Next

  Рет қаралды 6,465

NCOT Technology

NCOT Technology

2 жыл бұрын

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/spectrum-next/co...
Github - github.com/ncot-technology/sp...
Blog - ncot.uk/spectrum-next/the-copper
Chapters
=======
Overview - 00:53
The Copper - 01:57
Copper Programming Overview - 05:10
Copper Bars - 06:28
Parallax Scrolling - 14:14
Outro - 16:52

Пікірлер: 29
@ncot_tech
@ncot_tech 2 жыл бұрын
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
@darrenjkendall
@darrenjkendall Ай бұрын
I can understand now after watching some of your videos why you teach, your delivery is so calm and non patronising.
@Xalior
@Xalior 2 жыл бұрын
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
@ncot_tech
@ncot_tech 2 жыл бұрын
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.
@Xalior
@Xalior 2 жыл бұрын
@@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
@damionyates4946
@damionyates4946 2 жыл бұрын
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.
@48kmn13
@48kmn13 2 жыл бұрын
@@Xalior Yeah - and there are some great multicolour games written in recent years that demonstrate the potential. Old Tower springs to mind.
@ChrisWalshZX
@ChrisWalshZX Жыл бұрын
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
@wattsy1972
@wattsy1972 2 жыл бұрын
Another superb video, your efforts are greatly appreciated. Simply, thank you.
@schismaticschematics
@schismaticschematics Жыл бұрын
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.
@Archimedes75009
@Archimedes75009 2 жыл бұрын
Thanks. I think that's what the Next needs to attract coders.
@JustinBellingerTV
@JustinBellingerTV 2 жыл бұрын
Brilliant, thanks for sharing!
@EricJutrzenka
@EricJutrzenka 2 жыл бұрын
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: kzfaq.info/get/bejne/m86Xecp-v62afp8.html
@desertfish74
@desertfish74 2 жыл бұрын
Entertaining video!
@Lucretia9000
@Lucretia9000 Жыл бұрын
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.
@disdroid
@disdroid 9 ай бұрын
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.
@fuzzix
@fuzzix Жыл бұрын
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.
@RasVoja
@RasVoja Жыл бұрын
Fucking YES!
@ninjazhu
@ninjazhu Жыл бұрын
cool, the Amstrad CPC runs the Program Counter on the Spectrum next
@arronshutt
@arronshutt 2 жыл бұрын
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.
@arronshutt
@arronshutt 2 жыл бұрын
This is probably the most informative video you've done on the Spectrum Next :) I hope it boost your channel to new heights :)
@ncot_tech
@ncot_tech 2 жыл бұрын
Like share subscribe ring the bell. 😉
@TheTurnipKing
@TheTurnipKing Жыл бұрын
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.
@isidrodeleon673
@isidrodeleon673 Жыл бұрын
I remember the Anfractuos border effects.
@Lucretia9000
@Lucretia9000 Жыл бұрын
The copper on the Amiga could control hardware sprites, should be the same here.
@frankowalker4662
@frankowalker4662 Жыл бұрын
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.
@Churchill250267
@Churchill250267 Жыл бұрын
Atari 8bit display lists
@tkbettas1890
@tkbettas1890 Жыл бұрын
Can't hear you, pal!!!!
@b213videoz
@b213videoz 2 жыл бұрын
The only worthy demo is a playable game
Clever engineering on a budget - ZX Spectrum Interrupts
11:38
NCOT Technology
Рет қаралды 9 М.
ZX Spectrum Next Sprites Explained
35:42
NCOT Technology
Рет қаралды 3,9 М.
Smart Sigma Kid #funny #sigma #comedy
00:40
CRAZY GREAPA
Рет қаралды 32 МЛН
Iron Chin ✅ Isaih made this look too easy
00:13
Power Slap
Рет қаралды 36 МЛН
Best KFC Homemade For My Son #cooking #shorts
00:58
BANKII
Рет қаралды 71 МЛН
Breaking the 64k barrier - Spectrum Memory Banking
23:09
NCOT Technology
Рет қаралды 6 М.
The Clever Way to Count Tanks - Numberphile
16:45
Numberphile
Рет қаралды 564 М.
FORTH - Better than BASIC?
14:30
NCOT Technology
Рет қаралды 38 М.
The Spectrum Next XBERRY PI FPGA Clone! Amazing wow !
16:50
paulisthebest3uk
Рет қаралды 953
Learning ZX Spectrum Next Basic - Sprite Continue
26:01
leesmiths workshop
Рет қаралды 3,1 М.
8-BIT BLAZING! ZX Spectrum Next cranks that math! - slithy VLOGS #23
23:48
Nokia 3310 top
0:20
YT 𝒯𝒾𝓂𝓉𝒾𝓀
Рет қаралды 3,8 МЛН
Look, this is the 97th generation of the phone?
0:13
Edcers
Рет қаралды 8 МЛН