2018-07-26 13:43:49 +00:00
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge" >
< meta name = "viewport" content = "width=device-width, initial-scale=1" >
2018-07-26 16:44:09 +00:00
< title > 8bitworkshop< / title >
2018-07-26 13:43:49 +00:00
<!-- Bootstrap -->
< link href = "bootstrap/css/bootstrap.min.css" rel = "stylesheet" >
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!-- [if lt IE 9]>
< script src = "https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js" > < / script >
< script src = "https://oss.maxcdn.com/respond/1.4.2/respond.min.js" > < / script >
<![endif]-->
< script >
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
if (window.location.host.endsWith('8bitworkshop.com')) {
ga('create', 'UA-54497476-9', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
}
< / script >
< script async src = 'https://www.google-analytics.com/analytics.js' > < / script >
< / head >
< body >
< nav class = "navbar navbar-inverse navbar-fixed-top" >
< div class = "container" >
< div class = "navbar-header" >
2018-07-31 18:41:27 +00:00
< span class = "navbar-brand" > < a target = "_new" href = "https://twitter.com/8bitworkshop" class = "twitter-follow-button" data-show-count = "false" > Follow @8bitworkshop< / a > < / span >
< script async src = "//platform.twitter.com/widgets.js" charset = "utf-8" > < / script >
2018-07-26 16:44:09 +00:00
< a class = "navbar-brand" href = "./blog/" > Blog< / a >
2018-07-31 18:41:27 +00:00
< a class = "navbar-brand" href = "https://www.amazon.com/default/e/B01N7J10NF/ref=dp_byline_cont_pop_book_1" target = "_blank" onclick = "ga('send', 'event', 'books', 'click');" > Books< / a >
2018-07-26 16:44:09 +00:00
< / div >
2018-07-26 19:47:09 +00:00
< div id = "navbar" class = "hidden-sm hidden-xs" >
2018-07-26 16:44:09 +00:00
< form class = "navbar-form navbar-right" >
2018-08-06 21:29:59 +00:00
< a class = "btn btn-default" href = "redir.html?" role = "button" > Continue to 8bitworkshop IDE
2018-07-26 16:44:09 +00:00
< span class = "glyphicon glyphicon-arrow-right" aria-hidden = "true" > < / span >
< / a >
< / form >
2018-07-26 13:43:49 +00:00
< / div >
< / div >
< / nav >
< div class = "jumbotron" >
< div class = "container" >
< div class = "col-md-6" >
< h1 > Write 8-bit code in your browser.< / h1 >
< p >
Ever wanted to be an old-school game programmer?< br >
Learn how classic game hardware worked.< / br >
Write code and see it run instantly.
< / p >
2018-08-06 21:29:59 +00:00
< p > < a class = "btn btn-primary btn-lg" href = "redir.html?" role = "button" > Continue to 8bitworkshop IDE
2018-07-26 13:43:49 +00:00
< span class = "glyphicon glyphicon-arrow-right" aria-hidden = "true" > < / span >
< / a > < / p >
< / div >
< div class = "col-md-6" >
< br > < br >
< img class = "img-responsive" src = "images/ide_screenshot1.png" >
< / div >
< / div >
< / div >
< div class = "container" >
< div class = "row" >
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=vcs" > Atari 2600< / a > < / h2 >
< p >
Learn how to program the
< a href = "redir.html?platform=vcs" > Atari 2600< / a >
with dozens of fully commented examples.
Our 6502 assembler runs as you type and flags any errors.
We've got debugging tools too; single step through your code and use our CPU Cycle Analyzer to
develop that perfect Stella kernel.
< / p >
2018-07-31 18:41:27 +00:00
< img class = "img-responsive" src = "images/atarivcs.jpg" >
2018-07-26 13:43:49 +00:00
< / div >
< div class = "col-md-4" >
< h2 > Arcade Games< / h2 >
< p >
2018-07-31 18:41:27 +00:00
You can develop your own games on classic arcade game hardware, using our in-browser C compiler targeting the Z80 CPU.
2018-07-26 13:43:49 +00:00
Platforms include
< a href = "redir.html?platform=vicdual" > VIC Dual< / a > ,
< a href = "redir.html?platform=mw8080bw" > Midway 8080< / a > ,
< a href = "redir.html?platform=galaxian-scramble" > Galaxian/Scramble< / a > ,
< a href = "redir.html?platform=vector-z80color" > Atari Vector< / a > ,
and
< a href = "redir.html?platform=williams-z80" > Williams< / a > .
2018-07-31 18:41:27 +00:00
< img class = "img-responsive" src = "images/arcadegames.jpg" >
2018-07-26 13:43:49 +00:00
< / p >
< / div >
2018-07-31 18:41:27 +00:00
< div class = "col-md-4" >
2018-11-12 12:38:02 +00:00
< h2 > < a href = "redir.html?platform=verilog" > Hardware Design< / a > < / h2 >
2018-07-26 13:43:49 +00:00
< p >
Use our
< a href = "redir.html?platform=verilog" > Verilog< / a >
2018-07-26 16:44:09 +00:00
compiler to design a 8-bit game platform from scratch.
2018-11-12 12:38:02 +00:00
We'll run your design in real time in the browser, displaying the output on a simulated CRT.
Plenty of examples are included to teach logic programming.
The book even shows you how to synthesize your code to the
2018-12-15 18:19:28 +00:00
< a target = "_blank" href = "https://www.amazon.com/gp/product/B00R3QU9K0/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=B00R3QU9K0&linkCode=as2&tag=pzp-20&linkId=5e51c89e29bec87dfb4d81f89fdec3fe" > Lattice iCE Stick FPGA< / a > < img src = "//ir-na.amazon-adsystem.com/e/ir?t=pzp-20&l=am2&o=1&a=B00R3QU9K0" width = "1" height = "1" border = "0" alt = "" style = "border:none !important; margin:0px !important;" / >
2018-11-12 12:38:02 +00:00
and connect to a legacy CRT or TV.
2018-07-26 13:43:49 +00:00
< / p >
2018-11-12 12:38:02 +00:00
< img class = "img-responsive" src = "images/fpga.jpg" >
2018-07-26 13:43:49 +00:00
< / div >
< / div >
< h1 class = "text-center" > Learn More With a Book!< / h1 >
2018-11-12 12:38:02 +00:00
2018-07-26 13:43:49 +00:00
< div class = "container" >
< div class = "row" >
2018-08-07 20:15:45 +00:00
< div class = "col-md-2" >
2018-07-31 18:41:27 +00:00
< a target = "_blank" href = "https://www.amazon.com/gp/product/1541021304/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1541021304&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick = "ga('send', 'event', 'books', 'click', 'vcs');" >
2018-08-27 21:31:49 +00:00
< img class = "img-responsive" border = "0" src = "./images/book_a2600_med.jpg" > < / a >
2018-07-26 13:43:49 +00:00
< img src = "//ir-na.amazon-adsystem.com/e/ir?t=pzp-20&l=am2&o=1&a=1541021304" / >
< / div >
2018-08-07 20:15:45 +00:00
< div class = "col-md-4" >
2018-07-31 18:41:27 +00:00
< a target = "_blank" href = "https://www.amazon.com/gp/product/1541021304/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1541021304&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick = "ga('send', 'event', 'books', 'click', 'vcs');" >
2018-07-26 13:43:49 +00:00
< h3 > Making Games For The Atari 2600< / h3 >
< / a >
< p > The Atari 2600 was released in 1977, and now there's finally a book about how to write games for it! You'll learn about the 6502 CPU, NTSC frames, scanlines, cycle counting, players, missiles, collisions, procedural generation, pseudo-3D, and more. While using the manual, take advantage of our Web-based IDE to write 6502 assembly code, and see your code run instantly in the browser. We'll cover the same programming tricks that master programmers used to make classic games. Create your own graphics and sound, and share your games with friends!< / p >
< / div >
2018-08-07 20:15:45 +00:00
< div class = "col-md-2" >
2018-07-31 18:41:27 +00:00
< a target = "_blank" href = "https://www.amazon.com/gp/product/1545484759/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1545484759&linkCode=as2&tag=pzp-20&linkId=2f3c42111bffe3466830939fff4053fc" onclick = "ga('send', 'event', 'books', 'click', 'arcade');" >
2018-08-27 21:31:49 +00:00
< img class = "img-responsive" border = "0" src = "./images/book_arcade_med.jpg" > < / a >
2018-07-26 13:43:49 +00:00
< img src = "//ir-na.amazon-adsystem.com/e/ir?t=pzp-20&l=am2&o=1&a=1545484759" / >
< / div >
2018-08-07 20:15:45 +00:00
< div class = "col-md-4" >
2018-07-31 18:41:27 +00:00
< a target = "_blank" href = "https://www.amazon.com/gp/product/1545484759/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1545484759&linkCode=as2&tag=pzp-20&linkId=2f3c42111bffe3466830939fff4053fc" onclick = "ga('send', 'event', 'books', 'click', 'arcade');" >
2018-07-26 13:43:49 +00:00
< h3 > Making 8-Bit Arcade Games in C< / h3 >
< / a >
< p > With this book, you'll learn all about the hardware of Golden Age 8-bit arcade games produced in the late 1970s to early 1980s. We'll learn how to use the C programming language to write code for the Z80 CPU. The following arcade platforms are covered: * Midway 8080 (Space Invaders) * VIC Dual (Carnival) * Galaxian/Scramble (Namco) * Atari Color Vector * Williams (Defender, Robotron) We'll describe how to create video and sound for each platform. Use the online 8bitworkshop IDE to compile your C programs and play them right in the browser!< / p >
< / div >
< / div >
< / div >
2018-11-12 12:38:02 +00:00
< div class = "container" >
< div class = "row" >
< div class = "col-md-2" >
2018-12-17 22:52:26 +00:00
< a target = "_blank" href = "https://www.amazon.com/gp/product/1728619440/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1728619440&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick = "ga('send', 'event', 'books', 'click', 'verilog');" >
2018-11-12 12:38:02 +00:00
< img class = "img-responsive" border = "0" src = "./images/book_verilog.jpg" > < / a >
2018-12-17 22:52:26 +00:00
< img src = "//ir-na.amazon-adsystem.com/e/ir?t=pzp-20&l=am2&o=1&a=1728619440" / >
2018-11-12 12:38:02 +00:00
< / div >
< div class = "col-md-4" >
2018-12-17 22:52:26 +00:00
< a target = "_blank" href = "https://www.amazon.com/gp/product/1728619440/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1728619440&linkCode=as2&tag=pzp-20&linkId=c149f6365c0a676065eb6d7c5f8dd6ae" onclick = "ga('send', 'event', 'books', 'click', 'verilog');" >
2018-11-12 12:38:02 +00:00
< h3 > Designing Video Game Hardware in Verilog< / h3 >
< / a >
< p >
This book attempts to capture the spirit of the ''Bronze Age'' of video games, when video games were designed as circuits, not as software.
We'll delve into these circuits as they morph from Pong into programmable personal computers and game consoles. Instead of wire-wrap and breadboards, we'll use modern tools to approximate these old designs in a simulated environment from the comfort of our keyboards.
At the end of this adventure, you should be well-equipped to begin exploring the world of FPGAs, and maybe even design your own game console. You'll use the 8bitworkshop.com IDE to write Verilog programs that represent digital circuits, and see your code run instantly in the browser.
< / p >
< / div >
< / div >
< / div >
2018-07-31 18:41:27 +00:00
2018-08-07 20:15:45 +00:00
< h1 class = "text-center" > Supported Platforms< / h1 >
2018-07-31 18:41:27 +00:00
< div class = "container" >
< div class = "row" >
2018-08-07 20:15:45 +00:00
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=vcs" > Atari 2600< / a > < / h2 >
< p >
In 1977, the Atari 2600 popularized the idea of programmable video game consoles.
Its 6502 CPU and mere 128 bytes of RAM powered hundreds of classic games.
Fiendishly difficult to program, developers learned plenty of tricks for "racing the beam" to generate displays far beyond what its designers believed possible.
< / p >
2018-07-31 18:41:27 +00:00
< / div >
2018-08-07 20:15:45 +00:00
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=vicdual" > VIC Dual< / a > < / h2 >
< p >
The VIC Dual system was one of the first CPU-based arcade platforms from Gremlin Industries, later acquired by Sega.
It used a Z80 CPU and a character-based display with simple RGB colors.
"Carnival" is probably the best-remembered game on this platform.
< / p >
2018-07-31 18:41:27 +00:00
< / div >
2018-08-07 20:15:45 +00:00
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=mw8080bw" > Midway 8080< / a > < / h2 >
< p >
The Midway 8080 system powered Gun Fight, the first CPU-based arcade game.
Later, it would also run the immensely popular Space Invaders.
2019-02-05 03:53:50 +00:00
It used a Z80 and a simple black-and-white frame buffer backed by 7 kilobytes of RAM, a huge amount for the time.
2018-08-07 20:15:45 +00:00
< / p >
< / div >
< / div >
< div class = "row" >
< div class = "col-md-4" >
< img class = "img-responsive center-block" src = "images/scrnshots/atari2600-1-fs8.png" >
< / div >
< div class = "col-md-4" >
< img class = "img-responsive center-block" src = "images/scrnshots/vicdual-1-fs8.png" >
< / div >
< div class = "col-md-4" >
< img class = "img-responsive center-block" src = "images/scrnshots/mw8080-1-fs8.png" >
< / div >
< / div >
< div class = "row" >
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=galaxian-scramble" > Galaxian/Scramble< / a > < / h2 >
< p >
Galaxian pushed the limit of video game designs in 1979, with a 3 MHz Z80 and RGB color graphics with hardware sprites overlapping a scrolling background.
This hardware was licensed for many classics like Scramble and Frogger.
< / p >
< / div >
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=vector-z80color" > Atari Vector< / a > < / h2 >
< p >
Atari's black-and-white vector games like Lunar Lander and Asteroids took the industry by storm, later leading to color vector games like Tempest.
Powered by a 6502 CPU and custom state machine, they could draw points and lines at a resolution far beyond the CRT-based games of the era.
< / p >
< / div >
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=williams-z80" > Williams< / a > < / h2 >
< p >
2019-02-05 03:53:50 +00:00
The Williams games like Defender, Robotron, and Joust were powered by Motorola's 6809 CPU (our emulation uses the Z80 though) and plenty of RAM.
A 36 kilobyte framebuffer gave it 16-color graphics, and a custom bit blitter chip moved pixels around quickly.
2018-08-07 20:15:45 +00:00
A separate CPU powered its unique sound effects.
< / p >
< / div >
< / div >
< div class = "row" >
< div class = "col-md-4" >
< img class = "img-responsive center-block" src = "images/scrnshots/galaxian-1-fs8.png" >
< / div >
< div class = "col-md-4" >
< img class = "img-responsive center-block" src = "images/scrnshots/vector-1-fs8.png" >
< / div >
< div class = "col-md-4" >
< img class = "img-responsive center-block" src = "images/scrnshots/williams-1-fs8.png" >
2018-07-31 18:41:27 +00:00
< / div >
< / div >
2018-12-15 18:19:28 +00:00
< div class = "row" >
< div class = "col-md-4" >
< / div >
< div class = "col-md-4" >
< h2 > < a href = "redir.html?platform=apple2" > Apple ][+< / a > < / h2 >
< p >
You can even write C or 6502 assembler code for Woz's creation, the
< a href = "redir.html?platform=apple2" > Apple ][+< / a > .
Thrill to the unusual frame buffer layout and one-bit speaker output!
< img class = "img-responsive" src = "//upload.wikimedia.org/wikipedia/commons/thumb/6/68/Apple_II_Plus.jpg/512px-Apple_II_Plus.jpg" >
< / div >
< div class = "col-md-4" >
< / div >
< / div >
2018-07-31 18:41:27 +00:00
< / div >
2018-07-26 13:43:49 +00:00
< hr >
< footer >
2018-08-01 22:18:06 +00:00
< p >
© 2018 Puzzling Plans LLC.
< a href = "privacy.html" target = "_blank" > Privacy Policy.< / a >
< / p >
2018-08-07 20:15:45 +00:00
< p >
Some brands and product names mentioned are trademarks or service marks of their respective companies. Use of a term in this work should not be regarded as affecting the validity of any trademark or service mark.
< / p >
2018-07-26 13:43:49 +00:00
< / footer >
< / div > <!-- /container -->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
< script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js" > < / script >
<!-- Include all compiled plugins (below), or include individual files as needed -->
< script src = "bootstrap/js/bootstrap.min.js" > < / script >
< / body >
< / html >