From WiiBrew
Jump to navigation Jump to search
TypeComputer emulator
LicenseGPL 3.0
Downloadable via the Homebrew Browser
Downloadable via the Open Shop Channel
WiiMote2.svg Nunchuck alternative.svg ClassicController.svg USB Keyboard Loads files from the Front SD slot USB mass storage device Local WiFi


FBZX Wii is a ZX Spectrum emulator.

The project is based on FBZX originally written by Sergio Costas (http://www.rastersoft.com/fbzx.html). The code has been ported to Wii and largely improved with many new features by Oibaf.

FBZX Wii can be found on Github at github.com/Oibaf66/fbzx-wii

There is also a gamecube port here FBZX GC

The program uses SDL Wii library.


Vitual keyboard
Menu with snapshots

The main features are:

  • Emulates accurately the Original 48Kspectrum (both issue 2 and issue 3), the classic 128K, the Amstrad Plus 2, the Amstrad Plus 2A, the Spanish 128K and the NTSC 48k. This includes screen, keyboard and sound (both speaker and AY-3-8912 chip).
  • Screen emulation is extremely accurate, so it can emulate border effects and even attribute effects.
  • In precision mode floating bus and interrupt timing are accuratly emulated.
  • Framebuffer resolution at 640X480 or 320X240.
  • Supports Z80 snapshots, both loading and saving, and loading .SNA snapshots.
  • Supports TAP (both read and write) and TZX (only read) tape files, supporting normal speed loading and instant loading.
  • Supports RZX files (play, record, add bookmark, edit, browsing)
  • Tape browser.
  • Supports POKE files.
  • Supports ZIP files.
  • Support for SE Basic.
  • FTP client for loading games from internet repositories (e.g. WOS).
  • Emulates up to 2 joysticks of types: Kempston, Cursor, Fuller , Sinclair1, Sinclair2 and QAOP.
  • Support for Gamecube and Wii U Pro controllers.
  • All the wiimote, nunchuck and classic controller buttons and joypads are fully configurable.
  • IR Virtual keyboard support.
  • Emulates Interface I, Interface II and Microdrive.
  • Emulates ULAPlus.
  • Emulates Currah microspeech and Fuller Box.
  • Based on a new, fully free, Z80 emulator (Z80Free).


Untar the binary release on your SD card or usb device, which gives you a structure as follows:


Put .z80 and .sna files in /fbzx-wii/snapshots or .tap and .tzx files in /fbzx-wii/tapes on your SD card or usb device.

The roms are in /fbzx-wii/spectrum-roms. Although Amstrad is the current proprietary of the copyright of the original ZX Spectrum ROMs, they have kindly given their permission for its redistribution with Spectrum emulators.

Currah microspeech ROM is not provided with FBZX Wii. You have to put "currah.rom" file in /fbzx-wii/spectrum-roms to have Currah microspeech emulation.


FBZX wii has 2 GUIs. One is accessible from the keyboard through the Function Keys (F1 for help) and one from the wiimote pressing the home button.

From the wiimote press 1 or A to select an item and 2 or B to come back to the previous menu. Press the "+" button to access the virtual keyboard which uses wiimote IR pointer or point the wiimote at the screen (it depends on the configuration).

The in-game menu allows you to insert tapes, load them and configure the display, joysticks etc. The easiest way to play a game is to load a snapshot (.z80 .sna and .rom files).

You can also insert a tape file (.tap and .tzx) and then load the file in the tape menu (it simulates the command Load "").

The option instant load allows to load tape file in few seconds. For TZX files, if the emulator finds a custom loading routine which can not be managed by the "instant load", it starts the tape.

If the "instant load" does not work, try to disable the instant load option and enable "turbo auto mode" which speeds up the emulator during the loading.

A tape browser allows to select the section of file you want to load.

RZX files can be played and recorded. During playing use "-" to pause. During recording use "Bookmark" to add a memory snapshot. Use "Brows" to move to a bookmark during playing or recording. Use "Edit" to start recording from a bookmark for an existing rzx file.

It is possible to set precision emulation required by some demo graphic programs. Turbo mode is disabled in this mode. In precision emulation, some performance issues can arise; in this case try switching to 320X240 resolution.

You can also load a file from a USB disk, from your PC via SMB and from Internet via FTP using a Wi-Fi connection. You should configure fbzx.net file and select the option in the tools menu. For SMB see the tinysmb page for additional information and troubleshooting .

You can bind all the keyboard buttons and joystick fire to the wiimote/nunchuck buttons and to the joypad.

Snapshots and scr files will be stored on the SD card or usb device.

The general preferences are saved (joystick type, machine, buttons bindings, etc.) from the main in-game menu and they are loaded on start-up.

You can also save the game preferences which can be automatically loaded with the tape/snapshot if the related option is set.

If the selected file contains a screen it will appear on the video screen during the menu navigation otherwise you have to save a screen snapshot to have this feature. To remove the screen preview use the left and rigth controls.

If rumble is enabled, the wiimote rumbles each time the fire button is pressed

In-emulator controls

WiimoteHorizontal.svg ClassicController.svg Nunchuck alternative.svg GameCube Controller USB Keyboard Action
Wiimote D-Pad Classic Left Control Stick Classic Right Control Stick Nunchuck Control Stick GameCube Control Stick GameCube D-Pad Joystick direction
Wiimote 2 Button To be configured Gamecube A Button Fire button (configurable)
Wiimote D-Pad Wiimote A Button Wiimote B Button Wiimote 1 Button Wiimote 2 Button Wiimote + Button Wiimote D-Pad Classic a Button Classic b Button Classic x Button Classic y Button Classic + Button Classic L Trigger Classic R Trigger Classic ZR Button Classic ZL Button Nunchuck C Button Nunchuck Z Button GameCube D-Pad Gamecube A Button Gamecube B ButtonGamecube X Button Gamecube Y Button GameCube Z Button Configurable for keypresses in the menu
Wiimote HOME Button Classic HOME Button GameCube START Button F1 Enter menu
Wiimote + Button Classic + Button GameCube R Trigger Call Virtual Keyboard
Wiimote - Button Classic - Button GameCube L Trigger Pause the emulator

Menu controls

WiimoteHorizontal.svg Nunchuck alternative.svg ClassicController.svg GameCube Controller USB Keyboard Action
Wiimote D-Pad Nunchuck Control Stick Classic D-Pad GameCube Control Stick GameCube D-Pad Up, Down, Left, Right Move up/down/left/right in the menu
Wiimote - Button Wiimote + Button Classic - Button Classic + Button Pgdown/Pgup Move one page down/up in the menu
Wiimote 2 Button Wiimote A Button Classic a Button Classic b Button Gamecube A Button Enter Select current entry
Wiimote 1 Button Wiimote B Button Classic x Button Classic y Button Gamecube B Button Esc Exit from menu


FBZX is highly configurable. Access the menu to configure the emulation and wiimote settings.

The menu support allows selecting which machine model to emulate.

Reporting issues

Please report issues and feature requests in the fbzx-wii issue tracker on Github.


Version 15.0

  • Added WIIU PRO controller support
  • Added Gamecube controller support
  • Fast up and down menu scrolling with the second joystick
  • Fixed bug in D-Right conf

Version 14.0

  • Added RZX support (play, record, add bookmark, edit, browsing) in tool menu
  • Preview screen auto extracted from tap, tzx, sna, z80 and rzx files
  • Left and right togle preview windows
  • Horizontally scrolling menu
  • Last selected file remebered in the menu
  • Extended z80 file format to +2, +3, +2a models
  • Added AY info emulation in z80 file format
  • Z80 file compression (v2.0) for both 48k and 128k models
  • Fixed bug in z80 decompression algorithm

Version 13.0

  • New set of microspeech allophones (shorter)
  • Added GUI volume setting
  • Added Currah microspeech volume setting
  • SE Basic extended to all models
  • Wiimote button 2 as default fire

Version 12.0

  • Added Currah microspeech emulation
  • Added Fuller box sound and joystick emulation
  • Added ZX Interface II Rom cartridge loading support
  • Added support for Open SE basic ROM for 48k model
  • Added file management (paste, copy and delete)
  • Added load command for microdrive
  • Improved tape fast loading routine

Version 11.0

  • Gui interface with ZX Spectrum style and sound
  • Added screen preview in scr menu
  • Added tape settings menu
  • Added green color mode
  • Added submenu for 48k issue 2 & 3
  • Fixed several bugs (mainly memory leakage)

Version 10.3

  • Improved txz loading algorithm
  • Fixed small bugs on return from turbo state

Version 10.2

  • Fixed bug in 128k sna format
  • Fixed small bugs in z80 core
  • Fixed bugs in tape emulation (Speedlock 4-7, Softlock and Powerload work now)
  • Improved code and tape loading speed

Version 10

  • Tape browser
  • TZX "select block" block
  • TZX "jump to block" block
  • TZX messages shown on the screen
  • Instant load for TZX files too
  • Improved instant load routine: most of TAP files can be instant loaded now
  • Keys can be kept pressed in Virtual Keyboard
  • QAOP joystick
  • 16 bit sound
  • Linear interpolation anti aliasing sound filter
  • Removed crackling in menu change
  • Mic bit emulation (Cobra's Arc speach works now)
  • Option to have pause between blocks in instant load
  • Option to disable tape rewind on reset
  • Option to ignore joystick configuration of z80 files
  • Tape stops on reset
  • Fixed bug in emulation precision option saving
  • Other minor fixings and improvements

Version 9

  • Virtual keyboard does not stop the emulation
  • Support for installation on usb device
  • Case insensitive file ordering
  • The path in file browsing is remembered
  • Changed layout in file selection menu
  • Support for Wiiflow
  • Option to disable Virtual keyboard rumble

Version 8

  • Screen snapshots visible on screen in file select menus
  • Option to activate the virtual keyboard with the wiimote IR pointer
  • Changed menu navigation rules (2 and B always come back to previuos menu)
  • FTP and SMP connect also after start up
  • Tape stops after machine selection change
  • Fixed contention in normal mode emulation
  • Fixed crackling in turbo auto mode
  • Other minor bug fixes

Version 7

  • Added auto turbo mode
  • Added graphical virtual keyboard using wii pointer
  • Added B button as escape
  • Fixed bug in file list management

Version 6

  • Added mdr and tape file creation menu
  • Added poke menu
  • Added poke file management
  • Added zip support and archive browsing
  • Added ftp client and browsing
  • Support for ABC/BAC/ACB stereo
  • Improved snow emulation
  • Improved speed emulation
  • Fixed bug in SNA format
  • Fixed bug in AY-3-8912 emulation

Version 5

  • Added precision emulation setting (floating bus, contention, interrupt timing)
  • Added NTSC 48K machine
  • Added 320X240 framebuffer resolution
  • New screen setting menu
  • Added framerate setting

Version 4

  • In Joypad mode, the nunchuck works now
  • New code for Y-3-8912 emulation
  • Fixed RETN and RETI Z80 instructions
  • Fixed Flag emulation for many Z80 opcodes: Speedlock loader works now. Only the Flag in Bit n, (HL) is not correctly emulated.

Version 3

  • Added arrows keys binding to joysticks
  • Added game configuration management
  • Changed general configuration management
  • Added ultraspeed turbo mode
  • Added ULA+ contention
  • Fixed bug in sound and increased volume
  • Fixed some bugs in Z80 emulation. Ant Attack works now
  • Fixed some other small bugs

Version 2

  • Added smb support
  • Added usb disk support
  • Added joypad as joystick function
  • Added saving of all configurations and buttons
  • Improved virtual keyboard
  • Fixed bug in sound emulation
  • Fixed some other small bugs

Version 1

  • Initial porting from FBZX of Sergio Costas

Other topics


FBZX Wii is GPLv3.

Thanks to

  • Sergio Costas who did much of the work!