DevBlog

  • Sprite Code Generator

    I’ve been enhancing tile2sam to output Z80 code as an alternative to raw image data. I wanted single-purpose sprite-specific routines that are competitive with hand-optimised code for the same task. General purpose routines are convenient but also relatively inefficient. SAM has plenty of RAM, so why not trade some of...

  • SAMdiskHelper

    If you’ve accessed BDOS-format disks in Windows, you’re probably aware of the need to run with Administrator rights. For security reasons, raw disk devices cannot be opened by normal unprivileged users. Starting with Windows Vista, processes are launched with basic rights, even if the current user is a member of...

  • TrinLoad v1.0

    Developing Trinity-specific code has typically meant assembling directly on real SAM hardware, or assembling on the PC and transferring the program over to SAM. In my case the latter involved writing the disk image out from pyz80 to an SD card using SAMdisk, moving the card over to Trinity, rebooting...

  • SimCoupe for Raspberry Pi (SDL 2.0)

    Previous versions of SimCoupe used SDL 1.2 on the Pi. SDL 1.2 video surfaces are fully implemented in software, typically giving a fixed-size output window without any fancy features such as alpha transparency (well, not at a reasonable speed). SimCoupe also supported OpenGL though a thin SDL wrapper to give...

  • Spectrum Snapshot Tracing

    Given a Spectrum snapshot, is it possible to determine which areas are code? A typical approach would be to modify an emulator to record the location of every instruction executed, and let the snapshot run normally for a while. This gives a guarantee about marked locations, but it’s limited to...

  • SimCoupe for Rasbian

    Rasbian is the new OS recommendation for the Raspberry Pi. It’s slightly better configured than the previous Debian “squeeze” image, with fewer steps needed to build SimCoupe. Here’s an update to my previous instructions, plus a new binary: System Requirements Raspberry Pi board. Rasbian “wheezy” (2012-07-15-wheezy-raspbian) written to SD card....

  • SimCoupe for Raspberry Pi

    Raspberry Pi boards are starting to reach more end users, so it seems like a good time to cover what’s needed to get SimCoupe running on it. The instructions below will lead you through downloading and building SimCoupe on the Pi itself. If you’d prefer to download a ready-to-run binary,...

  • Spectrum Pac-Man

    I think I’ve got Pac-Man back out of my system for now, with the new(ish) Spectrum port and updated SAM version. The Spectrum version turned out to be much bigger than expected, in terms of both conversion effort and community reception. I’d only planned to do a quick conversion of...

  • ZXodus Engine

    Andrew Owen recently released his ZXodus Engine for the Spectrum, which provides a 9x9 tile grid (144x144 pixels), with independent attribute control for each 8-pixel display byte. He seemed particularly chuffed it achieved a rainbow processing effect across 18 blocks, when most people stopped at 16. While it was great...

  • Space Invaders emulator

    I thought it was about time I added the Space Invaders emulator (port?) to my website, as I’d not touched it in over 3 years. Most of the work to get it running was done, with just sound and display rotation left to add. While mulling over the tricky display...

  • Further EDSK extensions

    I’ve been involved with various disk preservation groups over the last few years. A large part of that has been for Spectrum +3 and Amstrad CPC disks, with SAMdisk extended to support copy-protected disks. The +3/CPC disks are usually stored in the Extended DSK (EDSK) image file format, designed to...

  • FdInstall false-positive, again

    Avira Antivir strikes again, with another false-positive in the fdrawcmd.sys installer. The current virus definitions report the FdInstall.dll installer plugin as infected with TR/Dropper.Gen (a “generic trojan detection routine”). As before, avoiding UPX compression on the module is a magic fix. It’s particularly frustrating because the compression isn’t hiding anything,...

  • SAM/IP

    The SAM port of uIP seems to be on hold at the moment, so I’ve been looking at other IP stacks to use until it’s ready. The most appealing is Mark Rison’s CPC/IP, not least because it’s written in Z80 and should work without extensive changes. It also comes with...

  • Trinity Ethernet

    After a break of a few of months, I’m almost back on the development wagon. I did the odd project tweak during that time but haven’t spent any quality time working on new features. Last month I picked up one of the first Quazar Trinty boards. Since then I’ve been...

  • ATTRibute port

    The attribute port (255) is part of SAM’s Spectrum compatibility, and implements a quirk of the original hardware. On the Spectrum it returns the last value on the ULA side of the bus — an attribute byte over the main screen or 255 during the border. A handful of Spectrum...

  • Atom Lite CF support

    With Edwin Blink’s help, I’ve just finished adding Atom Lite 1.x support to both SimCoupe and SamDisk. The new interface is a simplified version of the original Atom HDD interface, and is now primarily for Compact Flash use. The Atom Lite uses an ATA feature for 8-bit data accesses, rather...

  • SID Player v1.1

    I’ve updated SAM SID Player to version 1.1, addressing some issues with the original version: Updated 6502 core The recent core enhancements mean it’s now possible to trap SID writes from all instructions, without the need for hard-coded checks. Control register re-triggering now works correctly in all tunes rather than...

  • AVI recording

    I’ve now done the bulk of the work needed for SimCoupe’s AVI recording feature, using 8-bit MS RLE encoding as planned. It gives lossless video and (optionally) audio recording at up to full framerate, and should be no problem for most systems to handle in parallel to the emulation. The...

  • Apple 1 emulator

    This will probably be my last emulator for a while so I can return to normal projects. I’d wanted to emulate the Apple 1 for quite a while, and didn’t think it should take more than a couple of hours to make a usable emulator. The Apple 1 is a...

  • Orao emulator

    This emulator started as a quick test of my 6502 core, to see if it could run the Orao ROMs. I half expected it to fail due to lack of decimal mode or interrupt support, neither of which were implemented in the SID player core. It took just 20 minutes...

  • Galaksija emulator

    I’ve spent most of the last week porting Tomaz Kac’s Galaksija emulator from Spectrum to SAM, with version 1.0 now available on my site. Basic SAM support was trivial, requiring just an OUT to LMPR to page in the ROMs, and another OUT to VMPR to set video mode 1....

  • fdrawcmd.sys license update

    I’ve decided to remove the non-commercial use restriction from my driver license. The original reason for having it was to prevent 3rd parties profiting from what I’m releasing for free, though in reality it’s unlikely to add great value to anything. The change also frees it up for use by...

  • Sound and video recording

    I’ve spent most of last week looking at recording features in SimCoupe, with initial support for sound/video and future support for input recording (more on that one in a future posting): Sound recording This was very easy to do as the data is already in PCM format ready to be...

  • SimCoupe tape support

    It’s been close to the bottom of my ToDo list for years, but I’ve finally added preliminary support for loading from tape. It was painless in the end too, largely thanks to Philip Kendall’s libspectrum library, which does all the hard work. It supports TZX, TAP and CSW tape images,...

  • Compiler upgrade

    Until now, pretty much everything I’ve built for Windows was compiled using Visual Studio 6, despite Microsoft having since released three newer versions. I thought it was about time I took a serious look at moving to Visual Studio 2005, as it makes building matching 32-bit and 64-bit versions far...

  • FdInstall false-positive

    I had a report that the AntiVir virus scanner was detecting a DR/Zlob.Gen virus in my new FdInstall.exe installer. I was pretty certain this was a false-positive, and three alternative scanners I had access to all agreed with me. Googling for other online scanners I came across a handy site...

  • FdInstall revamped

    I’ve spent the last few days updating FdInstall, which is used to install/uninstall/upgrade fdrawcmd.sys. It needed a few improvements for Vista support, which gave the perfect excuse for a complete revamp. The original installer was designed to have minimal dependencies, be simple to use, and avoid reboots where possible. I...

  • Vista icon update

    Vista includes support for 32-bit colour icons up to 256x256 pixels in size — something Mac OS X has enjoyed for a while. They’re designed for high-DPI displays so they look too big on normal 96 dpi displays, but they do scale well to give quality smaller icons for normal...

  • Vista tweaks

    I’ve had my eye on Vista since the beta versions were released earlier this year. So far only the SimCoupe 1.0 release in July has included Vista-specific changes. These were: Avoiding touching the primary display surface SimCoupe uses a video overlay surface for the SAM display by default, which gives...

  • Project status update

    As this is my first entry, I thought it best to report where things are with the main projects: fdrawcmd.sys is almost unchanged since the 1.0.1.9 release in May, as there’s been nothing much to do. I’ve no outstanding issues to fix, and only a minor enhancement that wasn’t worth a...

subscribe via RSS