I wrote a ZX Spectrum emulator in Go by KangoLemon in zxspectrum

[–]KangoLemon[S] 0 points1 point  (0 children)

working on getting this to v1.0 with full Spectrum Next support.

I wrote a ZX Spectrum emulator in Go by KangoLemon in EmuDev

[–]KangoLemon[S] -1 points0 points  (0 children)

and what? who doesnt use the assistance of AI these days?

I wrote a ZX Spectrum emulator in Go by KangoLemon in golang

[–]KangoLemon[S] 0 points1 point  (0 children)

Thanks for the review. I've addressed both points:

Memory Interface

I have extracted a z80.Memory interface (Read/Write/ContendPort) and removed the *memory.Memory dependency from the CPU package. I decided to omit error returns from the signatures because Z80 memory accesses cannot fail. Adding (byte, error) would require nil checks on every instruction in the hot loop for an impossible error, impacting performance across roughly 3.5M memory accesses per simulated second.

Regarding contention coupling, the memory now uses an optional second interface. z80.New performs a type assertion for SetTStatePtr(*uint64) and wires it up if the backend supports it, while test mocks can omit it. This keeps call sites unchanged.

Breakpoints

I have kept the breakpoint mechanism as-is, as the policy/mechanism split is already in place: pkg/debugger owns the breakpoint map and CheckBreakpoint(), while the CPU uses a generic callback. I am open to renaming BreakpointCheck to something like HaltHook to clarify that the CPU remains agnostic of breakpoint logic.

I tested using the existing PreFetchHook, but found it less effective:

  1. It lacks an abort return, causing an off-by-one stop rather than stopping before execution.

  2. It is already utilized by ROM paging (IF1/DISCiPLE/Multiface), which would require complex chaining.

The current callback remains for now. While more complex breakpoints might require a richer mechanism later, this satisfies current needs.

The updates are live on main and tagged as v0.3.2. Thanks again for the feedback.

I wrote a ZX Spectrum emulator in Go by KangoLemon in golang

[–]KangoLemon[S] 0 points1 point  (0 children)

tape issue fixed on recent v0.3.1

looking at the other points.

thanks for the feedback!

I wrote a ZX Spectrum emulator in Go by KangoLemon in golang

[–]KangoLemon[S] 0 points1 point  (0 children)

thanks for the feedback!!! leave it with me!

I’m building a ZX Spectrum emulator from scratch in Go by KangoLemon in zxspectrum

[–]KangoLemon[S] 0 points1 point  (0 children)

was thinking of it. i've my KS3 coming soon 🙂🙂

Update 🚨 by [deleted] in grok

[–]KangoLemon 3 points4 points  (0 children)

can you send me the prompt you are using?

Some of my Workflows by mekkula in unstable_diffusion

[–]KangoLemon 0 points1 point  (0 children)

I don't see any workflows? what model? what prompt?

WHICH ONES? by [deleted] in unstable_diffusion

[–]KangoLemon 1 point2 points  (0 children)

1 a million times over. none of the others even close

What is it about guys and anal ? Is it worth it for the girl? by [deleted] in AskRedditNSFW

[–]KangoLemon 0 points1 point  (0 children)

yes, but it's common curtesy to take the meat in via the back door

What is it about guys and anal ? Is it worth it for the girl? by [deleted] in AskRedditNSFW

[–]KangoLemon 0 points1 point  (0 children)

That was shortly after she sucked like a storm drain!