GradualGames wrote:
I'm trying to imagine how one would actually pull off this 300hz idea. It sounds like it would take some crazy fine tuning of the main loop so that it updates at precisely this speed, not to mention what DRW said, actually getting logic updates to happen 5 or 6 times per frame.
You don't need to update this at precise speeds since it's only about the program logic, not the output.
The idea is simply this:
Instead of calling ProcessGameLogic every frame, you do this:
Code:
if (NTSC)
updates = 5
else
updates = 6
for i = 1 to updates
ProcessGameLogic()
UpdateBackgroundBuffer()
UpdateSpriteBuffer()
WaitForNmi()
In this case, of course you would also have a virtual playfield where one pixel on screen is represented by five sub pixels in memory etc.
But this only works if you have the time to run your logic five or six times per frame, i.e. pretty much impossible.
GradualGames wrote:
*edit* Oh wait, I understand the 10fps approach...interesting. That'd be super slow animations though wouldn't it?
Yes. Worse than "Ikari Warriors" which runs at 15 fps if I'm not mistaken.
GradualGames wrote:
Adding a handful of tiny lookup tables wouldn't be nearly as tough as being godly.

If you can do this in a relatively easy way, sure, why not? But if I imagine I had to adjust my game for PAL, this would be a huge hassle.
GradualGames wrote:
I've seen crazier approaches suggested above, but I'm curious if anybody has actually done it in an actually released homebrew.
Duplicating the fifth frame when running on NTSC was done in "Zooming Secretary".
But as I said, that basically makes the PAL version the clean, as-intended master version of the game and the NTSC version the sloppy afterthought.
Since the NES is a Japanese console and had a much wider release in NTSC regions than for PAL and since today's emulators and hardware clones all default to NTSC, I would never make the PAL version the original version.
I'm not aware of any other methods in homebrews apart from sound adjustment.