Skip to content

Instantly share code, notes, and snippets.

View InvoxiPlayGames's full-sized avatar
🦊
fox on the computer

Emma InvoxiPlayGames

🦊
fox on the computer
View GitHub Profile

Keybase proof

I hereby claim:

  • I am invoxiplaygames on github.
  • I am invoxiplaygames (https://keybase.io/invoxiplaygames) on keybase.
  • I have a public key ASDZ-ab_kWmb4TMRim3eOA-yMH3OlfTspE7dAKFh0EP_fQo

To claim this, I am signing this object:

@InvoxiPlayGames
InvoxiPlayGames / DOLLoader.c
Last active May 21, 2021 00:46
Hacky, barely/non-functional Wii/GC DOL loader.
/*
DOLLoader.c
Copyright 2021 InvoxiPlayGames
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION W
@InvoxiPlayGames
InvoxiPlayGames / lang_en.json
Last active September 24, 2021 15:19
DELTARUNE Chapter 2 English Language JSON file, made by referencing data.win, lang_jp.json and lang_en_ch1.json. Some strings may be missing or inaccurate.
This file has been truncated, but you can view the full file.
{
"date":"1632407807322",
"DEVICE_CHOICE_slash_Create_0_gml_28_0":"NO",
"DEVICE_CHOICE_slash_Create_0_gml_29_0":"YES",
"DEVICE_CHOICE_slash_Create_0_gml_64_0":"GRAINS",
"DEVICE_CHOICE_slash_Create_0_gml_65_0":"MEAT",
"DEVICE_CHOICE_slash_Create_0_gml_66_0":"DAIRY",
"DEVICE_CHOICE_slash_Create_0_gml_67_0":"SWEETS",
"DEVICE_CHOICE_slash_Create_0_gml_68_0":"FRUIT",
"DEVICE_CHOICE_slash_Create_0_gml_69_0":"VEGETABLE",
@InvoxiPlayGames
InvoxiPlayGames / gamespyChallengeRC4.js
Created October 5, 2021 05:28
crappy implementation of gamespy's rc4 challenge algorithm in NodeJS
/*
crappy implementation of gamespy's rc4 challenge algorithm in NodeJS
basically just eyed from https://github.com/barronwaffles/dwc_network_server_emulator/blob/master/gamespy/gs_utility.py
strkey = String of "secret key" used by client
data = Buffer of challenge data sent by server
return value = String of base64 encoded challenge response
i only tested this once, it could probably be improved, idk if it works 100%
*/
function gamespyChallengeRC4(strkey, data) {
key = Buffer.from(strkey);
@InvoxiPlayGames
InvoxiPlayGames / STUNgetIP.js
Created October 9, 2021 06:30
STUN IP request thing in NodeJS (bad)
var dgram = require("dgram");
var udp4 = dgram.createSocket("udp4");
var udp6 = dgram.createSocket("udp6");
var stunServer = "stun.l.google.com";
var stunPort = 19302;
function makeSTUNRequest() {
var buffer = Buffer.alloc(20);
buffer.writeUInt16BE(0x0001, 0); // STUN request
@InvoxiPlayGames
InvoxiPlayGames / string-gecko.py
Created October 13, 2021 14:42
string-gecko.py - generate Wii gecko/ocarina codes to replace ASCII strings in game executables
# string-gecko.py by github.com/InvoxiPlayGames
# command usage: python string-gecko.py [dol|dump] [filename] [oldstring] [newstring]
# code licensing: don't be a dick with it, credit for general usage would be nice but not required
# but if you use parts of this python script in your own project, credit is required
import struct
import sys
memorybase = 0x80000000
memorysize = 0x01800000 # size of Wii MEM1, i think
@InvoxiPlayGames
InvoxiPlayGames / RBWiiKeytarUnderstander.cs
Created January 12, 2022 08:27
RBWiiKeytarUnderstander.cs - Basic Rock Band 3 Wii Keyboard / Keytar Parser in C#
/*
RBWiiKeytarUnderstander.cs by InvoxiPlayGames 2022
Licensed under WTFPL
Requires LibUsbDotNet NuGet package, licensed under LGPLv3
Use Zadig to install WinUSB or LibUSB drivers for the device
*/
using LibUsbDotNet;
using LibUsbDotNet.Main;
using LibUsbDotNet.WinUsb;
using System;
@InvoxiPlayGames
InvoxiPlayGames / tcp-to-tls-proxy.js
Created December 3, 2022 02:51
tcp-to-tls-proxy.js - A simple NodeJS proxy to forward a given unencrypted TCP connection to a TLS encrypted server
/*
tcp-to-tls-proxy.js - A simple NodeJS proxy to forward a given unencrypted TCP connection to a TLS encrypted server.
by InvoxiPlayGames, hereby released into the public domain. Not that there's much to it to license.
I created this as a way to connect to my modern, TLS 1.3-supporting XMPP server from iChat on a
PowerBook running OS X Leopard (hence the default ports), but this can be used for anything that
accepts a raw TLS connection where a legacy client can only handle an unencrypted connection.
Please be safe with this, don't run this over an external network as it *is* reducing security.
To use, replace the host and port in tls_settings with your target server, and host_port with
@InvoxiPlayGames
InvoxiPlayGames / 45410914 - Rock Band 3.patch.toml
Created December 18, 2022 19:43
RB3Enhanced Loader Xenia Canary Patch
# This patch requires a build of Xenia Canary that supports writable_code_segments, and having it enabled in the config.
# (Not merged as of 18-Dec-2022, see: https://github.com/xenia-canary/xenia-canary/pull/100)
# Commit 28f3eb6 or later of RB3Enhanced recommended, due to removing the DEMO check.
title_name = "Rock Band 3"
title_id = "45410914"
hash = [
"464451C1022FFF32", # EA disc default.xex + TU5 applied
"02B607A811A4C291" # RB3DX modded pre-patched TU5 XEX
]
@InvoxiPlayGames
InvoxiPlayGames / interactions.php
Created February 16, 2023 01:05
Discord Interactions signature validation in native PHP 7.2+
<?php
$timestamp = $_SERVER['HTTP_X_SIGNATURE_TIMESTAMP'];
$signature = hex2bin($_SERVER['HTTP_X_SIGNATURE_ED25519']);
if ($signature === false) {
die(http_response_code(403));
}
$publickey = hex2bin("[ YOUR_APP_PUBLIC_KEY ]"); // REPLACE THIS WITH YOUR OWN APP'S!
$postdata = file_get_contents('php://input');
// signature verification;