APU frame counter speed on Dendy?
Moderator: Moderators
APU frame counter speed on Dendy?
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.
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!
- mikejmoffitt
- Posts: 1353
- Joined: Sun May 27, 2012 8:43 pm
- HardWareMan
- Posts: 209
- Joined: Mon Jan 01, 2007 11:12 am
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.mikejmoffitt wrote:I was under the impression that all Dendy units shared timings with the PAL NES, i. e. 50fps.
- rainwarrior
- Posts: 8734
- Joined: Sun Jan 22, 2012 12:03 pm
- Location: Canada
- Contact:
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]
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]
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.
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!
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?
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!
- HardWareMan
- Posts: 209
- Joined: Mon Jan 01, 2007 11:12 am
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%.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.
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).
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!
Re: APU frame counter speed on Dendy?
6527P chip result: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.
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.
Re: APU frame counter speed on Dendy?
Could you use thefox's test to provide a more precise timing?