Skip to content

Instantly share code, notes, and snippets.

View toasterparty's full-sized avatar
🤠

toasterparty toasterparty

🤠
  • California
  • 01:22 (UTC -08:00)
View GitHub Profile

Toaster's Windows 11 Setup Guide

After having to install Windows for the 4th time this year, I've decided to streamline future installations by documenting the details of how to set up Windows such that it as far removed as possible from it's default state of being overbearingly obnoxious. I understand I am the primary audience for this guide - I have chosen to share it online regardless as it has a chance of helping others. Some highlights:

  • 🏴‍☠️ Windows 11 Pro
  • 🏴‍☠️ Offline Office products
  • Maximum privacy and performance
  • Minimum bloat and clutter
  • Windows 10 Context Menu
  • Windows 7 Photo Viewer

Toaster's Guide to Normalized Movement in Metroid Prime (GC)

What is Normalized Movement?

When playing a speedgame, there are certain circumstances (e.g. blindfolded or performing an extremely precise trick) where it can be extremely useful to move the character in such a way where the position of the character is always an exact known value with little to no variance between attempts.

Normalized Movement is a solution to this problem. Think of the old Pokemon games where player movement is constrained to a tile grid. In those games, the simple act of buffering the direction of the next tile the player wants to navigate to maintains Normalized Movement. A runner can repeat the same actions across many attempts and always end up in the same position at the exact same frame with 100% consistency. In games where there is a gradient of movement speed and direction (i.e. games that control movement with an analog stick), the only way to maintain Normalized Movement is with a pre-defined set of

# Usage:
# venv_setup <venv path> [<python version>] [<requirements.txt path>]
#
# If <python version> is left "", then the default python interpreter
# will be used, otherwise provide a number like "3.11"
#
venv_setup() {
local VENV_DIR="$1"
local PY_VER="${2-}"
local REQUIREMENTS_TXT="$3"

C Standard Popularity

This table attempts to answer the question:

Roughly how popular are each of the C standards relative to each other?

Results

Standard Hits Query

Overcooked! 2 Feedback

This document is a braindump of everything that I believe is stopping Overcooked! 2 from being the best game ever made. Please consider all of the following if you are thinking about making a spiritual successor.

Complaints about Overcooked

Failure Feedback Loop

When a run goes well it goes really well, when a run goes bad, it goes really bad. This is because of a feedback loop designed into the game which amplifies both failure (and therefore success as well). These are the components of that feedback loop:

  • Fire ruins food and takes burner/oven out of service and requires effort to be put out

Starting Room Hex Edit

This guide walks you through the process of editing the starting room of a vanilla Metroid Prime NTSC 0-00 ISO using only a hex editor.

  1. Install hxd

  2. Use dolphin to extract NTSC 0-00 ISO to folder

  3. Open prime/sys/main.dol in HxD

Toaster's Metroid Prime Romhacking Wisdom

Knowledge is knowing a tomato is a fruit. Wisdom is not putting it in a fruit salad Plasma Processing.

This is a dump of my thoughts after spending upwards of 5 months on the Metroid Fool romhack. Coming out of that experience, I've learned several lessons I wish I had known going into this process. Hopefully this helps others seeking to make similar hacks avoid design mistakes - even if this advice is coming from someone whose total romhacking experience is microscopic compared to members of certain 2D game communities. This advice is intended for any Metroid Prime romhacker who intends to increase the difficulty of the base game, however, you could also argue a lot of this is just good game design (in which case you'd be better off reading a book).

All examples used in this guide are fabricated as to not spoil the contents of Metroid Fool.

Lesson 1

Coexist Multiple GitHub SSH Keys for Multiple Accounts

This guide applies to you if:

  1. You use SSH authentication for git

  2. You use more than one account, and thus require more than one SSH key in your ssh configuration file

Create Keys

@toasterparty
toasterparty / json-schema.md
Last active August 17, 2023 23:38
How to actually use JSON schema to actually document something

JSON Schema Guide (For Humans)

This guide is for you if all of the following is true:

  • You maintain a JSON specification
  • Other people need to write JSON documents that adhere to your specification (by hand or by code) and thus need to understand your specification
  • You haven't already spent sufficient effort documenting your specification

Note that you can adapt this guide to YAML with a small amount of effort.

Example JSON Document