Vice 2.0 (25 Jul 2008) Released


jimbob jones said:
bodhee said:
jimbob jones said:
Hi Gnostic,

I would say that as the real C64 had no touch screen - to use it on emulator menus and on screen keyboard may be a nice bonus - but certainly not essential. I'm not sure it's worth making a touchscreen joystick as I'm not aware of any software ever written for the C64 that would benefit from that kind of interaction. What do you think? Software was more one button joystick or keyboard orientated.
i would have to disagree. one of the greta things about the c64 were the amazing amount of adventure and rpg games. most of these were pretty keyboard intensive and unless you have an integrated keyboard or touchscreen, virtually impossible to play. i would say that a keyboard for touchscreen would be THE best addition to the emu.. Just my two cents!


I actually meant that using the touchscreen for the on screen keyboard or emulator menu would be a bonus, but other than that, you can't really add touch screen support other than maybe some kind of psuedo joystick but im not sure it would be terribly effective. I'm not aware the C64 ever had a mouse - it probably did but I've never seen a game that used one.


well you could use the touchscreen to enter keys using the v irtual keyboard...
 
Last edited by a moderator:
GnoStiC said:
try this; vice 2.0 x64 -7fixed

usb keyboard works fine with my f100+BoB.. i'll try with f200 later today..



OMG! I just finished adding USB keyboard support to GP2Xpectrum yesterday, you beat me for a day! (and a half). :lol:
 
Last edited by a moderator:
Metalbrain said:
OMG! I just finished adding USB keyboard support to GP2Xpectrum yesterday, you beat me for a day! (and a half). :lol:
my keyboard code is rather simpler:

INIT:
CODE

gp2x_dev[8] = -1;
gp2x_dev[8] = open("/dev/tty0", O_RDWR | O_NDELAY, 0);
if (gp2x_dev[8] < 0) gp2x_dev[8] = open("/dev/vc/0", O_RDWR | O_NDELAY, 0);

if (gp2x_dev[8] >= 0) {
tcgetattr(gp2x_dev[8], &initial_settings);
new_settings = initial_settings;
new_settings.c_lflag &= ~(ICANON | ECHO | ISIG);
new_settings.c_iflag &= ~(ISTRIP | IGNCR | ICRNL | INLCR | IXOFF | IXON);
new_settings.c_cc[VMIN] = 0;
new_settings.c_cc[VTIME] = 0;
tcsetattr(gp2x_dev[8], TCSAFLUSH, &new_settings);
//tcsetattr(gp2x_dev[8], TCSANOW, &new_settings);

ioctl(gp2x_dev[8], KDSKBMODE, K_MEDIUMRAW);
ioctl(gp2x_dev[8], KDSETMODE, KD_GRAPHICS);
ioctl(gp2x_dev[8], KDSETLED, 0);
printf("keyboard enabled\n");
}



READ:
CODE

unsigned char gp2x_keyboard_read(void) {
unsigned char key=0;
if (gp2x_dev[8] == -1) { return key; }

read(gp2x_dev[8],&key,1);

if ((key&0x80)) { key = 0; } else { key = key & 0x7F; }
return key;
}



LEDS:
CODE

unsigned int gp2x_keyboard_ledget(void) {
unsigned int leds;
ioctl(gp2x_dev[8], KDGETLED, &leds);
return leds;
}

void gp2x_keyboard_ledset(unsigned int led) {
ioctl(gp2x_dev[8], KDSETLED, led);
}



and a list of keycodes :)
 
Last edited by a moderator:
Hi Gnostic, I tried playing the C64 game thrust with the keyboard and it doesnt seem to respond well to two keys being pushed down at once. It may be my crabby WIFI keyboard, but might be worth checking out. Can you see how it works for you? I'll see if I can find that PS2 to USB adaptor so I can try it with a plug in keyboard too and give you some more feedback :) Thanks for all your hard work! :)
 
This is a great job.
For the firs time USB joystick work on the gp2x with vice2x.

The only problem I have is that for some reason vice2x can't handle 2 usb joysticks.
It only works when one player is using the joypad of the gp2x and the other player uses the usb joystick.
This is not a nice way to play a game of course, I rather have 2 usb joysticks working.
Both joysticks I use are exactly the same and I tried all ports of the BoB (the BoB is powered externally).
i'm running firmare 2.1.2 on a F100 mkII.

Has onyone a solution for this?

Thanks in advance....
 
which games use simultaneous key presses that i can try? (other than thrust)

jimbob jones said:
Hi Gnostic, I tried playing the C64 game thrust with the keyboard and it doesnt seem to respond well to two keys being pushed down at once.


actually it does handle two usb joysticks. you should have 2 joysticks attached before you execute vice so that it can detect both on startup. then you should assign usb joysticks to c64 joystick ports 1 or 2 in the vice menu.
i don't have 2 joysticks to test this but it should work :)

if it doesn't let me know..

ZakHooi said:
The only problem I have is that for some reason vice2x can't handle 2 usb joysticks.
 
Last edited by a moderator:
GnoStiC said:
which games use simultaneous key presses that i can try? (other than thrust)

jimbob jones said:
Hi Gnostic, I tried playing the C64 game thrust with the keyboard and it doesnt seem to respond well to two keys being pushed down at once.


actually it does handle two usb joysticks. you should have 2 joysticks attached before you execute vice so that it can detect both on startup. then you should assign usb joysticks to c64 joystick ports 1 or 2 in the vice menu.
i don't have 2 joysticks to test this but it should work :)

if it doesn't let me know..

ZakHooi said:
The only problem I have is that for some reason vice2x can't handle 2 usb joysticks.

Thanks for your reply on the USB joystiscks issue.
I do understand what you're saying and that's exactly what I already tried.
When I power on the gp2x two joysticks are connected, and the green LEDs light up for both sticks.
But somehow when vice2x 2.0 is started, it forces the joypad of the gp2x to assign to on of the 2 joystick ports within vice so only one other port is available for an usb joystick.
This leaves the other joystick unused.
In vice2x no matter what I try, one of the joysticks is allways unavailable (in the menu in vice one of the joysticks always says'none').

Can this be solved? I would appreciate it...
 
Last edited by a moderator:
GnoStiC said:
my keyboard code is rather simpler:

[...]

READ:
CODE

unsigned char gp2x_keyboard_read(void) {
unsigned char key=0;
if (gp2x_dev[8] == -1) { return key; }

read(gp2x_dev[8],&key,1);

if ((key&0x80)) { key = 0; } else { key = key & 0x7F; }
return key;
}

This read code seems to be quite poor, and that's why simultaneous key presses aren't supported. It keeps returning the last key read until something happens. If that something is a key release, it returns a 0, but if it's a different one while you haven't released the first, it will probably think you've released the first key at the same time you pressed the second. It's only good to type, and that's without extra shifted symbols (and caps only thanks to caps lock, if it exists in C64 (no idea)).

So I can say I was the first to offer proper USB keyboard support :lol:, though I must agree your method is indeed simpler than mine.
 
Last edited by a moderator:
x64 - 8

* fixed handling more than 1 usb joysticks (thanks to ZakHooi for testing)
* fixed handling simultaneous usb keyboard key presses

NOTE:
in this new archive, you'll find data/C64 folder and x11_pos.vkm & x11_sym.vkm files.
just overwrite old ones.
it's 4:05am here.. gotta sleep now :}

Metalbrain said:
So I can say I was the first to offer proper USB keyboard support :lol:, though I must agree your method is indeed simpler than mine.
CODE

unsigned int gp2x_keyboard_readext(void) {
if (gp2x_dev[8] == -1) { return 0; }
return read(gp2x_dev[8], keybuffer, 64);
}



CODE

for (i=0; i<gp2x_keyboard_readext(); ++i) {
int keycode = keybuffer;
if (keycode & 0x80) {
/* Remove release bit. */
keycode &= 0x7f;
keyboard_key_released((signed long)keycode);
} else {
keyboard_key_pressed((signed long)keycode);
}
}
 
Last edited by a moderator:
GnoStiC said:
x64 - 8

* fixed handling more than 1 usb joysticks (thanks to ZakHooi for testing)
* fixed handling simultaneous usb keyboard key presses

NOTE:
in this new archive, you'll find data/C64 folder and x11_pos.vkm & x11_sym.vkm files.
just overwrite old ones.
it's 4:05am here.. gotta sleep now :}

Metalbrain said:
So I can say I was the first to offer proper USB keyboard support :lol:, though I must agree your method is indeed simpler than mine.
CODE

unsigned int gp2x_keyboard_readext(void) {
if (gp2x_dev[8] == -1) { return 0; }
return read(gp2x_dev[8], keybuffer, 64);
}



CODE

for (i=0; i<gp2x_keyboard_readext(); ++i) {
int keycode = keybuffer;
if (keycode & 0x80) {
/* Remove release bit. */
keycode &= 0x7f;
keyboard_key_released((signed long)keycode);
} else {
keyboard_key_pressed((signed long)keycode);
}
}




Thanks for your great help, looking forward to the next release.
 
Last edited by a moderator:
I've got an additional question about vice2x.

I think the sound volume is very low.
Especially when sitting at quite a distance when playing with joysticks on the BoB.

I tried to increase the volume before launching vice2x but with no luck.

Any ideas how to increase the sound volume?

Thanks in advance
 
There is another big issue that I like to bring up.

This time it's about the TV-OUT.
My setup is as follow:
F100 MkII with BoB and 2 usb joysticks connected connect to my TV.

1. When I switch to TVout when in de gp2x settings menu, the image appears on my TV properly.
Then, when I start Gnostic latest version of x64 the screen goes black and stays black.
I can see the green LEDs on the BoB going off and on meaning (I think) that the video part of the gp2x has issued a reset. Not a full reset but apparently a partial reset. When this happens the TVout isn't working anymore.
So, starting x64 when switched to TVout actually switches off TVout.

2. When I don't switch to TVout in the gp2x menu but start x64 on LCD x64 starts properly.
But then, when I want to switch to TVout from the menu of vice2x only the left half of my TV screen shows the gp2x picture, the right half remains black. The resolution seems to be ok, in other words I can see only half of the gp2x picture, it's not scaled.
Playing with the settings regarding the screen (scaling, centering) doesn't make any difference.

So, now 2 joysticks work simultaneously on the BoB it would be very nice to be able to play on the TV wich is not possible at this moment.

I hope the problem description is clear, if not, feel free to contact me.

THanks in advance
 
I've not posted on here much, but have been following this thread, hoping someone else might have the same problem. I've a F200 running 4.1.1, and when I run any of the updated x64's, I get a darkened screen, as if the screen was not running at full brightness. Games do run, but don't display properly and when I quit back to the main menu, the screen remains darkened and not displaying properly. Anybody encounter anything similar(I've not encountered it with any other emu)
 
GnoStiC said:
x64 - 9

try this one

ZakHooi said:
There is another big issue that I like to bring up.
This time it's about the TV-OUT.

Thank you very much Gnostic.

The issues I brought up are solved.... but.....

At this moment I only can activate TVout from the menu in vice2x.
When I select TVout from the gp2x menu the TVout is disabled as soon as vice2x starts.

In case I switch to tvout from the vice2x menu, the full picture appears in the right proportions but it looks like the picture is shaking (frequency problem?) and my eyes get tired within a few minutes (this may cause even headache when looking at the screen a bit longer).

Is this something you can solve please?
 
Last edited by a moderator:
i'll look into it and will try to boost :)

ZakHooi said:
I think the sound volume is very low.

vice2x (minilib 0.c) switches back to lcd on startup in order to use it's own video settings..
AND
i can't test vice2x with TV as i don't own a TV with s-video in so i'm currently testing it with my notebook's s-video in.. (apparently it fixes the "shaking" problem on the fly)

don't worry though, i'll try to fix it :}

ZakHooi said:
...
When I select TVout from the gp2x menu the TVout is disabled as soon as vice2x starts.
...
In case I switch to tvout from the vice2x menu, the full picture appears in the right proportions but it looks like the picture is shaking (frequency problem?)
...

hmm, weird..
my f200 has older firmware and i don't have that problem..
does anybody else with f200/4.1.1 have the same problem?

Stouffa said:
I've not posted on here much, but have been following this thread, hoping someone else might have the same problem. I've a F200 running 4.1.1, and when I run any of the updated x64's, I get a darkened screen, as if the screen was not running at full brightness. Games do run, but don't display properly and when I quit back to the main menu, the screen remains darkened and not displaying properly. Anybody encounter anything similar(I've not encountered it with any other emu)
 
Last edited by a moderator:
I've tried running other games and emu's after quitting out of Vice, and the same problem persists. I went back to try an older version of Vice, but that seems to work ok. Might just be a strange fault of my machine......
 
try these and let me know if they fix your problem;
x64-lcd1
x64-lcd2

Stouffa said:
I've tried running other games and emu's after quitting out of Vice, and the same problem persists. I went back to try an older version of Vice, but that seems to work ok. Might just be a strange fault of my machine......
 
Last edited by a moderator:
GnoStiC said:
try these and let me know if they fix your problem;
x64-lcd1
x64-lcd2

Stouffa said:
I've tried running other games and emu's after quitting out of Vice, and the same problem persists. I went back to try an older version of Vice, but that seems to work ok. Might just be a strange fault of my machine......

Do I need to test this version as well (regarding the TVout problem) ?
 
Last edited by a moderator:
I've tested both of those versions out now, and the same problem persists. Could it be something to do with the newer LCD screens on the last version of the F200? Also, if you change the TV settings off LCD in the VICE Menu, is it a known bug that the screeen corrupts sohwin a series of orange bars along most of it, whilst the bottom 1/4(ish) gradually fades to white?
 
Back
Top