Skip to content

Instantly share code, notes, and snippets.

View uyjulian's full-sized avatar

Julian Uy uyjulian

View GitHub Profile
frame_sz = ida_frame.get_frame_size(func_for_frame)
frame_sz_args = ida_frame.frame_off_args(func_for_frame)
frame_sz_lvars = ida_frame.frame_off_lvars(func_for_frame)
frame_sz_retaddr = ida_frame.frame_off_retaddr(func_for_frame)
frame_sz_savregs = ida_frame.frame_off_savregs(func_for_frame)
sp_delta = ida_frame.get_sp_delta(func_for_frame, func_ea)
r = ida_range.range_t()
ida_frame.get_frame_part(r, func_for_frame, ida_frame.FPC_ARGS)
range_fpc_args = r.end_ea - r.start_ea
r = ida_range.range_t()

Playstation 2 networking stacks

INET

Main code on the IOP. SCE-developed.

Relevant IOP modules:

  • inet.irx
  • inetctl.irx
名称 機能/参照ページ
Z取り出し ディスクを取り出すボタン
Gガイド 番組表を表示させる (28)
ゲーム終了 ゲームモードを終了する(64)
電源 本機の電源を入れる
数字ボタン チャンネルを選ぶ/数字を入力する(17)
BSチャンネル BSチャンネルを選ぶ
クリア 入力した数字を消す
トップメニュー DVDのタイトルを表示させる
メニュー DVDのメニューを表示させる
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 https://www.obscuregamers.com/threads/ps-x-playstation-playstation-2-reference-dtl-eb-list.1026/post-9953.html 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 "?".

PS-X

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:
https://github.com/krkrsdl2/KAGParser
https://github.com/krkrsdl2/SamplePlugin (basetest, exceptiontest, extrans, imagesaver, nativeclasstest, wutcwf, xp3dec)

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;
podman
podman run --name ubuntu-arm-dev -d --network=host -v /mnt/data:/mnt/data:rw public.ecr.aws/ubuntu/ubuntu:22.04_stable /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