Jump to content

Can the Epoch emulator talk to real hardware?


russdx
 Share

Recommended Posts

Have been thinking about this ever since the emulator supported epoch, because all the actual driver hardware is on the bus system and the main cpu board basically just handles audio and the game roms / dip switches, could the epoch emulator talk to real hardware via some hardware interface? 

I assume the emulator skips the bus part of thing and just reads memory maps to see what should be happening? But could the bus interface be emulated as well and hook it up to a real machine? Could we run a real machine using a raspberry pi or something? (would be pretty cool)

Just an idea :D

Link to comment
Share on other sites

that would be very desirable. the cctalk bus could be pointed at a real com port, and hoppers coin mechs interfaced with ease. reels pointed at a parrallel port or serial , same with buttons. bet the cabinet builders would love it. it gets my vote for sure.

Link to comment
Share on other sites

The whole thing runs on the little ribbon cable bus so you only need 1 interface (same as on the original epoch board) the rest of the hardware all talks via this so should all come for free. If that interface was emulated then hooked up to real hardware the machine would just think its talking to a real epoch board? not an emulator.

Link to comment
Share on other sites

Not really possible I'm afraid.  You're correct that Epoch is all memory mapped, but the bus and comms between the daughter boards is handled by an ASIC on the main MPU.   As far as I know there's no documentation for this interface.  It's probably simply but it'd still be highly impractical to reverse-engineer.  

I've managed to compile my Epoch emulator on ARM and it runs nicely on a RPI - I always intended to write an interface to external hardware so I could build a "real" machine.  As above, it couldn't really run over Epoch daughter boards though.

I'll let you know if I ever get around to it.  Won't be for a couple of years at least though due to having young children.

Link to comment
Share on other sites

Ah did not know the ASIC controlled the bus, what a pain, and this will be some custom chip not an off the shelf thing? Good to know it can run on a raspberry pi though :)

How would the ASIC be reverse engineered? monitor the signals going in and then see what comes out? Or would you skip it completely and just monitor the bus and see what commands are sent around it to control the little daughter boards. From memory the daughter boards did not have many chips regarding the bus so guessing its quite a basic protocol its using to talk to them?

I am in the same boat with young children, hobbies go out the window :D

Link to comment
Share on other sites

Yes an ASIC is essentially a programmable processor.  Once it's burned I don't think it's possible to retrieve or re-assemble the source that created it.  As far as I remember the ASIC and CPU don't directly interact and they're not even aware of each other.  The CPU writes the state of everything to RAM (lamps, stepper motor solenoids, LCD characters etc) and the ASIC constantly reads this RAM and refresh the state of everything over the bus.  The ASIC also writes a few things back to RAM for the CPU to read like the reel optos, hopper opto, button states etc

So anyway to figure it out you'd have to wiretap all the data lines on the bus of a real machine, save their state on each clock refresh, then analyse the dump of this to work out the message/command structure.  It'd be very painstaking and time consuming.

Epoch hardware is probably quite difficult to come by now too.  I used to have loads but I either sold or chucked it all.  The boards were notoriously poor anyway.  Bad solder joints, components and the RTC battery always eventually leaked, frying the MPU board.

Link to comment
Share on other sites

  • 2 weeks later...
On 11/02/2022 at 23:31, miroslav22 said:

Yes an ASIC is essentially a programmable processor.  Once it's burned I don't think it's possible to retrieve or re-assemble the source that created it.  As far as I remember the ASIC and CPU don't directly interact and they're not even aware of each other.  The CPU writes the state of everything to RAM (lamps, stepper motor solenoids, LCD characters etc) and the ASIC constantly reads this RAM and refresh the state of everything over the bus.  The ASIC also writes a few things back to RAM for the CPU to read like the reel optos, hopper opto, button states etc

So anyway to figure it out you'd have to wiretap all the data lines on the bus of a real machine, save their state on each clock refresh, then analyse the dump of this to work out the message/command structure.  It'd be very painstaking and time consuming.

Epoch hardware is probably quite difficult to come by now too.  I used to have loads but I either sold or chucked it all.  The boards were notoriously poor anyway.  Bad solder joints, components and the RTC battery always eventually leaked, frying the MPU board.

Ah I follow, sounds like the emu knows nothing about the asic or the bus as it only needs the memory map. 
 

Sounds like your right would need to get a logic analyser out and see what’s happening on that bus. Let’s say that part was decoded and we could control real hardware via the bus by sending dummy packets. How would this be connected to the emulator? Can it be edited? 

Link to comment
Share on other sites

 Share

×
×
  • Create New...