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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.