User Tools

Site Tools


wswan:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
wswan:index [2025/12/30 15:45] asiewswan:index [2026/01/08 15:57] (current) asie
Line 1: Line 1:
-The **wswan** target provides support for targetting the **Bandai WonderSwan** console. In addition, experimental support is provided for targetting the **WonderWitch** environment via the ''wwitch'' target.+====== wswan ====== 
 + 
 +The wswan target provides support for targetting the **Bandai WonderSwan** console. In addition, experimental support is provided for targetting the **WonderWitch** environment via the ''wwitch'' target.
  
   * [[wswan:platform_overview|Platform overview]]   * [[wswan:platform_overview|Platform overview]]
Line 6: Line 8:
 Currently supported languages include: Currently supported languages include:
    
-  * **assembly** - via binutils-ia16'GNU assemblerusing Intel-style opcodes and syntax; +  * **C** - via gcc-ia16, supporting up to the C11 standard with GNU extensions
-  * **C** - via gcc-ia16, supporting up to the C11 standard with GNU extensions.+  * **assembly** - via binutils-ia16'GNU assembler.
  
 ===== Packages ===== ===== Packages =====
Line 13: Line 15:
   * ''target-wswan'' - basic support metapackage   * ''target-wswan'' - basic support metapackage
  
-===== Documentation =====+===== Additional documentation =====
  
-==== Tutorial ==== +==== Library references ====
- +
-**This is very incomplete and only covers the absolute basics.** +
- +
-  * [[wswan:tutorial:development_environment|Development environment]] +
-  * [[wswan:tutorial:hello_display|Hello, Display!]] +
- +
-==== Library documentation ====+
  
   * [[https://wonderful.asie.pl/doc/libws/|libws]] - low-level hardware definitions and functions   * [[https://wonderful.asie.pl/doc/libws/|libws]] - low-level hardware definitions and functions
   * [[https://wonderful.asie.pl/doc/libwsx/|libwsx]] - high-level utilities   * [[https://wonderful.asie.pl/doc/libwsx/|libwsx]] - high-level utilities
   * [[https://wonderful.asie.pl/doc/libww/|libww]] - WonderWitch API wrapper, for the ''wwitch'' subtarget   * [[https://wonderful.asie.pl/doc/libww/|libww]] - WonderWitch API wrapper, for the ''wwitch'' subtarget
- 
-==== Guides ==== 
- 
-  * [[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:wfconfig|Project configuration]] - configuring the ROM header and others 
-  * [[wswan:guide:interrupt_handlers|Writing interrupt handlers]] 
-  * [[wswan:guide:c_assembly|Writing assembly]] - using the GNU assembler 
-    * [[wswan:guide:c_calling_convention|C calling convention]] 
-    * [[wswan:guide:c_inline_assembly|Writing inline C assembly]] 
-  * [[wswan:guide:pcv2_support|Pocket Challenge V2/pinstrap support]] 
  
 ==== Toolchain documentation ==== ==== Toolchain documentation ====
Line 52: Line 36:
   * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/cpp/|gcc-ia16 cpp 6.3.0]] - C preprocessor   * [[https://wonderful.asie.pl/doc/gcc-ia16/gcc-6.3.0/cpp/|gcc-ia16 cpp 6.3.0]] - C preprocessor
  
-==== Internal documentation ====+==== Various notes ==== 
 + 
 +  * [[wswan:guide:memory_management|Memory management]] - working with banks and segmentation, controlling memory locations 
 +  * [[wswan:guide:wfconfig|Project configuration]] - configuring the ROM header and others 
 +  * [[wswan:guide:interrupt_handlers|Writing interrupt handlers]] 
 + 
 +==== Design notes ====
  
   * [[wswan:guide:elf_quirks|ELF quirks]]   * [[wswan:guide:elf_quirks|ELF quirks]]
Line 60: Line 50:
 The wswan target features multiple subtargets: The wswan target features multiple subtargets:
  
-  * ''wswan/medium'' - create a ROM with multiple code segments, the default, stack and static data stored in IRAM;+  * ''wswan/medium'' (default) - 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, stack and static data stored in IRAM;   * ''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/medium-sram'' (experimental) - create a ROM with multiple code segments, stack stored in IRAM, static data stored in SRAM;
Line 66: Line 56:
   * ''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 an [[wswan:wwitch|experimental subtarget]] ''wwitch'' for targeting the Freya abstraction layer used by the WonderWitch platform.+In addition, there exists an [[wswan:guide:wwitch|experimental subtarget]] ''wwitch'' for targeting the Freya abstraction layer used by the WonderWitch platform.
  
 ===== Additional links ===== ===== Additional links =====
  
   * [[https://ws.nesdev.org/wiki/Main_Page|WSdev Wiki]] - hardware documentation   * [[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+  * [[https://codeberg.org/WonderfulToolchain/awesome-wsdev|awesome-wsdev]] - link hub for WonderSwan-related homebrew projects
  
wswan/index.1767109516.txt.gz · Last modified: by asie