From 4b94752d47d8829f8b1da41819ab244eed782a55 Mon Sep 17 00:00:00 2001 From: chaoskagami Date: Sun, 17 Jul 2016 22:01:19 -0400 Subject: [PATCH] Porting to am --- Makefile | 120 +++---------------------- Makefile.am | 16 ++++ common.mk | 67 ++++++++++++++ configure.ac | 15 ++++ host/copy.sh | 2 + include/common.h | 58 ++++++++++++ {source => include}/config.h | 0 {source => include}/firm/decryptor.h | 0 {source => include}/firm/fcram.h | 0 {source => include}/firm/firm.h | 0 {source => include}/firm/headers.h | 0 {source => include}/input.h | 0 {source => include}/interp.h | 0 {source => include}/interrupt.h | 0 {source => include}/patch/emunand.h | 0 {source => include}/patch/patch_file.h | 0 {source => include}/patch_format.h | 0 {source => include}/patcher.h | 0 {source => include}/screeninit.h | 0 {source => include}/std/abort.h | 0 {source => include}/std/draw.h | 0 {source => include}/std/fs.h | 0 {source => include}/std/memory.h | 0 {source => include}/std/types.h | 0 {source => include}/std/unused.h | 0 source/chain.c | 8 +- source/common.h | 19 ---- source/config.c | 2 +- source/display.c | 4 +- source/firm/decryptor.c | 17 ++-- source/firm/fcram.c | 2 +- source/firm/firm.c | 8 +- source/firm/version.c | 3 +- source/input.c | 4 +- source/interp.c | 6 +- source/interrupt.c | 9 +- source/main.c | 8 +- source/menu.c | 6 +- source/patch/emunand.c | 11 +-- source/patch/module.c | 2 +- source/patch/reboot.c | 10 +-- source/patch/svc.c | 2 +- source/patcher.c | 8 +- source/screeninit.c | 4 +- source/std/README.txt | 1 - source/std/abort.c | 2 +- source/std/draw.c | 10 +-- source/std/fs.c | 6 +- source/std/memory.c | 2 +- 49 files changed, 203 insertions(+), 229 deletions(-) create mode 100644 Makefile.am create mode 100644 common.mk create mode 100644 configure.ac create mode 100644 include/common.h rename {source => include}/config.h (100%) rename {source => include}/firm/decryptor.h (100%) rename {source => include}/firm/fcram.h (100%) rename {source => include}/firm/firm.h (100%) rename {source => include}/firm/headers.h (100%) rename {source => include}/input.h (100%) rename {source => include}/interp.h (100%) rename {source => include}/interrupt.h (100%) rename {source => include}/patch/emunand.h (100%) rename {source => include}/patch/patch_file.h (100%) rename {source => include}/patch_format.h (100%) rename {source => include}/patcher.h (100%) rename {source => include}/screeninit.h (100%) rename {source => include}/std/abort.h (100%) rename {source => include}/std/draw.h (100%) rename {source => include}/std/fs.h (100%) rename {source => include}/std/memory.h (100%) rename {source => include}/std/types.h (100%) rename {source => include}/std/unused.h (100%) delete mode 100644 source/common.h delete mode 100644 source/std/README.txt diff --git a/Makefile b/Makefile index 5e31d6d..3f5cd62 100644 --- a/Makefile +++ b/Makefile @@ -1,57 +1,9 @@ rwildcard = $(foreach d, $(wildcard $1*), $(filter $(subst *, %, $2), $d) $(call rwildcard, $d/, $2)) -# Only cygwin is maybe working on windows. -PATH := $(PATH):$(DEVKITARM)/bin - -CROSS_CC := arm-none-eabi-gcc -CROSS_AS := arm-none-eabi-as -CROSS_LD := arm-none-eabi-ld -CROSS_OC := arm-none-eabi-objcopy - -CC ?= gcc -AS ?= as -LD ?= ld -OC ?= objcopy - -fw_name ?= Corbenik - -# If unset, the primary folder is /corbenik. -fw_folder ?= corbenik - -# Other valid options: -# shadowhand -# cruel -root ?= clusterfuck - -ifeq "$(root)" "clusterfuck" - PATHARGS := -DPATH_ROOT=\"\" - PATHARGS += -DPATH_DATA=\"/$(fw_folder)\" -else ifeq "$(root)" "cruel" - PATHARGS := -DPATH_ROOT=\"/3ds/apps\" - PATHARGS += -DPATH_DATA=\"/3ds/appdata/$(fw_folder)\" -else ifeq "$(root)" "shadowhand" - PATHARGS := -DPATH_ROOT=\"/homebrew/3ds\" - PATHARGS += -DPATH_DATA=\"/homebrew/3ds/$(fw_folder)\" -endif - -dir_source := source -dir_data := data -dir_build := build -dir_out := out - -REVISION := $(shell git rev-parse HEAD | head -c10)+$(shell git rev-list --count HEAD) -REL ?= master - -# Default to enabling chainloader. -CHAINLOADER ?= 1 - -CROSS_ASFLAGS := -mlittle-endian -mcpu=arm946e-s -march=armv5te -CROSS_CFLAGS := -MMD -MP -Wall -Wextra -Werror -fomit-frame-pointer -I$(shell pwd)/external/libctr9/out/include -Os $(ASFLAGS) -fshort-wchar -fno-builtin -std=gnu11 -DVERSION=\"$(REVISION)\" -DREL=\"$(REL)\" -DCHAINLOADER=$(CHAINLOADER) -DPATH_CFW=\"/$(fw_folder)\" -DFW_NAME=\"$(fw_name)\" $(PATHARGS) -CROSS_FLAGS := dir_out=$(abspath $(dir_out)) --no-print-directory -CROSS_LDFLAGS := -nostdlib -Wl,-z,defs -lgcc -Wl,-Map,$(dir_build)/link.map -L$(shell pwd)/external/libctr9/out/lib -lctr9 - -objects_cfw = $(patsubst $(dir_source)/%.s, $(dir_build)/%.o, \ - $(patsubst $(dir_source)/%.c, $(dir_build)/%.o, \ +include common.mk + +objects_cfw = $(patsubst %.s, %.o, \ + $(patsubst %.c, %.o, \ $(call rwildcard, $(dir_source), *.s *.c))) .PHONY: all @@ -102,7 +54,7 @@ patch: make -C patch dir_out=$(dir_out) fw_name=$(fw_name) fw_folder=$(fw_folder) root=$(root) .PHONY: a9lh -a9lh: $(dir_out)/arm9loaderhax.bin +a9lh: $(dir_out)/main.bin mkdir -p $(dir_out)/$(fw_folder)/bits .PHONY: reformat @@ -115,67 +67,23 @@ $(dir_out)/$(fw_folder)/locale: all .PHONY: clean clean: - rm -f host/{font-emit,font.h,font_prop.h,termfont.bin} + rm -f $(objects_cfw) cd external/libctr9 && git clean -fxd make -C external dir_out=$(dir_out) fw_folder=$(fw_folder) root=$(root) clean make -C patch dir_out=$(dir_out) fw_folder=$(fw_folder) root=$(root) clean make -C host/bdfe dir_out=$(dir_out) fw_folder=$(fw_folder) root=$(root) clean rm -rf $(dir_out) $(dir_build) -.PHONY: $(dir_out)/arm9loaderhax.bin -$(dir_out)/arm9loaderhax.bin: $(dir_build)/main.bin - @mkdir -p "$(dir_out)" - @cp -av $< $@ - -$(dir_build)/main.bin: $(dir_build)/main.elf - $(CROSS_OC) $(CROSS_OCFLAGS) -S -O binary $< $@ - -$(dir_build)/main.elf: $(objects_cfw) - $(CROSS_CC) -T linker.ld $(OUTPUT_OPTION) $^ $(CROSS_LDFLAGS) - -$(dir_build)/%.o: $(dir_source)/%.c - @mkdir -p "$(@D)" - $(CROSS_CC) $(CROSS_CFLAGS) -c $(OUTPUT_OPTION) $< - -$(dir_build)/%.o: $(dir_source)/%.s - @mkdir -p "$(@D)" - $(CROSS_AS) $(CROSS_ASFLAGS) -c $(OUTPUT_OPTION) $< - -$(dir_build)/fatfs/%.o: $(dir_source)/fatfs/%.c - @mkdir -p "$(@D)" - $(CROSS_CC) $(CROSS_CFLAGS) -c -Wno-unused-function $(OUTPUT_OPTION) $< - -$(dir_build)/fatfs/%.o: $(dir_source)/fatfs/%.s - @mkdir -p "$(@D)" - $(CROSS_AS) $(CROSS_ASFLAGS) -c $(OUTPUT_OPTION) $< - -$(dir_build)/std/%.o: $(dir_source)/std/%.c - @mkdir -p "$(@D)" - $(CROSS_CC) $(CROSS_CFLAGS) -c -Wno-unused-function $(OUTPUT_OPTION) $< - -$(dir_build)/std/%.o: $(dir_source)/std/%.s - @mkdir -p "$(@D)" - $(CROSS_AS) $(CROSS_ASFLAGS) -c $(OUTPUT_OPTION) $< - -$(dir_build)/firm/%.o: $(dir_source)/firm/%.c - @mkdir -p "$(@D)" - $(CROSS_CC) $(CROSS_CFLAGS) -c -Wno-unused-function $(OUTPUT_OPTION) $< - -$(dir_build)/firm/%.o: $(dir_source)/firm/%.s - @mkdir -p "$(@D)" - $(CROSS_AS) $(CROSS_ASFLAGS) -c $(OUTPUT_OPTION) $< - -$(dir_build)/patch/%.o: $(dir_source)/patch/%.c - @mkdir -p "$(@D)" - $(CROSS_CC) $(CROSS_CFLAGS) -c -Wno-unused-function $(OUTPUT_OPTION) $< +out/main.bin: out/main.elf + $(OC) $(OCFLAGS) -S -O binary $< $@ -$(dir_build)/patch/%.o: $(dir_source)/patch/%.s - @mkdir -p "$(@D)" - $(CROSS_AS) $(CROSS_ASFLAGS) -c $(OUTPUT_OPTION) $< +out/main.elf: $(objects_cfw) + $(CC) $(LDFLAGS) -T linker.ld -o $@ $< -$(dir_build)/misc/%.o: $(dir_source)/misc/%.c - @mkdir -p "$(@D)" - $(CROSS_CC) $(CROSS_CFLAGS) -c -Wno-unused-function $(OUTPUT_OPTION) $< +%.o: %.c + $(CC) $(CFLAGS) -c -o $@ $< +%.o: %.s + $(AS) $(ASFLAGS) -c -o $@ $< include $(call rwildcard, $(dir_build), *.d) diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..4491836 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,16 @@ +include common.mk + +corbenik_SOURCES = aes.c ctr_nand_crypto_interface.c ctr_sd_interface.c sha.c \ + ctr_io_interface.c ctr_nand_interface.c sdmmc/delay.s sdmmc/sdmmc.c i2c.c \ + ctr_rtc.c fatfs/diskio.c fatfs/ff.c fatfs/option/unicode.c ctr_system.c \ + ctr_fatfs_interface.c fatfs/ctr_fatfs_disk.c ctr_disks.c \ + fatfs/ctr_fatfs_disk.c ctr_fatfs.c ctr_interrupt.c ctr_system_ARM.c \ + ctr_interrupt_asm.s ctr_screen.c ctr_hid.c ctr_pxi.c gamecart/command_ctr.c\ + gamecart/command_ntr.c gamecart/protocol.c gamecart/protocol_ctr.c \ + gamecart/protocol_ntr.c ctr_cart_interface.c gamecart/delay.s ctr_headers.c \ + ctr_timer.c ctr_irq.c ctr_system_clock.c + + +includedirectory = include + +corbenik_HEADERS = $(includedirectory)/ diff --git a/common.mk b/common.mk new file mode 100644 index 0000000..36cc9bc --- /dev/null +++ b/common.mk @@ -0,0 +1,67 @@ +INCPATHS=-I$(top_srcdir)/include +C9FLAGS=-mcpu=arm946e-s -march=armv5te -mlittle-endian -mword-relocations + +SIZE_OPTIMIZATION = -Wl,--gc-sections -ffunction-sections + +CFLAGS= -std=gnu11 -O2 -g -fomit-frame-pointer -ffast-math \ + -Wpedantic -Wall -Wextra -Wcast-align -Wcast-qual \ + -Wdisabled-optimization -Wformat=2 -Winit-self -Wlogical-op \ + -Wmissing-declarations -Wmissing-include-dirs -Wredundant-decls \ + -Wshadow -Wsign-conversion -Wstrict-overflow=5 -Wswitch-default \ + -Wundef -Wno-unused $(THUMBFLAGS) $(SIZE_OPTIMIZATION) $(INCPATHS) $(C9FLAGS) \ + -I$(shell pwd)/external/libctr9/out/include -I$(shell pwd)/include -Os $(ASFLAGS) \ + -fshort-wchar -fno-builtin -std=gnu11 -DVERSION=\"$(REVISION)\" -DREL=\"$(REL)\" \ + -DCHAINLOADER=$(CHAINLOADER) -DPATH_CFW=\"/$(fw_folder)\" -DFW_NAME=\"$(fw_name)\" \ + $(PATHARGS) + + +LDFLAGS=-Wl,--use-blx,--pic-veneer,-q -nostdlib -Wl,-z,defs -lgcc \ + -Wl,-Map,$(dir_out)/link.map -L$(shell pwd)/external/libctr9/out/lib -lctr9 + +OCFLAGS=--set-section-flags .bss=alloc,load,contents + +# Only cygwin is maybe working on windows. +PATH := $(PATH):$(DEVKITARM)/bin + +CC := arm-none-eabi-gcc +AS := arm-none-eabi-as +LD := arm-none-eabi-ld +OC := arm-none-eabi-objcopy + +BUILD_CC ?= gcc +BUILD_AS ?= as +BUILD_LD ?= ld +BUILD_OC ?= objcopy + +fw_name ?= Corbenik + +# If unset, the primary folder is /corbenik. +fw_folder ?= corbenik + +# Other valid options: +# shadowhand +# cruel +root ?= clusterfuck + +ifeq "$(root)" "clusterfuck" + PATHARGS := -DPATH_ROOT=\"\" + PATHARGS += -DPATH_DATA=\"/$(fw_folder)\" +else ifeq "$(root)" "cruel" + PATHARGS := -DPATH_ROOT=\"/3ds/apps\" + PATHARGS += -DPATH_DATA=\"/3ds/appdata/$(fw_folder)\" +else ifeq "$(root)" "shadowhand" + PATHARGS := -DPATH_ROOT=\"/homebrew/3ds\" + PATHARGS += -DPATH_DATA=\"/homebrew/3ds/$(fw_folder)\" +endif + +dir_source := source +dir_data := data +dir_build := build +dir_out := out + +REVISION := $(shell git rev-parse HEAD | head -c10)+$(shell git rev-list --count HEAD) +REL ?= master + +# Default to enabling chainloader. +CHAINLOADER ?= 1 + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..e64afe5 --- /dev/null +++ b/configure.ac @@ -0,0 +1,15 @@ +AC_INIT([libctr9], [0.0.1], [], []) +AM_INIT_AUTOMAKE([foreign no-dist-gzip dist-xz subdir-objects]) + +#Find AR and RANLIB for lto support before initializing libtool +AC_CHECK_TOOL([AR],gcc-ar) +AC_CHECK_TOOL([RANLIB],gcc-ranlib) +LT_INIT + +AC_PROG_CC +AM_PROG_AS +AC_CHECK_TOOL([OBJCOPY],objcopy) + +AC_CONFIG_FILES([Makefile src/Makefile test/Makefile examples/Makefile]) + +AC_OUTPUT diff --git a/host/copy.sh b/host/copy.sh index cd53e5e..38d6fa9 100755 --- a/host/copy.sh +++ b/host/copy.sh @@ -13,6 +13,8 @@ rm -rf $mnt/corbenik cp -r out/* $mnt/ || exit 0 cp -r input/* $mnt/ || exit 0 cp out/arm9loaderhax.bin $mnt/corbenik/chain/Corbenik || exit 0 +cp out/arm9loaderhax.bin $mnt/arm9loaderhax_si.bin || exit 0 +rm -f $mnt/arm9loaderhax.bin || exit 0 umount $mnt || exit 0 sync || exit 0 eject ${dev} || exit 0 diff --git a/include/common.h b/include/common.h new file mode 100644 index 0000000..df7e569 --- /dev/null +++ b/include/common.h @@ -0,0 +1,58 @@ +#ifndef __COMMON_H +#define __COMMON_H + +#include "std/types.h" +#include "std/draw.h" +#include "std/fs.h" +#include "std/memory.h" +#include "std/abort.h" +#include "std/unused.h" + +#include "firm/fcram.h" +#include "firm/headers.h" + +#include "patch_format.h" +#include "config.h" +#include "input.h" +#include "patcher.h" + +#endif + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include + +#include +#include diff --git a/source/config.h b/include/config.h similarity index 100% rename from source/config.h rename to include/config.h diff --git a/source/firm/decryptor.h b/include/firm/decryptor.h similarity index 100% rename from source/firm/decryptor.h rename to include/firm/decryptor.h diff --git a/source/firm/fcram.h b/include/firm/fcram.h similarity index 100% rename from source/firm/fcram.h rename to include/firm/fcram.h diff --git a/source/firm/firm.h b/include/firm/firm.h similarity index 100% rename from source/firm/firm.h rename to include/firm/firm.h diff --git a/source/firm/headers.h b/include/firm/headers.h similarity index 100% rename from source/firm/headers.h rename to include/firm/headers.h diff --git a/source/input.h b/include/input.h similarity index 100% rename from source/input.h rename to include/input.h diff --git a/source/interp.h b/include/interp.h similarity index 100% rename from source/interp.h rename to include/interp.h diff --git a/source/interrupt.h b/include/interrupt.h similarity index 100% rename from source/interrupt.h rename to include/interrupt.h diff --git a/source/patch/emunand.h b/include/patch/emunand.h similarity index 100% rename from source/patch/emunand.h rename to include/patch/emunand.h diff --git a/source/patch/patch_file.h b/include/patch/patch_file.h similarity index 100% rename from source/patch/patch_file.h rename to include/patch/patch_file.h diff --git a/source/patch_format.h b/include/patch_format.h similarity index 100% rename from source/patch_format.h rename to include/patch_format.h diff --git a/source/patcher.h b/include/patcher.h similarity index 100% rename from source/patcher.h rename to include/patcher.h diff --git a/source/screeninit.h b/include/screeninit.h similarity index 100% rename from source/screeninit.h rename to include/screeninit.h diff --git a/source/std/abort.h b/include/std/abort.h similarity index 100% rename from source/std/abort.h rename to include/std/abort.h diff --git a/source/std/draw.h b/include/std/draw.h similarity index 100% rename from source/std/draw.h rename to include/std/draw.h diff --git a/source/std/fs.h b/include/std/fs.h similarity index 100% rename from source/std/fs.h rename to include/std/fs.h diff --git a/source/std/memory.h b/include/std/memory.h similarity index 100% rename from source/std/memory.h rename to include/std/memory.h diff --git a/source/std/types.h b/include/std/types.h similarity index 100% rename from source/std/types.h rename to include/std/types.h diff --git a/source/std/unused.h b/include/std/unused.h similarity index 100% rename from source/std/unused.h rename to include/std/unused.h diff --git a/source/chain.c b/source/chain.c index 6f95a24..10d5266 100644 --- a/source/chain.c +++ b/source/chain.c @@ -1,9 +1,9 @@ #if defined(CHAINLOADER) && CHAINLOADER == 1 -#include "common.h" -#include "screeninit.h" -#include "firm/firm.h" -#include "firm/headers.h" +#include +#include +#include +#include uint32_t current_chain_index = 0; diff --git a/source/common.h b/source/common.h deleted file mode 100644 index 4113dda..0000000 --- a/source/common.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __COMMON_H -#define __COMMON_H - -#include "std/types.h" -#include "std/draw.h" -#include "std/fs.h" -#include "std/memory.h" -#include "std/abort.h" -#include "std/unused.h" - -#include "firm/fcram.h" -#include "firm/headers.h" - -#include "patch_format.h" -#include "config.h" -#include "input.h" -#include "patcher.h" - -#endif diff --git a/source/config.c b/source/config.c index b0bf8f1..f066093 100644 --- a/source/config.c +++ b/source/config.c @@ -1,4 +1,4 @@ -#include "common.h" +#include FILE *conf_handle; diff --git a/source/display.c b/source/display.c index 34cae21..a58dd00 100644 --- a/source/display.c +++ b/source/display.c @@ -1,6 +1,4 @@ -#include "common.h" -#include "firm/firm.h" -#include "firm/headers.h" +#include void header(char *append); diff --git a/source/firm/decryptor.c b/source/firm/decryptor.c index db47a6f..099ecb5 100644 --- a/source/firm/decryptor.c +++ b/source/firm/decryptor.c @@ -2,13 +2,10 @@ This is all fairly minimal and based on @d0k3's decrypt9 code. */ -#include "../std/memory.h" +#include #include #include -#include "firm.h" -#include "decryptor.h" - void ncch_getctr(const ncch_h *ncch, uint8_t *ctr, uint8_t type) { @@ -53,19 +50,15 @@ aes_batch(void *dst, const void *src, uint32_t blockCount) while (rbc) { if (wbc && ((*REG_AESCNT & 0x1F) <= 0xC)) // There's space for at least 4 ints { - *REG_AESWRFIFO = *src32++; - *REG_AESWRFIFO = *src32++; - *REG_AESWRFIFO = *src32++; - *REG_AESWRFIFO = *src32++; + for(int i=0; i < 4; i++) + *REG_AESWRFIFO = *src32++; wbc--; } if (rbc && ((*REG_AESCNT & (0x1F << 0x5)) >= (0x4 << 0x5))) // At least 4 ints available for read { - *dst32++ = *REG_AESRDFIFO; - *dst32++ = *REG_AESRDFIFO; - *dst32++ = *REG_AESRDFIFO; - *dst32++ = *REG_AESRDFIFO; + for(int i=0; i < 4; i++) + *dst32++ = *REG_AESRDFIFO; rbc--; } } diff --git a/source/firm/fcram.c b/source/firm/fcram.c index 7b81b32..8b5d428 100644 --- a/source/firm/fcram.c +++ b/source/firm/fcram.c @@ -1,4 +1,4 @@ -#include "fcram.h" +#include void *fcram_temp = (void *)0x23000000; diff --git a/source/firm/firm.c b/source/firm/firm.c index d1db7cf..0a54d64 100644 --- a/source/firm/firm.c +++ b/source/firm/firm.c @@ -1,16 +1,10 @@ -#include "firm.h" - #include #include #include #include #include - -#include "../common.h" -#include - -#include "decryptor.h" +#include firm_h *firm_loc = (firm_h *)FCRAM_FIRM_LOC; uint32_t firm_size = FCRAM_SPACING; diff --git a/source/firm/version.c b/source/firm/version.c index 4fd3182..a666339 100644 --- a/source/firm/version.c +++ b/source/firm/version.c @@ -1,5 +1,4 @@ -#include "firm.h" -#include "../common.h" +#include // We use the firm's section 0's hash to identify the version struct firm_signature firm_signatures[] = { diff --git a/source/input.c b/source/input.c index deb998b..12978aa 100644 --- a/source/input.c +++ b/source/input.c @@ -1,7 +1,5 @@ #include -#include "std/unused.h" -#include "std/draw.h" -#include "input.h" +#include extern void waitcycles(uint32_t cycles); diff --git a/source/interp.c b/source/interp.c index 35423e4..dbcfdba 100644 --- a/source/interp.c +++ b/source/interp.c @@ -3,11 +3,7 @@ #include "std/unused.h" #ifndef LOADER - #include "std/memory.h" - #include "firm/firm.h" - #include "config.h" - #include "common.h" - #include "firm/fcram.h" + #include #else #include #endif diff --git a/source/interrupt.c b/source/interrupt.c index 49f0847..23753a7 100644 --- a/source/interrupt.c +++ b/source/interrupt.c @@ -1,5 +1,6 @@ -#include "common.h" +#include #include +#include void dump_state_printf(uint32_t* regs) { fprintf(stderr, " cpsr:%x sp:%x lr:%x\n" @@ -40,10 +41,6 @@ void databrt_INT(uint32_t* regs) { abort("Cannot continue. Halting.\n"); } -void irq_INT(_UNUSED uint32_t* regs) { - fprintf(stderr, "IRQ called. Returning.\n"); -} - void fiq_INT(_UNUSED uint32_t* regs) { fprintf(stderr, "FIQ called. Returning.\n"); } @@ -51,12 +48,12 @@ void fiq_INT(_UNUSED uint32_t* regs) { void install_interrupts() { ctr_interrupt_prepare(); + ctr_irq_initialize(); ctr_interrupt_set(CTR_INTERRUPT_RESET, reset_INT); ctr_interrupt_set(CTR_INTERRUPT_UNDEF, undef_INT); ctr_interrupt_set(CTR_INTERRUPT_SWI, swi_INT); ctr_interrupt_set(CTR_INTERRUPT_PREABRT, preabrt_INT); ctr_interrupt_set(CTR_INTERRUPT_DATABRT, databrt_INT); - ctr_interrupt_set(CTR_INTERRUPT_IRQ, irq_INT); ctr_interrupt_set(CTR_INTERRUPT_FIQ, fiq_INT); } diff --git a/source/main.c b/source/main.c index 172d1fc..852a30f 100644 --- a/source/main.c +++ b/source/main.c @@ -1,12 +1,6 @@ #include -#include "common.h" -#include "firm/firm.h" -#include "input.h" -#include "config.h" -#include "screeninit.h" -#include "std/abort.h" -#include "interrupt.h" +#include int is_n3ds = 0; int doing_autoboot = 0; diff --git a/source/menu.c b/source/menu.c index 61adc31..d0111c0 100644 --- a/source/menu.c +++ b/source/menu.c @@ -1,8 +1,4 @@ -#include "common.h" -#include "firm/firm.h" -#include "firm/headers.h" -#include "std/unused.h" - +#include #include #define MAX_PATCHES ((FCRAM_SPACING / 2) / sizeof(struct options_s)) diff --git a/source/patch/emunand.c b/source/patch/emunand.c index fa4b236..7c00132 100644 --- a/source/patch/emunand.c +++ b/source/patch/emunand.c @@ -2,17 +2,8 @@ * emunand.c */ -#include "emunand.h" -#include "../std/memory.h" -#include "../std/draw.h" -#include "../std/fs.h" -#include "../std/abort.h" -#include "../firm/firm.h" -#include "../firm/fcram.h" #include -#include "../firm/headers.h" -#include "../patch_format.h" -#include "../config.h" +#include uint8_t *emunand_temp = (uint8_t *)FCRAM_JUNK_LOC; diff --git a/source/patch/module.c b/source/patch/module.c index 08f3e96..2643944 100644 --- a/source/patch/module.c +++ b/source/patch/module.c @@ -1,4 +1,4 @@ -#include "patch_file.h" +#include /* Not possible to be implemented as bytecode. Hey, can't win em all. */ diff --git a/source/patch/reboot.c b/source/patch/reboot.c index df4fa71..e787c6d 100644 --- a/source/patch/reboot.c +++ b/source/patch/reboot.c @@ -1,13 +1,5 @@ -#include "emunand.h" -#include "../std/memory.h" -#include "../std/draw.h" -#include "../std/fs.h" -#include "../std/abort.h" -#include "../firm/firm.h" -#include "../firm/fcram.h" +#include #include -#include "../firm/headers.h" -#include "../patch_format.h" int wait(); diff --git a/source/patch/svc.c b/source/patch/svc.c index dfb6e1f..97cca80 100644 --- a/source/patch/svc.c +++ b/source/patch/svc.c @@ -1,4 +1,4 @@ -#include "patch_file.h" +#include uint8_t *arm11Section1 = NULL; uint32_t *svc_tab_open = NULL, *exceptionsPage = NULL, *svcTable = NULL; diff --git a/source/patcher.c b/source/patcher.c index 3a3c277..2d6f9c5 100644 --- a/source/patcher.c +++ b/source/patcher.c @@ -1,11 +1,5 @@ +#include #include -#include "std/unused.h" -#include "std/memory.h" -#include "firm/firm.h" -#include "config.h" -#include "common.h" -#include "interp.h" -#include "patch/emunand.h" // TODO - Basically all this needs to move to patcher programs. diff --git a/source/screeninit.c b/source/screeninit.c index 1108ff1..22e14ac 100644 --- a/source/screeninit.c +++ b/source/screeninit.c @@ -1,9 +1,7 @@ +#include #include #include #include -#include "common.h" -#include "std/fs.h" -#include "patch_format.h" #define PDN_GPU_CNT (*(volatile uint8_t *)0x10141200) diff --git a/source/std/README.txt b/source/std/README.txt deleted file mode 100644 index 3dc3d2e..0000000 --- a/source/std/README.txt +++ /dev/null @@ -1 +0,0 @@ -This is (sort of) an implementation of C99 std. It is pathetically uncompliant but may be of interest to people wishing to have a usable 16-color printf function. diff --git a/source/std/abort.c b/source/std/abort.c index 414e37a..d217950 100644 --- a/source/std/abort.c +++ b/source/std/abort.c @@ -2,7 +2,7 @@ #define __ABORT_H #include -#include "draw.h" +#include void poweroff(); uint32_t wait_key(int sleep); diff --git a/source/std/draw.c b/source/std/draw.c index b5f8864..8b60297 100644 --- a/source/std/draw.c +++ b/source/std/draw.c @@ -1,16 +1,8 @@ -#include "draw.h" - #include #include #include -#include "memory.h" +#include #include -#include "../firm/fcram.h" -#include "fs.h" -#include "unused.h" -#include "../config.h" -#include "../patch_format.h" -#include "abort.h" static unsigned int top_cursor_x = 0, top_cursor_y = 0; static unsigned int bottom_cursor_x = 0, bottom_cursor_y = 0; diff --git a/source/std/fs.c b/source/std/fs.c index b2a13f1..e6c0260 100644 --- a/source/std/fs.c +++ b/source/std/fs.c @@ -1,10 +1,6 @@ #include -#include "fs.h" -#include "memory.h" #include -#include "draw.h" -#include "memory.h" -#include "../config.h" +#include // ctr_nand_crypto_interface ctr_io; // ctr_nand_crypto_interface twl_io; diff --git a/source/std/memory.c b/source/std/memory.c index bb33b68..d015dae 100644 --- a/source/std/memory.c +++ b/source/std/memory.c @@ -1,4 +1,4 @@ -#include "memory.h" +#include #include #include -- 2.39.5