From: Fabrice Bellard <fabrice@bellard.org>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] How to Simulate hardware that counts scanlines?
Date: Wed, 02 Aug 2006 11:00:23 +0200 [thread overview]
Message-ID: <44D069A7.5020503@bellard.org> (raw)
In-Reply-To: <A69CFE5B2F49D91186C1000BCD9DBD03E2AB46@otausminexs.au.otis.com>
The next release of QEMU is likely to have cycle exact emulation and
delivery of interrupts in the middle of a basic block.
Regards,
Fabrice.
Armistead, Jason wrote:
> Steve Ellenoff wrote:
>
>
>>You misunderstand, I have no control over the running program. I didn't
>>write it, I don't have source code, and I surely wouldn't have used a
>>polling mechanism for determining the vblank as you suggested.
>
>
>>My problem is that I wish to run this program through qemu. I've made a
>>bunch of hardware specific additions to qemu to emulate the specific
>>hardware this program runs on. I'm just not sure the best way to simulate
>>the scanline counting the hardware does.
>
>
>>Seems nobody here has any ideas either, which is kind of hard to believe. I
>
>
>>don't know if this would work, but one idea I had was to divide up the gui
>>timer into 260 slices (that's the # of scanlines the hardware expects), and
>
>
>>simply update the hardware register that counts the scanlines this way.
>
>
>>Does anyone thing that's the way to go, or if there's a better way?
>
>
> As I see it, one of the problems in Steve's scenario is that QEMU does
> dynamic translations based on blocks of code, and the interrupts or changes
> to emulated hardware state are delivered only at the end of the execution of
> an entire basic block. While this might be adequate for an operating system
> which cares for the most part very little about real world timing, it may
> not be sufficient for every case where you want to do an emulation of a
> processor in an embedded device or a curious non-standard PC like Steve's.
>
> I think that's why the game system emulators MAME and MESS are perhaps more
> akin to what he's wanting to do, in that they are able to deliver interrupts
> in exactly the same way as the real CPU sees them i.e. at the end of
> execution of the current instruction, and they consider instruction
> execution timing to maintain an accurate internal time base, independent
> from what the real world outside is doing.
>
> On most modern fast PC CPUs, they can easily emulate the older arcade game
> or computer system hardware with plenty of horsepower to spare, and so it
> appears realtime, synchronised via RDTSC or similar. I guess if you ran
> them on an underperforming PC like an old 486 or early Pentium, you may see
> things go at less than real speed.
>
> Maybe I'm totally off the mark, but at least that's how I read the QEMU docs
> relating to hardware interrupts
>
> http://www.qemu.org/qemu-tech.html#SEC18
>
> and the preceding sections about the way instruction blocks are translated
> and executed.
>
> I'm sure Fabrice and others can shoot me down if needs be ...
>
> Cheers
>
> Jason
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
>
next prev parent reply other threads:[~2006-08-02 9:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-02 0:48 [Qemu-devel] How to Simulate hardware that counts scanlines? Armistead, Jason
2006-08-02 9:00 ` Fabrice Bellard [this message]
[not found] <Pine.LNX.4.64.0608010410410.6869@home.oyster.ru>
2006-08-02 21:47 ` Steve Ellenoff
-- strict thread matches above, loose matches on Subject: below --
2006-08-02 21:28 Steve Ellenoff
[not found] <200607271342.20917.paul@codesourcery.com>
2006-07-31 20:55 ` Steve Ellenoff
2006-07-31 20:53 Steve Ellenoff
2006-07-31 20:58 ` Paul Brook
2006-07-27 3:22 Steve Ellenoff
2006-07-28 16:53 ` André Braga
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44D069A7.5020503@bellard.org \
--to=fabrice@bellard.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).