Skip to content

Instantly share code, notes, and snippets.

@scascketta
scascketta / process_3ds_video.sh
Last active December 8, 2021 17:04
Demuxes 3D videos from Nintendo 3DS into two (left and right) videos and splits the videos into image frames.
#!/usr/bin/env bash
# Demuxes 3D videos from Nintendo 3DS into two (left and right) videos
# and splits the videos into image frames.
# REQUIRES FFMPEG, can be installed with Homebrew on Mac
# Install FFmpeg on ubuntu with: http://askubuntu.com/a/451158
if [ $# -ne 1 ]
then
[quote="reprep"]Hi,
can you please summarize your tweets about 3DS CFW here too? People like me are interested in those but we can't understand because of language barrier. Thanks.[/quote]
It's very easy.
I just want to make better CFW.
Relocatable ELF (Plugin) loader, Better signature check of CIA (support both enrypted and decrypted one), Allowing kernel access from homebrews, enabling exception display for debugging, debugger plugin(ctrlink?), screenshot plugin...
When I say such a hope, Japanese PSP developers also dream of that.
But, there is no source code. We must reverse it.
Why don't they release their source code?
@ToadKing
ToadKing / gist:3b452a4121fede44a50f
Last active June 3, 2022 06:34
Wii U GC adapter - Working prototype
@Subv
Subv / gist:3e0cefdd3e267ce883a5
Created December 3, 2014 03:01
010 Editor Nintendo 3DS CIA Template
//--------------------------------------
//--- 010 Editor v5.0 Binary Template
//
// File: 3DSCIATemplate.bt
// Author: Subv
// Revision: 0.1
// Purpose: Parsing .CIA files for the Nintendo 3DS
//--------------------------------------
struct CIAFile
{
@IntelOrca
IntelOrca / s2asm_labels.txt
Created December 5, 2014 11:25
S2 asm named labels
StartOfRom
Header
Checksum
ROMEndLoc
EndOfHeader
ErrorTrap
EntryPoint
PortA_Ok
SkipSecurity
VDPInitLoop
@smealum
smealum / bin2wav.py
Last active May 25, 2020 22:34
bangai-o soundhax
import sys
import wave
import struct
# bit0 is a single period sine wave at 1024Hz with a given amplitude
# bit1 is the same but with ~2.7 times the amplitude
bits = [[0x00, 0x09, 0x12, 0x1A, 0x21, 0x27, 0x2C, 0x2F, 0x30, 0x2F, 0x2C, 0x27, 0x21, 0x1A, 0x12, 0x09, 0x00, 0xF6, 0xED, 0xE5, 0xDE, 0xD8, 0xD3, 0xD0, 0xD0, 0xD0, 0xD3, 0xD8, 0xDE, 0xE5, 0xED, 0xF6], [0x00, 0x18, 0x30, 0x46, 0x59, 0x69, 0x75, 0x7C, 0x7F, 0x7C, 0x75, 0x69, 0x59, 0x46, 0x30, 0x18, 0x00, 0xE7, 0xCF, 0xB9, 0xA6, 0x96, 0x8A, 0x83, 0x81, 0x83, 0x8A, 0x96, 0xA6, 0xB9, 0xCF, 0xE7]]
bits[0] = [b^0x80 for b in bits[0]]
bits[1] = [b^0x80 for b in bits[1]]
bits[0] = struct.pack('%sB' % len(bits[0]), *bits[0])
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
void tea_decrypt (uint32_t *v, uint32_t *k) {
uint32_t v0=0, v1=0, sum=0;
uint32_t delta=0x61C88647;
uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3];
do {
sum -= delta;
@yifanlu
yifanlu / spider_rop.s
Created January 23, 2015 18:16
regionthree as 9.x Spider ROP
.nds
.create "spider_rop.bin",0x0
;define constants
DLPLAY_CODE_LOC_VA equ 0x00192800
DLPLAY_CODE_LOC equ (DLPLAY_CODE_LOC_VA-0x00100000+0x03F50000+0x14000000)
DLPLAY_HOOK_LOC equ (0x03FF3500+0x14000000)
DLPLAY_NSSHANDLE_LOC_VA equ 0x001A5200
enum {
RCT1_RIDE_TYPE_NULL = 255,
RCT1_RIDE_TYPE_WOODEN_ROLLER_COASTER = 0,
RCT1_RIDE_TYPE_STAND_UP_STEEL_ROLLER_COASTER,
RCT1_RIDE_TYPE_SUSPENDED_ROLLER_COASTER,
RCT1_RIDE_TYPE_INVERTED_ROLLER_COASTER,
RCT1_RIDE_TYPE_STEEL_MINI_ROLLER_COASTER,
RCT1_RIDE_TYPE_MINIATURE_RAILROAD,
RCT1_RIDE_TYPE_MONORAIL,
RCT1_RIDE_TYPE_SUSPENDED_SINGLE_RAIL_ROLLER_COASTER,
@mid-kid
mid-kid / Dummy RSF
Last active July 23, 2023 20:07
Dummy .rsf file for 3DS games
Dummy .rsf file for 3DS games