Advertising (This ad goes away for registered users. You can Login or Register)

[RELEASE] PSPVice 3.2 (C64 emulator)

Running old school games on your PSP? It's definitely possible
Oldvic
Posts: 29
Joined: Tue Apr 18, 2017 2:20 am

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Oldvic »

bovirtual wrote: Wed Apr 14, 2021 6:24 am Hi!!

I´ve installed on mi PSP 3000 the 3.2.5 version, with the 3.2.5r3 eboot mod, but i don´t see the changes you says in your post, for example, the new keyboard, the sid options or the new palets for de c64. Is possible that i need to install other eboot?

Thank you for your work!! It´s really incredible!
Hi Bovirtual. The '3.2.5r3' Eboot above is just to fix the palette saving issue in Vice v3.2.5. The new features/additions are what I've done in a new Vice v2, but I've not released it yet. I just need to do one or two things and tidy up the code, then I'll release it. Cheers.
Advertising
bovirtual
Posts: 2
Joined: Wed Apr 14, 2021 5:56 am

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by bovirtual »

Ahh, ok!!

I´ll wait anxiously your new release! :)

Cheers!
Advertising
Oldvic
Posts: 29
Joined: Tue Apr 18, 2017 2:20 am

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Oldvic »

Picked this up again last weekend and did a bit more on it. Empty tapes and 'tape 2/side 2's' in raw image (.tap) format no longer crash the PSP. But I realised there was no way of playing 2 tape multiload games (eg Creatures 1+2, R-Type etc.) as inserting 'tape 2', then starting it triggers a reset. Removing reset from the autostart source seemed impractical and also seems to jam the cpu without a reset. So I had a look in the 'datasette' source and added some Datasette controls for raw image tapes (.taps). I've added 'Play', 'Rewind tape to beginning', and 'Record'. The aforementioned games on raw tape (.tap) now work correctly. I've also re-organised the menu to make better use of the 'System' tab and moved 'Machine video standard' to the 'Options' tab with 'Palette' and 'Screen mode'. I've also moved the 'Joystick port' setting there too under 'Input'.
Image

Image

I've also fixed the System indicators. They were bugged, particularly the Tape one. When enabled, the indicators could just randomly get stuck on screen or not work at all. I fixed these so they only work if either 'True drive emulation' is enabled, or you're using a raw tape image (.tap) as that's what they are for and should only work in those situations. So you won't see them otherwise. So this option is now enabled by default as it's now working fully. I had to auto-eject raw tape images after a reset to re-initialise the indicator otherwise it would introduce another bug of it getting stuck on screen in certain scenarios. '.t64' images remain attached after a reset. I also implemented some checks so that if you try to use the tape controls and there is no tape inserted, or the inserted image is not a raw tape image (.tap) you get the following messages:
Image
Image

I tested the controls with a few 2 tape multiload games (Creatures 1+2, and R-Type) and they work perfect:
Image

The autosense on the Datasette will stop the tape after each level has loaded. and will start again after you finish a level, as shown below (Creatures level 1.2 loading):
Image

'Rewind' after game over and press 'Play' tested working:
Image

Record to a blank tape also added. I tested it with 'Run for Gold' saving runner to tape, then reloaded it:
Image
Image

Pressing play or record automatically exits the menu and activates the relevant function on the Datasette. The 'Rewind' function leaves you in the menu so you can press the 'Play' button afterwards. Save-states also remember tape position. So it's actually possible to save your game when 'tape 2' is inserted and reload to that level another time without even using 'tape 1'. Just insert 'tape 2' then load your save-state and the tape will position itself where it was when you saved.
Last edited by Oldvic on Mon May 31, 2021 5:35 pm, edited 2 times in total.
rsn8887
Posts: 177
Joined: Wed Feb 03, 2016 11:49 pm

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by rsn8887 »

Hello @Oldvic, I just saw your screenshots! They look awesome.

If you make a release, I will put the link on my GitHub, too, so people will be re-directed from mine to your release.
Oldvic
Posts: 29
Joined: Tue Apr 18, 2017 2:20 am

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Oldvic »

rsn8887 wrote: Mon May 24, 2021 1:16 am Hello @Oldvic, I just saw your screenshots! They look awesome.

If you make a release, I will put the link on my GitHub, too, so people will be re-directed from mine to your release.
Thanks a lot rsn8887. Vice v2.2.26 is finished, but I don't want to release it without the source, which is still a bit of a mess. Just need to find some time and tidy it up for release and do some release notes. I'll release v2.2.26 first, so at least 1000(Phat) users have an updated version that works on their units, then I'll return to updating v3. Cheers.
Last edited by Oldvic on Thu Jul 29, 2021 4:28 am, edited 1 time in total.
Kenshiro
Posts: 6
Joined: Tue Jun 08, 2021 2:03 pm

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Kenshiro »

Oldvic wrote: Mon May 31, 2021 5:40 pm
rsn8887 wrote: Mon May 24, 2021 1:16 am Hello @Oldvic, I just saw your screenshots! They look awesome.

If you make a release, I will put the link on my GitHub, too, so people will be re-directed from mine to your release.
Thanks a lot rsn8887. Vice v2.2.6 is finished, but I don't want to release it without the source, which is still a bit of a mess. Just need to find some time and tidy it up for release and do some release notes. I'll release v2.2.6 first, so at least 1000(Phat) users have an updated version that works on their units, then I'll return to updating v3. Cheers.

Thank you very much for all your updates, mate!!
Waiting eagerly your new 2.2.6 version for my PSP 1000. ;)
Oldvic
Posts: 29
Joined: Tue Apr 18, 2017 2:20 am

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Oldvic »

Just a quick update. I haven't forgotten about this, just been a bit busy. Plus, I found another couple of bugs when I was play testing it recently. I noticed an issue related only to true tape images (.tap's). If you load one, it would work fine. But if you loaded another tape, then another and so on, with each successive tape, the emulator would take longer and longer to detect the game name during the initial loading sequence (ie. the part where you press the 'C=' key after the name appears). Eventually it could take up to 2 minutes to detect the game name. Slightly odd bug, but definitely an annoying one. I checked the v3.x.x releases and the bug wasn't present. So I looked at the v3 sources and discovered DelayedQuasar fixed this in v3.2.3. So I've used that fix in v2 and it works fine. I've credited him on the main screen.
The other bug I found was that the 'Restore' key didn't work at all on both the virtual keyboard and in button mapping in the 'Control' tab. I discovered this when I was playing Speed King. I always remember when I was a kid hitting the 'Restore' key to get back to main game screen when the demo was running, or I was a mile behind in a race. After nothing happened I tested 'POKE 792,226: POKE 793,252', which should trigger a CPU reset when the 'Restore' key is pressed. Again, this failed. It turns out this key has never worked in any of Akop's Vice PSP releases, and it also doesn't work in the v3.x.x PSP releases either as the bug got carried over. I'm guessing no-one noticed it and told Akop. Probably as it's not really a commonly used key, and it only works in certain situations. The 'Restore' key code looked absolutely fine in the Vice specific part of the source, but it just wouldn't trigger from the PSP virtual keyboard or being mapped to a button. I even added the 'Restore' key function to the Vice menu to test it. This worked, so I knew there was a bug somewhere specific to the virtual keyboard/button mapping on the PSP side of things. I eventually found the offending routine tagged onto the bottom of the PSP specific 'video.c' source file with a comment from Akop:

Code: Select all

  if (CODE_MASK(code) == 0xff) 
  {
    keyboard_set_keyarr(-3, 0, on); /* TODO: better */
    return;
  }
He used '0xff' as the key identifier for the virtual keyboard, and the same in control mapping: '0xf, 0xf, 8' ('8' being the key can be shifted or unshifted). The actual 'Restore' key is on a negative row (-3), and column '0', so everything looks good. The trouble is, this doesn't check that the 'Restore' key is actually pressed, so it never worked. I've modified this slightly and added a small routine after it so that it now checks for a simulated key press of the 'Restore' key. I've tested it working fine on the virtual keyboard and in button mapping (in a RunStop/Restore combo). Also tested it on Speed King and a couple of C64 keyboard checker programs. I'm not sure how many games actually make use of the 'Restore' key. I know Speed King, Cauldron II (some scene releases) and the premium version of Joe Gunn Gold use it to return to the main menu. Well at least we have it working now. I've also corrected some characters in button mapping in the 'Control' tab. The following characters were listed as the shifted versions instead of the non-shifted. '[', ']', '<', '>' and '?' are now correctly listed as ':', ';', ',', '.' and '/' respectively. I also removed some C128 specific code while I was at it.
Image
Image

I've made a new look virtual keyboard based on the 'Bread Bin' C64 colours. The keyboard is now opaque, so it's much easier to see. Also moved the keyboard flush to the bottom of the screen.
Image

Image

Disks, tapes and cartridges now ask if you want to 'eject/remove' rather than just doing it without a prompt when you press the 'triangle' button. This prevents accidental removal. I've also implemented a check if you try to remove a disk/tape/cartridge and there isn't one inserted.
Image
Image
Image
Image
Image
Image

I've changed the menu text in the 'Options' tab 'Show system indicators' to 'Show disk/tape indicators', plus it's explanation along the bottom of the screen from 'Show/hide system status indicators (LED's, etc...)' to 'Show/hide disk/tape activity icons (*true drive emulation/true tape images only)'. I did this as this is it's sole function and better explained. I also previously fixed this so the icons only work with true drive emulation and true tape images (.tap's) as they do not work correctly otherwise.
Image

A couple of months back I added a few more external palettes, so there's now a choice of 20 palettes (19 external (including a 'user' palette), and the internal). Also fixed some various compiler warnings which came as a result of fixing the disk/tape image contents bug. I'll do a bit more play testing this week, but hopefully now this is done.
Last edited by Oldvic on Wed Oct 20, 2021 11:18 pm, edited 1 time in total.
Kenshiro
Posts: 6
Joined: Tue Jun 08, 2021 2:03 pm

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Kenshiro »

Wow! This is impressive, Oldvic!. Thank you very much for all your efforts!
The emulator is very complete now with all these fantastic implementations that you have done.
Both v2 and v3 versions of the emulator will have the same performance and speed?
Oldvic
Posts: 29
Joined: Tue Apr 18, 2017 2:20 am

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Oldvic »

Kenshiro wrote: Mon Sep 06, 2021 2:39 am Wow! This is impressive, Oldvic!. Thank you very much for all your efforts!
The emulator is very complete now with all these fantastic implementations that you have done.
Both v2 and v3 versions of the emulator will have the same performance and speed?
Thanks. I did make one addition since I last posted. I added a 'write protect' function as an extra precaution to prevent accidentally overwriting your raw tape images (.taps). So now, if you select the 'press record' function with a '.tap' attached, you will get prompted with '*Disable 'write protect' to allow recording*'. Tape write protect is enabled by default and you can only disable it if there is a raw tape image (.tap) attached. Also, it is only disabled per tape. If you eject the tape or insert another tape, 'write protect' will be enabled again.
Image

Image

I moved the 'Screenshot' function to the 'Options' tab under 'Enhancements'. I also added a prompt when you select it so it asks you if you want to take a screenshot rather than just taking it.
Image

Image

V2 is completely finished. V3 is about 85% done. I have ported most of the improvements/fixes I made in V2 to V3. I just need to fix blank disks/tapes/side 2's disks and tapes crashing the PSP in V3, plus the broken 'prg' selection in disk/tape directories.
In terms of speed, V2 is faster than V3, plus it works on the Phat 1000 models. Most games run quite happily at 300mhz using the 'ReSID' engine in V2. 'Cauldron II' will run glitch free at 333mhz using the ReSID engine (disable SID Filters to hear the pumpkin bounce sound properly) in Vice v2, but you will get sound glitches/slowdowns in Vice v3. I also decided to make the palette I made (Oldvic.vpl) as the default palette after doing various comparisons. I think it looks best out of all the palettes as I made it specifically with the PSP screen in mind. The 'Colodore' palette is probably more suited if you're using the TV-Out cable though.
Cheers.
Last edited by Oldvic on Fri Sep 10, 2021 5:19 pm, edited 1 time in total.
Kenshiro
Posts: 6
Joined: Tue Jun 08, 2021 2:03 pm

Re: [RELEASE] PSPVice 3.2 (C64 emulator)

Post by Kenshiro »

Thanks for the reply, Oldvic. With all the improvements you have added, this will be one of the most complete emulators, if not the most, ever created, and the new V2 will be the definitive version for its full compatibility and performance.
The desire to be able to enjoy it on our PSPs is tremendous!
Huge Thanks !!!
Locked

Return to “Emulators”