Color $0D games: Difference between revisions
TakuikaNinja (talk | contribs) (Add info on FireHawk.) |
(Cleans up some workarounds. Removes a patcher device suggestion: We should not be suggesting that people make or use hardware with the purpose of driving a 1 onto the bus so strongly that the 1 wins a bus conflict.) |
||
Line 73: | Line 73: | ||
== Workarounds == | == Workarounds == | ||
* Patch the game code to replace all the $0D writes with $0F. | * Patch the game code to replace all the $0D writes with $0F. This likely requires changes to many bytes in the ROM, so a Game Genie (limited to 3 changes) would not be sufficient. Instead, updated ROMs or a more capable pass-through patching device would likely be required | ||
* If your TV has digital inputs (for example - HDMI), use RCA to HDMI adapter, whose analog to digital converter might cope better with the out-of-spec video signal | |||
* If your TV has digital inputs (for example - HDMI), use RCA to HDMI adapter, whose analog to digital converter | * Modify the console to use a different video output stage that adjusts the voltages so that the TV may accept it, such as by omitting the NPN transistor follower part of the video amplifier. However, the TV may ignore this voltage offset | ||
* Modify the console video | * Change your TV, console and/or video adapter (if you are using one) | ||
* | |||
== Tests == | == Tests == |
Revision as of 00:55, 2 November 2023
On an NES, the palette color $0D causes the signal to drop below the normal black level. This low voltage signal is sometimes mistaken by televisions for blanking signals, which can cause an unstable picture, or total picture loss on some devices. Other devices seem to process with signal without problem.
Games
Game | Notes |
---|---|
Contra 100 in 1 | Uses both for background color and one of the sprites' color; to apply a patch, change values at those offsets in ROM from $0D to $0F:
$388B, $388F, $3893, $3897, $389B, $389C, $389F, $38A3, $38A7 |
Contra 168 in 1 | Uses both for background color and one of the sprites' color; to apply a patch, change values at those offsets in ROM from $0D to $0F:
$2451, $2455, $2459, $245D, $2461, $2462, 2465, $2469, $246D |
Bee 52 | |
Castelian | |
Cybernoid | $0D is used as the background color. |
The Fantastic Adventures of Dizzy | |
FireHawk (USA) | Used in both the background and sprites. The European release (with NTSC video detection) corrects this. |
Game Genie | The code entry screen uses it for its background. |
The Immortal | Also uses all three de-emphasis bits to compensate for the the user cranking up the TV set's brightness so that regular black ($xE/$xF) can be used as a darker shade of gray while color $0D is used as a black background color. |
Indiana Jones and the Last Crusade (Taito) | Used as the background color in the motorcycle level. |
Indiana Jones and the Last Crusade (Ubisoft) | |
Maniac Mansion (USA) | |
Micro Machines | |
MIG-29 Soviet Fighter | |
Quattro Sports | |
Quattro Adventures | |
Skate or Die 2 | Used as the background color during the introduction cutscene sequence. |
The Super Shinobi | Unlicensed clone of Shinobi III. |
Teenage Mutant Ninja Turtles | Uses it for black outlines on sprites, the lack of large areas of this color mitigates the problem. |
The Three Stooges | Uses $xD colors that are turned to $0D during fades. |
Effects
Because the signal created by $0D is outside the specifications for the video signal, there is a lot of variation in how display devices handle it. Here are some possible effects that may be seen when using $0D:
- $0D appears the same black as the other black colors (e.g. $0F).
- $0D appears slightly darker than other blacks.
- $0D appears as gray.
- The device renormalizes the range when $0D appears, slightly brightening all other colours while it is onscreen.
- Wobbly or distorted image from loss of horizontal blanking stability (either permanent or periodic)
- Loss of vertical blanking stability.
- Total loss of picture.
These effects are more likely to occur when color $0D is used with the de-emphasis bits enabled, such as in The Immortal, as seen in these example videos.
Workarounds
- Patch the game code to replace all the $0D writes with $0F. This likely requires changes to many bytes in the ROM, so a Game Genie (limited to 3 changes) would not be sufficient. Instead, updated ROMs or a more capable pass-through patching device would likely be required
- If your TV has digital inputs (for example - HDMI), use RCA to HDMI adapter, whose analog to digital converter might cope better with the out-of-spec video signal
- Modify the console to use a different video output stage that adjusts the voltages so that the TV may accept it, such as by omitting the NPN transistor follower part of the video amplifier. However, the TV may ignore this voltage offset
- Change your TV, console and/or video adapter (if you are using one)
Tests
- Palette test ROM - Displays NES palette, and can toggle $0D display.
- NESPix - Native graphics editor that allows use of $0D, and can test it in various visual arrangements.
- 240p test suite - TV testing program. Test cards with $0D include PLUGE, SMPTE color bars, Solid color screen, and IRE. PLUGE also includes emphasized $0D.