higan-emu / higan

higan is a multi-system emulator focused on accuracy, preservation, and configurability.
Other
1.19k stars 112 forks source link

higan: preliminary support for ZX Spectrum 48k & ZX Spectrum 128 #144

Open LukeUsher opened 4 years ago

LukeUsher commented 4 years ago

This implements preliminary support of the ZX Spectrum 48k and ZX Spectrum 128 computers into higan.

This core should run most ZX Spectrum games without issues but may struggle with timing-sensitive homebrew and demos.

The kempston controller interface is emulated to allow joystick input in supported games.

Known Issues:

  1. Bubble Bobble (128k version) has an issue where the music cuts out when blowing a bubble and resumes when jumping
  2. Bus contention and Floating bus behavior is not accurately emulated
  3. Fast-Forward/Rewind are not yet implemented: only Play/Pause are supported. Games that require multiple loads may not work.
  4. The byuu alternative UI is not supported, higan must be used.
  5. Serialization/Save-States have not been tested/fully implemented

Games must be imported with Icarus and must be mono .wav (PCM) audio.

fuel-pcbox commented 4 years ago

Why does this PR include the ZX Spectrum BIOS ROMs? Aren't those copyrighted?

LukeUsher commented 4 years ago

Why does this PR include the ZX Spectrum BIOS ROMs? Aren't those copyrighted?

Amstrad gave permission for these roms to be included with emulators, many years ago, see https://groups.google.com/g/comp.sys.amstrad.8bit/c/HtpBU2Bzv_U/m/HhNDSU3MksAJ?pli=1 for details

They were able to do this because Amstrad purchased the rights for the ZX Spectrum family from Sinclair way back when. (The +2 and all later models are Amstrad produced)

The key point is

Amstrad are happy for emulator writers to include images of our copyrighted
code as long as the (c)opyright messages are not altered 

This is why all ZX Spectrum emulators include, and are able to include the firmware/bios roms.

fuel-pcbox commented 4 years ago

Fair enough, though this should probably be stated somewhere in the README or something :P

fuel-pcbox commented 3 years ago

Status updates on this?