Skip to content

Conversation

LukeUsher
Copy link
Contributor

@LukeUsher LukeUsher commented Nov 9, 2020

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.

Copy link
Contributor

@jchv jchv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did a preliminary, mostly-superficial sweep over the code. Looks pretty good!


auto in(uint16 address) -> uint8;
auto out(uint16 address, uint8 data) -> void {}
}; No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing newline. Also, shouldn’t headers in Higan be .hpp?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good spot, will fix shortly. Old habits :p


auto save() -> void;

//private:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Guessing this is intended to be uncommented at some point?

}

unreachable;
} No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another missing newline here.

@LukeUsher LukeUsher marked this pull request as ready for review November 10, 2020 14:11
@fuel-pcbox
Copy link
Contributor

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

@LukeUsher
Copy link
Contributor Author

LukeUsher commented Nov 13, 2020

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
Copy link
Contributor

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

@fuel-pcbox
Copy link
Contributor

Status updates on this?

Copy link

@Shideravan Shideravan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's nice to see a new system coming to Higan :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants