We'll focus therefore on how to correctly extract information from a PCB, and how to organize them in such a way that this information will be useful to MAMEDevs when they'll code a driver.
 
We'll focus therefore on how to correctly extract information from a PCB, and how to organize them in such a way that this information will be useful to MAMEDevs when they'll code a driver.
   −
Documenting a PCB is a 3 steps job:
+
'''Documenting a PCB is a 3 steps job:'''
1) taking pictures
+
''1) [[Taking pictures and other medias|taking pictures]]''
2) dumping ROMs
+
''2) [[Dumping roms|dumping ROMs]]''
3) writing documentation
+
''3) writing documentation''
    
Each of the 3 steps will have a separate article in the near future, detailing everything that is needed to know; for the moment let's just have a quick look at them.
 
Each of the 3 steps will have a separate article in the near future, detailing everything that is needed to know; for the moment let's just have a quick look at them.
   −
1) [[Taking pictures and other medias]] (like recording sounds and filming videos) is usually the first and easiest thing you can do with a PCB; no special expertise is needed for this task, just a little bit of patience and care.
+
1) '''[[Taking pictures and other medias]]''' (like recording sounds and filming videos) is usually the first and easiest thing you can do with a PCB; no special expertise is needed for this task, just a little bit of patience and care.
 
With a digital camera you should take pictures of the whole PCB, both front (component) and back (solder) side. If the PCB consists of different boards packed one over the other, separate them and take pictures individually. If you can connect the PCB to a cabinet or to a test rig, do it; and take pictures of the game at boot up, at title screen, at intro and attract mode, and during game as well.
 
With a digital camera you should take pictures of the whole PCB, both front (component) and back (solder) side. If the PCB consists of different boards packed one over the other, separate them and take pictures individually. If you can connect the PCB to a cabinet or to a test rig, do it; and take pictures of the game at boot up, at title screen, at intro and attract mode, and during game as well.
 
If your camera is capable of recording videos, film some seconds of the game during title / attract mode and in game. This task is needed if your PCB is particularly rare and good videos of the game are not available; filming kof2k is usually not needed ;)
 
If your camera is capable of recording videos, film some seconds of the game during title / attract mode and in game. This task is needed if your PCB is particularly rare and good videos of the game are not available; filming kof2k is usually not needed ;)
 
Same goes for game sound recordings, they could be needed by MAMEDevs if your game is rare or with a discrete sound board or unusual custom sound chip. A game generating sounds out of a AY-3-8910 usually doesn't require any recording.
 
Same goes for game sound recordings, they could be needed by MAMEDevs if your game is rare or with a discrete sound board or unusual custom sound chip. A game generating sounds out of a AY-3-8910 usually doesn't require any recording.
  
( ! ) Fatal error: Uncaught TypeError: MWExceptionHandler::rollbackMasterChangesAndLog(): Argument #1 ($e) must be of type Exception, Error given, called in /home/mamedev/wiki.mamedev.org/public_html/includes/exception/MWExceptionHandler.php on line 137 and defined in /home/mamedev/wiki.mamedev.org/public_html/includes/exception/MWExceptionHandler.php on line 111
( ! ) TypeError: MWExceptionHandler::rollbackMasterChangesAndLog(): Argument #1 ($e) must be of type Exception, Error given, called in /home/mamedev/wiki.mamedev.org/public_html/includes/exception/MWExceptionHandler.php on line 137 in /home/mamedev/wiki.mamedev.org/public_html/includes/exception/MWExceptionHandler.php on line 111
Call Stack
#TimeMemoryFunctionLocation
10.08172804664MWExceptionHandler::handle( $e = class Error { protected $message = 'Call to undefined function each()'; private $string = ''; protected $code = 0; protected $file = '/home/mamedev/wiki.mamedev.org/public_html/includes/diff/DairikiDiff.php'; protected $line = 436; private array $trace = [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...], 8 => [...], 9 => [...], 10 => [...], 11 => [...], 12 => [...], 13 => [...], 14 => [...], 15 => [...], 16 => [...], 17 => [...], 18 => [...], 19 => [...], 20 => [...], 21 => [...], 22 => [...]]; private ?Throwable $previous = NULL; public $xdebug_message = '<tr><th align=\'left\' bgcolor=\'#f57900\' colspan="5"><span style=\'background-color: #cc0000; color: #fce94f; font-size: x-large;\'>( ! )</span> Error: Call to undefined function each() in /home/mamedev/wiki.mamedev.org/public_html/includes/diff/DairikiDiff.php on line <i>436</i></th></tr>\n<tr><th align=\'left\' bgcolor=\'#e9b96e\' colspan=\'5\'>Call Stack</th></tr>\n<tr><th align=\'center\' bgcolor=\'#eeeeec\'>#</th><th align=\'left\' bgcolor=\'#eeeeec\'>Time</th><th align=\'left\' bgcolor=\'#eeeeec\'>M' } ).../MWExceptionHandler.php:0
20.08172804696MWExceptionHandler::rollbackMasterChangesAndLog( $e = class Error { protected $message = 'Call to undefined function each()'; private $string = ''; protected $code = 0; protected $file = '/home/mamedev/wiki.mamedev.org/public_html/includes/diff/DairikiDiff.php'; protected $line = 436; private array $trace = [0 => [...], 1 => [...], 2 => [...], 3 => [...], 4 => [...], 5 => [...], 6 => [...], 7 => [...], 8 => [...], 9 => [...], 10 => [...], 11 => [...], 12 => [...], 13 => [...], 14 => [...], 15 => [...], 16 => [...], 17 => [...], 18 => [...], 19 => [...], 20 => [...], 21 => [...], 22 => [...]]; private ?Throwable $previous = NULL; public $xdebug_message = '<tr><th align=\'left\' bgcolor=\'#f57900\' colspan="5"><span style=\'background-color: #cc0000; color: #fce94f; font-size: x-large;\'>( ! )</span> Error: Call to undefined function each() in /home/mamedev/wiki.mamedev.org/public_html/includes/diff/DairikiDiff.php on line <i>436</i></th></tr>\n<tr><th align=\'left\' bgcolor=\'#e9b96e\' colspan=\'5\'>Call Stack</th></tr>\n<tr><th align=\'center\' bgcolor=\'#eeeeec\'>#</th><th align=\'left\' bgcolor=\'#eeeeec\'>Time</th><th align=\'left\' bgcolor=\'#eeeeec\'>M' } ).../MWExceptionHandler.php:137