Home > Store > Programming > Visual Basic

Black Art of Video Game Console Design, The

Register your product to gain access to bonus material or receive a coupon.

Black Art of Video Game Console Design, The

Book

  • Your Price: $51.99
  • List Price: $64.99
  • Usually ships in 24 hours.

Description

  • Copyright 2006
  • Dimensions: 7" 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.

 

Sample Content

Online Sample Chapters

Analog Design with Discrete Components

The Black Art of Video Game Console Design: Analog Design with Discrete Components

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 POR—Power 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.4.1 Rectifiers 155
    • 3.5 Voltage Regulation Applications 158
      • 3.5.1 Zener Diodes 160
    • 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
      • 3.11.1 The 555 Timer 192
    • 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.8.1 Bus Buffering 599
    • 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 Edition—Bonus 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
    • Examples 906

  • 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.

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership