{"id":846,"date":"2010-02-23T22:26:58","date_gmt":"2010-02-23T21:26:58","guid":{"rendered":"http:\/\/mehm.net\/blog\/?p=846"},"modified":"2010-02-24T10:36:59","modified_gmt":"2010-02-24T09:36:59","slug":"gb-emulator-day-23","status":"publish","type":"post","link":"https:\/\/mehm.net\/blog\/?p=846","title":{"rendered":"GB Emulator Day 23"},"content":{"rendered":"<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-847\" src=\"http:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator1.png\" alt=\"GBEmulator1\" width=\"346\" height=\"342\" srcset=\"https:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator1.png 346w, https:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator1-300x296.png 300w\" sizes=\"(max-width: 346px) 100vw, 346px\" \/><\/p>\n<p>This might seem like a dead project, but the screenshot above tells a different story&#8230; Today I got the emulator far enough to play the &#8220;Downhill Ski&#8221;-ROM I&#8217;ve been using as the ROM for development. There are some instructions missing in the subroutines that reset the game after a game over, but besides that, it&#8217;s completely playable. When that moment was reached, I got the feeling again that has brought me on the path to being a computer scientist long ago, the feeling you get when a program has reached a certain critical mass and starts doing interesting things.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-848\" src=\"http:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator2.png\" alt=\"GBEmulator2\" width=\"346\" height=\"342\" srcset=\"https:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator2.png 346w, https:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator2-300x296.png 300w\" sizes=\"(max-width: 346px) 100vw, 346px\" \/><\/p>\n<p>I&#8217;m going to try and document some of the development and post about the resources I found, I just have been so busy that I was never able to post about it while it happened. One thing I can already state is that I am now really convinced about Test-Driven Development, I wrote the whole thing test-first, and in the end haven&#8217;t found one major bug in the parts that were tested. The only things that needed some bugfixing were those I didn&#8217;t really unit-test, especially the rendering.<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-849\" src=\"http:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator3.png\" alt=\"GBEmulator3\" width=\"346\" height=\"342\" srcset=\"https:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator3.png 346w, https:\/\/mehm.net\/blog\/wp-content\/uploads\/2010\/02\/GBEmulator3-300x296.png 300w\" sizes=\"(max-width: 346px) 100vw, 346px\" \/><\/p>\n<p>All in all, writing this emulator has put me into a real retro mindset. One of the first results is that there&#8217;s a real GameBoy on the way, which I bought on eBay yesterday. Thinking back, I can&#8217;t believe I gave mine away, when I had one of the first in Germany, imported from the USA before the European launch.<\/p>\n<p>Overall, I got the feeling from browsing the web that there&#8217;s a bit more of a general interest in retro computing and games than in the last years. For example, I was looking at http:\/\/store.kitsch-bent.com\/category\/cartridges to buy a cartridge for the GameBoy (guess what, now I&#8217;m interested in seeing the other side, writing a program that runs on an actual GameBoy), and a day later, they were sold out, so there seems to be a good interest in these things.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This might seem like a dead project, but the screenshot above tells a different story&#8230; Today I got the emulator far enough to play the &#8220;Downhill Ski&#8221;-ROM I&#8217;ve been using as the ROM for development. There are some instructions missing in the subroutines that reset the game after a game over, but besides that, it&#8217;s [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5,3],"tags":[72,66,65],"_links":{"self":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/846"}],"collection":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=846"}],"version-history":[{"count":3,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/846\/revisions"}],"predecessor-version":[{"id":853,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/846\/revisions\/853"}],"wp:attachment":[{"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=846"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=846"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mehm.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=846"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}