Hi all & thanks for the responses!

I'm a bit confused by the term 'forking the Z80'. Do you mean create a new repository branch? Or do you mean create a copy of the Z80.cpp (Calling it, say, specz80.cpp, where I'd put the contended memory modifications) and have the zx spectrum driver family use that? Or do you mean (With regards to what Haze mentioned) deriving a specz80_device class from the z80_device class?