Homebrew [Release] Vice3DS (C64 Emulator)

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,400
Country
Tokelau
If you keep in mind that it's an old system, sure. I preferred the 16-bit Amiga, but the C64 had its moments.
For gaming, the Amiga was definitely better. Having an emulator on 3DS would be great, but alas UAE only compiles with GTK libraries which are not available for 3DS.

--------------------- MERGED ---------------------------

Is there a way to remove a .crt once it's been added?
Vice menu: Cartridge -> Detach cartrige image

--------------------- MERGED ---------------------------

Is there any chance to implement a mouse emulation? C-Stick maybe?
on the way in the next version. One challenge is how to emulate a two-button mouse on the 3DS touchscreen. In windows, right mouse button click needs a double finger tap on the touchpad - but the 3DS does not support multi touch ... any ideas?

--------------------- MERGED ---------------------------

I'd humbly suggest a VIC-20 emulator, but that system was quickly overshadowed by the C64 and I can't reasonably expect anyone to support it. I'll have to see if the Raspberry Pi or my Vita could do this.
First order of business would be a C128 emulator. If this turns out to be easy, VIC-20 should not be too hard ...

--------------------- MERGED ---------------------------

As for Vice3DS, I was wondering if a mapping feature would be possible to allow for mapping a button to keys eg space bar?

on the way in the next version - with this, you don't need to edit any config files anymore.

--------------------- MERGED ---------------------------

There is one thing missing though to create the perfect experience :)
I had brought this up before. On a real C64, the processes don't pause when you insert a disk in the drive.
In all emulators I'm aware of, the emulation pauses so a settings menu pops up on the screen so you can insert a new disk image. Especially in demos you can feel the disruption. You have already done away with most screen interruptions by including soft keys, which change settings on the fly (like flipping the joysticks) which in other ports require a cumbersome entering of the settings menu and the subsequent interruption of the emulation flow.
So I suggest to have an option available where the settings menu loads into the lower screen, rather than the top screen, and keep the emulation running while you switch disks or whatever. Of course any settings change that requires a reset of the C64 will then do so after hitting B.
There is really no need to have the lower screen soft buttons available, or the virtual keyboard, while you are browsing through the emulator settings.
I did some digging into the vice code and this is a rather challenging request. Bringing the vice menu to the bottom screen is not hard - but to keep the emulation running requires a complete revamp of the menu logic. The menu has its very own event loop - as well as file dialogs and key press prompts. All of these three separate event loops need to be integrated into the main event loop which would mean a shitload of work. Sorry about this ...
 

thealgorithm

Well-Known Member
Member
Joined
Oct 27, 2015
Messages
393
Trophies
0
Age
48
XP
786
Country
Very nice. It seems to run ok for most c64 titles on the new 3ds

Would it be possible to implement resid emulation instead of fastsid. There are a few demos using some sample playback techniques that sound distorted without it. Example is this c64 demo here
 

spinal_cord

Knows his stuff
Member
Joined
Jul 21, 2007
Messages
3,225
Trophies
1
Age
43
Location
somewhere
Website
spinalcode.co.uk
XP
3,371
Country
on the way in the next version. One challenge is how to emulate a two-button mouse on the 3DS touchscreen. In windows, right mouse button click needs a double finger tap on the touchpad - but the 3DS does not support multi touch ... any ideas?

How about only use the touch screen for movement and use L1 and L2 for clicks?
 
  • Like
Reactions: Badda and Elwyndas

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
United States
I did some digging into the vice code and this is a rather challenging request. Bringing the vice menu to the bottom screen is not hard - but to keep the emulation running requires a complete revamp of the menu logic. The menu has its very own event loop - as well as file dialogs and key press prompts. All of these three separate event loops need to be integrated into the main event loop which would mean a shitload of work. Sorry about this ...
That doesn't surprise me. The two-screen technology is unique. Of course the project is not designed to accommodate this. At least we know what's going on. Thanks for finding out. So interesting. I understand that the best we can achieve without a lengthy effort is to put the settings screen on the bottom screen, while the top screen with the emulation pauses? It's not a real achievement but a "proof of concept" of sorts. Perhaps it will compel somebody to do the work. It will be "in the face" that there should be an emulation flow that doesn't get interrupted by launching the menu or whatever. I find it funny that people are getting into extreme detail about perfecting the emulation, while the actual experience of simulating the uninterrupted reality of a C64 machine with monitor and floppy is still lacking very much. Only the 3DS will be able to deliver the ultimate experience eventually. Other ports will follow by simulating the bottom screen of the 3DS. Wanna bet? :)
The bottom screen we already have with virtual keyboard and soft buttons, plus the 3 hardware joysticks and multiple buttons, makes all other ports pale, especially the mobile ones.
 
Last edited by Elwyndas,

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
United States
For some reason, the Vice 3DS takes a very long time to display the contents of folders when the number of files is fairly large. This needs to be addressed. Of course you can always create sub-folders, but that's not an ideal solution - it's a workaround. For example, I have a complete collection of all cracks done by the genius Remember group. Having to wait for a minute or two every time I want to check out another piece of their work is kind of ruining the fun, especially because I don't really see a good reason for the delay. The emulator appears to investigate and analyze every file in the folder. This is not necessary in my book. Just show the files.
 

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,400
Country
Tokelau
For some reason, the Vice 3DS takes a very long time to display the contents of folders when the number of files is fairly large. This needs to be addressed. Of course you can always create sub-folders, but that's not an ideal solution - it's a workaround. For example, I have a complete collection of all cracks done by the genius Remember group. Having to wait for a minute or two every time I want to check out another piece of their work is kind of ruining the fun, especially because I don't really see a good reason for the delay. The emulator appears to investigate and analyze every file in the folder. This is not necessary in my book. Just show the files.
That was an easy one
However, now I‘m facing crashes during shutdown again. As soon as they’re fixed, I will release again ...
 
  • Like
Reactions: Alfonx and Elwyndas

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,400
Country
Tokelau
New version v1.4 is out. Here are the changes:
  • 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
Important: As always - if you're updating from a previous version, make sure to delete the config directory on your SD-card /3ds/vice3ds/config before first starting the emulator. Otherwise new config settings, hotkeys and key mappings will not be updated and will not work. More specifically, I updated sdl-vicerc.

https://github.com/badda71/vice3ds/releases

Have Fun! :yay3ds:
 
Last edited by Badda,

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,400
Country
Tokelau
Wow wow wow. You are already a titan and now approaching god mode!
Haha ... thanks for the exaggeration.
I'm looking forward to any bug reports though :-)
I believe the emulator is now close to feature completeness. No major things to do on the ToDo list.
If anything is still open, speak up now or remain silent forever :P
 
Last edited by Badda,

Asaki

Well-Known Member
Newcomer
Joined
Mar 17, 2007
Messages
55
Trophies
1
XP
438
Country
United States
Nice job, awesome to see people still interested in 3DS homebrew.

I'm having trouble getting the CIA to install, though. I install it through FBI, and it says it installed okay, but then the present just never shows up.
 

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
United States
If anybody is wondering if two player simultaneous play is possible, the answer is YES!
Very simple solution #1:
I got this to work using an XBox One controller via bluetooth on Windows 10. You need to run the Input Redirection Client QT software on Windows, have any windows controller connected (can also be a vintage joystick as long as it's connected to Windows), and enable Input Redirection in the Luma 3DS menu.
Windows software:
https://github.com/TuxSH/InputRedirectionClient-Qt/releases
N00b instructions:

I tested it with Bubble Bobble - works like a charm! Both joystick inputs work, and with the joystick soft button you can switch which port is controlled by the external controller. The shoulder buttons on the XBox controller immediately work for auto-fire too!

More complicated solution #2 with screen duplication on Windows:
For an unknown reason, Vice 3DS crashes (ARM 11 exception) when I try to launch it while I have NTR Boot running.
I was trying to duplicate the screen, since it's awkward to stare at the tiny screen with two players, especially if you don't have an IPS top screen, UWP Streamer should do the job, but perhaps it only works with native 3DS games? For input redirection the native Luma 3DS solution above works while UWP Streamer is running, so the instructions for NTR Input Redirection below can be ignored (I think.)
https://github.com/toolboc/UWPStreamer#instructions-for-video-streaming
I can send the crash dump if you want.

EDIT: The cause is Luma3DS. The newest version 10.0.1 doesn't work well with NTRBoot. If you roll back to Luma3DS 9.1 it doesn't crash anymore, but there is a black screen on Windows. Same happens with other streaming apps like Snickerstream or Twix.
 
Last edited by Elwyndas,

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
United States
Today I was testing out the various options under speed settings, and I noticed something peculiar: When I set the refresh rate to 1/1, meaning original rate, both the video and the sound emulation is messed up. When I choose automatic or 1/2, it works "ok". Automatic and 1/2 feel like the same. It makes me wonder if the emulation is skipping frames by default, and not 100% original FPS. Could that be? I have noticed some very light jumpy behavior before, but wasn't sure if that's normal on original hardware. There used to be an option to display FPS on the screen, but it seems to be gone.
 

arquillos

Well-Known Member
Newcomer
Joined
Aug 28, 2012
Messages
81
Trophies
1
XP
1,218
Country
I think you're right, everything looks okay now.

Now I just need to find some decent games! Seems like all of the most popular games are just ports from Atari 8-bit or ZX Spectrum.

On My! Sacrilege! :) ... you should take seriously the incredible C64 game library :)
 

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
United States
Now I just need to find some decent games! Seems like all of the most popular games are just ports from Atari 8-bit or ZX Spectrum.

Almost every commercially successful game has always been ported on all competing platforms, back in the days or today, with the exception of Nintendo titles, which is why the vast majority of great NES, SNES, Gameboy etc titles have been alien to the Commodore world. Some ports on the Commodore 64 are inferior to other platforms, for example R-Type. I was shocked when I played it on Turbografx for the first time, to find out how much better it is. Many other C64 versions are superior, for example Boulderdash.

On the Commodore 64 you also have tons of quality cracks available, with trainers, highscore savers, and even bug fixes. This is something the other platforms don't fancy. There are retro groups that crack and improve those old games even today.
A good start to check out high quality cracks of old games are all the releases of
Remember:
https://csdb.dk/group/?id=248
Nostalgia:
https://csdb.dk/group/?id=146
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: b