APU frame counter speed on Dendy?

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

User avatar
Dwedit
Posts: 4924
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

APU frame counter speed on Dendy?

Post by Dwedit »

On a Dendy, does the APU frame counter give IRQs every 50 or 60 FPS?

Easiest way to tell is to run Dragon Quest 1 or 2. If the music plays slower, it's 50FPS. If it plays at normal speed, it's 60FPS.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
mikejmoffitt
Posts: 1353
Joined: Sun May 27, 2012 8:43 pm

Post by mikejmoffitt »

I was under the impression that all Dendy units shared timings with the PAL NES, i. e. 50fps.
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Post by tepples »

APU Frame Counter is generated entirely in the CPU. The Dendy CPU runs faster than the PAL NES CPU; the master clock is divided by 15 instead of 16 for compatibility with raster effects in software for the NTSC Famicom.
User avatar
HardWareMan
Posts: 209
Joined: Mon Jan 01, 2007 11:12 am

Post by HardWareMan »

Indeed. Dendy is FamiClone with PAL PPU.
User avatar
tokumaru
Posts: 12427
Joined: Sat Feb 12, 2005 9:43 pm
Location: Rio de Janeiro - Brazil

Post by tokumaru »

mikejmoffitt wrote:I was under the impression that all Dendy units shared timings with the PAL NES, i. e. 50fps.
The way the Dendy generates PAL video in completely different from how a PAL NES does it. Even though the Dendy runs at 50fps, the PPU/CPU clock ratio is the same as that of the NTSC NES. Also, while the PAL NES extends the frame by making VBlank longer, the Dendy puts the extra time at the end of the frame. All of this makes the Dendy much more compatible with an NTSC NES than a PAL NES is.
User avatar
rainwarrior
Posts: 8734
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada
Contact:

Post by rainwarrior »

I'd like to know about the frame counter on PAL, let alone Dendy.

Our wiki page just says "TODO: describe PAL"

http://wiki.nesdev.com/w/index.php/APU_Frame_Counter

Does anyone have a reference for how it is in PAL?[/url]
User avatar
Dwedit
Posts: 4924
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit »

Nintendulator says:
const int FrameCyclesNTSC[5] = { 7456,14912,22370,29828,37280 };
const int FrameCyclesPAL[5] = { 8312,16626,24938,33252,41560 };

But that's not the same as a hardware confirmation.

These numbers tell you at what CPU cycle you reach that APU subframe number. 4th number tells you when you get an APU Frame IRQ (in CPU cycles). 5th number only matters if the APU is running in 5 stage mode.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
Bregalad
Posts: 8056
Joined: Fri Nov 12, 2004 2:49 pm
Location: Divonne-les-bains, France

Post by Bregalad »

Does famiclone even have an APU frame counter ? I heard multiple times that Dragon Warrior games, doen't work on famiclones....
Useless, lumbering half-wits don't scare us.
User avatar
Dwedit
Posts: 4924
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit »

If the system can perform frequency sweeps and hardware volume envelopes, then it has to have the APU frame counter. Whether or not it will generate interrupts is a different question.

Dragon Warrior (US version) doesn't use Frame IRQs. It's Dragon Quest (Japanese version) that does. Same for Dragon Quest 2.

I have no idea why Dragon Warrior 1 would fail on a famiclone. It works so well on every emulator in existence. Some kind of electrical or hardware incompatibility?
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
Dwedit
Posts: 4924
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit »

I think I got my answer from watching the Battletoads video. Sound sweeps go higher than normal, so it's clocking the frame counter at normal NTSC clock cycle counts.
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
HardWareMan
Posts: 209
Joined: Mon Jan 01, 2007 11:12 am

Post by HardWareMan »

Dwedit wrote:I think I got my answer from watching the Battletoads video. Sound sweeps go higher than normal, so it's clocking the frame counter at normal NTSC clock cycle counts.
Not quite. NTSC Famcom CPU core runs at 21.47727/12=1,7897725MHz. Dendy CPU core runs at 26.601712/15=1,77344746MHz. Difference is more than 0,9%.
User avatar
Dwedit
Posts: 4924
Joined: Fri Nov 19, 2004 7:35 pm
Contact:

Post by Dwedit »

I'm referring to CPU cycles per APU frame counter tick, not the rate of the frame counter in Hz.

I still don't have solid tested numbers for this (someone needs to run Blargg's APU Frame IRQ test on a Dendy to see if it exactly matches NTSC), but I see that it's running at approximately NTSC speed (~7456 cycles per tick) instead of PAL speed (~8312 cycles per tick).
Here come the fortune cookies! Here come the fortune cookies! They're wearing paper hats!
User avatar
Eugene.S
Posts: 317
Joined: Sat Apr 18, 2009 4:36 am
Location: UTC+3
Contact:

Re: APU frame counter speed on Dendy?

Post by Eugene.S »

On a Dendy, does the APU frame counter give IRQs every 50 or 60 FPS?
Easiest way to tell is to run Dragon Quest 1 or 2. If the music plays slower, it's 50FPS. If it plays at normal speed, it's 60FPS.
6527P chip result:
Dragon Quest (Japan) have same music speed as NTSC. Most of blargg's APU tests also passed.

So, Dendy APU frame counter give IRQs every 60 FPS.
Now someone of you may update wiki info.
Last edited by Eugene.S on Fri Jul 08, 2016 12:06 pm, edited 2 times in total.
lidnariq
Posts: 11432
Joined: Sun Apr 13, 2008 11:12 am

Re: APU frame counter speed on Dendy?

Post by lidnariq »

Could you use thefox's test to provide a more precise timing?
User avatar
Eugene.S
Posts: 317
Joined: Sat Apr 18, 2009 4:36 am
Location: UTC+3
Contact:

Re: APU frame counter speed on Dendy?

Post by Eugene.S »

3A42
Post Reply