Step 4: Entering chip data
There is a lot to cover in this step! A lot of things to define and also a lot of special behaviour to document that you will want to know to save yourself a lot of time on this scary looking page!
Once again, the image window will appear with your PCB scan. As you work on each chip, the window will zoom in on the current chip to make it easier to read and to prevent you from looking at the wrong one.
Dialog Behavior
* Pressing ENTER anywhere in this page (except where noted), will add the current values into the list at the bottom and set the selection to the next slot. If this was the last chip, pressing ENTER again will move on to the dumping step or submit the profile (if your not using a CopyNES).
Upon entering this page, it will set things up for entering the chip for the first slot. Anytime the slot selection is changed, the list of part #'s changes. It will load with chips of a type(s) that have been known to be used in the slot. Based on many factors, it will also sort the list with the most likely chips at the top. If the first of the list is not correct, usually by typing the first few characters of the part will bring it up.
Some parts have duplicate names, so even if the correct part # is typed in, the data below may be another version of the chip. A common example of this would be Nintendo's MMC's, which are often made by multiple manufacturers. However, you need not bother trying to find the correct version of the chip! When you enter the datecode, if it doesn't match the validation string, it will try the DCV from other matching part #'s and switch to the correct chip if found! * Always use the TAB key to leave the part # field. If the part is known, it will set focus either to the part suffix field if it is appliable to the chip type, or the datecode field. Furthermore, if the part suffix does apply to this chip, it will look to see if can find a previous value for it and fill it out and set focus to the datecode. The ROM label will also be filled out if it can determine a suitable default. If the part is not known, focus will be set to the chip type field. If the chip you have isn't in the list, first select the chip type in the field below and press the Load button (pressing ENTER in the Type field will also trigger the Load button). The load button will fill the part list with all chips of the selected type in alphabetical order. If your chip still isn't there then you will need to fill out the part information. Because the chip data is updated as you type in the part # field, if your new chip is just slightly different from a known one, like a different speed SRAM, you would just need to update the fields that needed to change. Once at the datecode field, fill it out and TAB out of the field. The field will be broken apart if possible and focus set to the Misc field. If your having trouble determining what the datecode string is, you can press the example button and the 5 most common strings for the selected chip will be output to the message log. At this point your usually ready to move on to the next chip and you can do so by pressing ENTER which triggers the Assign button. The battery-backed field will check and uncheck itself in most cases. If this is a new PCB or if it's a PCB that has a place for a battery but doesn't always have one installed, then you will need to keep an eye on it. |
Dealing with Chip-on-Board PCB's and epoxy parts
These types of boards have a special "slot" defined that allows you to enter data from the PCB, since the epoxy parts don't have any info on them. Usually there is text that, similar to a ROM label, specifies some sort of game ID. This is what you enter for a part #.
The maker of these boards may not always obvious. However, it is pretty easy to figure out based on various characteristics like the format of the datecode, colors of the board, shape and color of the blobs, and so on. Search the website for images of these boards to compare too.
Epoxy parts always use dummy part #'s defined as [EP...]. No specific data needs to be supplied for these parts. If this isn't a new PCB, all you need to do is press ENTER with whatever it comes up with for a part #. The ROM size may not be determinable at this point, so long as you have a CopyNES, it doesn't matter what size ROM you choose, it will be corrected after you dump the cart if it is wrong. If you don't have a CopyNES, the best you can do is try to find a ROM of the game and figure out the sizes based on that.
If this is a new board, it will not be able to determine a default part to use so you will need to select one yourself. Mostly likely there will already be a part defined, but if not, enter data for the chip as follows:
- Part #: Define it as [EPxxx] where xxx is something generic based off the chip type (e.g. [EPMMC3], [EP74273], etc).
- Chip Type: Set the same way it would if it were a normal chip.
- Maker: Set to "__Unknown".
- Package: Set to "EPOXY".
- Pin Count: Set to 0.
- Size: Set to size of ROM or RAM, or 0 if size doesn't apply.
- Speed: Set to 0. Unless you somehow can determine it.
- DCV & PSV Leave blank.
Changing data for already entered chips
Double-clicking or pressing ENTER on a selected line in the chip list will reload the upper-half of the dialog with the values for that slot. You can then make modifications as needed. Once finished, you must press the Update button to make the changes takes effect.
You can also remove an item from the list by selecting it and clicking the Remove button.
Field Definitions
General Chip Info | |
The items in this group cover infomation about the chip that is not specific to this profile. The DB already has data on hundreds of chips, so usually all you will need to do is enter the part #. That alone knocks 1/2 the data entry off the page! :) | |
Part #: | This is normally pretty easy to identify, so long as the part # is actually printed on the chip. If the part # is not printed, it will be entered in [ ] brackets. Part identification is covered in more detail here. |
---|---|
Chip Type: | This defines the category the chip falls into (e.g. Mask ROM, SRAM, 74-161 Series). |
Maker: | This is the company that manufactured the chip. Usually this can be determined by a logo or by the first few characters of the part #. Sometimes it can be determined just by the formatting (font, text color, datecode, etc.) of the text on the chip. Some chips also have a distinctive package that can help with identification. |
Package Type: |
The package is the physical body of the chip that protects the fragile silicone transistors inside. Some of the types used in NES carts are:
|
Pin Count: | This is simply the number of pins on the chip. Set to 0 for epoxy chips. |
Size: | The amount of storage the chip has in kilobytes. Only applies to ROMs and RAMs. |
Speed: | The read-access time of the chip in nanoseconds. Mainly applies to SRAM and is usually defined in the suffix of the part #. Typical range is 100ns - 200ns. Some ROMs and EPROMs also specify this but if you don't know the speed, just leave it 0. |
DCV & PSV: | These are validation strings for the datecode and the part suffix, respectively. They are used to check if the entered values conform to typical formatting. This helps to ensure data is entered into the correct fields. The DCV is also used to breakdown the datecode string to separate the actual date part from the rest. If a field fails this test it will inform you to double-check. Just because it fails, doesn't absolutely mean that it's wrong, sometimes you will encounter values that just doesn't fall in check with what it's expecting. If you end up defining a new chip, you are not required to fill these out. |
Profile-Specific Chip Details | |
Part Suffix: | This field is primarily used for mask ROMs. ROMs usually have a 2 - 4 character suffix that can uniquely ID that data on the chip. It may be attached directly to the end of the part # or separated by a hyphen. Sometimes they will be on a different line all together. Part #'s with attached suffixes are defined with a * at the end of the part #. Note that while SRAM's commonly do have a suffix, they aren't specific to the cart, so they remain in the part # definition. |
ROM Label: | This field is only used for ROMs. Typically there is text on the ROM that describes it. For licensed games, this is usually made up of the prefix and game ID from the catalog ID, a version number, and the ROM type (PRG or CHR). If it doesn't have a label, this field can be left blank. |
DateCode String: | Usually the datecode will be on its own line and may have other letters and numbers around it. You can enter the full string here and when you tab out of the field, it will be broken down into parts and entered into the 2 fields below, the left being the date portion and the right being the remainders. If the DCV is unable to break it apart, you will need to try and do so yourself. |
Misc Data: | Sometimes there may be additional text that doesn't fit elsewhere, that can be placed here. Usually it isn't used. Sometimes the country the chip was made in will be printed on the chip, but you do not need to enter that here (it can generally be determined by other means). Some other things that can go here would be lot / batch numbers (common on Phillips parts) and also alternate part #'s. |
Battery-backed: | Check this box if this specific chip is battery-backed. In most cases this would be a SRAM chip, but some MMC's have built-in RAM that can also be battery-backed. |
How validation strings are defined and supported datecode formats
This section is optional reading, but it doesn't hurt to know how these strings are interpreted.
- #: Matches any single digit 0 - 9.
- @: Matches any single letter A - Z.
- ?: Matches any single character, including things like punctuation.
- *term: Matches any number of character until it hits the terminating character specified by term. If * is at the end of the string, it will match the remainder of the string it is checking. # and @ are also valid terminators.
- {ch1-ch2}: Matches a range of characters specified by ch1 and ch2, inclusive.
- (ch1,ch2,...): Matches any character in a comma-separated list.
- [...]: Indicates that anything inside the brackets is optional and may or may not be present in the string it is checking.
-
$token$: This is only used for the DCV and is how the date portion of the string is separated and processed. Valid tokens are:
- SD: This is the most common datecode format and is what other formats are normalized to. This code uses 4-digits 'YYWW' where YY is the last 2 digits of the year and WW is the 2 digit week of the year.
- YWW: Like the SD token except it only uses the last digit of the year. When translated to SD format, if Y <= 3, it will become 90 - 93, and when Y >= 4, it will become 84 - 89.
- @YWW: Like YWW, except Y is a letter A - J where A = 0 -> J = 9. Once changed to a number, it is processed like YWW.
- YMW: Y = last digit of the year, M = 1-char month, W = 1-digit week of the month. M is in the range (A-M) where A = January -> M = December. Note that it skips over the letter 'I' to avoid confusion with a '1'. W is in the range (1-5).
- YMXYZ: This format only specifies the last digit of the year and the month. M = (1-9,X-Z) where 1 = January -> 9 = September and X = October -> Z = December.
- YMXYZ@W: This is the same as YMXYZ except it also defines the week of the month. W = (A-E) where A = 1 -> E = 5.
- YMABC: This is the same as YMXYZ except XYZ becomes ABC.
- YMJKL: Also the same as YMXYZ except XYZ becomes JKL.
- YMA-L: Like the previous YMxxx formats except the month is always a letter in the range (A-L) where A = January -> L = December.
- YMM-X: Like YMA-L except the range becomes M thru X.
- YAMA: A format unique to Yamaha chips. The first 2 chars are treated like the YMXYZ format, then there is a space, and then the 2-digit day of the month.
- RICOH: A format unique to Ricoh chips. In the 80's, this format is the same as the YMW format. Shortly into 1990, they started using a letter in place of a number for the week. I'm not entirely sure what the letter represents, but it is treated as a day where A = 1 -> Z = 26.
-
PANA: A format unique to Panasonic and Matsushita chips. This is an odd one. It has a 1-digit year, followed by a 1-char month (1-9,O,N,D) where 1 = January and O = October, N = November, D = December. The month may also have an underscore (M) or an overline (M). This line is used in conjunction with the next digit to form the day. An overline represents the 1st third of the month, so the day would be the next digit+1. No line is the 2nd third of the month, so the day is next the digit + 11. An underline is the last third of the month and you add 21 to the next digit. Sometimes this "high dot" character: ˙ is also thrown in. I'm not sure what that means so it is ignored. When entering these types of codes into the software, use the following syntax:
- If the month is underlined, place an underscore character after the month. So 8N7 would be entered as 8N_7
- If the month is overlined, place a hyphen character after the month. So 736 would be entered as 73-6
- If there is a high-dot character, just enter a period in its place.
« Previous Page | Return to Index | Next Page » |