Skip to content

Instantly share code, notes, and snippets.

View toasterparty's full-sized avatar
🤠

toasterparty toasterparty

🤠
  • California
  • 08:12 (UTC -07:00)
View GitHub Profile

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

Unity IL2CPP Reverse Engineering

Unity games are fun.

Modding them is more fun.

Most unity games ship as "Mono". This means .NET IL code is right there for your viewing pleasure and makes for one of the easiest modding experience you can have (outside of official mod support).

Recently, many Unity games have been shipping with "IL2CPP" which optimizes out the "just in time" compilation with actual compilation. This process makes the game perform better for the player, but it also obfuscates game code meaning we have less information to work with when attempting to reverse engineer. This document describes the process of reverse engineering a Unity game built with IL2CPP despite the limitations. Keep in mind the best process for reverse engineering will change as Unity Engine evolves and the tools available change, and so this may become outdated.

Patched SJF Challenge

This is a self-imposed challenge just for fun. It's also meant to challenge our understanding of the game as well as understand this iconic and fundamental problem from the shoes of the developer. The orignal dev team wouldn't have rules 5 and 6, but those make this challenge trivial and boring.

Rules

  1. For the patch to be succesful, no single player may obtain Space Jump Boots before obtaining all of [Morph Ball, Morph Ball Bombs, Boost Ball] without the use of cheats or additional mods

  2. The patch must apply to NTSC 0-00

@toasterparty
toasterparty / PrimeFit.ini
Last active July 18, 2023 16:17
Dolphin Controller Config for Playing Metroid Prime (GC) with a Ring Fit Controller. Place in `/Documents/Dolphin Emulator/Config/Profiles/GCPad`
[Profile]
Device = WGInput/0/Xbox 360 Controller for Windows
Buttons/A = ((`Right Y+` > 0.9 | (`Right Y-` > 0 & `Trigger L`) | pulse(`Right Y+` > 0.5 & `Right Y+` < 0.9, 1/60)) | !`Trigger L` & (`Right Y-` > 0.45)) & !Back
Buttons/B = pulse(!Back, 1/60) | pulse(hold(!Back, if($long_jump, 1.0, 0.65)), 1/60) | (Back & !`Trigger L` & `Right Y-` > 0) | `DInput/0/Keyboard Mouse:LSHIFT`
Buttons/X = `Button A`
Buttons/Y = !`Trigger L` & !Back & ( (`Right Y-` > 0 & `Right Y-` < 0.45) | (timer(0.3) & `Right Y-` > 0.45) )
Buttons/Z = `DInput/0/Keyboard Mouse:BACKSLASH`
Buttons/Start = `DInput/0/Keyboard Mouse:RETURN`
Main Stick/Dead Zone = if(Back, 3, 15)
Main Stick/Up = if(Back, `Left Y+`*0.6, (`Thumb L` | pulse(!`Thumb L`, 1) | $freelook) & `Left Y+` | `DInput/0/Keyboard Mouse:UP`)