出版社: Memset Publications
副标题: Arcade Series
出版年: 2022-5-25
页数: 240
定价: USD 39.00
装帧: Paperback
ISBN: 9798831989519
内容简介 · · · · · ·
Before the era of overpowered PCs and home consoles, there was a time when video-game enthusiasts could only experience the very best and the most challenging in places called "arcades".
In these locations, players of all ages and origins gathered to take their passion to a level no consumer grade hardware could.
The arcades of the early 90s were a highly competitive environmen...
Before the era of overpowered PCs and home consoles, there was a time when video-game enthusiasts could only experience the very best and the most challenging in places called "arcades".
In these locations, players of all ages and origins gathered to take their passion to a level no consumer grade hardware could.
The arcades of the early 90s were a highly competitive environment where publishers only had a few seconds to catch a player's attention, and more importantly their quarters. It was during that time that a young company named Capcom managed to elevate itself above the competition and turn itself into an icon.
This book is an engineering love letter to the platform that allowed this metamorphosis. If you have always wanted to learn about the machine behind the legendary CPS-1 titles Street Fighter II, Ghouls 'n Ghosts, and Final Fight, the "Book of CP-System" is for you.
Inside, you will find the hardware of the CPS-1 described and explained in excruciating detail. The software is also covered with a fully detailed modern pipeline, turning code and assets into ROMs
.
Jump in and discover a world of one hundred explanatory illustrations, sprinkled with typos and broken English to remind you this isn't just a dream!
目录 · · · · · ·
1 Introduction 19
1.1 Costly Production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2 Plagued by Piracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3 Capcom NT (New Technology) . . . . . . . . . . . . . . . . . . . . . . . . 29
1.4 Ode to CP-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
· · · · · · (更多)
1 Introduction 19
1.1 Costly Production . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2 Plagued by Piracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3 Capcom NT (New Technology) . . . . . . . . . . . . . . . . . . . . . . . . 29
1.4 Ode to CP-System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2 Hardware 37
2.1 Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.2 JAMMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.3 Physical Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.1 Board A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.2 Board B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.3.3 Board C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3.4 PALs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.4 Logical Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.5 Control System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.1 Motorola 68000 CPU . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.2 Motorola 68000 ”work” RAM . . . . . . . . . . . . . . . . . . . . . 52
2.5.3 Motorola 68000 Program ROM . . . . . . . . . . . . . . . . . . . 54
2.5.4 68000 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.5 Putting it All Together . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.6 Audio System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.6.1 z80 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.6.2 z80 Work RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6.3 z80 ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6.4 z80 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.6.5 YM2151 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.6.6 YM3012 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.6.7 MSM6295 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.6.8 PCM 101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.6.9 ADPCM Compression . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.7 Video System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7.1 CRT 101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7.2 Syncing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.7.3 Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.7.4 Making Choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.7.5 Color Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.7.6 Putting it All Together . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.7.7 Color Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.8 Graphic System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
2.8.1 CPS-A and CPS-B: The ASICs powerhouse . . . . . . . . . . . . . 85
2.8.2 Pens and Inks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
2.8.3 Elements of drawing . . . . . . . . . . . . . . . . . . . . . . . . . 85
2.8.4 Drawing background . . . . . . . . . . . . . . . . . . . . . . . . . 86
2.8.5 CPS1 Tilemaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.8.6 Drawing Sprites . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.8.7 OBJ Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.8.8 Putting it All Together . . . . . . . . . . . . . . . . . . . . . . . . . 115
2.9 Copy Protection System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
2.9.1 The Ever Changing CPS-B . . . . . . . . . . . . . . . . . . . . . . . 121
2.9.2 ID Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
2.9.3 Multiplication Check . . . . . . . . . . . . . . . . . . . . . . . . . 122
2.9.4 Moving Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
2.9.5 Unexpected Behavior Detection . . . . . . . . . . . . . . . . . . . 123
2.9.6 Invalid Offset Detection . . . . . . . . . . . . . . . . . . . . . . . . 123
2.9.7 Configuration Key . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
2.10 Epilogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
2.10.1 CPS-1.5 Kabuki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
2.10.2 CPS-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
3 Software Concepts 131
3.1 CCPS: The CPS-1 Build System . . . . . . . . . . . . . . . . . . . . . . . . 132
3.2 Programming Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.3 CPUs Bootstrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
3.4 Systems Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.4.1 m68k → CPSA and m68k → CPS-B . . . . . . . . . . . . . . . . . 135
3.4.2 z80 → YM2151 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.4.3 z80 → MSM6295 . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
3.4.4 m68k → z80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.4.5 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
3.4.6 Back in the days . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.4.7 Our sound driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
3.5 Tracking Wall-time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
3.6 Randomness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
3.7 Banking System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4 GFX System 141
4.1 Tile Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.2 GFX Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.3 Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.4 Back in the Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.4.1 Pen and Papers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.4.2 Non-square Grid Paper . . . . . . . . . . . . . . . . . . . . . . . . 145
4.4.3 OBJ Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
4.4.4 The Sheet System . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.4.5 Digitizing Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
4.4.6 Tiny Character Editor . . . . . . . . . . . . . . . . . . . . . . . . . 154
4.4.7 Dotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.4.8 Saving Tiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
4.4.9 Team Structure and Culture . . . . . . . . . . . . . . . . . . . . . 160
4.4.10 Inspiration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
4.5 Shapes and Sprites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.5.1 Sprite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
4.5.2 Shape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
5 Sound System 167
5.1 Processing Sound Samples . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.1.1 Constraint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.1.2 ADPCM Compression . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.2 Structure of the OKI ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.3 Processing Music . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.4 Programming the z80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
5.4.1 Bootstrapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
5.4.2 z80 interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5.4.3 Initializing variables . . . . . . . . . . . . . . . . . . . . . . . . . . 177
5.4.4 z80 Sound Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
5.5 Back in the Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
5.5.1 Recruiting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
5.5.2 Creative Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
5.5.3 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6 Control System 187
6.1 Bootstrapping the 68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.2 Auto-Interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
6.3 Memory Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.3.1 Goal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.3.2 Memory Regions . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.3.3 Code to segment . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.4 Initializing variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.5 Verifying RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
6.6 Ruling them all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.6.1 Commanding sound . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.6.2 Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
6.6.3 Retrieving inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
6.6.4 Drawing on screen . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
6.7 Back in the Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.7.1 SHARP X68000 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.7.2 X68000 Tech Specs . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.7.3 Video Prowess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.7.4 OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
6.7.5 A Development Machine? . . . . . . . . . . . . . . . . . . . . . . . 211
6.7.6 Ports Analysis: Ghouls ’n Ghosts (1994) . . . . . . . . . . . . . . 214
6.7.7 Ports Analysis: Final Fight (1992) . . . . . . . . . . . . . . . . . . 216
6.7.8 Per Scene Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . 218
6.7.9 Ports Analysis: Street Fighter II Champion Edition (1993) . . . . . 220
6.7.10 Per Level Renderer . . . . . . . . . . . . . . . . . . . . . . . . . . 222
6.7.11 Saving Further 68000 Cycles . . . . . . . . . . . . . . . . . . . . . 223
6.7.12 The Rise ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
6.7.13 ... and Fall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7 People 227
8 Epilogue 229
9 Appendix 231
9.1 Making of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Notes & References 235
· · · · · · (收起)
The Book of CP-System的书评 · · · · · · ( 全部 1 条 )
> 更多书评 1篇
论坛 · · · · · ·
在这本书的论坛里发言谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有12人想读,手里有一本闲着?
订阅关于The Book of CP-System的评论:
feed: rss 2.0
还没人写过短评呢