Homebrew [Release] Vice3DS (C64 Emulator)

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,407
Country
Tokelau
Good work! I have found a bug that leads to crashes (freezing) of vice3DS v2 RC1. If the "Edit bottom screen button positions" option is to be deactivated again, vice3DS always hangs up.
Yes, I'm able to reproduce - alas only on hardware, not in citra, so debugging will be a pain again :cry:
 
  • Like
Reactions: Muxi

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
681
Country
United States
It's so cool to be able to mess with the settings on the "living patient" and see the effect of changes right away. This encourages testing.

I noticed a reduction in performance with the new release, especially with ReSID active.
I'm testing performance in two different ways. One is to activate WARP mode, and then mess around with different settings to see how the percentage changes. With default settings but FastSID instead of ReSID, I get to 654%. With ReSID it goes down to 520%. True Drive active brings it to 363%
When you run a crazy demo and set refresh rate to 1:1, the performance goes down significantly, like 40% with 30 FPS and audio distortions. This was not the case in the last release.
I use Edge of Disgrace to test. The performance drops come in the first half of the demo, for example when the fist appears.
https://csdb.dk/release/?id=72550
I hope there are ways to improve performance again.

Besides this:
- It would be nice to be able to turn of the bottom screen now with a one-click method at any time. Settings menu on or not. Perhaps assigning the left shoulder for this. Then you can turn it on-off with a click, instead of assessing the touch screen.
- The sorting of files takes the capital letters first, then the lower case. This is really old fashioned :) I think it's better to go strictly by alphabet.
- Statusbar settings should not be under settings management. Perhaps under Misc.
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
@Badda I love what you have done with Vice64. Your work is amazing. I notice that ever since you updated the sound a few versions ago that my performance (using a 2DS XL) has fallen off of a cliff. In the latest release, for example, Ghostbusters runs smoothly for a few seconds, then stutters to a halt, then runs smoothly again. If I go back a few versions, the game ran perfectly smoothly all the time. Any idea what settings I might need to adjust to improve performance?
 

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,407
Country
Tokelau
@Badda I love what you have done with Vice64. Your work is amazing. I notice that ever since you updated the sound a few versions ago that my performance (using a 2DS XL) has fallen off of a cliff. In the latest release, for example, Ghostbusters runs smoothly for a few seconds, then stutters to a halt, then runs smoothly again. If I go back a few versions, the game ran perfectly smoothly all the time. Any idea what settings I might need to adjust to improve performance?
Do the following: in vice menu, go to "Machine settings" -> "Model settings" -> "SID settings" -> "SID model" and choose "8580 (Fast SID)". This will fix any sound related performance issues. Your 2DS XL is an old 3DS, right? I need to check the routine to detect the hardware. Normally, Fast SID should be the default on any old Hardware (2DS and 3DS), reSID the default new Hardware. However, I don't have any 2DS hardware to test with ...
 

MarioKartFan

Well-Known Member
Member
Joined
Aug 27, 2019
Messages
596
Trophies
0
XP
2,319
Country
Algeria
Do the following: in vice menu, go to "Machine settings" -> "Model settings" -> "SID settings" -> "SID model" and choose "8580 (Fast SID)". This will fix any sound related performance issues. Your 2DS XL is an old 3DS, right? I need to check the routine to detect the hardware. Normally, Fast SID should be the default on any old Hardware (2DS and 3DS), reSID the default new Hardware. However, I don't have any 2DS hardware to test with ...
Thanks, Badda. The 2DS XL has the same processor etc. as the New 3DS. Only difference is no 3D effects. I will try your suggested changes and let you know. I appreciate it.
 

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,407
Country
Tokelau
Here comes Version 2 release candidate 2 ...
All your comments should have been adressed:
  • enhancement: show hint about how to exit edit sbuttons mode (thanks @Muxi)
  • enhancement: "power off bottom screen" is now a toggle button. Now this menu item can easily be mapped to a button which will toggle the bottom screen power (thanks @Elwyndas)
  • enhancement: file sorting now case insensitive in file dialogs
  • optimization: move statusbar menu entry back to original vice location (main menu) (both thanks @Elwyndas)
  • multiple bugfixes in file selection dialog, screen update routine (thanks @Muxi)
@Elwyndas - I have not been able to reproduce the performance drop, maybe the bugfix to the screen update routine fixed this?

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

Have fun and again ... happy testing. Hope we can find and squash some more hidden bugs :D
 

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
681
Country
United States
It looks all very good. Thank you.
The performance drop only seems to happen when there is C64 action on the screen, with or without sound, while the drive is active (in true drive mode), in some particularly demanding sections of some demos, where they are loading from the disc while the demo is continuing to run. You will not notice this with regular games.
To replicate this issue, load the Edge of Disgrace demo on an actual N3DS, and only make two changes to the default settings, which is True Drive on, and Refresh Rate to 1/1 (under speed settings). You will notice that the performance drops significantly, down to as little as 60%, as soon as there is some crazy graphics action going on while the demo loads new code from the disc. To notice this it's best to also activate the drive LED so you can tell when the drive is running. Or just watch the status bar. Without status bar you can also tell because the sound gets distorted. If you set the refresh rate to automatic, it will skip frames, and the sound will be smooth. But you can tell that it's skipping a ton of frames. So this is not really satisfying.
I'm concluding that the True Drive emulation is demanding too much processing power, and it's stealing it from the actual C64 action, which wouldn't have a problem without the drive being active in true drive mode.
Of course it could also be that there is just something wrong with either 1/1 refresh rate or True Drive emulation, that just doesn't work well with each other. Or something is messing with the access to the SD card.
Hopefully something can be done about it. We are very close to a perfect product I think :)
 
Last edited by Elwyndas,

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
681
Country
United States
Some other small issues:
  • I noticed that under default settings, the Warp mode only goes to 420% (353% with True Drive on). I know for sure this was much higher in earlier releases. The goal should be that Warp speeds it up to 1000% or more, if possible, because that will make it compete with speed loading ROMs like JiffyDOS. Otherwise you will be better off with loading that kernel.
  • Editing or re-assigning the hardware or soft buttons is weird. For example I don't know how to assign the top left shoulder button to switch the bottom screen off/on. What are the steps? Once I understand this I can give some feedback on usability.
    EDIT: Go to Misc, and under Key mappings, select Add key mapping, press the hardware button you want to assign a function to (like left shoulder), and then select one of the soft buttons visible. The process is not very comprehensive.
  • Autostart Image: Unless you are starting a tape or cartridge, this feature is not actually autostarting an image. If you select a D64 file (a disc image), you need to select a particular file on that image. If loading a D64 file, it would be preferrable that this feature just runs the LOAD"*",8,1:RUN routine, which will load and execute the first executable file on the disc. I would briefly display the directory, and then do the reset and running the commands. This of course leads to the demand of an "autostart file" feature, which is basically the current autostart image feature but just for disc images.
 
Last edited by Elwyndas,

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,407
Country
Tokelau
Some other small issues:
  • Editing or re-assigning the hardware or soft buttons is weird. For example I don't know how to assign the top left shoulder button to switch the bottom screen off/on. What are the steps? Once I understand this I can give some feedback on usability.
    EDIT: Go to Misc, and under Key mappings, select Add key mapping, press the hardware button you want to assign a function to (like left shoulder), and then select one of the soft buttons visible. The process is not very comprehensive.
Maybe I can elaborate a bit on how vice3DS handles input:
To Vice3DS every input is a "key" (3ds buttons, soft buttons, soft keyboard buttons, even d/c-pad directions).
The action to be taken when a key is pressed (this is called an "event"), depends on the configuration:
  1. Is the event-key mapped to another key (in Misc-> Key mappings) ? If yes, change the key in the event to the mapped key and continue with 2.
  2. Is the event-key part of a joystick keyset configured for a joystick port, an autofire key or mapped to a mouse button (in Misc -> Key mappings)? If yes, do the appropriate action on the emulated joystick port
  3. Is the event-key a hotkey (as configured in Misc -> Hokeys)? If yes, execute the appropriate menu entry for this hotkey.
  4. Is the event-key a key on the soft keyboard? If yes, forward the keypress to the emulated C64.
So, to solve your problem of assigning the L-button to switch the bottom screen off and on, you would simply need to to map a hotkey:
  1. Open vice menu, go to menu "Misc" and move the cursor to menu entry "Power off bottom screen backlight"
  2. Push the "Map Hotkey"-Button (normally this is the R-button - if not configured otherwise in sdl-vicerc)
  3. Push the L-button to define the Hotkey mapping.
Now, the menu entry "Power off bottom screen backlight" is executed whenever you push your new hotkey L-button.
Your original solution is to map the L-button to a soft button (via Key mappings) which - in turn - is a hotkey for the backlight menu entry. This works, but is not straightforward. Apart from this, if you ever choose to change the function for the mentioned soft button, you would change the function of your L-button as well ...

Hope, I could clarify things a bit ...
 
Last edited by Badda,

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
681
Country
United States
Maybe I can elaborate a bit on how vice3DS handles input:
To Vice3DS every input is a "key" (3ds buttons, soft buttons, soft keyboard buttons, even d/c-pad directions).
The action to be taken when a key is pressed (this is called an "event"), depends on the configuration:
  1. Is the event-key mapped to another key (in Misc-> Key mappings) ? If yes, change the key in the event to the mapped key and continue with 2.
  2. Is the event-key part of a joystick keyset configured for a joystick port, an autofire key or mapped to a mouse button (in Misc -> Key mappings)? If yes, do the appropriate action on the emulated joystick port
  3. Is the event-key a hotkey (as configured in Misc -> Hokeys)? If yes, execute the appropriate menu entry for this hotkey.
  4. Is the event-key a key on the soft keyboard? If yes, forward the keypress to the emulated C64.
So, to solve your problem of assigning the L-button to switch the bottom screen off and on, you would simply need to to map a hotkey:
  1. Open vice menu, go to menu "Misc" and move the cursor to menu entry "Power off bottom screen backlight"
  2. Push the "Map Hotkey"-Button (normally this is the R-button - if not configured otherwise in sdl-vicerc)
  3. Push the L-button to define the Hotkey mapping.
Now, the menu entry "Power off bottom screen backlight" is executed whenever you push your new hotkey L-button.
Your original solution is to map the L-button to a soft button (via Key mappings) which - in turn - is a hotkey for the backlight menu entry. This works, but is not straightforward. Apart from this, if you ever choose to change the function for the mentioned soft button, you would change the function of your L-button as well ...

Hope, I could clarify things a bit ...

Thanks, I will dive into this later. For now I'm thinking it's necessary to have a "reset to default key mapping" function, which leaves all other settings untouched.
 

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
681
Country
United States
Thanks, and thanks for the awesome work on this emulator port. If you ever fancy doing the same for Mame then I'm sure I'm not the only one who'd be delighted.

Yes, this port is setting the high mark for any emulator project on the 3DS. I doubt that Retroarch will ever really be able to take advantage of the special input hardware we have available, like the bottom touch screen, the many buttons and directional inputs.
The first VICE3DS release was on March 30th - not even 7 months ago - and it was already working well in that initial release. I'm glad we have Retroarch, but with their overly ambitious scope they don't seem to be able to really customize the ports, and the "stable" releases often feel like nothing happened or they just crash. Exception is PSX Rearmed. But that one can be perfected I'm sure if someone like Bada just takes over, LOL. It has to be removed from their one solution fits all GUI. Then we can have perfect stand-alone emulators not only for C64, but for PS1, MAME, other Arcade machines and perhaps projects that were deemed impossible before. I remember people saying PS1 emulation will never work on 3DS, and now we have one that's very close to being excellent, and a C64 emulator that beats everything else out there.
 
Last edited by Elwyndas,

TobyJug

New Member
Newbie
Joined
Oct 29, 2019
Messages
3
Trophies
0
Age
43
XP
52
Country
East Timor
Yes, this port is setting the high mark for any emulator project on the 3DS. I doubt that Retroarch will ever really be able to take advantage of the special input hardware we have available, like the bottom touch screen, the many buttons and directional inputs.
The first VICE3DS release was on March 30th - not even 7 months ago - and it was already working well in that initial release. I'm glad we have Retroarch, but with their overly ambitious scope they don't seem to be able to really customize the ports, and the "stable" releases often feel like nothing happened or they just crash. Exception is PSX Rearmed. But that one can be perfected I'm sure if someone like Bada just takes over, LOL. It has to be removed from their one solution fits all GUI. Then we can have perfect stand-alone emulators not only for C64, but for PS1, MAME, other Arcade machines and perhaps projects that were deemed impossible before. I remember people saying PS1 emulation will never work on 3DS, and now we have one that's very close to being excellent, and a C64 emulator that beats everything else out there.
Such a pity that Nintendo themselves have given up releasing games for the systems, the 2DSXL model is only 2 years old after all.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • BigOnYa @ BigOnYa:
    Did you pay your power bill? Or give all yo money to my wife, again.
  • K3Nv2 @ K3Nv2:
    Oh good the estimated time is the same exact time they just said
    +1
  • BigOnYa @ BigOnYa:
    Load up your pc and monitor, and head to a McDonalds dining room, they have free WiFi
  • K3Nv2 @ K3Nv2:
    Sir please watch your porn in the bathroom
    +2
  • BigOnYa @ BigOnYa:
    No sir we can not sell you anymore apple pies, after what you did with the last one.
  • K3Nv2 @ K3Nv2:
    We ran out
  • HiradeGirl @ HiradeGirl:
    for your life
    +1
  • K3Nv2 @ K3Nv2:
    My life has no value my fat ass is staying right here
  • K3Nv2 @ K3Nv2:
    Nearly 4 hours without power :(
  • Veho @ Veho:
    SO POWERLESS
  • K3Nv2 @ K3Nv2:
    Tell Kanye I need power
  • DinohScene @ DinohScene:
    Better start running in your hamster wheel
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    Meth addicts on a treadmill connected to a generator "Unlimited POWER!!!'
  • Veho @ Veho:
    Before or after a hit?
  • Veho @ Veho:
    Do you dangle a baggie in front of them, like a carrot?
  • The Real Jdbye @ The Real Jdbye:
    they're the same thing
  • The Real Jdbye @ The Real Jdbye:
    i like that idea
  • Veho @ Veho:
    What's the same thing?
  • The Real Jdbye @ The Real Jdbye:
    before or after a hit
  • Veho @ Veho:
    Nah, a hit gives them mad meth powers, but makes them more difficult to control.
  • Veho @ Veho:
    Before a hit they're like zombies, persistent but slow.
  • Veho @ Veho:
    It's a tradeoff.
    Veho @ Veho: It's a tradeoff.