Skip to content

Instantly share code, notes, and snippets.

View uyjulian's full-sized avatar

Julian Uy uyjulian

View GitHub Profile
import idaapi, idc, inspect, ida_bytes, ida_nalt
for i in range(8):
arrptr = int.from_bytes(idc.get_bytes(0x2AD200 + (i * 4), 4), byteorder="little")
for j in range(527):
strptr = int.from_bytes(idc.get_bytes(arrptr + (j * 4), 4), byteorder="little")
numbytes = ida_bytes.get_max_strlit_length(strptr, ida_nalt.STRTYPE_TERMCHR, ida_bytes.ALOPT_IGNHEADS | ida_bytes.ALOPT_IGNCLT)
ida_bytes.del_items(strptr, ida_bytes.DELIT_EXPAND, numbytes)
ida_bytes.create_strlit(strptr, numbytes, ida_nalt.STRTYPE_TERMCHR)

Ghidra quick start guide

Context sensitive help

Press "F1" or Help menu item on anything

Canceling operation

Stuck on an error or warning? Try using "esc" to cancel the input


DTL list

(This is a mirror from with adjustments to make it render properly)

Here is my own DTL list. I didn't really use existing DTL list to create it. It was created after years of collecting and searching. I still can't confirm some things and I still don't have every thing of course but I have seen or even have the most of these things. The software and documentation here is mostly Japanese because SCEA and SCEE used their own mixes under their own codes and they were mostly the same every time. The books from SCEA and SCEE rarely had any DTL codes.

The list is still raw. Ask any questions. I will try to answer. Post any DTL stuff here if you don't see it in the list or it has "?".



External plugin support for Kirikiri SDL2

Support for external plugins has been implemented in Kirikiri SDL2.

For Win32 platforms, in most cases, the plugins built for Kirikiri 2 and Kirikiri Z will work as-is without any modifications.

The source code for plugins ported to work with Kirikiri SDL2's other supported platforms can be found in the "krkrsdl2" branch, and releases/binaries in the "latest_krkrsdl2" tag: (basetest, exceptiontest, extrans, imagesaver, nativeclasstest, wutcwf, xp3dec)

View section_reorder_hoge.c
static void section_reorder_hoge()
// FIXME: Do we actually need to do this?
elf_loader_psegment_t psegment_tmp[ELF_LOADER_MAX_PROGRAM_HEADERS];
memset(psegment_tmp, 0, sizeof(psegment_tmp));
// Calculate output buffer offsets in order of load address
int i;
unsigned int kv_count;
View cmake_multi_link_source_file.cmake
View arm64_crosscompile_ubuntu_snippet.bash
podman run --name ubuntu-arm-dev -d --network=host -v /mnt/data:/mnt/data:rw /bin/sleep infinity
podman exec -it ubuntu-arm-dev /bin/bash
sed -i -e 's/^deb/deb [arch=amd64]/g' /etc/apt/sources.list
dpkg --add-architecture arm64
apt-get update
apt-get -y upgrade
apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
apt-get -y install qemu-user qemu-user-static
cat /etc/apt/sources.list | sed -e 's/amd64/arm64/g' | sed -e 's/security\./ports./g' | sed -e 's/archive\./ports./g' | sed -e 's/\/ubuntu\//\/ubuntu-ports\//g' | sed -e 's/# deb-src /deb-src /g' > /etc/apt/sources.list.d/arm64.list
# SPDX-License-Identifier: MIT
# Quick script for changing material
# Run the script with "--help" as the argument for descriptions of these options.
def save_unity_mat(config_struct):
import os
import pathlib
# SPDX-License-Identifier: MIT
# Falcom YamaNeko engine on PSP ISO format extraction.
# Uses the information contained in PSP_GAME/USRDIR/data.lst
# Also recursively unpacks cclm archive/group files
# See also:
import struct
import io
# SPDX-License-Identifier: MIT
# fbxex_bin2json
# usage: /path/to/python3 /path/to/ /path/to/bg.fbx.bin
# Use with fbxex2gltf to convert to gltf
import sys
import json
import struct