From GameBrew

Last Updated2020/06/03

vice3ds is an emulator for the Commodore 64, an 8-bit home computer introduced in January 1982 by Commodore International. It is listed in the Guinness World Records as the highest-selling single computer model of all time, with independent estimates placing the number sold between 10 and 17 million units.

This is a port of the Versatile Commodore Emulator VICE-C64 (x64) emulator v3.3 to Nintendo 3DS with a lot of 3DS-specific functionality added and a new UI.


Available in CIA, 3DS, and 3DSX formats.

  • CIA - Install the .cia with the CIA manager of your choice.
  • 3DSX - Use the .3dsx provided with the Homebrew Launcher.
  • 3DS - Copy .3ds to your SD card.

Apart from this, a DSP-dump is required for sound to work correctly in the CIA version.

User guide

Soft buttons functions (from left to right, top to bottom):

  • Autostart image.
  • Toggle joystick ports.
  • Toggle Circle Pad/D-Pad for joystick.
  • Warp Mode.
  • Quickload snapshot.
  • Quicksave snapshot.
  • Toggle True Drive Emulation.
  • Hard Reset.
  • Pause emulation.
  • Attach disk image to drive 8.
  • Toggle Sprite-Sprite collisions.
  • Power off bottom screen backlight.
  • Type command: LOAD\"*\",8,1 - RUN.
  • Type command: LOAD\"$\",8 - LIST.
  • Hit RUN/STOP.
  • Hit SPACE.
  • Hit RETURN.
  • Enable Mouse.
  • Toggle No borders/Fullscreen.

This (and a lot of other things) can be changed in Vice menu. To change the mapping of a soft button (or actually any other button incl. all the 3DS- and soft keyboard buttons) to a menu item in Vice menu, press the R-button when the menu item is selected, then touch/press the button. This button will now be mapped to the selected menu entry.


Select - Open Vice menu

Start - Open Gamebase64 launcher

D-Pad or A - Joystick

B - Joystick Up

R - Autofire (within vice menu, R-button starts the mapping of a hotkey)

C-Stick - Cursor keys

L/ZL-buttons - Left/Right mouse buttons (if mouse is enabled)

3D-Slider - Emulation speed (0 = 100%, max = Warp-mode)


vice3dsc643.png vice3dsc646.png

vice3dsc644.png vice3dsc645.png


Vice 3DS 1.0 on Old and New 3DS (Nv Bd)


From v1.6 on, Vice3DS will run with acceptable framerates (~20 fps with fastSID emulation) on O3DS.

However, a N3DS is recommended: Only here, you will get the full 50fps and incredible reSID sound.


v2.4.1 Senbei

  • Bugfix: fix gamebase64 launcher crash if more than 64 games are downloaded.

v2.4 Senbei

  • Enhancement: netplay is now possible.
  • Optimization: issue warning at startup if 3D-slider is not set to OFF.
  • Bugfix: no more sound errors on resume after pressing home button.
  • Bugfix: fix gamebase64 launcher crash if more than 64 games are downloaded.

v2.3 Mochi

  • Enhancement: gamebase64 launcher now works on O3DS with reduced database size (and lots of other memory optimizations).
  • Enhancement: auto switch to (hopefully) correct joyport/control scheme when starting a game in gamebase64 launcher.
  • Enhancement: new joystick handling (only 1 joystick, plugable in p1/p2 and switchable between dpad/cpad, B-button = joy up, R-button = autofire).
  • Enhancement: auto-switching PAL/NTSC / TDE / Control scheme in gb64 launcher can now be turned off.
  • Enhancement: soft button positions are now saved in snapshot files when saving configuration.
  • Enhancement: volume can now be increased to 200%. This will make some games more audible but will most probably result in sound distortions for most games.
  • Enhancement: VICE menu cleanup & restructure.
  • Enhancement: all downloads are a lot faster.
  • Enhancement: if no fliplist is active, the currently attached image directory or current directory is automatically a fliplist.
  • Enhancement: cracker group info in gb64 database/screen.
  • Enhancement: list of "popular" games extended in gamebase64 launcher.
  • Enhancement: issue UI warnings if true drive emulation is disabled but a program needs it.
  • Optimization: START button now starts gb64 launcher, moved rs/restore soft button back to top, included "enable mouse" in soft buttons again.
  • Optimization: removed lots of unused or unnecessary vice code.
  • Optimization: remove cartridge before autostarting an image if not default cartridge.
  • Optimization: true drive emulation enabled by default but autostart initially loads without TDE.
  • Optimization: autostart will not require selecting a file within the image anymore, new menu entry "autostart file in image".
  • Optimization: numbers in download/installation progress now better readable.
  • Optimization: Option to turn off database update prompts in gamebase64 launcher.
  • Optimization: directory structure for downloaded games now resembles gb64 structure.
  • Optimization: make statusbar wider & remove keyboard status bar (who needs this anyways?).
  • Optimization: Default drive idle method is "None" for N3DS and "Skip cycles" for O3DS.
  • Optimization: game files are directly downloaded with ftp from, not over http proxy anymore (needs a custom build version of libcurl, fincs does not want to fix it in devkitARM).
  • Bugfix: no more freeze/crash when switching from/to fullscreen multiple times.
  • Bugfix: last selected file was not always identified correctly in file dialog.
  • Bugfix: no more crash when restoring default settings on NTSC machine.
  • Lots of other bugfixes and small enhancements.

v2.2 Onigiri

  • Enhancement: gamebase64 UI
  • Optimization: setting AutostartHandleTrueDriveEmulation turned on per default.
  • Bugfix: key mappings were not saved correctly.
  • Bugfix: icon generation for "L btn", "ZL btn" etc did not work as expected.
  • Bugfix: Emulation was paused after installing a memhack.
  • Bugfix: When autostarting two tape images, the second image would not RUN automatically.
  • Many other small enhancements, optimizations and bug fixes.

v2.1 Congee

  • Enhancement: Online-Updater.
  • Enhancement: Key mappings now support multiple target keys, key combos are obsolete & removed.
  • Enhancement: "Settings management" menu - added option to hide menu button on bottom screen.
  • enhancements for building custom vice3ds games:
    • If file romfs:/prefix.txt exists, changes default directory on SD card to /3ds/vice3DS-C64/<contents of file>
    • Added "ChgRootDirectory" resource to change root of file selection dialog.
    • Added "AutostartImage" resource to specify exact location of autostart image.
    • At startup, all files in romfs:/autocopy will be copied to default dir without overwriting existing files.
    • Custom help texts for keys (configurable in in menu "Help").
  • Some other small enhancements, optimizations and bug fixes.

v2.0 Screw Driver

  • Enhancement: vice menu moved from top to bottom screen, emulation does not pause anymore while menu is open.
  • Enhancement: vice menu now useable with stylus.
  • Enhancement: customizeable C64 keyboard command shortcuts.
  • Enhancement: show hint about how to exit edit sbuttons mode.
  • Enhancement: "power off bottom screen" is now a toggle button.
  • Enhancement: file sorting now case insensitive.
  • Enhancement: vice3DS checks for autostart.*-files in romfs:/ and vice directory and autostarts at startup.
  • Enhancement: autofire can now be configured in the joystick keysets.
  • Enhancement: support of zip files for autostart.
  • Enhancement: configurable key combos.
  • Optimization: cancel-key moves one directory up in file dialog.
  • Optimization: move statusbar menu entry back to original location (main menu).
  • Optimization: changed button functions in menu: map hotkey with R-button, press L-button to use the emulation while menu is active.
  • Optimization: smooth scrolling scroll bar in menu, file and imgfile dialog.
  • Optimization: speed reducion/speedup ranges in slider adjusted.
  • optimzation: passing end/beginning in file/imgfile dialog wraps the cursor to beginning/end.
  • Bugfix: removed monitor from cpujam messagebox.
  • Bugfix: sometimes d64 files were corrupted after autostart.
  • Bugfix: fixed crash when closing the 3ds lid, home button works now.
  • multiple bugfixes in file selection dialog, screen update routine.
  • Lots of other bugfixes, optimizations and small enhancements.

v1.6 Espresso

  • Enhancement: major performance increase by optimizing and merging top (SDL) and bottom (citro3D) screen update routines.
  • Enhancement: reSID sound engine support. Default engine is fastSID for O3DS, reSID for N3DS. reSID is more performance-hungry than fastSID, but sound is by far better. To change this setting, open VICE menu and go to "Machine settings" -> "Model settings" -> "SID settings" -> "SID model".
  • Enhancement: new help screen to show all current button functions (in emu and in menu).
  • Enhancement: soft button positions can now be changed by activating edit-mode (VICE menu: "Misc" -> "Edit bottom screen button positions") and dragging the soft buttons with the stylus. New positions are saved when saving settings.
  • Enhancement: applying default setting will not require restart anymore.
  • Enhancement: config files (vicerc, ROMs, icons etc.) are stored internally per default, files on SD card override internal files. Added menu entry in "Settings" menu to copy all internal config files to SD card.
  • Optimization: remove SDL joystick - all 3ds buttons and pad directions are now "keys" for vice3DS. These keys can be mapped to C64-joysticks via definition of keysets.
  • Optimization: define all default settings in code, no sdl-vicerc config file needed anymore.
  • Optimization: optimize compiler flags for speed.
  • Bugfix: eliminated sound distortions when using bottom screen (result of performance increase).
  • Bugfix: some soft buttons wouldn't unstick, fixed bug in MaxScreen softbutton.
  • Multiple other small enhancements, optimizations and bug fixes.

v1.5 Cappuccino

  • Spin-off: Exerimental C128-emulator (.3dsx only). It runs ok, but VDC-mode is painfully slow.
  • Enhancement: added sampler device "3DS built in microphone audio input". Haven't you always wished to record 4bit samples with your 3DS that you can play on your C64 computer?
  • Enhancement: added sampler settings menu & other devices for joyports.
  • Enhancement: add 'advance frame' menu entry to vice menu.
  • Enhancement: show mouse button mappings on touchpad.
  • Optimization: optimized keyboard handling (e.g. c-stick mapping & file dialogs).
  • Optimization: remove RS232 stuff from vice menu (wasn't working anyway).
  • Optimization: revamp build system, no more buildtools necessary.

v1.4 Cereal

  • Enhancement: speed up directory loading times in file selection dialogs.
  • Enhancement: enabled mouse support / bottom screen is now a touchpad when mouse is enabled, L- and ZL-buttons are mapped to left and right mouse button per default. Mouse sensitivity configurable. Tested for hours with Arkanoid.
  • Enhancement: create button mappings in "Misc" menu (key->key, key->joy, key->mousebutton), icons for mapped soft buttons are auto-generated. Now, B-button can be mapped to Joy-UP easily.
  • Enhancement: added option to save key mappings and hotkeys in snapshots.
  • Enhancement: added hotkey management entries in menu "Misc" (list hotkeys, unmap hotkey). Haven't you wished to easily get rid of your hotkey mappings?
  • Enhancement: cleaned up "Settings management" menu, hotkeys are now saved with other settings in file sdl-vicerc.
  • Enhancement: added menu entry/icon for no borders & fullscreen. No more magnifying glasses needed when playing.
  • Enhancement: added video size menu (fullscreen with multiple stretch options, etc).
  • Enhancement: added video border mode menu.
  • Enhancement: new icon (yay).
  • Enhancement: status bar now on bottom of emulator screen (like standard SDL-Vice).
  • Optimization: moved button to create hotkey mapping from ZL-button to L-button.
  • Lots of other small enhancements and bug fixes.

v1.3 Pancake

  • Enhancement: button to show/hide the keyboard, more soft buttons below keyboard.
  • Enhancement: pixel perfect screen representation (required change in libSDL, thanks to @Vague Rant).
  • Enhancement: paint color keys on keyboard with palette colors.
  • Enhancement: added help menu.
  • Enhancement: remember current directory for file dialogs across restarts.
  • Enhancement: standard soft button icons are copied to SD-card at startup, they can now be modified/amended by the user.
  • Enhancement: added some more helper menu entries in menu "Misc".
  • Enhancement: added some soft button icons.
  • Bugfix: no more freeze when exiting via home or power button.
  • Bugfix: roms added for all C64 machine types.
  • Bugfix: re-center display after machine type change.
  • Optimization: stripped some unnecessary code (vkbd, hvsc).

v1.2.1 Bacon&Eggs

  • Fix random lock-ups (was actually a bug in libSDL).
  • Fix for "not possible to select external palette files".
  • Fix for "crackling sound when using keyboard".
  • Fix for "not possible to change back to stock rom from another rom".
  • Fix for "menu entry 'Restore default settings' messes up screen".
  • Added menu entry/icon 'Misc/Power off bottom screen backlight'.
  • Added two icons for sprite collision menu entries.
  • Added menu entry to restore all default settings (incl. hotkeys etc).
  • Quicksave/-load now always saves to/loads from /3ds/vice3ds.
  • Added "RUN" to LOAD"*",8,1 menu entry.
  • Added F2/F4/F6/F8 keys to keyboard for easy access.
  • Added pause icon / ability to pause via soft button.
  • Nice new banner / startup logo.
  • Other minor bugfixes and optimizations.

v1.1 Breakfast Toast

  • Customizeable soft buttons on bottom screen.
  • Changed standard assignment of autofire buttons: Joy1=R, Joy2=ZR.
  • True drive emulation now turned off by default.
  • Emu-speed adjustable with 3d slider (0=100%, max=Warp).
  • Added menu 'Misc' with some helpers: RUN/STOP + RESTORE; LOAD"*",8,1.
  • Bugfix for loading external ROMs and other sysfiles.

v1.0.1 Sunshine

  • Clearer keyboard.
  • Bugfix for "Vice menu sometimes does not update screen when navigating".
  • Bugfix for autofire.

v1.0 Morning Glory

  • Autofire support (configurable in VICE menu under "Machine settings" -> "Joystick settings").
  • New keyboard layout.
  • Bugfixes.

v0.9 beta

  • Bugfixes.
  • CIA/3DS build.


  • Larger keyboard / keys.
  • Configuration files in romfs - will be copied to SD card if not existing there.
  • Key names showing correctly now in vice menu.
  • vice3DS now exits gracefully when pressing the menu button.
  • Show drive status in notification LED (settings in "Drive" menu).
  • v0.3 was accidentally a debug build, so v0.4 is faster.


  • OSK works now in vice menu when inputting file names.
  • New, flashy background and keyboard images compiled in binary.
  • Removed some menu entries that will break things on 3ds.
  • C-stick/ZL/ZR working, C-Stick mapped to cursor keys.
  • Status bar (can be activated in menu "Settings management").
  • When switching machines, bottomscreen is no more blanked.


  • On screen keyboard on bottom screen.


  • Dawn of Vice3DS.


Thanks to:

  • The Vice-Team of course.
  • @Elwyndas for the good ideas on how to make this project better, for the great test support and sending the O3DS.
  • for providing the C64 games library and an easy way to integrate.
  • @nop90 for the 3DS libSDL port - porting VICE to 3DS would not have been possible without it (even though had to tweak it in a couple of places).
  • @spinal_cord for breadbox, the keyboard images and design ideas.
  • @thealgorithm for providing the essential clue on how to enable reSID support.

External link