tag:blogger.com,1999:blog-23882945194852202662024-02-20T05:48:58.742-05:00Seven Random CharactersAchieving uniqueness through lack of imagination.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.comBlogger926125tag:blogger.com,1999:blog-2388294519485220266.post-81788171710001528772022-10-23T22:54:00.000-04:002022-10-23T22:54:51.559-04:00Chrono Trigger notes revisions<p>So recently, I did another level 99/Tab grind, for some reason on the Chrono Trigger Devolution romhack.</p><p>During that, I realized that some of the notes I've made here (as well as some I haven't posted here) were either incorrect, incomplete, or otherwise in need of updating. This post will by no means be comprehensive, but it will contain the ones I can explain concisely.</p><p><b><span style="font-size: large;">Level 99 Spekkio strategy</span></b></p><p>For the longest time, my strategy for beating him immediately after getting to the End of Time involved using Gold Studs as my accessories. As it turns out, PrismSpecs are a lot faster. How much faster? How about "Spekkio doesn't get the chance to use Hallation" faster?</p><p><span style="font-size: large;"><b>Azala/BlackTyrano strategy</b></span></p><p>My party for this fight is my not-so-new standby, Crono/Ayla/Robo. I had been using Volt Bite on Azala, which works, but takes forever. Simple is better; just use Luminaire lol.</p><p><span style="font-size: large;"><b>65 million BC Forest Maze Tech Point grinding</b></span></p><p>I believe I covered the Gold Eaglet behavior of transforming into a Red Eaglet if not dead after two hits, carrying over the HP. What I didn't realize at the time is that hitting a Gold Eaglet with Fire damage instantly causes the transformation (if it survives the hit), and also resets the Eaglet in question back to full health.</p><p>The Bestiary in the Extras Mode on the DS version also mentions that a Red Eaglet can transform back into a Gold Eaglet; I have yet to see this happen. I suspect it might only happen if it takes Lightning damage, but I haven't confirmed this. I don't exactly have sources of either type of damage that aren't one-hit KOs to test with at the moment, though.</p><p>Also, the fight with the Kilwalas that has three of them when going through in one direction and two of them in the other direction seems to use the order of your fights to decide how many Kilwalas it has. I haven't done much testing beyond the initial discovery, but manipulating the fight to always have three probably takes more time than it's worth.</p><p>If I failed horribly on formatting above, it's because I'm typing this on my phone, and the internet experience on a phone is total garbage tier. My computer has a dead cooling fan and I'm procrastinating fixing it.</p>XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-26062092773575840352022-01-11T16:00:00.000-05:002022-01-11T16:00:41.578-05:00MAGFest 19I didn't go.<br />
<br />
Staff members were given the option to defer their badge to 2023, I took that option.<br />
<br />
Even if the option hadn't existed, I still wouldn't have gone. Between the completely toxic response I got when I raised a question about their covid policy, and general weariness about it getting worse in the winter anyway, I still would have stayed home.<br />
<br />
The covid policy seemed extremely specific in spots, to the point of being police state-like. My question had to do with why copies of vaccine cards weren't being accepted as proof of vaccination. My Vaccination Station™ advised me to make a copy and keep the original in a safe place, so requiring people to bring the originals seemed a bit odd. The reaction I got was "OMG WHY DONT YOU WANT TO PROVE YOU'RE VACCINATED", "Do you not carry your driver's license and credit/debit card with you as well?", and "You can get the original damaged and destroyed all you want because you can just get a replacement!".<br />
<br />
To knock those down one by one:
<ol>
<li>I never said I didn't want to provide proof of vaccination, I simply disagreed with copies being considered invalid for proof. Way to read between the lines.</li>
<li>Driver's licenses and credit/debit cards are <b><i>designed</i></b> to be carried with you everywhere you go. They're sized properly to fit in a wallet, and they're made out of a durable plastic. To contrast, the vaccine cards are simply made out of slightly thicker paper which damages easily, and aren't sized to fit in a wallet. One response included the Social Security card in that, which I didn't even deem worthy of a response because you aren't supposed to carry those with you. You're supposed to keep them in a safe place, just like the vaccine card.</li>
<li>I value my possessions; I take care of my shit. It follows that I don't subscribe to this culture of "because replacements exist it's okay to damage or destroy the original". People were suggesting that I order some 3D-printed "holder" for it from one or another website, but that seems overkill when I'm only going to need to present it once and then it goes back in my pile of belongings in my hotel room for the rest of the weekend.</li>
</ol>
One contributing factor I didn't bring up: An alternate form of proof was a QR code, supplied by your state. When this covid policy was released, the "great" state of Virginia wasn't offering QR codes. I looked up my info and all I was able to get was a PDF. A week or so later, QR codes were added.<br />
<br />
Even outside of that, the mask policy was ridiculous. It was incredibly specific about types of masks that were and were not permitted; in combination with the proof of vaccination policy it just made me feel like no matter what I brought with me, they'd find some nit-picky reason to turn me away at the door. The covid policy was now fully anxiety-inducing, so I refrained from going.<br />
<br />
The kicker: at the bottom of it was the line "don't give us sass", suggesting you'd be banned if you did. No definition of "sass" was provided, so all I can assume is that it would be creatively interpreted to mean whatever they needed it to mean, which would most likely be "don't disagree with us". MAGFest is run by SJWs these days and SJWs don't tolerate any form of dissent (while claiming to be anti-fascist lol), so... it fits.<br />
<br />
If the situation has improved before 2023 and they don't find this post and ban me, I'll think about going to MAGFest 20.<br />
<br />
Also, calculating the MAGFest number from the year is now <span class="fixed">year - 2003</span>. A while ago they naïvely traded one form of sequential numbering for another while declaring that "sequential numbering is confusing", which makes no goddamn sense to me.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-61250557089804757122021-12-15T23:18:00.000-05:002021-12-15T23:18:43.663-05:00Metroid DreadYeah, I got Metroid Dread. Physical of course, I ain't no chump. I got it late because reasons, deal with it. Anyway, here's my thoughts. Spoiler-free, in case you care about that. As a bit of background, I'm incredibly used to how Super Metroid does things.<br />
<br />
The overall gist of this game is as follows: Samus goes to the planet ZDR after receiving evidence that an X parasite exists on the planet. Also on this planet are seven robots, called E.M.M.I., that have uber hax armor, and surprise, they're trying to hunt her down. Samus gets stuck deep into the planet and needs to make her way back to her ship. ...And then you gain control.<br />
<br />
The graphics, music, and overall atmosphere are amazing. The use of darkness lets the illuminated parts of level geometry and Samus' Power Suit really stand out. I don't really recall any true bangers on the soundtrack, but it does fit the atmosphere very well, and they brought back the Green Brinstar BGM for a cutscene, which was a nice throwback.<br />
<br />
Walljumps are somehow simultaneously better and worse at the same time. And by "better" I mean "dumbed down". You no longer need to press a direction to wall jump, just be in a spin jump next to a wall and press jump. That's it. The "worse" part is that they're still Fusion walljumps, so you can't single walljump. Except you sorta can in some circumstances. An upgrade you get early on that lets you climb the blue walls and hang from the blue ceilings doesn't have the "no single walljump" restriction on it.<br />
<br />
The lack of single walljumping is sad, but it's a minor nitpick seeing as later upgrades make walljumping far less necessary, and even take precedence over walljumping. Bomb jumping and infinite bomb jumps make their triumphant return, though.<br />
<br />
Gonna say it now: this game is hard. And in my eyes, not really in a good way. Sure, things are challenging, but everything hits like a truck, even at the very beginning. So you've managed to find six E-Tanks and are headed into a boss? Congrats, you can get hit maybe seven times. I've said it before, and I'll say it again: tedium is not challenge. The challenge of a boss fight is figuring out its attack patterns and how best to deal with them, or when you can tank a hit to get some extra damage in. But here, even glancing blows take ridiculous amounts of energy.<br />
<br />
Movement and related techniques still feel incredibly satisfying to do and when you get a sequence of tight movement right, it looks amazing. <span title="You just lost.">The game</span> has puzzles you have to figure out how to use Speed Booster and shinesparks to complete in order to get 100% items, and they take full advantage of this. They vary in difficulty, and you may not even recognize some of them as being puzzles because a bunch of the early ones feel pretty straightforward. Most of them have multiple valid solutions, which was a nice touch.<br />
<br />
However, later on you need to be familiar with a specific mechanic of shinesparking that I was not aware of coming in: if you shinespark into a slope, Samus reverts back to the Speed Booster state and you can store another shinespark to use later. The only place in <span title="You just lost.">the game</span> that this ever gets communicated to the player is a loading screen hint that has a very low chance of showing up.<br />
<br />
I know the melee attack thing was added in the 3DS remake of Metroid 2, but... why is it necessary? <span title="Unless you're playing Smash Bros. Melee, lol">Samus isn't a melee character.</span> Sure, melee countering things gives you more drops, and sure, dash melee is nice; but the whole point of Samus having that arm cannon isn't so she can whack things with it. It's so she can shoot things with it. The melee counters just slow down gameplay outside of boss fights. In boss fights, however, they're useful to end the fight faster, and in some cases, required to progress through the fight.<br />
<br />
I feel like the controls could have been done slightly better. I am by no means a fan of analog stick click actions, and this game has one for both analog sticks. Speed Booster should've activated like it did in Super Metroid.<br />
<br />
<span title="You just lost.">The game</span> offers you the ability to place markers on the map, which is very nice in a game like this where you're going to want to return to an area later. However, the markers are incredibly tiny on your minimap, making them very hard to see, and limiting their usefulness.<br />
<br />
The new abilities are all really cool. Flash Shift is great in boss fights, Phantom Cloak is essential to evading the E.M.M.I. until you gain the ability to destroy each one. Pulse Radar is basically a better version of the X-Ray Scope. Cross Bombs are a neat addition to the morph ball repertoire, they can blow up stuff vertically and horizontally from where you drop one. They offer an easy way to bomb jump horizontally to cross gaps and groups of crumble blocks in morph ball tunnels as well.<br />
<br />
A lot of the time, by the time <span title="You just lost.">the game</span>'s progression is giving you a major item, you've been hurting for that item for quite some time. I have a love-hate relationship with this, because I liked how it handled reduced mobility in water before getting the Gravity Suit, where you gradually gain abilities that slightly increase your underwater capabilities (in addition to being useful elsewhere) before finally getting full movement.<br />
<br />
However, one of the major item timings is questionable. This game suffers from Fusion-style Convenient Debris™, wherein once you progress the story or do something to get through an area, the way back is blocked until you return with a new upgrade. Most of the time, this new upgrade you need is Power Bombs. To add insult to injury, you can collect Power Bombs well in advance of being granted them by <span title="You just lost.">the game</span>'s progression, but they remain an "unknown resource" and thus completely unusable. Super Metroid wouldn't have done that.<br />
<br />
"Super Metroid wouldn't have done that" was a phrase I echoed plenty of times during my playthrough. This game took entirely too much from Metroid Fusion's playbook.<br />
<br />
Is Metroid Dread a good game? Absolutely. 100% worth picking up and playing yesterday. Is it perfect? No. Is any game ever perfect? No. Is it as good as it could be? No. Is it better than Super Metroid? No. Is it better than Metroid Fusion? Fuck yes.<br />
<br />
And if you're still on the fence, there's a demo on the eShop, so you can get a little "try before you buy" action.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-70874422135335627322021-11-02T14:22:00.003-04:002021-11-02T14:24:44.036-04:00Sandwich Bros. of Wisconsin CheeseburgersI had a hankerin' for a frozen hamburger and saw these in the freezer section. My thought was "oh cool, a poor man's <a href="https://www.youtube.com/watch?v=FoQ7UxG3P9E&t=6m26s" rel="nofollow" target="_blank" title="Yes, Alvin seriously needs to lose weight; no, you're not the first person to notice this. George Motz should be the host of The Burger Show, not Alvin.">bierock</a>!", and that it had just been sliced in half for show on the label. I soon found out that this is not the case, what they tout as "6 sandwiches" is really "6 half-sandwiches".<br />
<br />
They also say they're made with "real cheese", but they actually contain American pasteurized processed plastic cheese food product instead. Don't try to convince me it's real cheese, it's not made the same way real cheese is made.<br />
<br />
The directions tell you to place it "cheese" side up, wrapped in a paper towel, on a plate before microwaving it. However, it's down to luck whether or not you can tell which side is the "cheese" side. On some of the ones in my box it was obvious; on others the bread stuck out too far and curled over. On the one I happened to pick first, I had to gently peel the bread back a bit to see where the "cheese" was.<br />
<br />
As far as the microwave directions go, they actually tell you what wattage microwave they used when developing them, so that's good. Way too many companies omit that basic information.<br />
<br />
After microwaving (the directions are for a 1100 watt microwave, mine is 1200 watts) the bread comes out tough, which is sad, and only the beginning of the depression. After biting in, I noted a distinct lack of flavor. There's clearly food in my mouth and I'm eating it, but I'm not really enjoying it because it doesn't taste like anything.<br />
<br />
So, to offer some constructive criticism, here's some ways they could be made better:
<ol style="text-align: left;">
<li>Don't slice them in half to sell three of them as "6 sandwiches".</li>
<li>Use real cheddar cheese and not that fake shit.</li>
<li>Make the hamburger patty actually have flavor.</li>
<li>Failing any of that, drop the price from $6 to $3 to better reflect the contents of the package.</li>
</ol>
Seriously, on that last point, I thought I was paying $1 per burger and getting a pretty good deal, but in reality I paid $2 per burger and was incredibly disappointed. Re-read the second sentence of the first paragraph of this post for why I thought this.<br />
<br />
The worst part: After the initial disappointment, I still had five more half-burgers to eat. As I ate them over the course of the next week, I added mustard to each one just before eating to at least add <b>some</b> flavor. It wasn't a fluke with the first one, all I ever tasted was the mustard. It's not impossible to make a frozen burger with flavor, White Castle does it quite well.<br />
<br />
The verdict: avoid. They have other products which I didn't try, and I don't know if I ever will. Mostly because I value being physically fit, but also, this wasn't a good first impression.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-13422610087187337202021-10-20T19:01:00.000-04:002021-10-20T19:01:17.593-04:00I got back into Guild Wars 1I don't seem to be alone in this either, through my travels I've seen a number of people saying "haven't played in years, how's this thing work again?" in chat.<br />
<br />
It's still mostly desolate, but there are definitely more players online now than there were a few years ago. Everyone's playing with hero parties from the looks of things, but... whatever.<br />
<br />
That said, what the hell am I going to do in a number-of-years-old online RPG that I've already played to death?<br />
<br />
Well, to start with, realize that there's still a lot I haven't done. What follows (after the break) is a list of tasks for my latest gaming project.<span><a name='more'></a></span>
<ul>
<li><b>Get the festival hats I'm missing:</b> Complicated by asinine restrictions on how many you can get per year. I get that originally you could only get so much per year, but at this point, the restrictions no longer make sense. Basically, see you in 2026 when I finally get the last festival hat that I'm missing, because I've plotted it out and it's really going to take that absurdly long. Dragon Festival is the one that's going to drag it out until 2026, because I basically didn't participate in it in the early years. I adopted the practice of farming the items needed to obtain hats and saving them. This way, in the future I can just pull those items out of storage, turn them in, get my stupid hats, and be done with it. It just so happens that, as of two days ago, I have everything I need to get the rest of the hats, and I just have to wait for the festivals to come around.<br />
<br />
</li>
<li><b>Farm Lucky/Unlucky points:</b> Perhaps better known as the "AFK on a circle lol" titles because they were originally only progressible when the Shing Jea Boardwalk was open. Thankfully, opening chests with Lockpicks now contributes to one or the other depending on whether or not your lockpick breaks. Lucky even modifies the chance for the lockpick to break. None of us are the Lock Picking Lawyer, so we break lockpicks regularly.<br />
<br />
</li>
<li><b>Get all skills for each of my characters' primary professions:</b> The benefit to this is two-fold. Versatility in setting up those characters' builds, and unlocking all the skills for use on heroes. Looking back on it, a lot of my frustrations with Hard Mode and certain end-game content probably would have been alleviated somewhat had I had more skills available. This task is divided into two parts, getting the non-elites, and getting the elites. The elites are already unlocked for heroes courtesy of me having done Legendary Skill Hunter years ago, but that doesn't magically teach those elites to my other characters. Elite Skill Tomes exist, but they drop stupidly rarely in Hard Mode, and otherwise cost Zaishen Coins (or fluctuating amounts of actual in-game money to trade with other players). Unfortunately, I came back to the game well after the 2020 Anniversary Celebration, so I had to wait until the 2021 Anniversary Celebration to get the Proof of Triumph so I could capture the ten new elites they added in 2020.<br />
<br />
</li>
<li><b>Do the Zaishen Bullshit to get Zaishen Coins to get some of the new stuff that costs way too many Zaishen Coins because apparently regular in-game money isn't good enough:</b> There's new <i>more better</i> Runes of Holding that expand your inventory further. Because reasons, expanding one inventory container costs a ridiculous sum of Gold Zaishen Coins. Never mind that normal Runes of Holding are far less expensive, I guess ANet really hates fun. By the time I get my ranger's inventory expanded to the new maximum, I'm going to be exhausted, and I have <strike>ten</strike>eleven characters...<br />
<br />
</li>
<li><b>Farm enough Kurzick faction to get my Kurzick title to rank 6:</b> ANet rebalanced all the title-based skill tracks a while back so that you don't need the max title rank to get max benefit from the skills. As a result, you only need rank 6 Kurzick/Suxon for those skills, and rank 5 of literally everything else. This is harder than it should be because ANerf removed all the good farming methods years ago, including removing Hero Fast Faction Farm on my fucking birthday. There's "speed clear" setups for various areas but nobody's doing them anymore and I don't have the necessary stuff to participate in those anyway. Nobody ever designs a speed clear setup that lets rangers participate, or publicizes hero builds that make Hard Mode easier. That said, I've found a zone I can easily vanquish with the Kurzick faction blessing active, and I can turn in faction points during Faction bonus weeks to progress the title stupidly quickly. When I came back to the game I was rank 4, I'm rank 5 now and closing in on 6.<br />
<br />
</li>
<li><b>Work on my eleventh character:</b> Casually reading through the list of skills one day I realized there's an Elementalist spell called "Double Dragon". Which is, of course, the name of a series of video games starting on the NES. The first one is infamous for misspelling one of the characters' names, so I made a character in reference to that. He basically has Double Dragon stapled to his skill bar, and I'm going to be trying various ways of theming a build around its effects. Double Dragon is actually a really good spell...<br />
<br />
</li>
<li><b>Get Hero Armor for all heroes on my ranger:</b> The "easy" part of this is already done, since I got back into the game I got my Nightfall heroes their set of armor from the challenge missions, and yesterday I got my Eye of the North heroes their armor from Glint's Challenge using that 7 hero "AFK" build on PvXwiki because I got tired of trying and failing the mission normally. It's not really AFK because some things can get stuck well out of aggro range of the heroes, so they never run over to kill them; but it does work extremely consistently. All that's left now is the hard stuff: Primeval Armor (Domain of Anguish) and Deldrimor Armor (Slavers' Exile).<br />
<br />
</li>
<li><b>Get the Vanquisher titles on my ranger:</b> I think I'm beginning to climb over the brick wall of unfair difficulty in Hard Mode. He's gotten almost all of the Ascalon area zones vanquished now. Since coming back to the game I've gotten a few more zones vanquished. I'm prioritizing the Ascalon area right now due to its stupid party limit of 4. The foes are designed for parties of 8, and you're just expected to manage, because ANet thinks that's fun... Yeah, it's possible with 6 or 8 if you have the patience to fight from a town with a higher party limit. I fought from Yak's Bend with a party of 6 when I got Ascalon Foothills and Diessa Lowlands. The only two Ascalon area zones he has left are Flame Temple Corridor and Dragon's Gullet. After them I think I'm going to prioritize zones without an adjoining town so that everything remaining will be reasonably accessible.<br />
<br />
</li>
<li><b>*sigh* Do Winds of Change:</b> War in Kryta left such a bad taste in my mouth (had to staple Frozen Soil to my skill bar and spam consumables to make it bearable) that I haven't wanted to do Winds of Change. All the same, it yields two heroes (Miku and Zei Ri), and they're the only heroes my ranger lacks. I kinda wish that, once you unlock a hero on one character, there was an alternate way of acquiring them on your other characters (perhaps for a reasonable fee). Some specific professions are tucked away deep into Nightfall or have unusual unlock conditions in Eye of the North (or even the chapter of Guild Wars Beyond between War in Kryta and Winds of Change, Hearts of the North). Getting Zei Ri necessitates completing Winds of Change on Hard Mode, which I know I'll find... <i><b>fun</b></i>.
</li>
</ul>
I originally started this post towards the end of 2020, so some of the things I originally put here I've finished. I've gotten back to 100% pets in the Zaishen Menagerie and unlocked all evolutions of every pet. Levelling up pets is really easy and combines well with getting Sunspear/Lightbringer title progress using the bog standard farm in The Sulfurous Wastes. People swear by the death levelling method that's done within the Menagerie itself, but that only works on one pet at a time whereas this works on eight at a time.<br />
<br />
Getting characters through Factions presented a roadblock that I've since solved: The Eternal Grove. I arrived at the realization that I was doing some things wrong, and when I started doing them right, I started clearing the mission. tl;dr don't flag your heroes out too far, stay closer to the center of the Grove.<br />
<br />
The things that have been definitely been holding me back in terms of Hard Mode progress are that I'm not very familiar with setting up builds for the Factions and Nightfall professions, nor am I very familiar with a lot of the skills for core professions that were added in Factions and Nightfall. Most of my Hard Mode progress is locked behind getting all the non-elite skills for each of my characters' primary professions. I've started branching out into party builds that lean more heavily on non-core professions, namely the Ritualist. Soul Twisting with Shelter, Union, and Displacement is too good to pass up. The sheer amount of damage that my party doesn't take with such a Ritualist following me around is truly astounding.<br />
<br />
No, seriously. Look back at that screenshot of me having taken 16 years to complete To Sorrow's Furnace. I've got Xandra in my party running that specific build. The quest I'd just finished was the one where you have to collect the explosive stones while defending High Priest Alkar because he gets attacked while you're off collecting the stones. In order to finish that quest, I ran a 6/2 split: I left Xandra (the aforementioned Soul Twisting protection build) and Olias (Aura of the Lich minion master) with Alkar (who himself is a healer), and took off killing things with the other heroes. They were able to hold off each group of foes that attacked Alkar long enough for the six of us to get back and assist in killing them, which is all I could really ask for.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-8080031299069560582021-10-20T18:10:00.002-04:002021-10-20T21:46:54.208-04:00Finally.<a href="https://wiki.guildwars.com/wiki/Sorrow%27s_Furnace" rel="nofollow" target="_blank">Sorrow's Furnace</a> was added to Guild Wars all the way back in 2005. I've had the quest <a href="https://wiki.guildwars.com/wiki/To_Sorrow%27s_Furnace" rel="nofollow" target="_blank">To Sorrow's Furnace</a> in my Ranger's quest log since it was added.<br />
<br />
Today, I finally finished that quest. Now I can go on to <a href="https://wiki.guildwars.com/wiki/The_Final_Assault" rel="nofollow" target="_blank">The Final Assault</a> and get him his Black Moa Chick.
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHUgftq16YsgeUk-4gWqlV124A7w_b1R4DezbuKNvmBrgFE4ZI6oQXa4JFftPLBFLndKZjQuia0E43CAyAb3EFshBKUq_3ij0jcaLa_cjsfsBvLZUaWuHATY7xVvWSSv7e6gpW2yB3ojo/s1440/gw003.bmp" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="900" data-original-width="1440" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHUgftq16YsgeUk-4gWqlV124A7w_b1R4DezbuKNvmBrgFE4ZI6oQXa4JFftPLBFLndKZjQuia0E43CAyAb3EFshBKUq_3ij0jcaLa_cjsfsBvLZUaWuHATY7xVvWSSv7e6gpW2yB3ojo/w640-h400/gw003.bmp" width="640" /></a></div>
Oh yeah, I'm playing Guild Wars again. I actually started playing again back in 2020, just didn't post anything about it until now.<br />
<br />
Edit (later this same day): Well, that was fast. Finished The Final Assault and got my Black Moa Chick.<br />
<br />
<table class="xt-table">
<tbody><tr><td>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYZx_Ov1ehRm0vDaKVzaBIx5nB1V89D586b3jwrgpjLiVtcqrl3d69re372CqF1qhYcwcT3DmYyXlqu8s2nYMJm5VH7Z3BKmFxrMzgKse3h1A1m7RS1d67y2D7RxHJRFMO6ewloVyGiv4/s1440/gw004.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1440" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYZx_Ov1ehRm0vDaKVzaBIx5nB1V89D586b3jwrgpjLiVtcqrl3d69re372CqF1qhYcwcT3DmYyXlqu8s2nYMJm5VH7Z3BKmFxrMzgKse3h1A1m7RS1d67y2D7RxHJRFMO6ewloVyGiv4/s320/gw004.bmp" width="320" /></a></div></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkLxGD5_JY7hY8UQ2SHTz1mTYWeIn-LQX8MPPTk77cwBNb1IaU0Pd5zobjZnF54CZDAaUST8nYVnTUnGOLACP5WoYHSlGgkP8Sxnf9uuCEa7svcoxeyibh9ofiAgfg-EGh6sc-lINgJLQ/s1440/gw005.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1440" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkLxGD5_JY7hY8UQ2SHTz1mTYWeIn-LQX8MPPTk77cwBNb1IaU0Pd5zobjZnF54CZDAaUST8nYVnTUnGOLACP5WoYHSlGgkP8Sxnf9uuCEa7svcoxeyibh9ofiAgfg-EGh6sc-lINgJLQ/s320/gw005.bmp" width="320" /></a></div></td></tr></tbody>
</table>XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-44399131666879213412021-07-04T22:42:00.001-04:002021-07-04T22:44:20.935-04:00JavaScript's Symbol.toPrimitive confuses meJavaScript has all these built-in Symbols that can be used for various meta-programming tasks. <span class="fixed">Symbol.toPrimitive</span> is a method on your object that gets called by the JavaScript engine when it needs to convert that object to a primitive value. It works by passing a string-valued hint to this function, this hint can be <span class="fixed">"number"</span>, <span class="fixed">"string"</span>, or <span class="fixed">"default"</span>.<br />
<br />
Implementing it is quite easy. Just <span class="fixed">switch()</span> on the hint and define your preferred logic for the three hints in their respective <span class="fixed">case</span>s.<br />
<br />
The confusing part is that JavaScript doesn't seem to have much in the way of logic behind what it chooses to pass for the hint. Initially, <span class="fixed">"number"</span> and <span class="fixed">"string"</span> seem obvious and the source of confusion is "what the hell do I do when it passes <span class="fixed">"default"</span>?", but quickly the source of confusion becomes "I would have expected it to pass literally anything other than <span class="fixed">"default"</span> in this case!".<br />
<br />
To illustrate this, here's an example:
<blockquote class="fixed pre">class MyClass {
[Symbol.toPrimitive]( hint ) {
switch( hint ) {
case "number":
return 42;
case "string":
return "meaning of life";
case "default":
return "the two best words in the English language";
}
}
}
var a = new MyClass();
console.log( +a ); // Hint: number; logs 42
console.log( a + 27 ); // Hint: default; logs "the two best words in the English language27"
console.log( a + "" ); // Hint: default; logs "the two best words in the English language"
console.log( `${a}` ); // Hint: string; logs "meaning of life"
</blockquote>
Unary plus getting the hint <span class="fixed">"number"</span> is all well and good. The template string converting <span class="fixed">a</span> to a string and therefore getting the hint <span class="fixed">"string"</span> is just fine and dandy. That's also the only case I know of where JavaScript provides the hint <span class="fixed">"string"</span>.<br />
<br />
What makes absolutely zero sense, however, are the other two. When adding with a number, I would expect it to provide the hint <span class="fixed">"number"</span>, but instead we get <span class="fixed">"default"</span>. Adding with a string also produces the hint <span class="fixed">"default"</span> when I would have expected <span class="fixed">"string"</span>.<br />
<br />
So uh... what the fuck?<br />
<br />
In case this is a browser thing, I'm using Pale Moon 28.17. I haven't updated to 29.* because it introduces breaking changes to my setup that I haven't resolved yet.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-82624989235842378312020-12-17T22:54:00.000-05:002020-12-17T22:54:53.042-05:00SmileBASIC 3DS DIALOG Instruction: Undocumented DIALOG TypesI don't know if these are documented anywhere and I'm too lazy to do the most cursory of research, so here I am posting the results of my independent discovery. Gather 'round, because it's time for everyone's favorite thing in the world: Storytime with XT!<br />
<br />
I was poking around the Smile tool when I noticed that the graphics editor presents a strange-looking dialog when you press <span class="button">Y</span>. It lets you press <span class="button">A</span>, <span class="button">X</span>, or <span class="button">Y</span> to achieve various goals, or <span class="button">B</span> to return to what you were doing without modifying anything. This dialog is presented in the same graphical style as those produced by the <span class="fixed">DIALOG</span> instruction, but it doesn't have the buttons at the bottom of the touchscreen that are normally there. The built-in documentation for the <span class="fixed">DIALOG</span> instruction only covers six types:
<blockquote class="pre fixed">0: OK (default)
1: No/Yes
2: Back/Next
3: Cancel/Confirm
4: Cancel/Execute
5: Next
</blockquote>
This piqued my interest, so I looked into the code. If you also wish to do so, a simple <span class="fixed">LOAD "PRG0:SYS/SBGED"</span> from direct mode will load the code into slot 0. I searched through for a <span class="fixed">DIALOG</span> instruction and came across a procedure definition on line 1228 called <span class="fixed">DLG</span> that uses it and parameterizes the text (to a label representing <span class="fixed">DATA</span> instructions to read), type, and caption for calling code. Searching for code that calls it, I found that the line of code on line 1141 produces this strange dialog by calling <span class="fixed">DLG()</span> with the type <span class="fixed">-1</span>.<br />
<br />
Yeah, negative one. Interest fully attained, what other valid values are there? I explored the negative dimension and here are the results:
<blockquote class="pre fixed"> -1: A/B/X/Y (A: 128, B: 129, X: 130, Y: 131)
-2: D-pad (Up: 132, Down: 133, Left: 134, Right: 135)
-3: A/B/X/Y and D-pad
-4: L/R (L: 136, R: 137)
-5: L/R and A/B/X/Y
-6: L/R and D-pad
-7: L/R, A/B/X/Y, and D-Pad
-8: Touchscreen (Tap: 140)
-9: Touchscreen and A/B/X/Y
-10: Touchscreen and D-pad
-11: Touchscreen, A/B/X/Y, and D-pad
-12: Touchscreen and L/R
-13: Touchscreen, L/R, and A/B/X/Y
-14: Touchscreen, L/R, and D-pad
-15: Touchscreen, L/R, A/B/X/Y, and D-pad
</blockquote>
The numbers in parentheses are the return values from the <span class="fixed">DIALOG</span> instruction. These don't make it into <span class="fixed">RESULT</span>, you have to assign it to a variable. If it looks confusing to you, I can explain it.<br />
<br />
Ignore all of them except for <span class="fixed">-1</span>, <span class="fixed">-2</span>, <span class="fixed">-4</span>, and <span class="fixed">-8</span>. Notice how they only enable one distinct set of inputs to dismiss the dialog? This is a bit field. You can compute any of the other values by adding some or all of these four together. Should you want to do this more easily, you can just stick this in your program:
<blockquote class="pre fixed">VAR ABXY=-1
VAR DPAD=-2
VAR LR=-4
VAR TOUCHSCREEN=-8
</blockquote>
After that, you can just add together your desired combination using the variable names and it will be self-documenting. You may also find it cromulent to have similar variable names for the return values:
<blockquote class="pre fixed">VAR DLGA=128
VAR DLGB=129
VAR DLGX=130
VAR DLGY=131
VAR DLGUP=132
VAR DLGDOWN=133
VAR DLGLEFT=134
VAR DLGRIGHT=135
VAR DLGL=136
VAR DLGR=137
VAR DLGTOUCH=140
</blockquote>
Yes, I am beginning to hate the 3DS version of SmileBASIC for lacking user-defined constants. All the more reason I should get SmileBASIC 4 on my Switch, I guess.<br />
<br />
I have observed that <span class="button l">ZL</span> and <span class="button r">ZR</span> are nowhere to be found, and the return values <span class="fixed">138</span> and <span class="fixed">139</span> are also missing. I tested all fifteen <span class="fixed">DIALOG</span> types with <span class="fixed">XON EXPAD</span> enabled on my New 3DS XL, and <span class="button l">ZL</span> and <span class="button r">ZR</span> did nothing with any of them.<br />
<br />
I tested a handful of other values for the type parameter but came up empty. Any value I tried that was less than <span class="fixed">-15</span> or greater than <span class="fixed">5</span> produced an out of range error.<br />
<br />
For the sake of completeness: If you want to inspect <span class="fixed">RESULT</span> after showing a dialog using one of these types, it works as you'd expect for the <span class="fixed">DIALOG</span> instruction, except that <span class="fixed">RESULT</span> will never be <span class="fixed">-1</span>. Confirmation and timeout are the only values <span class="fixed">RESULT</span> will indicate.<br />
<br />
I hope that anyone still using SmileBASIC on the 3DS finds this useful. I'm not sure how applicable this is to SmileBASIC 4, or the Japan-exclusive SmileBASIC BIG on the Wii U. If this behavior was already documented elsewhere, now it's documented here as well.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-14267451119729732952020-11-16T12:48:00.000-05:002020-11-16T12:48:46.720-05:00Syrup and the Ultimate Sweet: Illustration 27If you type the game's name into Google, one of the search suggestions is the title of this post. I myself had gotten all the endings and was only missing this one illustration, and finding absolutely nothing to go off of on the internet, I set off on my journey to find it. As a result, I don't know exactly what triggered it, but I do have it now, and I have a pretty good idea of what might need to be done to get it.<br /><br />Oh and fair warning: I'm going to talk about the end of the story in this post, so if you haven't already played the game and seen all the endings, maybe don't read further. Your call though.<br /><br />I started by noting that the illustrations in the gallery are in the order in which they appear in the story. Illustration 26 is the one where Syrup goes to sleep after seeing what was recorded on the crystal ball, and illustration 28 is from when she goes to return the crystal ball and has a chat with Toffee before going to sleep. I figured it had to be somewhere around that specific point in the story.<br /><br />My first step was going for Gumdrop End and experimenting with different choices on Mt. Sorbet, but that got me nowhere. My next idea was to get Pastille to show up on Mt. Sorbet. It had been a few days and I kinda forgot what I needed to do for that. As a result I got Frozen End a few times. The gist of getting Pastille End is: be nice to Gumdrop and tell Pastille you wanted to help him (when given the choice to supervise Gumdrop, help Pastille, or leave), then let Gumdrop disappear but help Pastille find her. I forget if choices matter on Mt. Sorbet before telling Butterscotch you hate her in order to stay trapped in the cave. If you end up in Treat's cabin, you're on the right track, just avoid getting the Worst End and you'll be good. Once you're down off the mountain and have the crystal ball, look at it before going to sleep.<br /><br />Anyway, I got Pastille End. Then I remembered that Toffee End has a slight difference if you get it again, so I went and got Pastille End again, but this time Syrup had some new dialogue after seeing the scene in the crystal ball. After this, I got the elusive illustration 27.<br /><br />This was technically my third time getting Pastille End, but it was also the second time in a row getting this ending. My recommendation is simply to keep getting Pastille End, and eventually you should get the illustration. If you need to, play around with choices that you feel are less integral to getting Pastille End.<br />XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-36742796435094507442020-11-11T22:31:00.014-05:002020-11-16T12:09:24.815-05:00Sentimental Shooting: Compatibility UpdateI've been trying to resist the "storytime" intro I often do in my blog posts for this specific series, but this one does have a small story for context.<br />
<br />
I was perusing some old speedruns on YouTube when I noticed one in particular was using a program called D3DWindower to force <span title="You just lost.">the game</span> to run windowed. I had been searching for something exactly like this, but I guess I just hadn't typed the right things into Google. However, searching for D3DWindower by name and sifting through the results revealed an even better option: <a href="https://sourceforge.net/projects/dxwnd/" target="_blank" rel="nofollow">DxWnd</a>.<br />
<br />
DxWnd is now my official recommendation for running Sentimental Shooting on modern versions of Windows. It fixes 100% of the palette corruption issues and allows a number of other useful tweaks. Most of them don't actually apply to Sentimental Shooting, but the few that do could be useful depending on your needs.<br />
<br />
You can add Sentimental Shooting to DxWnd simply by dragging and dropping <span class="fixed">SGSTG.EXE</span> onto its window. In the <b>Options</b> menu, enable <b>Expert Mode</b> so that the <b>Tools</b> menu will appear. Then, with Sentimental Shooting selected, go to <b>Tools → Clear Compatibility flags</b> to clear any Windows compatibility options you may have set after following <a href="https://xt-8147.blogspot.com/2020/09/sentimental-shooting-revisited.html">my previous post</a>. After that, right click on <span title="You just lost.">the game</span>'s icon in DxWnd and select <b>Modify</b>.<br />
<br />
Here are the base settings I will recommend. If a listed item is a checkbox or radio option, it should be selected. Anything that's omitted should be left default (or in some cases, changed to suit your tastes). For reference, all of this has been tested on DxWnd v2_05_59, which is the latest version at the time of writing.
<ul>
<li><b>Main</b></li>
<ul>
<li>Name: Sentimental Shooting</li>
</ul>
<li><b>Main → Generic:</b></li>
<ul>
<li>Do not notify on task switch</li>
<li>No banner</li>
<li>Run in Window</li>
</ul>
<li><b>Main → Position:</b></li>
<ul>
<li>Hide desktop background</li>
<li>Keep Aspect Ratio</li>
<li>(W)idth: 640</li>
<li>(H)eight: 480</li>
<li>Desktop</li>
</ul>
<li><b>Video</b></li>
<ul>
<li>Initial virtual color setting: 8 BPP</li>
<li>Z order: top</li>
<li>Window size & position: Anchored</li>
</ul>
<li><b>DirectX → Emulation</b></li>
<ul>
<li>Renderer: OpenGL</li>
<li>Full bilinear filter (only if you can't achieve an integer scale)</li>
</ul>
<li><b>Compat. → Tweaks</b></li>
<ul>
<li>Win7 color fix (may not be needed outside of Windows 7)</li>
</ul>
</ul>
As I mentioned with the <b>Full bilinear filter</b> option, it's only necessary if you can't get an integer scale when <span title="You just lost.">the game</span> goes fullscreen. If you're unsure whether or not this is possible, divide your screen resolution's height by 480. If you get a whole number, congratulations, you can get an integer scale and don't need the bilinear filter. Otherwise, enable the bilinear filter to make <span title="You just lost.">the game</span>'s bitmap fonts look right, and to reduce shimmering in the scrolling backgrounds. Both of those issues are caused by non-integer scaling, and while the bilinear filter means you won't get the chunky pixels you deserve, it's better than the alternative.<br />
<br />
Once you have <span title="You just lost.">the game</span> configured and working when launched from within DxWnd, you can right click on it and select <b>Proxy → ddraw</b> to be able to run <span title="You just lost.">the game</span> without having to launch it from within DxWnd. When you do this, it will place some extra files in <span title="You just lost.">the game</span> directory and the settings will be applied automatically when you launch <span title="You just lost.">the game</span>.<br />
<br />
These options will force <span title="You just lost.">the game</span> to run in a pillarboxed 4:3 aspect ratio, so the graphics will appear as intended. If you're one of those people who hates "black bars", please seek help for your mental condition.<br />
<br />
With this new recommendation, the only remaining compatibility issue is for those who want to use a controller instead of the keyboard controls. There are three options here:
<ol>
<li>An XInput controller, with a compatibility layer that translates <span title="You just lost.">the game</span>'s DirectInput calls into the equivalent XInput calls. Basically, the reverse of x360ce.</li>
<li>A controller like the Logitech F310 or F710 (F310 = wired, F710 = wireless), that has a switch to toggle the controller between XInput and DirectInput. If you want to use a controller but lack a controller for your computer, this is probably the easiest option, and it has the side benefit of also working with modern games.</li>
<li>An older DirectInput-only controller, or one of the myriad of USB adapters for controllers from older consoles. As long as there's X and Y axes (not a POV hat) and at least three buttons, it'll work.</li>
</ol>
Looks like we can see the light at the end of the tunnel. There aren't really any more objective "best" options left, it's just down to user preference at this point.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-4507606157626025072020-11-10T14:36:00.000-05:002020-11-10T14:36:46.094-05:00Abusing C-Style Comment Syntaxes For Fun (and Profit)C originally only had multi-line comments, which work like this:
<blockquote class="pre">/* no comment */</blockquote>
All characters between the <span class="fixed">/*</span> and the <span class="fixed">*/</span>, including newlines, will be ignored by the compiler, and you're free to document your code as you see fit. People eventually got tired of typing <span class="fixed">*/</span> and thus the syntax <span class="fixed">//</span> for a single-line comment was born. Interestingly, we can abuse a combination of both comment syntaxes to easily toggle between two alternate blocks of code with the addition or removal of a single character.<br />
<br />
Feast your eyes upon this abomination:
<blockquote class="pre">/*
code block 1
/*/
code block 2
//*/</blockquote>
In that example, code block 1 is commented and code block 2 will run. However, add a single slash at the beginning:
<blockquote class="pre">//*
code block 1
/*/
code block 2
//*/</blockquote>
Now code block 2 is commented, and code block 1 will run instead.<br />
<br />
This works because when the beginning is <span class="fixed">/*</span>, it begins a multi-line comment. The <span class="fixed">/*/</span> ends the multi-line comment, and <span class="fixed">//*/</span> is a single-line comment. When the beginning is <span class="fixed">//*</span>, it's a single-line comment. The <span class="fixed">/*/</span> begins a multi-line comment, and the <span class="fixed">//*/</span> ends the multi-line comment.<br />
<br />
Have a nice day!XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-31337710749922159572020-10-30T14:42:00.000-04:002020-10-30T14:42:38.214-04:00Sentimental Shooting Graphics Files: Code UpdateSo, the disassembly thing is basically not going to happen. Or at least, not by me. As it turns out, people want tons of money for this kind of software and the free alternatives that I'm willing to run on my computer are lacking in documentation and the features I need to get my foot in the door. Some are written in Python, which is annoying to deal with because everyone has their own pet version of Python that they never upgrade from and require you to install for all their stuff to work.<br />
<br />
However, I can make my existing code better, and figure out more of the files.<br />
<br />
I've already made the code better, by translating it to C#. It runs faster and is far simpler now. The reason for the simplicity is because my original PowerShell scripts were designed to work with paths containing wildcards and the PowerShell pipeline, so there had to be a bit of overhead in there to transition from one file to the next cleanly. Stuff that an end-user probably wouldn't think of, but would absolutely annoy them if I didn't do it. Namely, closing file handles properly so files don't stay marked as "in use" and become unable to be moved, renamed, or deleted.<br />
<br />
But also in my typical fashion there was code in the PowerShell script for the <span class="fixed">UME</span> files, for a use case I didn't need: some of the <span class="fixed">UME</span> files are sort of grafted at the hip to <span class="fixed">System.ume</span>, and being that the script was designed to be able to process an arbitrary number of input files, I put in code that would try to use <span class="fixed">System.ume</span> from different directories, but if it's still in the same directory it'll keep the current <span class="fixed">System.ume</span> open, and just seek back to the beginning of it. It's kinda dumb, but I wrote it off as being forward-thinking. After all, this code I'm working on could very well be the basis for modding <span title="You just lost.">the game</span>, so maybe you have files for a few different mods you want to convert and they all have their own custom <span class="fixed">System.ume</span>... While ostensibly there to avoid closing and reopening the same file repeatedly, it does have this other use case.<br />
<br />
Yeah, like I said, it's a use case that I didn't actually need. It's technically preserved in the C# code, but the C# code also only handles one file at a time. If you want to process a whole directory, you get to call the method once per file, specifying the path to your desired <span class="fixed">System.ume</span> with each call. Yeah, there's some overhead to that, constantly closing and re-opening the same <span class="fixed">System.ume</span>, but the code's cleaner and easier to follow. I also got to re-examine what I was doing and remove some of the stupider bits, so the new code is just... <i>more better</i>.<br />
<br />
Both the <span class="fixed">PCG</span> code and the <span class="fixed">UME</span> code now exist as C# static methods, along with a couple static methods I created to see what was going on with my transformation of the input path to the output path, that I decided to leave in there because why not. They could be useful. Yeah, the methods don't take an output path as a parameter, they just transform the input path and then bitch if that file already exists. That's kinda how I roll I guess. I did put in a lot of work transforming the file names to be useful, it's not just extension swapping. For example, <span class="fixed">Akr1b.ume</span> will get transformed to <span class="fixed">Akira Stage 1 Background.bmp</span>.<br />
<br />
As for figuring out more of the files, honestly, without the ability to understand what's going on in <span title="You just lost.">the game</span>'s code, I can't do very much more. The interesting stuff, the <span class="fixed">PRT</span>, <span class="fixed">ROT</span>, <span class="fixed">SPR</span>, and <span class="fixed">DMO</span> files, will all take more work than I can realistically do right now. Running some quick commands to get file extension stats shows there's a couple other oddballs in there as well, <span class="fixed">Enemy.inf</span> and <span class="fixed">Enemy.pnt</span>. I've looked at those and have no clue where to start. This leaves two pieces of extremely low-hanging fruit: <span class="fixed">Option.dat</span> and <span class="fixed">Destroy.sco</span>. <span class="fixed">Option.dat</span> holds the options, of which <span title="You just lost.">the game</span> only has a handful, and aside from the difficulty setting they're all toggles. <span class="fixed">Destroy.sco</span> holds your high scores. They're such low-hanging that I already have classes for both to allow creating, loading, and saving them.<br />
<br />
<span class="fixed">Destroy.sco</span> was interesting because it contains the same structure repeated 12 times. I chose to represent this in two ways: named properties on my class to allow accessing a specific stage's data by character name, and a custom indexer that puts the stages in the order they appear on the stage select screen from right to left. That's actually significant because the score data in <span class="fixed">Destroy.sco</span> is not in the same order as the stage select screen. Figuring out the order was easy enough since it was simple to identify which values in the file were the scores. I just set each stage's score to a number from 1 to 12, so when I looked at it in-game I could see which score showed up where. Because I implemented an indexer, it didn't feel right without a <span class="fixed">Count</span> property and an <span class="fixed">IEnumerable<T></span> implementation, so those are present as well. I didn't implement <span class="fixed">ICollection<T></span> because it's not actually a collection and doesn't need management methods.<br />
<br />
Also, the scores are signed values, which is interesting because if you give it a negative score, it reads an incorrect graphics tile from <span class="fixed">System.ume</span> when it tries to display the minus sign, despite the fact that there is a minus sign available. Also, if it has to display more than 7 characters for the score (7 digits, or 6 and a minus sign), it won't fit properly in the box on the stage select screen. My code range checks and sanitizes both the scores and the percentages to avoid causing display bugs.<br />
<br />
The structure of <span class="fixed">Option.dat</span> suggests to me that the difficulty setting was probably added later on in development. It appears at the very end of the file even though it shows up at the top of the options screen (everything else is in the order in which it appears on the options screen), Normal difficulty has a value of 0, Easy has a value of 1, and Hard has a value of 2.<br />
<br />
Anyway, I've basically done all I can do in terms of figuring out file formats. I suppose that my next endeavor will be trying to tweak <span title="You just lost.">the game</span>'s graphics files to avoid the palette corruption. This will be annoying given that I can't get GIMP to load the palette from the files in its palette editor. Worst case scenario, I have to roll my own code to change a palette entry and update palette indices to point to the new color, because I'm not writing an image editor.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-88472962340807079092020-10-02T15:14:00.001-04:002020-10-02T15:14:44.272-04:00Sentimental Shooting Graphics FilesSo at the end of my previous post, I left a juicy little nugget of information about me poking around <span title="You just lost.">the game</span>'s graphics files. I've "completed" a major milestone in doing so, and while there's still stuff left to do, I have enough to actually post about.<br />
<br />
<span title="You just lost.">The game</span>'s graphics are in the <span class="fixed">PCG</span> and <span class="fixed">UME</span> files. Judging by file extension alone, you wouldn't expect them to be any kind of standard file format that's documented outside of a dark corner of the internet, but... you'd be wrong. Both are standard Windows <span class="fixed">BMP</span> files, changed ever so slightly so that they don't appear to be proper files if you change their extensions and open them.<br />
<br />
The <span class="fixed">PCG</span> files are the omake pictures, and simply have <span class="fixed">0x70</span> added to the first <span class="fixed">0x03E8</span> bytes of the file. That's it.<br /><br />The <span class="fixed">UME</span> files are the stage backgrounds, clothing fragments, enemy and boss sprites, menus, and everything else. <span class="fixed">System.ume</span> is actually a <span class="fixed">BMP</span> that's just renamed, but the rest are <b><i>very</i></b> close to being proper <span class="fixed">BMP</span> files. Some have extra bytes at the end that any viewer or editor can easily ignore, but the real kicker is that they have improper data for some of the header fields. You can make extremely minimal changes to allow an image editor to open them, but... for the stage backgrounds at least, we have the ability to make <span title="You just lost.">the game</span> output the file directly. Making these minimal changes does not result in a file that matches the one generated by <span title="You just lost.">the game</span>.<br />
<br />
Thus began my journey for matching output. I discovered that the stage backgrounds saved by <span title="You just lost.">the game</span> in the <span class="fixed">SNAPSHOT</span> directory have various values pulled in from <span class="fixed">System.ume</span>, including the color palette. Most of the <span class="fixed">UME</span> files for stage backgrounds actually have a zeroed out section of their palette where the palette from <span class="fixed">System.ume</span> should go, which made it easy to spot. Something about how <span title="You just lost.">the game</span> handles the data zeroes out <span title="Each row in a BMP file must be a multiple of 4 bytes wide, so if the image isn't a multiple of 4 pixels wide, up to three bytes of padding must be appended to the end of each row.">the padding in each row</span> by the time it ends up in the <span class="fixed">SNAPSHOT</span> directory, and any extra bytes at the end of the file get removed. Towards the end I identified two groups of files that needed different behavior, but couldn't pinpoint how to detect this from the file contents alone, so I gave in and implemented dirty hacks that check hardcoded filename lists. It's finally over, I have matching output for all 24 stage backgrounds, and no visible corruption in any of the other files, but... it doesn't feel right with the dirty hacks still in there. This is why I put the word "complete" in quotes in the first paragraph: It works, but I don't like it.<br />
<br />
One issue is that some files exhibit... interesting changes if the <span class="fixed">System.ume</span> palette is imported, even though they have the space for it. Some of these changes are easily identified to be incorrect, but others I'm not so sure. I have an idea how to proceed here, but it's low priority in the long run.<br />
<br />
A major sticking point is that I have no idea if my code that generates matching output for the stage backgrounds also does so for any of the other files. I have no way to make <span title="You just lost.">the game</span> output these files, and thus no way to see what needs to be done. Or, do I?<br />
<br />
I have reached a point where all of my remaining logical steps involve disassembling <span title="You just lost.">the game</span> to see how it loads the <span class="fixed">UME</span> files, handles the color palettes, and outputs snapshots. This will be difficult for me for three reasons:
<ol style="text-align: left;">
<li>I don't know x86 assembly</li>
<li>x86 assembly is far more complex than the assembly languages I've learned so far (Z80 and 65816)</li>
<li>I don't trust the NSA so I'm not installing Ghidra (so there goes its much-touted decompilation feature)</li>
</ol>
I can still think logically enough to know how to proceed after getting a non-Ghidra disassembler installed, though. I've already looked at <span class="fixed">SGSTG.EXE</span> in HxD, and I can clearly see the strings <span title="You just lost.">the game</span> uses. Windows executables include the names of the various API functions called by the executable, and I can see the various file names as well; so labelling all the strings I'm interested in and then searching the code for references to them seems like a cromulent first step. From looking around at different disassemblers, "identification of Windows API calls" is a feature that pops up a lot, which would be handy. Figuring out how it builds the palette from reading the files shouldn't be that difficult once I have my foot in the door, it's just a matter of copying data around and that's generally <span title="Famous last words.">pretty easy to follow in any assembly language.</span><br /><br />Still though, I now have PowerShell scripts that work for both the <span class="fixed">PCG</span> and <span class="fixed">UME</span> files, both of which produce output that matches what <span title="You just lost.">the game</span> outputs on its own for every file I can possibly verify it with.<br />
<br />
Fixing the palette corruption issues that the Windows compatibility modes mitigate by tweaking the corresponding <span class="fixed">UME</span> files looks to be possible. <span class="fixed">Logo.ume</span> defines a full 256-color grayscale palette but only uses a small portion of it. <span class="fixed">Enemy2.ume</span>, which contains the sprites in which I'd noticed some palette corruption, has plenty of unused palette entries. I just need to figure out which palette entries get corrupted, and move them to areas of the palette that were previously unused. The disassembly can potentially help with that, if I can catch where the palette corruption happens and discover its true extent.<br />
<br />
The pipe dream would be to fix whatever code is causing the corruption in the first place and just patch <span class="fixed">SGSTG.EXE</span>.<br />
<br />
I think I'll leave it there for now. I'm at the point where I can open a <span class="fixed">BMP</span> file in HxD and identify all the fields without having to consult an external reference. If I don't post anything on this subject for a while, I've probably drowned myself in x86 assembly just to tweak a silly hentai game, or given up.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-79157949733737033072020-09-21T19:28:00.005-04:002020-11-11T22:40:47.310-05:00Sentimental Shooting RevisitedSo a long time ago <a href="http://xt-8147.blogspot.com/2011/03/sentimental-shooting.html">I posted about this game</a>. In case you're unfamiliar and too lazy to click the link, it's an ero-danmaku game released in the late 1990s. I unironically enjoy it, not because of the nudity, but because of the gameplay.<br />
<br />
In my post, I mentioned that having the music enabled causes <span title="You just lost.">the game</span> to crash unless you're on Windows XP. The reason for this is now very clear to me after having done some basic research: Microsoft has been gradually degrading the MIDI support in Windows, and XP was the last version to have proper support.<br />
<br />
This means that you can, in fact, have the music enabled without <span title="You just lost.">the game</span> crashing. You just need to do some extra things first.<br />
<br />
First up, if you're on Windows 8, 8.1, or 10, you'll need to install <a href="https://coolsoft.altervista.org/en/midimapper" rel="nofollow" target="_blank">CoolSoft MIDIMapper</a>. Full disclosure: I'm using Windows 7, so I'm unfamiliar with actually using this.<br />
<br />
Next, on Windows Vista or newer, you'll need to install <a href="https://coolsoft.altervista.org/en/virtualmidisynth" rel="nofollow" target="_blank">CoolSoft VirtualMIDISynth</a>.<br />
<br />
Now, in VirtualMIDISynth, there's some configuration that needs to be done.<br />
<ol>
<li>On the <b>MIDI Mapper</b> tab, set VirtualMIDISynth as the default MIDI out device.</li>
<li>On the <b>Soundfonts</b> tab, you'll need to click the plus button and select a soundfont. You'll need to download one of these, and thankfully, the download page for VirtualMIDISynth has links to a good number of them. I downloaded the uncompressed version of FluidR3_GM, which so happens to be the first one in the list.</li>
<li>Do the requisite clicking of <b>Apply</b> and/or <b>OK</b>.</li>
</ol>
That's basically it. Now you can start Sentimental Shooting and enable the music. The crashing should be completely gone. If it doesn't work and you're on Windows 8, 8.1, or 10, try changing the default MIDI out device within MIDIMapper instead of in VirtualMIDISynth. Unfortunately, I don't have a computer running one of these versions of Windows to test on.<br />
<br />
However, enable the music cautiously, as the default volume was extremely loud for me. I had to crank it down to around 30% for it to not be louder than <span title="You just lost.">the game</span>'s sound effects. You can get back into VirtualMIDISynth's configuration using the system tray icon. From there, double-click on the soundfont you installed and the volume setting will be on the dialog box that appears.<br />
<br />
Additionally, there's something I did that you may want to do. VirtualMIDISynth has two global keyboard shortcuts enabled by default, and I was worried about them clashing with other games. On the <b>Shortcuts</b> tab, just click in each key combination's text box and press <span class="key">Spacebar</span>, that seems to have disabled them for me.<br />
<br />
<b>Edit (2020-11-11):</b> <a href="https://xt-8147.blogspot.com/2020/11/sentimental-shooting-compatibility.html">There's now a better solution for fixing the color palette corruption.</a> You should follow that post instead and ignore the suggested compatibility settings here.<br />
<br />
There's still one remaining issue with <span title="You just lost.">the game</span>, and to address that I need to contradict my earlier post. Specifically, the part where I said:
<blockquote>That's it, no compatibility modes, no running as administrator, and no extra settings.</blockquote>Without any compatibility options set on <span title="You just lost.">the game</span>'s executable (<span class="fixed">SGSTG.EXE</span>), some of the game's graphics palettes are corrupted. The only combination of them that seemed to fix the corruption for me was the following:
<ul>
<li>Run in 256 colors</li>
<li>Run in 640x480 screen resolution</li>
<li>Disable desktop composition</li>
<li>Disable display scaling on high DPI settings</li>
</ul>
The last two make sense, sort of, but the first two seem redundant to me: <span title="You just lost.">the game</span> already runs in 640x480 with 256 colors. Nevertheless, the palette corruption wasn't fixed for me without both of them checked. There are still two scenarios where the palette corruption will happen, and your only recourse to fix it is to restart <span title="You just lost.">the game</span>: If you sit at the title screen long enough that one of the demos starts playing, or if you <span class="key">Alt</span> + <span class="key">Tab</span> out of <span title="You just lost.">the game</span> and return to it later.<br />
<br />
If you're unsure what the palette corruption looks like, well, the logo when you first start up <span title="You just lost.">the game</span> isn't supposed to be red, or color-fringed. Also there's an enemy that sometimes appears outlined in white instead of black. Those are the only two instances of palette corruption I've noticed, at the very least.<br />
<br />
I've been tinkering with <span title="You just lost.">the game</span>'s graphics files and may be able to provide patched files that don't experience the corruption, we'll have to see. More on this as events warrant.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-59270248906595708582020-07-24T20:10:00.000-04:002020-07-24T20:18:10.359-04:00Re-establishing habits is a struggleSo, sometime in May of 2019, I injured my ankle. I don't even remember how I did it, I was just on one of my walks and went "man, my ankle hurts". It hurt so bad I had to take a few weeks off to let it recover.<br />
<br />
When I started being able to walk without pain again, I slowly ramped back up on my walks, always erring on the side of caution. I eventually got back to 100%, completely pain-free, and thought I was back to business as usual, but in reality, the damage to my established habit had already been done. What followed over the next several months was me gradually going out less and less, absolutely dreading the thought of it on most days, and forcing myself to go out anyway a lot of the time. In mid-February 2020, the burnout became clear and I stopped going out for my walk altogether.<br />
<br />
It seems rather coincidentally-timed with the rise of the plague, but the months of prior experiences are solid evidence to the contrary. It took until a few weeks ago for me to feel like going out again. However, I decided to ramp back up even more slowly than I did after the injury. Several months of rather extreme inactivity had taken their toll on my legs (and probably my weight, but I don't know for sure; I also stopped weighing myself in February).<br />
<br />
Fortunately, Nintendo to the rescue. They released Jump Rope Challenge on the Switch, which I started playing daily, just to work my legs through the inevitable soreness. Once I got to the point where my legs hadn't been sore for a couple weeks, I started going for a walk on every other weekday (that's Monday, Wednesday, and Friday, in case you live under a rock). It's not "The walk", it's just "a walk". One lap around my immediate neighborhood at a (comparatively) leisurely pace. My leisurely pace is probably a pace others would have to push to attain while walking, and the fact I can still do it is a good sign.<br />
<br />
I don't really have any concrete plan for ramping back up further, but I need to approach it differently than I approached the walk when I originally started doing it. I'm honestly kind of surprised I was able to keep doing it nearly every day for three years. Leading up to the ankle injury I'd begun taking Saturdays off. The original reason for starting it is no longer the case; I'm still reasonably fit and just need to keep my weight in check. To do that, I need an approachable schedule that's easier to maintain than "every day". That's where the Monday/Wednesday/Friday thing came from, and so far it's working.<br />
<br />
I think my next course of action is to increase the number of laps. This echoes how I did it originally. It's worked once before, I see no reason why it can't work again. The only difference is that back then, physical endurance was the limiting factor, and now the limiting factor is not wanting to immediately burn myself out again.<br />
<br />
Things are looking up in this regard.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-51189758654861037262020-01-05T23:02:00.000-05:002020-01-30T16:03:04.519-05:00MAGFest 18Of course I went to MAGFest. Of course I still staff the console room. But you already knew that, right? Right.<br />
<br />
Let's cut the pointless exposition and get on with it, shall we?<br />
<br />
<span style="font-size: large;"><b>Wednesday</b></span><br />
<br />
Like any good MAGFest trip for me, it starts on Wednesday. I leave in the evening, aiming to get there just after midnight. Well, that's precisely what happened. Arrived at 12:15 AM.<br />
<br />
<span style="font-size: large;"><b>Thursday</b></span><br />
<br />
Of course, the first thing to do is to go down to registration in good ol' Expo Hall E, which so happens to be as far away from the parking as possible, and pick up my badge. Interestingly, approximately everything physical tat-related was running behind schedule, so the staff lanyards weren't ready, neither were the staff shirts, and hell, neither were the freaking swadges. The swadges are neat, but ultimately conform to the definition of "physical tat". I have a pile of them in my room here, with very little reason to go find batteries for any one of them to power them up and play with them. The two most recent ones sorta solved this by also accepting USB power, but still.<br />
<br />
The staff shirt thing was a very last minute "we don't have them" thing where they sent out an email far too late for anyone travelling from any significant distance away to be able to read in time to pack staff shirts from previous years. Just shows the futility of changing the damn staff shirt every fucking year. They're redundant for consoles anyway, we have the vests. I don't re-wear mine outside the event, I'm not a big fan of red t-shirts.<br />
<br />
Anyway, Thursday is always the day I'm up for all 24 hours of, and this year was certainly no exception. I planned ahead and brought a travel mug full of coffee with me, which just barely lasted me until the coffee place in the atrium of the Gaylord opened and I could procure more. A move I should have repeated throughout the day, but more on that later.<br />
<br />
Eventually, the hotel went from being fairly empty to being "attendees everywhere" and the time of MAGFest was upon us. Grabbed a spot in line for the dealers' room so I could get in when it opened, and made three purchases which ended up being my only purchases of the weekend: A Super Game Boy 2, a cartridge of Final Fantasy Adventure for the Game Boy, and an actual legit copy of Rogue Galaxy for the PS2.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMIPllkvp8YqSyZTgGeD7rAvLK_geCkgWH1Z_npfCZGboZF2U-QNt-_D2ruDM1lRHmFbvcCFW11AwoRxXfe4ue4pWITgpfaOs_Yfrw44wa0YqSdOcYhyNlgcNvkzd28mBXwFYZJIVsInA/s1600/20200105_212501.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Picture of Super Game Boy 2, Final Fantasy Adventure, and Rogue Galaxy" border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMIPllkvp8YqSyZTgGeD7rAvLK_geCkgWH1Z_npfCZGboZF2U-QNt-_D2ruDM1lRHmFbvcCFW11AwoRxXfe4ue4pWITgpfaOs_Yfrw44wa0YqSdOcYhyNlgcNvkzd28mBXwFYZJIVsInA/s320/20200105_212501.jpg" title="" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">It's at an angle to avoid getting my shadow in the picture lol</td></tr>
</tbody></table>
The Super Game Boy 2 is almost identical to the original, but there are a number of reasons to seek one out:
<ol>
<li>It actually runs the games at the correct speed. The original model runs them about 3% too fast, which perhaps matters more for some games than others, but it affects <i>everything</i>, including the music. This point is most relevant if you're going to be speedrunning Game Boy games.</li>
<li>It has a link port. This coupled with having the correct clock speed makes linking to other Game Boy systems possible. They had to correct the clock rate issue and add the link port because of a little game called Pokemon. Ever heard of it? ;)</li>
<li>It has an extra set of borders to place around the game you're playing, with the original model's set of borders available if you enter a button sequence. Of course, if a game has a custom border, it'll still show that by default.</li>
<li>Also, some games have a different border if they detect that they're running on a Super Game Boy 2. One example I found while searching the internet for SGB2 stuff is Tetris DX.</li>
</ol>
Final Fantasy Adventure is perhaps better known to some as the first game in the Seiken Densetsu series, its full Japanese title being "Final Fantasy Gaiden: Seiken Densetsu". It's the precursor to Secret of Mana. I played and beat it on my Switch, courtesy of Collection of Mana, but I wanted an original cartridge.<br />
<br />
If you sift through my archives, you'll find a whole series of posts where I was playing through Rogue Galaxy, offering my thoughts on the story and explaining anything going on in my gameplay, whether easy, difficult, or neat. Well, I kinda glossed over how I actually obtained the game, and that's because I just kinda downloaded the ISO of it and chucked it on my PS2's hard drive. Given how much I liked the game, I wanted to actually have a legit physical copy, so this takes care of that. Interestingly, when I was flipping through the manual in the case, a purchase receipt fell out. The game's previous owner apparently bought it for $15 in a GameStop in Brooklyn, NY, back in 2010. I could tell it was GameStop inventory at one point or another in its existence anyway because of the damn stickers all over it, <span title="isopropyl alcohol to the rescue">which I managed to remove before taking the photo</span>. What you can't see in the photo is that the case is slightly damaged, but hey, I can probably source another case if it becomes a problem. Just find some bargain bin PS2 game and do a swap. Also, the box art has some water damage, but it isn't really visible.<br />
<br />
I made an attempt to test the SGB2 and Final Fantasy Adventure in the console room, but I forgot that the SGB2 is a Super Famicom cartridge and thus doesn't have the slots for the tabs in a US SNES' cartridge slot, and none of MAGFest's Super Nintendos have the tabs removed. Testing was postponed until I got home, where I popped the combo into my SNES and it booted right up first try, which was kinda unexpected.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjwc_Q7PNRb2Oj-zK5jp_xRW_9JJm_RCU-6lp4-CAS5MwoXyQIoClIif2xl1l4F49NrDAOewGCcgS8ma-W_X4bXFZLvHGXBVS_rWRQdFcrqHZPjAsvBBAeEooCPfWpd4SAt6ThYoLYPM/s1600/20200105_213425.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Picture of Super Game Boy 2 running Final Fantasy Adventure" border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjwc_Q7PNRb2Oj-zK5jp_xRW_9JJm_RCU-6lp4-CAS5MwoXyQIoClIif2xl1l4F49NrDAOewGCcgS8ma-W_X4bXFZLvHGXBVS_rWRQdFcrqHZPjAsvBBAeEooCPfWpd4SAt6ThYoLYPM/s320/20200105_213425.jpg" title="" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I changed the palette from the SGB's weird default dark purple thing<br />
to the much more sensible grayscale palette before taking this photo.</td></tr>
</tbody></table>
Yeah, that's one of the SGB2-exclusive borders. The SGB2 ones are nice. Also, in looking up how to access the SGB1 borders, I uncovered a bit of trivia I didn't know: almost all the borders have an idle animation that plays after a while of you not pressing buttons. You can also input a button sequence to start it playing immediately. I immediately went through all the borders looking at their idle animations. Also uncovered is that you can input that same button combo on the default SGB2 border to change its color.<br />
<br />
I've been dodging actually mentioning the button sequence and that's because there's a little more setup to it. To get the SGB1 borders you have to select the black border and exit the SGB menu, then enter the button sequence: <span class="button l">L</span> <span class="button l">L</span> <span class="button l">L</span> <span class="button r">R</span>. You'll hear a chime if done correctly. Go back into the SGB menu and you'll find the SGB1 borders available. If you input that button sequence with the default border selected, that's what changes its color. Finally, if you input that sequence with basically any other border selected, its idle animation will start.<br />
<br />
Anyway, 4 PM rolled around and I was finally able to check into my room. I wasn't the first one, and actually, all four people showed up this year, so no room to myself again. I only got to talk to three of them, interestingly. The fourth was never awake when I was awake.<br />
<br />
Fitness stuff still happened, I'll just mention that here and nowhere else.<br />
<br />
<span style="font-size: large;"><b>Friday</b></span><br />
<br />
So my first staff shift began promptly at midnight, and this is where the subject of my caffeination, or the lack thereof, comes into play. I was almost dead by the end of it. Anyway, dragged my ass upstairs and went to sleep.<br />
<br />
After a good amount of sleep I went back down to Consoles and did some of the challenges, for which I never actually claimed the one reward I earned: a single M-point. I've got enough physical tat, and I never spend M-points anyway.<br />
<br />
There isn't much I remember about Friday. It was really all just playing games and having fun. I figured out Pole Position on the Atari 2600 at some point. It's a surprisingly well-done game for the Atari 2600, somehow managing to cram all the necessary controls into a joystick and a single button. Like I said, fun was had.<br />
<br />
<span style="font-size: large;"><b>Saturday</b></span><br />
<br />
Another midnight, another staff shift. I was considerably less dead at the end of this one, on account of having actually gotten sleep. The consoles this year were (mostly) all in cages, locked with key-locks. Some didn't have key-locks and were instead zip-tied shut, which was annoying to encounter. This also meant that some consoles were a lot harder to do game swaps for than others. Basically any console with a front-loading disc tray, like the PS2 or Xbox 360. I still don't know what they were thinking with the placement of those, I had to turn so many cages sideways just to be able to open them far enough for the tray to fully eject. Also there was a GameCube whose lid latch had broken, which was fun to discover while attempting to do a game swap on said GameCube. It was working properly, I opened the lid and swapped the game, and then it just wouldn't close anymore. The "doing it live" solution got implemented: just tape it down.<br />
<br />
Anyway, after that shift, sleep.<br />
<br />
I had wanted to do another Pepper Palace run this MAGFest but had forgotten to go mid-day Thursday. Looked up their hours and discovered they were open until 10 PM, so I went after grabbing some dinner from staff suite. Tasted a bunch of stuff and ended up grabbing a salsa and a mustard. I got three bottles of hot sauce for Christmas, which influenced me to look at their non-hot-sauce products.<br />
<br />
Messed around with some computers in the Museum for a bit before heading down to do my final shift of the event. Man, these things fly by.<br />
<br />
<span style="font-size: large;"><b>Sunday</b></span><br />
<br />
Last shift, and this one ended at 4 AM instead of 8 AM like the others. No incredibly unusual requests for games this year, certainly nothing like previous years where an attendee would ask for a game reccomendation or say "I'd like to play <i>X genre of game</i> on the SNES, surprise me" or anything like that. Smooth sailing through the weekend. Got off my shift and went upstairs to get whatever sleep I could before about 10 AM, just to give me enough time to get my shit together and get out of the hotel before the hotel's deadline, which MAGFest said was 11 AM but the hotel said was noon. I dunno about you, but I'll trust what the hotel says over what MAGFest says in this regard.<br />
<br />
Anyway, the drive back was fairly uneventful, thankfully. Started to encounter a traffic jam due to an accident on I-95 southbound, but luckily the Dale City rest stop was right there. Stopped, took care of coffee-related business, and by the time I got back to the car, traffic was moving again. Some jerk tailgated me for a while on Route 20, but eventually found a cromulent passing zone and went about his way at 1.5x the speed limit or whatever those jerks think they're entitled to do.<br />
<br />
Video games are fun.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-1323186792760344232019-12-07T15:57:00.000-05:002019-12-07T15:57:47.596-05:00Revenge of the Bird King (Switch)Like many others, I was intrigued when this retro-styled indie game popped up on the Nintendo Switch eShop, on sale for a measly 9 cents. I mean, I had more than 9 gold points, so whatever, I grabbed it. There's a limit to how bad a retro-styled platforming adventure game can be, right?<br />
<br />
Well, sorta.<br />
<br />
It takes influences from a lot of classic NES titles, namely Mega Man and The Legend of Zelda 2: Link's Adventure. In addition, there's a central hub area on the world map that serves as a save point and a shop, and you warp back there after completing a level. So far, so good.<br />
<br />
The overworld is where the Zelda 2 influence shows itself. From the graphics tiles representing areas you can enter, to the black silhouetted enemies that pop up and pull you into a short level if you touch them. If you've played Zelda 2, it's very similar. Except that you can pause and select "exit to map" if you didn't want to actually get pulled into that short level by the black silhouetted enemies, which I'll leave as a plus.<br />
<br />
The main stages are very much Mega Man-inspired, mostly consisting of a series of screens you navigate without a huge amount of screen scroll involved until you reach the edge of the screen. There are a few exceptions, though. There's a stage that takes place on a train that's just one long stage rather than being divided up into screens, as one might expect a train stage to be. Also, there's a stage where you're flying a vehicle that's an autoscroller. There are other examples on a smaller scale, but those are the notable ones.<br />
<br />
The music is great. It's very NES-inspired, to go along with the graphics. It probably uses more sound channels than the NES had available, though. In the case that's true, they're not real chiptunes. Still enjoyable though. I'll take an NES orchestra.<br />
<br />
Controls are fairly normal, but have their quirks that are tied to the overall design and premise of the game. You play as a bird that uses guns. He has a sword, but you can't really use it in combat too much, it's more for clearing obstructions and knocking armor off of certain enemies. The main quirk is the guns: they're plants. You can plant seeds that grow into guns, and as you play through the game, more guns get unlocked. You have to buy the vast majority of them, but the basic pistol is unlimited. Just pressing the button grows a gun that you can then pick up and use until it runs out of ammo, but if you hold the button, a turret grows instead.<br />
<br />
If you were to go off of everything I've just said, you'd probably be 100% ready to plunk down your money for a neat indie retro-inspired platforming adventure game. However, there are a number of things that may make you reconsider, that I will now delve into.<br />
<a name='more'></a><br />
First and foremost: The game gives you zero indication of where you've been and where you still need to go. The overworld wasn't a problem in Zelda 2 because there were towns with NPCs to give hints, but here the overworld just functions as a drawn-out level select, making it a problem. Levels have multiple objectives and it's not possible to tell which ones you've done and which ones you haven't. Everything respawns within the level, so you can't even run past one of them to check. You just pick up an item or defeat a boss and go "wait, I already did that". To quote AVGN in the <a href="https://www.youtube.com/watch?v=prFQPqRYiGo&t=9m25s" rel="nofollow" target="_blank">Indiana Jones Trilogy episode</a> (9:25 timestamp):<br />
<blockquote class="tr_bq">
Some call it a platformer game, some call it an adventure game. I
classify it as a "Where the fuck do I go?" kind of game. Yeah, one of
those.</blockquote>
Second, it's possible to softlock in some stages. One of them is probably the very first stage you'll ever enter, it's right next to the hub. You need a weapon from later on in the game to get to the softlock, though. Partway through the level there's a giant key in the wall. With the gun that lets you float (yeah, even though the protagonist is a bird, he can't fly), you can reach a platform where you can use your sword to slash open a hidden passage in the wall. Continuing on with this carves out more of the wall and gets you tantalizingly close to the key, but I have yet to figure out how to actually get to the key. Once you enter the passage, that's it, you can't get back out and have to pause and select "exit to map". That's not too bad, at least you can get out of it. The key itself appears to go to a door in another level, but that's locked behind a door that I have yet to figure out how to get through. To open it you have to stand on a specific block, but as soon as you move it closes again. Not sure what I'm missing, and no clue where to find it.<br />
<br />
There's a bona fide softlock in one of the other stages, though. One where the "exit to map" option doesn't do anything. It's sorta related to a bug that pops up in a few stages. Each stage has its little opening thing where the first screen is revealed with a transition effect. On some stages, this plays out twice, complete with the music overlaying itself. On one stage, though, there's a ton of slowdown that comes with this, and while you can ease it notably by killing the first enemy you come across, it doesn't fully go away. The kicker is that if you fall in one of the pits, which would normally kill you, you don't die. You can just walk around underneath the stage, unable to get back out. It's at this point where you try to exit to the map, to find that it doesn't do anything. You have to quit the game and restart it. Hope you saved before going into that stage.<br />
<br />
Third: hitboxes seem dodgy at times. I find myself getting hit when I don't think I should be getting hit according to what's on the screen. This is especially problematic in the autoscrolling vehicle flying stage because it's littered with one-hit deaths. Also, anything that's supposed to kill you in one hit only subtracts three hearts from your life meter instead of emptying it. As a programmer myself, this makes no sense. Why in the name of fuck do you say "okay, the player's supposed to die if they fall in a pit, so rather than setting their health to zero, let's just subtract three." when you have a game where you can increase your max health beyond its starting value of three?<br />
<br />
Fourth: while the stages themselves are quite challenging, the bosses are not. Remember what I said a mile up the page about planting guns, and how if you hold the button, you get a turret instead? Well, as it turns out, if you just mash the "plant seed" button, by sheer volume of button presses you'll have it held down when seeds hit the ground, and they'll grow into turrets. Turrets everywhere. Turret spam is all you need to take down the bosses. Just run around spamming turrets and do a half-assed job at dodging to make sure the boss' health goes down faster than yours. Done.<br />
<br />
Yeah, you need the spread shot turrets for at least one of the bosses, and yeah, those seeds cost money, but money is really easy to come by and they're the least expensive seed in the game. You can have hundreds of these seeds no problem. Even better: one of the hidden items makes each seed sprout into two guns (or two turrets) instead of just one. While not that useful in the majority of cases because you'll never get to use the second gun (and no, their ammo counts don't stack if you pick up multiple), having two turrets from one seed makes it possible to defeat the bosses easily while conserving your seeds.<br />
<br />
Fifth is a mostly overlookable source of confusion: you can level up, but there's no indication of how close you are to levelling up. It just sorta happens. Each level-up increases the damage you deal, and some increase your max health. I think the max level is 10 since that's where I am and I haven't levelled up in forever, but given that you can't see progress towards your next level, who knows? It's mostly overlookable because it doesn't really matter that much. The damage increases are too small to be significant in the majority of cases anyway. One level-up results in you being able to defeat most enemies in one fewer shot, which is nice, but against bosses the extra damage isn't terribly noticeable because when you're spamming turrets everywhere, you don't really care about the damage dealt by a single shot.<br />
<br />
It's like they decided later on in development to add certain things, but didn't re-evaluate the parts of the game they'd already completed to see how those things were affected by the new stuff.<br />
<br />
Sixth, there's some TNT in some places, with lines drawn to nearby blocks colored differently from the surrounding terrain, suggesting that at some point I'll gain the ability to detonate the TNT and progress beyond those blocks. I'd really like to know where and when I get this ability, there's a fair amount of stuff gated behind it, and I've tried everything I currently have to no avail.<br />
<br />
What we end up with is a game that manages to be easy, challenging, frustrating, and buggy, all at the same time. If you have this game and paid any more than 9 cents (or your regional equivalent) for it, you probably want your money back and are cursing the world of digital distribution where you don't really own anything and all purchases are final. I'm just going to resort to a guide to figure out how to get that key and get the door to stay open, get the feathers from the challenge stages, and blow up the TNT, because I've been everywhere and can't figure it out.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-60858482929866864212019-08-07T16:46:00.000-04:002019-08-07T16:46:34.540-04:00Thoughts with XT: Unhealthy Breakfast PastriesAm I the only one who never really enjoyed Toaster Strudels?<br />
<br />
Toaster Strudels must be kept frozen until you want to eat them, at which point they must be heated, making them vastly less convenient. Also, you have to apply the frosting/icing (is there a difference?) yourself, delaying breakfast even further. Heating of anything from frozen yields inconsistent results, so much so that Toaster Strudels actually have a second set of directions for when you bite in and discover that it's still cold. They also get crumbs everywhere while you eat them.<br />
<br />
Pop-Tarts, on the other hand, can be stored at room temperature. They can be eaten that way too, if you just don't feel like toasting them. Underrated: eating a Pop-Tart straight out of the freezer, though this varies by variety. The Cookies 'n Creme ones yield the best results, from my extensive testing over the years. Pop-Tarts crumble way less while being eaten, and also come in way more varieties, from the sickeningly sweet Wildlicious and Gone Nutty ones that I wouldn't give to my worst enemy, to the clearly superior S'mores.<br />
<br />
From an advertising standpoint, Pop-Tarts were always the very straightforward "Hey look, these are Pop-Tarts. Enjoy!". Toaster Strudel, on the other hand, were the far more edgy "We're better than Pop-Tarts. Our commercial is going to show several reasons why we aren't, but don't worry, we're going to spin those as positives. By the way, we're better than Pop-Tarts. Look at how this kid has to get black market Toaster Strudels because his evil parents won't serve them to him. Did you know we're better than Pop-Tarts?".<br />
<br />
I'll take Pop-Tarts, kthx.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-13489069217015346512019-05-15T13:47:00.000-04:002019-05-15T13:47:08.907-04:00The microSD HeadacheI want to buy some microSD cards. So naturally, I go to a store where I can accomplish such a task. This used to be easy: simply walk up to the display, pick the one with the necessary speed/capacity, and go pay for it. Done.<br />
<br />
Now, it seems more complex, almost unnecessarily so, for a variety of reasons. Some reasons are understandable, and some defy any sense of logic.
<ol>
<li>My old standby, Staples, now only stocks the more-expensive-per-gigabyte PNY cards.</li>
<li>I can still find Sandisk cards at Wal-Mart, but it's an adventure.</li>
<li>For inventory control reasons, you can't actually remove one from the display yourself. So, find an employee once you've made your decision. It's whatever.</li>
<li>They stock both PNY and Sandisk cards, so it's easy-ish to compare price per gigabyte. It would be easier if the listed unit price was actually "per gigabyte" instead of "per each".</li>
<li>A closer inspection of their digital storage section reveals that almost nothing is stocked where it should be, this makes price comparisons difficult since you have to do separate searches for the speed/capacity combination you need, and the price thereof.</li>
<li>One of the devices I want a microSD card for is my Nintendo Switch. Why not just grab one from the section of Switch accessories? Well, those cards have a Nintendo logo on them. That Nintendo logo adds $20 to the price tag. I don't feel like getting ripped off.</li>
<li>So whatever, I've looked around and solved the puzzle of finding a suitable card and its price. Ready to buy, I look around for an employee to handle the inventory control, but they've all conveniently disappeared. The only ones I ever see are busy moving large amounts of stock to shelves elsewhere in the store, and thus don't have the tool/key/whatever they'd need to unlock the inventory control thing and sell me a microSD card.</li>
</ol>
Why not just buy one online and avoid all the hassle completely? I'm leaning more heavily towards doing that, to be honest. The trouble with buying them online that has always sent me to brick-and-mortar stores in the past is the prevalence of Chinese-made knockoff cards made to look like they're from a trusted brand, but with significantly less quality, ultimately ending in catastrophic data loss. If there's a place online where I can buy known legitimate Sandisk microSD cards, I'd love to know about it.<br />
<br />
The worst part of this problem is that it's one of knowledge. Your average person who doesn't know a heck of a lot and just wants a microSD card can navigate the maze of confusion with relative ease by finding an employee first and being guided through the nightmare unscathed, possibly receiving bad advice from a misinformed employee in the process. The problem only arises as soon as you know what you're looking for and just want to get in, get out, and get on with your life.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-46064102282773861962019-01-08T19:50:00.000-05:002019-01-08T19:50:36.652-05:00MAGFest 17Continuing my resistance to using the year number instead of simple sequential numbering, this post is all about the MAGFest that just ended.<br />
<br />
This year, I wanted to get all my clothing into one bag, and success was had. Last year, I took workout clothing, but I was an idiot and took so much other shit I didn't use that I couldn't fit it in my regular duffel bag, so I had to take an extra bag to hold the workout stuff. After omitting the shit that I didn't use, it all fit quite nicely into one bag.<br />
<br />
I kinda screwed up signing up for shifts, I didn't get to it fast enough and a lot of my preferred stuff was already taken. This MAGFest was a mishmash of both Floor Staff and Inventory as a result.<br />
<br />
<span style="font-size: large;"><b>Wednesday</b></span><br />
<br />
I drove up on Wednesday evening, just like usual. Fortunately, this year there was zero snow in the forecast, so I didn't have a repeat of last year's anxiety-inducing 25MPH drive north. I parked in the Gaylord's garage this year, because after careful consideration, the reserve-a-spot lots that MAGFest was promoting were both uncovered, one was a gravel lot, and my usual garage a block away would charge me in real time as opposed to in Gaylord room-nights, meaning I'd theoretically have to pay more to park there. For once, the Gaylord's garage looked like the cheaper option.<br />
<br />
I arrived at 11:30 PM or so, grabbed my badge, and walked up to the LAN room to hang out with some friends for a while, and eat the meal I'd made for myself to eat when I arrived, which consisted of a ham and cheddar wrap with ground pepper, shishito peppers, sun-dried tomatoes, and brown mustard, a banana, and some Coke Zero. After that it was just me aimlessly wandering around the hotel.<br />
<br />
Almost immediately in the wandering, I noticed this new vending machine with ice cream inside. It looked kinda neat, so I took a picture of it. Sadly, I don't have any video of it in action. I bought some on Saturday after dinner, just for the novelty. It's sorta like Dippin' Dots, and while it was neat, it wasn't really worth the price.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_FxSupXa_n12tjsVVGKF-yDTEnQ8T5x4_cjhAQsqZCOIgK7f5CtXv99gw5l-X7jAdLDmvZEp6bbhhCH3D8Hfj5JwBxZkPTNKeNbPj7Lwb55vVzBSKwQgIW6-UySMb56QNTGr-UU67Lk/s1600/20190103_062540.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_FxSupXa_n12tjsVVGKF-yDTEnQ8T5x4_cjhAQsqZCOIgK7f5CtXv99gw5l-X7jAdLDmvZEp6bbhhCH3D8Hfj5JwBxZkPTNKeNbPj7Lwb55vVzBSKwQgIW6-UySMb56QNTGr-UU67Lk/s320/20190103_062540.jpg" width="320" /></a></div>
<br />
The rest of the wandering was just, you know, wandering.<br />
<br />
<span style="font-size: large;"><b>Thursday</b></span><br />
<br />
Wandering continued well into Thursday, where around 2:30 AM I decided to try and find coffee. Spoiler alert: you can't get coffee in National Harbor, MD at 2:30 in the morning. I walked all the way out to where the gas station and McDonald's were, to no avail. The Starbucks was closed. Even the coffee shop in the Gaylord's atrium was closed.<br />
<br />
At 5 AM, the atrium coffee shop opened, and I finally got my damn coffee. It was almost four dollars, but I didn't really care, I needed the caffeine.<br />
<br />
Later I picked up my "swadge", which is basically just a custom PCB with a microcontroller and some other shit on it that does token novelty stuff. Honestly, my badge collection is filling up with this stuff, and I don't touch it after the event. Can it be optional for staff in the future? That'd be nice. Anyway, I appear to have been the only one to whom they didn't give batteries, so I had to borrow two rechargeable AA batteries from Consoles while I was on shift just to have the thing light up like it was supposed to.<br />
<br />
Thursday was home to the sole panel I went to: DwangoAC's TASBot panel. He highlighted some technical difficulties (and a baggage handling problem that broke some of his stuff...) while giving a nice presentation and showing a few TASes of Super Mario Bros. 3 and Super Mario World. If you've seen all the various TASes of those that have been shown at GDQs, then you've seen the TASes he showed here.<br />
<br />
After that came the sole dealers' room raid of the event. My bounty was Super Nintendo-filled:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm1PecFxr6wYqU7kb7G_aL83mpewnJy1JPz963AgigvwRkOILGiYddiCP3QvbrNjF_LE4BSaRb2HiSW-YYBTY5aXeCGG2c6hrroRBCAPdMyA2WR4lUZXr1mHGXHoS2sbs0upH8CQGzDFw/s1600/20190108_191006.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm1PecFxr6wYqU7kb7G_aL83mpewnJy1JPz963AgigvwRkOILGiYddiCP3QvbrNjF_LE4BSaRb2HiSW-YYBTY5aXeCGG2c6hrroRBCAPdMyA2WR4lUZXr1mHGXHoS2sbs0upH8CQGzDFw/s320/20190108_191006.jpg" width="320" /></a></div>
<br />
Getting cartridges to boot in old systems is sometimes a hassle, so Future XT™ will chime in with details about that.<br />
<br />
<b>Future XT™:</b> Hey, Past XT™! Super Metroid, The Lost Vikings, and F-Zero all boot just fine with zero or very little hassle. I've already spent a while playing Super Metroid and died like an idiot trying to sequence break and get the Wave Beam early. Anyway. Unfortunately, Donkey Kong Country 2 and 3 are very temperamental, but I have gotten both of them to boot. I'll give their contacts a good cleaning with some isopropyl alcohol and see if that doesn't help. <i>*mutters something incomprehensible about still needing to do this with Blaster Master*</i><br />
<br />
Back to you, Past XT™.<br />
<br />
<b>Past XT™:</b> Thanks for the input there, Future XT™! Now, where was I? Oh yeah, that's right...<br />
<br />
I bought a Super Famicom cartridge of Super Metroid because Japanese cartridges are cheaper than their US counterparts for some silly reason. The Japanese and US ROMs of Super Metroid happen to be identical, with English text and an option for Japanese subtitles. It's just the cartridge shell and label art that are different. All the more reason to break off those tabs in your SNES' cartridge slot.<br />
<br />
4 PM rolled around and I checked into my hotel room. I was the first one of the people assigned to my room to get there, so I had to dodge putting my debit card on the room for incidentals. As it turned out, neither of the other people assigned to my room materialized, so I ended up with a hotel room to myself for the weekend. Not complaining.<br />
<br />
Later I remembered that I hadn't yet paid for parking, so I went back to the hotel reception desk to take care of that. Or at least, I tried to take care of that. There's a separate exit lane for pre-paid parking, and it would have taken the whole thing off of my mind for the weekend. Unfortunately for me, the guy at the reception desk misunderstood my request as "activate the parking lot in/out privileges on my room card" and my attempts to dumbfoundedly rephrase "I'd like to pre-pay for parking" so that I could get my point across failed spectacularly.<br />
<br />
I didn't have a staff shift on Thursday night this year, so I just played games for a while and went to bed. I beat World 2 of Yoshi's Island, including successfully doing a <a href="https://www.youtube.com/watch?v=kLn2FqOhvFQ" rel="nofollow" target="_blank">1-1 warp</a> on one of the levels. I also figured out how to be reasonably decent at Asteroids on the Atari 2600.<br />
<br />
<span style="font-size: large;"><b>Friday</b></span><br />
<br />
Going to bed marked the end of my usual really long first day of MAGFest. I got up at 11 AM on Wednesday and didn't go to sleep until 2 AM on Friday.<br />
<br />
During my wandering around on Thursday morning looking for coffee, I'd noticed a shop in the National Harbor area that I'd never had the opportunity to notice before because I always just stay in the hamster habitrail: Pepper Palace. They sell hot sauces, spicy seasonings, and lots of it. I went back there on Friday, spent a while looking around the store, and using their sampling station to try various sauces before settling on a couple to buy. I ended up with a bottle of Wok Dis Wey, which has a panda on the label and came with a panda keychain (they all had different ones, so I spent a while looking at them to figure out which one I wanted), and a bottle of The Great American Hot Sauce. Wok Dis Wey is sweet and spicy, and The Great American Hot Sauce has a nice smoky flavor to it.<br />
<br />
After that, I walked over to Subway and bought lunch: my usual footlong sub. I ate half of it and saved the other half for the trip home. Hotel rooms have refrigerators these days, did you know that? They keep food from going bad in the short term. They're nice.<br />
<br />
Once I was back in the hotel and fed, I went down to consoles and did some of the challenges. I accrued enough points to get a couple rewards, and declared myself done there. I didn't actually pick up my challenge rewards until Sunday morning, though.<br />
<br />
I did another walk around the dealers' room before my shift began and flagged a couple things as "if they're sti2ll there later, possibly buy them", but then I never went back later to see if they were still there. They were all lower-priority things, but still, it would've been neat to get a SNES mouse, the mouse pad that goes with it, and Mario Paint. Maybe next year.<br />
<br />
Friday was the beginning of possibly the worst thing I've ever had to do: a 12-hour shift. I made the mistake of standing for the entire first four hours, which was an Inventory shift. Given that the second four hours was Floor Staff, which involves a lot of walking, that didn't turn out so well. I ended up trading off some Floor Staff work with others who were on Inventory just so I could rest my feet.<br />
<br />
I say the 12-hour shift wasn't that great, but it could've been far worse. I originally had an entire extra mathematically unnecessary shift in my schedule that would have made it a 16-hour shift. Once I did the math and noticed the extra shift, I dropped it. In the meantime, though, I was very close to emailing STOPS and asking if I could work something out to swap shifts with another staffer.<br />
<br />
There was cake during the shift, that helped somewhat. As seems to be the usual when a group has cake and wants to offer me some, I was invited over to get a slice by one of the higher-ups asking me if I liked cake. It was a "Do you like cake? Because we've got cake!" kind of thing.<br />
<br />
On one of my bathroom breaks I experienced something I can only really explain in video game terms: I call it an NPC interaction moment. Basically, staff can do certain things that regular attendees can't, in this case it was the ability to enter the expo hall through doors marked as exits. Ostensibly for the convenience of staffers transporting large items or something that need to use the door that's most convenient to them, but certainly usable by me for a quick bathroom break without having to run all the way back around to the entrance in order to return to my shift.<br />
<br />
The security staffer on duty at that exit door saw me walking over to the door and said "you can't enter here, this is an exit". I showed my staff badge, and he said "oh wait, you're staff, go on in". It's like in video games when there's a guard standing in front of the door you need to go through that refuses to let you pass no matter what, but when you have that one key item that grants you permission to pass (and, typically, progress the story), he immediately changes his tune.<br />
<br />
The 12-hour shift took me into Saturday as well.<br />
<br />
<span style="font-size: large;"><b>Saturday</b></span><br />
<br />
During my shift, I saw a Wii running a game that had been left on this screen. I don't know what game it was, but since Waluigi is a character everyone likes to talk about (previously WALUIGI AMIIBO PLZ, now mostly how he's not in Smash), I found this kinda funny and took a picture of it. It stayed that way for several hours.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-q4ufWdH3E2a0XXSzJV1bZ7Nlqepnn-JIzozsz_4IeMC-Y-QAN8Bpx6j9pYwh_bz1MmSc1z2qJm7-Vyf1mwOfq9Ln6j-wipHdkoDa8BWvFlJmrui9ExX4hJiLVYpVnAWX4Xydx18mo8I/s1600/20190105_003322.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1200" data-original-width="1600" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-q4ufWdH3E2a0XXSzJV1bZ7Nlqepnn-JIzozsz_4IeMC-Y-QAN8Bpx6j9pYwh_bz1MmSc1z2qJm7-Vyf1mwOfq9Ln6j-wipHdkoDa8BWvFlJmrui9ExX4hJiLVYpVnAWX4Xydx18mo8I/s320/20190105_003322.jpg" width="320" /></a></div>
<br />
I haven't been mentioning it here, but of course, I went to the Gaylord's fitness room once every day. I absolutely didn't feel like doing anything other than sleeping after the 12-hour shift, so I had to do Saturday's workout after I woke up.<br />
<br />
My next (and final) shift didn't begin until Sunday, so I had a bit of time to kill. I decided to spend it playing Super Mario World. A couple of other people showed up and we started passing the controller around after each level completion, stomping our way through the game. Before they had to leave, we got to the end of World 6, I pushed it a bit farther to partway through World 7 (with all of Star World complete and Special World unlocked) before my shift.<br />
<br />
It didn't help that we were playing it on an LCD TV, which meant there was input lag messing with us and making us miss easy jumps and stuff. Using the cape is a lot harder when there's a significant delay between pressing a button and seeing the result on screen. Anyway.<br />
<br />
<span style="font-size: large;"><b>Sunday</b></span><br />
<br />
Consoles must have been through some shit in the hours prior to me and the others that comprise the usual evening crew arriving on the scene, because when I got there, the operations officer on duty said "hey, a competent staffer!". What the hell was someone screwing up? Staffing consoles isn't even that difficult of a thing to do correctly!<br />
<br />
Anyway, this was more my usual style of shift: only eight hours long. After it ended, I went down to the fitness room for one final workout before packing up and heading home. Parking ended up being cheaper as expected, $72 instead of $80.<br />
<br />
The one remaining issue I have yet to solve reared its ugly head once again: driving fatigue on the way home. I kept two 500ml bottles of Coke Zero and the other half of that footlong sub I got on Friday for this purpose, but it didn't work. I had to stop a few times to regather myself. One time I stopped and walked into a McDonald's just to use its bathroom. Apparently you can order something that vaguely resembles food there? I dunno.<br />
<br />
I prevailed over the driving fatigue one way or another and made it home, and hey, now I'm here typing this, taking photos of things I bought, and grumbling about how uploading pictures to Blogger doesn't work in Pale Moon. Well, it kinda works. You can upload them, but you can't add them to your post. I don't have the patience to pretty print and reverse engineer obfuscated JavaScript just to look for a solution, so I get to launch a Chrome incognito window instead.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-91215356288108986032018-09-30T03:24:00.001-04:002018-09-30T03:24:48.393-04:00Octopath Traveler: Session 19I did a little work on the spreadsheet since I got access to a whopping one extra weapon in Wellspring now that Alfyn can use Inquire on everyone there, and then while pondering how best to add a sheet for his concoctions, I had to resist my inner DBA instinct to relate the hell out of the data (in a spreadsheet, running through a heavy and sluggish layer of JavaScript, mind you). I think I'm going to bite the bullet and manually enter all the effects, even though I could do stuff like "Oh, Noxroot deals with poison! Make the sheet automatically recognize that it cures poison on allies and inflicts it on enemies! And by the way, it also deals fire damage to enemies! And if you use it on a single enemy, the fire hits twice!". Just reading that and thinking about how you would lay that out to all neatly and automatically figure itself out is a nightmare that anyone can realize regardless of technical level. Remembering that the best way to complete a game is to actually play it, I put down the Google Sheet and picked up my Switch.<br />
<br />
Where was I? Oh yeah, Alfyn and Therion. They're both in the party so they can both get experience, so let's jump straight into Alfyn's Chapter 3, shall we?<br />
<br />
Alfyn arrives in Saintsbridge and witnesses another apothecary examine a wounded man and then refuse to treat him. Alfyn doesn't understand why he refused treatment, and the response of "some people aren't worth saving" doesn't really help, because in Alfyn's mind, everyone is worth saving. Alfyn tends to the man, whose name is Miguel, and finds out he's a thief during the process. He promises Miguel that they'll raise a glass together at the local tavern once he recovers, but only if he agrees to stop the whole thievery thing. Oh Alfyn, so naïve.<br />
<br />
Checking out the local tavern himself, Alfyn notices a child passed out on the floor and a mother crying for help. Alfyn tries to figure out why the kid's passed out, but the other apothecary shows up and does it better, and reveals his name to be Ogen. Apparently it was the snow peas his mom no doubt had him eat. Anyway, Alfyn goes back to check up on Miguel and ends up staying there the night. Once he wakes up, Miguel's gone, and of course, immediately back to being up to no good. Specifically, Miguel is now holding the kid from the tavern at knifepoint in an attempt to get money from his mother. Upon seeing Alfyn, he grabs the kid and runs off into the nearby woods.<br />
<br />
Alfyn follows, fight ensues. Every time Miguel recovers from being broken, his weaknesses change, but the standard rhythm of breaking his guard and then unloading Divine skills and other high damage attacks did the job. Alfyn tends to the kid, who got stabbed by Miguel, and takes him back to town.<br />
<br />
As Alfyn is leaving town, he runs across Ogen, and they get to talking. The stage of apothecary-ness that Alfyn is in is apparently a pretty common early apothecary thing, you know, the whole "I wanna help everyone regardless of anything" phase. Ogen tells his back story, which explains how he progressed on from the naïve stage that Alfyn is in, to the more realistic "I choose who I treat" stage. After some compliments about Alfyn's tonics, the two part ways. Alfyn randomly decides to head to Orewell next.<br />
<br />
Therion's Chapter 3 is in Wellspring. Since I ended last session with Olberic's Chapter 3, which also took place there, I could've done Therion's first, but decided to get a change of scenery instead.<br />
<br />
Therion speaks to the shadiest looking NPC he can find in hopes of finding the black market in Wellspring, and soon enough he's got his lead: go to the tavern and order something that isn't on the menu. The real black market is in a nearby cave, and it's run by the tavern keeper. There's a guarded building with some merchants in it in town, which I mistook for the black market since the merchants inside talk about it. Anyway, now that he's found the black market, Therion needs a way in. Given the choice between walking all the way back to town to hit up the tavern keeper again, or simply stealing a mask from an NPC five feet away from me, I chose the latter.<br />
<br />
Therion is close to getting the emerald dragonstone when it gets stolen by some other thieves. Therion chases after them and has a reunion with his old buddy, Darius. They aren't on such good terms anymore, so guards had to be fought, and Darius had to be pursued. Darius just out of his grasp, Therion ends up fighting his main guard, a guy by the name of Gareth. Gareth has a couple minions who heal him a lot, and he keeps changing stances, which changes which of his weaknesses are available to be hit, but once his guard is broken it's all the same anyway, so a healthy beating from Draefendi's Rage and Aeber's Reckoning saw him defeated.<br />
<br />
Darius is headed to Northreach, so Therion is naturally following him there. Darius' group basically controls the town, and they now have both the emerald dragonstone and the gold dragonstone. I really want to refer to them as the dragonballs, but there's only four of them. Anyway, shit's gonna go down when Therion gets there, you know, whenever I actually do his Chapter 4.<br />
<br />
For now, I'm in that "between chapters" state, and I have a plan. Run around doing inquiry and thievery, level up Alfyn some more so I can do more inquiry (I'll impose a reasonable limit on it, probably the level 50 milestone since I just passed the level 45 one, although I have yet to encounter someone who requires higher than level 60 and it's tempting to go for that). I also want to give those four extra shrines a try now that I have better equipment and so forth. There are also various NPCs guarding various buildings that I haven't defeated yet due to their high star ratings, I'm probably more than strong enough now for either H'aanit or Olberic to beat them senseless in relatively short order. There's a fair amount to be done, so hopefully I can get a decent portion of it done before delving into Chapter 4.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-85545477295259321792018-09-29T06:06:00.002-04:002018-09-29T06:06:59.669-04:00Octopath Traveler: Session 18After a few days of making sure I wasn't falling too far behind on YouTube, I decided it was time to do Chapter 3 for Cyrus and Olberic. But first, a little equipment shuffling and party maintenance. I decided to put Alfyn in the party this session, to let him level up a bit. Both Cyrus and Alfyn needed a bit of attention, because Alfyn had no accessories, and neither had a secondary job as I tend to remove secondaries from people when I take them out of the party. Not wanting to go all in on equipment knowing full well that I don't even have access to all the equipment from the third town in each region, I just shuffled the good stuff around.<br />
<br />
Cyrus arrives in Stonegard looking for the tome <i>From the Far Reaches of Hell</i>. He starts his search at the local book bindery, and ends up talking to the person who did the translation. His name is Dominic, he's not too proud of having translated it, but he was in a bind and really needed the money. Cyrus had been noticing someone following him for a while, and finally confronts them. The person turns out to be Lucia, the assistant to the Royal Academy of Atlasdam's Headmaster, Yvon. She says Yvon is up to no good and that she can't stand by while he does it, and tells Cyrus that Yvon grew up in Stonegard. Being the naturally curious scholar he is, Cyrus wanted to visit the house. However, as soon as he enters, Lucia attacks him.<br />
<br />
Cyrus wakes up in a dark room whose only exit is straight up, being taunted by Headmaster Yvon. Lucia is right there with him. Yvon leaves Cyrus down there to starve after Cyrus refuses to join him, and after a little bit of looking around trying to find an exit, someone else opens the hatch and lowers a rope. Surprise, it's the student who wanted the "personal lessons", Therese! However, Yvon shows up and takes her hostage, so Cyrus naturally decides to go save her and stop Yvon in the process. Also, Lucia is completely gone.<br />
<br />
The enemies in this area spam status effects and were rather annoying to fight. I didn't really have the best weapon spread in the world, and it didn't help that both Cyrus and Alfyn were a bit over 20 levels behind H'aanit and Ophilia. Alfyn was basically on Donate BP duty with the Merchant secondary I gave him, since his damage is kinda crap. A lot of things were weak to Bow, this led to me spamming Arrowstorm, and using Draefendi's Rage with reckless abandon. Whatever, it worked.<br />
<br />
Cyrus finally reaches Yvon's chamber, suitably placed in his basement at the furthest point from the stairs down from the ground floor. He pulls out a blood crystal not unlike the ones Cyrus found in Quarrycrest, uses it to transform into a demon version of himself, and thus the battle is on.<br />
<br />
Unlike previous battles of this nature, there was no "can't use these weaknesses until you kill the minions first" mechanic. He gained more hits on his guard every time he recovered from being broken, but also gained another weakness. At one point, he "lost control of himself" and got a permanent critical hit buff. I just kept hitting him with Draefendi's Rage and Amputate, and he died before too long. In typical "I get to get my last words in before I actually die" fashion, he spouted something about immortality and a promise having been broken.<br />
<br />
Therese passes out shortly after being rescued, so Cyrus takes her back to the inn. Once she comes to, they have a bit of a conversation, wherein Cyrus finds out that Yvon was plotting to kill Cyrus, and then head to Duskbarrow. Given that <i>From the Far Reaches of Hell</i> is still yet to be located, Cyrus decides that answers will be had in Duskbarrow.<br />
<br />
Fast travelled over to Wellspring, did a bit of inquiry now that Alfyn is above level 40, and unlocked more stuff at the general store. Yay. Wellspring also happens to be where Olberic's Chapter 3 takes place, so I swapped him in, set his secondary as Merchant, and changed Alfyn over to Scholar so he could use some JP to learn Analyze.<br />
<br />
Olberic asks around about Erhardt and finds that he's highly respected here, for defending the town from lizardmen. Just as he's getting to business with the captain of the guard, the lizardmen attack, and Olberic joins in on the defense. After fending off the attack, Olberic decides to push deeper into their cave, where Erhardt has already been, fighting lizardmen alone. Erhardt is surprised to see Olberic, to say the least. They fight off some more lizardmen, and then the lizardmen chiefs attack, so they split up and each take one of them.<br />
<br />
It was an interesting fight, the chief didn't attack as long as its minions were alive, so I identified weaknesses and wore down the leader's guard for a bit before taking them out. The chief itself died shortly thereafter. What, does the combination of Draefendi's Rage and Brand's Thunder hurt or something? Oopsie!<br />
<br />
Anyway, Erhardt and Olberic have themselves a good discussion about everything that's happened, and it doesn't really seem like Olberic actually wants to kill Erhardt. He does challenge him, though, which was fun. Erhardt had a bunch of weaknesses, but the only one I could exploit was Polearm, so I basically just poked his guard down, beat him around a bit with Brand's Thunder, cleaned up HP/SP/status as necessary, and repeated ad nauseam. If you're reading this and haven't yet done this fight, equip the accessory that prevents Blind. It'll help.<br />
<br />
Olberic gets the name and location of the guy who plotted the downfall of Hornburg, a man by the name of Werner, who went to Riverford. As per usual, that's Olberic's next destination.<br />
<br />
After I finished that, I went around, wrapped up some side quests, beat the guard in front of the Wellspring black market, did some inquiry with Alfyn, and had Therion steal some things. There's still quite the number of side quests that I have no idea how to continue them, so every time I get a few more key items, I go around and try a few that I think they'll work for, usually to find out that I was wrong. Whatever, lol.<br />
<br />
Up next, Alfyn and Therion. I'm still waiting to see if all the stories meet up in one "gotta save the world" sort of thing. I've seen a mysterious hooded figure following people around, notably Tressa at the end of her Chapter 3, and this hooded figure looked a lot like the one that ended up being Lucia. There's also one among the Saviors mentioned in Ophilia's story, and if I remember correctly, the Saviors have also been brought up in Primrose's story. They're definitely up to no good regardless, so they'll inevitably get the smackdown.XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-1041170397324372242018-09-24T23:05:00.001-04:002018-09-25T03:37:49.068-04:00Octopath Traveler: Session 17Between last session and this one, a quick Twitter interaction led me to test what stat the healing spells are linked to. As it turns out, it's Elem. Def., so Ophilia now has armor that boosts that. My heals are back up to being useful again. With that done, I fast travelled to Victors Hollow and started Tressa's Chapter 3.<br />
<br />
Upon arrival, she starts looking for something that she can sell at the Merchants' Fair in Grandport. A map at a local merchant catches her eye, that the merchant seems willing to let go of for cheap, but she makes the mistake of letting the merchant know it actually has some value, so just like that, price jacked up to unreasonable levels. She also comes across Leon, the pirate-turned-merchant she encountered earlier in her journey. As it turns out, the map belonged to a pirate friend of his, named Baltazar. Tressa decides to get the one and only thing that the merchant was willing to trade for the map, a stupidly huge shield. Having successfully traded an incredibly valuable shield for a treasure map, she takes it to Leon. Back story ensues, but basically he ends up telling her to keep the map and to find the treasure herself.<br />
<br />
So she goes and does precisely that. Guarding the treasure is a beast with <span title="This game sadly mixes up the terms "venomous" and "poisonous". Venomous beasts actively inject their venom when they bite, whereas the poison is just sorta always there in poisonous beasts.">venomous</span> claws, so to battle we go. Because of my equipment, I'm going to stop rating battle difficulty until it catches up to me again. However, this beast didn't seem to have a big attack to be wary of, it was just the standard "increases its guard when it recovers from being broken" mechanic. With the beast dealt with, Tressa claims the treasure, a stone called Eldrite that is apparently the only one of its kind in the entire world. Also in the chest is a letter from Baltazar to Leon, so Tressa takes that back to Leon.<br />
<br />
More back story ensues, and in the end, Leon leaves Tressa with the Eldrite. She now has something to sell at the Merchants' Fair, so her next destination is none other than Grandport itself.<br />
<br />
Shifting gears a bit to a much darker story, I fast travelled over to Noblecourt to start Primrose's Chapter 3. As you may recall, she'd just killed one of the three men responsible for the death of her father, and has returned home to Noblecourt seeking the truth. <span title="Primrose: "I WANT THE TRUTH!" The Right-Hand Man: "YOU CAN'T HANDLE THE TRUTH!"">Will she be able to handle the truth?</span><br />
<br />
Upon arrival, there's a commotion in the main square as someone's apparently dying in public. Primrose notes that nothing about that event or the way the city handled it would have happened if her father was still around. Shortly thereafter she starts getting recognized by people who last saw her when she was a child, including a gardener from her house way back when who also used to write poetry and comfort her periodically. She also meets the former Captain of the city watch, who tells her that a group called "The Obsidians" basically runs everything in town, and takes her to the entrance to their lair. Another of the men she needs to kill in order to avenge her father happens to be in charge of things there, so it seems fairly straightforward. Run in, exchange pleasantries, casual fight to the death. You know. The usual.<br />
<br />
Instead of having his two minions who prevent his weaknesses from being exploited straight away, the Right-Hand Man summons them a few turns into the fight. I had to deal with him being two lousy hits away from being broken while I figured out the minions' weaknesses and took them out. He was annoyingly applying Blind a bit too often for my liking, but with Ophilia spreading the Rehabilitate around, I offed the minions and went back to work. A few turns later, and he too was down for the count. Fittingly, Primrose dealt the killing blow.<br />
<br />
After the fight, the gardener she met earlier suddenly appears in an oh shit moment, because surprise he's the last person she needs to kill. Except that he stabs her. You know, for good measure. Unfortunately for him, he didn't stab her good enough, and she recovers after a few days. The ex-city watch guy tells her that he went to Everhold, so that's where Primrose is headed next.<br />
<br />
Up next, Cyrus and Olberic. Side note: I really wish that out-of-party characters would get a percentage of XP, just like in Chrono Trigger. I wouldn't have all my out-of-party people being 20-30 levels behind like they are right now if that were the case. I think the intent was for the player to be shuffling their party around a lot more often...XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-87132771637829516492018-09-24T02:59:00.000-04:002018-09-24T18:16:48.493-04:00Octopath Traveler: Session 16After gathering all the equipment and consumables data into a Google Sheet where I can filter it and sort it and encounter annoying issues with Google Sheets and make workarounds for their stupidity, I put together a shopping list. Naturally, purchasing everything on said shopping list almost completely drained my money, but selling the old stuff recouped a fair portion of it. Side note, I really wish there was a series of shields that was a straight upgrade to the Kite Shield. It's the best shield I've found so far that doesn't have some crappy penalty to evasion. Also, in buying all the good armor, I had to forgo elemental defense, so we'll see how that comes back to bite me. Anyway, now that I'm kitted out, it's officially time to start Chapter 3.<br />
<br />
H'aanit arrives in Stillsnow, seeking the sage Susanna. Susanna reveals that she's no oracle and that everything she does is power of deduction and getting others to reveal things, which is how those fake "psychics" work in real life. Anywho, the good news is that the petrification is one of those spell effects that disappears when its caster dies, so all H'aanit has to do to save her master is kill Redeye. In order to do that, though, she needs a specific herb called "Herb-of-grace" that has the power to prevent the petrification. It happens to grow in the nearby woods, by sheer coincidence, so off H'aanit goes.<br />
<br />
At the end of the forest, near the patch of Herb-of-grace, there's a dragon. H'aanit has a flashback about her master's stories and how they get longer with each retelling, and decides this will make for a most excellent story before jumping into battle with it. This fight uses the whole "can't use some weaknesses yet" thing, but instead of the dragon having two minions like in the other cases, the battle simply plays out like you're slowly weakening its defenses over time, meaning as it recovers from you having broken it, more of its weaknesses become available to use for the next time you break it. It also strengthens its guard, this time by three instead of two. Interestingly, it has an ability that sweeps a party member out of battle for a few turns, and it used it on Ophilia, so I had to have Tressa do a bit of healing with Healing Grape Bunches until she came back. <span title="I mean, the game hasn't even sent me to the third town of any region yet, so there's no reason it would expect me to have equipment from any of those places.">Owing to the equipment I just purchased, no doubt, the battle wasn't so bad.</span><br />
<br />
H'aanit returns to Susanna's place with the Herb-of-grace and tells her the story of the fight while it brews into a potion. Once that's done, I received ten "Herb-of-grace Potion" consumable items, so it looks like I'll actually have to use them in battle myself. As H'aanit is leaving Stillsnow, one of the Knights Ardante shows up and informs H'aanit that Eliza has located Redeye, near Marsalim. That'll be the setting for H'aanit's Chapter 4.<br />
<br />
Hopped over to Goldshore to do Ophilia's Chapter 3. Right off the bat, she has another encounter with the merchant that showed up in her Chapter 1. I thought there was something suspicious about him then, and nothing about this meeting has changed that feeling. Anyway, she heads up to the cathedral to do the Kindling, but the bishop there is very clearly hiding something and <span title="He never once walked diagonally...">acting rather suspiciously himself</span>. Ophilia follows a small child who she sees running out of the cathedral and begins to find out what's going on: some random guy asked the kid to give a letter to the bishop, and upon reading that letter, he was clearly shaken. Getting straight to the point, Ophilia gets him to dump the goods: it was a ransom note. His daughter has been kidnapped, and he'll get her back in exchange for the Flame that Ophilia carries. Standard "tell anyone and she dies" threat as well. Never being the one to avoid helping people, Ophilia runs off to the cave where the bad guys are hiding.<br />
<br />
The fight was kind of interesting. Some weaknesses couldn't be hit, as per usual. The two guys were both mages, however one was a healer that kept popping off 800 heals for the both of them every couple of turns. Naturally, after revealing weaknesses, I focused the healer and took him down, at which point all weaknesses became available to hit. Shortly thereafter, the other one bit the dust. I make it sound easy, but my lack of elemental defense at the moment left me in fairly constant need of healing, and Ophilia's lack of elemental attack meant that her heals weren't as potent as usual. I definitely need to rethink the equipment I bought, but regardless, through the use of BP, I was able to keep everyone alive and take them down.<br />
<br />
Bishop's daughter safe and sound, Ophilia performs the Kindling, and speaks of returning to Flamesgrace. Just then, who should enter the cathedral but Lianna. Back at the inn, Lianna reveals that her father (Ophilia's adoptive father), the archbishop, has died. She also drugs Ophilia's drink, and then she and some mysterious hooded figure steal the Flame and head off to Wispermill. The mysterious hooded guy is promising to be able to bring Lianna's father back to life, and Lianna is clearly in the bargaining stage of grief. Ophilia somehow heard them openly discussing their plans after having passed out from the drugged drink, so after she comes to, she vows to go to Wispermill and reclaim the Flame, and Lianna as well.<br />
<br />
Up next: Chapter 3 for Tressa and Primrose. I'll re-evaluate equipment after that, since I'll also be shuffling party members around for the rest of Chapter 3.<br />
<br />
Edit: Actually, effective immediately, Ophilia's now wearing a Platinum Vest instead of Platinum Armor. I did a quick test, and found that healing amounts are linked to Elem. Def., which the Platinum Armor doesn't boost. <span title="About 1.5x better, to be precise. That's what the numbers I got from my quick test suggested.">My healing should be a lot better now.</span>XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0tag:blogger.com,1999:blog-2388294519485220266.post-11408492410242097732018-09-21T19:34:00.000-04:002018-09-21T19:34:52.616-04:00Octopath Traveler: Data Gathering Session 2...aaaaaand done. That felt like it took forever, but I really just needed to establish an optimized workflow. Once I got things rolling it wasn't really so bad.<br />
<br />
However, in the process of trying to set up the spreadsheet to be shared, I learned a lot about the shortcomings of Google Sheets.
<ol>
<li>Rather than selecting "Publish to the web...", you have to select "Share...". Why aren't these two options under the same menu selection?</li>
<li>Filters are awesome, but don't get shared along with the spreadsheet.</li>
<li>The green color used in many places to indicate that filters are present still propagates through to the shared spreadsheet, though.</li>
<li>If I have the spreadsheet open, and filter it, it becomes filtered for anyone who's viewing it. lolwut?</li>
<li>The sorting options in each column's filter menu have to be undone by the standard editing Undo action. There's no "revert to unsorted state" option.</li>
</ol>
If you want to use this spreadsheet, you'll have to go to <b>Data → Filter views...</b> and make a new temporary filter view. Only then will you be able to filter and sort it to find what you're looking for. This kinda sucks, but there's no other option.<br />
<br />
Also, I've enabled comments on the spreadsheet. Hopefully, if I've missed anything, have a typo somewhere, or some equipment stat anomaly has gotten past the sanity checks I did as I entered information, people can comment and let me know. Keep in mind that it's not complete yet, as I still need to Inquire/Scrutinize in a few towns to get access to the full inventories of their shops. I'm also filling in recovery amounts for various consumable items since the game doesn't see fit to tell you what they are, and that process isn't complete yet.<br />
<br />
<a href="https://docs.google.com/spreadsheets/d/1xb2WVqWkZpgGheKVLJQlq2ikV5eBImx1OAnPHkzkId0/edit" target="_blank">Here's the link to the spreadsheet.</a> This is a separate, static view of the one I'm working on, without any of the formulas or the sheets that just serve as lookup tables and sets of data for data verification rules. Lacking all that stuff, it should load a lot faster. Enjoy!XT-8147http://www.blogger.com/profile/02946174397727168647noreply@blogger.com0