Skip to content

Fork of Elkulator Acorn Electron emulator with bug fixes and minor enhancements

License

Notifications You must be signed in to change notification settings

dmcoles/elkulator

Repository files navigation

Elkulator v1.1

Build status

This is a Git fork of Tom Walker's Elkulator Acorn Electron emulator for Windows and Linux.

Check out the wiki where I have documented a few issues I have run into here and there.

Changes since last major version

  • Improved stability
  • CSS Sound Expansion emulation
  • Plus 1 and First Byte joystick emulation
  • Sound pitch fixed
  • FDI disc support
  • Save states added
  • Debugger added
  • Redefinable keyboard
  • Bug fix to Master RAM Board emulation
  • Few other fixes
  • Linux port

Features

  • Emulates basic 32k Electron
  • Emulation of all modes including line-by-line effects
  • Turbo board and Master RAM Board emulation
  • Tape emulation
  • Plus 3 emulation
  • ROM cartridges
  • Emulates sound including sample playback
  • CSS Sound Expansion emulation
  • Super 2xSaI, SuperEagle, Scale2X and PAL filters

Status

  • 6502: Enough to run all games AFAIK; cycle-accurate
  • ULA: Cycle-accurate graphics emulation
  • Sound: Plays back samples correctly
  • Tape: Works with UEF, HQ-UEF and CSW files; loading is (optionally) accelerated; read-only
  • Plus 1: ADC only (joysticks)
  • Plus 3: Two drives, ADFS plus DFS, read/write; FDI support (though no images exist yet)
  • CSS: Using SN emulator from B-em

Menu

The menu options are:

  • File
    • Reset: hard-resets the Electron
    • Load state: loads machine state
    • Save state: saves machine state
    • Exit: exits to operating system
  • Tape
    • Load tape...: loads a new UEF tape image file
    • Rewind tape: rewinds tape to beginning
    • Speed: select tape speed from Normal, Fast and Really Fast (Really Fast can break compatibility)
  • Disc
    • Load disc :0/2...: loads a disc image into drives 0 and 2
    • Load disc :1/3...: loads a disc image into drives 1 and 3
    • Eject drive :0/2: removes disc image from drives 0 and 2
    • Eject drive :1/3: removes disc image from drives 1 and 3
    • New disc :0/2: creates a new DFS/ADFS disc and loads it into drives 0 and 2
    • New disc :1/3: creates a new DFS/ADFS disc and loads it into drives 1 and 3
    • Write protect disc :0/2: toggles write protection on drives 0 and 2
    • Write protect disc :1/3: toggles write protection on drives 1 and 3
    • Default write protect: determines whether loaded discs are write-protected by default
  • ROM
    • Load ROM Cartridge 1...: loads the first ROM cartridge
    • Load ROM cartridge 2...: loads the second ROM cartridge (some stuff (e.g. Starship Command) comes on two ROMs and both must be loaded in order to work (these would both be in the same cartridge but have been imaged separately))
    • Unload ROM Cartridges...: unloads both ROM cartridges
  • Hardware
    • Video
      • Display type: selects display output mode from Scanlines, Line doubling, 2xSaI, Scale2X, SuperEagle and PAL filter
      • Fullscreen: enables full-screen mode; press Alt+Enter to leave
      • Resizeable window: lets you resize the window at will; forces line doubling
    • Disc
      • Plus 3 enable: toggles Plus 3 emulation
      • ADFS enable: toggles the presence of the ADFS ROM
      • DFS enable: toggles the presence of the DFS ROM
    • Memory
      • Elektuur/Slogger turbo board: emulates a turbo board (see below)
      • Slogger/Jafa Master RAM board: emulates a master RAM board (see below)
      • Master RAM board mode: selects the mode of operation for the master RAM board (see below) from Off, Turbo and Shadow
    • Sound
      • Internal sound output: enables output of the internal Electron speaker
      • CSS Sound Expansion: emulates a CSS Sound Expansion cartridge
      • Disc drive noise: enables authentic disc drive sounds
      • Tape noise: enables less authentic tape sounds
      • Disc drive type: selects from 5.25 and 3.5 to emulate 5.25″ and 3.5″ disc drive sounds respectively
      • Disc drive volume: selects volume of disc drive sounds from 33%, 66% and 100%
    • Joystick
      • Plus 1 interface: enables Plus 1 emulation; disables First Byte
      • First Byte interface: enables First Byte emulation; disables Plus 1 and Plus 3 (due to conflicts)
    • Keyboard
      • Redefine keyboard: lets you redefine the keyboard
      • Restore default layout: restores default keyboard layout
  • Misc
    • Save screenshot: saves a screenshot in .BMP format
    • Debugger: enters the debugger
    • Break: breaks into debugger (when debugger enabled)

Turbo boards

Elkulator can emulate an Elektuur/Slogger turbo board. This board replaces the lower 8k of RAM in the system with the faster RAM on the board. This has the effect of speeding up most of the system, as most OS workspace is in this lower 8k, along with the stack. However, it can have some slight compatibility problems---the Electron ULA can't display anything from this area, and some timing sensitive games (e.g. Firetrack) will mess up.

Elkulator can also emulate a Slogger/Jafa Master RAM board. This is a far more ambitious affair, attempting to replace all the Electron memory. It has three modes:

  • Off: disabled; same as a normal Electron
  • Turbo: same as the above Turbo board---only replaces 8k
  • Shadow: as above, but also shadows the screen memory: the screen is left in normal memory, and BASIC works with the "shadow memory" on the board; the computer boasts this as "64k mode"; you can use up to 28k in BASIC in all modes, and it runs noticeably faster as well; mode is incompatible with almost all games, though

Linux-specific information

  • The menu is not available all the time: press F11 to open it and F11 to close it again
  • The debugger is only available via the command line
  • Hardware line doubling mode is not available on Linux
  • Full-screen mode doesn't appear to work correctly, at least on my machine: Elkulator takes over the screen, but the resolution never changes
  • Video performance is noticeably slower than on Windows: this is largely due to the lack of hardware acceleration support in Elkulator

FAQ

Q: How do I run a game?

A: Load the UEF file through the tape menu. Then, at the > prompt, type CHAIN"" (for most games; a few will need *RUN).

Q: Why is the 2xSaI filter so slow?

A: The code itself isn't terribly fast to start with, but due to my laziness, the screen rendering code is still in 8-bit, so Elkulator has to perform an 8-bit to 16-bit conversion every frame.

Q: Why is the PAL filter even slower? A: The PAL filter is actually doing a lot of work---processing three 16MHz data streams. It's made worse by my inability to optimise it properly.

Thanks

Dave Moore for the web site and for testing

Peter Edwards for testing and for feature suggestions

Gary Forrest for hosting

Bob Austin, Astec, Harry Barman, Paul Bond, Allen Boothroyd, Ben Bridgewater, Cambridge, John Cox, Chris Curry, 6502 designers, Jeremy Dion, Tim Dobson, Joe Dunn, Ferranti, Steve Furber, David Gale, Andrew Gordon, Martyn Gilbert, Lawrence Hardwick, Hermann Hauser, John Herbert, Hitachi, Andy Hopper, Paul Jephcot, Brian Jones, Chris Jordan, Computer Laboratory, Tony Mann, Peter Miller, Trevor Morris, Steve Parsons, Robin Pain, Glyn Phillips, Brian Robertson, Peter Robinson, David Seal, Kim Spence-Jones, Graham Tebby, Jon Thackray, Topexpress, Chris Turner, Hugo Tyson, John Umney, Alex van Someren, Geoff Vincent, Adrian Warner, Robin Williamson and Sophie Wilson for contributing to the development of the Acorn Electron (among others too numerous to mention)

Other stuff

Also check out Tom's other emulators:

Building

Links

Licence

Elkulator is licensed under GPL 2.0, see LICENSE.md for more details

About

Fork of Elkulator Acorn Electron emulator with bug fixes and minor enhancements

Resources

License

Stars

Watchers

Forks

Packages

No packages published