OSCA emulator brings parity to all, even rodents!

1 Comment

It’s been a while! A quick update to the OSCA emulator is available below. This incorporates a fix for a parity bug in the CPU core for subtract instructions (Thanks to Enzo for reporting this, and Daniel for reminding me about the flag’s dual-purpose!). Also modified is the built-in debug window which didn’t seem to be very useful for setting PC breakpoint etc since the code was refactored to be multi-threaded. This now works better than it did before.

Also included are a couple of extra (experimental, as ever) features:

Mouse Support

The emulator will try to support a Microsoft IntelliMouse (3-button with wheel). Activating the mouse driver in FLOS should kick this off. In addition, you can use the BREAK key to toggle locking the mouse within the emulator window, although this feature is very basic.

RS232 Simulated Uploads

To make life simpler for uploading/downloading files the emulator will mimic Phil’s Serial program internally. So you can send a file from the emulator OSCA machine and it will be stored to anΒ incoming directory in the same folder as the emulator binary. Alternatively, you can set the emulated machine to receive (FILERX or RX) and use the RS232->Send File menu command to transmit a file into the emulated machine. Hopefully this makes for simpler debugging.

There still seem to be some speed stability issues, so when I get some time I’ll try to take a look at this more closely. For the time being, therefore, you may want to use a previous version if that works better for you.

In the meantime, happy emulating, folks!

Downloads below:

  OSCA_Emulator_1_3.rar (14.0 MiB, 278 hits)

  OSCA_1.3_SRC.rar (147.9 KiB, 232 hits)

Modified version (which may solve some performance problems):

  OSCA_131.rar (1.0 MiB, 251 hits)

OSCA on Windows 7 (the non-corrupted sound flavour!)


It’s been some time since I last blogged, and there’s been many reasons for that, mostly surrounding a lack of available spare time. Last time I swore that I had no plans to move away from Windows XP, but as is inevitable having made such proclamations, things happened which forced my hand!

First and foremost, for those not interested in a lengthy read and whinge, skip to the bottom for the good stuff πŸ™‚

The first of those things was that my old trusty laptop finally bit the bullet – I don’t mean I popped a cap in its ass, but rather that the Nvidia chip shuffled off this mortal coil. Actually it shuffled off the motherboard – this is apparently a known (design) fault with the 8300-series where the die has a manufacturing fault, but frankly although I could’ve run the gauntlet of getting a (free) replacement for a 3-year+ old laptop, it just wasn’t worth it; plus I now had an excuse to buy a new machine πŸ˜€

So new machine it was – Decided to get a desktop machine this time around, and something with a little more poke than my old laptop. For the spec-junkies, got myself a lovely i7-2600 machine (now clocking in at 4.4GHz over the stock 3.4GHz thanks to a nice watercooling thingamajigger), Z68 chipset, a bundle of RAM/Fast HDD and a sweet Radeon 6850. So far so good – Fallout 3 on Ultra specs, thanks very much! But all of this came at a price (over and above the financial one!) – Windows 7.

Sure, I could’ve installed XP, but it would have had to be 64-bit XP, and I’ve not heard much good about this lesser-supported beast. And I’ve been forced to use Windows 7 at work now too, so it was definitely time to bite the bitter pill of Windows 7. I still don’t like it. What I disliked very much was its ability to neuter the sound code in my previous creations; OSCA, EPEE and others. This is an issue with the DirectX support on Windows 7 (and Vista) when using circular streaming buffers. Not sure why – I think it has something to do with Position notification callbacks, but regardless I just couldn’t fix it, no matter how hard I tried.

So… I’ve replaced the DirectX code with the BASS library and after a few niggles with the documentation (bytes remaining in buffer as documented really means samples in buffer, for example) the fat lady is finally singing once again! In addition, I’ve moved up the development suite chain too, so this is built using a newer IDE (Rad Studio XE2). Attached below are the source and binary downloads. You’ll need to unpack the binary over an existing version, or obtain the config and disk images elsewhere.

  OSCA Emulator Sources 1.0 (216.8 KiB, 341 hits)

  OSCA Emulator Binary 1.0 (1.2 MiB, 346 hits)

OSCA emu improved accuracy (includes source code)

1 Comment

Thanks to Daniel (Altair), I’ve managed to tidy up a couple of outstanding bugs in the emulation, so this improves the emulation of his “Loopback” demo:

1. Sprite X position is now offset by one pixel to the right (as it should be) – Logo is now correctly positioned
2. Reverse-direction Blitting is now implemented – Twisting animation is now correct
3. Alternate display addresses now implemented for Bitmapped modes (previously only implemented for tilemap) – Plasma circles are now correct

I still haven’t fixed the issue with the Linecop and the pixellated bug image as yet, but plan to investigate this next.

I also took the opportunity to add Phil’s latest OSCA addition permitting the first 512 bytes of RAM to be used as read-only RAM and write-palette, so the OSCA emulation is now up to v6.65 – It’s untested at present, but “should work”.

That’s about it really for the time being – There’s still some outstanding issues besides the ones above – I haven’t fixed the options screen yet (it’s largely pointless currently), nor have I fixed the Debug screen (CPU control is pretty much broken since the threading implementation) which is kind of intentional as I intend to re-work this a little to add a linecop disassembler if practical. Display resizing is still broken also.

Still, it is what it is, and the binary and sources are available below for anyone interested…

  OSCA Emulator Binary 0.8 (516.2 KiB, 364 hits)

  OSCA Emulator Sources 0.8 (128.3 KiB, 335 hits)

OSCA Emulator more up-to-date than retro

1 Comment

Spent some time today modifying the I/O mapping of the OSCA emulator to bring it fully up-to-date with the latest release (v6.64 at the time of writing this).

In practical terms, this brings in bankable lower 32k of RAM and re-mappable video RAM addressing. On the main OSCA emulator page, the binary and source download links have both been updated to point to the latest revision (0.4 as of this writing). As they are full archives, take care not to overwrite any modified disk image files!! I also took the opportunity to correct the minor typo in the supplied config file so it should boot without any issues now “out-of-the-box” (Thanks to Niallquinn, Phil and Enzo for pointing this out)

In terms of some of the other newer features of OSCA (video support mostly – 8×8 tilemap mode, wide chunky pixels etc.), this functionality has not yet been incorporated, but is next on the list!

OSCA v6.64 booted in the emulator

Obligatory screengrab above shows 6.64 successfully booted in the emulator. On a side-issue, this now means that Daniel’s awesome loopback demo now shows the intro screen, but it then goes into a loop waiting for something… not sure what yet!


V6Z80P – What’s that noise?

No Comments

I’ve uploaded a patched version of the V6Z80P OSCA emulator to the respective page. This patched version should just be unpacked over the top of the existing executable.

The major change with this version is the addition of (working!) Audio support – So now you can enjoy the MOD and PT3 players running under FLOS. I’ve made the output discretely stereo on each channel rather than fully left-or-right as it would be on the real hardware. There may well be issues with the Audio playback, but “it works for me pretty much(tm)”. The only major item left to do with Audio (besides the inevitable bug-fixing) is to add a linear resampler mode to smooth out the output.

I’ve also re-vamped the way that the display is updated. It isn’t the best implementation in all fairness, but that’s likely to be the next point of attention (in particular to add the sorely-lacking Tilemap mode and sprites). Also, the performance isn’t all that great, sadly: You may want to click the Options menu and disable both the video smoothing and auto-throttling (and drag that throttle bar way up!). Once the hardware is largely all implemented, I will revamp the timing mechanism used in the emulator (time permitting) to improve performance, especially when multiple cores/cpus are used.

Anyway – progress is progress, so I’m reasonably happy to have had some time to revisit the emulator after such a long hiatus.


OSCA Emulator Added

No Comments

I have added screenshots and download links for my OSCA emulator. Instructions to be added soon…