Well. Time to learn how to blow a GAL. 👨🏻🏭
Well. Time to learn how to blow a GAL. 👨🏻🏭
I thought something was wrong with my PlusD disk interface so I took it apart for inspection… and who would’ve guessed it, the problem was just a duff floppy disk! 😩🥴😛💾💾💾
It’s never given me any trouble to be honest, it’s easily one of my favourite Spectrum accessories.
(I’ve no idea why I didn’t immediately suspect the well-used second-hand disk I got in a job lot from eBay!)
I quite often replay the original Tomb Raider around Christmas time, but I really associate it with the new year. Anyway this year I was looking up some of the secrets I’ve never found, and discovered a bug(?) in the PAL version: the third secret in The Cistern is inaccessible!
Well it might be the twelfth night but it’s not too late to post about my ADVANCED CHRISTMAS JUMPER SIMULATOR for ZX Spectrum. And do check out the rest of the latest W00t! tapemag for loads more laughs and games.
Moley Christmas, dudes. Cowabunga.
ZX Spectrum Next
It’s important to stay organised in the hectic modern world of Information Technology.
Sunday: upgrading an already-modified (but still with with notoriously bad and unbalanced sound) ZX Spectrum +3 with a stereo modification from ByteDelight. It attaches directly to the AY-3-8912 (separating out the channels) and taps into the gate-array to pick up the classic beeper sound as well.
Saturday: time to install a Word Processor onto Hard Disc Drive. (Not to mention the 70,000 word dictionary and a collection of “several” typefaces). #Tasword #zxspectrum #plus3e #yolo
Midnight hackers club. Who wants to write a text scrolly? #ZXSpectrum #specasm #z80
Piña colada / collida detecta (if you’ll indulge me one last #fomo toot xx) #Z80 #ASM
As cool as it’s possible to be in this heat. #SAMCoupé #ZXSpectrum #poolside
Keep cool at the pool. 😎 📚 ⛱️ #zxspectrum #asm #z80
I’m travelling for work today so I’ve brought the laptop, an Amstrad NC100. For on-the-go connectivity all you need is an RC2014 connected via RS232 at 9600 baud.
P.s. don’t zoom in, I’m doing important Business Work™ not playing Zork.
This week I’ve been wrestling with SAM networking again! SAVEing works perfectly (Net and Tape format are almost the same so it’s easy to coerce the saved bytes into a .tap image). On the other hand bytes are being dropped on the way back; I’m not sure why. #SamCoupé #MIDI
Hmm. This feels like homework.
I suppose it’s quite nice sometimes maybe to switch the computer off and go outside for a bit. We saw dolphins and it was lovely (not pictured because I was looking at them and enjoying it and not pointing my pocket computer at them).
Goin’ surfin’ 😎 🏄 #amstrad #nc100
I experimented a bit more with creating an image to deliberately exploit the effect that a 50Hz alternating image has on my TV (and other upscaler chipsets).
Since the TV seems to display all the even lines of one frame, and all the odd lines of the other I thought I’d create a double-height image of 256x384. The source image is scaled down horizontally (so that it looks stretched) but that will be corrected when displayed at 256x192 because the de-interlacing effect scales down the image by half vertically (each row of the display is half a pixel high).
I exported the image as an (8-bit) 16-colour PNG, then ran it through my 8-bit to 4-bit conversion script that I’ve been using to convert sprites. I modified the script to export all the even lines to one file, and the odd lines to another file. (Each 128 bytes in the file represents one screen line, and the lines are ordered top to bottom).
I thought about just using one contiguous file and doing some processing on SAM but then I’d have to deal with a 48kb image file. The resulting files are basically a normal Mode 4 screen$ file, (just missing the palette data) so that keeps things straightforward.
To help further with moving the image around SAM’s memory I compressed the data using zx0. In this case it took the 24kb file down to 7113 bytes. The Z80 implementation of the decompressor is really fast and I use it to dump the two images directly into the respective frame buffers when the program starts up.
I don’t yet have a way of automatically mapping the palette from the PNG index to SAM’s format, so I just opened up the 16-colour PNG in SCADM’s handy image importer and copied the palette entries from there. (The order was wrong; I’m not sure how my image editor assigns the colour indexes so I just reordered them by hand).
I’ve started using Simon Owen’s pyz80 extension for VS Code which provides a wrapper around Andrew Collier’s pyz80 assembler as well as Simon’s samdisk tool for manipulating disk images. So now with a keyboard shortcut the code is assembled with pyz80, and samdisk creates an auto-booting disk image as well as broadcasting the assembled binary to my SAM listening on the local network. The TrinLoad softaware running on SAM recieves the code and launches it. Here’s how the resulting image looks on the TV:
It definitely works to smooth out certain things—like the curvature of the earth, the top of the space helmet or Sonic’s quills (compare that to the stair-stepping inside Sonic’s ear for example):
I noticed I had to load the even lines in to the first buffer; the other way around incorrectly interlaces the images and results in visible comb artefacts:
But otherwise I think it’s a neat effect. What do you think?
Here’s a disk image if you’d like to try it out: image-fun.mgt
Denise #KeepingUp #Commodore
I had some success removing the yellowing from my SAM with “vapour brite” (works just like Retr0brite but the plastics don’t go directly in the solution). Compare the drive facias (before treatment) to the SAM top case (after half a day in the sun). 😎
Tonight I’m mostly using @shieladixon’s wonderful MIDI interface for RC2014 to take a closer look at how serial Networking is implemented on the SAM Coupé. (TL;DR it’s MIDI).
SAM uses DIN-7 connectors but the sockets are compatible with DIN-5 (MIDI).
The RC2014 MIDI Interface Z80 Framework gives straightforward access to the raw bytes. I’ve noticed that my USB-MIDI adapter (also pictured but not in use here) automatically translates the bytes into “standard” two- or three-byte MIDI messages (usually by injecting extra control bytes in an attempt to try to make musical sense out of non-musical data).
The data structure is similar to how ZX Spectrum BASIC programs are stored. Header bytes give file type and file name etc, the BASIC keywords are tokenised and variable names and values are tacked on at the end.
This week I’ve been getting to grips with SAM’s VMPR (Video Memory Page Register) and using it for double-buffering the screen. Into that framework I dropped the sprite drawing routines I used on Spectrum, and graphics I made a while ago for a web-based game. #GameDev #SAMCoupé
Those low-colour pixel-art PNGs converted quite nicely to SAM’s 16-colour 4bpp screen mode. I haven’t got round to making a unified/optimised palette yet (the squirrel character isn’t supposed to be blue!)
I truly love paper magazines but is using OCR for code listings…cheating? (Asking for a friend). #z80
Now playing: SAM Coupé Shanghai by Fuxoft/Franxoft for Pete Prodge’s Covertape wars (YS vs SU - Dec 1992)
The colourful tiles are easier to read than the typically monochrome tiles in Spectrum mahjong games, but overall it’s not as featureful. A nice straightforward solitaire game though.