Features
        Andre Lamothe, one of the gaming community's most respected names, shows readers how to build a high-quality video game console. 
- World's first do-it-yourself video game console design book that will empower you to an unprecedented level of knowledge and understanding. 
- Provides inside details, one-of-a-kind diagrams, hand-drawn schematics, and architectural concepts covering everything from basic electronic engineering to the art of motherboard design.
 
        
            
    
        - Copyright 2006
- Dimensions: 7-3/8" x 9-1/8"
- Pages: 984
- Edition: 1st
        - 
            
Book            
        
- ISBN-10: 0-672-32820-8
- ISBN-13: 978-0-672-32820-6
&a>breaks new ground in game development by bridging the alien worlds of hardware and software together for the first time!       
The Black Art of Video Game Console Design  is written for the programmer and/or hobbyist interested in software game development, but also wants to understand the hardware games are implemented on. This book assumes no prior knowledge of Electrical Engineering or Computer Architecture, but takes you on a breathtaking journey from atomic semiconductor theory to the design and construction of basic video game consoles that you can build and write your own games for! Included in the book is the entire design of numerous embedded game systems including the XGameStation systems and much more. 
    The Black Art of Video Game Console Design with 800+ pages covers everything you need to know to design your own game console including:
    • Basic atomic physics and semiconductor theory primer.
• Introduction to circuit analysis; current, voltage, and resistance.
• Analog design using discrete components.
• Digital electronics and Boolean algebra.
• Physical hardware construction and prototyping techniques.
• Combinational logic and advanced integrated circuit building blocks.
• Finite state machine design.
• Computer architecture and design.
• Understanding and using microprocessors and microcontrollers.
• Developing software for embedded systems.
• Designing video (NTSC/VGA), audio, and input device systems.
• Interfacing and communications.
• The complete design and discussion of numerous game systems including the XGameStations!
    Register your book at informit.com/register and download the following additional resources (previously on bundled CD):
• PCB and circuit simulation tools.
• All necessary data sheets.
• Demos and source code.
• Complete designs to numerous embedded systems including the XGameStations.
  
                                    
         
        
            
                        Table of Contents
        The Black Art of Video Game Console DesignTable of Contents
Introduction
  - CHAPTER    1:    Introduction    to    Electronics,    Electrons,    and    Light    Speed    1  
         - 1.1          Introduction to Digital and          Analog Electronics 1                          - 1.1.1                Analog Electronics 1
- 1.1.2                Digital Electronics                3
 
- 1.2          Units of Measure and Their          Origins 4                          - 1.2.1                SI System Prefixes 5
 
- 1.3          Atomic Theory: Electrons and          Holes 7                          - 1.3.1                The Bohr Model and The                Periodic Table 7
- 1.3.2                Ions and Isotopes 10
- 1.3.3                Conductors, Insulators,                and Valence 11
 
- 1.4          Current and Voltage 13                          - 1.4.1                Current Defined 13
- 1.4.2                Voltage Uncovered 16
- 1.4.3                Generating Voltage 17
 
- 1.5          Alternating and Direct Current          24                          - 1.5.1                Direct Current/Voltage                24
- 1.5.2                Alternating Current/Voltage                26
 
- 1.6                Ohm's                 Law and Power 27                              - 1.6.1                  Understanding Power                  29
 
- 1.7          Introduction to Discrete Components          32                          - 1.7.1                Resistors 32
- 1.7.2                Capacitors 36
- 1.7.3                Inductors 40
- 1.7.4                Transformers 41
- 1.7.5                Semiconductor Devices                and the P-N Junction                43
 
- 1.8          Using Basic Electronics Equipment          53                          - 1.8.1                Test Equipment 53
- 1.8.2                Building Materials 61
 
- Summary          68
- Important          Terms 68
- Self-Test          69
 
  - CHAPTER    2:    Basic    Analog    Circuit    Analysis    71  
         - 2.1          What Is Circuit Analysis?          71                          - 2.1.1                      Ohm's                       Law Revisited 72
- 2.1.2                Power Calculations 75
 
- 2.2                Kirchhoff's                 Laws 76                              - 2.2.1                        Kirchhoff's                         Current Law 76
- 2.2.2                        Kirchhoff's                         Voltage Law 77
- 2.2.3                  Series and Parallel                  Resistor Circuits                  80
 
- 2.3          Voltage Dividers 85                          - 2.3.1                Voltage Dividers and                Loading 87
 
- 2.4          Practical Examples 91                          - 2.4.1                Lighting an LED 91
- 2.4.2                Limiting Current to                a Port 95
- 2.4.3                Creating a Simple Voltage                Regulator 96
 
- 2.5          Comments on Nodal and Mesh          Analysis 100
- 2.6          Circuit Simulation with SPICE          101                          - 2.6.1                The SPICE Language 101
 
- Summary          117
- Important          Terms 117
 
  - CHAPTER    3:    Analog    Design    with    Discrete    Components    119  
         - 3.1          Basic Mechanical Components          119                          - 3.1.1                Switches 119
- 3.1.2                Potentiometers 128
 
- 3.2          Capacitor Circuits 131                          - 3.2.1                Capacitor Models 133
- 3.2.2                Capacitors in Series                and Parallel 135
- 3.2.3                RC Circuits 136
- 3.2.4                Low Pass Filters 140
- 3.2.5                High pass Filters 144
- 3.2.6                      PORPower                       On Reset Circuits                 144
- 3.2.7                Bypass and Power Feed                Capacitors 148
 
- 3.3          Inductor Circuits 150                          - 3.3.1                Inductors Model 150
- 3.3.2                Inductors in Series                and Parallel 151
- 3.3.3                The Step Response of                an Inductor 151
- 3.3.4                RLC Circuits 152
 
- 3.4          Diodes 154                    
- 3.5          Voltage Regulation Applications          158                    
- 3.6          Transformers 161                          - 3.6.1                The Step Up/Down Action                161
 
- 3.7          Power Supplies 162                          - 3.7.1                Voltage Regulators 163
 
- 3.8          Example Power Supply Designs          166                          - 3.8.1                5V with the LM/UA7805                166
- 3.8.2                12V with the LM/UA7812                169
- 3.8.3                3.3V with the TI TPS76933DBVT                170
- 3.8.4                Multiple Voltage Systems                173
 
- 3.9          Transistor Basics 174                          - 3.9.1                Transistor Properties                and Rules 175
- 3.9.1                Transistor Switching                177
- 3.9.2                Emitter Followers and                Impedance Reflection                178
- 3.9.3                Amplification 180
 
- 3.10          Framework for TTL/CMOS Logic          182                          - 3.10.1                Creating a Convention                183
 
- 3.11          Clock Generators 189                    
- Summary 194
 
  - CHAPTER    4:    Entering    the    Digital    Realm    195  
         - 4.1          Logic Symbols and Truth Tables          195                          - 4.1.1                      Logic Conventions 195
 
- 4.2          Boolean Algebra 197                          - 4.2.1                Basic Laws 198
- 4.2.2                      DeMorgan's                       Theorem(s) and Bubble                 Pushing 201
 
- 4.3          Switching Standards and Logic          Families 205                          - 4.3.1                TTL Families 206
- 4.3.2                CMOS Families 206
- 4.3.3                Reading Datasheets 207
 
- 4.4          Loading Concepts 211                          - 4.4.1                TTL Loading 211
- 4.4.2                CMOS Loading 214
 
- 4.5          Tri-state Logic 215
- 4.6          Timing Diagrams 217                          - 4.6.1                Timing Diagram Conventions                217
- 4.6.2                General Rules of Decoding                Timing Diagrams 222
 
- 4.7          Some Real World IC DIP Packages          223                          - 4.7.1                DIP Package Mechanicals                223
- 4.7.2                Example DIP Implementations                of Logic Functions 225
 
- 4.8          Implementing Boolean Functions          with Chips 231                          - 4.8.1                Binary Math Review 232
- 4.8.2                Half Adder 238
- 4.8.3                Full Adder 241
 
- 4.9          Mixing Logic Families 244                          - 4.9.1                CMOS Driving TTL 245
- 4.9.2                TTL Driving CMOS 246
 
- Summary 247
 
  - CHAPTER    5:    Hardware    Construction    Techniques    249  
         - 5.1          General Introduction to Real          Circuits, Noise, and EMI 249                          - 5.1.1                Current Loops and Grounding                Concepts 249
- 5.1.2                Capacitive Coupling                253
- 5.1.3                Crosstalk 254
 
- 5.2          Construction Techniques 255                          - 5.2.1                Breadboards 256
- 5.2.2                Experimenter Boards                256
- 5.2.3                Perfboards 258
- 5.2.4                Vector Boards 260
- 5.2.5                Specialty Cards 261
- 5.2.6                ISA 261
- 5.2.7                PCI 262
 
- 5.3          Soldering 262                          - 5.3.1                Soldering Irons 263
 
- 5.4          Wire Wrapping 271                          - 5.4.1                Wire Wrapping Steps                279
 
- 5.5          Printed Circuit Boards 279                          - 5.5.1                PCB Objects 281
- 5.5.2                PCB Design Tools 290
- 5.5.3                Steps in a PCB Design                294
- 5.5.4                PCB Layout Considerations                and Techniques 302
- 5.5.5                High Speed Design 303
- 5.5.6                Manufacturing 304
 
- Summary 307
 
  - CHAPTER    6:    Combinational    Logic    and    SSI/MSI    Blocks    309  
         - 6.1          The Glue of Circuits 309
- 6.2          Logic Simplification 310                          - 6.2.1                      DeMorgan's                       Theorem Revisited                 311
- 6.2.2                Bubble Pushing 311
- 6.2.2                Formalizing Functions                314
- 6.2.3                Karnaugh Maps and Minimization                317
 
- 6.3          SSI/MSI Blocks 326                          - 6.3.1                Decoders 327
- 6.3.2                Multiplexers 335
- 6.3.3                Shift Registers 338
- 6.3.4                Buffers 343
 
- Summary 353
 
  - CHAPTER    7:    Changing    Your    Mind    with    Flip    Flops,    State    Machines,    and    Sequential    Logic    355  
         - 7.1          Low Level Flip Flop Implementation          355                          - 7.1.1                Real World Flip Flops                358
- 7.1.2                Flip Flop Hardware Implementations                360
 
- 7.2          Counters 362                          - 7.2.1                Discrete Implementation                of 2-Bit Binary Up-Counter                364
- 7.2.2                Counter Packages 367
 
- 7.3          Sequential Logic Design Concepts          370                          - 7.3.1                State Machine Design                371
- 7.3.2                State Diagrams and State                Tables 373
- 7.3.3                Sequential Circuit Design                Algorithm 377
 
- Summary 380
 
  - CHAPTER    8:    Computer    Architecture    Fundamentals:    Microprocessors,    Microcontrollers,    Microprogramming,    and    Marble    Madness    381  
         - 8.1          Introduction to Computers          and Embedded Systems 381
- 8.2          Microprocessors and Microcontrollers          383                          - 8.2.1                Microprocessors 383
- 8.2.2                Microcontrollers 394
- 8.2.3                Digital Signal Processors                398
- 8.2.4                RISC vs. CISC 398
 
- 8.3          Assembly Language and Machine          Code 399
- 8.4          Processor Architecture 402                          - 8.4.1                Von Neumann vs. Harvard                Architecture 402
- 8.4.2                Instruction Execution                404
 
- 8.5          Register Transfer Logic and          Datapaths 405                          - 8.5.1                Register Transfer Logic                Syntax 406
 
- 8.6          Microprogramming and Microcode          409                          - 8.6.1                Arithmetic Microoperations                411
- 8.6.2                Logic Microoperations                412
- 8.6.3                Shift Microoperations                414
- 8.6.4                Memory Microoperations                415
- 8.6.5                Microprocessor Design                with RTL Review 416
 
- 8.7          External Architecture 416                          - 8.7.1                Data Bus 417
- 8.7.2                Address Bus 418
- 8.7.3                Control Bus 420
 
- 8.8          Internal Architecture 421                          - 8.8.1                Standard One Bus Architecture                422
- 8.8.2                Two and Three Bus Architectures                427
- 8.8.2                Control Unit and Micro                Sequencer 429
 
- 8.9          Advanced Architecture Concepts          431                          - 8.9.1                Pipelining 431
- 8.9.2                Caches 434
- 8.9.3                Multiple Execution Cores                436
 
- 8.10          Processor Addressing Modes          436                          - 8.10.1                Implied Addressing 437
- 8.10.2                Register Addressing                437
- 8.10.3                Immediate Addressing                437
- 8.10.4                Direct / Absolute Addressing                437
- 8.10.5                Indexed Addressing 438
- 8.10.6                Relative Addressing                438
 
- 8.11          Interrupts 439                          - 8.11.1                Hardware Interrupt Details                439
- 8.11.2                Software Interrupts,                Traps, and Operating                Systems 441
 
- 8.12          Processor Electrical Considerations          443                          - 8.12.1                Drive 443
- 8.12.2                Clocking 444
- 8.12.4                Power 445
 
- 8.13          Computer System Architecture          449                          - 8.13.1                The Processing Unit                451
 
- 8.14          Embedded System Computer Organization          456                          - 8.14.1                Restart Vectors and                Addressing 460
- 8.14.2                Design Steps 461
- 8.14.3                Memory Architecture                and Addressing 463
- 8.14.4                Memory Organization                475
- 8.14.5                Decoding Schemes 477
- 8.14.6                Accessing Memory 490
- 8.14.7                Memory Timing Diagrams                493
- 8.14.8                Bus Buffering and Exporting                495
 
- 8.15          Adding I/O Devices and Peripherals          497                          - 8.15.1                Memory Mapped I/O Interfacing                498
- 8.15.2                Programmed I/O Interfacing                500
- 8.15.3                Peripherals 502
- 8.15.4                DMA 503
 
- 8.16          Software and Firmware 504                          - 8.16.1                Startup Software 504
 
- Summary 510
 
  - CHAPTER         9:    Designing         Microprocessor & Microcontroller         Based         Game         Systems         511 
         - 9.1          Minimal Computer Design Goals          511
- 9.2          Example Embedded Computer          Systems 514
- 9.3          Building an SX28 Based System          514                          - 9.3.1                SX28 Internal Organization                and Software Model 515
- 9.3.2                SX28 Functional Description                and Register Map 521
- 9.3.3                SX28 Chip Pinout 531
- 9.3.4                Minimal SX28 Embedded                System Design 533
- 9.3.5                Introduction to Programming                the SX28 538
- 9.3.6                Booting the SX28 544
 
- 9.4          Building a 6502 Based System          546                          - 9.4.1                6502 Internal Organization                and Software Model 547
- 9.4.2                Features 547
- 9.4.3                Functional Description                and Register Map 548
- 9.4.4                Minimal 6502 Embedded                System Design 555
- 9.4.5                Introduction to Programming                the 6502 562
- 9.4.6                Booting the 6502 565
- 9.4.6                6502 XGS Prototype 571
 
- 9.5          Building a 6809 Based System          573                          - 9.5.1                6809 Internal Organization                and Software Model 574
- 9.5.2                The 6809 Feature Set                575
- 9.5.3                Functional Description                and Register Map 576
- 9.5.4                Minimal 6809 Embedded                System Design 582
- 9.5.5                Introduction to Programming                the 6809 586
- 9.5.6                6809 XGS Prototype 596
 
- 9.6          Z80 XGS Prototype 597
- 9.7          Adding Features to Complete          a Game Console 598
- 9.8          Interfacing Fundamentals 598                    
- 9.9          Graphics 600                          - 9.9.1                Display Technologies                600
- 9.9.2                Raster Display Basics                601
- 9.9.3                NTSC/PAL Basics 604
- 9.9.4                Adding Color 611
- 9.9.5                Mathematical Analysis                of Color 613
- 9.9.6                RGB/VGA Basics 617
- 9.9.7                Vector Graphics Basics                626
- 9.9.8                Software/Microcontroller                Based Graphics 629
- 9.9.9                VLSI Hardware Based                Graphics 631
 
- 9.10          Sound 639                          - 9.10.1                Digital Sound 639
- 9.10.2                FM Synthesis 642
- 9.10.3                Hardware Implementations                643
- 9.10.4                Sound Chips 646
 
- 9.11          Game Controller Input Design          652                          - 9.11.1                Digital Input Switches                652
- 9.11.2                Interfacing Atari 2600/C64/Amiga                Joysticks 655
- 9.11.3                SEGA Genesis Gamepads                656
- 9.11.4                Nintendo Entertainment                System Gamepads 659
- 9.11.6                Super NES Controller                Interfacing 662
 
- 9.12          Communications 663                          - 9.12.1                3/2/1 Wire Serial Communications                Schemes 664
 
- 9.13          Game Cartridges 672                          - 9.13.1                Game Cartridge Contains                Everything 672
- 9.13.2                ROM Download to RAM                673
- 9.13.3                System Contains Startup                Code and API/OS ROM                674
- 9.13.4                Switching out the ROM                675
- 9.13.5                Bank Switching Schemes                and Added Features Via                Cartridge 675
 
- Summary 676
 
  - CHAPTER    10:    Developing    Software    for    Embedded    Game    Console    Systems    and    the    XGS    679  
         - 10.1          Overview 679
- 10.2          Why Program in Assembly Language          First? 680                          - 10.2.1                Selecting an Assembler                681
- 10.2.2                Getting Your Code on                the ROM 681
- 10.2.3                Augmented Assembly Language                with Macro Assemblers                682
 
- 10.3          Using High Level Languages          683                          - 10.3.1                Hardware Considerations                683
- 10.3.2                Performance Considerations                685
- 10.3.3                Compilation, Interpretation,                and V-Machines 686
 
- 10.4          Developing Languages on the          XGS ME 687
- 10.5          Using and Developing Development          Tools 688                          - 10.5.1                Developing a Tool Chain                689
- 10.5.2                The Assembler 689
- 10.5.3                Leveraging GUI Technology                690
- 10.5.4                Writing Utilities 690
- 10.5.5                Creating Libraries and                APIs 691
 
- 10.6          Constrained Memory Programming          Techniques 691                          - 10.6.1                Bank Switching 692
- 10.6.2                Memory Windowing 692
- 10.6.3                Artificial Address Expansion                693
- 10.6.4                Compressing Code and                Assets 694
 
- 10.7          Emulation and Simulation 696
- Summary          696
 
  - CHAPTER    11:    The    XGS    Micro    Edition    System    Design    and    Programming    697  
         - 11.1          Introducing the XGS Micro          Edition 697                          - 11.1.2                      XGS Micro Edition Switches,                      Adjustments, and Indicators                      698
 
- 11.2          The XGS Micro Edition Hardware/Software          Model 701                          - 11.2.1                Basic Operation of the                XGS ME 702
- 11.2.2                Hardware Interfaces                and I/O Port Mappings                703
 
- 11.3          Programming the XGS ME 705
- 11.4          Power Supply Design 706                          - 11.4.1                The 5.0V Supply 706
- 11.4.2                The 3.3V Supply 707
- 11.4.3                The 12.5V Supply 707
 
- 11.5          Frequency Divider Circuit          Design 708
- 11.6          Joystick Design and Programming          710                          - 11.6.1                Joystick Hardware Description                710
- 11.6.2                Reading the Joysticks                714
- 11.6.3                Implementing the Read                Function in SX52 ASM                714
- 11.6.4                Joystick Demo 719
 
- 11.7          Keyboard Interface and Programming          720                          - 11.7.1                Communication Protocol                from Keyboard to Host                723
 
- 11.8          SRAM Architecture and Programming          729                          - 11.8.1                SRAM Hardware Interface                729
- 11.8.1.1                Random SRAM Access Bandwidth                732
- 11.8.2                Accessing the SRAM 734
- 11.8.3                Demo Program 746
- 11.8.4                Advanced Uses of the                SRAM 746
 
- 11.9 Sound Hardware and Programming 747                      - 11.9.1                    The BU8763's                     Hardware Interface 749
- 11.9.2              Programming the BU8763              750
- 11.9.3              Sound Demo Program 760
 
- 11.10          XGS Video Hardware and NTSC/PAL          Programming 761                          - 11.10.1                Video Hardware Description                762
- 11.10.2                Review of NTSC Video                764
- 11.10.3                Video Formats and Interfaces                766
- 11.10.4                Composite Color Video                Blanking Sync Interface                767
- 11.10.5                Color Encoding 768
- 11.10.6                Putting It All Together                769
 
- 11.11          Programming the XGS ME Video          Hardware 773                          - 11.11.1                Generating a Composite                Luma/Chroma Video Signal                Voltage 773
- 11.11.2                Video Demos 778
 
- 11.12          The Onboard Programmer 791
- 11.13          XGS 30-Pin Interface and SX52          Headers 795                          - 11.13.1                Expansion Slot Ideas                798
- 11.13.2                SX52 Headers 799
 
- 11.14          Multiprocessor Support 799                          - 11.14.1                Adding Multiprocessor                Support in Firmware                800
 
- 11.15          XGS ME Programming Tutorials          801
- Summary          801
 
  - CHAPTER         12:         The         XGS         Pico         Edition         System         Design         and         Programming & Assembly         803 
         - 12.1                XGS Pico EditionBonus                 Chapter!!! 803                              - 12.1.1                  The Pico Edition Kit                  806
- 12.1.2                  The Pico Design Files                  808
- 12.1.3                  Pico Edition Systems                  809
- 12.1.4                  Building the Pico                  Edition 820
- 12.1.5                  Powering the Pico                  Up 853
- 12.1.6                  Programming the Pico                  856
- 12.1.7                  Blinking Light Test                  859
- 12.1.8                  Joystick Programming                  864
- 12.1.9                  Graphics Programming                  868
- 12.1.10                  Sound Programming                  883
- 12.1.11                  Pico Edition Enhancements                  897
 
- Summary 898
 
  - EPILOGUE    899
Appendixes 
  - APPENDIX      A:      Resistor      Color      Code      Chart      905  
 
  - APPENDIX      B:      ASCII/Binary/Hex/Octal      Universal      Lookup      Tables      907  
         - ASCII/Hex          Table 907
- Decimal/Hex/Octal/Binary          Table 911
 
  INDEX 919
© Copyright Pearson Education. All rights reserved.