Fanfiction – Magical Mystery Oops

Well, the last fic I covered reminded me of another MLP fic I wanted to re-read. This one is also a “Twilight Sparkle becomes something” fic (this time, a draconequus), it’s also good and memorable, and, if Ascend had a decent grasp of referential comedy, this one is brilliant at it.

Magical Mystery Oops by BookeCypher

The story is set after the Tirek incident and we’re brought in just as Twilight Sparkle is about to attempt another first: Leveraging her access to consult with Discord, she will attempt to be the first pony to ever make use of chaos magic.

The first time she did something so unprecedented, she earned a pair of wings. This time, things go… well… chaotic and, when she comes to, she finds that she’s been transformed into a draconequus. (Though, not being on a level equivalent to Celestia and Luna, she lacks Discord’s “fashionable asymmetry”.)

Almost immediately, we get to see a solid impression that this is an author who knows how to write interactions between Twilight and Discord which feel both natural for the two of them and, at the same time, very engaging.

When Twilight’s friends show up, we also get to see the first example of the elegant way in which Discord is used to make referential humour feel natural: His initial summation of what went wrong is “She ate an energy field larger than her head.” (Hyperlink mine.)

It feels natural for Discord to say it, it’s amusing even without the reference, and you wouldn’t know it’s a reference at all if you were unaware of what’s being referenced. The story does this again and again, but never too often, so it becomes a fun game of “spot the reference” with the one canon character more suited to making them than Pinkie Pie.

(Another such example would be when Twilight’s first trip through town prompts Mayor Mare to unknowingly quote Ray from Ghostbusters.)

Continuing with the plot, it’s quickly revealed that:

  1. Twilight can’t use her old pony magic while she’s a draconequus.
  2. She got turned into a draconequus because chaos magic has a different conception of “easiest way to accomplish a task” such as “controlling chaos magic”.
  3. If she wants to change back, she’ll have to figure out how to do it herself, because her new innate abilities will counteract any attempt Discord might make.

At first, she refuses Discord’s offer to give her some training, but he gets his foot in the door when his parting comment of “nudge it, don’t force it” proves to be the key detail that allows even the tiniest bit of progress on her own.

That also touches on two other things that make the story so good:

First, the amount of detail that BookeCypher put into how Twilight perceives chaos magic and how it actually achieves its effects on the world around her.

I could spend all day just reading about this, purely based on the (quantum) mechanics… let alone the fun that emerges from Discord being Discord during Twilight’s chaos magic lessons:

“Wouldn’t transfiguration be easier then reversing gravity?” Twilight asked.

“Reversing gravity just means you make the apple do what it wants to do anyway.” Discord waved a finger and a few of the apples started dancing in the air around him. “Transfiguring means making it into something it isn’t. Apples don’t like that.” He paused before adding “Neither do the bunnies, now that I think about it.”

I also love the world-building related to that, such as the nature of Poison Joke and why it smells heavenly to draconequines yet causes no end of trouble for ponies.

Second, and more significantly, the overall interaction between Twilight and Discord as the story unfolds.

This is a romantic comedy… and it works! Twilight and Discord grow together little by little, because circumstance leads them to do and say perfectly plausible things, which cause them to slowly see each other in a new light. Likewise, they snark at each other, but there’s no malice in it. They get on each other’s nerves, and they make mistakes, but and they get past them… and, through it all, they grow and change as characters without losing the essence of what makes them who they are.

Far too many stories are written by impatient authors, but this one isn’t.

It also works beautifully because of how it makes the readers see them in a new light. For example, there’s one scene where Twilight does something perfectly plausible for her canon personality, but the way it’s presented makes you realize that, were it not for her upbringing, she could easily be a mad scientist sort of villain.

The end result is charming, funny, and all the other adjectives that a good romantic comedy should have… yet, at the same time, has a depth to the conception of how chaos magic actually works that helps to make it feel satisfyingly balanced.

…and the delightful characterizations aren’t limited to just Twilight and Discord, as this quote demonstrates:

Luna cut her off as she gestured at Twilight with one hoof. “You mean to tell me that this adorable creature is of the same ilk as that scruffy looking fellow Discord?”

“Who’s scruffy looking!?” Came a shout from one of the windows above them

There is one arc where the tone gets more serious temporarily and the references feel a bit discordant with the narrative tone there (ignore the pun. It detracts from what I’m trying to communicate.), but the rest is good enough that I can’t count it against the story’s overall rating.

The illustration of Draconequus Twilight used for the cover is also beautiful and really helps to get one into the story.

Definitely a 5 out of 5. As of this writing, it stands incomplete at 99,272 words and is still receiving infrequent updates.

Posted in Fanfiction | Leave a comment

Music – Instrumental MLP Fan-songs

Sorry for not having a fanfic review ready today. Not only was my week a mess, a programming project consumed all of the leisure time I’d normally use for re-reading an old favourite fanfic.

Instead, I decided to spotlight some instrumental music which came out of the My Little Pony fandom that I really enjoyed and didn’t want to risk losing track of if something ever happens to my backups.

…because, after all, if the music has no lyrics, it doesn’t matter what you think of the fandom as long as it’s good.

Why Am I Pinkie Pie (download) by DnBeanie
Inspired by a fanfic of the same name by Hoopy McGee, this is a bouncy instrumental EDM pop song that I just keep coming back to.
On a more intellectual note, what draws my attention is how it uses its simplicity. From when the beat starts up to the last 15 seconds, the entire song runs off the same regular, fast paced beat and it’s not technically complex. Basically, a beat, an accompaniment line, and a melody line. Likewise, before the melody comes in, the accompaniment manages to feel anticipatory, simply by the progression it uses and its unbroken nature.
As for the main melody, it’s bouncy like Pinkie Pie, but has a more serious air to it which I’m assuming is intended to follow the nature of the story, where a human wakes up as Pinkie Pie and doesn’t know how it happened or why.
Friendship is Magic (Orchestral Arrangement) (tindeck) by Evening Star
When I want something catchy, with a majestic feel to it, yet which isn’t “on” all the time like Sogno di Volare, this is what I turn to.
It makes me think of reading an epic. At first, the music is soft and light, like a morning sunrise in a small village. Then, it picks up and adds a sense of adventure as the heroes set off on their quest. The music then flows back and forth between the swelling, impressive passages which make the world sit up and listen, and the soft, light explorations of the heroes’ character, without which the story simply wouldn’t work.
Octavia (bandcamp) by Evening Star
Like the previous example, this track (named after a background character who plays the cello) flows back and forth between the personal and the worldly, but this leans more to the personal side.
If that was an epic “tale of a world”, like Lord of the Rings, then this is the personal study of a character whose life has been marked by “forays into the wider world”.
WoodenOverture by Tsyolin
This eight and a half minute track is an orchestral medley of four excellent songs (originally with lyrics) by WoodenToaster. While the originals have more of an electronica element, this version uses excellent samples of classical instruments and I love each on its own merits.
I recommend this both on its own merits and as a sampler of some of the catchier melodies I’ve encountered in MLP songs. Also, if you like this, you might want to try StormWolf’s orchestral cover of Nightmare Night.
Diffraction (soundcloud) by StormWolf
Now back to the more modern genres for a bit. This is a frenetic europop track that does incorporate some vocal samples, but not in any way you’d be able to distinguish from other examples of the genre. Appropriately, it was StormWolf’s contribution to an album themed around the speediest character in the series.
While it’s catchy on its own, I have a soft spot for europop and trance songs which make good use of the piano, with other ones I love including DHT’s techno mix of Listen To Your Heart, the intros to Drift Away (Sven-R-G vs. Bass-T) and Because The Night (Cascada), and the piano accents in Reaching the Sky by Atomix and Vamos A La Playa (Dan Winter Edit) by Loona.
Lesson Learnt by StormWolf
This is another frenetic pop piece and the reason I mention this one is that it reminds many people of the Touhou games. (Here’s the Phantasm Stage from Perfect Cherry Blossom for comparison.)
This particular song in inspired by an incident when the occasionally neurotic main character blows a situation way out of proportion and goes a bit nuts as a result.
Nightmare Night 8 Bit Style by Lukspups
While I’m on the topic of of songs which evoke feelings of games, I should also mention this cover of WoodenToaster’s Nightmare Night.
Aside from enjoying the sound of it, I just have a certain fondness for music which sounds like it could have come from a Castlevania game… in this case, the main melody tracks where tracks which sound sound like the might have originated in a Castlevania game.
(Filmore from Actraiser is one that has that effect even more strongly. I’m one of many who misattribute it to Castlevania if it’s been too many years since last seeing the track metadata.)
Gypsy Bard (Full Orchestral Instrumental) by BassBeastJD
I’ll close this list out with a song I’ve already mentioned in passing.
The original version of this song is from a fan-made edit of MLP sort of like an Abridged Series, in which the lyrics give the impression that the singer is putting on a mask of cheerfulness because it’s the only thing that keeps her from crumbling under the weight of her life’s tragedies. All the while, the tune is unfailingly bouncy and cheerful.
This version varies the pacing and styling quite a bit in an attempt to make up for the lack of lyrics by moving some of that weight and gravitas into the melody.
The use of ambient sounds in the beginning to allude to the events in the lyrics is a nice touch, I enjoy the song, and I’d certainly recommend it to others.
Posted in Music | Leave a comment

Free Installer Creators for All Eras

UPDATE 2021-12-19: Added Installer and InstallerLG for AmigaOS and derivatives

Since my list of installer-construction resources has grown so huge, I thought I’d move it out of my list of DOS/Win16 programming resources into its own post. After all, it extends all the way up to the modern era and it was sort of taking over.

Consider this a one-stop shop for finding a legally free way to make your installers as authentic to a certain aesthetic as possible.

The Resources:

ClickTeam Install Creator 2 (mirror)
This install creator for 32-bit Windows is under “freeware, unless you want to remove the final self-promotion screen in your installer” terms that also allow you to redistribute the original install package for the installer builder as long as you don’t modify it, bundle it with anything, charge for it, or ask for donations (so no compilation CDs).
Since I’m planning make it possible to grab a copy of this whole blog with a single git pull, I don’t know if they count that as “bundling” it, and their contact system requires me to create a forum account before I can open a ticket, I’m letting Archive.org handle mirroring it instead of hosting a copy myself. (It says “Demo” on the Archive.org page but it is their standard “Do you want the unregistered freeware version or the registered version?” installer.)
I wouldn’t normally mention something like this when there are completely unrestricted options, but I do remember seeing ClickTeam’s self-promotion screens on the installers for a few pieces of freeware back in the late 90s and early 2000s, and it does still work back to Windows 95 and let you choose the classic looks so, if you’re going for retro-authenticity, this might be something to consider.
HJ-Install
A freeware installer builder for Win32 that’s been around long enough to be on one of my 1998 shovelware compilations.
It’s free for commercial use, but I’d try an appropriate version of InnoSetup or NSIS first. HJ-Install’s 138KiB base overhead is two to four times theirs and they’re more featureful.
Info-ZIP
The open-source DOS self-extractor stub and Zip-modification tools you’ll need to build your own free-for-commercial-use self-extracting archives for DOS.
InnoSetup 1.2.16
The last release of InnoSetup which can target Windows 3.1. Open-source, but requires Borland Delphi 1.x to build.
InnoSetup 2.0.19
The last release of InnoSetup which supports WizardStyle=classic. Open-source, but requires Borland Delphi 2.x (and nothing newer) to build.
InnoSetup 5.4.3 (non-unicode version)
The last release of InnoSetup which can target Windows 9x. Starting with version 4.x, InnoSetup supports being extended via Pascal Script for full customization. Open-source but requires Borland Delphi to build. (Delphi 2.x-5.x or 2009, if the requirements are the same as the latest release.)
Install 3.0 and 4.0 by Kenneth W. Illig
An ultra-simple freeware installer TUI for DOS to stick in front of a self-extracting archive. Just tell it the suggested install directory name, the program to tell people to run after the install completes, the name of the self-extracting archive, and a message of up to 79 characters to display. No other customization of the UI is possible.
The 3.0 version hard-codes the expectation of a single self-extracting archive with an .exe extension while the 4.0 version adds a few extra fields so you have more flexibility to run up to three additional commands as part of the installation process.
NOTE: You are required to distribute its INSTALL.DOC file (3.1KiB uncompressed, 1.3KiB zipped) along with it so that anyone who receives whatever you’re installing can also use it to build their own installers.
Mirrored here but originally found as install.zip in the \DOS\PRGMMING folder of the PSL Monthly Shareware CD-ROM, November 1993 and instl4.zip in the \PRGMMING\DOS\GEN_INST folder of the PSL Monthly Shareware CD-ROM, August 1995 on annex.retroarchive.org.
Installer v1.03 by Bloody Cactus Development Labs (HTTPS, FTP, Local Mirror)
A freeware installer builder for DOS with intermediate complexity and an intermediate feature set.
Takes an .ini-format project file as input which allows you to specify file groups which may be required or user-selectable (ie. optional features). Also supports displaying a short message and a README file within the installer, and leaving a closing message like “Install finished. Type FOO to start your program,” visible when quitting.
Uses a custom packfile format rather than something like Zip, but the compiler has built-in support for splitting packfiles to fit your installation volumes and reserving extra space on the first volume for things like README files.
Includes two example project definitions, one of which defines the installer it’s distributed as.
Installer and InstallerLG
The installation tool for AmigaOS 2.1 and beyond, and a compatible reimplementation for things like AROS. See also InstallerGen for automating the task of writing install scripts.
Loki Setup (GitHub)
The source for the installer used by Loki Software on their Linux game CDs from 1999 to 2001.
Microsoft Setup Toolkit 2.0 (also locally mirrored, originally from conradshome.com).
According to the included LEGAL.TXT, the 2.0 version of the installer bundled with early releases of the Windows 3.1 SDK is effectively freeware. (Just don’t sell it without combining it with “another software product which adds substantial value”.)
It doesn’t produce single-file installers, but it is iconic, capable of updating Windows 3.1x system files from a GUI installer, and it includes a tool for laying out floppy sets for your installer.
MojoSetup
The install wizard for Linux used by GOG.com and many other publishers for non-Steam releases of games.
Note that, if you’re not actively trying to replicate an aesthetic, I advise using either Flatpak or an archive people can just unpack for modern Linux games. Linux users don’t like Windows-style installers doodling all over their home directories.
Also, Flatpak makes “build once, run on every distro” easy by allowing you to sandbox both building and running your program to catch any accidental dependencies on the host system.
msitools (msitools and wixl packages on Debian-family Linux distros)
A portable toolset for creating and manipulating MSI files, allowing cross-building MSI installers from Linux.
NSIS 3.x
The Nullsoft Scriptable Install System. As long as you don’t use the Unicode true directive, it supports Win32 targets all the way back to Windows 95. (According to the features list and the changelog for the most recent minor version as of this writing, which is 3.02). Open-source.
NSIS 1.98
Use this open-source tool if you want the distinctive “WinAMP installer” look. Open-source, but I’m not sure where the source is.
Open Watcom C/C++‘s installer
If you don’t mind your installer stub being under a “publish the source, even for private uses” license and having to figure out how to build it yourself, OpenWatcom C/C++ has a nifty, powerful, single-file installer which runs off a .inf file and can target DPMI-extended DOS, Win32, and, assuming it hasn’t bit-rotted, Win16 via Win386 (Watcom’s 32-bit extender).
Program Installer v2.0.1 for DOS by Pelikan
A very simple freeware installer TUI for DOS which essentially just presents a UI to let someone pick the install target, verifies that there’s enough free space, and then calls a decompressor of your choice (PKUNZIP.EXE is used in the example .ini file) with the appropriate arguments.
No fancy progress GUI or high degree of customization. On the downside, if you don’t find the .ini file self-evident, all the documentation is in Slovak and must be fed through Google Translate. On the upside(?), it plays a .mod music file of your choice while it’s running, including while it’s shelled out to the decompressor.
Originally found as install.zip on the SAC’s SK_MADE archive of shareware and freeware by Slovak authors but, since it’s so obscure, they don’t have per-file detail pages, and hotlinking is bad (mmkay?), I’m mirroring it here.
Qt Installer Framework
The Qt application framework for C++ and Python includes tooling for building installers for Windows, Linux, and macOS, and it doesn’t appear to be coupled to Qt-based applications any more tightly than “put your installable artifacts in the right folder(s) within the installer project.
Qt is available under LGPL and GPL licenses, and an installer’s code isn’t linked against what it installs or vice-versa, so your project doesn’t need to be under those licenses but you will need to provide sources for the installer if asked.
V8Power
The DOS utility similar to dialog which FreeDOS uses to build their CD installer out of batch files. If you’ve used Norton Batch Enhancer, think of it as a more powerful open-source alternative to that.
Wix# (WixSharp)
A transpiler that converts a script in a C#-like language into WiX XML markup or straight to an MSI file, allowing you to generate MSI-based installers without having to choke down the infamously obtuse design of WiX’s XML. If you really need a GUI interface, Nvninstaller might be an option, though it hasn’t been updated since it was open-sourced in 2018.

Tips:

  • Different major versions of InnoSetup can be installed on the same machine without stepping on each others’ toes.
  • While UnZipSFX from Info-Zip can be compiled to support a post-extraction command, doing so disables support for extracting to locations other than the current working directory.
  • NSIS 3.x can be used for cross-building Windows installers from Debian-family Linux systems (eg. Ubuntu) via the nsis package.

…for Info-ZIP Self-Extractors:

  • Before installer builders started to support single-file output natively, a common solution for downloadable single-file installers was to wrap their output in a self-extracting PKZIP or WinZIP archive, but no “free for commercial use” option I’ve found supports automatically unpacking to a temporary folder, running an installer, and then cleaning up when it exits.
  • Info-ZIP and ARJ both offer fully open-source ways to produce self-extracting archives for DOS, but, according to Maximum Compression, ARJ loses out to a good Zip compressor and, from what I remember, the only significant advantage it held over Zip back in the day was that PKZip’s support for split archives was a mess.
  • Info-ZIP lets you build DOS self-extractors from other platforms. Just grab the UnZipSFX stub from a DOS copy of Info-ZIP, concatenate the Zip file onto the end of it, and then run zip -A using your native copy of InfoZip to fix up the offsets in the Zip file.
  • You don’t strictly need to fix up offsets to make the UnZipSFX stub work… it just keeps it from complaining and ensures that you retain compatibility with external extractors like PKUNZIP.EXE which aren’t smart enough to compensate for offsets rendered invalid by prepending stuff.
  • Shareware distributors who had enough money to pay for an archive tool, but lacked the money to buy an install builder or the skill to write one would use a self-extracting archive with custom banner text.
  • You can customize the second line and beyond of the UnZipSFX banner text by setting an archive comment. Info-ZIP supports editing archive comments while I couldn’t find a way to do so using p7zip.
  • The zipnote command for editing archive comments is very picky about its input data.
  • Zip compression can be optimized by either generating the Zip file using 7-zip/p7zip or recompressing it using advzip from AdvanceCOMP. However, advzip will strip the comment if you set it before optimizing the compression.
  • While some FreeDOS versions of 7-zip include a DOS self-extractor stub, you don’t want it because it requires an external DPMI host.

My Recommendations:

Target OS Desired Experience Installer to Use
Anything .msi WiX# [1] or msitools
Windows 2000+ 64-bit era InstallShield NSIS with ExperienceUI or UltraModernUI
Win2K/XP era NSIS with Modern UI [2]
InnoSetup
Windows 95+ Win2K/XP era NSIS with ModernUI [2]
Late Win9x era NSIS with InstallSpiderUI [3][4]
Early Win9x era InnoSetup 2.0.19 with WizardStyle=classic [5]
Borrow Open Watcom C/C++’s installer
Windows 3.1x Single EXE or split archive InnoSetup 1.2.16
Open Watcom C/C++’s installer may be usable like this. [6]
Can replace system files
MS Setup 2.0 [7]
DOS Only suits EXE Downloads Use Info-ZIP‘s self-extractor [8]
Good for EXE Download or CD Image Borrow Open Watcom C/C++’s installer
Wait until I have time to write my planned installer kit.
Only suits CD Images Write an INSTALL.BAT using V8Power [9][10] or use whichever of the two ultra-simple install TUIs best fits your needs.
Also suitable for Floppy Images Use Installer v1.03 by Bloody Cactus Development Labs.

Footnotes:

  1. The instructions for getting WiX# to cross-build MSI installers via Wine are stored in the Codeplex archive. It’s easier to read them via the Wayback Machine.
  2. Included with NSIS
  3. CAUTION: I wouldn’t use InstallSpiderUI without first substituting replacement icons and wizard sidebars. The default sidebar art says “Powered by NSIS” at the bottom and I’m skeptical that the author created such a convincing knock-off of unInstallShield’s distinctive sidebar art rather than just yanking every bit of art he used from a copy of InstallShield.
  4. So far, I have only tested InstallSpiderUI on Windows 98 SE and am suggesting it for Win9x based on the fact that NSIS itself still supports Windows 95. Do your own testing!. Also, in my tests, SimpleBg silently refused to activate on a real Windows 98 SE machine, so this can’t be used to replicate early Win9x-era stuff.
  5. I haven’t found a way to achieve maximum authenticity by disabling the confirmation prompt InnoSetup displays before progressing to the screen-filling gradient background. If I find time, I may examine the source code to get a definitive answer.
  6. The source repository for Open Watcom C/C++ suggests that it should be possible to compile a version of the installer GUI for Watcom’s Win386 extender for Win16, but I haven’t tried it. That code may have bit-rotted.
  7. Microsoft’s “MS Setup” cannot bundle all of your files into a single archive, but explicitly supports installing off multi-floppy sets in resource-constrained contexts and, judging by the documentation, has much more comprehensive support than InnoSetup for performing installs which must restart Windows 3.1x to replace system components.
  8. The self-extractor stub from real-mode DOS versions of Info-ZIP can be added to a Zip file using a native build of Info-ZIP. Here’s how you’d build an un-split self-extractor on a POSIXy OS like Linux:
    #!/bin/bash
    NAME="testapp2"
    SFX_STUB="infozip/UNZIPSFX.EXE"
    FILES="testapp"
    ENDFILES="SETUP.EXE README.1ST"
    BANNER="Test Application v2.01
    By: Foobar Software
    
    Synopsis and/or company slogan here
    
    "
    
    # -- Configuration Ends --
    
    # Ensure relative paths are relative to this script
    cd "$(dirname "$(readlink -f "$0")")"
    
    ZIPNAME="$NAME".zip
    EXENAME="$NAME".exe
    
    # shellcheck disable=SC2086
    zip -rT9 "$ZIPNAME" $FILES $ENDFILES -z <<< "$BANNER"
    
    cat "$SFX_STUB" "$ZIPNAME" > "$EXENAME"
    zip -A "$EXENAME"
    rm "$ZIPNAME"

    Note that I’ve added two newlines to the end of the banner and taken advantage of the fact that files will be decompressed in the order they were added to the file to make SETUP.EXE and README.1ST the last two file names which the extractor will print to the screen before it exits. (At some point in the future, I might make a proper reader/writer abstraction for zipnote dumps so it’s possible to reliably combine custom banner text with advzip -z4)

  9. Without the need to worry about the awkwardness of manually unpacking, running the installer, and then deleting the unpacked temporary files, you’ve got a lot more freedom. Do as FreeDOS does. Put the pieces of V8Power which are relevant to your needs into a folder and call them from INSTALL.BAT or INSTALL.EXE to make a fancy, professional-looking install wizard. (Run the included demos and examples inside DOSBox to get an idea for which effects are portable and how to accomplish them.)
  10. If you still feel the need to compress the files to be installed, rather than distributing the whole ISO inside some more modern kind of compression like 7-zip, the UnZipSFX stub allows your frontend to specify a destination directory using the -d switch starting with version 5.5.
  11. Info-ZIP’s zipsplit tool doesn’t require you to swap floppies to make a multi-volume set the way PKZip did. The -r option will allow you to leave a specified amount of room on the first disk for your installer frontend. However, not having all the V8Power bits remain resident in memory means that you’ll either need to do all of your configuration prompting before you turn the job over to the Zip extractor or, alternatively, build your own GUI.

If I can find the time to finish it, I’ve started using Open Watcom C/C++ to write a DOS analogue to InnoSetup or NSIS and I’ve been making a concerted effort to keep the code lean so it will be usable on floppy disk sets. (Including preferring custom wrappers around DOS and BIOS APIs over standard library functions where it will reduce the size of the final binary.)

Given that my goal is to use this sort of thing for nostalgic retrocomputing, I may even use the copy of Delphi 1.x on my Borland Delphi 2.x CD to to write a fork of 16-bit InnoSetup that can better mimic other nostalgic Win16 installers… though I’ll probably wait and see if the Win16 efforts by the Free Pascal crew reach a point where I wouldn’t be sharing new source that depends on a proprietary compiler.

(I should probably also decide whether it would be worthwhile to make a rundown of period-appropriate patching tools like BPatch, given how easy it now is to just download a whole new installer for something sized to fit on a retro PC.)

Posted in Geek Stuff, Retrocomputing | Leave a comment

Fanfiction – Ascend

This time, I decided to go for something full-length, but My Little Pony… because that’s just the mood I’ve been in recently.

Ascend by xTSGx

This one’s noteworthy because it beat canon to something that evoked quite a bit of fan controversy, but did it in a way which was self-aware and amusing: What if Twilight Sparkle became an alicorn?

In the My Little Pony setting, Celestia and Luna were originally portrayed as “gods in the literary sense” and, when Twilight Sparkle became one, it was seen by many as a sign that the quality of the series was falling in the wake of Lauren Faust moving on, merely as an excuse to pump out more merchandise.

In this story, it’s played in a much more appropriate setting: One morning, Twilight wakes up to find herself with wings to complement her horn. Naturally, her imagination runs away with her, she panics, and her plan to keep it secret sets the stage for Murphy to try his hand at comedy.

(And, importantly, it’s a novella-length “What if?” dedicated to the concept, rather than a sudden change in canon which usually has to time-share with normal episode-to-episode conflicts.)

Right out of the gate, her first solution is to reverse-engineer changeling magic to hide her new wings… and, sure enough, what should arrive in the mail just after she succeeds, but a subpoena to appear before the committee investigating the events which led up to Queen Chrysalis’s failed invasion attempt.

To quote Spike, “Looks like that implosion’s gonna happen sooner than I thought.” followed not long after by “Oh, come on! That’s so contrived!” when he tries to tell Princess Celestia anyway.

That said, aside from that one lampshaded contrivance, this is the polar opposite of those stories where events just keep getting drawn out through liberal use of the idiot ball or a refusal to just @#$%ing communicate. Instead, any mistakes which move the plot along are either of the “I might have made the same mistake in her situation” variety or the “Oh, Twilight. Why you gotta be so you?” variety. That helps to keep things satisfying.

The end result being a narrative in two phases:

For the first half, it fits its Slice of Life tag beautifully, with the vast majority of the narrative following Twilight interacting with her friends on what they see as an ordinary day. Events just sometimes lead some of them to discover her secret.

Shortly after the mid-point, that then changes when Twilight’s deception is revealed in the most public way possible. The second half is then dedicated to the aftermath of Twilight’s ascension coming out… a country populated by a species that produced the Flower Trio.

Humour-wise, it ranges from fairly typical humour (such as the thing that’s bubbling up within Twilight turning out to be a burp… in addition to the expected panic) to genre-savvy, trope-aware jokes which sometimes lean on the fourth wall without breaking it. (Including some “Spike voicing the readers” moments in the middle of the range, such as when Twilight rebuffs Spike’s efforts to prevent another Lesson Zero, and he grumbles about how he should just take a vacation and see how long it takes for a “Ponyville Exclusion Zone” to be established.)

Of course, my favourite joke has to be the history of the term “alicorn” that Twilight rambles off while trying to collect her wits after Rainbow Dash discovers her secret.

On the other end of things, I’m not a big fan of the dream interludes. “Flashing forward” to Twilight’s visions of how things could go wrong in the middle of something I’ve been primed to want more of just makes me want to skip past them… especially since each one’s significance to the primary story arc could be summed up in a paragraph or less of “after Twilight woke up” text.

That said, there is one exception. I love the joke which ends the dream sequence in chapter 9. So you don’t have to read the entire dream sequence if you don’t want to, here it is:

Pinkie looked somberly at the purple alicorn.

“Twilight, there’s something I have to tell you.”

“W-What?”

Pinkie grabbed hold of Twilight and faced her.

“It’s eight o’clock in the morning and you’re listening to Everfree Radio.”

As for the mentioned subpoena, the pacing of the story is such that Twilight actually going to Canterlot is an “on the horizon” thing for the vast majority of the fic. That said, the story does have a tonal thread of “Equestria is a real place with real politics” that surfaces occasionally… as evidenced by a scene where Twilight has to head off an argument between Rarity and Rainbow Dash over who’s the bad guy in one MP’s fight with the Cloudsdale Weather Factory. I’m neutral on that.

The story is complete at 61,412 words, with an incomplete sequel half as long. I’d rate it at a 4.2 out of 5. (4.3 if you edit out the interludes so they don’t disrupt the flow of the story.

 

Posted in Fanfiction | Leave a comment

Fanfiction – Needless Gender Confusion

Needless Gender Confusion by Sarah1281

This is another crackfic oneshot, because I still haven’t had time to take notes on anything longer… specifically, it’s a Naruto oneshot which was probably inspired by the variety of reactions in the Naruto fandom to the “By the way, I’m a boy.” “No way! You’re prettier than Sakura-chan” reveal.

The basic premise behind this 1,334-word fic is that Haku is a girl… pretending to be a boy pretending to be a girl… and Zabuza is as confused by that as you are, except we get to laugh as his frustration mounts in a very Abbot and Costello-esque fashion.

Again, it’s hard to write a long review for such a short fic, but here’s a brief quote to give a taste of the character of the story:

“With long hair, I could pose as a girl!” Haku realized.

“You are a girl,” Zabuza felt the need to remind her.

“That’s certainly an advantage I have, then. Because – no offense – you really couldn’t pull cross-dressing convincingly off,” Haku said honestly.

As crackfic oneshots go, I’m not sure whether I’d give it a 4.5 or a 5 out of 5. I need to re-read more of them to regain my sense of perspective.

Posted in Fanfiction, Geek Stuff | Leave a comment

Fanfiction – Uhhhhh ok

The last week has been a mess for me and I didn’t have time to prepare a review of a full-length story. However, I don’t want to leave you with nothing, so here’s a oneshot I’d been saving to include in a list-form post:

Uhhhhh ok by Ringmaster

This deranged little comedy explores a simple hypothetical: What if Shinji Ikari decides to help Rei Ayanami learn about her emotions… by playing a prank where they act like Beavis and Butthead.

It’s just a single 1,216-word scene and it’s one of those things that gets its power from the reader imagining it as they read, so it’s hard to say much more about what actually goes on.

That said, as far as crackfics go, it holds a special place in my heart and I’ve re-read it at least four or five times over the years. A top-notch crackfic oneshot through and through.

Posted in Fanfiction | Leave a comment

Fanfiction – Dreaming of Sunshine

Now for something I should really dig through my archives and re-read more of: Good self-insert fanfiction.

In this case, Dreaming of Sunshine by Silver Queen.

The story starts when our heroine gets reincarnated as Nara Shikako, twin sister of Nara Shikamaru.

On the whole, the story’s strength is finding a balance between novelty and the strong currents which drive canon events while also doing a good job of making the OC main character an interesting person to follow and explore in her own right. For example:

She winds up on Team 7, but only after she concludes that displacing Sakura from her “destiny” is the best of a bunch of sub-optimal options. (Others she considers include dropping out, which the culture would make as attention-getting as refusing a lottery prize,  and going into the medical corps, which wouldn’t give her the self-defensive training she desires.)

She saves Haku and Zabuza, but in a way that follows naturally and in an unremarkable way from the simple detail that she has different skills than Sakura. (Unpredictable, but obvious in hindsight… like all good writing.)

At the same time, it has an excellent balance of “This is an OC who watched Naruto” and “This is her life now, and her old memories have faded”, which leads to foreknowledge noteworthy in-the-large by how consistently the individual events draw minimal attention.

That said, it really feels like the first novel or so worth of text is significantly better than what follows, so I think it’d be best to review the story in two parts:

For the first novel worth, it’s got some really elegant twists to its writing, such as the way she gets Naruto to stay interested in playing Shogi with her, and some memorable but characteristically unassuming-yet-sharp quotes like this one:

To a civilian bright, blinding orange wasn’t an appropriate colour for a ninja. Therefore, it was actually a perfect colour for a ninja. Oh, sure, it stood out like hell in a forest, but the fact was, most of our time spent hiding wasn’t among trees – it was among other people. The best ninja is one you can’t tell from a civilian.

It confounded their expectations. A tall guy dressed head to toe in black carrying a small armoury? Ninja. Small, loud blond kid in orange? Are you kidding? Ninja were invisible not because of jutsu (most of the time) but because they looked just like normal people.

(Also note the clever way in which that quote counters the fanon cliché that the orange Naruto wears is part of some plot by the villagers to get him killed by only selling him “kill me”-coloured clothing.)

I don’t want to make this review too quote-heavy, but it also has the most elegant explanation I’ve ever seen for the Naruto-verse’s schizo-tech.

It does have the occasional flaw, such as the OC drawing attention to the difference between short names like “Suna” and “Konoha” and formal names like “Village Hidden in the Sand” and “Village Hidden in the Leaves” because the author didn’t recognize that “Suna” is a shortening of “Sunagakure no Sato” (Japanese for “Village Hidden in the Sand”) and likewise for “Konoha”. That said, it’s quite uncommon for me to find a fanfic based on a Japanese source which has this few mistakes like that.

However, after the first novel worth of it, the insight, snark, and clever world-building really fade away, leaving a story which feels decent, but not exceptional. If it weren’t for Shikako’s occasional acquisitions, discoveries, and creations in the field of sealing, I’d probably have lost interest for the same reason I lost interest in Detective Conan. (The subplots I actually cared about progressed far too slowly.)

According to TVTropes, this fic has “attained legendary status among the Self-Insert Fic community” for how well it achieves this balance of familiarity, originality, and insight. (specifically, through the mixture of snappy dialogue and having the OC remain focused on her inner struggles while mostly relegated to the role of observing canon events) That said, I seriously wonder at what point in its development that status was earned, because I only see that within the first part.

Still, I certainly do agree with that assessment for that first bit. When putting in the effort, Silver Queen is very good at fleshing out what canon tells you of the Naruto setting in ways which you then want to mix back into your headcanon and Shikako definitely feels like an engaging character.

All in all, I’d give the first part a 4.7 out of 5 and the rest a 4.0 out of 5. Read it up to when the anime filler arcs come in, then decide for yourself whether it’s still interesting enough to keep going.

Admittedly, I still have about a third of it left to read, but, given how long the story is, given how long it’s been since my impression changed, and given that I don’t see how future chapters could significantly affect what I’ve written so far, I’m willing to risk having to revise this review as I continue to work my way through it.

Posted in Fanfiction | Leave a comment