Tuesday, December 29, 2015

Ridge Racer 3D: Duplicating Duels (Simpler Method)

So, a while back when I posted that other post, I had this really long and complex method to duplicate a StreetPass Duel that involved backing up data on the SD card and game title IDs and all kinds of nonsense.  The bonus points duplication was far simpler and therefore the preferred method.

Well, I'm an idiot.  Duplicating a duel is, in fact, just as easy as duplicating the bonus points.  You do, in fact, get to a point where you have completed the duel, but the game hasn't deleted it yet, and it politely waits for your input before actually deleting it.  So, without further ado, the method!
  1. Start up Ridge Racer 3D once you've gotten some StreetPasses for it.
  2. Go to Single Player → StreetPass Duel, get your bonus points, and then hopefully also a duel or two.
  3. If you got a duel, race it, and win so you get the points.
  4. Once you finish the duel, there will be a screen saying "you finished first!" and showing you the points you just earned.  Press A.
  5. The game will now save, which credits you with those nice juicy points you're after.
  6. Next up is a dialog that basically says "okay, we're just going to delete this now...".  Pressing A here causes the duel to be deleted.  So don't press A.
  7. Press HOME instead, and close the game.  Repeat the process from step 1 and the duel will still be there, because the game never had the chance to delete it.
See?  It's that simple.  Unfortunately, it's still faster in terms of points gained per minute to duplicate the bonus points instead, especially if you have a full queue of 8 StreetPasses, where you'll get 16000 points per duplication.  But it doesn't have to be as complicated as I initially made it out to be.

Sunday, December 27, 2015

XT Complains About Crossword Puzzles

My mom's been doing crossword puzzles for many years now, and as such occasionally enlists the help of my dad or myself when we might know more about something than she does.  Being naturally interested in puzzles myself, I often sit by while she does them, and to her lament I often complain about various things, which is the subject of this post.

First Complaint

Crosswords are stuck in the past.  Occasionally you see a clue that references something more modern, but it's usually something from The Simpsons, or music, or anything else from popular culture that's blandly mainstream.  Dr. Dre shows up fairly often, actually, usually clued as "Rapping doctor" or something similar.

You occasionally see individual clues that lead to putting in video gaming-related things like Mario or Sega, but they're never prominent, they never appear more than once per puzzle, and most certainly never appear as the theme when a puzzle has a theme.

The most obvious examples of crosswords being stuck in the past are clues that ask you about movies from the 1950s or musical artists whose entire fanbase is either dead or in assisted living these days.

Second Complaint

Crossword-ese.  These are words that, when you look up the clue on Google, all of the results are crossword websites.  You never see these words outside of crosswords, and you just have to know them.  Personally, I feel as though I've failed at solving the puzzle if I have to break out the almighty Google to get an answer.  Crosswords should be solvable just by looking at the clues and using any letters from crossing answers that you might already have.  Crossword-ese, on the other hand, leads to there being entire chunks of puzzles that you just can't get any letters in, which makes the puzzle less accessible.

Third Complaint

Circularly-referential clues.  You'll see this as something along the lines of these (hypothetical) clues: 10 Across: See 15 Down.  15 Down: With 10 Across, something obscure.  This does nothing to make the puzzle accessible to newcomers or seasoned solvers, as the only way to get either of those answers is to get enough of the answers to the clues that cross them that you can fill in the blanks.  There is the random possibility that the clue that actually hints at one of the two parts will actually pertain to something you're familiar with, but for that to work, you just have to know it, which kills a puzzle's accessibility.

Fourth Complaint

Factual inaccuracies.  These should technically be picked up by whoever edits the puzzle before it goes to print, but sometimes, issues like these escape even the best of the best.  To be fair, it happens, and we're all human beings who make errors and miss things.  It's just really annoying to have to deal with when you're working on the puzzle.  My mom was doing a puzzle recently that had a clue along the lines of "Chinese dynasty following the Han".  Well, I looked it up, and the next period of China's history is the Three Kingdoms era, with the kingdoms of Wei, Shu, and Wu, none of which were dynasties.  Yet, the answer was "Wei".  Ideally, this clue could have been rewritten (edited, if you will), to be similar to "One of the Chinese Three Kingdoms", phrased as such to steer people to the Three Kingdoms era of China where the answer is relevant and actually correct.

Fifth Complaint

Misspelling things just so a clue will work with a given answer.  Seasoned crossword veterans call the shorter answers that comprise the majority of a puzzle the "fill", and this is an indication of bad "fill" that should have been reworked.  Honestly, Crossword-ese is also an indication of this.

Sixth Complaint

Trivia clues.  These are things that you just wouldn't know unless you happen to be intimately familiar with whatever they're talking about.  All too often there's something like "City in the zip code 12345", where the only ways to get the answer are to get answers that cross it, or look it up.  Again, having to look something up means you've already lost, and makes the puzzle less accessible.

Seventh Complaint

Clues whose answers are multiple words, and that give no hint of this.  I'm not talking about the tacked on "(2 wds.)" cheat thing that some puzzles have.  If an answer is more than one word, it should either be obvious from the subject that the clue relates to, or it should be subtly hinted at in the clue.  This usually falls back into the category of "you just have to know", which, as previously stressed, makes the puzzle less accessible.

Eighth Complaint

SAT words.  These are similar to crossword-ese, however, they're actually found outside of crosswords in very rare circumstances, such as in old people's speech and on the verbal section of the SATs.  They're typically long or obscure words that have much more concise and modern synonyms, yet people stick to using the less modern and concise versions so they can feel smug when younger people have no clue what they're talking about.  These reduce a puzzle's accessibility, because when you encounter one, you have to fill it in from crossing answers, and then when the puzzle's done you just sit there scratching your head and saying "that's a word?".

Overall

I'd love to get into doing crossword puzzles, because I love solving puzzles.  However, somebody, somewhere needs to start making puzzles that are accessible to people under the age of 50.  More video game and 1980s/1990s references would be a start.  Themes based around those would be better.  Involving internet culture would just bring the cancer that is internet culture to the print media and alienate the 99% who have no clue how to use a computer other than to look at websites and check their email.  I've advocated for accessibility all throughout these complaints, so we don't want to reduce it even further in the process of catering to younger generations.

And just to address this before it comes up, the word "meme" is not just a fancy synonym of the word "joke", nor does it accurately refer to pictures with caption text in the font "Impact" edited in.  Those pictures are more accurately referred to as "image macros".  No one single person decides what is and isn't a "meme", memes happen organically as the result of things happening.  True "memes" are more similar to the pile of in-jokes you and your friends and family probably have.

Wednesday, December 16, 2015

3DS Demos: Adventure Bar Story

Since demos are a nice way of previewing a game to make sure you want to buy it before you actually go and buy it, I make a point of playing demos of games periodically.  It's a shame that the Nintendo eShop is so lacking in demos, because there are games that I think I'd be interested in, but need to experience some gameplay because I'm not going to blind buy.

This brings us to the demo of Adventure Bar Story.  It's a role-playing game with the new-style retro graphics where you can still see the pixels, but they're a lot smaller.  The music fits, it works, but it feels just kinda... there.  The controls are basic turn-based RPG controls, move around and talk to people, go into environments with hostile enemies, and fight them.  The battle system shows the order everyone will be attacking (D&D nerds would call this "initiative"), so you can prolong your characters' lives by getting rid of whatever's about to attack next.

The way you level up and get skills is a bit unconventional.  You have a score in each of the basic elements.  When one or more of those scores reach predetermined values, a new skill unlocks.  However, you don't level up from fights.  The items you get are materials for cooking.  Irritatingly, the game only ever refers to them as "mats", even in character dialogue, so I was thinking of actual mats for a while until I realized the idiocy.  Through cooking, you get food, that you can either sell at your bar/tavern/restaurant-type place to get money, or eat it to get experience and level up.

Selling the food at your bar is actually the main point of the game.  There's some rich asshole who runs an over-priced, under-good restaurant in town, and he's basically got the government in his pocket.  He wants you to leave your bar so he can have the property and move his restaurant there, because your location happens to be closer to the city entrance.  You decide that the only way to prevent that from happening is to make your bar a much better eatery-type-place than his restaurant.  However, when deciding your menu, you can't just set it and forget it.  You actually have to stock the items that are on the menu, and people will begin to get tired of a dish if it's on the menu for too long.  Also, the game divides the year up into seasons, and some dishes will be more popular in certain seasons.

So, yeah.  Getting things done involves a lot of item collection and a lot of time spent in the cooking interface.  You can and should talk to random NPCs on a regular basis, as they'll give you hints that can lead you to new recipes, or lead you to ingredients for recipes you haven't yet completed.  Make sure to inspect any and all bookshelves you find, as the books can give you recipes as well.  You can experiment around and find recipes on your own, you can use these hints and guess at the missing ingredient or the proper cooking method, or you can just go to the shop and buy recipes.  You can also buy the materials, should you be short on something.

The adventure comes in when you leave town.  You go to a location and run around it picking up materials, which are strewn about on the ground.  Occasionally you'll get pulled into a battle through random encounters that most JRPG players should be intimately familiar with at this point.  Fight, win, go on.  The game is divided up into days, and you can only visit another area once per day.  Occasionally you might find a secret passage leading to some goodies, but there's zero indication of where they are, so you just have to run around bumping into every single wall to discover them.

Some of the recipes you get actually make items for use in battle, which is a neat concept.  The different foods you can make will also give you stat boosts for that day, so it's important to make food as often as possible so you have it sitting around ready for consumption.  Each character has a satiety value, handily placed next to an icon of a stomach, and they can't eat if this value is too high.

There's humor in the dialogue on occasion.  In the town you start in, there's a guy right near the entrance who tells you the name of the town.  If you keep talking to him, eventually your character will point out that he always says the same thing, and humor follows.  Also, when inspecting a bookshelf, I found a book telling the story of the Three Little Pigs, and then I proceeded to receive recipes for Pork, Ham, and Bacon.  I lol'd.

I haven't finished the demo yet, so I don't know how long it is, but it seems to be one of the more content-rich demos available on the eShop, right up there with the demos for Bravely Default and Etrian Odyssey IV.  Some demos you download and play for about five minutes, and you find yourself at the end with the "buy the full game!" screen, but not this one.

Overall, it's definitely not a game for everyone, due to the cooking system and having to manage the menu and sell things periodically while still keeping enough around that you can level up so you can handle tougher enemies in combat.  A more conventional game would have the dishes you cook be available as consumables for temporary stat boosts, that you could probably easily ignore, and give you experience from battles.  This game tries something different though, and it actually makes gameplay interesting.  The solution to being too weak to continue fighting enemies?  Gorge yourself on food!  Give the demo a shot and see what you think.

Monday, December 7, 2015

Warrior's Way: Fighting my own specially-set up max army

So, a long time ago (in a galaxy far far away), I finished Warrior's Way and set my army with the 99,999 cavalry/99,999 archers/9,800,001 infantry split so that it could be easily defeated by much smaller armies.  But I'd never really tested it to see how it worked, nor did I know how many troops would be won when it was defeated.

Not until now.

Having purchased and system transferred to a New 3DS, which is old news by now, means that my Old 3DS got to go through all the games again.  When I got to ~150k troops, I tried fighting my max army, only to get screwed over by a field condition weakening infantry.  Either of the others and I would've been totally fine.  It's for this reason that I'm now going to recommend holding off until about ~220k troops, so that you can guarantee two wins, regardless of field conditions.

As far as spying goes, you'll need to spy at least once, usually twice.  If the specially-set up max army sends its giant group first, then spying a second time will be less necessary.  Later on, once you've got more troops, you can set up your army in such a way that you won't need to spy at all, and from then on it's just free troops (and a victory to add to your streak).

I've sidestepped it for long enough.  You know what I'm talking about.  It's the answer to the one question you still have.  How many troops do you get for defeating a max army?  After all, when you greet a max army peacefully and its monarch decides to give you troops, you only get a paltry 3000.  Well, it's a bit different if you can actually defeat the max army.  Quite a bit different.  Seriously, why am I still stalling for time?

502,849 troops!
Screenshot or it didn't happen.
I don't know if the number of troops received depends on the distribution, or what, but it's still a really nice number that allows you to grow an army pretty quickly.

So basically, every time my systems StreetPass each other now, my Old 3DS gets half a million more troops.  I'll take that.

Edit (20:45, same day): Replaced my textual approximation of how many troops you get with a picture showing the exact number.  Yay technology!

Monday, November 23, 2015

Getting started doing Let's Plays?

I originally intended to post this in a reddit thread on the subject, which is in reference to this article, but the longer a comment gets the less likely I am to post it on reddit.  So instead of it having the amazing visibility it would get if I had posted it on reddit, I am instead posting it here where it'll get zero visibility.  Go me.

I've been considering recording and uploading an LP or two to YouTube, just to test the waters, but there's so much that's necessary to do these days.  Regardless of your tone and style of commentary, you have to be ridiculously professional on the backend.  The copyright and content ID systems ensure that it's really just a matter of time until you get dinged for something and then suddenly, someone else is profiting off of your hard work.  Getting permission to put the content up, as the article I'm referring to (and linked above) sort of states, varies from publisher to publisher.  Nintendo is behind the times and will claim whatever you upload, most are okay with it, and the better publishers have a publicly available YouTube video policy.

Then there's equipment costs, both hardware and software.  I'm sure my headset (the Logitech G930) is good enough to get me off the ground, but I'd need to get a professional XLR microphone and audio interface if it actually takes off.  My computer is nowhere close to recent and would need to be essentially completely replaced with all-new hardware, monitors, and peripherals, which will run me a grand at the very least.  Then comes the inevitable face reveal and real life videos, so I'd need a decent 1080p video camera to record some face-time stuff, plus a decent webcam because people like facecams for some reason.

Software-wise, my understanding is you basically need all of the recording software options because some games just refuse to be recorded by certain ones, but not others.  Therefore, it's necessary to purchase Fraps and Dxtory as well as download OBS.  Then there's the video editing software, which is stupidly expensive because the companies producing it assume everyone is purchasing it for corporate-coffer-backed enterprise-level video production.  All of that, just to get in the door, and it makes me think twice even though I really want to do it.

Then, if/when I get established, there's travel costs.  LPers have set a precedent of being accessible to their fans at events.  I do attend one video gaming event yearly (MAGFest), but this would probably mean coping with the inanity that is trying to get a badge for any of the PAXes even though they sell out within minutes of going on sale.  Ain't nobody got time for that.  Organizing meetups is another thing, and while I'm familiar with event staffing from my 9 years staffing MAGFest, I know nothing about event organization.  Then there's the rather large brick wall of me being an introvert with social anxiety.  Large gatherings exhaust me, and being around a lot of people I don't know who won't leave because they're there because I'm there kind of terrifies me.  Working through the social anxiety will make me a more fit person, yes, but the introversion is still a blockade.  I can keep up a façade, but there will be hell to pay in the days afterwards.  I also know this from attending MAGFest, where I basically go full extrovert for four days, and then spend anywhere from a week to a month recovering.

I've considered just streaming, which is an option, but I don't really watch random Twitch streams.  I only ever watch streams from people I know of from elsewhere (friends in real life, Mindcrack, etc.), and I don't particularly enjoy having to devote 5+ hours of my day to watching a stream that rarely takes a break.  Is watching random Twitch streams a thing that people do?  Just randomly browse Twitch and stumble upon new-to-them streamers?  Can Twitch even be "browsed"?  Basically, it seems to make far more sense to me to build up an audience on YouTube and then transition to Twitch, even though I don't want to have an abandoned YouTube channel just sort of sitting there gathering dust and content ID claims.

Finally, there's finding my audience.  As I've stated, I'm an introvert with social anxiety.  Self-promotion basically isn't my thing.  While there's still a lot of demand for Minecraft videos, the market for those is incredibly oversaturated and you'd need an absolutely amazing never-before-seen twist to make your LP stand out from the rest.  I enjoy myself some JRPGs and racing games, but nearly all of the titles I enjoy in those genres are on console, so go back up to the hardware costs and add in a capture card and any necessary adapters for older composite-only consoles.  I also enjoy games on older consoles a bit more than games on newer consoles, simply because the hardware restrictions meant developers had to be more creative to make their games look, feel, sound, and play the way they wanted them to.  I would want the channel to have a focus on older games, which is fine, and in the genres I'm comfortable with, which is also fine.  However, once I start uploading videos, naturally, I'm going to need to strike a balance between games I personally want to play, and games my audience would like to see me play.  I suppose that would just happen naturally, but I still feel like I'd desire a level of control over it that isn't actually feasible.

So basically, doing Let's Plays is a bigger undertaking than you might have expected.  It's not just a simple "get recording software and a microphone, record game with commentary, upload to YouTube".  The higher quality your production is, the larger of an audience you'll get, and it'll be easier to keep that audience, because that's the precedent that's been set.  You can't just pull a Cinemassacre and say "lol it's just web video does HD/widescreen even matter".  The quality of your production indicates how much you care about your production, and nobody wants to watch videos on a channel where someone's just pooping out videos left and right with no thought process involved.

Saturday, November 14, 2015

Mario Kart 7

I'm a bit late to this party, as I am to any 3DS-related party really, but regardless...  I just got Mario Kart 7, and here's my thoughts.

Well, in a moment.  There's background, and I'm a crotchety old man that wants to tell stories when he's not busy yelling at kids to get off his lawn or whatever.  The first Mario Kart game I owned, and the only one I owned up until this point, was Mario Kart Double Dash!!.  I've played Super Mario Kart, Mario Kart 64, Mario Kart Super Circuit, and Mario Kart Wii either through friends or through emulators.  I feel like I generally know what I'm doing when I'm playing Mario Kart.

So, right away, when I fired up Mario Kart 7, I was greeted with what any other game in the series has: a simple menu that's straight to the point.  It basically asks you "ya wanna play singleplayer, with a few people nearby, or on the internet?"  Notably absent is an options menu.  The StreetPass/SpotPass portion of the game has a few options, but I was really hoping for the controls to be at least slightly configurable.

As far as a Mario Kart game is concerned, Mario Kart 7 earns its place in the series quite easily.  In fact, other racing game series could maybe learn a thing or two.  In Mario Kart 7, there are 32 tracks, split into 16 new tracks and 16 tracks taken from older Mario Kart games and given a facelift and a new bit here and there.  The range of powerups includes the majority of the staple powerups as well as a few new ones, and while the initially available cast is rather limited, you can expand it as you play the game and unlock more characters.  Unlike previous games in the series, the character you pick doesn't seem to be tied to your kart's stats.  Rather, you have options for setting up your kart that determine your kart's stats, and your choice of character is more or less cosmetic.

As sad as I was that the controls weren't configurable, I don't really remember a Mario Kart game ever having configurable controls.  It doesn't really matter, I just wanted to be able to swap accelerate and brake so it'd be the same as in Ridge Racer 3D and I wouldn't have to remember a different "go faster" button.  Overall, the controls seem to work well.  Coming from Double Dash!!, though, which didn't use the "hop" mechanic of starting drifts, I noticed that this game has the "hop" mechanic and immediately tried to do Super Mario Kart-style hop-cornering, which just doesn't work here.  It's got a weird merger between Double Dash!!'s drifting and Super Mario Kart's hop-cornering, where you hop once to start drifting, and then rather than having to push left and right a few times to go yellow-red-blue sparks and let go for miniturbo, you just hold the button and it does the sparks on its own after a little while, going from blue to red, and then let go for your miniturbo.  It feels dumbed down, to be honest.

Another thing that feels uncomfortably different: getting the boost at the beginning of a race.  Normally you just punch the accelerator exactly when the word "Go!" appears and you've got your boost, but here the timing is weirdly placed around the point that the "2" is about to disappear.  It just doesn't make sense, and it kind of feels like they changed it just to mess with gamers who were used to what the series had established up until this point.

Progression through the cups is as you could expect.  Beat the first cup, the second unlocks, and so forth.  However, there's two separate series of four cups in each difficulty, one for the new tracks and one for the classic tracks.  You can make progress through either of them, as they're independent of one another, but the credits don't roll until you've beaten all eight on a given difficulty.

This game also has the "collect coins to spin out less when you get hit by something" mechanic, which to be honest, I've never really enjoyed.  In Super Mario Kart, I didn't really enjoy it because so very few of the coins were close enough to the racing line to be feasible to pick up during a race, and their hitboxes were incredibly finnicky.  Mario Kart Super Circuit basically is Super Mario Kart, more or less, and suffers from the same issues.  However, here, the coins seem to be either on the racing line or close enough that it doesn't matter, and have a wider range from which they can be collected, which makes the whole thing better.

What's kind of weird is the way you unlock almost everything.  It's not accomplishment-based, essentially.  You don't unlock kart parts after beating one or another cup.  Rather, they're milestone rewards based on the cumulative number of coins you pick up during races.  And by "pick up during races", I really mean "finish a race with".  Also, your coins cap out at 10, meaning with each cup being four races long, you can get a maximum of 40 coins per cup, and some things take several THOUSAND coins to unlock.  Seriously, Nintendo?  At least it's cumulative, so you just keep playing the game and eventually you'll get everything, but there's no in-game checklist that might tell you the amount of coins you need, so you get to look that information up on GameFAQs or something.

Now, the online multiplayer.  I tried out a few races, and it works pretty well.  The game doesn't muck about with having to join a lobby and start racing from there, you can't get kicked from the group, and nobody can send messages to anyone else.  You just hop in and go racing.  When you've had enough, go ahead and exit at the end of a race.  It's that simple to play online with random people.  Of course, for more organized play, there are "communities", and you can set up a community.  Each community can have different gameplay rules, such as restricting powerups to one specific type or whatever.  You can also join a friend to play online.

There's also local multiplayer, complete with download play.  Being that I have two 3DSes, I tried it out, and it works about as well as you might expect it to.  Hopefully I can get a few friends to start up Download Play next time we hang out for a while.

The game's StreetPass component confuses me, because my 3DS says I've got a Mario Kart 7 streetpass, but when I go into the Mario Kart Channel and select StreetPass List, it just directs me to the Friends/Opponents list.  That's in the online multiplayer menu, and it gets me nowhere.  Despite my 3DSes having StreetPassed each other twice since I got the game, I've gotten nothing out of it, and my profile in the Mario Kart Channel still says I've got zero StreetPass tags.  I've done time attack on both of my systems, how can I race against each system's ghost?  I'm thinking the game just fails at the whole "2 systems 1 cartridge" thing.

Overall, if you're a fan of Mario Kart and have a 3DS, it's a good game that you'll get a lot of enjoyment out of.  If you're new to the franchise, there's a bit of a learning curve since you'll need to figure out the powerups and all 32 tracks, but the game's pretty accessible so that shouldn't be too much of an issue.  Definitely worth picking up if you want some portable powerup racing action.

Sunday, November 8, 2015

Surprise! You're going to Nekocon!

So, around 11 PM on Thursday evening, I was informed that I was going to Nekocon the following day.  Just got back about a half hour before I started writing this (5:30 PM).  This won't really be my usual style of day-by-day con report.

I stopped liking anime conventions a while back.  In that regard, I think MAGFest has spoiled me.  The atmosphere at your average anime convention doesn't really do anything to encourage people to socialize outside of their groups, whereas MAGFest's atmosphere promotes it.  Cosplay picture-taking doesn't really count towards foreign social interaction.  I've been to a few panels at anime conventions and I've never really found any I actually liked.  This means the vast majority of my time at an anime convention is spent doing one of three things:
  1. Playing games in the game room
  2. Browsing the dealers' room
  3. Walking around the con floor
Game rooms at anime conventions are always lackluster.  They just drop about ten or twenty consoles in there with some games, and maybe have some arcade games or something.  The game selection is terrible and doesn't really change much, if at all, throughout the weekend.  Dealers' rooms are pretty much about the same wherever you go, it's just stuff to buy and you look around and see if anything strikes your fancy.  Not too much to say there.  Same goes for walking around the con floor to be honest, it's just a crowd of people, some of whom are in costume.

There are only two real things of note. The first is that it rained for a while on Saturday, which resulted in me having to spend a few hours in the hotel room drying off clothing while drinking Jack and Coke and trying to use the shitty hotel internet to watch YouTube videos.  The second is that, while perusing the dealers' room on Sunday, as one does for the best deals since the dealers don't want to take all that crap back with them, I found a Super Famicom cartridge of Chrono Trigger for $30.  I was worried when I saw that the price tag had been stuck on the cartridge label, but thankfully it came off cleanly and I moved it to the plastic (where it doesn't actually stick that well).  Because pics or it didn't happen, here's a potato-quality picture from my phone.


I'm not even kidding, when I saw that I was skeptical that $30 could possibly be the real price, so much so that I asked the guy at the booth just to make sure.  A quick look reveals that the $29.99 price tag is actually stuck on top of another price tag, this other price tag said $39.99.  So it would've been rather inexpensive anyway.  After eating dinner, I set out to remove the plastic tabs from my SNES so I could actually play the game, and a victory was had.


I wonder how long that save battery's good for...


Also, anyone who pronounces Marle's name as "mar-lee" is WRONG.  Her name is マール, which romanizes to Māru, meaning the correct pronunciation is "marl".  End of discussion.

Saturday, October 31, 2015

This has always annoyed me

I can't speak for Windows 8 or 10, the more cancerous releases of Windows, but this definitely applies to all versions of Windows that support USB up to and including Windows 7.

When you get a new USB device and plug it in, get it installed, and use it for a while, it feels like everything's perfect.  But then, one day, you move your computer and have to unplug and re-plug everything.  Suddenly, it's installing all your USB devices again.  What the...

Yeah.  Windows installs USB devices per USB port, which makes no fucking sense.  So basically, every time you get a new USB device, to eliminate headache later, you have to unplug absofuckinglutely everything, and then plug the new device into every USB port, one by one.  With some devices, you'll also need to reconfigure them per port, which is even more retarded.

Why is it that whatever identifier Windows keeps for the USB device itself includes an identifier for the port it's plugged into?  It would be so much more intuitive if it didn't...

Thursday, October 22, 2015

Ridge Racer 3D StreetPass Duel Duplication

Edit (2015-12-29): It doesn't have to be this complex.  There's a far simpler method, which I've detailed in a new post.

As mentioned in my previous post, I have discovered a method to duplicate StreetPass duels in Ridge Racer 3D.  In order to do it, you may need an SD card reader, depending on which model of 3DS you have.  It requires a kind of lengthy setup, and as suggested by the previous sentence, involves messing around with data on your SD card, so it's probably not for everyone.

DISCLAIMER: Since these directions involve messing with the extra data on your 3DS' SD card, take extra special care to make sure you're not accidentally doing something silly like deleting data for another game or anything like that.  When followed verbatim, these directions work without adverse side effects.  I'm not responsible for anything that may happen if you don't follow these directions properly.
  1. After getting a Ridge Racer 3D StreetPass, fire up Ridge Racer 3D.
  2. Go to Single Player → StreetPass Duel, just like usual.
  3. Accept your 2000 points per StreetPass.  If a duel is saved to extra data here (there will be a progress bar between the two "Saving..." dialogs), you can proceed past this step.
  4. Once the duel is saved to extra data and you're sitting there looking at the list of duels, press HOME and exit the game.
  5. (Old 3DS) Turn off your 3DS, remove the SD card, and insert into your SD card reader (which is hopefully attached to your computer).
    (New 3DS) Go to System Settings → Data Management → microSD Management, and get it connected to the network (i.e. if you haven't already set it up, do so now).
  6. Browse to one of the following paths, depending on your console's region: (for the New 3DS, go into the microSD directory first)
    NA: Nintendo 3DS\<console-specific hash>\<console-specific hash>\extdata\00000000\00000358\00000000
    EU: Nintendo 3DS\<console-specific hash>\<console-specific hash>\extdata\00000000\0000033B\00000000
    JP: Nintendo 3DS\<console-specific hash>\<console-specific hash>\extdata\00000000\00000328\00000000
  7. Copy the files there to a new directory in the root of the SD card.  See the part of the paths in the previous step that's different per region?  I personally recommend putting that number in the name of the directory you're creating.
  8. (Old 3DS) Remove the SD card from your SD card reader, put it back in your 3DS, and turn the system back on.
    (New 3DS) Completely exit System Settings.
  9. Fire up Ridge Racer 3D again.
  10. Beat the duel.  The game will then delete it from extra data, unless of course you hit a duel win milestone and get extra bonus points, in which case, beat the duel again so that the game will delete it from the extra data.
To restore the duel, just copy the data you backed up back to the place where you originally found it, making sure to overwrite when prompted.  The next time you start the game and go into StreetPass Duel, the duel will be there and you can get its points again.  If you're wondering, the numbers that differ per region in the path to the game's extra data are a part of the game's Title ID, which I found here.

Wednesday, October 21, 2015

Ridge Racer 3D StreetPass Bonus Points Duplication

You know those 2000 points you get per Ridge Racer 3D StreetPass, regardless of whether the StreetPass actually contains a duel for you to race against?  Well, you can get that reward multiple times with the same set of StreetPasses.  Here's how.
  1. After getting some Ridge Racer 3D StreetPasses, start up the game.
  2. Go to Single Player and select StreetPass Duel, collect your rewards points.
  3. Once the duel menu loads, press the power button and turn off your 3DS.  It's important that you don't go into any other menu before doing this.  Don't even select a duel to race against.
  4. Turn your 3DS back on and start the game again.
  5. Go into StreetPass Duel, and you'll get the rewards points again.
  6. Lather, rinse, repeat from step 3.
If you'd like to check your points while doing this, then you need to have something unpurchased in the garage.  Immediately upon starting up the game, go to the garage and select anything that you haven't purchased, and you'll see how many points you have.  Once you go into StreetPass Duel and get the points, don't press anything other than the power button.

How did I discover this?  Well, I actually discovered it while attempting to duplicate the duel data itself, which was also a success.  That process is a bit more involved and requires copying data around on your SD card, so I figured I'd get the simpler, more quickly repeatable one up here first.  Stay tuned for duel duplication, though!

Edit (2015-10-26): After doing some homepassing and duplication of the full complement of 16000 points, I think I have a good understanding of what's going on here.  Basically, when the game checks your StreetPasses, and gives you the bonus points, it hasn't yet removed those StreetPasses from its queue, but it leaves you at a point where it's safe to power off your 3DS.  You can verify this by going to Notifications after power-cycling your 3DS.  You'll see that your Ridge Racer 3D StreetPasses are still there.

Double Edit (2015-10-26): It looks like this is a bug in the game that's specific to the StreetPass Duel menu.  I just tried to use the Grand Prix menu to do the duplication, since it will check the StreetPasses, and also tells you how many points you have, both before and after the StreetPass bonus points get applied.  However, the StreetPasses are gone from Notifications after using the Grand Prix menu to get the points, so it won't work there.

Sunday, October 18, 2015

SmileBASIC Tutorial: The Touchscreen

This tutorial, as well as any and all of my future tutorials, assume that you understand basic programming concepts such as variables, keywords, control structures, branching, etc.  If you don't understand these things, there's actually a primer in the digital manual for SmileBASIC.  Just select it on your 3DS' home menu and tap the Manual button.  I'm mainly going to focus on accomplishing specific tasks, which will be supplemented with simple programs.  The task of putting all of this knowledge together and making a game out of it will be left as an exercise for the reader.

SmileBASIC also has a complete reference to all of its built-in keywords and functions.  Just start typing something.  See the keywords and so forth that appear in the green boxes at the top of the touchscreen?  Tap one of them, then tap the question mark on the right.  Instant reference for anything in the language, and it's super helpful.

That said, let's begin.

The touchscreen is pretty simple to read from in SmileBASIC.  Consider this line of code.


TOUCH is the meat and potatoes of this instruction.  There's actually another parameter that can go between TOUCH and OUT that specifies the "Terminal ID", this is for writing programs that make use of the 3DS' wifi card.  Wireless connectivity is outside the scope of this tutorial, so let's move on.  OUT directs the output to the three variables provided.  The first one, TIME, is the amount of time that the touchscreen has been touched.  If this is zero, the user is not touching the touchscreen.  X and Y are the coordinates of the touch.  The origin (0, 0) is the top left corner of the screen.  However, SmileBASIC won't return a touch in the outermost five pixels of the touchscreen on each side, so the range you have to work with is 5..314 for X, and 5..234 for Y.

To actually get started, you'll need to set the screen mode using the XSCREEN instruction.  SmileBASIC defaults to XSCREEN 0, which allows the top screen to use stereoscopic 3D effects, but doesn't use the bottom screen.  The bottom screen will continue to be the on-screen keyboard.  XSCREEN 1 disables stereoscopic 3D on the top screen, but also doesn't use the touchscreen.  To actually use the touchscreen, you'll want XSCREEN 2, XSCREEN 3, or XSCREEN 4XSCREEN 4 is a bit weird for tutorial purposes, and you probably won't want to mess around with the stereoscopic 3D just as you're learning to work with the touchscreen, so the one you'll want is XSCREEN 3XSCREEN has other arguments, that deal with sprites and background images, but they're optional, so let's keep it simple and not pass values to them for now.

However, before that, you don't really know with 100% certainty what state the screens are in.  You could have been messing around in DIRECT mode just running instructions, or a previous program could have left stuff there.  You'll want to return to a nice known state, and this is made very easy with the ACLS instruction.  Inspect the help on it to see exactly what it does, because it does a lot of stuff.  The important thing to know is that after the ACLS instruction, the displays and graphics pages will always be in a known state, so it can only help to begin your program with it.  Since it explicitly sets some things that you may want to override for the purposes of your own program, make sure it's the first line of code and all your changes happen after it.

Like any other form of reading input, you'll want to read from the touchscreen in a loop.  It's fair to assume that you'll also be reading button input in this loop, as you get on to bigger and better projects.  Consider this sample code.


That code should give you an idea of what your game loop might look like in its most basic form.  We read button input so that our loop can check to see if the Y button is among those being pressed, and if it is, the loop will exit.

Now, let's actually output some stuff, so you can see what you're reading from the touchscreen.  This is a rather simple application of LOCATE, the FORMAT$() function, the PRINT statement, and the VSYNC instruction.  Behold, our modified sample code.


The VSYNC instruction is important, because it waits for the rest of the screen to be drawn before letting execution continue.  The argument, in this case, 1, speciifies the number of frames to wait.  Since we want to grab input on every frame, we specify 1.  Specifying 1 is actually optional, but I like to do it.  It's handy at times to update the screen multiple times per frame, perhaps to draw several things at once, but in this case all we're doing is outputting text, so it's pointless to output more than once per frame.

From there, the sky's your limit.  I turned it into a program that allowed drawing on the touchscreen, using the d-pad to change sliders for the RGB value of the color, so that drawing in different colors could happen.  If you'd like to check it out, the public key is B5EXV23E.

Tuesday, October 13, 2015

Tips...

I see so many people stating, suggesting, or implying that tipping is required in places that have tipped employees (i.e. restaurants).

Federal law, however, says otherwise (italics added by me).
If the employee’s tips combined with the employer’s direct wages of at least $2.13 per hour do not equal the federal minimum hourly wage, the employer must make up the difference.
Link for reference: http://www.dol.gov/dol/topic/wages/wagestips.htm

So I don't want to hear about it anymore.  A tip always has been and always will continue to be a reward for exemplary service.  It will never be an unwritten 20% tax.  Doing your job correctly earns you your wage.  Going above and beyond earns you a tip.  If you don't think restaurants pay their waitstaff enough, you can always try to get the minimum wage raised.  That would be the correct thing to do.  Trying to shame people for not adding 20% to their restaurant bill is the incorrect thing to do.

Now, usually I get service worthy of a tip because I'm typically in a large group that comes in close to the restaurant's closing time and they have to deal with us when they'd rather wind down and leave, so this is a non-issue.  At the same time, I have a problem with paying people extra for doing the job that they're already being paid a set, agreed-upon rate to do in the first place.  I feel like it makes sense, after all, for the exact same service at the exact same level of quality, would you rather pay more or less?

Thursday, October 8, 2015

So I Tried the Monster Hunter 4 Ultimate Demo...

I tried it because I wanted to try a game on my New 3DS that uses the C-Stick.  Now, I know, it's a smash-stick in Smash Bros, but it's awkward to use at best.  With that in mind, I downloaded the demo to Monster Hunter 4 Ultimate, which also uses the C-Stick.

The C-Stick works quite well to control the camera, once you investigate the options and invert the Y axis.  The only problem is, other than its equivalent on the touchscreen, it's the ONLY way to control the camera other than pressing L to center it behind your character.  I mean, the D-Pad also controls the camera, but that's stupid because it's on the same side of the console as the movement controls.  The camera also doesn't follow you properly, like in any other third-person game.

So most of my experience was spent trying to get the camera to point in the correct direction.  At the very beginning, the demo does an information dump and expects you to remember all of it.  It also says "oh hey if you forget any of this you can always look at it again later in the menu".  So, I hit Start when I wanted to remember something, and THE GAME DOESN'T EVEN PAUSE WHEN YOU BRING UP THE MENU.  You have to select the "Pause" option in the menu to actually pause the damn game.  What kind of horse shit is that?  Also, it's one of those games that uses Select to do the exact same thing as Start.  Good job, guys.

So I'm on the lowest difficulty with all the things turned on to tell me where to go because I've never played anything in this series before, and I'm supposed to be hunting down some dinosaur-like thing, which apparently has a 25 minute time limit or I fail.  Time limits are hardly ever a good thing.  After beating on the dinosaur thing for a while it runs away and I have to run after it.  Except that most of the fight is spent going "okay aim at the damn thing" "okay it knocked me over" "where did it go" "oh there it is" "why is my bow's aiming mode ever off" "why do the aiming controls suck" "oh great it just ran away again".

As far as I'm concerned, Monster Hunter 4 Ultimate is one of those games where its difficulty is based around its broken controls.  It takes what otherwise looks like it might be a fun game and makes it shit.

The controls can be adjusted, somewhat, in the options.  There's a button for "target the stupid thing I'm trying to fucking kill", but all it does is make pressing L to rotate the camera put a targeting reticle on the screen briefly.  Your character doesn't rotate to match where the enemy is, not even with a bow where you'd actually WANT that.

After I fail the mission, because there's no hit confirmation or health bar for the enemy, so I don't know how much progress I'm actually making, and just figuring out how to maneuver myself around the environment is cryptic at times so I end up having to run across multiple areas to find the damn thing again and then surprise I'm out of time, it asks some questions.  One is reasonable, because it's the demo and it's asking me if I want to exit the game and start the eShop.  HAHAHAHAHAHAHANO.  I'll leave your shit controls that can only be made moderately better through the options where they are, to fester and rot in the darkest corners of the eShop.  The second question is absurd.  I just failed the mission on Beginner, the lowest difficulty level, and it's asking me if I want to change difficulty levels.  Unless there's one called "Sane", where the game's controls suddenly don't suck and the camera follows suit, I'm going to have to say no to that as well.

The only credit that I'll give is to the demo for not having a restricted number of uses like all other demos that I can find.  Some demos have as few as 5 uses, and you're somehow supposed to have enough gameplay time to decide if the full game is worth your money with those.  Because, you know, you're going to have to exit the demo eventually, to handle StreetPasses or play other games.  Yeah, other games.  It's a game console with more than one game, you know?  I'd like to be able to go back into a demo whenever I please to try something different.  Besides, the limiting factor on a demo should be the amount of content, not the amount of playing the game the player can do before being locked out of it for the rest of eternity.

Maybe that's what I'll do here.  Maybe, through a fluke, or some stroke of luck, I'll find a combination of the options that makes the game's controls and camera not suck.  I don't have high hopes for that, to be honest.  Also, if you're trying to play this on an Old 3DS and you don't have a Circle Pad Pro, it's got to be even worse control-wise.

Monday, September 28, 2015

Bravely Default: Stat Modifiers

Stat modifiers seem fairly straightforward.  After all, it's just telling you "this stat is this much better".  However, there's a nuance to some of them that I'm going to take way too long to explain.  Consider this screenshot of the effects Tiz had when I sent Rapid Fire recently.

frosted butts

At first glance, Critical 1000% might seem a bit excessive.  After all, a 1000% critical hit rate is way more than necessary to guarantee a critical hit.  But think again, because that's not how it works.

The special move I used to get Critical 1000% on Tiz was the second Katana special, Breaking Wave.  It raises your party's critical hit rate by 900%.  That may sound confusing and just as excessive, so now I'll actually explain what's going on.

Your characters' critical hit rate is determined by their stats, job level, and so forth.  It's a percentage, as you might expect.  Breaking Wave and the other special moves and abilities that raise critical hit rate don't raise it directly, rather, they raise a multiplier that starts out at 100% and gets applied to the character's critical hit chance before the game determines whether or not you're going to get a critical hit.  In this base state, your effective critical hit rate is 100% of your base critical hit rate.  So if your base critical hit rate is 10%, then 100% of that is still 10%.  Using Breaking Wave to raise your critical hit rate by 900% is adding 900 percentage points to this percentage multiplier, making it 1000 (as pictured).  So, 1000% of 10% would be 100%, and a critical hit would be guaranteed in this scenario.  Your characters' actual critical hit rate may very well be higher or lower than 10%, but when using Breaking Wave, a base critical hit rate of 10% is the absolute minimum you need in order for Breaking Wave to guarantee you critical hits until the effect wears off.

It helps to remember that any time you see a percent sign next to a number, divide that number by 100.  100% is 1.00, 10% is 0.10.  So, multiplying a 10% critical hit rate by 100% means multiplying 0.10 by 1.00, which if you know your basic math, then you remember that multiplying anything by 1 doesn't actually change the value.  Multiplying that same 10% critical hit rate by 1000% is the same as multiplying 0.10 by 10.00, which results in 1.00, meaning the effective critical hit rate would be 100%.

Being that I've now explained it twice using different terms each time, hopefully you now understand what's going on.  In the end, I had the Critical 1000% effect for the rather obvious reason that it would enable Tiz to get a critical hit, and thus Rapid Fire would deal more damage.

Saturday, September 26, 2015

3DS Special Mii Abuse

Periodically, Nintendo sends out a Special Mii via SpotPass.  In the StreetPass Plaza games, these Miis give you special benefits.  So naturally, you want to see them more often than you actually do.  There's a way you can hack your own personal Mii to give it gold pants and have it show up for other people as a Special Mii, but... that only benefits them, not you.

Fortunately, there's a way that you can keep getting the same Special Mii over and over again.  These directions only ever seem to be posted on forums like the GameFAQs forums, where they'll get inevitably buried in the sands of time, so hopefully by reposting them here, I can save them from getting lost in that manner.

As long as you follow these steps verbatim, it will work.  I don't know if the process can be simplified or not, but I've done it this way on two different systems and it's worked for both.  These directions only work while Nintendo is still distributing the Special Mii, which generally happens for 24 hours.  As time ticks on, you do run the risk of losing the Special Mii forever, if that's something you care about.

So, how to do it:
  1. Go to System Settings → Data Management → StreetPass Management.
  2. Select StreetPass Mii Plaza's icon, hit Deactivate StreetPass, and hit OK.
  3. Exit out of System Settings.
  4. Go into StreetPass Mii Plaza.  It will ask you if you want to enable StreetPass, say No.
  5. Select the Special Mii and delete it.
  6. Restart StreetPass Mii Plaza.
  7. Go into the Settings (it should start up with the Settings icon selected), and re-enable StreetPass.
  8. Once you confirm that, it shouldn't take very long for you to get the blue SpotPass notification light again.  Make sure you have an internet connection available!
  9. Restart StreetPass Mii Plaza to be able to greet the Special Mii once more.
This is megas useful nyoro~n for Ultimate Angler if you've got all the islands cleared, as in that game, Special Miis will give you a sighting for a mysterious fish that you haven't caught before.  Since all the special Miis that Nintendo sends out have their region set as "Nintendo", you'll also get a gold permit, which is otherwise rare and costs an arm and a leg if you want to buy one with play coins.

Edit (2015-10-30): It's important to note that when doing this, you'll most likely get a few other SpotPasses, which should mention a new panel in Puzzle Swap and the Plaza 4.0/4.1 update.  You can and should disregard these.  Also, apparently this can be done entirely from within StreetPass Mii Plaza, so long as you delete the Special Mii with StreetPass and SpotPass disabled, and then restart the Plaza and re-enable both StreetPass and SpotPass.  Hitting HOME a few times should make the "Someone's here!" message show up and from there it's business as usual.

Tuesday, September 22, 2015

I Don't Get "Being Social"

So, I have friends and hang out with them a couple times a week.  That's really all the "social" I need, and I spend the rest of the week "recharging my batteries", as it were.

In the meantime, my mom sees me being quiet and not talking a lot and goes "are you okay?".  I typically respond by saying yes and asking her what she thought was wrong, and the response is always something along the lines of "I don't know, you just weren't talking very much.".  In day to day speech she'll be saying things to me that I don't feel really need a response, and unless I respond with one of "okay", "yeah", "uh-huh", "all right", etc., she acts like I'm not listening.

Then, on the flip-side, if I ever do start talking and participating in the conversation while we're out at dinner, making jokes and generally going with the flow of things, suddenly it's too much and my dad complains about not being able to get a word in edge-wise.  Despite the periods of silence where both myself and my mom are eating.

Make up your mind, would you?  Am I talking too much, or not enough?  I don't know.  I honestly don't know.  But if I bring up this mixed message, somehow it's my fault for not knowing, or my mom just goes silent because I'm "being argumentative".

I don't feel like speaking without really having anything to say adds anything to a conversation.  So generally I sit there and be quiet.  But apparently that's not okay.  I prefer isolation, meaningful communications, and meaningful social interaction.  I honestly don't believe I should talk just to fill the dead air.

This also manifests itself whenever my parents have a party.  If I retreat back to my room after hanging out with the guests for a while and having some food, I get accused of not being "sociable".  Well, consider that pretty much everyone my parents invite over has nothing in common with me, and the available conversation gets exhausted during the "hang out and have food" segment of the party.  After that, there's nothing left, and my presence adds nothing.  Sometimes I "solve" this by helping out with the party itself, cleaning up, assisting with the food, etc., and that's generally welcomed because it's helpful.

At the same time, I don't feel as though I should be shamed for not wanting to participate in social interaction.

Wednesday, September 16, 2015

Tangential Rant Time

So, in the latest episode of Far Lands or Bust!, Kurt talks about real estate and owning vs. renting.  One thing I know from having rented in the past that he didn't mention was that when you rent a place, certain things get subsidized into that rent.  The water bill is a common example.  For apartment complexes, things like yardwork and maintenance are also included in the rent, because the apartment complex has a list of companies they've contracted for various things like that.

tan( rant ) =

So my experience renting a place was both good and bad.  I liked not having to deal with my parents on a day to day basis, even though I did see them twice per week anyway.  I liked having certain bits of maintenance essentially be "schedule a work date with the apartment complex".  They covered all kinds of things, including regular replacement of the air filter in the HVAC unit.

But you're not here to see me rant about things I like, are you?  No, you're not.  You want to see me complain and rage about things.  Well, here you go.  Also, language, because I don't discriminate against words.

I guess it was just a delusion of grandeur.  I thought that living in an apartment with two other guys that I was already friends with would be great.  And in case either of them ever read this, I mean no slight against you.  However, when one lives with other people for an extended period of time, there are certain assumptions one has, namely doing stuff with the people you live with.  All three of us are gamers, but guess how many games I played with them?  Zero.  Both of them worked at a movie theater, so guess how many movies I ended up going to see?  One, which was Pacific Rim.  There were maybe one or two spontaneous "hey, let's go grab some food" moments.  I guess what I really expected was a bit more spontaneity than I got.  Then again...

There were always guests over.  They were friends and never objectionable people.  While I'm not opposed to the idea of having guests, and certainly not every guest needs to be scheduled in advance, it got a bit overwhelming at times.  This was mainly because the guest bed was a fold-out couch that happened to be right next to my computer.  Whenever someone stayed over for a couple days, I basically lost all my personal space.  I know, I had a bedroom.  It was full of boxes from the day we moved in to the day we moved out.  We planned on setting up the network situation so people's computers could be in their bedrooms, but that never happened.  Thus, 95% of the time I spent in the apartment was right there in the living room, and everything else that happened in the apartment happened all around me.

It also seemed like even when having guests over was a scheduled thing, I got told at the last moment and was typically the last person to find out.  This held true for a birthday party for one of my roommates.  I found out about it from a friend who'd been invited.  Apparently all the planning had taken place on Facebook, and given that I don't really use Facebook, I was out of the loop.  Asking the other roommate later, he said "well, I felt like I could just tell you anytime, and I guess I kinda forgot.".  Okay, that's fine.  But seriously, do try not to forget to tell me about a party when it involves cramming at least fifteen guests into our small apartment and some degree of help setting up.  Really, I do event staffing on a yearly basis, I think I got this.  Just tell me when it's happening and what I need to do.

Also, the specific location of the apartment complex let itself quite well to tenants that I really didn't want to be around.  The complex was mostly targeted at college students.  Students whose mommies and daddies often pay for things like rent and bills.  Students who therefore have very little attachment to the area, their neighbors, or even the buildings themselves.  We never once heard a peep from our downstairs neighbors, but our upstairs neighbors were an entirely different story.  I still to this day don't understand what was happening up there.

I have this mental image of the layout of their apartment, based on all the thumping and things being knocked over on a regular basis, but it has no basis in reality because I never once interacted with them, let alone entered their apartment.  On any given day it sounded like there were anywhere between four and seven people, all male, in that apartment.  Given the noises they were making, all three of us deduced that they very much enjoyed incredibly rowdy gay sex.  We could also hear their conversations with each other on most occasions, because they were the type that only had one volume level, which was shouting.  They called each other "bro" on a regular basis, and also blasted (and occasionally sang along to) Miley Cyrus on a regular basis.  They would litter the concrete patio area out front of our apartments with empty beer cans on a regular basis, and not clean it up, despite there being a single-stream waste disposal dumpster a short walk away.  Plus, one of them was always taking my parking space. *grumble*

The apartment complex itself definitely had its shortcomings.  Our illustrious hardwood floor sagged and squeaked in a number of places.  We had to get all the outlets replaced because the things we were plugging into them would not stay plugged in.  The kitchen was a closet with a horrible excuse for a vent fan in the wall next to the gas stove that always ran ~50 degrees too hot and burned several pizzas that didn't deserve it.  There wasn't even an in-unit washer and dryer.  They had maybe two laundry rooms for the entire complex and they each had three coin-op washers and dryers in them.  The coin receptacles on these things would regularly get jammed and eat your money.  This was one of the two reasons why I still saw my parents at any point during the week, because at least at their place I could do my laundry.

Also, I'm convinced that they had fewer parking spaces in the complex than tenants, judging on how hard it was to find a parking space sometimes.  Plus, it seemed like the apartment manager wanted access to our apartment for something at least once a week, whether it was painting the railings on the balconies, or putting a sticker on everyone's broiler door (gas stoves are weird) that said "LOL DONT STORE THINGS IN HERE BECAUSE IT GETS HOT".  Yet, when we reported that all three of our bedrooms had broken windows, when filling out the move-in inspection thing where they already know everything that's wrong with the place and just want to see how much of it you can find so they know how much they can ding you for later when you move out, they just went "meh, you can live with it.".  So for the entire duration of our living there, we had towels underneath the cracks in the windows, because every time it rained, water would come in.

I don't really have a good way to wrap this up, so you'll just have to deal with the sudden ending.

Tuesday, September 15, 2015

On the Subject of Ordering Pizza and Little Caesar's

So, unless you've been living in a hole, you probably know that the most recent ad campaign by Little Caesar's advises us to avoid the "hassle of ordering online" by driving down to one of their locations to pick up hot and fresh pizza.

Now, I've ordered a lot of pizza online in my day, so I feel thoroughly qualified in saying that I don't see where exactly the hassle lies in ordering pizza online.  I find it to be quite convenient, to be honest.  But, to properly break it down, I'll go into what's necessary to order a pizza online versus getting one from Little Caesar's.

Ordering OnlineLittle Caesar's
Log into the Papa John's siteGet dressed
Decide what to getGet in the car
Enter payment information, check outDrive to the nearest Little Caesar's
Pizza arrives 30 minutes laterFind a parking space
Eat pizzaWalk inside, stand in line
Enjoy lifePlace order
Obtain pizza
Drive home
Park car
Go inside
Remove pants
Eat pizza

Now, I'm not entirely sure, but wouldn't the process with the fewest steps be considered the least amount of hassle?

Edit (2015-11-18): I just had another thought.  If Little Caesars' Pizza is always "hot and fresh", that means it's been sitting out under a heat lamp for who knows how long before I get there.  Hot, yes.  Fresh, no.

Saturday, September 5, 2015

Burning questions about racing games

I'm taking no prisoners here.  Everything gon' get criticized, ya heard?

This started out of a reply to one of the replies to a post on the Mindcrack subreddit, discussing the intro to Forza 6.  It expanded from my original reply to far beyond the scope of that thread, and was off-topic from the beginning, so enjoy.

Things that bother me about Forza Horizon (specifically, FH2, but likely also pertinent to the original):
  • For a racing festival that's as well-known and attended as the Horizon Festival is made out to be, the complete lack of organization befitting of an auto racing event astounds me.
  • Why do they send cars that aren't designed for off-road racing into off-road races?
  • Why do many of the events still have regular street traffic involved?
  • Why are the non-street circuit race courses not clearly defined?
  • Why don't they encourage safe driving outside of races?
  • Why is every last exhaustive detail of the car's setup left up to the driver?
  • Where do they get their liability insurance?
  • Where's the police during all of this?
Devolves into general rant about simcade/sim racing games/the occasional jab at arcade racers, rehashing points from above as necessary:
  • Why does everyone talk like they're desperately trying to sound like they're cool?  This whole "if I dress like them and act like that and get my hair cut, then maybe they'll like me!" thing never got anybody anywhere.
  • About the safe driving thing, if you really want to prevent the next generation of street racer douchebags from acting like regular traffic is their playground, provide in-game monetary bonuses and achievements and whatnot for staying in the proper lane, below the speed limit, following traffic laws, and not hitting anyone.  In fact, deduct in-game money from the player to pay for all the damages they cause.  The token "This game is a work of fiction.  Always obey traffic laws and wear your seat belt." notice when you first start up the game doesn't work because nobody sees it.
  • The thing about car setup being entirely up to the driver: Professional race car drivers have an entire team of engineers who crunch the numbers and arrive at a base setup for the car, every single race weekend.  The driver assists in tweaking parts of it like downforce and tire pressure from there, and handles other things from in-car controls.  The driver doesn't have to give two shits about 99% of what the player has to mull over in simcade/sim racers.  Now, obviously, this is street racing we're talking about, and no self-respecting racing engineer would want to be within any sort of arbitrary radius of a street racer, so how about an option in the game's garage to set up the car for a specific event?
  • Why is it that people who play iRacing go around to all videos of any other racing game ever and leave comments such as: "you should play iRacing", "he should play iRacing", "have you tried iRacing?", and "iRacing is better, play that!".  This is exactly the same as the "you should play tekkit/feed the beast/modded" comments on Minecraft videos, and the "now do that on real guitar" comments on Guitar Hero/Rock Band videos.  News Flash: if you're posting these types of comments, all you're doing is turning people off to whatever it is you're trying to promote.
  • Why is it that powerup-based arcade racers almost always have to have that one powerup that completely breaks the game or whatever?  You know what I'm talking about.  The fucking blue shells.  "Hey, you know what's a great idea?  How about we actively punish people for being good at racing and having figured out the game mechanics we've provided to them by having a powerup that makes it so that nobody actually wants to be in first place until the last moment of the last lap?  That's a great idea!  I'm sure players will love it!"
  • Why is it you can't play through a racing game co-op with a friend anymore?  If you're playing with a friend, you have to play against them now.
  • In a similar vein, why can't you use co-op/multiplayer gameplay in racing games to unlock unlockables?  Why do they have to be reserved for the singleplayer?
  • There's one game I know of that's an exception to the last three points, that you may recall me mentioning before on this blog: Rumble Racing.  It has no anti-leader powerup, you can play it co-op, and you can unlock all the cars and tracks in the co-op mode.
  • Why is it that some racing games can't create the feeling of speed?  This is a more deeply-rooted problem, I feel.  Some would say it's related to the game's framerate.  Personally, I have no clue.  I do know, however, that Gran Turismo 3 was terrible at it.  I was driving a car (I actually forget which one, but it was a street car) and saying something about "oh well I'll do this or that once I get up to speed" and my dad looks at the on-screen speedometer and says "you're going 80mph, you know".  Have you ever driven a street car at 80mph?  Shit's fucking intense, yo.  More recently, there's Ridge Racer 3D, which has its problem at the other end of the scale.  It makes speeds in excess of 300kph (my favorite, the Kamata RC410, maxes out around 340kph) feel slow.  What the fizzityuck?
GET OFF MY LAWN YA DANG KIDS

Saturday, August 29, 2015

PowerShell's Strict Mode (and a rant about implicit behaviors)

PowerShell's strict mode (enabled by running set-strictmode latest) is really nice.  So nice, in fact, that I'm wondering why it isn't the default.  In fact, why is there even the option to have a non-strict mode?

PowerShell's strict mode makes the interpreter throw terminating exceptions when it would otherwise silently fail, with respect to uninitialized variables in expressions.  This is megas useful nyoro~n for finding typo'd variable names and generally keeping you from being confused later on as to why an exception is getting thrown elsewhere, or why your script isn't outputting correctly.

I would argue that it should be taken a step further.  There should be a version of strict mode that prevents assignment to uninitialized variables as well, so that you have to use the new-variable cmdlet to explicitly create variables.  I already do this in all the scripts I write, because of a broader issue I have with PowerShell, namely, its never-ending set of implicit and sometimes unintuitive behaviors.

So that I can be 100% sure I know what's happening, I force PowerShell to bend to my will by explicitly defining every behavior that I want to happen, even when it would normally happen implicitly.  This has also led to my adoption of the mantra "If it doesn't work in PowerShell, throw more parentheses at it.", which you can often find in an all caps comment in my code near where I've added parentheses to make something work.

Because those of you who aren't familiar with PowerShell may be wondering what sorts of code wouldn't work as expected without parentheses, but works properly as soon as they are added, I will offer an example.  Let's use something for this example that looks innocent enough: declaring a new variable and initializing both its type and its value using a typecast.
> new-variable -name foo -value [decimal]0 > $foo [decimal]0 > $foo.gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object
That's right, the way you'd immediately think of doing it results in $foo being the string '[decimal]0' instead of the value 0 as type System.Decimal.  Now, let's stick some unnecessary-looking parentheses in there and see what happens.
> new-variable -name bar -value ([decimal]0) > $bar 0 > $bar.gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Decimal System.ValueType
Now we get our expected behavior.  This only happens because PowerShell will implicitly interpret unquoted sequences of characters as strings.  This implicit behavior is the cause of a rather large class of annoying behaviors in PowerShell: the parser decides too quickly that something is a string instead of code to be executed, which can produce a variety of headache-inducing results.

Here's another one.  Again, we're making a new variable, however, we want to assign it an object that we're creating via the new-object cmdlet.  Once again, this looks innocent enough, but fails:
> new-variable -name baz -value new-object system.xml.xmldocument New-Variable : A positional parameter cannot be found that accepts argument 'system.xml.xmldocument'. At line:1 char:13 + new-variable <<<< -name baz -value new-object system.xml.xmldocument + CategoryInfo : InvalidArgument: (:) [New-Variable], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.NewVariableCommand
As you might expect by this point, merely putting parentheses around the call to new-object gives us our desired behavior.
> new-variable -name baz -value (new-object system.xml.xmldocument) > $baz NodeType : Document ParentNode : DocumentType : Implementation : System.Xml.XmlImplementation Name : #document LocalName : #document DocumentElement : OwnerDocument : Schemas : System.Xml.Schema.XmlSchemaSet XmlResolver : NameTable : System.Xml.NameTable PreserveWhitespace : False IsReadOnly : False InnerXml : SchemaInfo : System.Xml.Schema.XmlSchemaInfo BaseURI : Value : ChildNodes : {} PreviousSibling : NextSibling : Attributes : FirstChild : LastChild : HasChildNodes : False NamespaceURI : Prefix : InnerText : OuterXml : > $baz.gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False XmlDocument System.Xml.XmlNode
Now, let's try to initialize a new variable to the result of a static method call.  I'm sure you get the drill by now.
> new-variable -name qux -value [math]::floor(3.5) New-Variable : A positional parameter cannot be found that accepts argument '3.5'. At line:1 char:13 + new-variable <<<< -name qux -value [math]::floor(3.5) + CategoryInfo : InvalidArgument: (:) [New-Variable], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.NewVariableCommand > new-variable -name qux -value ([math]::floor(3.5)) > $qux 3 > $qux.gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Double System.ValueType
There's another one that's more difficult to demonstrate where the interpreter will implicitly flatten a single-element array to its sole value, which is annoying when the code around it is expecting an array.  I could go on and on listing implicit behaviors and how to explicitly define them to get your code to do what you want, but the lesson is already plainly obvious: Be very vigilant while writing and testing your code.  Always keep the interpreter nearby to test things and make sure that they work.

Also, if you point out the implicit behavior that all of my code examples are using without turning it into the equivalent explicit behavior, you get a cookie.

Tuesday, August 25, 2015

Video Game Piracy

Because of a post on the video gaming Shitty Gawker Network Blog™, I'm thinking about it.  While the accounts shown in the article certainly paint a picture of the variety of reasons why people pirate games, it's not nearly large enough of a picture to be an accurate representation.  Indeed, a lot of them cite monetary issues, and the article's author mentions this plenty of times, which I feel unfairly paints a picture of "can't afford it; just torrent it" entitlement fantasy as the major reason for piracy.  In fact, there is a diverse enough set of reasons to bring up some good points on things the industry is doing wrong or is just plain overlooking when they talk about how "piracy is the reason we only made 30 billion dollars last quarter" or whatever.

First, not every region of the world is so lucky as to have legal releases of games.  For people in these regions who want to play games, their only recourse is to pirate them, or pay an arm and a leg to import them.

Second, people often pirate games because of lackluster or nonexistent game demos.  If the demo doesn't have enough content to help the player make an informed decision, or if the demo doesn't exist at all, how does someone know if they want to purchase a game?  Everything you hear from the developer and publisher prior to the release is, of course, carefully crafted marketing information.  While it's still possible to pull objective information from that, it can be difficult since they have full freedom to pick and choose what aspects of the game they want to show to you.  The next logical step would be to turn to reviews, but most review sites can't be trusted to rate things objectively.  Also, when publishers know that the game is horrible, they embargo reviews until the game's release, or simply don't give out review copies until after then.  Video game publishers still rely too much on the blind buy.  I myself am interested in Fantasy Life and Rune Factory 4, both 3DS games, but have held off purchasing them because they don't have demos available.  Also, I recently purchased The Legend of Dark Witch, also on the 3DS, because of my gameplay experience in its demo.

Third would be tacked-on DRM clients such as uPlay from Ubisoft.  These are pretty much universally a headache to deal with and have a tendency to cause more problems than they solve.  The problem is also further compounded by the fact that you can often torrent the game and get a copy where the DRM has been removed.  In that case, pirating the game results in less of a headache than purchasing it legally, so the DRM really only exists to punish legitimate purchasers of games.  I will point to the release of Spore, which was so riddled with DRM issues that the only people who were actually able to play the game upon release were people with pirated copies.  Also, you often see games with these DRM clients on Steam, which is itself a DRM client.  Why the redundancy?

Fourth would be region controls.  I know for certain that a lot of piracy is due to the fact that some games just never see the light of day outside of the region the developer calls home.  While a fair number of people import games and consoles to get around this the "legit" way, doing so is rather expensive.  This is also one of the reasons why people such as myself modify their home consoles.  In my case, I modified my PS2 so I could play the copy of The Rumble Fish that I'd imported.  Region restrictions are an artificial measure put in place because publishers and console manufacturers desire more control than they're due.  It's clear that if the region controls are circumvented, the game will function perfectly, so it's definitely not a true restriction.  It's also clear that people are willing to deal with the language barrier, so that isn't really a valid reason.  Why prevent a person from playing a game that they've legitimately purchased on the requisite hardware that they've also legitimately purchased?

Fifth, and perhaps one of the bigger reasons, is that a lot of games are out of print.  In the interests of preserving gaming history, a lot of older games, including older console games, get pirated.  However, this raises a very important question.  Namely, if the developer and publisher can no longer make money off of the game, does it really hurt them to pirate it?  A lot of times, the legit copies show up on reselling sites like Amazon and eBay for ridiculous prices.  A clear example would be the GameBoy Color cartridge of Shantae, which commands over $300 on such sites, and can only otherwise be purchased for a much more reasonable price on the 3DS eShop.  But if you're sitting there with your old GameBoy Color and don't have a 3DS, then you'd have to buy one just to be able to pay that much more reasonable price, which would result in the game effectively costing almost as much.

Sixth, compatibility is an issue for computer games.  This relates back to the aforementioned problem of games lacking demos.  This also relates back to older games, where just getting a game running was sometimes an exercise in frustration.  I certainly remember the old days of games with DOS setup programs where you had to select your sound card from a limited list and provide details like IRQ, DMA, etc.  Sometimes just getting something working made you feel like a genius.  Computers have come a long way in terms of ease of configuration since those days, but newer computers often can't run games made for older computers because of how those games are programmed.  Often an emulator like DOSBox or a virtual machine of an older OS can solve the issue, but they're somewhat of a hassle to deal with and not every gamer is going to want to put in that much effort.

I guess the point I'm trying to make here is that video game piracy is definitely a multifaceted issue, and you can't simply look at it and chalk it up to one reason in particular.  Services like Steam and GOG definitely make legitimately purchasing games a lot easier, and have won over a lot of pirates on the convenience factor alone, but they're little more than a band-aid on the broken leg that is video game distribution.