Usage of Today's Technology in Creating Authentic '8-Bit' and '1
Total Page:16
File Type:pdf, Size:1020Kb
CALIFORNIA STATE UNIVERSITY, NORTHRIDGE Renegade Drive: Usage of Today’s Technology in Creating Authentic ‘8-bit’ and ‘16-bit’ Video Game Experiences A thesis submitted in partial fulfillment of the requirements For the degree of Master of Science in Computer Science By Christian Guillermo Bowles December 2017 Copyright by Christian Guillermo Bowles 2017 ii The thesis of Christian Guillermo Bowles is approved: ______________________________ ____________ Prof. Caleb Owens Date ______________________________ ____________ Dr. Robert McIlhenny Date ______________________________ ____________ Dr. Li Liu, Chair Date California State University, Northridge iii Acknowledgements The author wishes to thank the following individuals and organizations for their contributions and support towards this thesis project: • Doris Chaney • Dr. G. Michael Barnes • Dr. Richard Covington • Dr. Peter Gabrovsky • Dr. Ani Nahapetian • Lauren X. Pham • Chase Bethea • Caleb Andrews • Sean Velasco • Ian Flood • Nick Wozniak • David D’Angelo • Shannon Hatakeda • Jake Kaufman • CSUN Game Development Club • Animation Student League of Northridge • CSUN Anime Club • Yacht Club Games • Mint Potion TV iv Table of Contents Signature Page iii Acknowledgements iv List of Figures x List of Tables xiv Abstract xv Introduction 1 Chapter 1: Hardware Limitations of the Nintendo Entertainment System 3 • Screen Resolution 3 • Tile Patterns 4 • Layers 4 • Sprites 6 • Palettes 7 • Audio 8 • Input 10 Chapter 2: Hardware Limitations of the Sega Master System 12 • Screen Resolution 12 • Tile Patterns 13 • Layers 14 • Sprites 15 • Palettes 15 • Audio 16 • Input 17 v Chapter 3: Hardware Limitations of the Nintendo Game Boy 18 • Screen Resolution 18 • Tile Patterns 19 • Layers 20 • Sprites 21 • Palettes 22 • Super Game Boy 23 • Game Boy Color 25 • Audio 32 • Input 33 Chapter 4: Hardware Limitations of the Sega Game Gear 34 • Screen Resolution 34 • Tile Patterns 35 • Layers 35 • Sprites 36 • Palettes 37 • Audio 38 • Input 39 Chapter 5: Hardware Limitations of the Super Nintendo 40 • Screen Resolution 40 • Dynamic Memory Allocation 41 • Tile Patterns 42 • Layers 44 vi • Sprites 45 • Palettes 46 • Graphical Modes 47 • Additional Graphical Effects 54 • Expansion Chips 61 • Audio 63 • Input 64 • Hardware Extensions and Other Similar Systems 65 Chapter 6: Hardware Limitations of the Sega Genesis 70 • Screen Resolution 70 • Dynamic Memory Allocation 72 • Tile Patterns 72 • Layers 73 • Sprites 76 • Palettes 78 • Additional Hardware Features 80 • Expansion Chips 81 • Audio 82 • Input 83 • Hardware Extensions and Other Similar Systems 85 Chapter 7: Comparing the Hardware Limitations of Each System 90 • Screen Resolution 90 • Tile Patterns 92 vii • Layers 94 • Sprites 97 • Palettes 100 • Audio 103 • Input 104 Chapter 8: Shovel Knight – An example of a Retro-Styled Video Game 107 • Screen Resolution 108 • Tile Patterns 109 • Layers 110 • Sprites 111 • Palettes 112 • Audio 113 • Input 114 Chapter 9: Renegade Drive Software Design 115 • Screen Resolution 116 • Tile Patterns 117 • Layers 118 • Sprites 119 • Palettes 120 • Audio 121 • Input 122 Chapter 10: Renegade Drive Implementation 123 • GameMaker Studio 123 viii • Project File Structure 124 • Tech Demos Produced Using Renegade Drive 125 • Video Games Produced Using Renegade Drive 127 • Future Renegade Drive Development 128 Conclusion 129 References 130 ix List of Figures 1.1 The Nintendo Entertainment System 3 1.2 Screenshot from Super Mario Bros. 3 4 1.3 Screenshot from Super Mario Bros. 3 (only layers) 5 1.4 Screenshot from Super Mario Bros. 3 (only sprites) 6 1.5 6-bit color spectrums 8 1.6 The Famicom Disk System 10 1.7 The NES and Famicom controllers 11 2.1 The Sega Master System 12 2.2 Screenshot from Sonic Chaos (the Master System version) 13 2.3 The Master System controller 17 3.1 The Nintendo Game Boy 18 3.2 Screenshot from Super Mario Land 2 19 3.3 The Super Game Boy 23 3.4 Screenshot from Donkey Kong (the Super Game Boy version) 24 3.5 The Game Boy Color 25 3.6 Screenshots from Kirby’s Dream Land 27 3.7 Screenshots from Pokémon Red Version 28 3.8 Screenshots from Pokémon Gold Version 29 3.9 Screenshots from Mega Man X-Treme 30 3.10 Screenshots from Shantae 31 3.11 Two Game Boys connected via the Game Link Cable 33 4.1 The Sega Game Gear 34 x 4.2 Screenshot from Sonic Chaos (the Game Gear version) 35 4.3 Two Game Gears connected via the Gear-to-Gear Cable 39 5.1 The Super Nintendo Entertainment System 40 5.2 SNES color entries organized as color palettes 46 5.3 Screenshot from Super Mario World 48 5.4 Screenshot from Tetris Attack 49 5.5 Title screen from Super Mario All-Stars 51 5.6 Screenshot from Seiken Densetsu 3 52 5.7 Screenshot from F-Zero 54 5.8 Screenshots from Final Fantasy IV 55 5.9 Screenshot from R.P.M. Racing 56 5.10 Screenshot from Kirby’s Dream Land 3 57 5.11 Screenshot from Mega Man 7 58 5.12 SNES color arithmetic operation examples 59 5.13 Screenshot from EarthBound 60 5.14 SNES visibility region examples 60 5.15 Screenshot from Super Metroid 61 5.16 Screenshots from Star Fox and Mega Man X2 62 5.17 The SNES controller 64 5.18 Concept art of the SNES-CD 65 5.19 Screenshot from Super Mario Advance 66 5.20 Cutscene from Mario vs. Donkey Kong 67 5.21 The Game Boy Advance and Game Boy Advance SP 68 xi 5.22 The Nintendo DS and Nintendo DSi 69 6.1 The Sega Genesis 70 6.2 Screenshots from Sonic the Hedgehog and 71 Mega Man: The Wily Wars 6.3 Screenshot from Sonic & Knuckles 75 6.4 Screenshots from Sonic the Hedgehog 3 79 6.5 Screenshot from Sonic the Hedgehog 2 80 6.6 Screenshot from Virtua Racing 81 6.7 The three-button Genesis controller 83 6.8 The six-button Genesis controller 84 6.9 The Sega CD attached to the Sega Genesis 85 6.10 The Sega 32X attached to the Sega Genesis 86 6.11 The NEC PC-9801 and SNK Neo Geo 87 6.12 Screenshots from Touhou Gensoukyou: Lotus Land Story and 88 Madou Monogatari 2 6.13 Screenshot from Metal Slug: Super Vehicle-001 89 7.1 Different shade possibilities for the color red 102 8.1 Shovel Knight poster 107 8.2 Screenshot from Shovel Knight 108 8.3 Palette-cycling example 113 9.1 Renegade Drive logo 115 10.1 The current GameMaker Studio logo 123 10.2 GameMaker Studio project example 124 xii 10.3 Screenshots from the Graphics Demo and Input Demo 126 10.4 Screenshot from Floatie’s Block Ball 127 10.5 Screenshot from Disco Dog Discord 128 xiii List of Tables 7.1 List of screen resolution limitations 90 7.2 List of tile pattern limitations 92 7.3 List of layer limitations 94 7.4 List of layer tile attributes 96 7.5 List of sprite limitations 97 7.6 List of sprite attributes 98 7.7 List of palette limitations 100 7.8 List of audio limitations 103 7.9 List of input limitations 104 7.10 Recommended inputs as implemented on keyboards and 105 controllers 9.1 List of Renegade Drive palette specifications 120 xiv Abstract Renegade Drive Usage of Today’s Technology in Creating Authentic ‘8-bit’ and ‘16-bit’ Video Game Experiences By Christian Guillermo Bowles Master of Science in Computer Science Imagine being able to travel 20 to 30 years back in time and creating brand new ‘8-bit’ or ’16-bit’ video games. This thesis introduces Renegade Drive, a set of technical software design specifications that serve as guidelines for the creators of modern day retro-styled ‘8-bit’ and ‘16-bit’ video games to abide by throughout development. The project was conceived by analyzing the hardware design limitations of ‘8-bit’ and ‘16-bit’ video game systems that were released between the mid-1980s to the mid-1990s. Renegade Drive shows how to bring the same aesthetic look and feel of video games from decades past into modern day video game projects. With Renegade Drive, the possibility of producing a nostalgic retro gaming experience will become a reality, with no time travel necessary. This thesis also reviews the pros and cons of each analyzed video game system’s features, as well as Renegade Drive’s implementation into code as source files for a modern day 2D video game engine. xv Introduction In the year 1985, the Nintendo Entertainment System was released in America, where it became a commercial success [1]. The appeal of its ‘8-bit’ video games amongst consumers came from their simplistic 2D graphics and hardware-generated audio. However, game developers had to struggle with a difficult architecture in which to create content for. As time went on, newer video game systems with higher fidelities of 2D graphics and audio were released. The Sega Genesis and Super Nintendo Entertainment System were two such examples of ‘16-bit’ consoles [2]. Each one featured more sophisticated architectures for developers, resulting in more colorful and engaging games. The rivalry of 2D video game development between these two systems became infamously known as the first “Console War” [3]. In 1996 however, Nintendo released the Nintendo 64, a console that emphasized 3D graphics in games [1]. Game development companies followed suit, and producing 3D video games became the new standard, effectively abandoning 2D graphics. It has been approximately 20 years since that transition occurred. 2D video games have recently re-emerged from smaller development groups, and their target audiences include gamers nostalgic for the “glory days” of the past [4]. In order to capitalize off of this market, this thesis proposes Renegade Drive – a set of technical design limitations with which video game developers can use in order to create modern computer games that function identically to the retro-styled console games from 20 to 30 years ago.