BizHawk/BizHawk.Emulation.Cores/Computers/SinclairSpectrum
alyosha-tas 07b9e1243c
ZX Spectrum draft DB access
2017-11-29 16:31:53 -05:00
..
Hardware More SynState work 2017-11-28 19:28:22 +00:00
Machine ZX Spectrum draft DB access 2017-11-29 16:31:53 -05:00
Media/Tape Started tape impl. 2017-11-24 18:43:04 +00:00
Pulse.cs Initial commit. 48K spectrum only. 2017-11-23 17:26:15 +00:00
RomData.cs More SynState work 2017-11-28 19:28:22 +00:00
ZXSpectrum.Controllers.cs Initial commit. 48K spectrum only. 2017-11-23 17:26:15 +00:00
ZXSpectrum.IDebuggable.cs Initial commit. 48K spectrum only. 2017-11-23 17:26:15 +00:00
ZXSpectrum.IEmulator.cs Initial commit. 48K spectrum only. 2017-11-23 17:26:15 +00:00
ZXSpectrum.IInputPollable.cs Initial commit. 48K spectrum only. 2017-11-23 17:26:15 +00:00
ZXSpectrum.IMemoryDomains.cs More SynState work 2017-11-28 19:28:22 +00:00
ZXSpectrum.ISettable.cs More SynState work 2017-11-28 19:28:22 +00:00
ZXSpectrum.IStatable.cs More SynState work 2017-11-28 19:28:22 +00:00
ZXSpectrum.Util.cs More SynState work 2017-11-28 19:28:22 +00:00
ZXSpectrum.cs More SynState work 2017-11-28 19:28:22 +00:00
readme.md Added readme 2017-11-28 20:09:00 +00:00

readme.md

ZXHawk

At this moment this is still very experimental and needs a lot more work.

Implemented and sorta working

  • IEmulator
  • ZX Spectrum 48k model
  • ULA video output (implementing IVideoProvider)
  • ULA Mode 1 VBLANK interrupt generation
  • Beeper/Buzzer output (implementing ISoundProvider)
  • Keyboard input (implementing IInputPollable)
  • Tape device that will load spectrum games in realtime (*.tzx and *.tap)
  • IStatable (although this is not currently working/implemented properly during tape load operations)

Some progress

  • ISettable - There are some Settings and SyncSettings instantiated, although they are not really used and I haven't yet figured out how to wire these up to the front-end yet

Not working

  • Interrupt Mode 2 (Z80A) - usually invokes a soft reboot when the game raises one (can be seen in 'Chaos - Battle of the Wizards' after initial game setup when the game board tries to load)
  • IMemoryDomains - I started looking at this but didn't really know what I was doing yet
  • IDebuggable
  • Default keyboard keymappings (you have to configure yourself in the core controller settings)
  • Joystick support (I still need to implement a Kemptston joystick and interface)
  • Manual tape device control (at the moment the tape device detects when the spectrum goes into 'loadbytes' mode and auto-plays the tape. This is not ideal and manual control should be implemented so the user can start/stop manually, return to zero etc..)
  • Only standard spectrum tape blocks currently work. Any fancy SpeedLock encoded (and similar) blocks do not

Known bugs

  • The 'return' keyboard key is acting the same as Space/Break when doing a BASIC RUN or LOAD "" command. The upshot of this is that upon boot, when you go to load the attached spectrum cassette (you have to type: "J", then "SYMSHIFT + P", then "SYMSHIFT + P", then RETURN) it more often than not interrupts the load routine. You then have to try again but hitting the RETURN key at the end of the sequence for as small a time as possible. Rinse and repeat until the load process starts. Clearly NOT ideal.
  • Audible 'popping' from the emulated buzzer after a load state operation