Amiga style demo effects on a ZX Spectrum Next

แชร์
ฝัง
  • เผยแพร่เมื่อ 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/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 ปีที่แล้ว +4

    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.

  • @ChrisWalshZX
    @ChrisWalshZX ปีที่แล้ว +1

    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

  • @Xalior
    @Xalior 2 ปีที่แล้ว +6

    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 ปีที่แล้ว +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 ปีที่แล้ว

      @@Xalior Yeah - and there are some great multicolour games written in recent years that demonstrate the potential. Old Tower springs to mind.

  • @schismaticschematics
    @schismaticschematics ปีที่แล้ว +1

    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.

  • @wattsy1972
    @wattsy1972 2 ปีที่แล้ว +1

    Another superb video, your efforts are greatly appreciated. Simply, thank you.

  • @EricJutrzenka
    @EricJutrzenka 2 ปีที่แล้ว +5

    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: th-cam.com/video/ehgFgMZG6Nk/w-d-xo.html

  • @Archimedes75009
    @Archimedes75009 2 ปีที่แล้ว +1

    Thanks. I think that's what the Next needs to attract coders.

  • @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.

  • @JustinBellingerTV
    @JustinBellingerTV 2 ปีที่แล้ว +1

    Brilliant, thanks for sharing!

  • @desertfish74
    @desertfish74 2 ปีที่แล้ว +1

    Entertaining video!

  • @arronshutt
    @arronshutt 2 ปีที่แล้ว +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 ปีที่แล้ว +1

      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 ปีที่แล้ว +2

    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 ปีที่แล้ว +1

      I remember the Anfractuos border effects.

  • @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.

  • @ninjazhu
    @ninjazhu ปีที่แล้ว

    cool, the Amstrad CPC runs the Program Counter on the Spectrum next

  • @RasVoja
    @RasVoja ปีที่แล้ว +1

    Fucking YES!

  • @Lucretia9000
    @Lucretia9000 ปีที่แล้ว

    The copper on the Amiga could control hardware sprites, should be the same here.

  • @tkbettas1890
    @tkbettas1890 ปีที่แล้ว +1

    Can't hear you, pal!!!!

  • @Churchill250267
    @Churchill250267 ปีที่แล้ว

    Atari 8bit display lists

  • @frankowalker4662
    @frankowalker4662 ปีที่แล้ว +1

    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.

  • @b213videoz
    @b213videoz 2 ปีที่แล้ว +2

    The only worthy demo is a playable game