Programming language support: Difference between revisions

From dreamcast.wiki
Jump to navigation Jump to search
(5 intermediate revisions by 3 users not shown)
Line 8: Line 8:
* '''C''', the predominant language for Sega Dreamcast development, via the GCC C compiler.
* '''C''', the predominant language for Sega Dreamcast development, via the GCC C compiler.
* '''C++''', commonly used and very well-supported, via the GCC C++ compiler.
* '''C++''', commonly used and very well-supported, via the GCC C++ compiler.
* '''Objective-C''', via the GCC Objective-C compiler. Preliminary support for Foundation framework via [https://gnustep.github.io/ GNUstep] is being developed. See [https://twitter.com/dinobj_c/status/1732399498977276154 Andrew Apperley's X account].
* '''Objective-C''', via the GCC Objective-C compiler. Preliminary support for Foundation framework via [https://gnustep.github.io/ GNUstep] is being developed. See [https://twitter.com/dinobj_c/status/1732399498977276154 Andrew Apperley's X account]. See [[Objective-C on Dreamcast]] for more information.
** The GNU '''Objective-C++''' extension is available as well.
** The GNU '''Objective-C++''' extension is available as well.
* '''D''', via the GCC D compiler. Early support, see [https://twitter.com/lunafoxgirlvt/status/1736444629149487494 Luna's X account].
* '''Rust''', via rustc_codegen_gcc and libgccjit, or via gccrs. When using rustc_codegen_gcc, the core and alloc libraries are available, with bindings to KallistiOS being developed. See [[Rust on Dreamcast]] for more information.
* '''Rust''', via rustc_codegen_gcc and libgccjit, or via gccrs. When using rustc_codegen_gcc, the core and alloc libraries are available, with bindings to KallistiOS being developed. See [[Rust on Dreamcast]] for more information.
* '''Ada''', via GNAT. Initial work being done by [https://poulhies.fr/ Marc Poulhiès].
* '''D''', via the GCC D compiler. Early support, see [https://dreamcast.wiki/D_on_Dreamcast D on Dreamcast] for more information.
* '''Ada''', via GNAT. [https://github.com/dkm/ada-dreamcast-helloworld Ada 3D cube demo] by [https://poulhies.fr/ Marc Poulhiès].
* '''Fortran''', via GFortran. Requires some work to create a cross-compiler, but does work.
* '''Fortran''', via GFortran. Requires some work to create a cross-compiler, but does work.



Revision as of 20:44, 6 June 2024

The following languages can be used in Sega Dreamcast programming:

Assembly languages

  • SH4 assembly, as the native machine code for the Dreamcast's SuperH processor
  • ARM assembly, as the native machine code for the Dreamcast's AICA ARM7DI sound processor

Compiled languages

  • C, the predominant language for Sega Dreamcast development, via the GCC C compiler.
  • C++, commonly used and very well-supported, via the GCC C++ compiler.
  • Objective-C, via the GCC Objective-C compiler. Preliminary support for Foundation framework via GNUstep is being developed. See Andrew Apperley's X account. See Objective-C on Dreamcast for more information.
    • The GNU Objective-C++ extension is available as well.
  • Rust, via rustc_codegen_gcc and libgccjit, or via gccrs. When using rustc_codegen_gcc, the core and alloc libraries are available, with bindings to KallistiOS being developed. See Rust on Dreamcast for more information.
  • D, via the GCC D compiler. Early support, see D on Dreamcast for more information.
  • Ada, via GNAT. Ada 3D cube demo by Marc Poulhiès.
  • Fortran, via GFortran. Requires some work to create a cross-compiler, but does work.

Scripting/Interpreted languages