First, I found out where the puzzles were stored in the ROM (ROM file 0x109DE-0x14617, NES address 04:89CE-05:C607). There are 1000 of them. (At first sight, there appears to be 1002 of them, but one of them is a fake, corresponding to the title screen's WHEEL OF FORTUNE, and the other is a lost puzzle that the game's puzzle selection routine will never hit, ever.)
I used a C++ program to calculate a "score" for each puzzle, representing how long the puzzle takes. It is based off both the time taken to enter the puzzle on the solve screen, and the time for Vanna to reveal the puzzle. Each puzzle is calculated as follows:
- Let val('A')=1, val('B')=2, ... , val('Z')=26. Let k be the number of letters in the puzzle. Let a(0)=val('A')=1 and a(k)=val(kth letter of puzzle). Let b(k)=a(k)-a(k-1).
- Then the score of the puzzle is:
score= 42*k
+ sum(1 to k)[min( 1+8*|b(k)| , 117-8*(b(k)-16) , 129-8*(-b(k)-16) )]
+ min( 129-8*(15-a(k)) , 121-8*(a(k)-16) )
Puzzles with best results:
Score | Puzzle # | Word |
0642 | 0818 | TOOTSIE |
0643 | 0806 | BEN HUR |
0695 | 0340 | EUCLID |
0697 | 0199 | BABE RUTH |
0702 | 0451 | MONOCLE |
0711 | 0442 | TUXEDO |
0713 | 0138 | HONG KONG |
0724 | 0618 | HIGH JINKS |
0727 | 0686 | SO BE IT |
0729 | 0010 | FORT KNOX |
0729 | 0055 | BOOT HILL |
0738 | 0456 | LULLABY |
0745 | 0462 | CHESTNUT |
0749 | 0922 | BIRTHDAY |
0755 | 0803 | PSYCHO |
0761 | 0688 | LOOK IT UP |
0763 | 0953 | PAYDAY |
0765 | 0850 | THE ILIAD |
0766 | 0392 | COCONUT |
0782 | 0122 | CAPE COD |
0782 | 0366 | HAIRPIN |
0782 | 0430 | HAIRPIN |
0792 | 0969 | YOM KIPPUR |
0793 | 0081 | HONOLULU |
0793 | 0148 | ETHIOPIA |
0797 | 0494 | SOUR NOTE |
0798 | 0355 | GALILEO |
(The full list is
here. It is sorted by puzzle number though. You can sort by score in another program like Notepad++ . The list was generated using
wofscript.cpp . See the resoure link in the Other information section below.)
These scores assume the standard first/second round structure.
Speed-up round is a bit different; you have to choose a letter in the puzzle before you are allowed to solve it. I quickly figured that choosing the U in EUCLID pretty much gives the best result; it saves the four seconds needed to go from E to U to C normally, and no other word comes close. It is also near the left side so Vanna doesn't have to walk far.
In bonus round, you choose five consonants and a vowel and if any of them are in the puzzle, they are turned over before you solve it. It is fastest to choose letters that
aren't in the puzzle so Vanna doesn't have to do anything. Note that if the letters you choose uncover the whole puzzle (for example, if the puzzle is PSYCHO and you choose, well, PSYCHO), you still have to select END after the puzzle is uncovered, and no, timing out causes you to lose no matter what, in case you were thinking about abusing that.
The best bonus round puzzle happens to be the one with the best score above; that is, TOOTSIE. ZYXWVU can be selected while on the way to T. (The next couple best are MONOCLE, selecting BDFGHI along the way, and HONG KONG, selecting BCDFJI.)
This conveniently leaves BEN HUR and BABE RUTH for the first and second rounds, respectively. Checking shows that BEN HUR first and BABE RUTH second is a couple frames faster than the other way around.
There is the possibility of having a puzzle show up twice in a single game by zeroing the range 0x780-0x7FC during the game, I checked to see if it was feasible. However, EUCLID and TOOTSIE would be impossible for speed and bonus rounds in this case, and substituting other puzzles in their place would be too costly.
So, in conclusion, the puzzles I use are:
- First round: BEN HUR (#806)
- Second round: BABE RUTH (#199)
- Speed-up round: EUCLID (#340)
- Bonus round: TOOTSIE (#818)