{"id":3033,"date":"2010-11-22T22:25:06","date_gmt":"2010-11-23T06:25:06","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/?p=3033"},"modified":"2010-11-22T22:25:06","modified_gmt":"2010-11-23T06:25:06","slug":"studying-a-game-wave-disc","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/studying-a-game-wave-disc\/","title":{"rendered":"Studying A Game Wave Disc"},"content":{"rendered":"<p>I picked up a used copy of game called Gemz &#8212; a rather flagrant Bejeweled clone &#8212; for a game console called <a href=\"http:\/\/en.wikipedia.org\/wiki\/Game_Wave_Family_Entertainment_System\">Game Wave Family Entertainment System<\/a>. Heard of it? Neither had I. But the game media is optical, so I had to get it and study it.<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/11\/game-wave-gemz-case-and-game-disc.jpg\" alt=\"\" title=\"Game Wave - Gemz - Game case and disc\" width=\"400\" height=\"251\" class=\"alignnone size-full wp-image-3037\" srcset=\"https:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/11\/game-wave-gemz-case-and-game-disc.jpg 400w, https:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/11\/game-wave-gemz-case-and-game-disc-300x188.jpg 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><br \/>\n<\/center><\/p>\n<p>When mounted in Linux (as UDF), the disc is reported to contain 2.8 GB of data, so it has to be a DVD. 810 MB of that is dedicated to the movies\/ directory. Multimedia format? Just plain, boring MPEG files (very YouTube-friendly&#8211; <a href=\"http:\/\/www.youtube.com\/watch?v=XUgVzzztGQY\">here&#8217;s the opening animation<\/a>). Deeper digging reveals some more subdirectories called movies\/ that, combined, occupy the lion&#8217;s share of the disc space. Additionally, there are several single-frame .m2v files in a directory called iframes\/ which are used to encode things like load screens.<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/11\/gemz-loading-screen.jpg\" alt=\"\" title=\"Gemz loading screen\" width=\"400\" height=\"267\" class=\"alignnone size-full wp-image-3034\" srcset=\"https:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/11\/gemz-loading-screen.jpg 400w, https:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/11\/gemz-loading-screen-300x200.jpg 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><br \/>\n<\/center><\/p>\n<p>There are more interesting data files including .zbm files for images and fonts, and .zwf files for audio. I suspect that these stand for zipped bitmap and zipped wave file, respectively. They can&#8217;t be directly unzipped with &#8216;gunzip&#8217;. Some of the numbers at the start of some files lead me to believe they can be easily decompressed with standard zlib facilities.<\/p>\n<p>Based on the binary files on the Gemz disc, I couldn&#8217;t find any data on what CPU this system might use. A little Googling led me <a href=\"http:\/\/www.videogameconsolelibrary.com\/pg00-zapit.htm\">to this page at the Video Game Console Library<\/a> which pegs the brain as a Mediamatics 6811. Some searching for <em>that<\/em> leads me to a <a href=\"http:\/\/www.national.com\/analog\/dvd\">long-discontinued line of hardware from National Semiconductor<\/a>.<\/p>\n<p>The Console Library page also mentions that the games were developed using the Lua programming language. Indeed, there are many Lua-related strings in the game&#8217;s binaries (&#8216;zlib&#8217; also makes an appearance).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Studying the contents of a Game Wave system disc<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-3033","post","type-post","status-publish","format-standard","hentry","category-game-hacking"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/3033","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=3033"}],"version-history":[{"count":4,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/3033\/revisions"}],"predecessor-version":[{"id":3039,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/3033\/revisions\/3039"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=3033"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=3033"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=3033"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}