Skip to content

ZXHawk - Big updates#4792

Open
Asnivor wants to merge 12 commits into
masterfrom
ZXHawk-works
Open

ZXHawk - Big updates#4792
Asnivor wants to merge 12 commits into
masterfrom
ZXHawk-works

Conversation

@Asnivor

@Asnivor Asnivor commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

dev build for branch | USERNAME:BRANCHNAME

  • Z80A performance optimisations (Z80AOpt)
  • UPD786 disk controller accuracy and timing fixes (moved into Cores\Floppy to be used by CPCHawk in the near future)
  • A new fluxdisk implementation, with converters from IPF, SCP, HFE, TRD & SCL
  • Datacorder implementation updated and moved into Cores\Tapes to be used by CPCHawk in the near future
  • Added turbo tape loading (non-deterministic only)
  • Finished ZXHawk Pentagon128 implementation
  • AY PSG accuracy updates. Moved into Cores\Sound for use in CPCHawk at a later date

Obviously, previous savestates are not compatible.

Check if completed:

  • I have run any relevant test suites
  • I, the commit author, have read the licensing terms for contributors (last updated 2024-06-22) and am compliant
    • Coauthored by Claude (Opus 4.6)

@Asnivor Asnivor self-assigned this Jul 9, 2026
@Asnivor Asnivor added the Core: ZXHawk Sinclair ZX Spectrum core label Jul 9, 2026
@Asnivor

This comment was marked as resolved.

@YoshiRulz YoshiRulz linked an issue Jul 10, 2026 that may be closed by this pull request

@YoshiRulz YoshiRulz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Where to begin... clearly I haven't enabled enough Analyzer rules. Non-exhaustive list:

  • braces XOR single-line
  • newline before =>
  • space after cast
  • go easy on the hand-aligned comments (/[ ]{2,}/ should not match your code)
  • doc comments are HTML-like: you don't need to fold at 80 cols, and you can use line breaks and bullet lists
  • use is with constant RHS
  • coalesce subsequent checks into pattern matching
  • s/for (;;)/while (true)/
  • add a using statement instead of writing FQN
  • use existing data structures and helper methods
  • use LINQ; if it's too slow, write a helper method
  • use {ReadOnly,}Span
  • use u8 literal instead of casting UTF-16 chars
  • use string interpolation
  • omit type when assigning field/prop with new()
  • use named arguments unless types make it unambiguous
  • don't merge field/local declarations
  • enable NRTs in new files
  • why rename the Z80A type and namespace? just the namespace would suffice

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

Labels

Core: ZXHawk Sinclair ZX Spectrum core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

TRD and SCL diskette file formats - ZX Spectrum core

2 participants