Nugget
Bare-metal libraries and examples for the original PlayStation
Loading...
Searching...
No Matches
Variables
mkimage Namespace Reference

Variables

int FLASH_BASE = 0xBFC00000
 
int CAVE_BASE = 0xBFC40000
 
int CAVE_SIZE = 0x20000
 
int ENTRY_JUMP = 0xBFC00414
 
int STOCK_JUMP = 0x0BF01C60
 
 stock_path
 
 elf_path
 
 out_path
 
int objcopy = sys.argv[4] if len(sys.argv) > 4 else "mipsel-none-elf-objcopy"
 
 stock = open(stock_path, "rb").read()
 
int off = ENTRY_JUMP - FLASH_BASE
 
 check
 
 cave = open(tmp.name, "rb").read()
 
int readelf = objcopy.rsplit("objcopy", 1)[0] + "readelf"
 
 header = subprocess.run([readelf, "-hlW", elf_path], capture_output=True, text=True, check=True).stdout
 
 entry = int(re.search(r"Entry point address:\s+0x([0-9a-f]+)", header).group(1), 16)
 
list loads
 
 lo = min(p for p, s in loads)
 
 hi = max(p + s for p, s in loads)
 
 img = bytearray(stock)
 

Variable Documentation

◆ cave

mkimage.cave = open(tmp.name, "rb").read()

◆ CAVE_BASE

int mkimage.CAVE_BASE = 0xBFC40000

◆ CAVE_SIZE

int mkimage.CAVE_SIZE = 0x20000

◆ check

mkimage.check

◆ elf_path

mkimage.elf_path

◆ entry

mkimage.entry = int(re.search(r"Entry point address:\s+0x([0-9a-f]+)", header).group(1), 16)

◆ ENTRY_JUMP

int mkimage.ENTRY_JUMP = 0xBFC00414

◆ FLASH_BASE

int mkimage.FLASH_BASE = 0xBFC00000

◆ header

mkimage.header = subprocess.run([readelf, "-hlW", elf_path], capture_output=True, text=True, check=True).stdout

◆ hi

mkimage.hi = max(p + s for p, s in loads)

◆ img

mkimage.img = bytearray(stock)

◆ lo

mkimage.lo = min(p for p, s in loads)

◆ loads

list mkimage.loads
Initial value:
1= [(int(p, 16), int(s, 16)) for p, s in
2 re.findall(r"^\s*LOAD\s+\S+\s+\S+\s+0x([0-9a-f]+)\s+0x([0-9a-f]+)", header, re.M)]
void int(code1, code2)

◆ objcopy

int mkimage.objcopy = sys.argv[4] if len(sys.argv) > 4 else "mipsel-none-elf-objcopy"

◆ off

int mkimage.off = ENTRY_JUMP - FLASH_BASE

◆ out_path

mkimage.out_path

◆ readelf

int mkimage.readelf = objcopy.rsplit("objcopy", 1)[0] + "readelf"

◆ stock

mkimage.stock = open(stock_path, "rb").read()

◆ STOCK_JUMP

int mkimage.STOCK_JUMP = 0x0BF01C60

◆ stock_path

mkimage.stock_path