wswan:index
Table of Contents
wswan (WonderSwan/WonderWitch)
The wswan target provides support for targetting the Bandai WonderSwan console. In addition, experimental support is provided for targetting the WonderWitch OS via the wwitch target.
Currently supported languages include:
- assembly - via binutils-ia16's GNU assembler, using Intel-style opcodes and syntax;
- C - via gcc-ia16, supporting up to the C11 standard with GNU extensions.
Packages
target-wswan- basic support metapackage
Documentation
Tutorial
This is very incomplete and only covers the absolute basics.
Library documentation
Guides
- Memory management - working with banks and segmentation, controlling memory locations
- Project configuration - configuring the ROM header and others
- Writing assembly - using the GNU assembler
Toolchain documentation
-
- gcc-ia16 6.3.0 - C compiler
- IA-16 Machine Constraints (inline assembly)
- gcc-ia16 cpp 6.3.0 - C preprocessor
Internal documentation
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/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 BootFriend executables which execute from RAM.
In addition, there exists an experimental subtarget wwitch for targeting the Freya abstraction layer used by the WonderWitch platform.
Additional links
- WSdev Wiki - hardware documentation
- awesome-wsdev - link hub for WonderSwan-related homebrew projects
wswan/index.txt · Last modified: by asie
