<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="https://web.stanford.edu/group/htgg/cgi-bin/drupal"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>How They Got Game</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal</link>
 <description></description>
 <language>en</language>
<item>
 <title>NIST, Stanford Collaborate to Catalog Early Microcomputing Software Data</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1223</link>
 <description>&lt;p&gt;&amp;nbsp;Chad Boutin at the National Institute for Standards and Technology (NIST) has just written about the multi-year project with the Stanford University Libraries, recently concluded, to preserve software in Stanford&#039;s Cabrinety Collection. This project also added significantly to the catalog maintained by NIST&#039;s National Software Reference Library team. You can read about it &lt;a href=&quot;https://www.nist.gov/news-events/news/2013/03/nist-stanford-collaborate-catalog-early-microcomputing-software-data&quot;&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1223#comments</comments>
 <pubDate>Wed, 21 Sep 2016 17:27:23 +0000</pubDate>
 <dc:creator>Henry Lowood</dc:creator>
 <guid isPermaLink="false">1223 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>Games and Interactive Media lecture series @ Stanford, 2016-17 schedule</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1221</link>
 <description>&lt;p&gt;&amp;nbsp;Games and Interactive Media offers an intensively multi-disciplinary lecture series during the Stanford academic year. We are now beginning our third annual series. &amp;nbsp;Please see the attached schedule and plan to attend!&lt;br /&gt;
Henry Lowood&lt;/p&gt;
&lt;table id=&quot;attachments&quot; class=&quot;sticky-enabled&quot;&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Attachment&lt;/th&gt;&lt;th&gt;Size&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class=&quot;odd&quot;&gt;&lt;td&gt;&lt;a href=&quot;https://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/Games and Interactive Media_Poster_Fall_2016.pdf&quot;&gt;Games and Interactive Media_Poster_Fall_2016.pdf&lt;/a&gt;&lt;/td&gt;&lt;td&gt;86.21 KB&lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1221#comments</comments>
 <enclosure url="https://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/Games and Interactive Media_Poster_Fall_2016.pdf" length="88280" type="application/pdf" />
 <pubDate>Tue, 20 Sep 2016 17:56:49 +0000</pubDate>
 <dc:creator>Henry Lowood</dc:creator>
 <guid isPermaLink="false">1221 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>Current Game Preservation is Not Enough</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1211</link>
 <description>&lt;p&gt;(&lt;a href=&quot;https://www.homeyou.com/~edu/a-preservacao-do-jogo&quot;&gt;Portuguese translation&lt;/a&gt;, courtesy of Artur Weber)&lt;br /&gt;
This post is a distillation of some current thoughts on game preservation (extending to software preservation) that arose from a presentation I gave at Stanford two weeks ago. &lt;a href=&quot;https://youtu.be/49p1RqLb2NE&quot;&gt;Video of that talk is here&lt;/a&gt;. The discussion in this post is a little more advanced and focuses mainly on the last 10-15 minutes of the talk.&amp;nbsp; I have also posted a link to another presentation&amp;nbsp;I gave at the Netherlands Institute for Sound and Vision in February. This earlier one&amp;nbsp;is exclusively about the issues with standard game preservation. If you are unfamiliar with this whole topic, &lt;a href=&quot;https://youtu.be/sLD0R6ZLKyw&quot;&gt;definitely check it out&lt;/a&gt;.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
TLDR; The current preservation practices we use for games and software need to be significantly reconsidered when taking into account the current conditions of modern computer games. Below I elaborate on the standard model of game preservation, and what I&amp;rsquo;m referring to as &amp;ldquo;network-contingent&amp;rdquo; experiences. These network-contingent games are now the predominant form of the medium and add significant complexity to the task of preserving the &amp;ldquo;playable&amp;rdquo; historical record. Unless there is a general awareness of this problem with the future of history, we might lose a lot more than anyone is expecting. Furthermore, we are already in the midst of this issue, and I think we need to stop pushing off a larger discussion of it.&lt;/p&gt;
&lt;p&gt;The standard model of game preservation&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Any preservation activity must first decide on its scope, on the boundaries of what it considers to be worthy of saving, and on the basic definitions for the objects involved. In game preservation, the standard model for most (not all, as mentioned below) of the work I&amp;rsquo;ve been involved in resembles the image below.&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;inline inline-center&quot;&gt;&lt;img src=&quot;https://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Screen Shot 2016-06-06 at 12.41.08.preview.png&quot; alt=&quot;Standard preservation model&quot; title=&quot;Standard preservation model&quot;  class=&quot;image image-preview &quot; width=&quot;600&quot; height=&quot;450&quot; /&gt;&lt;span class=&quot;caption&quot;&gt;&lt;strong&gt;Standard preservation model&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
There are essentially three major areas of interest: the physical extent of the game, the data stored on it, and the hardware necessary to run it. Briefly, the focus of a good deal of preservation effort is on the issues associated with accurately extracting data from physical media and maintaining both the physical media and hardware. For the former, there is an assumption that the data extracted from physical media can be run through the use of an emulator. This is a piece of software designed to take in old game data and make it playable on a modern machine. We are in pretty good shape with the emulation of the &amp;ldquo;major&amp;rdquo; computer systems and consoles released pre-2005 or so. (I have &amp;ldquo;major&amp;rdquo; in quotes because most emulation effort is directed towards the more popular platforms, with commercial success being the predominant criteria for selection as opposed to technical innovation, gameplay advances, or any other suitable historical metric.) The MAME project, with its new open source licensing and the inclusion of MESS, provides support for hundreds of systems, some swimmingly so, and others just barely. I&amp;rsquo;m aware that many other emulation projects exist, that they are highly fragile since many of them are passion projects, and that they suffer a lack of proper institutional backing. But at least there is a chance that if you have the proper game data, you can put it in an emulator and get back some playable experience.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The long term physical maintenance prospects, on the other hand, are not particularly good. Physical media and hardware degrade over time, and without upkeep will simple cease functioning. Data stored on magnetic disks, optical discs, etc. will stop being readable, and so again, there is considerable effort in getting the data off of them. Some of the more popular systems may always be physically playable due to the shear number of units available internationally, and the in-depth community knowledge of their technical specifications. There are numerous new consoles that are designed to play Nintendo Entertainment System games, for example, and maybe future production processes will allow for atomically perfect copies of older hardware. Regardless, both of these scenarios, either wholesale emulation or continuous physical maintenance will not hold up going forward.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
This is because the standard model of preservation, and the solutions devised for it do not reflect the current state of game technology or our networked world. The historical object has now changed to a point where is does not reflect the methodologies developed for legacy games and game hardware. When I think of a video game, as an object, I think of the NES in the picture above. It is a singular experience, designed for a single piece of hardware and without any awareness of or dependence on the outside world. The problem is that for people not born in the 1980s, say people born around 2000, the video game, as an object, is a networked application on a mobile phone. Now, I&amp;rsquo;m not saying that if you were / weren&amp;rsquo;t born in either of those times then you must have these preconceptions. I&amp;rsquo;m sure some people born in 2000 totally love the NES. But that the preservation effort that I see in games is for the preservation of the past &lt;em&gt;as seen from the standpoint of those active in game preservation&lt;/em&gt;. Those people want to make sure that their past isn&amp;rsquo;t lost, that you can still find out about and play M.U.L.E. or Escape from Mt. Drash, for the foreseeable future.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
This fear of loss is totally understandable; there are other mediums whose early histories are replete with stories of historical devastation. I routinely hear, and think about, the fate of silent film, where a significant percentage of its early productions are permanently lost. Much of the loss is due to a lack of public acceptance of early film as something worth preserving. The modern idea that film is a medium in need of a preservation record took nearly 50 years to fully develop, in which time much was lost. Early games may have been in that same state, but I&amp;rsquo;m beginning to think that that&amp;rsquo;s no longer the case. There are extensive historical listings of games available, certain early consoles are nearly totally preserved (in the sense that there is available data from most of their games), and there is constant, sustained community effort to reinforce those records. I&amp;rsquo;ve come to believe that games (and software) are going to deal with an inverse of the issues confronting early film. Namely,&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;strong&gt;&lt;em&gt;We are producing objects that are getting more technologically complex, more interdependent, and less accessible. And we are producing them at a rate that dwarfs their previous historical outputs, and that will terminally outpace future preservation efforts.&lt;/em&gt;&amp;nbsp;&lt;/strong&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Future Issues&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
(As a quick aside, this thinking is based, in part, on the recent survey work of David S. Rosenthal in &lt;em&gt;&lt;a href=&quot;https://mellon.org/media/filer_public/0c/3e/0c3eee7d-4166-4ba6-a767-6b42e6a1c2a7/rosenthal-emulation-2015.pdf&quot;&gt;Emulation and Virtualization as Preservation Strategies&lt;/a&gt;&lt;/em&gt;&amp;nbsp;and on some ideas from James Newman&amp;rsquo;s book &lt;a href=&quot;http://www.amazon.com/Best-Before-Videogames-Supersession-Obsolescence/dp/0415577926&quot;&gt;&lt;em&gt;Best Before&lt;/em&gt;&lt;/a&gt;. If you would like more insight on the issues with networked emulation see the former. For gameplay preservation and historical considerations of play, check out Newman.)&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
I don&amp;rsquo;t think I need to support that games are getting more technologically complex. Major studios are much, much larger then they used to be, and teams for AAA titles are incredibly large. Over 1000 people made GTA V. Around 10 people were responsible for DOOM. I know that modern, independent games have moved development back to smaller teams, but their work is also now dependent on toolsets and technologies that are significantly more complex and sprawling then those of even a decade ago.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
That games are more interdependent is also not a controversial position. Most games are now distributed over a network, do not have physical dissemination of any kind, and require some form of network connection for play or updating. This is one of the major problems with future preservation activity. When a system is dependent on multiple parts that are asymmetrically disseminated, reconstructing the object and its played experience become much more difficult. By &amp;ldquo;asymmetrical dissemination&amp;rdquo; I mean that the player of a mobile game, like Candy Crush, receives a game client through an app store. That client requires a connection to a foreign game server to deliver the experience, and handle monetary transactions and record keeping. The older model of software preservation cannot deal with this asymmetry of access. If the foreign server turns off at some point in the future, that part of the game system is now, most likely, irrecoverable. If that server is gone, then in all likelihood, the game client will no longer function. This risk is inherent for a majority of current games. Even when the client is not &lt;em&gt;as&lt;/em&gt; dependent on a server connection for play, there may be other parts of the system, like updates, automatic patching or mobile platform APIs, that do still require network access.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
One way out of this problem is to emulate everything involved in the entire network. Get all the server and client software functioning again through emulation or modification and POW! back comes the game play. While this might be feasible on a technical level, you have the issue that any significantly networked game or activity probably also had a contemporaneous community associated with it, and a social space within the game program itself that cannot be recovered. This is most striking in MMOs, where the game is essentially an operationalization of a social world. If you recover the whole system, you really don&amp;rsquo;t get back much of the experience. (For more on this, see &lt;a href=&quot;http://www.digitalpreservation.gov/partners/pvw.html&quot;&gt;The Preserving Virtual Worlds Report&lt;/a&gt;, and Henry Lowood&amp;rsquo;s discussion of &amp;ldquo;perfect capture&amp;rdquo; (&lt;a href=&quot;http://vcu.sagepub.com.oca.ucsc.edu/content/10/1/113.short&quot;&gt;paywalled here&lt;/a&gt;).&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The major problem with full network emulation is access to the information necessary to recreate a system or network of systems. Most game servers are proprietary, considered corporate secrets, and will never be distributed in a manner that allows for their emulation. That is not to say that with significant, dedicated reverse engineering effort you can&amp;rsquo;t create something that imitates a private server, you can. As the work on &lt;a href=&quot;https://en.nostalrius.org/&quot;&gt;Nostralius&lt;/a&gt; shows, you can even get all the way to potential litigation. But the effort required to emulate networked APIs adds another level of complexity to the preservation task. You can no longer just save a game&amp;rsquo;s data and expect it to function; you need to save its whole network. From a preservation perspective this is an untenable nightmare. The technical burden is now significantly increased along with storage and reproduction requirements.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Another issue with access is the online distribution systems that supply most games. Whether through Steam, Google Play, PSN Network or iOS, we&amp;rsquo;ve offloaded management of our game data to cloud services and wall gardens. This is problem since most of these services reserve the right to strip access to content at any time, and to update that content without providing access to previous versions. Without dedicated preservation efforts, &lt;em&gt;and an implicit dependence on tools created for piracy&lt;/em&gt;, once an application is gone from these services it will be hard (or impossible) to get back. Remember back in 2007, when everyone was using iPhones as light-sabers? Well if you don&amp;rsquo;t, I can&amp;rsquo;t show you it since the original application was removed for IP issues and replaced with a different one. Remember when the Undertaker in Hearthstone was like totally broken? Well I really can&amp;rsquo;t show you that one (as a playable experience) because it was patched out ages ago. There is now an assumption that older versions of things should not be recoverable in a playable way, since the older version is now obviously deficient and should be forgotten. Like how once they colorized Casablanca, we threw out that crummy black and white version.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The most pressing and least mentioned issue is the scale of the problem as it exists today, and how it will continue into the future. I&amp;rsquo;ve presented two different preservation objects, the first, according to the standard preservation model, is a non-networked program made for a dedicated, non-networked platform. The second is a highly network contingent object that we don&amp;rsquo;t really have a viable preservation model for. Obviously there are cases in between these two extremes (and have been for most of the history of games), but overly complex straw men risk becoming real and complicating the argument.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
I made a series of graphs to illustrate the problem. (They are highly empirical, as you will see.) The first two are plots of the development of traditional, standard model games vs network contingent ones over the history of games. Until now, or the recent past, the perception has been that things have developed apace. There are a lot of networked games, but also a lot that do not appear to require network access to function (this is probably now untrue, even for singular experiences, but again strawmen!). Both developments are probably following some form of exponential curve, as more of the world gains access to the technical knowledge and tools needed to make games.&lt;br /&gt;
&amp;nbsp;&lt;span class=&quot;inline inline-center&quot;&gt;&lt;img src=&quot;https://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Screen Shot 2016-06-06 at 12.41.57.preview.png&quot; alt=&quot;Development Until Now&quot; title=&quot;Development Until Now&quot;  class=&quot;image image-preview &quot; width=&quot;600&quot; height=&quot;255&quot; /&gt;&lt;span class=&quot;caption&quot;&gt;&lt;strong&gt;Development Until Now&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;span class=&quot;inline inline-center&quot;&gt;&lt;img src=&quot;https://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Screen Shot 2016-06-06 at 12.42.12.preview.png&quot; alt=&quot;Development to Future&quot; title=&quot;Development to Future&quot;  class=&quot;image image-preview &quot; width=&quot;600&quot; height=&quot;302&quot; /&gt;&lt;span class=&quot;caption&quot;&gt;&lt;strong&gt;Development to Future&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;
The issue appears when projecting into the future, since the two curves are definitely not the same. In fact, the vast majority of the games that will be made by humanity going forward will be network contingent. This is a simple reflection of our networked society, and the expectations of networked connections that are now built into human experience from childhood. This issue also pans out when you look at the available (albeit slightly problematic) data.  Mobygames, a website that tries to account for all historical games, &lt;a href=&quot;http://www.mobygames.com/browse/games/list-games/&quot;&gt;lists around 55,000 titles in their database&lt;/a&gt;. Of those titles, around 20,000 alone are for some form of the Windows operating system. Steam, the popular PC game distribution service has a total of &lt;a href=&quot;http://store.steampowered.com/search/#sort_by=_ASC&amp;amp;tags=-1&amp;amp;category1=998&amp;amp;os=win&amp;amp;page=1&quot;&gt;9,175&amp;nbsp;games available&lt;/a&gt; for play on the current version of the Windows operating system. So roughly half of all the games created for Windows &lt;em&gt;since its inception as an operating system&lt;/em&gt; are currently available for Windows 10, network contingent, and distributed through Steam.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The situation gets a bit more ridiculous when you consider mobile distribution platforms. A majority of the applications available through the iOS App Store are games. According to &lt;a href=&quot;http://www.pocketgamer.biz/metrics/app-store/&quot;&gt;recent numbers from Pocket Gamer&lt;/a&gt;&amp;nbsp;there are over &lt;strong&gt;&lt;em&gt;500,000&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;games available for download to your iPhone. That is, based on the MobyGames numbers, there is an order of magnitude more games on the App Store, right now, then have been created &lt;em&gt;for the entire history of video games&lt;/em&gt;. The scale of production is immense, and all of those games do not fit into the previous considerations of game preservation, they are all network contingent. One response is that most of those games are probably crap, and while that might be true, who&amp;rsquo;s deciding what&amp;rsquo;s crap and what&amp;rsquo;s a &amp;ldquo;legitimate&amp;rdquo; game? If some young, future world renowned game designer made a bunch of unpopular apps before hitting the big time, we&amp;rsquo;d probably want those to be preserved, right?  The second two graphs highlight the other important implication, which is that most future games will be disseminated without physical form. I still don&amp;rsquo;t know of preservation models for network distributed content, and it will soon be the only type of content that is created.&lt;br /&gt;
&lt;span class=&quot;inline inline-center&quot;&gt;&lt;img src=&quot;https://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Screen Shot 2016-06-06 at 12.42.41.preview.png&quot; alt=&quot;Distribution Until Now&quot; title=&quot;Distribution Until Now&quot;  class=&quot;image image-preview &quot; width=&quot;600&quot; height=&quot;240&quot; /&gt;&lt;span class=&quot;caption&quot;&gt;&lt;strong&gt;Distribution Until Now&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;span class=&quot;inline inline-center&quot;&gt;&lt;img src=&quot;https://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Screen Shot 2016-06-06 at 12.42.52.preview.png&quot; alt=&quot;Distribution Into Future&quot; title=&quot;Distribution Into Future&quot;  class=&quot;image image-preview &quot; width=&quot;600&quot; height=&quot;252&quot; /&gt;&lt;span class=&quot;caption&quot;&gt;&lt;strong&gt;Distribution Into Future&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;
The incredible production rates of current games, and the inability to currently preserve them all&amp;nbsp;will lead to a situation where predominantly single player, non-networked games are overrepresented (or in many cases the only representatives) in the playable record. I don&amp;rsquo;t see a way to actually avoid this situation except to be aware of it. If developers and designers disseminate more information about their development practices, or take on a standardized framework for the free dissemination of historical source code and assets, then those breadcrumbs could help prevent complete loss. You can&amp;rsquo;t reconstruct an entire loaf from the crumbs, but you can gain a sense of its texture, ingredients, and baking process.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Solutions?&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Okay, so the situation is looking pretty dire, what are some ways to combat this looming preservation quagmire? (It&amp;rsquo;s also not looming, since it&amp;rsquo;s already here.)&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
First is to consider what we are trying to save when we preserve video games. What I thought we were trying to save is the ability to play a historical game at some point in the future. What I&amp;rsquo;m thinking we need to do is to record the act of play itself. This is the position of James Newman (and probably others). To &amp;quot;record the act of play&amp;quot; is to develop dedicated methodologies to save how people today interact with their games. These methods would involve video capture, textual description, and some means to describe that data for future contextualization and recovery. We probably can&amp;rsquo;t save all the games on the app store in a playable state, but we could probably record a video of some part of them, along with a player describing the experience. This is a way to hedge against total loss, since there will be at least some historical record of the object aside from its name on a list somewhere (if even that).&amp;nbsp; The good news here is that YouTube and Twitch are effectively archiving gameplay everyday. The bad news is that we need means to organize and back up those records, since they will only last as long as Google and Amazon consider them profitable or useful.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Second, maybe get the people creating these things to dedicate a little more time to basic preservation activities. Releasing records of development, production processes, and legacy source code would allow other insights to be made about games, and in some cases allow for their recreation or recovery. I know this is a tall order, since the current corporate culture around all software development is to play close to the chest. It would be nice however, if the best advice archivists could offer game developers wasn&amp;rsquo;t to &lt;a href=&quot;http://www.gamasutra.com/view/news/238156/Saving_video_game_history_begins_right_now.php&quot;&gt;just steal things from their workplaces&lt;/a&gt;.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Third, there needs to be more societal pressure and motivation to legitimate games as cultural production worth saving, a la film, and to create larger institutional structures that fight for preservation activity. I spend some time at film preservation conferences, and it is fairly common that high-level executives from major Hollywood studios attend, speak and participate. This is partly due to the commercial viability of film preservation, since old films can still stock streaming services. But it&amp;rsquo;s also due to a culture in the film industry itself that understands and appreciates its history, the importance of maintaining that history, and the societal benefits that come from preserving cultural heritage. It would be great for the games industry to realize that as well.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Lastly, everything I&amp;rsquo;ve discussed regarding game software extends to software in general. And in that area, I think things may be even worse. Games at least form a semi-coherent class of software that can be framed as a cultural production worth saving. I don&amp;rsquo;t see the same consideration for office software, embedded systems or mobile applications and that&amp;rsquo;s a shame.&lt;/p&gt;
&lt;div class=&quot;image-clear&quot;&gt;&lt;/div&gt;</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1211#comments</comments>
 <pubDate>Mon, 06 Jun 2016 20:59:19 +0000</pubDate>
 <dc:creator>Eric Kaltman</dc:creator>
 <guid isPermaLink="false">1211 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>Cabrinety Cassette Capture</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1207</link>
 <description>&lt;p&gt;&lt;em&gt;&amp;nbsp;This article was originally posted on &lt;strong&gt;&lt;a href=&quot;http://library.stanford.edu/blogs/spec-unbound&quot;&gt;Special Collections Unbound&lt;/a&gt;&lt;/strong&gt; on September 14, 2015. Special Collections Unbound is a blog showcasing the work done by the Stanford University Libraries, Special Collections Department.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In the ongoing Cabrinety-NIST Project, NIST normally performs all disk imaging, but there is an exception to the rule. When the Stanford fall session begins in late September, a subset of the Cabrinety collection will be used as teaching materials in the Rhetoric of Gaming class. Rather than send the Cabrinety boxes containing these materials to NIST (which is located in Gaithersburg, MD), and risk them not returning in time for the class, I decided to do all disk imaging at Stanford.&lt;/p&gt;
&lt;p&gt;One of the more challenging media formats found in the Cabrinety collection are computer cassettes, also known as datasettes. These media carriers can form nightmarish tangles, so audiovisual archivists working with them must maintain constant vigilance to forestall potential chaos.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Cubase.jpg&quot; width=&quot;400&quot; height=&quot;300&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The Cabrinety &amp;ldquo;teaching set&amp;rdquo; consists of 16 boxes containing 666(!) software packages, 60 of which are computer cassettes. The &lt;a href=&quot;https://library.stanford.edu/research/digitization-services/labs/stanford-media-preservation-lab&quot;&gt;Stanford Media Preservation Lab &lt;/a&gt;(SMPL) provided invaluable assistance with capturing data from this obsolete format.&lt;/p&gt;
&lt;p&gt;In a dedicated space located in the Stanford University Libraries branch location in Redwood City, CA, there is a room equipped with 8 Nakamichi CR-7A cassette decks. The outputs from these 8 cassette decks are recorded simultaneously while connected to 2 Mytek 8x192 ADDA converters, with Cubase 7 software being used to capture the PCM audio stream as WAV files. [Note: This is an oversimplification of a complex process that also involves several layers of quality control.] I stayed in that room for several days and created a lot of noise pollution &amp;ndash; computer cassettes make a very unpleasant sound, akin to that of a dial-up modem. Here&amp;rsquo;s a 7-second sample!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stanford.box.com/s/ic8fuh893f2kxa7m54mm8utkqjqwmxnz&quot;&gt;Computer Cassette WAV file (7 seconds)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There were also normal audio cassettes mixed in with the computer cassettes to provide relaxing pockets of intelligible sound in the midst of the data noise.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stanford.box.com/s/owo13jq1wlap5l2nzl31hn2v8r5iglxx&quot;&gt;Audio Cassette MP3 file (12 seconds)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;One of the problems I encountered while working with the very last set of computer cassettes was that the Coleco ADAM format did not fit into the cassette decks. The cassettes seemed like they should fit, but the cassette deck player doors would not close. The reason for this was that the Coleco ADAM cassettes were missing holes in the bottom that would allow the doors to close. There were two solutions to this: a) Drill the holes or b) Temporarily rehouse the cassettes. I went with option b in order to maintain the integrity of the original media carrier.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/004%20Coleco%20ADAM.jpg&quot; width=&quot;400&quot; height=&quot;300&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;This was the basic workflow for rehousing the Coleco ADAM computer cassettes:&lt;/p&gt;
&lt;p&gt;1.	Prepare an empty cassette shell by removing the screws and opening the top.&lt;br /&gt;
&lt;br /&gt;
2.	Open the Coleco ADAM cassette by removing the screws and opening the top to expose the tape.&lt;br /&gt;
&lt;br /&gt;
3.	Carefully(!) take hold of the tape reels, lift them out of the Coleco ADAM cassette, and transfer them to the empty cassette shell casing. Make sure the tape spins properly.&lt;br /&gt;
&lt;br /&gt;
4.	Replace the top of the temporary cassette. Check again that the tape is spinning properly.&lt;br /&gt;
&lt;br /&gt;
5.	LABEL the temporary cassette so you know which tape reels are inside, and also which side of the cassette is side A or side B.&lt;br /&gt;
&lt;br /&gt;
6.	Replace the top of the Coleco ADAM cassette so you don&amp;rsquo;t lose the tiny screws for it and set aside.&lt;br /&gt;
&lt;br /&gt;
7.	Perform data capture of both sides of the tape reel using the temporary cassette that was just created.&lt;br /&gt;
&lt;br /&gt;
8.	 When the data capture is complete, reverse the earlier process to put the tape reels back into their original Coleco ADAM cassette.&lt;/p&gt;
&lt;p&gt;There were 20 Coleco ADAM format computer cassettes, some of which contained 30-40 minutes of content on each side, so this was extremely time consuming, even with 8 cassette decks going at once. This was quite a learning experience and one that gave me a stronger appreciation for the challenges faced by those tasked with preserving analog materials. Also, I learned that whenever you are starting the long process of capturing data from time-based media, treat it like a road trip &amp;ndash; make sure to take a bathroom break first!&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1207#comments</comments>
 <pubDate>Sat, 26 Sep 2015 00:31:28 +0000</pubDate>
 <dc:creator>Charlotte Thai</dc:creator>
 <guid isPermaLink="false">1207 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>How to Give Cartridge-Based Video Game Data an Extra Life (Part 2)</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1205</link>
 <description>&lt;p&gt;&lt;em&gt;&lt;span style=&quot;font-family: Calibri, sans-serif; font-size: 10pt; line-height: 115%;&quot;&gt;The following is a guest post by &lt;strong&gt;Christopher Fox&lt;/strong&gt;, a term employee at the National Institute of Standards and Technology (NIST). For over six years, Christopher has provided NIST&#039;s National Software Reference Library project with data entry services and the application development demands that support those services. He just completed his senior year at Hood College in Frederick, Maryland, where he earned a Bachelor&#039;s in Computer Science. He started working on the video game software part of the Cabrinety Project when the group hit a dead end trying to collect data from gaming cartridges. Since Chris enjoys gaming and found a way to collect save data from older games for his own purposes, he offered to explore and share methods of extracting data from these obsolete formats.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Calibri, sans-serif; font-size: 10pt; line-height: 115%;&quot;&gt;*Disclaimer: Trade names and company products are mentioned in the text or identified. In no case does such identification imply recommendation or endorsement by the National Institute of Standards and Technology, nor does it imply that the products are necessarily the best available for the purpose.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: larger;&quot;&gt;&lt;span style=&quot;font-family: Calibri, sans-serif; line-height: 115%;&quot;&gt;This is a follow up piece to my &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Calibri, sans-serif; font-size: 10pt; line-height: 115%;&quot;&gt;&lt;a href=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1179&quot;&gt;&lt;span style=&quot;font-size: larger;&quot;&gt;previous post&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-size: larger;&quot;&gt;&lt;span style=&quot;font-family: Calibri, sans-serif; line-height: 115%;&quot;&gt; on how the National Software Reference Library at NIST is collecting data from several different types of gaming cartridges.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: larger;&quot;&gt;&lt;span style=&quot;font-family: Calibri, sans-serif; line-height: 115%;&quot;&gt;Since my last post I extended my research into Nintendo Entertainment System (NES) and Game Boy cartridge data collection. The earlier problem was difficulty finding a device capable of collecting the ROM from these platforms for a wide variety of games.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NES:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/001_CopyNES1.jpg&quot; width=&quot;500&quot; height=&quot;333&quot; align=&quot;middle&quot; alt=&quot;CopyNES&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I researched the CopyNES previously, but vendors for them were hard to find. Luckily, they recently came back into production at &lt;a href=&quot;http://www.retrousb.com/product_info.php?cPath=24&amp;amp;products_id=36&quot;&gt;RetroUSB&lt;/a&gt;. RetroUSB is a website that specializes in development tools for older console generations such as the NES, SNES (Super Nintendo Entertainment System), and the Nintendo 64.&lt;/p&gt;
&lt;p&gt;The CopyNES is a hardware NES tool that allows the user to collect or even write data to a NES cartridge. We were only interested in collecting data, so the ability to write data to cartridges was disabled to avoid any data being written to the cartridges in the collection. In order to install the CopyNES, the CPU of the NES gets taken out and then plugged into the CopyNES. The CopyNES is then placed directly on top of the NES motherboard so that it can interact directly with all the data that the NES reads while still being able to play cartridges. The CopyNES also has a USB socket that allows the NES to be connected to a computer so that the ROM from the cartridges can be collected directly.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/002_CopyNES_insystem.JPG&quot; width=&quot;500&quot; height=&quot;334&quot; align=&quot;middle&quot; alt=&quot;CopyNES in system&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Whenever you want to collect a ROM from a cartridge you plug in the game as if you were going to play it normally, turn on the NES with the USB attached, and run the program that comes with the CopyNES hardware to download the ROM in a .nes file. This procedure is great for collecting ROMs from individual cartridges but comes with a few problems since we have such a large amount of cartridges in the Cabrinety collection. To explain these problems I will first have to elaborate on exactly how the ROM collection process works with NES cartridges.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/003_NES_putbacktogether.JPG&quot; width=&quot;500&quot; height=&quot;334&quot; alt=&quot;NES put back together&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/004_Gauntlet.JPG&quot; width=&quot;500&quot; height=&quot;334&quot; alt=&quot;Collecting ROM from Gauntlet&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The first thing to understand is that every NES cartridge has what is referred to as a Memory Management Controller (MMC) or what is commonly called a &lt;a href=&quot;http://wiki.nesdev.com/w/index.php/Mapper&quot;&gt;mapper&lt;/a&gt;. This is a chip that is soldered directly onto the cartridge that performs all the address decoding and bank switching - in other words, supplies information to the NES on how the data should be read off the cartridge. Without knowing which mapper is used for the cartridge, the NES cannot read and play the game and thus the ROM cannot be collected. There are dozens of different mappers for different cartridges made by different companies. Luckily a &lt;a href=&quot;http://tuxnes.sourceforge.net/nesmapper.txt&quot;&gt;list of almost all NES cartridges and their respective mappers&lt;/a&gt; has been made and released to the public. Once you look up the mapper for a specific cartridge - let&amp;rsquo;s say, &amp;ldquo;Gauntlet&amp;rdquo; - you will see that the mapper used for that game is MMC3. Now you can run the software that came with the CopyNES and enter in the associated mapper to allow the NES to read and collect data from the cartridge.&lt;/p&gt;
&lt;p&gt;The problem with this method was the need to look up the mapper for every cartridge before dumping the ROM, which takes extra time and makes the whole process very tedious. Also since the software that came with the CopyNES is a Graphical User Interface (GUI) it is not easy to use the command line to make an automated script of the ROM dumping process. However, since there is a surprisingly large community of people interested in collecting NES ROMs, someone has developed a Linux/Mac OS X based command line program for the CopyNES called &lt;a href=&quot;https://bitbucket.org/crade/copynesl/overview&quot;&gt;Copynesl&lt;/a&gt;. The developer goes by the name Crade and the forum in which he writes about his software is located &lt;a href=&quot;http://forums.nesdev.com/viewtopic.php?f=9&amp;amp;t=5118&quot;&gt;here&lt;/a&gt;. Copynesl also requires a library called &lt;a href=&quot;https://bitbucket.org/wookie/libcopynes/overview&quot;&gt;LibCopyNES&lt;/a&gt;  which was developed by Wookie who also writes on the same forum. This software allows the user to specify the mapper while running the software, which makes the ROM collecting process fully automated.&lt;/p&gt;
&lt;p&gt;However, another problem still exists. Unlike the SNES and Sega Genesis, which have built in anti-piracy checks, the NES has none. The SNES and Sega Genesis calculate the checksum of the ROM using a console specific algorithm and compare that checksum to a value stored in the ROM itself to confirm that all the data is untampered. The NES did not use this method and therefore causes issues when we want confirm if the ROM we have collected is a valid read. Thanks to the large community of fans collecting NES ROMs, someone has already solved this problem. Bootgod has a website that hosts a large database of NES cartridge information that is uploaded and then confirmed to be accurate by others on the &lt;a href=&quot;http://bootgod.dyndns.org:7777/home.php&quot;&gt;site&lt;/a&gt;. On this site, you can look up specific cartridges and a lot of detailed information about each cartridge. The information I focused on using was under &amp;ldquo;ROM Details.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/005_Cartridge_details.jpg&quot; width=&quot;500&quot; height=&quot;463&quot; alt=&quot;Cartridge details&quot; /&gt;&lt;/p&gt;
&lt;p&gt;In the &amp;ldquo;ROMs Combined&amp;rdquo; row, the value under CRC32 is the output of a cyclic redundancy check (CRC). In laymen&amp;rsquo;s terms this is an algorithm that will output a string 32 bits in length based on every single bit in the file. If a single bit is changed in the data then the CRC32 will change completely. This value can be used in a very similar way to the checksums I mentioned above. Now that we have a confirmation of what the CRC32 value of the ROM should be, we can calculate the CRC32 of the ROM we have collected and compare it against the database to prove whether or not the ROM is valid. However, the value that is in the database is not the CRC32 of the entire ROM file, but just the ROM data itself. The ROM file that is created with the CopyNES includes the ROM data and header data from the cartridge. The &lt;a href=&quot;http://nesdev.com/neshdr20.txt&quot;&gt;header data&lt;/a&gt; contains information that is used when loading and playing the ROM, similar to the NES mapper and is 16 bytes in length. Therefore I needed to create a temporary copy of the file but with the header removed and perform the CRC32 on that file and use that value for comparison.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/006_ROM_details.jpg&quot; width=&quot;430&quot; height=&quot;133&quot; alt=&quot;ROM details&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/007_CRC32_check.jpg&quot; width=&quot;500&quot; height=&quot;321&quot; alt=&quot;New file for CRC32 check&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once I was able to run the cartridge data collection software in a way that could be scripted, and had a way to confirm that the data collected was accurate, I was able to write an automated script for the entire data collection process.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve adapted the same script I used for collecting data for Sega Genesis and SNES to include all the functionality for NES cartridges.&lt;/p&gt;
&lt;p&gt;The CopyNES has a feature to put the NES into a state called &amp;ldquo;Play Testing.&amp;rdquo; This allows the user to use the NES as a functional gaming system to see if the cartridge is connected properly, and if it will even run in the first place.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/008_Playtesting.jpg&quot; width=&quot;500&quot; height=&quot;321&quot; alt=&quot;Play testing&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/009_Gauntlet_playing.JPG&quot; width=&quot;500&quot; height=&quot;334&quot; alt=&quot;Gauntlet playing on NES&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once the cartridge is confirmed to be working properly, the user hits &amp;ldquo;Enter&amp;rdquo; and the ROM is collected.&lt;/p&gt;
&lt;p&gt;I mentioned before that every NES cartridge needs to have the mapper specified ahead of time. However, having the user look up the mapper for every cartridge and enter it in by hand becomes tedious and leaves room for user error. To fix this issue I found a file that comes with the Copynesl software called &amp;ldquo;Mappers.dat&amp;rdquo; which has a list of every mapper that the CopyNES currently supports. I then parsed this file to store every individual mapper so they can be added as an argument to the command line tool. The command line tool is run as follows:&lt;/p&gt;
&lt;p&gt;sudo ./copynesl &amp;ndash;d $plugin &amp;ndash;m $mapperNum &amp;ndash;o $filename&lt;/p&gt;
&lt;p&gt;The argument after &amp;ldquo;-d&amp;rdquo; specifies the plugin/mapper. The argument after &amp;ldquo;-m&amp;rdquo; specifies the mapper number which is a value that is stored in the header data of the ROM file (that specifies what the mapper type is for that cartridge.) The mapper number is also listed in the mappers.dat file next to its respective mapper. The argument after &amp;ldquo;-o&amp;rdquo; specifies what the ROM file will be named after the dump.&lt;/p&gt;
&lt;p&gt;Now that I had these values stored, I tried to collect the ROM using the first plugin and mapper number on the list. After that ROM was collected I compared it against the database for a CRC32 match. If it didn&amp;rsquo;t match I moved on to the next plugin and mapper number on the list. This continued until I got a match. Once I found a match I renamed the file to the correct game title and the program exited.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/010_ROM_dumpfinished.jpg&quot; width=&quot;500&quot; height=&quot;346&quot; alt=&quot;ROM dump finished&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Now that the ROM has been collected successfully it can be opened in an emulator and played just to make absolutely sure that the data is correct.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/011_ROM_openinemulator.jpg&quot; width=&quot;500&quot; height=&quot;333&quot; alt=&quot;ROM opened in emulator&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Game Boy ROMS:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I talked about my current progress on collecting Game Boy in my last post and some of the problems I was facing at the time. The first device I tried to use to collect the Game Boy cartridge ROM was a &lt;a href=&quot;http://www.retrode.org/&quot;&gt;Retrode&lt;/a&gt; plugin. However, this device could only collect ROMs from a select few games, and I wasn&amp;rsquo;t able to collect a single ROM from the cartridges that were currently being processed. The &lt;a href=&quot;http://atariage.com/forums/topic/142114-smartboy-cart-in-stock-now-smartboycart-is-best-gameboy-develop-system/&quot;&gt;Smart Boy&lt;/a&gt;  was something I started to look into while working on my last post but upon further research discovered that it produced the same problems as the Windows version of the CopyNES software. It is GUI-based so scripting the whole process wouldn&amp;rsquo;t be possible. Also, the Smart Boy has several options for overwriting the data in the cartridge, and data could be accidentally deleted.&lt;/p&gt;
&lt;p&gt;The newest method that I discovered involves using an &lt;a href=&quot;http://www.insidegadgets.com/projects/gameboy-cart-adapter/&quot;&gt;Arduino and a Game Boy cartridge adapter&lt;/a&gt;. An Arduino is a popular microcontroller that uses several pins to send and receive data. I used the Game Boy Cart Shield which attaches to several pins on the Arduino at once and sits on top. This allows all the pins of the Game Boy cartridge to be accessed by the Arduino. The instructions for this are written out in detail on Inside Gadgets&amp;rsquo; website in an &lt;a href=&quot;http://www.insidegadgets.com/2011/03/19/gbcartread-arduino-based-gameboy-cart-reader-%E2%80%93-part-1-read-the-rom/&quot;&gt;article by Alex&lt;/a&gt;, one of the moderators on the site. I have had great success with using this method to collect both the ROM and the RAM of every Game Boy cartridge I have come across.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/012_Arduino1.JPG&quot; width=&quot;500&quot; height=&quot;334&quot; alt=&quot;Game Boy Cart Shield on Arduino&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/013_Arduino2.JPG&quot; width=&quot;500&quot; height=&quot;334&quot; alt=&quot;Game Boy Cart Shield on Arduino&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The ROM contains all of the data on the cartridge that cannot be edited and was uploaded to the cartridge by the manufacturer. The RAM contains all the data written to the cartridge by the user. This is the &amp;ldquo;save&amp;rdquo; data. The ROM is saved with a &amp;ldquo;.gb&amp;rdquo; extension while the RAM is saved with a &amp;ldquo;.sav&amp;rdquo; extension. The Arduino collects the ROM from the connected Game boy cartridge and sends the data via USB to the host computer. A program then waits for this data and writes it to a file. The process is repeated for the RAM on the cartridge. However, some cartridges do not contain any save data so dumping the RAM can be skipped.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/014_PokemonRed.JPG&quot; width=&quot;500&quot; height=&quot;334&quot; alt=&quot;Pokemon Red plugged into Arduino&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Game Boy cartridges can also be tested for accuracy by using an anti-piracy system similar to the ones used for the Sega Genesis and SNES games in my previous post. However, Game Boy cartridges have multiple checks and other means of verification as opposed to just one like the other cartridges. The first thing that gets verified is the &amp;ldquo;Header checksum.&amp;rdquo; The algorithm for calculating the header checksum in PERL is as follows:&lt;/p&gt;
&lt;p&gt;my x=0;		# x is the calculated checksum &lt;br /&gt;
for (my $i=0134h;$i&amp;lt;=014Ch;$i+=0001h){  	# 0xxxh is a hexadecimal address&lt;br /&gt;
x = x - $bytes[$i] - 1;  #$bytes is an array of all the bytes in the dumped ROM&amp;rsquo;s&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;This algorithm goes through the entire header of the ROM and generates a value in decimal. If you convert this value to hexadecimal and then take the lower 8 bits they should be the same as the value stored at 0x014D in the ROM. The next checksum is referred to as the &amp;ldquo;Global checksum.&amp;rdquo; The algorithm for this one is relatively simple: &lt;br /&gt;
&lt;br /&gt;
my x=0; #x is the calculated checksum  &lt;br /&gt;
for (my $i=0;$i&amp;lt;=$file_length;$i++){&lt;br /&gt;
next if ($i == 014Eh || $i == 014Fh);  &lt;br /&gt;
x = x + $bytes[$i];  &lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;You take every byte from the beginning to the end of the ROM and add it together. However you skip the bytes at addresses 0x014E and 0x014F where the global checksum value is stored. Once you have the sum you compare the answer to the global checksum.  &lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/015_Nintendo_Bitmap.jpg&quot; width=&quot;300&quot; height=&quot;91&quot; alt=&quot;Nintendo Logo bitmap&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The last form of verification is different from the rest. The Game Boy checks that the ROM of every cartridge contains the &amp;ldquo;Nintendo Bitmap.&amp;rdquo; The bitmap is a series of bytes that make up the Nintendo logo that shows up when you turn on your Game Boy with the cartridge plugged in. Once this series of bytes is confirmed accurate the game will continue to be loaded. The Game Boy will cease running if any of these bytes are out of place.&lt;/p&gt;
&lt;p&gt;Once I had all of the checks in place I implemented the entire Game Boy ROM/RAM collection process into my existing PERL script.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/016_GB_ROM1.jpg&quot; width=&quot;500&quot; height=&quot;341&quot; alt=&quot;Pokemon Red ROM read&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The first thing the PERL script does is call a C program that tells the Arduino to send some data located in the header of the ROM through the USB to be used by the C program to determine how much data should be received and therefore how much data to write to the ROM/RAM files. The metadata for the cartridge is also printed out for the user. With this information, it then begins the actual process of saving to POKEMON RED.gb/POKEMON.sav. In this case, the metadata states that the ROM size is 1MB so it will dump until 1024K. It also states that there is RAM in this cartridge and it is 32K in length so that will begin next.&amp;nbsp;Once the ROM/RAM has been saved to their respective files, all of the verification methods are used.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/017_GB_ROM2.jpg&quot; width=&quot;500&quot; height=&quot;230&quot; alt=&quot;Pokemon Red checksum&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After the process is complete the ROM can be loaded into an emulator. The emulator will also automatically load the POKEMON RED.sav file as long as it is in the same directory as the ROM file. The save data below is actually from my own cartridge that I played as a kid.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/018_Pokemon_Arduino_ROM.jpg&quot; width=&quot;275&quot; height=&quot;295&quot; alt=&quot;Pokemon Red title screen&quot; /&gt;&amp;nbsp;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/019_Pokemon_Arduino_RAM.jpg&quot; width=&quot;306&quot; height=&quot;289&quot; alt=&quot;Pokemon Red save game&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Works in progress&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Commodore 64 ROMs:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t performed extensive research on how Commodore 64 ROMs work yet but I have found a method of collecting the ROM from Commodore 64 that may potentially be of use. It involves using an actual Commodore 64 similar to how we used a NES console for collecting NES ROMs. I would need to take apart a Commodore 64 and re-wire a few connections on motherboard in order to allow the ROM data to be collected through the disk drive using specific programs for each type of &lt;a href=&quot;http://markus.brenner.de/cartridge/&quot;&gt;Commodore 64 cartridge&lt;/a&gt;. Using an Arduino is always an option as well and would involve a similar setup to the Game Boy. I will continue to research possible solutions.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1205#comments</comments>
 <pubDate>Tue, 28 Apr 2015 23:02:53 +0000</pubDate>
 <dc:creator>Charlotte Thai</dc:creator>
 <guid isPermaLink="false">1205 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>Interactive Media &amp; Games Seminar Series</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1203</link>
 <description>&lt;p&gt;A few weeks ago I attended one of the lectures being given at Stanford University as part of the &lt;a href=&quot;http://mediax.stanford.edu/news/mediax-supports-interactive-media-games-seminar-series&quot;&gt;Interactive Media &amp;amp; Games Seminar Series&lt;/a&gt;. Every Friday at noon, this seminar presents open lectures for students, staff, and faculty who want a window into the sometimes esoteric world where games and academia collide. I was initially going to summarize the lecture I attended (given by HTGG&amp;rsquo;s own Henry Lowood!), but as all of these lectures are made available online, it is just easier to copy and paste the links&amp;hellip;.I mean it makes more sense to provide access to the &lt;a href=&quot;http://mediax.stanford.edu/themes/interactive-media-games&quot;&gt;actual lectures&lt;/a&gt;.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Also, if you&amp;rsquo;re a Stanford student, this seminar is listed as one-unit course BIOE196. So next time you get any grief for playing games instead of studying, you can casually point to this course listing as proof that those two activities are sometimes the same thing.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1203#comments</comments>
 <pubDate>Fri, 27 Feb 2015 01:42:04 +0000</pubDate>
 <dc:creator>Charlotte Thai</dc:creator>
 <guid isPermaLink="false">1203 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>It&#039;s on: Game Histories from MIT Press</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1201</link>
 <description>&lt;p&gt;Raiford Guins and I just received some great news: MIT Press has given the proverbial greenlight to the &amp;quot;Game Histories&amp;quot; book series that we proposed to them. We are absolutely delighted to be the co-editors of this series, which will kick off with two collections of essays, to be followed by a series of monographic studies, probably 2-3 annually.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
The first two titles in the series will be &lt;em&gt;Debugging Game History: A Critical Lexicon,&lt;/em&gt; which Ray and I have been co-editing, and &lt;em&gt;Zones of Control,&lt;/em&gt; co-edited by Matt Kirschenbaum and Pat Harrigan. We expect that these books will serve as foundational collections for game history and the history of military simulation, respectively.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Finally, we expect to begin soon the process of reviewing full book proposals for &amp;quot;Game Histories.&amp;quot; The goal is to publish single-authored books in the series starting in 2017, after the two above-mentioned titles appear next year. Of course, the exciting bit in a project like this is seeing what prospective authors come up with. We can&amp;rsquo;t wait to start!&lt;/p&gt;
</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1201#comments</comments>
 <pubDate>Wed, 04 Feb 2015 22:57:40 +0000</pubDate>
 <dc:creator>Henry Lowood</dc:creator>
 <guid isPermaLink="false">1201 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>Mass Media</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1199</link>
 <description>&lt;p&gt;This month I decided to try and make a giant poster that showed all the different format types that are present in the Cabrinety collection. I&#039;ve gone through 6,000+ titles so far and found 21 unique kinds of software media.&amp;nbsp;Since I keep discovering more it seemed like the poster would never get done. So instead of waiting for it to be complete and perfect, and possibly too big to ever upload to this site, here it is in all its glory:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/MediaSize_PosterDraft_0.jpg&quot; alt=&quot;Media Types in the Cabrinety Collection&quot; width=&quot;602&quot; height=&quot;1000&quot; /&gt;&lt;/p&gt;
&lt;p&gt;I expect the caption text might be too small too read on this version of the poster, so this is what it says:&lt;/p&gt;
&lt;p&gt;First Row (L-R): Atari 400 cartridge, Sega Game Gear cartridge, Intellivision cartridge, Commodore 64 cartridge, Vectrex cartridge, Atari 2600 cartridge&lt;/p&gt;
&lt;p&gt;Second Row (L-R): ColecoVision cartridge, Atari 7800 cartridge, computer disc (3.5&amp;quot;), Atari 400 cassette, Sega Card&lt;/p&gt;
&lt;p&gt;Third Row (L-R): TI-99/4A cartridge, Tandy Color Computer cartridge&lt;/p&gt;
&lt;p&gt;Fourth Row (L-R): Atari 5200 cartridge, Sega Genesis cartridge, Nintendo Entertainment System cartridge&lt;/p&gt;
&lt;p&gt;Fifth Row (L-R): Computer disc (5.25&amp;quot;), Super Nintendo Entertainment System cartridge, IBM data cartridge&lt;/p&gt;
&lt;p&gt;Sixth Row: Sega CD&lt;/p&gt;
&lt;p&gt;ASSORTED SOFTWARE MEDIA TYPES FOUND IN THE STEPHEN M. CABRINETY COLLECTION IN THE HISTORY OF MICROCOMPUTING, CA. 1975-1995.&lt;/p&gt;
&lt;p&gt;THIS REPRESENTS ONLY A FRACTION OF THE COLLECTION.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1199#comments</comments>
 <pubDate>Thu, 02 Oct 2014 00:18:39 +0000</pubDate>
 <dc:creator>Charlotte Thai</dc:creator>
 <guid isPermaLink="false">1199 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>Past Lives</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1197</link>
 <description>&lt;p&gt;Many lifetimes ago I worked for a video game enthusiast magazine called &lt;em&gt;Tips &amp;amp; Tricks&lt;/em&gt;. It featured several strategy guides every month and also printed thousands of cheat codes. When the magazine was still alive and kicking, there was a short Wikipedia entry describing it and all of the employees. Upon a recent check I saw that this entry had gone the way of the dinosaur. This was a bit of a letdown, but also a wake-up call that for something to be preserved, someone needs to advocate for its inclusion in the historical record.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
Enter Roger Burton, the Editor-In-Chief of &lt;a href=&quot;http://gamelosers.net/blog/&quot;&gt;Game Losers&lt;/a&gt;, a website devoted to covering underreported sports and video game stories. A former reader of &lt;em&gt;Tips &amp;amp; Tricks&lt;/em&gt;, he was curious about the history of the magazine, and thanks to the aforementioned lack of information on Wikipedia, he decided to track down many of the old writers and interview them, including yours truly.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
So if you are interested in reading about my sordid history as a video game journalist way, way, waaaay back in the day, Burton&amp;rsquo;s &amp;ldquo;&lt;a href=&quot;http://gamelosers.net/blog/2014/07/23/tips-tricks/&quot;&gt;A Comprehensive Oral History of Tips &amp;amp; Tricks &amp;ndash; The #1 Video-Game Tips Magazine&lt;/a&gt;&amp;rdquo; has got you covered.&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&lt;/p&gt;
</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1197#comments</comments>
 <pubDate>Fri, 08 Aug 2014 23:19:22 +0000</pubDate>
 <dc:creator>Charlotte Thai</dc:creator>
 <guid isPermaLink="false">1197 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
<item>
 <title>California Extreme 2014</title>
 <link>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1195</link>
 <description>&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/CE2014_Brochure.jpg&quot; width=&quot;500&quot; height=&quot;431&quot; align=&quot;top&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.caextreme.org/&quot; target=&quot;_blank&quot;&gt;California Extreme: The 18th Annual Arcade &amp;amp; Pinball Show&lt;/a&gt; was held from July 12-13, 2014 at the Hyatt Regency in Santa Clara, CA. This is a show where collectors who own classic arcade cabinets and pinball machines bring out their wares for the public to play firsthand, giving a new generation of gamers the opportunity to experience very old titles like &lt;em&gt;&lt;a href=&quot;http://www.arcade-museum.com/game_detail.php?game_id=13027&quot; target=&quot;_blank&quot;&gt;Space War&lt;/a&gt;&lt;/em&gt; or &lt;em&gt;&lt;a href=&quot;http://www.arcade-museum.com/game_detail.php?game_id=7381&quot; target=&quot;_blank&quot;&gt;Computer Space&lt;/a&gt;&lt;/em&gt;. It&amp;rsquo;s an excellent value with all of the machines set to free play, and the cost of entry only $30-40 a day for one adult. The Saturday show ran from 11am until 2am the next morning, so any gamer with the stamina could play for 15 hours (more if s/he paid for early entry.)&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/SpaceWar.JPG&quot; width=&quot;400&quot; height=&quot;300&quot; alt=&quot;&quot; /&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/ComputerSpace.JPG&quot; width=&quot;350&quot; height=&quot;467&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;The last time I attended California Extreme was about a decade ago, and what I remember most vividly about that experience (aside from the fact that someone had to sleep on the hotel room radiator) was that I played a lot of &lt;em&gt;&lt;a href=&quot;http://www.arcade-museum.com/game_detail.php?game_id=9585&quot; target=&quot;_blank&quot;&gt;Slick Shot&lt;/a&gt;&lt;/em&gt;, and that it wasn&amp;rsquo;t nearly as crowded as I was expecting. There was space to roam around, and a lot of the machines I wanted to play were open.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/SlickShot.JPG&quot; width=&quot;350&quot; height=&quot;467&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;This year was completely different &amp;ndash; the crowd had grown exponentially, there were a lot more kids, and jumping on a machine you wanted was a matter of luck and timing. Playing &lt;em&gt;Slick Shot&lt;/em&gt; was much more awkward because you had to swing around a full-sized cue stick in a packed space. There were also a lot of kids running around holding stools so they could reach high enough to operate the controls on the upright arcade cabinets. That was adorable. What was not so adorable was that some of them were also hogging the machines. Some of us want to play &lt;em&gt;&lt;a href=&quot;http://www.arcade-museum.com/game_detail.php?game_id=12839&quot; target=&quot;_blank&quot;&gt;Tapper&lt;/a&gt;&lt;/em&gt;, too, kid!&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;My memories of how to play some of these games was quite rusty. One of the few that I remembered playing as a kid was &lt;em&gt;&lt;a href=&quot;http://www.arcade-museum.com/game_detail.php?game_id=7238&quot; target=&quot;_blank&quot;&gt;BurgerTime&lt;/a&gt;&lt;/em&gt;. For some reason, now I was under the impression I had to kill and trap the roaming enemies inside the hamburgers, instead of just building the hamburgers with the already laid out ingredients like a normal person. I also played a bit of &lt;em&gt;&lt;a href=&quot;http://www.arcade-museum.com/game_detail.php?game_id=8977&quot; target=&quot;_blank&quot;&gt;Paperboy&lt;/a&gt;&lt;/em&gt;, and had to reeducate myself that in the arcade universe, riding a bicycle over a sewer grate means instant death.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/BurgerTime.JPG&quot; width=&quot;250&quot; height=&quot;333&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Paperboy.JPG&quot; width=&quot;300&quot; height=&quot;225&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;One of the newest games on the floor (and possibly one of the most valuable) was a &lt;em&gt;Fix-It Felix, Jr.&lt;/em&gt; cabinet that was modeled after the fictional game featured in the Disney movie &lt;em&gt;&lt;a href=&quot;http://movies.disney.com/wreck-it-ralph&quot; target=&quot;_blank&quot;&gt;Wreck-It Ralph&lt;/a&gt;&lt;/em&gt;. Disney created a few of these arcade cabinets as promotional items, and gave them a scuffed-up look so they&amp;rsquo;d seem like authentic machines from the 1980s.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;a href=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Felix_Cabinet_Marquee.JPG&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Felix_Cabinet_Marquee.JPG&quot; width=&quot;300&quot; height=&quot;225&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;The first time I waited in line for a chance to play it, there was one person in front of me so I figured I wouldn&amp;rsquo;t have to wait that long for my turn. Instead, she proceeded to &lt;em&gt;destroy&lt;/em&gt; the game, level after level, like she&amp;rsquo;d been playing it for years.&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Felix_Player.JPG&quot; width=&quot;200&quot; height=&quot;267&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;When I came back and tried it out myself, it was much harder than it looked. Anyone who wants a chance to play the game can check out the &lt;a href=&quot;http://games.disney.com/wreck-it-ralph-fix-it-felix-jr&quot; target=&quot;_blank&quot;&gt;online version&lt;/a&gt;, which has a much easier default setting. If you want to own the arcade cabinet, it will cost you &lt;a href=&quot;http://venturebeat.com/2014/04/18/got-20k-you-can-get-the-arcade-machine-from-wreck-it-ralph/&quot; target=&quot;_blank&quot;&gt;about 20K&lt;/a&gt; (although the one at the show was quite clearly labeled as &amp;ldquo;NOT FOR SALE.&amp;rdquo;)&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;a href=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Fix-It_Felix_Website.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Fix-It_Felix_Website.jpg&quot; width=&quot;250&quot; height=&quot;165&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Fix-It_Felix_Website2.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Fix-It_Felix_Website2.jpg&quot; width=&quot;300&quot; height=&quot;170&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;While wandering the floor in search of open games, I saw a sign for something called the &lt;a href=&quot;http://www.digitalgamemuseum.org/&quot; target=&quot;_blank&quot;&gt;Digital Game Museum&lt;/a&gt;. They had &lt;em&gt;&lt;a href=&quot;http://www.arcade-museum.com/game_detail.php?game_id=9159&quot; target=&quot;_blank&quot;&gt;Puppy Pong&lt;/a&gt;&lt;/em&gt; set up behind them, a game I had only seen previously during GDC as part of a &lt;a href=&quot;http://www.vghmuseum.org/&quot; target=&quot;_blank&quot;&gt;Videogame History Museum&lt;/a&gt; display. Intrigued, I stopped by to introduce myself. The DGM is a nonprofit organization dedicated to the preservation of digital games, and they are local to the Bay Area (Santa Clara). I told them about Stanford&amp;rsquo;s recent work with UCSC on &lt;a href=&quot;https://gamecip.soe.ucsc.edu/&quot; target=&quot;_blank&quot;&gt;GAMECIP&lt;/a&gt;, an IMLS-funded project to create videogame metadata standards and controlled vocabularies for libraries, archives, and museums. This is something they were interested in as well &amp;ndash; so far the available standards at places like the Library of Congress or the Getty are woefully inadequate to deal with videogames.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/DigitalGameMuseum1.JPG&quot; width=&quot;440&quot; height=&quot;330&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/PuppyPong.JPG&quot; width=&quot;480&quot; height=&quot;640&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;Now that I am an old person I like to sit down at least once every 10 hours, so we headed to the Console Games room. This room was located in a tiny room that seemed like it was several miles away from the main floor.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/CE2014_Map.jpg&quot; width=&quot;350&quot; height=&quot;284&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;It featured cushioned chairs, Super Nintendo and Sega Genesis games, and a small sales area. I played &lt;em&gt;Sonic the Hedgehog&lt;/em&gt; for the first time in years, and only passed the first three levels before dying (sad considering how many times I beat this game during my wasted youth.)&amp;nbsp;There was an Atari &lt;em&gt;E.T.&lt;/em&gt; cartridge for sale that was prominently labeled as &amp;ldquo;&lt;a href=&quot;http://kotaku.com/e-t-found-in-new-mexico-landfill-1568100161&quot; target=&quot;_blank&quot;&gt;Not from the landfill&lt;/a&gt;&amp;rdquo; as well as a container filled with Genesis controllers for $5.00. Those poor Genesis controllers&amp;hellip;I almost bought one just because I felt sorry for it. Damn you, &lt;em&gt;&lt;a href=&quot;http://toystory.disney.com/&quot; target=&quot;_blank&quot;&gt;Toy Story&lt;/a&gt;&lt;/em&gt;, for making me anthropomorphize inanimate objects!&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Sonic.JPG&quot; width=&quot;340&quot; height=&quot;255&quot; alt=&quot;&quot; /&gt;&amp;nbsp;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Games_Sale3.JPG&quot; width=&quot;340&quot; height=&quot;255&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Genesis_5Bucks.JPG&quot; width=&quot;340&quot; height=&quot;255&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;The rest of the show was a bit of a blur, and we all tapped out at dinner time. I only took a few other pictures (which are shown below) of diminishing quality. I apologize profusely to pinball enthusiasts everywhere for my clear arcade machine bias in this post.&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/4PlayerPacMan.JPG&quot; width=&quot;280&quot; height=&quot;373&quot; alt=&quot;&quot; /&gt;&amp;nbsp;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/PackRat.JPG&quot; width=&quot;240&quot; height=&quot;320&quot; alt=&quot;&quot; /&gt;&amp;nbsp;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Punch-Out%21.JPG&quot; width=&quot;240&quot; height=&quot;320&quot; alt=&quot;&quot; /&gt;&amp;nbsp;&lt;img src=&quot;http://web.stanford.edu/group/htgg/cgi-bin/drupal/sites/default/files2/images/Mario_Pinball.JPG&quot; width=&quot;240&quot; height=&quot;320&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;rteleft&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class=&quot;rtecenter&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
 <comments>https://web.stanford.edu/group/htgg/cgi-bin/drupal/?q=node/1195#comments</comments>
 <pubDate>Tue, 15 Jul 2014 16:12:12 +0000</pubDate>
 <dc:creator>Charlotte Thai</dc:creator>
 <guid isPermaLink="false">1195 at https://web.stanford.edu/group/htgg/cgi-bin/drupal</guid>
</item>
</channel>
</rss>
