qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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
> 
> 

  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).