Homebrew [Release] Vice3DS (C64 Emulator)

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,398
Country
Tokelau
Can the 3D slider be re-programmed? Since it serves no purpose on the C64 emulation, we can as well abuse it for something fun, like increasing emulation speed. Off is 100%, and max setting is Warp mode. Like some of my other ideas in the previous post, I like to see the unique hardware to be utilized to the fullest, manipulating the emulation on the fly, without launching any settings screen.
Correct me if I'm wrong, but it would be the first platform with a sliding emulation speed functionality! LOL.

jup, thats possible :-)
osGet3DSliderState(void)
 
  • Like
Reactions: Elwyndas

Muxi

Well-Known Member
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,113
Country
Germany
Vice3DS can only run on a N3DS because it needs the extra CPU power (runs on 804MHz).

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,
  • Like
Reactions: Badda

sj33

Well-Known Member
Member
Joined
Oct 22, 2013
Messages
4,072
Trophies
2
XP
4,726
Country
Japan
Great job! I dug out my New 3DS just for this. Keyboard on the second screen is something that the Switch cannot do.
 

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,398
Country
Tokelau
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).
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 ...
 

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
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.

 
  • Like
Reactions: Badda and Muxi

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
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,

3dsgametime

Active Member
Newcomer
Joined
Aug 7, 2015
Messages
27
Trophies
0
Age
50
Location
Toronto
XP
130
Country
Canada
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.
 
  • Like
Reactions: Elwyndas

Muxi

Well-Known Member
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,113
Country
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,

ArugulaZ

Well-Known Member
Member
Joined
Sep 17, 2009
Messages
677
Trophies
1
XP
1,111
Country
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.
 

Muxi

Well-Known Member
Member
Joined
Jun 1, 2016
Messages
605
Trophies
0
Age
52
XP
2,113
Country
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.
 
D

Deleted_413010

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

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
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,

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,398
Country
Tokelau
I'm trying to load JiffyDOS but it resets to the standard kernal. Is it not implemented yet?
How do you load JiffyDOS - Is this an expansion card? I cannot find a menu entry for that ...

Also, I loaded GEOS, but couldn't get the mouse to work.
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?

True Drive Emulation turned OFF leads to a device not present error. I think this is new in version 1.0.
I actually never changed anything wrt this part of the code. I think it never really worked. Maybe I should hide that switch completely ...
 

Elwyndas

Well-Known Member
Member
Joined
Dec 19, 2018
Messages
197
Trophies
0
XP
680
Country
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,

Vague Rant

Deceptively cute
Member
Joined
Aug 7, 2008
Messages
2,463
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,302
Country
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.
 

Badda

me too
OP
Member
Joined
Feb 26, 2016
Messages
318
Trophies
0
Location
under the bridge
XP
2,398
Country
Tokelau
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.
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 ...
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: https://youtu.be/MddR6PTmGKg?si=mU2EO5hoE7XXSbSr