English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 01 April 2010, 17:10   #1
Maren
Banned
 
Join Date: Jul 2009
Location: *
Posts: 567
"Fake" NTSC and BC.Kid



Looks like WinUAE's problem child showed up again A reminder that routinely testing this game should kind of be mandatory.

Here's B.C. Kid's problem in a nutshell: when using the default config + Chipset/NTSC, framerate drops down to 26-27 after the intro, creating a slow motion effect (albeit very solid, no hiccups) and glitches appear all over the screen, but what's interesting is that CPU and SND remain stable (no numbers skyrocketing) music plays back at the correct pitch while sound, which doesn't suffer from pitch abnormalities either, is perfectly synced to those 26-27 frames per second and to top it off, without crackling.

Here's the results for a series of NTSC-related tests (double-checked) I ran in a failed attempt to understand what was going on.

2.0.1:
===

1. Dynablaster on PAL = 58.8 - 59.2 FPS / CPU and SND remained stable.

2. Dynablaster on NTSC = 59.9 - 60.1 FPS / CPU and SND remained stable.

3. B.C. Kid on PAL = 49.9 - 50.1 FPS (intro) and 59.0 - 59.4 FPS (gameplay) / CPU and SND remained stable.

4. B.C. Kid on NTSC = 59.9 - 60.0 FPS (intro) 58.8 - 59.2 FPS (gameplay) / CPU and SND remained stable.

Beta 19:
=====

5. Dynablaster on PAL = 59.9 - 60.4 FPS / CPU and SND remained stable.

6. Dynablaster on NTSC = 59.9 - 60.1 FPS / CPU and SND remained stable.

7. B.C. Kid on PAL = 49.9 - 50.0 FPS (intro) 57.0 - 57.4 FPS (gameplay) / CPU and SND remained stable.

8. B.C. Kid on NTSC = 59.9 60.1 FPS (intro) 26.9 - 27.1 FPS (gameplay) / CPU and SND remained stable.


Now what I can gather from the tests:

. It's specifically the combination of B.C Kid + NTSC what causes WinUAE to behave erratically.

. Enabling CE only increased CPU usage, but rather slightly and proportionally.

. No disk image of the game works correctly when NTSC is enabled (the .ipf was used for logs and savestate)

. The framerate for a real NTSC game (Dynablaster) seems to be closer to the actual NTSC refresh rate than a fake NTSC game's (B.C. Kid) and I'm not suggesting that there's something wrong about it.

. Definitely not a problem that can be solved by switching graphics API's or any other setting in WinUAE.

. The gameplay's framerate during test 7 too was exceptionally low, but caused no further havoc.

. There's a line in winuaelog.log that states "29-359 [3016 000x000]: Shouldn't get here... this is a bug"


Attached are the logs and savestate for B.C Kid in NTSC mode.

Cheers.
Attached Files
File Type: txt winuaebootlog.txt (13.5 KB, 130 views)
File Type: txt winuaelog.txt (7.1 KB, 144 views)

Last edited by Maren; 26 December 2010 at 00:58.
Maren is offline  
Old 01 April 2010, 17:21   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 22,017
But is BCKid even supposed to work in NTSC? (It does "fake" NTSC which isn't even 60Hz but something like 57Hz..)

Note that working in older WinUAE does not mean anything.

(EDIT: probably going to move these to separate thread because this may get interesting..)
Toni Wilen is online now  
Old 01 April 2010, 17:26   #3
Maren
Banned
 
Join Date: Jul 2009
Location: *
Posts: 567
Sorry but I have absolutely no idea. Quite honestly I never fully understood how the fake NTSC thing worked.
Maren is offline  
Old 01 April 2010, 17:40   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 22,017
I checked the code, in NTSC mode it still attempts to do "fake" NTSC.

Copperlist waits for vpos 262, then it triggers level 6 interrupt. Interrupt routine then reads current vpos, adds 36 (Why 36?) and writes it back.(which in PAL Amiga moves current vpos to 286. Why???. "Normal" fake NTSC routines simply poke static last PAL line 312)

In NTSC hardware 312 is also accepted and Agnus keeps counting until counter wraps around (it is 9-bit counter in OCS, 11-bit in ECS and AGA).

I think current behavior is correct. (but most monitors probably won't sync properly) Previously emulation had equal or larger test but real hardware only have "does vpos equal last line?" test. (I did some real hardware tests month or so ago and updated emulation)

EDIT: correct in timing but not exactly correct display, it isn't really made for PAL or NTSC 512 line tall displays

Last edited by Toni Wilen; 01 April 2010 at 17:49.
Toni Wilen is online now  
Old 01 April 2010, 17:56   #5
Maren
Banned
 
Join Date: Jul 2009
Location: *
Posts: 567
Thanks for the answer, but since I'm still a lil bit clueless...what would be the correct settings for this game? more specifically refresh rate, given that apparently it wasn't meant to be played on real NTSC amigas. I just don't quite grasp the non-50hz PAL game concept, if I got your right
Maren is offline  
Old 01 April 2010, 19:02   #6
Mclane
Old fart!

Mclane's Avatar
 
Join Date: Apr 2002
Location: Northolt, West London
Age: 57
Posts: 568
Quote:
Originally Posted by Maren View Post
Thanks for the answer, but since I'm still a lil bit clueless...what would be the correct settings for this game? more specifically refresh rate, given that apparently it wasn't meant to be played on real NTSC amigas. I just don't quite grasp the non-50hz PAL game concept, if I got your right
I don't think the non 50hz idea was only really grasped when consoles like the Snes and MD came to be, easpecially the region locking issue. Suddenly every one was complaining about the 17% (?) speed loss and wanting things to run at 60fps.

Before that no one really even mentioned it...
Mclane is offline  
Old 01 April 2010, 19:43   #7
Maren
Banned
 
Join Date: Jul 2009
Location: *
Posts: 567
Quote:
Originally Posted by Mclane View Post
I don't think the non 50hz idea was only really grasped when consoles like the Snes and MD came to be, easpecially the region locking issue. Suddenly every one was complaining about the 17% (?) speed loss and wanting things to run at 60fps.

Before that no one really even mentioned it...
I don't know anything about these consoles so I have no idea where you're coming from, but I never heard any PAL Amiga users complaining about speed loss, in fact, it was quite the opposite; I did hear a couple of NTSC Amiga users complaining about things moving too fast

Either way, I'm talking about these nonstandard refresh rates (neither 50hz nor 59.94hz)
Maren is offline  
Old 01 April 2010, 20:39   #8
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 43
Posts: 22,017
Quote:
Originally Posted by Maren View Post
I don't know anything about these consoles so I have no idea where you're coming from, but I never heard any PAL Amiga users complaining about speed loss, in fact, it was quite the opposite; I did hear a couple of NTSC Amiga users complaining about things moving too fast
Most Amiga games are PAL. Too fast in NTSC. Most old console games were NTSC (US&Japan) -> extra borders + slower in PAL. (some supported PAL-60)

Quote:
Thanks for the answer, but since I'm still a lil bit clueless...what would be the correct settings for this game? more specifically refresh rate, given that apparently it wasn't meant to be played on real NTSC amigas. I just don't quite grasp the non-50hz PAL game concept, if I got your right
It is made for PAL Amigas. For some unknown reason programmers decided to use weird ~57Hz refresh rate by modifying vertical position counter from 262 to 286 but decided to ignore real NTSC Amigas.

Fake NTSC: OCS Agnus didn't have software PAL/NTSC support. Someone invented this method to "emulate" NTSC by modifying vertical position counter register every frame from line 262 to line 312. (This only changes refresh rate from 50Hz to 60Hz but it does not have real NTSC timing)

Note that older WinUAE versions always used 60Hz when vertical position was modified (because it was simple and most programs wanted 60Hz), now it is emulated more accurately. One change is BC Kid using ~57Hz rate (which is correct) instead of 60Hz.
Toni Wilen is online now  
Old 02 April 2010, 04:37   #9
Maren
Banned
 
Join Date: Jul 2009
Location: *
Posts: 567
Alright, thank you, that clears it up a lot

Now that this has been moved to a separate thread, I'll take the opportunity to ask a lil bit more about timing.

. When you say "60hz" do you actually mean 59.94hz?
. When you say "57hz" do you actually mean 57.00hz? something else?

Believe it or not, decimals in display timing can make a world of a difference and I want my custom mode line to be as accurate as technically possible.
Maren is offline  
Old 02 April 2010, 06:09   #10
Fabie
Banned
 
Join Date: Apr 2009
Location: France
Posts: 478
BCkid is a rare game and uses a strange interlace effect unique in all amiga games

I connect my A1200 through my lifeview 3000 TV card and the program DSCALER
The program DSCALER fails to show correctly the game BCKID
I tried all Dcsaler' deinterlace filters...however none of them works with this game

ALL my other amiga games works perfect using DSCALER and my TV card

incredible but true
Fabie is offline  
Old 02 April 2010, 06:28   #11
Maren
Banned
 
Join Date: Jul 2009
Location: *
Posts: 567
Quote:
Originally Posted by Fabie View Post
BCkid is a rare game and uses a strange interlace effect unique in all amiga games

I connect my A1200 through my lifeview 3000 TV card and the program DSCALER
The program DSCALER fails to show correctly the game BCKID
I tried all Dcsaler' deinterlace filters...however none of them works with this game

ALL my other amiga games works perfect using DSCALER and my TV card

incredible but true
It really isn't that incredible. Most of these video capture cards work at fixed, standard PAL/NTSC refresh rates and resolutions, so if you input something slightly different, bad things are meant to happen.

Also, there's no point in applying de-interlacing because there's no need to weave the fields together in the first place. B.C. Kid has no interlaced frames.

Last edited by Maren; 02 April 2010 at 06:42.
Maren is offline  
Old 02 April 2010, 22:14   #12
Fabie
Banned
 
Join Date: Apr 2009
Location: France
Posts: 478
Quote:
Originally Posted by Maren View Post
It really isn't that incredible. Most of these video capture cards work at fixed, standard PAL/NTSC refresh rates and resolutions, so if you input something slightly different, bad things are meant to happen.

Also, there's no point in applying de-interlacing because there's no need to weave the fields together in the first place. B.C. Kid has no interlaced frames.
some amiga games uses interlaced frames and interlaced effects and other amiga games don't use anything of that
you will notice it using a program like DCSALER and using certain DSCALER 'filters
For example..the filter "simple wave" is a total flicker fixer for the Amiga
(no flicker at pal high resolutions of 640x512 or any other PAL/NTSC interlaced resolution )
using that filter you will see that certain games uses interlace effects and interlaced frames
but
if you use the filter"high motion" you will have a strong flicker on interlaced resolutions but you will not notice any interlaced effects on games
Fabie is offline  
Old 03 April 2010, 04:12   #13
Maren
Banned
 
Join Date: Jul 2009
Location: *
Posts: 567
Quote:
Originally Posted by Fabie View Post
some amiga games uses interlaced frames and interlaced effects and other amiga games don't use anything of that
you will notice it using a program like DCSALER and using certain DSCALER 'filters
For example..the filter "simple wave" is a total flicker fixer for the Amiga
(no flicker at pal high resolutions of 640x512 or any other PAL/NTSC interlaced resolution )
using that filter you will see that certain games uses interlace effects and interlaced frames
but
if you use the filter"high motion" you will have a strong flicker on interlaced resolutions but you will not notice any interlaced effects on games
Sorry bur I think you didn't read the whole paragraph. I'm talking about B.C. Kid specifically, not any other title, and B.C. Kid has no interlaced frames therefore requires neither weaving nor de-interlacing filters (the later of no use without a weaved source) All weaving a perfectly progressive source like B.C Kid's would do is halve the framerate, alter the aspect ratio (unless horizontal resolution is corrected proportionally) and introduce unnecessary interlacing artifacts, so if you really want the image to be larger (e.g. 640x512) simply upscale it.

Only when you scan-double an interlaced output you get flicker, and that's where weaving (the real flicker-fixer) comes in handy.

As for what "high motion" does, I'm not familiar with it so I can't argue, but this is going way beyond the scope of a WinUAE-related discussion.
Maren is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
"Lincs Amiga User Group aka "LAG" Meeting Confirmed for Sat 2nd of March" rockape News 2 21 February 2013 23:46
"Reminder "Lincs Amiga User Group aka "LAG" Meet Sat 5th of January 2013" rockape News 4 30 January 2013 01:06
CD32 Image-Name-Bug: "...(bla)[!].zip" -> "...(bla)[" / "...[test].zip" -> "...[tes" cfTrio support.WinUAE 8 18 December 2012 17:31
Anyone remember "Knightmare" as a kid? AliasXZ Nostalgia & memories 17 13 February 2008 21:57
Problems with "Thespywholovedme", "Flood", "Shinobi" sareks support.Games 12 03 May 2006 15:52

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 16:58.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.07708 seconds with 16 queries