New pages
From WSdev Wiki
Jump to navigationJump to search
- 18:56, 23 April 2025 WSR (hist | edit) [921 bytes] Asie (talk | contribs) (Created page with "The WSR file format is used for storing music routines from WonderSwan software, not unlike the NSF format. It was initally defined and implemented by the <tt>in_wsr</tt> Winamp plugin. Its format is based on the ROM header format, with files expected to be a multiple of 64 KiB in size. However, the footer at the end of the file is 32 bytes long, not 16: {| class="wikitable" |+ Header contents |- ! Offset !! Length !! Contents |- | $00 || 4 || Magic string: <tt>WSR...")
- 18:38, 23 April 2025 Internal EEPROM (hist | edit) [2,832 bytes] Asie (talk | contribs) (Created page with "The internal EEPROM is 128 bytes on the mono model, and 2048 bytes on Color models. It is absent on the Pocket Challenge V2. The first 96 bytes are used for software data, and can be written to even after the protection bit has been enabled. This is intended for transferring save data between cartridges. == Contents == {| class="wikitable" |- ! Offset !! Length !! Contents |- | $00 || 96 || Program data. Can be written by programs even if write protection has been ena...")
- 18:24, 11 April 2025 WonderWitch/IL/ProcIL (hist | edit) [923 bytes] Asie (talk | contribs) (Created page with "ProcIL is a library used to manage processes on the system. The Freya environment supports up to three concurrent processes at once, of which the first one is typically the operating system. == Functions == === load === <code>void __far* load(const char far *cmdline);</code> Runs the load routine of the program specified on the command line, returning its entrypoint. === run === <code>int run(void far *entrypoint, int argc, const char far * far *argv);</code> Run...")
- 11:11, 23 February 2025 Boot ROM (hist | edit) [686 bytes] Asie (talk | contribs) (Created page with "The WonderSwan boot ROM is where the console begins execution on power on. * On the "mono" model, it occupies an area from <tt>$FF000</tt> to <tt>$FFFFF</tt>, for a total of 4 KiB. * On the Color model, it occupies an area from <tt>$FE000</tt> to <tt>$FFFFF</tt>, for a total of 8 KiB. It performs the following activities: * checks if the cartridge self-test passed; * checks if the cartridge footer is valid; * if START is held when the console is turned on, enters the...")
- 11:06, 23 February 2025 Display/Windows (hist | edit) [790 bytes] Asie (talk | contribs) (Created page with "The Screen 2 and Sprite layers can optionally have their drawing restricted within or without specific rectangular windows. In the case of Screen 2, one can use the Display Control port to configure if the window should render only the tiles inside of it. Alternatively, once can configure the window to only render tiles outside of it, in which case the window rectangle acts as a cut-out. {| class="wikitable" ! ! Window inside ! Window outside |- ! Pixel inside | align=...")
- 09:54, 23 February 2025 Display/Sprites (hist | edit) [1,597 bytes] Asie (talk | contribs) (Created page with " The display system can show up to 128 sprites at once. Sprites are always drawn in front of Screen 1, but they can be drawn in front of or behind Screen 2. Sprites are stored in a sprite table in the console's internal RAM. It consists of up to 128 four-byte entries, of which any sequential slice can be displayed: <pre> (Byte 1) (Byte 0) 15 bit 8 7 bit 0 ---- ---- ---- ---- vhPi pppt tttt tttt |||| |||| |||| |||| |||| |||+--++++-++++- Tile index (0-511...")
- 09:54, 23 February 2025 Display/Screens (hist | edit) [977 bytes] Asie (talk | contribs) (Created page with " A screen is a layout of tiles. Each cell in a screen controls one 8x8 tile. The display system can show two distinct screens simultaneously. It also supports hardware flipping of tiles, both horizontally and vertically. The size of each screen is fixed at 32x32 cells or 256x256 pixels, while each cell is stored as a two-byte word: <pre> Address 15 bit 8 7 bit 0 ---- ---- ---- ---- 0bbb byyy yyxx xxx. ||| |||| |||| ||| ||| |||| ||++-+++-- X coord...")
- 09:51, 23 February 2025 Display/Palette (hist | edit) [3,103 bytes] Asie (talk | contribs) (Created page with "The display system provides sixteen different palettes that can be used to color or shade tiles. * Palettes 0-7 can be used for the two screens only; * Palettes 8-15 can be used for both screens and sprites. == Palette format == === Mono === In ''mono'' modes, palettes are stored in I/O ports 0x20 through 0x3F. Each palette contains four three-bit entries, which are pointers into a global, four-bit shade lookup table: <pre> Palette Global shade LUT...")
- 09:40, 23 February 2025 Display/Tile Data (hist | edit) [4,271 bytes] Asie (talk | contribs) (Created page with "== Tile data == The tile data is stored at a fixed memory location: * <tt>$2000</tt> - <tt>$3FFF</tt> for 2 bit per pixel tiles in "mono" mode, for a total of 512 tiles. * <tt>$2000</tt> - <tt>$5FFF</tt> for 2 bit per pixel tiles in "color" mode, for a total of 1024 tiles. * <tt>$4000</tt> - <tt>$BFFF</tt> for 4 bit per pixel tiles in "color" mode, for a total of 1024 tiles. == Tile data formats == === 2 bits per pixel, planar === The tiles are stored in an interlea...")
- 09:38, 23 February 2025 Display/LCD Icons (hist | edit) [1,700 bytes] Asie (talk | contribs) (Created page with "The WonderSwan features thirteen fixed LCD segments which are displayed to the right<sup>(color)</sup> or below<sup>(mono)</sup> the main display. These are: * Six under control of software ** Large circle ** Medium circle ** Small circle ** Horizontal orientation ** Vertical orientation ** (Shooting) Star (Sleep) * Four software can query ** Speaker ** Volume A (small wave<sup>(mono)</sup>, center wave<sup>(color)</sup...")
- 15:21, 22 February 2025 Display/IO Ports (hist | edit) [9,503 bytes] Asie (talk | contribs) (Created page with "== Graphics I/O ports == {{Anchor|Display Control}} === Display Control ($00) === <pre> 7 bit 0 ---- ---- ..wo Ws21 || |||| || |||+- Enable Screen 1 layer || ||+-- Enable Screen 2 layer || |+--- Enable Sprite layer || +---- Enable Sprite window |+------ Screen 2 tiles are drawn (if window enabled): | 0 = inside window, | 1 = outside window. +------- Enable Screen 2 window </pre> {{Anchor|Display Background}} === Display Background Co...")