Hey Rob, it looks like you might be experiencing what I hypothesized would
happen if you use the multiple interrupt code. My theory is that the
Multiple IRQ code in crtls.zip and Nintendo's reintr example is 'last
come, first serve'
This means that the latest interrupt is always the one which will get
serviced now, and it will preempt any one that is already in progress. If
you want to assign priority then you will have to write code which
temporarily ignores lower priority interrupts.
If you are using single interrupts then the problem is that interrupts are
being put off too long, and you should switch to multiple interrupts so
that those more important IRQs can get priority.
Of course I could be completely wrong. I thought I understood interrupts
pretty well before I started to get my hands dirty with them. The
text-book made it sound so easy ^_^
On Fri, 2 May 2003, Rob Brooks wrote:
> While we're on the subject of interrupts can anyone suggest a reason why I
> might be getting squeaks and splutters in the sound when I'm running
> multiplayer code?
>
> This only happens when I'm running multiplayer code and I'm assuming that
> the MP interrupts are somehow blocking my vblank interrupts which service
> the sound buffers.
>
> This same situation seems to occur occasionally with VCount interrupts
> flipping out when there is a lot of sound which is also worse when MP code
> is happening.
>
> What are the solutions for running multiple time-critical interrupts
> successfully on GBA?
>
> I must have my VCount interrtupts for palette switching, and if I let my SIO
> and Timer interrupts for MP go astray I'll lose synch.
>
> :(
>
> -----Original Message-----
> From: Jonathan Perret [mailto:jonathan.perret@...]
> Sent: 02 May 2003 13:45
> To: gbadev@yahoogroups.com
> Subject: Re: [lists] Re: [gbadev] Re: crtls Interrupt Handler
>
>
> From: "matthew conte" <itsbroke@...>
> > there's no need to handle game pak interrupt at highest priority. only
> one
> > interrupt is handled per entry to the main ISR (for most usual setups), so
> > giving the lowest priority is fine.
>
> I don't follow you. Do you mean that only one bit is ever set in IF when
> the BIOS calls the ISR ? That seems quite unlikely.
> If this is not the case then the cart interrupt MUST be handled first
> since every other interrupt handler is likely to access code or data that
> resides in ROM. No ?
>
> Cheers,
> --Jonathan
>
>
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
>
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
--
The Phoenix - NekoCo - The Artistic Intuition Company
DevKitAdvance*MirrorReflex*Teapot*PhoenixQuake*Caelius*Zen-X*InfiniteRealms