Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

3ds: 3ds port sources. First set of two

This commit adds changes to the original rockbox sources.

Note: the port files, functions, folders, etc., will be referred
to as 'ctru' to avoid using the Nintendo name elsewhere.

Change-Id: I0e2d3d4d2a75bd45ea67dc3452eb8d5487cf1f5a

authored by

Mauricio Garrido and committed by
Solomon Peachy
a4de1195 511a3876

+227 -23
+2
apps/SOURCES
··· 305 305 keymaps/keymap-surfansf28.c 306 306 #elif CONFIG_KEYPAD == RG_NANO_PAD 307 307 keymaps/keymap-rgnano.c 308 + #elif CONFIG_KEYPAD == CTRU_PAD 309 + keymaps/keymap-ctru.c 308 310 #endif
+4
apps/tree.c
··· 565 565 566 566 /* Returns the current working directory and also writes cwd to buf if 567 567 non-NULL. In case of error, returns NULL. */ 568 + #ifdef CTRU 569 + char *__wrap_getcwd(char *buf, getcwd_size_t size) 570 + #else 568 571 char *getcwd(char *buf, getcwd_size_t size) 572 + #endif 569 573 { 570 574 if (!buf) 571 575 return tc.currdir;
+5
apps/tree.h
··· 128 128 #else 129 129 #define getcwd_size_t size_t 130 130 #endif 131 + #ifdef CTRU 132 + /* devkitarm already defines getcwd */ 133 + char *__wrap_getcwd(char *buf, getcwd_size_t size); 134 + #else 131 135 char *getcwd(char *buf, getcwd_size_t size); 136 + #endif 132 137 void reload_directory(void); 133 138 bool check_rockboxdir(void); 134 139 struct tree_context* tree_get_context(void);
+30 -4
firmware/SOURCES
··· 25 25 26 26 #if (CONFIG_PLATFORM & PLATFORM_ANDROID) == 0 && \ 27 27 !defined(DX50) && !defined(DX90) && \ 28 - (defined(DEBUG) || defined(SIMULATOR)) /* sim should define DEBUG instead */ 28 + (defined(DEBUG) || defined(SIMULATOR) || defined(CTRU)) /* sim should define DEBUG instead */ 29 29 target/hosted/debug-hosted.c 30 30 #endif 31 31 ··· 94 94 #ifdef WIN32 95 95 target/hosted/filesystem-win32.c 96 96 #else /* !WIN32 */ 97 + #ifndef CTRU 97 98 target/hosted/filesystem-unix.c 99 + #endif /* CTRU */ 98 100 #endif /* WIN32 */ 99 101 #endif /* APPLICATION */ 100 102 #endif /* HAVE_SDL */ 101 103 102 - #ifdef APPLICATION 104 + #if defined(APPLICATION) && !defined(CTRU) 103 105 target/hosted/filesystem-app.c 104 106 #endif /* APPLICATION */ 105 107 ··· 581 583 target/hosted/sdl/pcm-sdl.c 582 584 #endif /* (CONFIG_PLATFORM & PLATFORM_MAEMO) */ 583 585 586 + #elif defined(CTRU) 587 + drivers/audio/ctru.c 584 588 #endif 585 589 #endif /* (CONFIG_PLATFORM & PLATFORM_NATIVE) */ 586 590 ··· 2071 2075 #endif 2072 2076 #endif 2073 2077 2078 + #if (CONFIG_PLATFORM & PLATFORM_CTRU) 2079 + asm/arm/lcd-as-memframe.S 2080 + target/hosted/ctru/backlight-ctru.c 2081 + target/hosted/ctru/button-ctru.c 2082 + target/hosted/ctru/kernel-ctru.c 2083 + target/hosted/ctru/thread-ctru.c 2084 + target/hosted/ctru/lcd-bitmap.c 2085 + target/hosted/ctru/luminance-ctru.c 2086 + target/hosted/ctru/system-ctru.c 2087 + target/hosted/ctru/filesystem-ctru.c 2088 + target/hosted/ctru/lc-ctru.c 2089 + target/hosted/ctru/lc-program-resolver.c 2090 + target/hosted/ctru/powermgmt-ctru.c 2091 + target/hosted/ctru/timer-ctru.c 2092 + target/hosted/ctru/pcm-ctru.c 2093 + target/hosted/ctru/lib/sys_file.c 2094 + target/hosted/ctru/lib/sys_dir.c 2095 + target/hosted/ctru/lib/sys_thread.c 2096 + target/hosted/ctru/lib/sys_timer.c 2097 + target/hosted/ctru/lib/bfile/bfile.c 2098 + #endif 2099 + 2074 2100 #else /* defined(SIMULATOR) */ 2075 2101 2076 2102 #ifdef WIN32 ··· 2119 2145 #ifdef HAVE_SEMAPHORE_OBJECTS 2120 2146 kernel/semaphore.c 2121 2147 #endif 2122 - #if defined(HAVE_SDL_THREADS) 2148 + #ifdef HAVE_SDL_THREADS 2123 2149 target/hosted/sdl/thread-sdl.c 2124 - #else 2150 + #elif !defined(CTRU) 2125 2151 kernel/thread.c 2126 2152 #endif 2127 2153 kernel/thread-common.c
+1 -1
firmware/export/audiohw.h
··· 224 224 #elif defined(HAVE_ES9218) 225 225 #include "es9218.h" 226 226 #elif ((CONFIG_PLATFORM & (PLATFORM_ANDROID | PLATFORM_MAEMO \ 227 - | PLATFORM_PANDORA | PLATFORM_SDL )) | defined(RG_NANO)) 227 + | PLATFORM_PANDORA | PLATFORM_SDL | PLATFORM_CTRU)) | defined(RG_NANO)) 228 228 #include "hosted_codec.h" 229 229 #elif defined(DX50) 230 230 #include "codec-dx50.h"
+9 -3
firmware/export/config.h
··· 85 85 #define RK27XX 2700 86 86 #define X1000 1000 87 87 #define STM32H743 32743 88 + #define N10480H 10480 88 89 89 90 /* platforms 90 91 * bit fields to allow PLATFORM_HOSTED to be OR'ed e.g. with a ··· 98 99 #define PLATFORM_MAEMO5 (1<<5) 99 100 #define PLATFORM_MAEMO (PLATFORM_MAEMO4|PLATFORM_MAEMO5) 100 101 #define PLATFORM_PANDORA (1<<6) 102 + #define PLATFORM_CTRU (1<<7) 101 103 102 104 /* CONFIG_KEYPAD */ 103 105 #define IRIVER_H100_PAD 4 ··· 167 169 #define ECHO_R1_PAD 75 168 170 #define SURFANS_F28_PAD 76 169 171 #define RG_NANO_PAD 77 172 + #define CTRU_PAD 78 170 173 171 174 /* CONFIG_REMOTE_KEYPAD */ 172 175 #define H100_REMOTE 1 ··· 623 626 #include "config/surfansf28.h" 624 627 #elif defined(RG_NANO) 625 628 #include "config/rgnano.h" 629 + #elif defined(CTRU) 630 + #include "config/ctru.h" 626 631 #else 627 632 #error "unknown hardware platform!" 628 633 #endif ··· 650 655 # define CONFIG_BUFLIB_BACKEND BUFLIB_BACKEND_MEMPOOL 651 656 #endif 652 657 653 - #ifdef APPLICATION 658 + #if defined(APPLICATION) 654 659 #ifndef CONFIG_CPU 655 660 #define CONFIG_CPU 0 656 661 #endif ··· 1033 1038 1034 1039 #if defined(ASSEMBLER_THREADS) \ 1035 1040 || defined(HAVE_WIN32_FIBER_THREADS) \ 1036 - || defined(HAVE_SIGALTSTACK_THREADS) 1041 + || defined(HAVE_SIGALTSTACK_THREADS) \ 1042 + || defined(CTRU) 1037 1043 #define HAVE_PRIORITY_SCHEDULING 1038 1044 #endif 1039 1045 ··· 1104 1110 * Older versions of GCC emit assembly in divided syntax with no option 1105 1111 * to enable unified syntax. 1106 1112 */ 1107 - #if (__GNUC__ < 8) && defined(CPU_ARM_CLASSIC) 1113 + #if (__GNUC__ < 8) && defined(CPU_ARM_CLASSIC) || defined(CTRU) 1108 1114 #define BEGIN_ARM_ASM_SYNTAX_UNIFIED ".syntax unified\n" 1109 1115 #define END_ARM_ASM_SYNTAX_UNIFIED ".syntax divided\n" 1110 1116 #else
+4
firmware/export/debug.h
··· 35 35 || (defined(APPLICATION) && defined(DEBUG)) 36 36 #define DEBUGF debugf 37 37 #define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__) 38 + #elif (CONFIG_PLATFORM & PLATFORM_CTRU) 39 + /* let's use second display for debug output */ 40 + #define DEBUGF debugf 41 + #define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__) 38 42 #elif defined(DEBUG) /* DEBUG on native targets */ 39 43 40 44 #ifdef HAVE_GDB_API
+3 -2
firmware/export/hosted_codec.h
··· 21 21 #ifndef HOSTED_CODEC_H 22 22 #define HOSTED_CODEC_H 23 23 24 - #if defined(HAVE_SDL_AUDIO) \ 25 - && !(CONFIG_PLATFORM & PLATFORM_MAEMO5) 24 + #if (defined(HAVE_SDL_AUDIO) \ 25 + && !(CONFIG_PLATFORM & PLATFORM_MAEMO5)) \ 26 + || (CONFIG_PLATFORM & PLATFORM_CTRU) 26 27 AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -80, 0, 0) 27 28 #else 28 29 #define AUDIOHW_CAPS (MONO_VOL_CAP)
+2 -2
firmware/export/rbpaths.h
··· 41 41 /* NOTE: target-specific hosted HOME_DIR resides in filesystem-app.c */ 42 42 #if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ 43 43 defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \ 44 - defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX) 44 + defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX) || defined(CTRU) 45 45 46 46 #define HOME_DIR "/" 47 47 ··· 87 87 88 88 #if defined(APPLICATION) && \ 89 89 !(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \ 90 - defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX)) 90 + defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX) || defined(CTRU)) 91 91 92 92 #define PLUGIN_DATA_DIR ROCKBOX_DIR "/rocks.data" 93 93 #define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR
+3 -3
firmware/include/_ansi.h
··· 9 9 "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header 10 10 files aren't affected). */ 11 11 12 - #ifndef _ANSIDECL_H_ 13 - #define _ANSIDECL_H_ 12 + #ifndef __ANSIDECL_H__ 13 + #define __ANSIDECL_H__ 14 14 15 15 /* First try to figure out whether we really are in an ANSI C environment. */ 16 16 /* FIXME: This probably needs some work. Perhaps sys/config.h can be ··· 64 64 #endif 65 65 #endif 66 66 67 - #endif /* _ANSIDECL_H_ */ 67 + #endif /* __ANSIDECL_H__ */
+3 -1
firmware/include/dir.h
··· 28 28 #include "fs_attr.h" 29 29 #include "fs_defines.h" 30 30 31 - #if defined (APPLICATION) || defined(CHECKWPS) 31 + #if defined(CTRU) && !defined(SIMULATOR) 32 + #include "filesystem-ctru.h" 33 + #elif defined (APPLICATION) || defined(CHECKWPS) 32 34 #include "filesystem-app.h" 33 35 #elif defined(SIMULATOR) || defined(DBTOOL) 34 36 #include "../../uisimulator/common/filesystem-sim.h"
+3 -1
firmware/include/file.h
··· 40 40 RELATE_PREFIX, /* the path2 contains path1 as a prefix */ 41 41 }; 42 42 43 - #if defined(APPLICATION) || defined(CHECKWPS) 43 + #if defined(CTRU) && !defined(SIMULATOR) 44 + #include "filesystem-ctru.h" 45 + #elif defined(APPLICATION) || defined(CHECKWPS) 44 46 #include "filesystem-app.h" 45 47 #elif defined(SIMULATOR) || defined(DBTOOL) 46 48 #include "../../uisimulator/common/filesystem-sim.h"
+1 -1
firmware/include/rbendian.h
··· 28 28 #endif 29 29 30 30 #ifndef __MINGW32__ 31 - #ifdef __APPLE__ 31 + #if defined(__APPLE__) || defined(CTRU) 32 32 #include <sys/types.h> 33 33 #else 34 34 #include <endian.h>
+1 -1
firmware/kernel/include/thread.h
··· 89 89 * 90 90 * simulator (possibly) doesn't simulate stack usage anyway but well ... */ 91 91 92 - #if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__) 92 + #if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__) || defined(CTRU) 93 93 #define DEFAULT_STACK_SIZE 0x100 /* tiny, ignored anyway */ 94 94 #else 95 95 #include "asm/thread.h"
+4
firmware/kernel/mutex.c
··· 75 75 /* Release ownership of a mutex object - only owning thread must call this */ 76 76 void mutex_unlock(struct mutex *m) 77 77 { 78 + #ifndef CTRU 79 + /* FIXME: synchronization primitives does not behave 80 + correctly between different cores */ 78 81 /* unlocker not being the owner is an unlocking violation */ 79 82 KERNEL_ASSERT(m->blocker.thread == __running_self_entry(), 80 83 "mutex_unlock->wrong thread (%s != %s)\n", 81 84 m->blocker.thread->name, 82 85 __running_self_entry()->name); 86 + #endif 83 87 84 88 if(m->recursion > 0) 85 89 {
+1 -1
firmware/kernel/thread-common.c
··· 304 304 #ifdef HAVE_SCHEDULER_BOOSTCTRL 305 305 cpu_boost = thread->cpu_boost; 306 306 #endif 307 - #ifndef HAVE_SDL_THREADS 307 + #if !defined(HAVE_SDL_THREADS) && !defined(CTRU) 308 308 infop->stack_usage = stack_usage(thread->stack, thread->stack_size); 309 309 310 310 size_t stack_used_current =
+1 -1
firmware/kernel/thread-internal.h
··· 32 32 * 33 33 * simulator (possibly) doesn't simulate stack usage anyway but well ... */ 34 34 35 - #if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__) 35 + #if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__) || defined(CTRU) 36 36 struct regs 37 37 { 38 38 void *t; /* OS thread */
+4
firmware/target/hosted/filesystem-app.h
··· 58 58 #ifdef WIN32 59 59 #include "filesystem-win32.h" 60 60 #else /* !WIN32 */ 61 + #if defined(CTRU) && !defined(SIMULATOR) 62 + #include "filesystem-ctru.h" 63 + #else 61 64 #include "filesystem-unix.h" 65 + #endif 62 66 #endif /* WIN32 */ 63 67 #include "filesystem-hosted.h" 64 68
+2 -2
firmware/target/hosted/rtc.c
··· 24 24 #include <sys/time.h> 25 25 #if !defined(WIN32) 26 26 #include <sys/ioctl.h> 27 - #if !defined(__APPLE__) 27 + #if !defined(__APPLE__) && !defined(CTRU) 28 28 #include <linux/rtc.h> 29 29 #endif 30 30 #include <fcntl.h> ··· 49 49 50 50 int rtc_write_datetime(const struct tm *tm) 51 51 { 52 - #if !defined(WIN32) && !defined(__APPLE__) 52 + #if !defined(WIN32) && !defined(__APPLE__) && !defined(CTRU) 53 53 struct timeval tv; 54 54 struct tm *tm_time; 55 55
+6
lib/rbcodec/codecs/codec_crt0.c
··· 31 31 * avoid warning with certain compilers */ 32 32 int _start(void) {return 0;} 33 33 34 + #ifdef CTRU 35 + /* dummy undefined symbols */ 36 + void __aeabi_unwind_cpp_pr0(void) {} 37 + struct _reent * _EXFUN(__getreent, (void)) {} 38 + #endif 39 + 34 40 enum codec_status codec_start(enum codec_entry_call_reason reason) 35 41 { 36 42 #if (CONFIG_PLATFORM & PLATFORM_NATIVE)
+4
lib/rbcodec/codecs/codecs.make
··· 137 137 $(SGCLIB) : CODECFLAGS += -O1 138 138 $(VGMLIB) : CODECFLAGS += -O1 139 139 $(WAVPACKLIB) : CODECFLAGS += -O3 140 + ifneq (,$(findstring ctru, $(MODELNAME))) 141 + # segfault with -O1 142 + $(SPCLIB) : CODECFLAGS += -O2 143 + endif 140 144 else ifeq ($(ARCH),arch_m68k) 141 145 $(CODECLIB) : CODECFLAGS += -O2 142 146 $(A52LIB) : CODECFLAGS += -O2
+17
tools/buildzip.pl
··· 424 424 glob_mkdir("$temp_dir/libertas"); 425 425 glob_copy("$ROOT/firmware/drivers/libertas/firmware/*", "$temp_dir/libertas/"); 426 426 } 427 + # add hbmenu shortcut's icon and 3dsx executable 428 + if ($modelname =~ /ctru/) { 429 + glob_copy("icon.icn", "$temp_dir/"); 430 + glob_copy("rockbox.3dsx", "$temp_dir/"); 431 + } 427 432 428 433 glob_mkdir("$temp_dir/langs"); 429 434 glob_mkdir("$temp_dir/rocks"); ··· 740 745 move(".rockbox", $rbdir); 741 746 print "mv .rockbox $rbdir\n" if $verbose; 742 747 } 748 + 749 + # add hbmenu shortcut and cia file to zip file 750 + if ($modelname =~ /ctru/) { 751 + move("rockbox.cia", "3ds"); 752 + copy("$ROOT/packaging/ctru/rockbox.xml", "3ds"); 753 + 754 + system("$ziptool -u $output 3ds/rockbox.xml $target >/dev/null"); 755 + print "$ziptool $output $ROOT/packaging/ctru/rockbox.xml $target >/dev/null\n" if $verbose; 756 + system("$ziptool -u $output 3ds/rockbox.cia $target >/dev/null"); 757 + print "$ziptool $output rockbox.cia $target >/dev/null\n" if $verbose; 758 + } 759 + 743 760 system("$ziptool $output $rbdir $target >/dev/null"); 744 761 print "$ziptool $output $rbdir $target >/dev/null\n" if $verbose; 745 762 rmtree("$rbdir");
+112
tools/configure
··· 1009 1009 rbdir="/FunKey/.rockbox" 1010 1010 } 1011 1011 1012 + devkitarmcc () { 1013 + if [ -z "$DEVKITPRO" ]; then 1014 + echo "ERROR: You need a devkitPro toolchain and libraries installed" 1015 + echo "and have the DEVKITPRO environment variable point to the root" 1016 + echo "of the devkitPro installation." 1017 + echo "More info at https://devkitpro.org/wiki/Getting_Started" 1018 + exit 1019 + fi 1020 + 1021 + if [ -z "$DEVKITARM" ]; then 1022 + echo "ERROR: You need devkitARM toolchain installed and have the DEVKITARM" 1023 + echo "environment variable point to the root directory of the sdk." 1024 + exit 1025 + fi 1026 + 1027 + # check for additional dependencies 1028 + if [ ! -e "$DEVKITPRO/portlibs/3ds/lib/libCTRL.a" ]; then 1029 + echo "ERROR: You need to install libCTRL utility library." 1030 + echo "https://github.com/kynex7510/CTRL" 1031 + exit 1032 + fi 1033 + 1034 + if [ ! -e "$DEVKITPRO/portlibs/3ds/lib/libdl.a" ]; then 1035 + echo "ERROR: You need to install libdl implementation for 3ds (CTRDL)" 1036 + echo "https://github.com/kynex7510/CTRDL" 1037 + exit 1038 + fi 1039 + 1040 + if [ ! -n "`findtool makerom`" ]; then 1041 + echo "ERROR: makerom not found, please install and run configure again." 1042 + echo "https://github.com/3DSGuy/Project_CTR" 1043 + exit 1044 + fi 1045 + 1046 + if [ ! -n "`findtool bannertool`" ]; then 1047 + echo "ERROR: bannertool not found, please install and run configure again." 1048 + echo "https://github.com/carstene1ns/3ds-bannertool" 1049 + exit 1050 + fi 1051 + 1052 + arch="arm" 1053 + arch_version="6" 1054 + arch_profile="classic" 1055 + 1056 + CC=$DEVKITARM/bin/arm-none-eabi-gcc 1057 + CPP=$DEVKITARM/bin/arm-none-eabi-cpp 1058 + LD=$DEVKITARM/bin/arm-none-eabi-ld 1059 + AR=$DEVKITARM/bin/arm-none-eabi-gcc-ar 1060 + AS=$DEVKITARM/bin/arm-none-eabi-as 1061 + OC=$DEVKITARM/bin/arm-none-eabi-objcopy 1062 + WINDRES=windres 1063 + DLLTOOL=dlltool 1064 + DLLWRAP=dllwrap 1065 + RANLIB=$DEVKITARM/bin/arm-none-eabi-gcc-ranlib 1066 + 1067 + if [ "yes" = "$use_debug" ]; then 1068 + GCCOPTS=`echo $GCCOPTS | sed -e s/\ -Os/\ -Og/` 1069 + fi 1070 + 1071 + GCCOPTS="$GCCOPTS -fno-builtin -g -Wno-unused-result" 1072 + GCCOPTS="$GCCOPTS -I$DEVKITPRO/libctru/include -I$DEVKITPRO/portlibs/3ds/include" 1073 + GCCOPTS="$GCCOPTS -mword-relocations -ffunction-sections -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft" 1074 + GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -D_REENTRANT -masm-syntax-unified" 1075 + 1076 + SHARED_LDFLAGS="-shared" 1077 + SHARED_CFLAGS="-fPIC -fvisibility=hidden" 1078 + 1079 + LDOPTS="-specs=3dsx.specs -L$DEVKITPRO/libctru/lib -L$DEVKITPRO/portlibs/3ds/lib -ldl -lCTRL -lctru -lm" 1080 + GLOBAL_LDOPTS="$GLOBAL_LDOPTS -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft" 1081 + 1082 + # let's allow building shared libraries even if unresolved symbols are found, 1083 + # CTRDL (libdl) implementation will use a custom resolver for resolve symbols at runtime. 1084 + # TODO: use ResGen command to automatically detect unresolved symbols. 1085 + GLOBAL_LDOPTS=`echo $GLOBAL_LDOPTS | sed -e s/\-Wl,-z,defs//` 1086 + 1087 + # devkitarm already defines getcwd 1088 + GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-wrap,getcwd" 1089 + 1090 + ARG_PREFIX="romfs" 1091 + 1092 + extradefines="-D__3DS__" 1093 + rbdir="/3ds/.rockbox" 1094 + } 1095 + 1012 1096 1013 1097 do_bootloader() { 1014 1098 appsdir='$(ROOTDIR)/bootloader' ··· 1779 1863 (hw4 bl only) 1780 1864 ==Echo project== ==Surfans== 1781 1865 270) Echo R1 (WIP) 280) F28 (WIP) 1866 + 1867 + ==Nintendo== 1868 + 290) Nintendo 3DS (WIP) 1782 1869 EOF 1783 1870 1784 1871 buildfor=`input`; ··· 4471 4558 sysfontbl="16-Terminus" 4472 4559 ;; 4473 4560 4561 + 290|ctru) 4562 + target_id=122 4563 + application="yes" 4564 + modelname="ctru" 4565 + app_type="ctru-app" 4566 + target="CTRU" 4567 + memory=16 4568 + uname=`uname` 4569 + devkitarmcc 4570 + tool="cp " 4571 + boottool="cp " 4572 + bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" 4573 + bmp2rb_native="$rootdir/tools/bmp2rb -f 4" 4574 + output="rockbox" 4575 + bootoutput="rockbox" 4576 + appextra="recorder:gui" 4577 + plugins="no" 4578 + t_cpu="hosted" 4579 + t_manufacturer="ctru" 4580 + t_model="app" 4581 + ;; 4582 + 4474 4583 *) 4475 4584 echo "Please select a supported target platform!" 4476 4585 exit 7 ··· 5024 5133 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted" 5025 5134 elif [ "$t_manufacturer" = "ibasso" ]; then 5026 5135 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/ibasso/tinyalsa/include" 5136 + elif [ "$application" = "yes" ] && [ "$t_manufacturer" = "ctru" ]; then 5137 + TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/ctru/lib" 5138 + TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/ctru/lib/bfile" 5027 5139 fi 5028 5140 5029 5141 TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
+2
tools/functions.make
··· 40 40 objcopy = $(OC) $(if $(filter yes, $(USE_ELF)), -S -x, -O binary) $(1) $(2) # objcopy native 41 41 else ifneq (,$(findstring sdl-sim,$(APP_TYPE))) 42 42 objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2) # objcopy simulator 43 + else ifneq (,$(findstring ctru,$(MODELNAME))) # 3dsxtool requires symbols 44 + objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2) 43 45 else 44 46 ifdef DEBUG 45 47 objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2) # objcopy hosted (DEBUG)
+3
tools/root.make
··· 171 171 ifneq (,$(findstring rgnano, $(MODELNAME))) 172 172 include $(ROOTDIR)/packaging/rgnano/rgnano.make 173 173 endif 174 + ifneq (,$(findstring ctru, $(APP_TYPE))) 175 + include $(ROOTDIR)/packaging/ctru/ctru.make 176 + endif 174 177 175 178 endif # bootloader 176 179