EDIT: I found out Indiana Jones and the Last Crusade (Ubisoft version) uses #$0D too. However, I think the developers found out about the particularity of that colour with Jimmy Connors Tennis, which uses $0F and therefore runs fine on my TV
I wanted to play some Bee 52 the other day, and it turns out the picture gets distorted on my new TV... Then I popped in some other Camerica games and they have the same problem. Dizzy even screws up the scrolling.
Having done some research, I came to the conclusion that Dizzy uses the evil, evil $0D colour that can screw things up and that some Camerica games read the $2004 register, which makes those games not work on some older NES revisions. My older TV ran the Camerica games fine though. Any idea why Camerica games don't work well with my TV? Do other Camerica games use $0D? Do you have the same problems?
Do you have a flash cart, such as PowerPak or EverDrive-N8? If so, can you make the PLUGE test in
240p test suite 0.03 cause a similar loss of sync on this TV?
I wonder if playing with the "brightness" control might help it see the sync better.
tepples wrote:
Do you have a flash cart, such as PowerPak or EverDrive-N8? If so, can you make the PLUGE test in
240p test suite 0.03 cause a similar loss of sync on this TV?
I wonder if playing with the "brightness" control might help it see the sync better.
I don't have a flashcart, even though I always think of getting one :/
Maybe there are other folks with trinitrons that could help.
I have a Sony KV-13FS100 (13" Trinitron) that I use solely for consoles. I also have a PowerPak, and a top-loader NES as well as front-loader NES.
I'm willing to try out some of the Camerica games to confirm/deny aforementioned claims, but is there any chance of this being something that only happens with an actual legit cart vs. being run via a PowerPak? (Rephrased: OP has carts, I do not, thus I am not sure if the test would be valid)
Also: I'm making a blind assumption that the OP is in Switzerland (PAL), so could this be some PAL vs. NTSC oddity? I obviously can't test PAL stuff.
I think it's quite obviously caused by use of $0D. You can easily check if games use $0D in emulators' palette viewers. (And yes, Fantastic Adventures of Dizzy does use it, as do many other Codemasters/Camerica games like Micro Machines.)
What is the point in using color $0D?
Camerica reverse engineered the NES themselves, so they didn't have anybody to tell them it was forbidden.
Maybe in their tests, they found it was the darkest output, so they presumed it was supposed to be used for black.
It doesn't mess up all TVs, just some, so I could see them not noticing the problem. I wonder if PAL TVs are less susceptible to this problem too?
A lot of people think it's just regular black. I don't blame them, if I hadn't been told that $0D caused problems, I would have assumed it was the correct black to use, considering that the last 2 columns of the palette ($xE and $xF) look like a bunch of nothing, while column $xD actually has some grays in it. AFAIK, Camerica was not a licensed developer, so they most likely didn't have access to the official documentation, and based on reverse engineering they couldn't have guessed that there was something special about color $0D.
That and perhaps Codemasters' QA department didn't have quite as large of a sample of TVs. For example, the Magnavox TV that I most commonly use for NES doesn't noticeably puke on the $0D through composite or RF. I tried 240p test suite (on PowerPak) and Bee 52 (authentic cart), and neither of them artifacted out the way the screenshot above does. Even emphasized $0D didn't confuse it.
Bee 52's title theme is Sunsoft-tastic, no?
tokumaru wrote:
Camerica was not a licensed developer, so they most likely didn't have access to the official documentation, and based on reverse engineering they couldn't have guessed that there was something special about color $0D.
Plus what I've read from interviews with actual licensed developers there was no complete English documentation for a while so learning to develop for it was a pain if they didn't understand Japanese.
If the screen is shaking heavily it could be because it's reading $2004 (but if it worked on you other TV I guess that's not the case). My Famicom is too old for Camerica games anyway.
So I guess the only reason $0D was used was on accident... Well, you know, I wonder how well it would work as an effect in the game, like if the character got shocked, all the regular blacks would turn to $0D for a split second like how many SNES games used the mosaic effect. Of course, this wouldn't work on all TVs though.
I had believed all the Codemasters games use color $0D, at least the ones I had looked at, including the Game Genie. Just now I checked on the recently-released Wonderland Dizzy, and it actually uses color $0E. So it seems they did switch over to a different black at some point.
Memblers wrote:
Just now I checked on the recently-released Wonderland Dizzy, and it actually uses color $0E. So it seems they did switch over to a different black at some point.
At wonderlanddizzy.com, "The Story of the Discovery" YouTube video explains:
(2:45) The disk the Oliver twins found had the source code but no final ROM image. They contacted yolkfolk.com owner Andrew Joseph who connected them with Lucas Kur (Denine here on forums.nesdev.com and Dizzy9 in some other places). Lucas was able to compile the source into a ROM image.
(6:10) Lucas asked if he could add Polish into the game. The Oliver twins agreed and also suggested he add other languages, an infinite lives mode, and credits saying thanks to Lucas Kur and Andrew Joseph.
Perhaps Lucas also updated color $0D to $0E while he was making changes.Edit: I was curious so I just sent Denine a private message asking about it.
Edit 2: Denine says he didn't change it, the code he received already used the $0E color.
Looks like that dizzy game needs a sound fix, just like Dizzy the Adventurer.
More specifically, it has the same bug as Dizzy the Adventurer where it resets the phase of the square channels every frame. This is due to unconditional writes to 0x4003 and 0x4007, and results in an annoying 60hz buzzing noise.
I'd normally make a patch myself, but no point in doing this if someone has the source code and can just change these things easily.
How to fix the bug:
Make a variable somewhere that would be the same as what the sound register at 0x4003 or 0x4007 contained on the last write. When you write to 0x4003 or 0x4007, check if the value is different that the last value written. If it is not different, don't do the write, otherwise do the write and store the last written variable.
You could have two different notes that have the same 4003/4007 writes. Shouldn't you also check 4002/4006 (the low bits of the frequency)?
...
No, then you might have several notes of the same frequency in a row, and they won't get retriggered. Hmm.
No, because changes to the low frequency register just change the frequency immediately, and don't reset the phase.
I have two CRT TVs. One is cheap Sylvania 19" and it is as steady as a rock when it comes to Camerica games, and I have tried them all. Another is a much higher end Toshiba 27" with component and s-video inputs. It will show bendy rasters in several Camerica games and even completely loses sync in the baseball game in Quatro Sports!
Oddly enough, I see bendy rasters in Konami/Ultra's Teenage Mutant Ninja Turtles with my Toshiba. It always happens when the rollers travel vertically up or down the city screens. Does this game also use the $0D black?
Great Hierophant wrote:
Oddly enough, I see bendy rasters in Konami/Ultra's Teenage Mutant Ninja Turtles with my Toshiba. It always happens when the rollers travel vertically up or down the city screens. Does this game also use the $0D black?
It does, actually, in some of its sprites! I never knew this.
By the way, if you want to answer this question for yourself: open the ROM in FCEUX, go to Debug > PPU Viewer and you can place the mouse over a palette entry to see its value. (Or you could create a palette with a diagnostic colour in place of $0D.)
Bavi_H wrote:
Perhaps Lucas also updated color $0D to $0E while he was making changes.
It was $0E when I got the code. Also, third version of Fantastic Adventures Of Dizzy uses $0E instead of $0D as well.
Quote:
Looks like that dizzy game needs a sound fix, just like Dizzy the Adventurer.
More specifically, it has the same bug as Dizzy the Adventurer where it resets the phase of the square channels every frame. This is due to unconditional writes to 0x4003 and 0x4007, and results in an annoying 60hz buzzing noise.
Lol, I always thought it was supposed to sound like that, haha...yea, I'm dumb.
Thanks I will update the game one day or another.
rainwarrior wrote:
(Or you could create a palette with a diagnostic colour in place of $0D.)
That's a good idea.
NDX will also print a diagnostic if $0D is used. Changing the palette entry is a better way to find out exactly where the color is used, though.
Denine wrote:
Dwedit wrote:
More specifically, it has the same bug as Dizzy the Adventurer where it resets the phase of the square channels every frame. This is due to unconditional writes to 0x4003 and 0x4007, and results in an annoying 60hz buzzing noise.
Lol, I always thought it was supposed to sound like that, haha...yea, I'm dumb.
Thanks I will update the game one day or another.
Well, it is
supposed to sound like that (i.e. pretty bad), that's how they made it. Any kind of a fix is completely subjective. (In this specific case I wouldn't fault anybody for wanting it to be changed, though.
)
Dizzy the Adventurer did the same thing. The constant terrible 60hz buzz is the authentic Dizzy sound.
Back to the original topic (color 0D)
If you want to test out the Blacker than Black color with emphasis bits set for all colors, and have a Game Genie and a copy of Super Mario Bros, here are two codes:
(edited for 8 letter codes, compatible with the SMB/Duck Hunt cartridge)
IESAAIZX (sky color is 0D)
VNOEIETO (set all emphasis bits)
On my TV, 0D with emphasis bits works fine, it's just a nice deep shade of black, whereas regular black is a darker gray. But other TVs are obviously not so lucky.
The Game Genie itself will give you $0D as its background already.
rainwarrior wrote:
Dizzy the Adventurer did the same thing. The constant terrible 60hz buzz is the authentic Dizzy sound.
It's remarkable that it got programmed that way, and the programmer thought, "Yes, this is fine" and anybody else also agreed before release.
Interestingly, it does not affect the sound effects.
--
It would be good to make an annotated list of games that use $0D and where.
Dwedit wrote:
Back to the original topic (color 0D)
If you want to test out the Blacker than Black color with emphasis bits set for all colors, and have a Game Genie and a copy of Super Mario Bros, here are two codes:
(edited for 8 letter codes, compatible with the SMB/Duck Hunt cartridge)
IESAAIZX (sky color is 0D)
VNOEIETO (set all emphasis bits)
On my TV, 0D with emphasis bits works fine, it's just a nice deep shade of black, whereas regular black is a darker gray. But other TVs are obviously not so lucky.
I think my TV's gonna beg for mercy tonight. Gonna check that out, even though the Game Genie was made by - you guessed it - my good old friends Codemasters/Camerica, and might be slightly glitched on my TV already. Will post pics. Also, I agree with the idea of making a list. Sonce most licensed devs would know about the glitch I assume, it would be fun to check out the more obscure unlicensed games.
EDIT: Tried that, but there's no problem with having it on the background with and without emphasis for some reason.
Breaking news: Indiana Jones and the Last Crusade (UBI version) might have the same glitch, which is interesting since this one is a licensed game. Terrible, yes, but licensed.
Luckily, I have one coming in the mail, and I should get it next week to test out. Anyone with a copy could test it on their TV to see the result?
There are other licensed games that use $0D also. Immortal is one of them (and it also glitches out on my TV.)
Indiana Jones and the Last Crusade (UBI Soft) is an awful Gameboy to NES port. Why does use of the invalid 0D color not surprise me in the least?
I did not notice anything unusual with The Immortal or Indiana Jones and the Last Crusade from Ubi Soft, but the Game Genie codes in SMB/DK did produce a jumpy effect on the title screen and some other areas on my TV.
I'm hoping everyone understands why "blacker than black" is a problem...
It's because it looks like a sync pulse-- The pulse that tells the electron beam to go back to the left side of the screen or to the top-left of the screen.
Successful CRT televisions in general had to be very tolerant of noisy, out of spec signals because of those dastardly battery powered VHS camcorders that were pervasive during the 1980's-90's. There's so much that needs to go on and not enough room to do it exactly right based on the technology of the time. Plus we're talking a mechanical tape feed that is subject to wobble and actual stretching of the recording material. So the played back signal is going into unsafe ranges constantly. The family that bought their shiny new top-of-the-line (ultimately piece of crap, heavy NiCad battery powered, belt driven, DC brush motor, power sucking, overheating) camcorder is not going to blame the brand-new camcorder, but complain to the TV manufacturer that it doesn't display correctly. The picture is stable in the viewfinder, it must be the TV, they'd (correctly) say.
Of course, the viewfinder itself was for all intents and purposes an adorable ~1" CRT monitor, which synchronizes to NTSC timing video, sans color demodulation. It too had to be just as tolerant!
The thing about the blacker than black color is that it is used during the process of generating all the dark colors. The dark colors are a square wave between gray 00 and blacker than black 0D.
So I got my copy of Indy, and the there were no $0D related glitches on it for some reason. I'm going to check my copy of TMNT, too.
Also, since it's established that more than a few games used $0D, would anyone be in favour of creating a wiki page listing all these NES games?
For now, it is known that those games use $0D
Bee 52
The Fantastic Adventures of Dizzy
Micro Machines
Quattro Sports
Quattro Adventures
Indiana Jones and the Last Crusade (UBI Soft)
Skate or Die 2
The Immortal
Teenage Mutant Ninja Turtles
Other Codemasters games probably do use this colour too, I don't really have any more of these to test though...
Ah! So this is what's happening here:
http://youtu.be/3fhyX3HdVcgStrangely, I can't find a single TV that it works with it and neither could the previous owner (sold it as "broken"). I wonder how it would work in a Retron 5 or something.
Also strangely: I've had no issues with Teenage Mutant Ninja Turtles, Game Genie, Micro-Machines, Quattro Sports (including baseball), Skate or Die 2: The Search for Double Trouble, and some other Quattro game I have around.
So The Immortal is using 0D *and* all the emphasis bits? Wow. Try the Game Genie codes for Super Mario 1 to see if they have the same effect.
(codes again: IESAAIZX, VNOEIETO)
Also if you're really interested, I could try to make game genie codes to fix the game.
Well, I tried it on year another CRT and it works perfectly! Thanks, guys. The B&W NES didn't change a thing (I guess "blacker than black" persists through the B&W signal).
Dwedit wrote:
Wow. Try the Game Genie codes for Super Mario 1 to see if they have the same effect.
(codes again: IESAAIZX, VNOEIETO)
Will do! I have to fetch it next time I'm at my man cave (I only keep Super Mario Bros./Duck Hunt/World Class Track Meet with me at my apartment).
Dwedit wrote:
Also if you're really interested, I could try to make game genie codes to fix the game.
Very interested, if it's not too much trouble! It'd be one reason to keep a Game Genie around (been wondering what I's ever do with mine).
I just need to find a way to fit it in a toploader.
Edit: got some from thefox and rainwarrior from a thread I made before I knew about this issue. Thanks though!
Finally tried the SMB patches: Neither one alone will trigger the problem (tried emphasis bits in world 3-1 too) but when they are combined it's scramble-city!
CZroe wrote:
Dwedit wrote:
Also if you're really interested, I could try to make game genie codes to fix the game.
Very interested, if it's not too much trouble! It'd be one reason to keep a Game Genie around (been wondering what I's ever do with mine).
I just need to find a way to fit it in a toploader.
Already posted some codes here:
viewtopic.php?p=167705#p167705BTW it's a little bit annoying that we have two threads going on about the same topic now.
Dwedit wrote:
Looks like that dizzy game needs a sound fix, just like Dizzy the Adventurer.
More specifically, it has the same bug as Dizzy the Adventurer where it resets the phase of the square channels every frame. This is due to unconditional writes to 0x4003 and 0x4007, and results in an annoying 60hz buzzing noise.
I'd normally make a patch myself, but no point in doing this if someone has the source code and can just change these things easily.
How to fix the bug:
Make a variable somewhere that would be the same as what the sound register at 0x4003 or 0x4007 contained on the last write. When you write to 0x4003 or 0x4007, check if the value is different that the last value written. If it is not different, don't do the write, otherwise do the write and store the last written variable.
As I mentioned on
another thread, my emulator experiences buzzing in Camerica games, particularly during the animated logo. But, I noticed in other emulators, the logo coincides with a clear ding, without the buzzing.
Are emulators performing the logic described above internally to avoid the Camerica buzzing issue?
Dwedit did explain the problem. His solution isn't an emulator fix, it's how to patch the game.
Emulators that don't have the "problem" are inaccurate, but it just means they're not resetting phase on $4003/4007 writes like they should. In most games this is a harmless thing to omit. In Dizzy it makes it sound better (but inaccurate).
rainwarrior wrote:
Dwedit did explain the problem. His solution isn't an emulator fix, it's how to patch the game.
Emulators that don't have the "problem" are inaccurate, but it just means they're not resetting phase on $4003/4007 writes like they should. In most games this is a harmless thing to omit. In Dizzy it makes it sound better (but inaccurate).
Interesting. Any idea which emulators produce an accurate buzz to enable a comparison? Maybe it should just be an emulator configuration option.
I made it an option in NSFPlay, but it's a specifically sound oriented emulator.
I don't know what other emulators implement it or not, but just run Dizzy and it should be clear immediately whether the emulator does it.
rainwarrior wrote:
I made it an option in NSFPlay, but it's a specifically sound oriented emulator.
I don't know what other emulators implement it or not, but just run Dizzy and it should be clear immediately whether the emulator does it.
Unfortunately, I cannot find a buzzing emulator out there except for mine. I may just be doing something else wrong in my square wave generator.
The buzzing issue in my emulator is now resolved. The Camerica logo sound effect exposed a bug in my pulse wave generator. I misinterpreted the wiki; the second pulse channel should be muted during the effect.
zeroone wrote:
Unfortunately, I cannot find a buzzing emulator out there except for mine. I may just be doing something else wrong in my square wave generator.
How hard did you look? I get buzzing in the logo in FCEUX (quite loud) and Nintendulator (faint).
BTW, I don't think it's related to the Dizzy "problem".
Anyone got this game to work on real hardware? Tried on powerpak and worked fine, put on a cart, and nothing but garbled graphics.
thefox wrote:
zeroone wrote:
Unfortunately, I cannot find a buzzing emulator out there except for mine. I may just be doing something else wrong in my square wave generator.
How hard did you look? I get buzzing in the logo in FCEUX (quite loud) and Nintendulator (faint).
BTW, I don't think it's related to the Dizzy "problem".
It's the noise channel. I described it in a different thread where we were apparently discussing the same thing:
post