dad664npc wrote: 09 Jan 2026 16:26
The pi4 can produce full performance.
Ah, this is very good. It means that there is, at least, hope :)
Do you have an idea about the Musashi "raw" performance when not limited by PiStorm?
The Musashi 68000 emulation does include prefetch.
I probably didn't phrase my question correctly. My question was not about the effect of self modyfying code, if that's what you meant by supporting prefetch. My question was related with what we discussed previously with
@Badwolf :
Can Musashi start a new bus cycle without waiting for the result of the previous one? This is probably critical for performance issues, and it should be doable. Of course that this is not always possible. Obviously a conditional branch does depend on the previous result. But otherwise a new prefetch can always be, at least, started beforehand.
The firmware should work with both latch types but somewhere during development that functionality got broken.
I can understand that one type of latch would work and the other would not. But what doesn't make much sense is that the performance would be different. Never mind. This is not very important at this point. Which type of latch is the one that is currently working (better)?
Anyway, the logic associated with the latches must be completely rewritten. At least according to what I see at the repository. What I see there is some ripple logic that seems to be the perfect example of how not to generate a pulse.
First thing to do is, IMHO, to bring back the high frequency clock. The Atari interface might still use the 8MHZ clock, at least for the time being. But the PI interface should be as much as possible, modified to be synchronous. And for that we need a high frequency clock.
I have rewritten the firmware and have repurposed the first 8 gpio pins. The idea behind this was to improve the pistorm protocol and incorporate BERR, RESET, IPL1 and IPL2 ...
BERR and RESET signal detection had large processing overheads within the emulator. I eventually managed to repurpose the GPIO layout to include these two signals. Reduces read/write overheads as in the case of BERR, it has to be checked for each I/O
I understand, but not sure you need a dedicated pin for each of these signals. Certainly not for RESET. You probably don't even need a dedicated BERR pin. You don't need to check for BERR on every I/O.
For most bus cycles, when accessing RAM, you already know if BERR would be triggered. Even for ROM as well. For I/O access, BERR behavior is more complicated, it depends on the specific chipset version, among other things. So probably better not to be too smart when accessing I/O. But then, you don't care about performance too much when accessing I/O.
Perhaps not critical, but seems there is no support for TAS bus cycles?
The Emu68 developer (Michael Schulz I believe) has stated that it should work with Atari ST but there will need to be a lot of work to get stuff booting etc. (A lot of 68000 machine coding ).
I don't understand. I thought that Emu68 doesn't support the 68K features not used in the Amiga, such as BERR, FC signals, etc. So how it would work at all with the ST?
But if you think you can get a stable firmware then brilliant - I can send you the latest stuff I'm working on
I am willing to help. But as I said, I can't commit myself to write the whole firmware from scratch. And to be honest, from what I've seen, I'm not sure this would not be needed. I certainly can't test it.
But do send me your latest snapshot and we'll see what we can do. You can send me a PM, but is you don't want to make it public for the time being, probably better to open a new github private repository and give me private access. In anycase, include not only the firmware code but everything that is associated. Schematics for the hardware you are using. The PI protocol code. I understand that there is a program to exercise the PI interface without emulator, that would be useful as well.