-
Notifications
You must be signed in to change notification settings - Fork 27
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
75 changed files
with
10,979 additions
and
17 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
/build | ||
/*.elf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,218 @@ | ||
#--------------------------------------------------------------------------------- | ||
# Clear the implicit built in rules | ||
#--------------------------------------------------------------------------------- | ||
.SUFFIXES: | ||
#--------------------------------------------------------------------------------- | ||
ifeq ($(strip $(DEVKITPPC)),) | ||
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC") | ||
endif | ||
ifeq ($(strip $(DEVKITPRO)),) | ||
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPRO") | ||
endif | ||
export PATH := $(DEVKITPPC)/bin:$(PORTLIBS)/bin:$(PATH) | ||
export LIBOGC_INC := $(DEVKITPRO)/libogc/include | ||
export LIBOGC_LIB := $(DEVKITPRO)/libogc/lib/wii | ||
export PORTLIBS := $(DEVKITPRO)/portlibs/ppc | ||
|
||
PREFIX := powerpc-eabi- | ||
|
||
export AS := $(PREFIX)as | ||
export CC := $(PREFIX)gcc | ||
export CXX := $(PREFIX)g++ | ||
export AR := $(PREFIX)ar | ||
export OBJCOPY := $(PREFIX)objcopy | ||
|
||
#--------------------------------------------------------------------------------- | ||
# TARGET is the name of the output | ||
# BUILD is the directory where object files & intermediate files will be placed | ||
# SOURCES is a list of directories containing source code | ||
# INCLUDES is a list of directories containing extra header files | ||
#--------------------------------------------------------------------------------- | ||
TARGET := tcpgecko | ||
BUILD := build | ||
BUILD_DBG := $(TARGET)_dbg | ||
SOURCES := src \ | ||
src/dynamic_libs \ | ||
src/game \ | ||
src/fs \ | ||
src/kernel \ | ||
src/patcher \ | ||
src/system \ | ||
src/utils | ||
DATA := | ||
|
||
INCLUDES := src | ||
|
||
#--------------------------------------------------------------------------------- | ||
# options for code generation | ||
#--------------------------------------------------------------------------------- | ||
CFLAGS := -std=gnu11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \ | ||
-O3 -Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing $(INCLUDE) | ||
CXXFLAGS := -std=gnu++11 -mrvl -mcpu=750 -meabi -mhard-float -ffast-math \ | ||
-O3 -Wall -Wextra -Wno-unused-parameter -Wno-strict-aliasing $(INCLUDE) | ||
ASFLAGS := -mregnames | ||
LDFLAGS := -nostartfiles -Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,-wrap,valloc,-wrap,_valloc_r,-wrap,_pvalloc_r,--gc-sections | ||
|
||
#--------------------------------------------------------------------------------- | ||
Q := @ | ||
MAKEFLAGS += --no-print-directory | ||
#--------------------------------------------------------------------------------- | ||
# any extra libraries we wish to link with the project | ||
#--------------------------------------------------------------------------------- | ||
LIBS := | ||
|
||
#--------------------------------------------------------------------------------- | ||
# list of directories containing libraries, this must be the top level containing | ||
# include and lib | ||
#--------------------------------------------------------------------------------- | ||
LIBDIRS := $(CURDIR) \ | ||
$(DEVKITPPC)/lib \ | ||
$(DEVKITPPC)/lib/gcc/powerpc-eabi/4.8.2 | ||
|
||
|
||
#--------------------------------------------------------------------------------- | ||
# no real need to edit anything past this point unless you need to add additional | ||
# rules for different file extensions | ||
#--------------------------------------------------------------------------------- | ||
ifneq ($(BUILD),$(notdir $(CURDIR))) | ||
#--------------------------------------------------------------------------------- | ||
export PROJECTDIR := $(CURDIR) | ||
export OUTPUT := $(CURDIR)/$(TARGETDIR)/$(TARGET) | ||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \ | ||
$(foreach dir,$(DATA),$(CURDIR)/$(dir)) | ||
export DEPSDIR := $(CURDIR)/$(BUILD) | ||
|
||
#--------------------------------------------------------------------------------- | ||
# automatically build a list of object files for our project | ||
#--------------------------------------------------------------------------------- | ||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c))) | ||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp))) | ||
sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s))) | ||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S))) | ||
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*))) | ||
TTFFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.ttf))) | ||
PNGFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.png))) | ||
|
||
#--------------------------------------------------------------------------------- | ||
# use CXX for linking C++ projects, CC for standard C | ||
#--------------------------------------------------------------------------------- | ||
ifeq ($(strip $(CPPFILES)),) | ||
export LD := $(CC) | ||
else | ||
export LD := $(CXX) | ||
endif | ||
|
||
export OFILES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \ | ||
$(sFILES:.s=.o) $(SFILES:.S=.o) \ | ||
$(PNGFILES:.png=.png.o) $(addsuffix .o,$(BINFILES)) | ||
|
||
#--------------------------------------------------------------------------------- | ||
# build a list of include paths | ||
#--------------------------------------------------------------------------------- | ||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ | ||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \ | ||
-I$(CURDIR)/$(BUILD) -I$(LIBOGC_INC) \ | ||
-I$(PORTLIBS)/include -I$(PORTLIBS)/include/freetype2 | ||
|
||
#--------------------------------------------------------------------------------- | ||
# build a list of library paths | ||
#--------------------------------------------------------------------------------- | ||
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \ | ||
-L$(LIBOGC_LIB) -L$(PORTLIBS)/lib | ||
|
||
export OUTPUT := $(CURDIR)/$(TARGET) | ||
.PHONY: $(BUILD) clean install | ||
|
||
#--------------------------------------------------------------------------------- | ||
$(BUILD): | ||
@[ -d $@ ] || mkdir -p $@ | ||
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile | ||
|
||
#--------------------------------------------------------------------------------- | ||
clean: | ||
@echo clean ... | ||
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).bin $(BUILD_DBG).elf | ||
|
||
#--------------------------------------------------------------------------------- | ||
else | ||
|
||
DEPENDS := $(OFILES:.o=.d) | ||
|
||
#--------------------------------------------------------------------------------- | ||
# main targets | ||
#--------------------------------------------------------------------------------- | ||
$(OUTPUT).elf: $(OFILES) | ||
|
||
#--------------------------------------------------------------------------------- | ||
# This rule links in binary data with the .jpg extension | ||
#--------------------------------------------------------------------------------- | ||
%.elf: link.ld $(OFILES) | ||
@echo "linking ... $(TARGET).elf" | ||
$(Q)$(LD) -n -T $^ $(LDFLAGS) -o ../$(BUILD_DBG).elf $(LIBPATHS) $(LIBS) | ||
$(Q)$(OBJCOPY) -S -R .comment -R .gnu.attributes ../$(BUILD_DBG).elf $@ | ||
|
||
../data/loader.bin: | ||
$(MAKE) -C ../loader clean | ||
$(MAKE) -C ../loader | ||
#--------------------------------------------------------------------------------- | ||
%.a: | ||
#--------------------------------------------------------------------------------- | ||
@echo $(notdir $@) | ||
@rm -f $@ | ||
@$(AR) -rc $@ $^ | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.o: %.cpp | ||
@echo $(notdir $<) | ||
@$(CXX) -MMD -MP -MF $(DEPSDIR)/$*.d $(CXXFLAGS) -c $< -o $@ $(ERROR_FILTER) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.o: %.c | ||
@echo $(notdir $<) | ||
@$(CC) -MMD -MP -MF $(DEPSDIR)/$*.d $(CFLAGS) -c $< -o $@ $(ERROR_FILTER) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.o: %.S | ||
@echo $(notdir $<) | ||
@$(CC) -MMD -MP -MF $(DEPSDIR)/$*.d -x assembler-with-cpp $(ASFLAGS) -c $< -o $@ $(ERROR_FILTER) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.png.o : %.png | ||
@echo $(notdir $<) | ||
@bin2s -a 32 $< | $(AS) -o $(@) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.jpg.o : %.jpg | ||
@echo $(notdir $<) | ||
@bin2s -a 32 $< | $(AS) -o $(@) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.ttf.o : %.ttf | ||
@echo $(notdir $<) | ||
@bin2s -a 32 $< | $(AS) -o $(@) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.bin.o : %.bin | ||
@echo $(notdir $<) | ||
@bin2s -a 32 $< | $(AS) -o $(@) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.wav.o : %.wav | ||
@echo $(notdir $<) | ||
@bin2s -a 32 $< | $(AS) -o $(@) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.mp3.o : %.mp3 | ||
@echo $(notdir $<) | ||
@bin2s -a 32 $< | $(AS) -o $(@) | ||
|
||
#--------------------------------------------------------------------------------- | ||
%.ogg.o : %.ogg | ||
@echo $(notdir $<) | ||
@bin2s -a 32 $< | $(AS) -o $(@) | ||
|
||
-include $(DEPENDS) | ||
|
||
#--------------------------------------------------------------------------------- | ||
endif | ||
#--------------------------------------------------------------------------------- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# TCPGecko | ||
TCPGecko Installer |
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||
<app version="1"> | ||
<name>TCPgecko</name> | ||
<coder>Wj44</coder> | ||
<version>1.1</version> | ||
<release_date>20160503120400</release_date> | ||
<short_description>WiiU RAM Hacking</short_description> | ||
<long_description>A memory editor that does magical things to your games. In order to apply Cafe Codes (real-time cheats) use JGecko U. | ||
Special Thanks to: | ||
Chadderz, Marionumber1 - TCPGecko codehandler | ||
pwsincd - icon and xml | ||
CosmoCortney - codehandler for cheat codes, xml | ||
</long_description> | ||
</app> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#ifndef COMMON_H | ||
#define COMMON_H | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
#include "os_defs.h" | ||
|
||
#define INSTALL_ADDR 0x010F4000 | ||
|
||
#define CAFE_OS_SD_PATH "/vol/external01" | ||
#define SD_PATH "sd:" | ||
#define WIIU_PATH "/wiiu" | ||
|
||
/* Macros for libs */ | ||
#define LIB_CORE_INIT 0 | ||
#define LIB_NSYSNET 1 | ||
#define LIB_GX2 2 | ||
// none dynamic libs | ||
#define LIB_LOADER 0x1001 | ||
|
||
|
||
#ifndef MEM_BASE | ||
#define MEM_BASE (0x00800000) | ||
#endif | ||
|
||
#define ELF_DATA_ADDR (*(volatile unsigned int*)(MEM_BASE + 0x1300 + 0x00)) | ||
#define ELF_DATA_SIZE (*(volatile unsigned int*)(MEM_BASE + 0x1300 + 0x04)) | ||
#define MAIN_ENTRY_ADDR (*(volatile unsigned int*)(MEM_BASE + 0x1400 + 0x00)) | ||
#define OS_FIRMWARE (*(volatile unsigned int*)(MEM_BASE + 0x1400 + 0x04)) | ||
|
||
#define OS_SPECIFICS ((OsSpecifics*)(MEM_BASE + 0x1500)) | ||
|
||
#ifndef EXIT_SUCCESS | ||
#define EXIT_SUCCESS 0 | ||
#endif | ||
#define EXIT_HBL_EXIT 0xFFFFFFFE | ||
#define EXIT_RELAUNCH_ON_LOAD 0xFFFFFFFD | ||
|
||
#define RESTORE_INSTR_MAGIC 0xC001C0DE | ||
#define RESTORE_INSTR_ADDR ((restore_instructions_t*)(MEM_BASE + 0x1600)) | ||
|
||
typedef struct _restore_instructions_t { | ||
unsigned int magic; | ||
unsigned int instr_count; | ||
struct { | ||
unsigned int addr; | ||
unsigned int instr; | ||
} data[0]; | ||
} restore_instructions_t; | ||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* COMMON_H */ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#ifndef FS_DEFS_H | ||
#define FS_DEFS_H | ||
|
||
#include "types.h" | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
|
||
/* FS defines and types */ | ||
#define FS_MAX_LOCALPATH_SIZE 511 | ||
#define FS_MAX_MOUNTPATH_SIZE 128 | ||
#define FS_MAX_FULLPATH_SIZE (FS_MAX_LOCALPATH_SIZE + FS_MAX_MOUNTPATH_SIZE) | ||
#define FS_MAX_ARGPATH_SIZE FS_MAX_FULLPATH_SIZE | ||
|
||
#define FS_STATUS_OK 0 | ||
#define FS_STATUS_EXISTS -5 | ||
#define FS_STATUS_STORAGE_FULL -12 | ||
#define FS_STATUS_JOURNAL_FULL -13 | ||
|
||
#define FS_RET_UNSUPPORTED_CMD 0x0400 | ||
#define FS_RET_NO_ERROR 0x0000 | ||
#define FS_RET_ALL_ERROR (unsigned int)(-1) | ||
|
||
|
||
#define FS_STAT_FLAG_IS_DIRECTORY 0x80000000 | ||
|
||
/* max length of file/dir name */ | ||
#define FS_MAX_ENTNAME_SIZE 256 | ||
|
||
#define FS_SOURCETYPE_EXTERNAL 0 | ||
#define FS_SOURCETYPE_HFIO 1 | ||
#define FS_SOURCETYPE_HFIO 1 | ||
|
||
#define FS_MOUNT_SOURCE_SIZE 0x300 | ||
#define FS_CLIENT_SIZE 0x1700 | ||
#define FS_CMD_BLOCK_SIZE 0xA80 | ||
|
||
typedef struct | ||
{ | ||
uint32_t flag; | ||
uint32_t permission; | ||
uint32_t owner_id; | ||
uint32_t group_id; | ||
uint32_t size; | ||
uint32_t alloc_size; | ||
uint64_t quota_size; | ||
uint32_t ent_id; | ||
uint64_t ctime; | ||
uint64_t mtime; | ||
uint8_t attributes[48]; | ||
} __attribute__((packed)) FSStat; | ||
|
||
typedef struct | ||
{ | ||
FSStat stat; | ||
char name[FS_MAX_ENTNAME_SIZE]; | ||
} FSDirEntry; | ||
|
||
|
||
#ifdef __cplusplus | ||
} | ||
#endif | ||
|
||
#endif /* FS_DEFS_H */ | ||
|
Oops, something went wrong.