diff --git a/backend/compilers/compilers.linux.yaml b/backend/compilers/compilers.linux.yaml index 7d209b6a8..a6f0b6fc0 100644 --- a/backend/compilers/compilers.linux.yaml +++ b/backend/compilers/compilers.linux.yaml @@ -183,7 +183,17 @@ saturn: - cygnus-2.7-96Q3 dreamcast: + - shc-v5.0r10 + - shc-v5.0r26 + - shc-v5.0r28 + - shc-v5.0r31 + - shc-v5.0r32 + - shc-v5.1r01 + - shc-v5.1r03 + - shc-v5.1r04 + - shc-v5.1r08 - shc-v5.1r11 + - shc-v5.1r13 macosx: - gcc-5026 diff --git a/backend/coreapp/compilers.py b/backend/coreapp/compilers.py index 04a150aaf..e392c0424 100644 --- a/backend/coreapp/compilers.py +++ b/backend/coreapp/compilers.py @@ -509,6 +509,16 @@ def available_platforms() -> List[Platform]: cc=SATURN_CC, ) +# earlier shc doesn't accept -fpu=single or -aggressive=2 +DREAMCAST_CC_V50R10 = ( + 'cat "$INPUT" | unix2dos > dos_src.c && ' + "cp -r ${COMPILER_DIR}/bin/* . && " + "(SHC_LIB=. SHC_TMP=. ${WINE} ${COMPILER_DIR}/bin/shc.exe dos_src.c ${COMPILER_FLAGS} -comment=nonest -cpu=sh4 -division=cpu -endian=little -extra=a=1800 -pic=0 -macsave=0 -sjis -string=const -object=dos_src.obj) && " + "${WIBO} ${COMPILER_DIR}/bin/elfcnv.exe dos_src.obj ${OUTPUT}" +) + +SHC_V50R10 = SHCCompiler(id="shc-v5.0r10", platform=DREAMCAST, cc=DREAMCAST_CC_V50R10) + DREAMCAST_CC = ( 'cat "$INPUT" | unix2dos > dos_src.c && ' "cp -r ${COMPILER_DIR}/bin/* . && " @@ -516,7 +526,16 @@ def available_platforms() -> List[Platform]: "${WIBO} ${COMPILER_DIR}/bin/elfcnv.exe dos_src.obj ${OUTPUT}" ) +SHC_V50R26 = SHCCompiler(id="shc-v5.0r26", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V50R28 = SHCCompiler(id="shc-v5.0r28", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V50R31 = SHCCompiler(id="shc-v5.0r31", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V50R32 = SHCCompiler(id="shc-v5.0r32", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V51R01 = SHCCompiler(id="shc-v5.1r01", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V51R03 = SHCCompiler(id="shc-v5.1r03", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V51R04 = SHCCompiler(id="shc-v5.1r04", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V51R08 = SHCCompiler(id="shc-v5.1r08", platform=DREAMCAST, cc=DREAMCAST_CC) SHC_V51R11 = SHCCompiler(id="shc-v5.1r11", platform=DREAMCAST, cc=DREAMCAST_CC) +SHC_V51R13 = SHCCompiler(id="shc-v5.1r13", platform=DREAMCAST, cc=DREAMCAST_CC) # PS2 IOP_GCC281 = GCCPS2Compiler( @@ -1561,7 +1580,17 @@ def available_platforms() -> List[Platform]: # Saturn CYGNUS_2_7_96Q3, # Dreamcast + SHC_V50R10, + SHC_V50R26, + SHC_V50R28, + SHC_V50R31, + SHC_V50R32, + SHC_V51R01, + SHC_V51R03, + SHC_V51R04, + SHC_V51R08, SHC_V51R11, + SHC_V51R13, # PS2 IOP_GCC281, IOP_GCC2952_102, diff --git a/frontend/src/lib/i18n/locales/en/compilers.json b/frontend/src/lib/i18n/locales/en/compilers.json index d7b65ebff..9771aea6c 100644 --- a/frontend/src/lib/i18n/locales/en/compilers.json +++ b/frontend/src/lib/i18n/locales/en/compilers.json @@ -196,7 +196,17 @@ "gcc2.7.2.2-mipsel": "gcc 2.7.2.2 + maspsx", "gcc2.7.2.3-mipsel": "gcc 2.7.2.3 + maspsx", + "shc-v5.0r10": "SHC v5.0 (Release 10)", + "shc-v5.0r26": "SHC v5.0 (Release 26)", + "shc-v5.0r28": "SHC v5.0 (Release 28)", + "shc-v5.0r31": "SHC v5.0 (Release 31)", + "shc-v5.0r32": "SHC v5.0 (Release 32)", + "shc-v5.1r01": "SHC v5.1 (Release 1)", + "shc-v5.1r03": "SHC v5.1 (Release 3)", + "shc-v5.1r04": "SHC v5.1 (Release 4)", + "shc-v5.1r08": "SHC v5.1 (Release 8)", "shc-v5.1r11": "SHC v5.1 (Release 11)", + "shc-v5.1r13": "SHC v5.1 (Release 13)", "psyq3.3": "PSYQ3.3 (gcc 2.6.0 + aspsx 2.21)", "psyq3.5": "PSYQ3.5 (gcc 2.6.0 + aspsx 2.34)",