<p dir="ltr"></p>
<p dir="ltr">On Jul 19, 2016 4:44 PM, "Rob Landley" <<a href="mailto:rob@landley.net">rob@landley.net</a>> wrote:<br>
><br>
><br>
><br>
> On 07/19/2016 08:55 AM, Christopher Friedt wrote:<br>
> > On Jul 18, 2016 11:51 PM, "Rob Landley" <<a href="mailto:rob@landley.net">rob@landley.net</a><br>
> > <mailto:<a href="mailto:rob@landley.net">rob@landley.net</a>>> wrote:<br>
> >><br>
> >> FYI:<br>
> >><br>
> >> <a href="http://hackaday.com/2016/07/11/cracking-the-sega-saturn-after-20-years/">http://hackaday.com/2016/07/11/cracking-the-sega-saturn-after-20-years/</a><br>
> ><br>
> > I think I sent a link on the ML to the YouTube video about a week ago.<br>
> ><br>
> >> (Alas, when we looked at possibly doing an FPGA saturn clone with J2 as<br>
> >> a side project for the 20th anniversary, it turned out there were some<br>
> >> tight timing constraints that make games misbehave very easily, at least<br>
> >> in software emulation. I think some j2 instructions take different<br>
> >> numbers of clock cycles than sh2 did? Don't remember the details, but we<br>
> >> shelved the idea...)<br>
> ><br>
> > I'm still interested in doing some Qemu work. Currently the SH core<br>
> > (even before J2 additions) is not cycle-accurate, which is a bit of a<br>
> > critical error made by the initial Qemu SH port.<br>
><br>
> No, qemu is never cycle accurate for anything it emulates. It's a<br>
> dynamic code translator, not a cycle accurate simulator. (Cycle accurate<br>
> simulators are 1/100th the speed of qemu. At a design level you can only<br>
> ever get cycle accuracy by slowing DOWN from the fastest you can do, and<br>
> caring about that level at all opens a can of worms of complexity that<br>
> costs you an order of magnitude of speed before that's even an issue in<br>
> the first place.)</p>
<p dir="ltr">I'm well aware of how Qemu operates and described it (correctly) as a binary translator in my previous response.</p>
<p dir="ltr">The pipeline for each CPU can, should and is (for most other arches), designed to be cycle accurate (using temporary registers). The Qemu SH port does not currently use temporary registers to accurately describe the pipeline. Hence the failed tests (I made a number of very accurate posts to the mailing list about this some time ago).</p>
<p dir="ltr">Also, Fabrice was not the original SH author, IIRC. He would have done a better job :-)</p>
<p dir="ltr">Cheers,</p>
<p dir="ltr">C</p>