diff --git a/content/programs/_index.md b/content/programs/_index.md new file mode 100644 index 0000000..d25c5be --- /dev/null +++ b/content/programs/_index.md @@ -0,0 +1,4 @@ +--- +title: Programs +--- +Various programs I've written over the years. \ No newline at end of file diff --git a/content/programs/chessa.md b/content/programs/chessa.md new file mode 100644 index 0000000..dd495da --- /dev/null +++ b/content/programs/chessa.md @@ -0,0 +1,98 @@ +--- +title: Chessa +--- + +This page documents Chessa's commands. Her source can be found on [the Adélie Linux GitLab](https://git.adelielinux.org/Sheila/Chessa). + +## Dicebot + +All dicebot commands support four special features not available to other commands: + +* `.help` gives usage information and a description of the command. +* `.-as ` processes the command as though `nick` had used it. +* `.-to ` sends the output of the command to you and `nick` as a private message. +* `. ; ` appends the comment to the end of the command's output. + +The following commands are associated: + +* `.attrib` generates D&D dice-rolled attributes. +* `.silcore` rolls dice for Silhouette Core. +* `.exalted` rolls dice for Exalted 2e; `.exalted 6` may be used for old World of Darkness. +* `.hellcats` rolls dice for Hellcats & Hockeysticks. +* `.fudge` rolls dice for Fudge and Fate, and supports the Fate ladder. +* `.lonewolf` rolls a die for the Lone Wolf gamebooks and tabletop game. +* `.dryh` rolls dice for Don't Rest Your Head. +* `.dw` rolls dice for Dungeon World and variants. +* `.swrpg` (and aliases `.eote`, `.aor`, and `.fad`) rolls dice for the Star Wars RPG tabletop game. +* `.pfbuy` reports the point cost of the given Pathfinder array. +* `.explode` rolls exploding dice. +* `.cortex` rolls the requested dice per Cortex Prime rules. +* `.imperialassault` (and `.ia` alias) rolls coloured dice per the Imperial Assault board game. +* `.blade` rolls the requested number of d6's per Forged in the Dark rules. +* `.roll` and `.math` are more generic; the former allows for multiple formulas to be calculated at once, whereas the latter allows spaces to be used to make formulas more legible. + +The `.roll` and `.math` commands support the following: + +* PEMDAS (exponents use `**` rather than `^`) +* Bitwise operators (`&|^~`) +* d operator (as in `1d6`), rolls a number of X-sided dice, up to 100d100 +* functions + * `int` (truncates, converts hexadecimal, octal, and binary integers to decimal integers) + * `hex` (converts decimal, octal, and binary integers to hexadecimal) + * `oct` (converts decimal, hexadecimal, and binary integers to octal) + * `bin` (converts hexadecimal, decimal, and octal integers to binary) + * `atan2` (two-argument arc-tangents) + * `cos` (cosine) + * `exp` (e to the nth power) + * `log` (logarithm of n) + * `logn` (logarithm of n (base x)) + * `log10` (logarithm of n (base 10)) + * `sin` (sine) + * `asin` (arcsine) + * `sqrt` (Square root) + * `c2f` (convert Celsius to Fahrenheit) + * `f2c` (convert Fahrenheit to Celsius) + * `floor` (round float downward) + * `ceil` (round float upward) + * `min` (smallest of given arguments) + * `max` (largest of given arguments) +* variables + * pi + * e + * pie (pi * e) + +## Weather + +The weather command set consists of `.weather`, `.f`/`.f1`/`.f3`, `.alerts`, and `.location`. All commands take a query string and, optionally, a semicolon (`;`) followed by a country designator. This designator will constrain the query to the given country, in cases where an ambiguous query may return an unexpected result (e.g. `.weather hell` might return the weather for Hellin, Spain, whereas `.weather hell;no` will return the weather for Hell, Norway). + +`.f` returns today's forecast, `.f1` returns tomorrow's forecast, and `.f3` returns (via PM) the forecast for the three days following today. Note that the forecast will change over at 00:00 local time. + +`.location` stores the provided location for the user, so as to allow future inquiries to omit a query string. + +## Issue tracker + +Chessa integrates with Adélie's GitLab and with Github. Supported syntax: `source:project/repo?n`, where + +* `source:` is either `adelie:`, or `github:` or `gh:`, +* `project` is the organization or user where the repo can be found, +* `repo` is the repository in question, +* `?` is one of the sigils in `$#@!`, +* and `n` is a number (for `$#!`) or commit (for `@`). + +Sigils have their GitLab meaning: + +* `$` is a snippet +* `@` is a commit +* `#` is an issue +* `!` is a merge request + +Portions of the syntax may be dropped, e.g. at the moment she is configured to default to `adelie/packages`. + +**Note**: This module is a work in progress. + +## Other Commands + +* `.choose` returns a randomly-chosen entry from a list, delimited by a comma followed by a space. +* `.unicode` returns information on the given Unicode sequence. Supports combining characters. +* `.uniname` returns information on the given Unicode named sequence. + diff --git a/content/programs/exdeath.md b/content/programs/exdeath.md new file mode 100644 index 0000000..fbf1d28 --- /dev/null +++ b/content/programs/exdeath.md @@ -0,0 +1,47 @@ +--- +title: Exdeath +--- +Exdeath is a program for patching Final Fantasy V Advance. Its source may be found [on the Treehouse Gitea](https://gitea.treehouse.systems/VulpineAmethyst/Exdeath). You will need a ROM image of the US version of the game, which you can find through your favourite search engine. + +## Main + +The real meat of the program: the patches. +* **Base**: + * None -- the base game. + * Waddle rebalance -- A remixed version of the game which aims to pump up underwhelming Jobs without altering overall balance too much. + * [Balance](https://www.dropbox.com/s/rvf9l3pwbkelu42/ffvamod-doc.txt?dl=0) -- A remixed version by wormsofcan which adds the Hero Job and changes a bunch of other things. + * [Custom Classes](http://jeffludwig.com/ff5a/download.php) -- A heavily remixed version by ludmeister. +* **Unlocked Jobs**: Unlocks all jobs directly out of the gate. Half of [wormsofcan's Fiesta patch](https://www.dropbox.com/s/ldlmpoepxk5nxgl/fiesta.ups?dl=0). +* **FFT-style Portraits**: As the name implies, this option replaces the portraits with edited Final Fantasy Tactics portraits. (missing attribution, sorry.) +* **Sound Restoration**: The [Sound Restoration](http://www.romhacking.net/hacks/563/) hack modifies the soundfont and corrects some slow-down issues. It can cause artifacting, however. Older versions of VisualBoyAdvance will require the GBA BIOS file in order to run normally with this option. +* **Save Config**: Saves your current configuration, including the ROM location. This configuration will be automatically loaded on next run. + +## Randomization + +Randomizable components. + +* **Seed**: A number used to set the random number generator to a known state. The range accepted is 0 through 2**31-1, inclusive. Default value is the current time in seconds since 1 January 1970 00:00 UTC, divided by 3600. +* **Neo ExDeath**: Pick graphics for the final boss. +* **Abilities**: Shuffles abilities such that all Jobs learn five abilities and have a randomized command. + +## Innate abilities + +Each checkbox applies the listed innate ability to all Jobs. + +## Multipliers + +Multiply experience, ability point, or gil awards from battle. Experience and gil are hard-capped at 65,535 and ability points are hard-capped at 255, regardless of multiplier. + +## Notes + +The 'Unlocked Jobs' mode includes a patch that allows **!Combine** ammo to drop prior to unlocking the sealed weapons. This alters the drop tables for the following enemies: + +* **Buckshot**: + * Black Flame + * Birostris + * Elm Gigas +* **Blastshot**: + * Blood Slime + * Executor +* **Blitzshot**: + * Mummy diff --git a/content/programs/smeargle.md b/content/programs/smeargle.md new file mode 100644 index 0000000..d420ceb --- /dev/null +++ b/content/programs/smeargle.md @@ -0,0 +1,19 @@ +--- +title: Smeargle +--- +Smeargle is a program for rendering text as graphics using a bitmap font. It presently comes in two flavors: + +* [Python](https://github.com/VulpineAmethyst/smeargle.py) -- the original implementation, built on top of PyQt5 +* [C#](https://github.com/VulpineAmethyst/Smeargle) + +Both flavours provide similar functionality; however, the Python version uses JSON for configuration and the C# version uses TOML for configuration. + +## Features + +- deduplication (optional) +- configurable tilemap output (compatible with Thingy32 and Atlas/Cartographer) +- support for monospace/fixed-width and variable-width bitmap fonts +- PNG inputs and outputs +- output limits (minimum width, maximum width) +- Unicode-based glyph mapping +- palette specification (Python-specific, required by PyQt if you want a fixed palette order)