RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    lr-vice and Vic-20, Plus/4, C128, and Commodore Pet

    Scheduled Pinned Locked Moved Ideas and Development
    lr-vicevic20plus4c128pet
    14 Posts 6 Posters 2.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • rkosterR
      rkoster
      last edited by

      I just got Vic-20 & Plus/4 working with lr-vice, and am in the midst of compiling C128 and expect it to work too.

      git clone https://github.com/libretro/vice-libretro.git
      

      followed by

      make EMUTYPE=xvic
      make clean
      make EMUTYPE=xplus4
      

      did the trick to get the cores, then I copied them to lr-vice alongside the C64 core, added /vic20 and /plus4 folders, edited emulators.cfg for each, and so on, the usual emu add process, and both of them booted right up.

      Seems like it'd be easy to add Plus/4, Vic-20, and I expect, C128 to RetroPie in the experimental section. Or (probably better) have them be installed by lr-vice's scriptmodule. That would give substantially the same behavior as standalone Vice in RetroPie, I think.

      Pet is more of a challenge; there's no Makefile.xpet in vice-libretro. I'd check SourceForge and see if I can copy or generate (I think it's generated) from standalone Vice, but it looks like SourceForge is undergoing maintenance tonight.

      Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

      1 Reply Last reply Reply Quote 1
      • rkosterR
        rkoster
        last edited by

        Sure enough, vice_x128_libretro.so also compiled and booted just fine.

        Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

        1 Reply Last reply Reply Quote 0
        • U
          upmost777
          last edited by

          @rkoster said in lr-vice and Vic-20, Plus/4, C128, and Commodore Pet:

          make EMUTYPE=xvic

          I am a noob and have been looking for a walk-through to set up a C128. This was as close as I found. Any suggestions?

          1 Reply Last reply Reply Quote 0
          • rkosterR
            rkoster
            last edited by

            If you are a noob, then my suggestion would be to install the standalone Vice (not the lr-vice core which this post is about). It automatically installs a c128 emulator, I believe. I forget the exact name though.

            Then you'd basically add a new system to Emulationstation; see https://github.com/RetroPie/RetroPie-Setup/wiki/Add-a-New-System-in-EmulationStation for instructions on that.

            Sorry I can't offer more detailed help; busy day at work. :)

            Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

            1 Reply Last reply Reply Quote 0
            • rkosterR
              rkoster
              last edited by rkoster

              I got the Commodore PET working. It involved source code work to support it as a libretro core, though.

              My fork of lr-vice with support for PET is here: https://github.com/raphkoster/vice-libretro

              git clone https://github.com/raphkoster/vice-libretro.git
              make clean
              make EMUTYPE=xpet
              sudo cp vice_xpet_libretro.so /opt/retropie/libretrocores/lr-vice
              

              Then add it to es_systems.cfg:

                <system>
                  <name>pet</name>
                  <fullname>Commodore Pet</fullname>
                  <path>/home/pi/RetroPie/roms/pet</path>
                  <extension>.crt .d64 .g64 .prg .t64 .tap .x64 .zip .vsf .CRT .D64 .G64 .PRG .T64 .TAP .X64 .ZIP .VSF .p00 .P00</extension>
                  <command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ pet %ROM%</command>
                  <platform>pet</platform>
                  <theme>pet</theme>
                </system>
              

              then create /opt/retropie/configs/pet, (I just copied the c64 folder) and put this in emulators.cfg:

              lr-xpet = "/opt/retropie/emulators/retroarch/bin/retroarch -L /opt/retropie/libretrocores/lr-vice/vice_xpet_libretro.so --config /opt/retropie/configs/pet/retroarch.cfg %ROM%"
              default = "lr-xpet"
              

              I haven't figured out controls or anything, but games boot. Keyboard seems rather wonky -- punctuation is all weird. Might just be a default setting to a different language. I don't want to submit an upstream pull request until it gets banged on some more, though. Maybe someday we can have C128, Vic-20, Plus/4, and PET as full installs in RetroPie. :)

              @BuZz, I've had no luck so far in getting libretro upstream to notice my pull requests. Is there a channel to use other than github?

              Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

              P 1 Reply Last reply Reply Quote 0
              • rkosterR
                rkoster
                last edited by rkoster

                Turns out that the original PET keyboard doesn't have numbers on the top row! Only the numbers on the numpad work. That explains what I was seeing.

                e73111b3-9823-4043-a5ef-f470fa7ce89f-image.png

                There are some models that used the "business keyboard"; 4032B is one example that does have number keys, though much of the punctuation is in different places. I bet the B models specifically mean that keyboard.

                Also, the later models seem to default to 80 column; you probably don't want to use them for games for that reason.

                Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

                1 Reply Last reply Reply Quote 0
                • P
                  paradadf @rkoster
                  last edited by

                  @rkoster join them on discord and tell them about your PRs. Sometimes they are too busy/distracted than don’t really pay attention.

                  1 Reply Last reply Reply Quote 0
                  • rkosterR
                    rkoster
                    last edited by

                    The PET support has been merged upstream.

                    To get all these additional machines, though, would involve getting RetroPie to add them to the build script the way they are for the regular Vice emu, I think?

                    Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

                    mituM 1 Reply Last reply Reply Quote 0
                    • mituM
                      mitu Global Moderator @rkoster
                      last edited by

                      @rkoster It might be just as easy as adding them to the runcommand menu - is that what you're referring to ?

                      rkosterR 1 Reply Last reply Reply Quote 0
                      • rkosterR
                        rkoster @mitu
                        last edited by

                        @mitu The lr-vice scriptmodule only compiles the C64 core. The way Vice works is that you compile each of the different machines separately. So the scriptmodule would need to compile Vic-20, Plus4, C128, and now Pet.

                        The standalone Vice scriptmodule already installs all of them, I think.

                        Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

                        1 Reply Last reply Reply Quote 0
                        • mituM
                          mitu Global Moderator
                          last edited by mitu

                          The following patch should do the trick:

                          --- a/scriptmodules/libretrocores/lr-vice.sh
                          +++ b/scriptmodules/libretrocores/lr-vice.sh
                          @@ -22,7 +22,8 @@ function sources_lr-vice() {
                           
                           function build_lr-vice() {
                               make -f Makefile.libretro clean
                          -    make -f Makefile.libretro
                          +    make -f Makefile.libretro 
                          +    make -f Makefile.libretro EMUTYPE=xpet
                               md_ret_require="$md_build/vice_x64_libretro.so"
                           }
                           
                          @@ -31,6 +32,7 @@ function install_lr-vice() {
                                   'vice/data'
                                   'vice/COPYING'
                                   'vice_x64_libretro.so'
                          +        'vice_xpet_libretro.so'
                               )
                           }
                           
                          @@ -42,5 +44,6 @@ function configure_lr-vice() {
                               chown -R $user:$user "$biosdir/data"
                           
                               addEmulator 1 "$md_id" "c64" "$md_inst/vice_x64_libretro.so"
                          +    addEmulator 0 "$md_id-xpet" "c64" "$md_inst/vice_xpet_libretro.so"
                               addSystem "c64"
                           }
                          
                          1 Reply Last reply Reply Quote 1
                          • rkosterR
                            rkoster
                            last edited by

                            Yes, but you may as well add

                            make -f Makefile.libretro EMUTYPE=x128
                            make -f Makefile.libretro EMUTYPE=xplus
                            make -f Makefile.libretro EMUTYPE=xvic
                            

                            since they also all work.

                            Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

                            1 Reply Last reply Reply Quote 0
                            • tomi7711T
                              tomi7711
                              last edited by tomi7711

                              Hi!

                              Try yape if you like Commodore Plus/4. On Raspberry Pi3 works perfectly.

                              https://github.com/calmopyrin/yapesdl

                              1 Reply Last reply Reply Quote 0
                              • S
                                shift
                                last edited by

                                Has anyone managed to make Cartridges work for Vic-20? With Vice there is the possibility to add the -cartgeneric parameter, but I tried with lr-vice and it doesn't work.

                                1 Reply Last reply Reply Quote 0
                                • J JimmyFromTheBay referenced this topic on
                                • First post
                                  Last post

                                Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.