[Release] Vice3DS (C64 Emulator)

Discussion in '3DS - Homebrew Development and Emulators' started by Badda, Mar 31, 2019.

  1. Badda
    OP

    Badda GBAtemp Regular

    Member
    3
    Feb 26, 2016
    Tokelau
    Nirvana
    jup, thats possible :-)
    osGet3DSliderState(void)
     
    Elwyndas likes this.
  2. Muxi

    Muxi GBAtemp Fan

    Member
    5
    Jun 1, 2016
    Germany
    Your emulator (v1.0) is running on my O3DS .... crazy (I´m playing "Katakis" atm:))

    Edit:
    The only problem I've noticed so far: The option menu screen often does not update when navigating (Just as it is the case on the N3DS).
     
    Last edited by Muxi, Apr 19, 2019
    Badda likes this.
  3. sj33

    sj33 GBAtemp Psycho!

    Member
    12
    Oct 22, 2013
    Japan
    Great job! I dug out my New 3DS just for this. Keyboard on the second screen is something that the Switch cannot do.
     
  4. Badda
    OP

    Badda GBAtemp Regular

    Member
    3
    Feb 26, 2016
    Tokelau
    Nirvana
    Wow, cool. R u experiencing any lags? The fact that the issue with screen updates in vice menu is worse on O3DS might help me track down the root cause ...
     
  5. Elwyndas

    Elwyndas Advanced Member

    Newcomer
    2
    Dec 19, 2018
    United States
    I borrowed my daughter's Old 3DS to test this. While O3DS is running the emulator and loading games, there are a ton of frame skips. I don't have the time for it to see how it can be optimized, but at this point it seems pointless. I launched some games and demos, and it's pretty bad. It doesn't crash though.

    Anyway what's more interesting is, I tested the problem with the settings menu screen not updating all the time. The Old (!) 3DS does a much better job! I took this video showing both O3DS and N3DS.

    Then I went ahead and turned my N3DS into an old 3DS by launching Rosalina's New 3DS settings. Same result!

    I hope this helps locating the bug.

     
    Badda and Muxi like this.
  6. Elwyndas

    Elwyndas Advanced Member

    Newcomer
    2
    Dec 19, 2018
    United States
    I have been thinking about four direction controls, or joystick emulation (also cursors).

    Basically there are five ways to achieve this on the N3DS or N2DS, theoretically.
    1. Circle Pad
    2. Control Pad (D-Pad)
    3. C-Pad
    4. ABXY Buttons
    5. The touch screen
    6. The virtual keyboard (honorary mention)
    4) and 5) are a little odd.

    The ABXY Buttons can be used as a direction control. The thumb can press two buttons together to create a diagonal impression.

    The touch screen has been used in countless games on the DS, and in a select few on the 3DS, to provide directional control. On the C64 emulator, with the virtual keyboard turned off, you would point your stylus or finger anywhere on the lower screen, and as soon as you move it, Vice 3DS would recognize it as joystick (or cursor) movement. Some people will want to use their right hand for this, others their left hand. This means the fire button needs to be put on one of the action buttons opposing the hand controlling the joystick directions. This might be counter intuitive for some because it means the two directional pads on the left side would be turned into fire buttons. This is also important for left handed people.

    I envision a setup where it's easy to assign any job to any of the keys (or touch screen) to emulate joystick (or cursor) control. The current settings still live in the world of old school VICE emulation - a Windows computer with a physical keyboard and maybe one or two controllers.

    Vice 3DS is better, and different. It has 5 controllers built in. No others can be added though. The keyboard is virtual, but always on, on a separate screen. There is also no realistic way to have two players using two joysticks at the same time. Maybe down the road with network play.

    The four shoulder buttons provide additional opportunities for customization. Again, the action or fire button should always be on the side opposing the directional pads.

    In terms of switching between joy port 1 and 2, it doesn't make real sense to have joy 1 assigned to the d-pad and joy 2 assigned to the circle pad, or vice versa. Why? Because you cannot use the 3DS with two people anyway. What you really want is the ability to assign the directional control, and action control (fire button) to any of the keys or key pads present, and switch around as you like it. Including crazy choices like touch pad for direction and shoulder L for fire. Or shoulder R.

    For Boulder Dash you will want to use the D-Pad for accuracy, but for R-Type you will want the circle pad or touch screen for fine control. You might prefer your left hand or right hand for this. Your call.

    Sorry for the rambling post, I'm just pouring out all of my ideas.
     
    Last edited by Elwyndas, Apr 20, 2019
  7. fatHusky

    fatHusky Advanced Member

    Newcomer
    2
    Apr 18, 2019
    Canada
    any plans for switch?
     
  8. 3dsgametime

    3dsgametime Member

    Newcomer
    1
    Aug 7, 2015
    Canada
    Toronto
    This is amazing news! Can't wait to try it out. C64 was one of my favorite systems. And this is just in time to try the Super Mario Bros. Port that was just released for the c64 :) Going to be fun playing the c64 port of the game, on my 3DS, running a c64 emulator!

    The dual screen is the best fit for a c64 emulator, and probably most computers that needed keyboard input. The bottom screen can have the keyboard on all the time and the top screen just for the game.
     
    Elwyndas likes this.
  9. Elwyndas

    Elwyndas Advanced Member

    Newcomer
    2
    Dec 19, 2018
    United States
    Vice is already part of Retroarch on the Switch, AFAIK. Vice3DS is a different beast because of the second screen.
     
  10. fatHusky

    fatHusky Advanced Member

    Newcomer
    2
    Apr 18, 2019
    Canada
    okay thank you
     
  11. Muxi

    Muxi GBAtemp Fan

    Member
    5
    Jun 1, 2016
    Germany
    Despite these deficits, Vice3DS is still usable on an O3DS! (Of course not optimal, but at least - The games I tested so far all ran satisfactorily)


    It can not be said that this emulator would not run on an O3DS (only with certain restrictions)!
     
    Last edited by Muxi, Apr 20, 2019
  12. ArugulaZ

    ArugulaZ GBAtemp Advanced Fan

    Member
    5
    Sep 17, 2009
    United States
    Menus are frustratingly slow in the CIA version. Anything I can do to improve that? Also, is there a fast load for discs, because man, that load time is murder.
     
  13. Muxi

    Muxi GBAtemp Fan

    Member
    5
    Jun 1, 2016
    Germany
    You can disable True Drive Emulation in the Drive Settings, then the emulator loads faster. But not all games are compatible with this setting.
     
  14. TheTechWiz25

    TheTechWiz25 GBAtemp's Personal Computer Wiz

    Member
    3
    Jan 27, 2017
    United States
    Now we have yet another computer to add to the collection of what can run on the Nintendo 3DS. Never used a C64 before but you did a very good job. I know how hard it must be to port an entire like OS or OS's emulator to another platform.
     
  15. Elwyndas

    Elwyndas Advanced Member

    Newcomer
    2
    Dec 19, 2018
    United States
    I'm trying to load JiffyDOS but it resets to the standard kernal. Is it not implemented yet?

    Also, I loaded GEOS, but couldn't get the mouse to work.

    I was excited to find out that the emulation of up to 3 additional SID sound chips works perfectly. I tested it with Samar Productions "New Horizons" compilation, which utilizes 3 SIDs.
    I recommend to connect the audio jack to real speakers and set audio to 48khz. The quality of the audio is really good, including the bass.

    True Drive Emulation turned OFF leads to a device not present error. I think this is new in version 1.0.
     
    Last edited by Elwyndas, Apr 23, 2019
  16. Badda
    OP

    Badda GBAtemp Regular

    Member
    3
    Feb 26, 2016
    Tokelau
    Nirvana
    Bugfix release v1.0.1 is out
    • Finally got rid of that annoying "Vice menu sometimes does not update screen when navigating" - bug
    • clearer keyboard
    • bugfix for autofire
    Have fun!
     
    Muxi, arquillos and Elwyndas like this.
  17. Badda
    OP

    Badda GBAtemp Regular

    Member
    3
    Feb 26, 2016
    Tokelau
    Nirvana
    How do you load JiffyDOS - Is this an expansion card? I cannot find a menu entry for that ...

    Yes, mouse support is a bit difficult - there is no USB-port on the 3DS ;-)
    But seriously - how would you expect a mouse to work on a 3DS?

    I actually never changed anything wrt this part of the code. I think it never really worked. Maybe I should hide that switch completely ...
     
  18. Elwyndas

    Elwyndas Advanced Member

    Newcomer
    2
    Dec 19, 2018
    United States
    JiffyDOS: It's just a popular physical ROM replacement that greatly improved floppy speed back in the days (10x), with practically 100% compatibility (definitely better than true drive emulation off). In your software you can select it by going to Machine Settings, then ROM settings, and replace Drive ROM and Kernal with the JiffyDOS Roms (those images can be easily found on the internets). I know this works in WinVICE. IMO this is better than turning off true drive emulation. Good speed, still the original feeling :)

    GEOS/mouse: GEOS allowed joysticks, or a CBM mouse to be used in the joystick port. I think that's what VICE is emulating. Since there is no real mouse on the 3DS I would assign the c-stick perhaps. Not a pressing issue LOL

    True Drive emulation on/off is a staple of VICE, to improve speed of loading from disk without ROM replacements like JiffyDOS, or warping all the time. I wouldn't want it to be removed :)

    Danke!
     
    Last edited by Elwyndas, Apr 24, 2019
  19. Vague Rant

    Vague Rant Deceptively cute

    Member
    5
    Aug 7, 2008
    Melbourne
    Is it possible to adjust the screen scaling at all? I understand that 400*240 just isn't enough for the full resolution of the C64 (from some Googling, it looks like 384*272 was the maximal res of the C64, including borders), but it's pretty close and things just look faintly blurry to me in this emulator. It looks like it's almost 1:1 but not quite, with some sort of linear filter or something over everything.
     
  20. Badda
    OP

    Badda GBAtemp Regular

    Member
    3
    Feb 26, 2016
    Tokelau
    Nirvana
    The emulator is set so that one C64 pixel is exactly one pixel on the 3DS screen (it clips some parts of the upper and lower border).
    Set Video Settings -> Render Filter to "none", then it should be clearer. You can also try to set another palette with Video options -> VICII colors -> External Palette and then choose a good palette under "Available palette files". Maybe that helps with a better visibility as well ...
     
Loading...