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 abstraction layer.
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.
Overview
Packages
target-wswan
- basic support metapackage
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.
Libraries
Guides
- These might become a tutorial one day (very work-in-progress):
- Porting WonderWitch applications to standalone programs - the
libwwcl
WonderWitch compatibility layer
- Memory management - working with banks and segmentation, controlling memory locations
- Writing assembly - using the GNU assembler
- wfconfig.toml - configuring the ROM header
Other documentation
-
- gcc-ia16 6.3.0 - C compiler
- IA-16 Machine Constraints (inline assembly)
Other sources
- WSdev Wiki - hardware documentation
- awesome-wsdev - link hub for WonderSwan-related homebrew projects
wswan/index.txt · Last modified: 2024/10/17 19:36 by asie