Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Vice3DS: Difference between revisions

From GameBrew
m (Text replacement - "| licence" to "| license")
m (Text replacement - "Category:3DS homebrew emulators" to "")
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox 3DS Homebrews
{{Infobox 3DS Homebrews
| title = Vice
|title=Vice
| image = Vice3DS.jpg|250px
|image=Vice3dsc642.png
| type = Computer
|description=C64 Emulator.
| version=2.4.1
|author=Badda
| lastupdated = 2020/06/03
|lastupdated=2023/02/12
| license = Mixed
|type=Computer
| author = badda71
|version=2.4.2
| website = https://gbatemp.net/threads/release-vice3ds-c64-emulator.534830/
|license=Mixed
| download = https://dlhb.gamebrew.org/3dshomebrew/Vice3DS.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/vice3dsc64.7z
| source = https://github.com/badda71/vice3ds/
|website=https://gbatemp.net/threads/release-vice3ds-c64-emulator.534830
|source=https://github.com/badda71/vice3ds
}}
}}
<youtube>4KFkTU9jhmE</youtube>
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.


== vice3ds ==
This is a port of the Versatile Commodore Emulator [http://vice-emu.sourceforge.net VICE-C64] (x64) emulator v3.3 to Nintendo 3DS with a lot of 3DS-specific functionality added and a new UI.


This is a port of the VICE C64 (x64) emulator v3.3 to Nintendo 3DS with '''a lot''' of 3DS-specific goodies and added functionality. VICE - the Versatile Commodore Emulator - http://vice-emu.sourceforge.net/
==Installation==
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.


@spinal_cord made a [https://gbatemp.net/threads/release-bread-box-c64-emulator.397602/ C64 emulator (Breadbox)] based on Frodo but it does not work anymore with recent firmwares and he is not updating it anymore, so I gave it a shot to port the Vice C64 emulator v3.3 to the 3DS. Vice does support SDL1 but porting was not quite as easy as "just compile": A new sounddriver for the 3DS needed to be written, devkitpro libraries do not support all functionality required by full fledged Vice (so I had to strip them in quite some places) and lots of other things that needed tweaking or adaption. Apart from this, the 3DS needed a UI for the bottom screen, so this had to be written from scratch. Moreover, a lot of new & 3DS-exclusive functionality was added (check the release notes below).
Apart from this, a [[DSP1 3DS|DSP-dump]] is required for sound to work correctly in the CIA version.


==Screenshots==
==User guide==
https://dlhb.gamebrew.org/3dshomebrew/VICEC64-02.png
Soft buttons functions (from left to right, top to bottom):
*Autostart image.
*Hit RUN/STOP - RESTORE.
*Toggle joystick ports.
*Toggle Circle Pad/D-Pad for joystick.
*Warp Mode.


== Installation ==
*Quickload snapshot.
*Quicksave snapshot.
*Toggle True Drive Emulation.
*Hard Reset.
*Pause emulation.


Install .cia file with FBI - or - copy .3dsx file to /3ds/vice3DS-C64 directory on your SD card and launch in HBL - or - launch .3ds file from flashcard. Apart from this, a DSP-dump is required for sound to work correctly in the CIA version. https://gbatemp.net/threads/dsp1-a-new-dsp-dumper-cia-for-better-stability.469461/
*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.


==Usage==
*Hit RUN/STOP.
*Hit SPACE.
*Hit RETURN.
*Enable Mouse.
*Toggle No borders/Fullscreen.


Preconfigured button functions:
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
==Controls==
*Start: open Gamebase64 launcher
Select - Open Vice menu
*Directional Pad / A-Button: Joystick
*B-Button: Joystick Up
*R-button: 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)
*Soft buttons functions (from left to right, top to bottom) :
**Autostart image
**Hit RUN/STOP - RESTORE
**Toggle joystick ports
**Toggle C-Pad / D-Pad for joystick
**Warp Mode


**Quickload snapshot
Start - Open Gamebase64 launcher
**Quicksave snapshot
**Toggle True Drive Emulation
**Hard Reset
**Pause emulation


**Attach disk image to drive 8
D-Pad or A - Joystick
**Toggle Sprite-Sprite collisions
**Power off bottom screen backlight
**Type command: LOAD\"*\",8,1 - RUN
**Type command: LOAD\"$\",8 - LIST


**Hit RUN/STOP
B - Joystick Up
**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.
R - Autofire (within vice menu, R-button starts the mapping of a hotkey)


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.
C-Stick - Cursor keys


==Changelog==
L/ZL-buttons - Left/Right mouse buttons (if mouse is enabled)
v2.4.1 Senbei


*enhancement: netplay is now possible
3D-Slider - Emulation speed (0 = 100%, max = Warp-mode)
*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
==Screenshots==
https://dlhb.gamebrew.org/3dshomebrews/vice3dsc643.png
https://dlhb.gamebrew.org/3dshomebrews/vice3dsc646.png


*enhancement: gamebase64 launcher now works on O3DS with reduced database size (and lots of other memory optimizations)
https://dlhb.gamebrew.org/3dshomebrews/vice3dsc644.png
*enhancement: auto switch to (hopefully) correct joyport/control scheme when starting a game in gamebase64 launcher
https://dlhb.gamebrew.org/3dshomebrews/vice3dsc645.png
*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 8bitfiles.net, not over http proxy anymore (needs a custom build version of libcurl, fincs does not want to fix it in devkitARM https://github.com/devkitPro/pacman-packages/issues/130 )
*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
==Media==
'''Vice 3DS 1.0 on Old and New 3DS''' ([https://www.youtube.com/watch?v=4KFkTU9jhmE Nv Bd]) <br>
<youtube>4KFkTU9jhmE</youtube>


*enhancement: gamebase64 UI
==Compatibility==
*optimization: setting AutostartHandleTrueDriveEmulation turned on per default
From v1.6 on, Vice3DS will run with acceptable framerates (~20 fps with fastSID emulation) on O3DS.
*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
However, a N3DS is recommended: Only here, you will get the full 50fps and incredible reSID sound.


*enhancement: Online-Updater
==Changelog==
*enhancement: Key mappings now support multiple target keys, key combos are obsolete & removed
'''v2.4.2'''
*enhancement: "Settings management" menu - added option to hide menu button on bottom screen
*Enhancement: use new hoster for games download in gamebase64 launcher.
*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
'''v2.4.1 Senbei'''
*Bugfix: fix gamebase64 launcher crash if more than 64 games are downloaded.


*enhancement: vice menu moved from top to bottom screen, emulation does not pause anymore while menu is open
'''v2.4 Senbei'''
*enhancement: vice menu now useable with stylus
*Enhancement: netplay is now possible.
*enhancement: customizeable C64 keyboard command shortcuts
*Optimization: issue warning at startup if 3D-slider is not set to OFF.
*enhancement: show hint about how to exit edit sbuttons mode
*Bugfix: no more sound errors on resume after pressing home button.
*enhancement: "power off bottom screen" is now a toggle button
*Bugfix: fix gamebase64 launcher crash if more than 64 games are downloaded.
*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
'''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 8bitfiles.net, not over http proxy anymore (needs a custom build version of libcurl, fincs does not want to fix it in [https://github.com/devkitPro/pacman-packages/issues/130 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.


*enhancement: major performance increase by optimizing and merging top (SDL) and bottom (citro3D) screen update routines
'''v2.2 Onigiri'''
*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: gamebase64 UI
*enhancement: new help screen to show all current button functions (in emu and in menu)
*Optimization: setting AutostartHandleTrueDriveEmulation turned on per default.
*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
*Bugfix: key mappings were not saved correctly.
*enhancement: applying default setting will not require restart anymore
*Bugfix: icon generation for "L btn", "ZL btn" etc did not work as expected.
*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.
*Bugfix: Emulation was paused after installing a memhack.
*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.
*Bugfix: When autostarting two tape images, the second image would not RUN automatically.
*optimization: define all default settings in code, no sdl-vicerc config file needed anymore
*Many other small enhancements, optimizations and bug fixes.
*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
'''v2.1 Congee'''
 
*Enhancement: Online-Updater.
*spin-off: Exerimental C128-emulator (.3dsx only). It runs ok, but VDC-mode is painfully slow. https://gbatemp.net/threads/release-vice3ds-c128-c128-emulator.545436/
*Enhancement: Key mappings now support multiple target keys, key combos are obsolete & removed.
*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: "Settings management" menu - added option to hide menu button on bottom screen.
*enhancement: added sampler settings menu & other devices for joyports
*enhancements for building custom vice3ds games:
*enhancement: add 'advance frame' menu entry to vice menu
**If file romfs:/prefix.txt exists, changes default directory on SD card to /3ds/vice3DS-C64/<contents of file>
*enhancement: show mouse button mappings on touchpad
**Added "ChgRootDirectory" resource to change root of file selection dialog.
*optimization: optimized keyboard handling (e.g. c-stick mapping & file dialogs)
**Added "AutostartImage" resource to specify exact location of autostart image.
*optimization: remove RS232 stuff from vice menu (wasn't working anyway)
**At startup, all files in romfs:/autocopy will be copied to default dir without overwriting existing files.
*optimization: revamp build system, no more buildtools necessary
**Custom help texts for keys (configurable in in menu "Help").
 
*Some other small enhancements, optimizations and bug fixes.
 
v1.4 Cereal


*enhancement: speed up directory loading times in file selection dialogs
'''v2.0 Screw Driver'''
*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: vice menu moved from top to bottom screen, emulation does not pause anymore while menu is open.
*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: vice menu now useable with stylus.
*enhancement: added option to save key mappings and hotkeys in snapshots
*Enhancement: customizeable C64 keyboard command shortcuts.
*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: show hint about how to exit edit sbuttons mode.
*enhancement: cleaned up "Settings management" menu, hotkeys are now saved with other settings in file sdl-vicerc.
*Enhancement: "power off bottom screen" is now a toggle button.
*enhancement: added menu entry/icon for no borders & fullscreen. No more magnifying glasses needed when playing.
*Enhancement: file sorting now case insensitive.
*enhancement: added video size menu (fullscreen with multiple stretch options, etc.)
*Enhancement: vice3DS checks for autostart.*-files in romfs:/ and vice directory and autostarts at startup.
*enhancement: added video border mode menu
*Enhancement: autofire can now be configured in the joystick keysets.
*enhancement: new icon (yay!)
*Enhancement: support of zip files for autostart.
*enhancement: status bar now on bottom of emulator screen (like standard SDL-Vice)
*Enhancement: configurable key combos.
*optimization: moved button to create hotkey mapping from ZL-button to L-button
*Optimization: cancel-key moves one directory up in file dialog.
*lots of other small enhancements and bug fixes
*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.3 Pancake
'''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.


*enhancement: button to show/hide the keyboard, more soft buttons below keyboard
'''v1.5 Cappuccino'''
*enhancement: pixel perfect screen representation (required change in libSDL, thanks to @Vague Rant)
*Spin-off: Exerimental C128-emulator (.3dsx only). It runs ok, but VDC-mode is painfully slow.
*enhancement: paint color keys on keyboard with palette colors
*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 help menu
*Enhancement: added sampler settings menu & other devices for joyports.
*enhancement: remember current directory for file dialogs across restarts
*Enhancement: add 'advance frame' menu entry to vice menu.
*enhancement: standard soft button icons are copied to SD-card at startup, they can now be modified/amended by the user
*Enhancement: show mouse button mappings on touchpad.
*enhancement: added some more helper menu entries in menu "Misc"
*Optimization: optimized keyboard handling (e.g. c-stick mapping & file dialogs).
*enhancement: added some soft button icons
*Optimization: remove RS232 stuff from vice menu (wasn't working anyway).
*bugfix: no more freeze when exiting via home or power button
*Optimization: revamp build system, no more buildtools necessary.
*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
'''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.


*fix random lock-ups (was actually a bug in libSDL)
'''v1.3 Pancake'''
*fix for "not possible to select external palette files"
*Enhancement: button to show/hide the keyboard, more soft buttons below keyboard.
*fix for "crackling sound when using keyboard"
*Enhancement: pixel perfect screen representation (required change in libSDL, thanks to @Vague Rant).
*fix for "not possible to change back to stock rom from another rom"
*Enhancement: paint color keys on keyboard with palette colors.
*fix for "menu entry 'Restore default settings' messes up screen"
*Enhancement: added help menu.
*added menu entry/icon 'Misc/Power off bottom screen backlight'
*Enhancement: remember current directory for file dialogs across restarts.
*added two icons for sprite collision menu entries
*Enhancement: standard soft button icons are copied to SD-card at startup, they can now be modified/amended by the user.
*added menu entry to restore all default settings (incl. hotkeys etc)
*Enhancement: added some more helper menu entries in menu "Misc".
*quicksave/-load now always saves to/loads from /3ds/vice3ds
*Enhancement: added some soft button icons.
*added "RUN" to LOAD"*",8,1 menu entry
*Bugfix: no more freeze when exiting via home or power button.
*Added F2/F4/F6/F8 keys to keyboard for easy access
*Bugfix: roms added for all C64 machine types.
*Added pause icon / ability to pause via soft button
*Bugfix: re-center display after machine type change.
*Nice new banner / startup logo
*Optimization: stripped some unnecessary code (vkbd, hvsc).
*other minor bugfixes and optimizations


v1.1 Breakfast Toast
'''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.
*Customizeable soft buttons on bottom screen.
*Changed standard assignment of autofire buttons: Joy1=R, Joy2=ZR
*Changed standard assignment of autofire buttons: Joy1=R, Joy2=ZR.
*True drive emulation now turned off by default
*True drive emulation now turned off by default.
*Emu-speed adjustable with 3d slider (0=100%, max=Warp)
*Emu-speed adjustable with 3d slider (0=100%, max=Warp).
*Added menu 'Misc' with some helpers: RUN/STOP + RESTORE; LOAD"*",8,1
*Added menu 'Misc' with some helpers: RUN/STOP + RESTORE; LOAD"*",8,1.
*Bugfix for loading external ROMs and other sysfiles
*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")
'''v1.0.1 Sunshine'''
*New keyboard layout
*Clearer keyboard.
*Bugfixes
*Bugfix for "Vice menu sometimes does not update screen when navigating".
*Bugfix for autofire.


v0.9 beta
'''v1.0 Morning Glory'''
*Autofire support (configurable in VICE menu under "Machine settings" -> "Joystick settings").
*New keyboard layout.
*Bugfixes.


*Bugfixes
'''v0.9 beta'''
*CIA/3DS build
*Bugfixes.
*CIA/3DS build.


v0.4
'''v0.4'''
 
*Larger keyboard / keys.
*Larger keyboard / keys
*Configuration files in romfs - will be copied to SD card if not existing there.
*Configuration files in romfs - will be copied to SD card if not existing there.
*Key names showing correctly now in vice menu
*Key names showing correctly now in vice menu.
*vice3DS now exits gracefully when pressing the menu button
*vice3DS now exits gracefully when pressing the menu button.
*Show drive status in notification LED (settings in "Drive" menu)
*Show drive status in notification LED (settings in "Drive" menu).
*v0.3 was accidentally a debug build, so v0.4 is faster
*v0.3 was accidentally a debug build, so v0.4 is faster.
 
v0.3
 
*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
 
v0.2
 
*On screen keyboard on bottom screen
 
v0.1 Dawn of Vice3DS
 
== Compiling ==
 
You need devkitARM (provided by devkitPro) and the following packages: 3ds-zlib, 3ds-curl, 3ds-libpng, 3ds-bzip2 and - optionally - graphicsmagick. Without graphicsmagick, no version numbers will be included in the icon and bottom screen images.
 
Install these packages with pacman / dkp-pacman:
 
'''Windows:'''
 
pacman -S 3ds-zlib 3ds-curl 3ds-libpng 3ds-bzip2 optional:
 
pacman -S graphicsmagick '''Linux:'''
 
[sudo] pacman -S 3ds-zlib 3ds-curl 3ds-libpng 3ds-bzip2 optional:
 
[sudo] apt-get install graphicsmagick
 
Actually, a modified version of 3ds-curl is required for game downloads to work with the gamebase64 launcher. The 3ds-curl version provided by devkitPro is buggy and [https://github.com/fincs @fincs] does not want to fix it. Please see https://github.com/devkitPro/pacman-packages/issues/130 for details. Providing instructions for compiling this modified 3ds-curl version, however, would go beyond the scope of this README.
 
Apart from this, bannertool (https://github.com/Steveice10/bannertool/releases) and makerom (https://github.com/profi200/Project_CTR/releases) should be available in your path.
 
Clone the repository (including symlinks) and change into the directory:


git clone -c core.symlinks=true https://github.com/badda71/vice3ds cd vice3ds If you received any error messages regarding symlinks during cloning, execute copylinks.sh to correct the symlinks
'''v0.3'''
*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.


chmod +x copylinks.sh ./copylinks.sh Finally, start the compile with the command
'''v0.2'''
*On screen keyboard on bottom screen.


make
'''v0.1 '''
*Dawn of Vice3DS.


==Thanks to:==
==Credits==
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.
*www.gamebase64.com 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.


*The Vice-Team of course
==External link==
*@Elwyndas for the good ideas on how to make this project better, for the great test support and for sending me the O3DS so I can test there, too!
* GitHub - https://github.com/badda71/vice3ds
*www.gamebase64.com for providing the C64 games library and an easy way to integrate
* GBAtemp - https://gbatemp.net/threads/release-vice3ds-c64-emulator.534830
*@nop90 for the 3DS libSDL port - porting VICE to 3DS would not have been possible without it (even though I 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

Latest revision as of 06:01, 6 Mayıs 2024

Vice
Vice3dsc642.png
General
AuthorBadda
TypeComputer
Version2.4.2
LicenseMixed
Last Updated2023/02/12
Links
Download
Website
Source

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.

Installation

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.
  • Hit RUN/STOP - RESTORE.
  • 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.

Controls

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)

Screenshots

vice3dsc643.png vice3dsc646.png

vice3dsc644.png vice3dsc645.png

Media

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

Compatibility

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.

Changelog

v2.4.2

  • Enhancement: use new hoster for games download in gamebase64 launcher.

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 8bitfiles.net, 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.

v0.4

  • 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.

v0.3

  • 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.

v0.2

  • On screen keyboard on bottom screen.

v0.1

  • Dawn of Vice3DS.

Credits

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.
  • www.gamebase64.com 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

Advertising: