1#!/bin/bash
2
3if [ -z "${BMERGE}" ]; then
4	export BMERGE=`cygpath -u "${REVOLUTION_EXT_ROOT}/X86/bin/bmerge.exe"`
5fi
6
7if [ -z "${SHOWLIST_ELF}" ]; then
8	SHOWLIST_ELF_REL=`cygpath -m "${REVOLUTION_EXT_ROOT}/RVL/bin/tools/private/showlist.elf"`
9	SHOWLIST_ELF_DBG=`cygpath -m "${REVOLUTION_EXT_ROOT}/RVL/bin/tools/private/showlistD.elf"`
10	if [ -e "${SHOWLIST_ELF_REL}" ]; then
11		SHOWLIST_ELF="${SHOWLIST_ELF_REL}"
12	else
13		SHOWLIST_ELF="${SHOWLIST_ELF_DBG}"
14	fi
15fi
16
17#typedef struct
18#{
19#    u8             magic_number[8];		// 00-07
20#    u32            size;			// 08-0b
21#    u8		   is64MB;			// 0c-0c
22#    u8		   isboot1;			// 0d-0d
23#    u8		   padding1[2];			// 0e-0f
24#    ESTitleId      titleid;			// 10-17
25#    ESTitleVersion titleversion;		// 18-19
26#    u8		   padding2[0x26];		// 1a-3f
27#    u8             data[WADFILE_MAXSIZE] __attribute__((aligned(64)));
28#} FWFILE __attribute__((aligned(64)));
29
30OUTELF="${1%.wad}.elf"
31MARKING="${0%/*}/makefwinst.magic.bin"
32FLAG1="${0%/*}/makefwinst.flag1.bin"
33
34${BMERGE} -S 8 -P 64 -L 2097152 "${MARKING}" "$1" "${SHOWLIST_ELF}" "${OUTELF}"
35
36# 64MB flag
37if [ "$2" == "64" ]; then
38  ${BMERGE} -P 12 -L 1 "${MARKING}" "${FLAG1}" "${OUTELF}" "${OUTELF}"
39fi
40
41# BOOT1 flag
42if [ "$3" == "BOOT1" ]; then
43  ${BMERGE} -P 13 -L 1 "${MARKING}" "${FLAG1}" "${OUTELF}" "${OUTELF}"
44fi
45