Both sides previous revisionPrevious revisionNext revision | Previous revision |
wswan:index [2024/02/17 10:57] – asie | wswan:index [2024/10/17 19:36] (current) – [Subtargets] asie |
---|
| |
* [[wswan:platform_overview|Platform overview]] | * [[wswan:platform_overview|Platform overview]] |
* [[wswan:bugs|Known bugs]] | * [[wswan:bugs|Known issues]] |
| |
| ===== Packages ===== |
| |
| * ''target-wswan'' - basic support metapackage |
| |
===== Subtargets ===== | ===== Subtargets ===== |
The wswan target features multiple subtargets: | The wswan target features multiple subtargets: |
| |
* ''wswan/medium'' - create a ROM with multiple code segments, the default; | * ''wswan/medium'' - create a ROM with multiple code segments, the default, stack and static data stored in IRAM; |
* ''wswan/small'' - create a ROM with one code segment, slightly faster code but 64KB maximum code limit; | * ''wswan/small'' - create a ROM with one code segment, slightly faster code but 64KB maximum code limit, stack and static data stored in IRAM; |
| * ''wswan/medium-sram'' (experimental) - create a ROM with multiple code segments, stack stored in IRAM, static data stored in SRAM; |
| * ''wswan/small-sram'' (experimental) - create a ROM with one code segment, stack stored in IRAM, static data stored in SRAM; |
* ''wswan/bootfriend'' - special subtarget for creating [[https://wonderful.asie.pl/ws/bootfriend/|BootFriend]] executables which execute from RAM. | * ''wswan/bootfriend'' - special subtarget for creating [[https://wonderful.asie.pl/ws/bootfriend/|BootFriend]] executables which execute from RAM. |
| |
In addition, there exists a [[wswan:wwitch|wwitch]] subtarget for targeting the Freya abstraction layer. | In addition, there exists an [[wswan:wwitch|experimental subtarget]] ''wwitch'' for targeting the Freya abstraction layer used by the WonderWitch platform. |
| |
===== Libraries ===== | ===== Libraries ===== |
* [[https://wonderful.asie.pl/doc/libwsx/|libwsx]] - high-level utility library | * [[https://wonderful.asie.pl/doc/libwsx/|libwsx]] - high-level utility library |
* [[https://wonderful.asie.pl/doc/libww/|libww]] - WonderWitch API library | * [[https://wonderful.asie.pl/doc/libww/|libww]] - WonderWitch API library |
| * [[https://wonderful.asie.pl/doc/libwwcl/|libwwcl]] - WonderWitch compatibility layer |
| |
===== Guides ===== | ===== Guides ===== |
| |
| * These might become a tutorial one day (very work-in-progress): |
| * [[wswan:tutorial:development_environment|Development environment]] |
| * [[wswan:tutorial:hello_display|Hello, Display!]] |
| |
| |
| * [[wswan:guide:porting_wwitch|Porting WonderWitch applications to standalone programs]] - the ''libwwcl'' WonderWitch compatibility layer |
| |
| |
* [[wswan:guide:memory_management|Memory management]] - working with banks and segmentation, controlling memory locations | * [[wswan:guide:memory_management|Memory management]] - working with banks and segmentation, controlling memory locations |
| * [[wswan:guide:optimization_v30mz|Optimizing for the NEC V30MZ CPU]] |
| * [[wswan:guide:interrupt_handlers|Writing interrupt handlers]] |
* [[wswan:guide:c_assembly|Writing assembly]] - using the GNU assembler | * [[wswan:guide:c_assembly|Writing assembly]] - using the GNU assembler |
* [[wswan:guide:c_calling_convention|C calling convention]] | * [[wswan:guide:c_calling_convention|C calling convention]] |
* [[wswan:guide:c_inline_assembly|Writing inline C assembly]] | * [[wswan:guide:c_inline_assembly|Writing inline C assembly]] |
| * [[wswan:guide:wfconfig|wfconfig.toml]] - configuring the ROM header |
| |
| |
| * [[wswan:guide:elf_quirks|ELF quirks]] |
| |
| ===== Other documentation ===== |
| |
| * [[https://wonderful.asie.pl/doc/binutils-ia16/|binutils-ia16]] |
| * [[https://wonderful.asie.pl/doc/binutils-ia16/as.html|as Assembler]] |
| * [[https://wonderful.asie.pl/doc/binutils-ia16/ld.html|ld Linker]] |
| * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/gcc/|gcc-ia16 6.3.0]] - C compiler |
| * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/gcc/IA_002d16-Options.html|IA-16 Options]] |
| * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/gcc/Named-Address-Spaces.html#IA_002d16-Named-Address-Spaces-1|IA-16 Named Address Spaces]] |
| * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/gcc/IA_002d16-Function-Attributes.html|IA-16 Function Attributes]] |
| * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/gcc/IA_002d16-Built_002din-Functions.html|IA-16 Built-in Functions]] |
| * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/gcc/Machine-Constraints.html|IA-16 Machine Constraints]] (inline assembly) |
| |
| ===== Other sources ===== |
| |
| * [[https://ws.nesdev.org/wiki/Main_Page|WSdev Wiki]] - hardware documentation |
| * [[https://github.com/WonderfulToolchain/awesome-wsdev|awesome-wsdev]] - link hub for WonderSwan-related homebrew projects |
| |