Skip to content

Instantly share code, notes, and snippets.

View Treeki's full-sized avatar

Ash Wolf Treeki

View GitHub Profile
@Treeki
Treeki / acnh_unsave.py
Created March 25, 2020 03:06
savefile decrypter for Animal Crossing: New Horizons
# savefile decrypter for Animal Crossing: New Horizons
# copyright Ash Wolf (Ninji) 2020
import struct, binascii, sys, Crypto.Cipher.AES, Crypto.Util.Counter
if len(sys.argv) != 4:
print('Usage: %s [main.dat] [mainHeader.dat] [output.dat]' % sys.argv[0])
sys.exit()
class SeadRandom:
@Treeki
Treeki / gist:7297a459bb104ae5401c1ce5f7e205a6
Created April 16, 2020 04:30
ACNH flower breeding stuff
/* WARNING: Type propagation algorithm not settling */
uint ProduceNewFlowerGenes(ulonglong geneSetA,uint geneSetB)
{
int iVar1;
uint outputGene3;
uint outputGene2;
ulonglong geneSetA_;
use super::enums as gxe;
enum Size {
Bit4,
Bit8,
Bit16,
Bit32,
}
trait Decode {
@Treeki
Treeki / mgsr_nro_extractor.py
Created June 25, 2021 15:41
Mario Golf: Super Rush NRO extractor
# a massive kludge by Ninji
# extracts the encrypted NRO from Mario Golf: Super Rush
#
# requires Python 3 and the lz4 and unicorn modules
import struct
import lz4.block
from unicorn import *
from unicorn.arm64_const import *
Notifications from Mouse:
08 02 x :: sends message with wParam 8, lParam x to GUI
08 01 x :: sends message with wParam 9, lParam x to GUI
08 06 x :: sends message with wParam 0xA, lParam x to GUI
08 09 __ 01 __ 04 :: sends message with wParam 0xB, lParam 0 to GUI
08 09 __ 01 __ 08 :: sends message with wParam 0xB, lParam 1 to GUI
08 09 __ 01 __ 02 :: sends message with wParam 0xB, lParam 2 to GUI
08 09 __ 02 __ 00 :: sends message with wParam 0xB, lParam 3 to GUI
08 09 __ 06 __ __ :: sends message with wParam 0xB, lParam 4 to GUI
@Treeki
Treeki / odeus.py
Last active September 24, 2022 00:15
# runs under Python 2 (yes, I know...)
# required modules: pip install unicorn pefile
# this code is made available under the MIT license, as follows:
# Copyright (c) 2018 Ash Wolf
# 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
@Treeki
Treeki / unstir.py
Created December 29, 2016 22:43
Super Mario Run .stir file decrypter
# fun fact:
# this is internally referred to as 'SimpleEncryption'
# it is pretty damn simple, really
import sys
KEY = 0x5D
INITIAL_SPAN = 0x200
SPAN = 0x100
input_name = sys.argv[1]
@Treeki
Treeki / lzma_sample.cpp
Created May 24, 2017 21:52
simple LZMA SDK compression/decompression example
// note: -D_7ZIP_ST is required when compiling on non-Windows platforms
// g++ -o lzma_sample -std=c++14 -D_7ZIP_ST lzma_sample.cpp LzmaDec.c LzmaEnc.c LzFind.c
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <memory>
#include "LzmaEnc.h"
#include "LzmaDec.h"
@Treeki
Treeki / TurnipPrices.cpp
Last active April 5, 2024 13:55
AC:NH turnip price calculator
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
// munged from https://github.com/simontime/Resead
namespace sead
{
class Random
{