-finally adjusted the homebrew app booter entry point to be safe with the new memory manager

-updated the app booter to be compilable with the current devkitppc, that means if you compile wiiflow it will from now on also compile the app booter
-fixed a little compiler issue for the new wiiflow loader
This commit is contained in:
fix94.1 2014-03-23 20:14:59 +00:00
parent 368cfc2b7d
commit d31f40a84b
9 changed files with 34 additions and 17 deletions

View File

@ -2,23 +2,38 @@
CURDIR_TMP := $(CURDIR)
all:
@echo Make App Booter
@$(MAKE) --no-print-directory -C $(CURDIR_TMP)/resources/app_booter \
-f $(CURDIR_TMP)/resources/app_booter/Makefile
@mv -u $(CURDIR_TMP)/resources/app_booter/app_booter.bin \
$(CURDIR_TMP)/out/bins/app_booter.bin
@echo Make WiiFlow Loader
@$(MAKE) --no-print-directory -C $(CURDIR_TMP)/resources/extldr \
-f $(CURDIR_TMP)/resources/extldr/Makefile
@echo Make WiiFlow Booter
@$(MAKE) --no-print-directory -C $(CURDIR_TMP)/resources/wiiflow_game_booter \
-f $(CURDIR_TMP)/resources/wiiflow_game_booter/Makefile
@mv -u $(CURDIR_TMP)/resources/wiiflow_game_booter/booter.bin \
$(CURDIR_TMP)/out/bins/ext_booter.bin
@echo Make WiiFlow Main
@$(MAKE) --no-print-directory -C $(CURDIR_TMP) -f $(CURDIR_TMP)/Makefile.main
clean:
@echo Cleanup App Booter
@$(MAKE) --no-print-directory -C $(CURDIR_TMP)/resources/app_booter \
-f $(CURDIR_TMP)/resources/app_booter/Makefile clean
@echo Cleanup WiiFlow Loader
@$(MAKE) --no-print-directory -C $(CURDIR_TMP)/resources/extldr \
-f $(CURDIR_TMP)/resources/extldr/Makefile clean
@echo Cleanup WiiFlow Booter
@$(MAKE) --no-print-directory -C $(CURDIR_TMP)/resources/wiiflow_game_booter \
-f $(CURDIR_TMP)/resources/wiiflow_game_booter/Makefile clean
@echo Cleanup WiiFlow Main
@$(MAKE) --no-print-directory -C $(CURDIR_TMP) -f $(CURDIR_TMP)/Makefile.main clean
run:

View File

@ -151,7 +151,8 @@ all:
clean:
@echo clean ...
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol $(CURDIR)/source/svnrev.h \
$(CURDIR)/source/loader/alt_ios_gen.h $(CURDIR)/out/bins/ext_booter.bin
$(CURDIR)/source/loader/alt_ios_gen.h \
$(CURDIR)/out/bins/ext_booter.bin $(CURDIR)/out/bins/app_booter.bin
#---------------------------------------------------------------------------------
else

Binary file not shown.

View File

@ -11,7 +11,7 @@ export PATH := $(DEVKITPPC)/bin:$(PORTLIBS)/bin:$(PATH)
export LIBOGC_INC := $(DEVKITPRO)/libogc/include
export LIBOGC_LIB := $(DEVKITPRO)/libogc/lib/wii
PREFIX := powerpc-gekko-
PREFIX := powerpc-eabi-
export AS := $(PREFIX)as
export CC := $(PREFIX)gcc
@ -36,8 +36,8 @@ INCLUDES :=
# options for code generation
#---------------------------------------------------------------------------------
MACHDEP := -mno-eabi -mno-sdata -mcpu=750
CFLAGS := -Wall -W -Os -ffreestanding -std=gnu99 -Wstrict-aliasing=2 $(MACHDEP) $(INCLUDE)
CXXFLAGS := $(CFLAGS)
CFLAGS := -Wall -W -O1 -ffreestanding -std=gnu99 -Wstrict-aliasing=2 $(MACHDEP) $(INCLUDE)
LDFLAGS := -nostartfiles -nostdlib $(MACHDEP)
#---------------------------------------------------------------------------------
# move loader to another location - THANKS CREDIAR - 0x81330000 for HBC
@ -136,19 +136,19 @@ $(OUTPUT).elf: $(OFILES)
# This rule links in binary data with the .jpg extension
#---------------------------------------------------------------------------------
%.bin: %.elf
@echo " OBJCOPY $@"
@echo "output ... $@"
$(Q)$(OBJCOPY) -O binary $< $@
%.elf: link.ld $(OFILES)
@echo " LINK $@"
$(Q)$(LD) -n -T $^ $(LDFLAGS) -o $@
@echo "linking ... $@"
$(Q)$(CC) -n -T $^ $(LDFLAGS) -o $@
%.o: %.c
@echo " COMPILE $@"
@echo "$@"
$(Q)$(CC) $(CFLAGS) -c $< -o $@
%.o: %.s
@echo " ASSEMBLE $@"
@echo "$@"
$(Q)$(CC) $(CFLAGS) -c $< -o $@
-include $(DEPENDS)

View File

@ -2,6 +2,7 @@
# This code is licensed to you under the terms of the GNU GPL, version 2;
# see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
.extern _main
.globl _start
_start:
@ -18,4 +19,4 @@ _start:
bl memset
# Go!
b main
bl _main

View File

@ -8,7 +8,7 @@ OUTPUT_ARCH(powerpc:common)
ENTRY(_start)
SECTIONS {
. = 0x93100000;
. = 0x93300000;
.start : { crt0.o(*) }
.text : { *(.text) }

View File

@ -11,9 +11,9 @@
#include "sync.h"
#define EXECUTABLE_MEM_ADDR 0x92000000
#define SYSTEM_ARGV ((struct __argv *)0x93200000)
#define SYSTEM_ARGV ((struct __argv *)0x90100000)
void main(void)
void _main(void)
{
void *exeBuffer = (void *)EXECUTABLE_MEM_ADDR;
u32 exeEntryPointAddress = 0;

View File

@ -1,4 +1,4 @@
export PATH := $(DEVKITPPC)/bin:$(PATH)
PREFIX = powerpc-eabi-
AR = $(PREFIX)ar

View File

@ -12,8 +12,8 @@
#include "gecko/gecko.hpp"
#define EXECUTE_ADDR ((u8 *)0x92000000)
#define BOOTER_ADDR ((u8 *)0x93100000)
#define ARGS_ADDR ((u8 *)0x93200000)
#define BOOTER_ADDR ((u8 *)0x93300000)
#define ARGS_ADDR ((u8 *)0x90100000)
#define BOOTER_ENTRY ((entry)BOOTER_ADDR)
using namespace std;