![]() |
||
---|---|---|
.. | ||
Hardware | ||
Machine | ||
Media/Tape | ||
Pulse.cs | ||
RomData.cs | ||
SoundProviderMixer.cs | ||
ZXSpectrum.Controllers.cs | ||
ZXSpectrum.IDebuggable.cs | ||
ZXSpectrum.IEmulator.cs | ||
ZXSpectrum.IInputPollable.cs | ||
ZXSpectrum.IMemoryDomains.cs | ||
ZXSpectrum.ISettable.cs | ||
ZXSpectrum.ISoundProvider.cs | ||
ZXSpectrum.IStatable.cs | ||
ZXSpectrum.IVideoProvider.cs | ||
ZXSpectrum.Util.cs | ||
ZXSpectrum.cs | ||
readme.md |
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
- IM2 Interrupts and DataBus implementation (thanks Aloysha)
- Beeper/Buzzer output (implementing ISoundProvider)
- Keyboard input (implementing IInputPollable)
- Kempston joystick (mapped to J1 currently)
- 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)
- IMemoryDomains (I think)
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
- IDebuggable
- Default keyboard keymappings (you have to configure yourself in the core controller settings)
- 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
- Audible 'popping' from the emulated buzzer after a load state operation