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.
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 SAM to have the new card recognised, re-selecting the development record, then loading booting or loading the program. Despite the benefits of a familiar PC code editor and faster assembler, the transfer process was still a chore.
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).
Given a Spectrum snapshot, is it possible to determine which areas are code?
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.
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 code I moved on to other projects and it was pretty much forgotten about.
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 hold (almost) any format compatible with the uPD765 floppy controller.
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”).
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 a number of built-in client (telnet, finger, host, ping) and server (web, tftp, dns) modules.
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.
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 titles use it to synchronise with the top of the main screen, giving the maximum the amount of time to draw sprites without raster shearing.
I’ve updated SAM SID Player to version 1.1, addressing some issues with the original version:
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 encoder was written from scratch, meaning it’s available on all platforms without additional library dependencies, as well as being tuned for emulator use.
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.
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 of hacking the SID player source code to reach the point where I could see the flashing input cursor, and it would have been a crime not to continue.
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.
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 small chargeable projects, which I had no problem with anyway.
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):
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, which between them can represent the content of any SAM tape.
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 easier. The code it produces is measurably more efficient too, so what is there to lose?
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.
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.
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 use.
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:
As this is my first entry, I thought it best to report where things are with the main projects:
subscribe via RSS