DFB1 BadMooD issues

Discussion and support for the DSTB1 & DFB1 boosters by BadWolf..
User avatar
dml
Posts: 844
Joined: 15 Nov 2017 22:11

Re: DFB1 BadMooD issues

Post by dml »

I'm thinking of making a CPU/DSP interaction test program, to see if anything interesting shows up.

Normal builds of BM for 030/Hatari use minimal DSP handshaking for performance. However the test builds I have been providing are different.

One of the builds (D) uses handshaking everywhere. So no timing/sync issues - both sides negotiate every transfer (which has a performance hit but prevents any exchange-related freezes due to dropped data).

In all builds, DSP always negotiates because it is generally in front of the exchange, so nothing to lose. CPU only negotiates if configured to, for each type of transfer - unless it is 'always on', which was the case for test build 'D'.

The DSP is not used at all in the menus. It is initialized once on startup and a program is transmitted via XBIOS but that's all. The tricky stuff only happens later when the game window opens.

As mentioned yesterday, DSP is not involved in music/sound at all. Blitter is used on 030/Hatari builds, but not in these 0x0 builds.

So this is all very strange. But i'll see what I can come up with re: small independent tests to narrow down which 'thing' is going awry.

@exxos - yes BM program can be run from AltRAM. Even if it is forced to run from STRam, it will query AltRAM and prefer it for most things when available, except for display and audio DMA, which is requested always from STRam only.
User avatar
dml
Posts: 844
Joined: 15 Nov 2017 22:11

Re: DFB1 BadMooD issues

Post by dml »

Badwolf wrote: 08 Nov 2022 11:34 That said, Ace Tracker *doesn't* work in VGA mode on DFB1, probably for the same reasons BadMood037 didn't which I think was something related to clock switching confusing the precise Videl timings.
Does it work in RGB mode? I mean the DSP synth functions as expected, VGA issues aside?
User avatar
exxos
Site Admin
Site Admin
Posts: 28376
Joined: 16 Aug 2017 23:19
Location: UK

Re: DFB1 BadMooD issues

Post by exxos »

Badwolf wrote: 08 Nov 2022 11:34 That said, Ace Tracker *doesn't* work in VGA mode on DFB1, probably for the same reasons BadMood037 didn't which I think was something related to clock switching confusing the precise Videl timings.
Could you use the Falcons 32mhz master clock ? Aside from it being slower than 50mhz, it should sync without glitching errors better.
User avatar
Badwolf
Site sponsor
Site sponsor
Posts: 3043
Joined: 19 Nov 2019 12:09

Re: DFB1 BadMooD issues

Post by Badwolf »

dml wrote: 08 Nov 2022 12:53
Badwolf wrote: 08 Nov 2022 11:34 That said, Ace Tracker *doesn't* work in VGA mode on DFB1, probably for the same reasons BadMood037 didn't which I think was something related to clock switching confusing the precise Videl timings.
Does it work in RGB mode? I mean the DSP synth functions as expected, VGA issues aside?
I don't recall, to be honest. Will have to check.
exxos wrote: 08 Nov 2022 13:10
Badwolf wrote: 08 Nov 2022 11:34 That said, Ace Tracker *doesn't* work in VGA mode on DFB1, probably for the same reasons BadMood037 didn't which I think was something related to clock switching confusing the precise Videl timings.
Could you use the Falcons 32mhz master clock ? Aside from it being slower than 50mhz, it should sync without glitching errors better.
I have no reason to believe it's glitching, I suspect it the switching itself that's the problem, although I could easily check that with OPTION2 set (block acceleration).

Not at home until much later today.
dml wrote: 08 Nov 2022 12:46 The DSP is not used at all in the menus. It is initialized once on startup and a program is transmitted via XBIOS but that's all. The tricky stuff only happens later when the game window opens.

As mentioned yesterday, DSP is not involved in music/sound at all. Blitter is used on 030/Hatari builds, but not in these 0x0 builds.
This would seem to rule out DSP/TT-RAM interaction, then.


BW
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
User avatar
Badwolf
Site sponsor
Site sponsor
Posts: 3043
Joined: 19 Nov 2019 12:09

Re: DFB1 BadMooD issues

Post by Badwolf »

dml wrote: 08 Nov 2022 12:53 Does it work in RGB mode? I mean the DSP synth functions as expected, VGA issues aside?
Screen snaps in and out of garbled in RGB mode too.

image0.jpg
image1.jpg

Playback is unstable, stopping after a time with a message about the CPU not keeping up (which is ironic).

Screen stabilises with 16MHz switch, but music still aborts with the CPU message.

I don't think any of this is particularly surprising. Programs that use Videl tricks may not like the non-constant cycle time per scanline and anything that has critical DSP timing will probably fall foul of the slightly slower individual DSP accesses that the external interface causes.

DSP processes that aren't *that* synchronised work fine though (BM037 under RGB, for example).

BW
You do not have the required permissions to view the files attached to this post.
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
User avatar
dml
Posts: 844
Joined: 15 Nov 2017 22:11

Re: DFB1 BadMooD issues

Post by dml »

Badwolf wrote: 09 Nov 2022 10:57 Screen snaps in and out of garbled in RGB mode too.
Thanks for trying this.
Badwolf wrote: 09 Nov 2022 10:57 Playback is unstable, stopping after a time with a mesasge about the CPU not keeping up (which is ironic).
Screen stabilises with 16MHz switch, but music still aborts with the CPU message.
Strange.
Badwolf wrote: 09 Nov 2022 10:57 I don't think any of this is particularly surprising. Programs that use Videl tricks may not like the non-constant cycle time per scanline and anything that has critical DSP timing will probably fall foul of the slightly slower individual DSP accesses that the external interface causes.
Maybe - but it is interesting that we have two independent failures involving DSP exchanges, and ACE uses very different methods for interacting with DSP. BM uses 'manual' hostport negotiation. ACE very probably uses interrupt-driven DMA streaming, possibly in hardware negotiation mode. I know for a fact that he makes more channels available on systems with a faster DSP so its hard to imagine non-negotiated exchanges in a context where different machine performance is expected, especially with a high channel count and time critical events (no dropping of audio frames).


Display trickery of the kind used on the ST (timing-sensitive shifter/raster tricks) are generally avoided on the Falcon because the 030 cycle timings and the Falcon bus do not have a fixed relationship. Things vary constantly, so most tricks which are synchronous in nature are out of the window from the start. Most things are coded to expect asynchronous behaviour between devices.

I tried using a time-sensitive Videl event for the status bar in BM for a simple screen split on VGA - and even that is a nightmare and jumps around under acceleration. So it is turned off for all but the base 16MHz machine.

There are some more common Falcon tricks re: partially-negotiated exchanges with DSP as used in BM (e.g. negotiate at block start, but not for each individual word), which can be expected to fail on faster machines, especially bus-boosted machines - but it is easy to avoid doing that (for BM it is build-configurable) and I expect ACE does not do this at all since it is working at audio DMA bandwidths not video bandwidths, so too much to lose, not enough to gain IMO. I expect Thomas set it up to use reliable transfers always, likely using the 'handshaking', interrupt-driven DMA mode. In that case, even competition between DMA and Videl access to the bus would be handled by the hardware DMA handshaking/negotiation mode (scenario is mentioned in the Atari docs).


So while none of this is conclusive whatsoever - it might still be worth investigating to see if DSP/CPU exchanges are in some way being impacted in a manner other than speed/timing.

I won't have time to do much about this for a few days but will continue thinking about it. If I can come up with some kind of simplified direct test it might be worth giving that approach a try before trying to speculatively fix anything else. If it had been a straightforward thing based on experience on the other accelerator boads i would probably have iterated it out by now. I don't think its worth trying any more builds until the problem is a bit better understood.
User avatar
Badwolf
Site sponsor
Site sponsor
Posts: 3043
Joined: 19 Nov 2019 12:09

Re: DFB1 BadMooD issues

Post by Badwolf »

dml wrote: 09 Nov 2022 11:37 I won't have time to do much about this for a few days but will continue thinking about it. If I can come up with some kind of simplified direct test it might be worth giving that approach a try before trying to speculatively fix anything else. If it had been a straightforward thing based on experience on the other accelerator boads i would probably have iterated it out by now. I don't think its worth trying any more builds until the problem is a bit better understood.
I didn't have time last night, but I need to get around to checking if TT-RAM is in play during these tests and disable it if it is. That would be another data point.

I think there's DSP test program kicking around somewhere. I can run that on an extended soak. I think that was looking for DMA audio issues rather than stress-testing the DSP itself, however, so may not show up everything.

Cheers,

BW
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
User avatar
exxos
Site Admin
Site Admin
Posts: 28376
Joined: 16 Aug 2017 23:19
Location: UK

Re: DFB1 BadMooD issues

Post by exxos »

User avatar
Badwolf
Site sponsor
Site sponsor
Posts: 3043
Joined: 19 Nov 2019 12:09

Re: DFB1 BadMooD issues

Post by Badwolf »

exxos wrote: 09 Nov 2022 12:01 @Badwolf viewtopic.php?f=25&t=4575
That's the one, ta.

BW
DFB1 Open source 50MHz 030 and TT-RAM accelerator for the Falcon
Smalliermouse ST-optimised USB mouse adapter based on SmallyMouse2
FrontBench The Frontier: Elite 2 intro as a benchmark
User avatar
stephen_usher
Site sponsor
Site sponsor
Posts: 7380
Joined: 13 Nov 2017 19:19
Location: Oxford, UK.

Re: DFB1 BadMooD issues

Post by stephen_usher »

Note that in VGA mode ACE Tracker has display glitches now and again on a stock machine, which is a known issue that New Beat has said he'd look at sometime.
Intro retro computers since before they were retro...
ZX81->Spectrum->Memotech MTX->Sinclair QL->520STM->BBC Micro->TT030->PCs & Sun Workstations.
Added code to the MiNT kernel (still there the last time I checked) + put together MiNTOS.
Collection now with added Macs, Amigas, Suns and Acorns.

Return to “DSTB1 & DFB1 booster by BadWolf”

Who is online

Users browsing this forum: ClaudeBot and 5 guests