Anyone seen this?
https://www.facebook.com/groups/110087285732823/permalink/792956147445930/ (https://www.facebook.com/groups/110087285732823/permalink/792956147445930/)
I don't have a FB account and the news title is intriguing ,
any other link ? :o)
( I'm such a raspberry geek :p )
Like for NOT having an FB account (like myself) :)
Bryce.
Mikel Erauskin Goyaran (https://www.facebook.com/MikelErauskin?fref=nf)
CapriceRPI2 news:
(Emu based on my previous work in CapriceGP2x, a Caprice32 port to GP2x handheld console)
-Tested tape load from menu options. OK, normal load and hacked 5x speed (not bad for the old Caprice32 code)
-Try to do sound more accurate mimizing audio buffer lag, looks ok...
-Firmware and Amsdos ROMs and GUI resources built in the executable. Standalone exe!!
More to do:
-Continue un-GP2x-ing the code xD
-Fix some menu controls (that make sense at a handheld but not at keyboard/joystick)
-Recheck joystick code (mangled from GP2x support)
And then maybe have a decent release for your joy at your Raspberry Pies Emotikon smile
http://www.amstrad.es/forum/viewtopic.php?f=6&t=3854#p53821 (http://www.amstrad.es/forum/viewtopic.php?f=6&t=3854#p53821)
The author of the topic is Kaosoverride, who is also an user of this forum.
Quote from: Bryce on 12:39, 13 March 15
Like for NOT having an FB account (like myself) :)
Bryce.
Me neither. :)
Lol, have I broke something? :P :P :P :P :P :P
Is just some recovered code from 2007, when I did some coding for the GP2x :)
I hope to have some working version for release circa next weekend.
Some testing for your raspberrys!!!
Can run at console and at X11. Better to run at RetroPie console!! GPU hardware scaling statically linked. To activate type before executing at the console:
export SDL1_VIDEODRIVER="dispmanx"
F8 opens the menu, cursor keys and return to select option. Esc exit.
F10 quits emulation
With joysticks Fire4 opens menu, directions and fire 1 to select, some options fire 2 goes back with no effect and Fire 4 exits to emulation.
F9 / Fire 5 toogles the virtual keyboard. Does not work for now
F12 / Fire 6 shows FPS info
F6 F7 up down volume
Works from joystick 1 and 2
Please coment
Binary tgz
http://mega.co.nz/#!zBtinbRQ!Suq12bB-IwwE02N8fSaBPt-A3zEPyhM2IJZhZFs7ags (http://mega.co.nz/#!zBtinbRQ!Suq12bB-IwwE02N8fSaBPt-A3zEPyhM2IJZhZFs7ags)
Source (because of GPL!!!)
http://mega.co.nz/#!TMUCSJoS!72QDz66f_WAWuovTCLGwvK22RyWO2k1Q2Ky1pCQWkns (http://mega.co.nz/#!TMUCSJoS!72QDz66f_WAWuovTCLGwvK22RyWO2k1Q2Ky1pCQWkns)
NOTE: Maybe some credits are not written at the readme.txt. Please excuse me. will update at next release!!
Testing EmulatorStation integration :) (CDT, SNA and DSK!!)
DSK autorun pending....
CapriceRPI2 CDT Autorun, SNA and DSK Test - YouTube (http://youtu.be/rEC7GqVGLm0)
CapriceRPI2 first "proper" release!!!!!
V0.1 WIP 1!!!!!!!!
Mega folder with all releases:
https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A (https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A)
V0.1 W.I.P 1
====
-Virtual keyboard operative. Program BASIC from your joystick!!!!
-Autorun support, partial for disks, complete for tape.
-New RPI2 splash screen, replaced the GP2x one.
_____________________________________________________________________________________________________
Features:
-GPL Caprice32 4.1.0 emulator core from Ulrich Doewich
-Portable monolithic executable, without external file dependencies (System ROMs, skins, etc)
-Static link to Raspberry PI hardware scaler SDL library
-Autoconfiguration when called from launchers and frontends (6128 default, 464 for tapes) with partial support for autorun commands for tape and disk
-2 joystick support, and up to the unofficial Fire 3, redefinable as key for many games
-Option menus and CPC virtual keyboard. Full use of the CPC from your joystick!!!
-Supports DSK, CDT and SNA from menu and command line. Great for frontends and launchers
To do:
-Finish DSK autorun commands. For now only |CPM. Autorun for CDT complete with x5 loading
-Optimize virtual keyboard. Stops 20% the emulation. (Cause found)
-Testing under RPI 1
-Better menus handling
_____________________________________________________________________________________________________
Options
Main Emulation
===================
F1: (X11 only) Full Screen (No hardware scaler), OK for RPI2 composite out
F3: Reset
F4: Start/Stop tape motor
F5: Start loading tape with RUN" or |TAPE:RUN" depending model
F6: Volume --
F7: Volume ++
F8: Options menu
F9: Virtual keyboard (+CTRL Change position up/down)
F10: Quit
F12: show FPS / INFO (+CTRL Change realtime or "as fast as it can"
Joystick:
Fire 4: Options menu
Fire 5: Virtual Keyboard
Fire 6: Show FPS / INFO
Options Menu
============
Icons:
Disk: Disk menu
Tape: Tape menu
Chip: Snapshots menu
Gear: Configuration menu
Red button: Quit
Select with cursors + Enter o Joystick + Fire 1
F8 or Fire 4 Return to emulation.
Submenus
--------
Up/down (cursors/joystick) navigate options
Right (cursors/joystick), Enter or Fire 1 select option
Left (cursors/joystick), ESC or Fire 4 returns to emulation or the submenu before.
File selectors
--------------
Up/down (cursors/joystick) navigate files/folders
Right (cursors/joystick), Enter o Fire 1 select file or open subfolder
Left (cursors/joystick), Fire 2 return to the above folder
ESC o Fire 4 returns to emulation or the submenu before.
Virtual keyboard
================
From keyboard: (Helpfull if some emulated key can't be pressed!!)
Cursors: Move key cursor
CTRL: Simulate CTRL key
Shift: Simulate SHIFT key
Espace: Press selected key
F9: Exit virtual keyboard (+CTRL change position up/down)
From Joystick
Directions: Move key cursor
Fire 3: Simulate CTRL key
Fire 2: Simulate SHIFT key
Fire 1: Press selected key
Fire 5: Exit virtual keyboard
Fire 4: Change position up/down
_____________________________________________________________________________________________________
Quote from: KaosOverride on 22:44, 23 May 15
CapriceRPI2 first "proper" release!!!!!
V0.1 WIP 1!!!!!!!!
Mega folder with all releases:
https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A (https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A)
V0.1 W.I.P 1
====
-Virtual keyboard operative. Program BASIC from your joystick!!!!
-Autorun support, partial for disks, complete for tape.
-New RPI2 splash screen, replaced the GP2x one.
_____________________________________________________________________________________________________
Features:
-GPL Caprice32 4.1.0 emulator core from Ulrich Doewich
-Portable monolithic executable, without external file dependencies (System ROMs, skins, etc)
-Static link to Raspberry PI hardware scaler SDL library
-Autoconfiguration when called from launchers and frontends (6128 default, 464 for tapes) with partial support for autorun commands for tape and disk
-2 joystick support, and up to the unofficial Fire 3, redefinable as key for many games
-Option menus and CPC virtual keyboard. Full use of the CPC from your joystick!!!
-Supports DSK, CDT and SNA from menu and command line. Great for frontends and launchers
To do:
-Finish DSK autorun commands. For now only |CPM. Autorun for CDT complete with x5 loading
-Optimize virtual keyboard. Stops 20% the emulation. (Cause found)
-Testing under RPI 1
-Better menus handling
_____________________________________________________________________________________________________
Options
Main Emulation
===================
F1: (X11 only) Full Screen (No hardware scaler), OK for RPI2 composite out
F3: Reset
F4: Start/Stop tape motor
F5: Start loading tape with RUN" or |TAPE:RUN" depending model
F6: Volume --
F7: Volume ++
F8: Options menu
F9: Virtual keyboard (+CTRL Change position up/down)
F10: Quit
F12: show FPS / INFO (+CTRL Change realtime or "as fast as it can"
Joystick:
Fire 4: Options menu
Fire 5: Virtual Keyboard
Fire 6: Show FPS / INFO
Options Menu
============
Icons:
Disk: Disk menu
Tape: Tape menu
Chip: Snapshots menu
Gear: Configuration menu
Red button: Quit
Select with cursors + Enter o Joystick + Fire 1
F8 or Fire 4 Return to emulation.
Submenus
--------
Up/down (cursors/joystick) navigate options
Right (cursors/joystick), Enter or Fire 1 select option
Left (cursors/joystick), ESC or Fire 4 returns to emulation or the submenu before.
File selectors
--------------
Up/down (cursors/joystick) navigate files/folders
Right (cursors/joystick), Enter o Fire 1 select file or open subfolder
Left (cursors/joystick), Fire 2 return to the above folder
ESC o Fire 4 returns to emulation or the submenu before.
Virtual keyboard
================
From keyboard: (Helpfull if some emulated key can't be pressed!!)
Cursors: Move key cursor
CTRL: Simulate CTRL key
Shift: Simulate SHIFT key
Espace: Press selected key
F9: Exit virtual keyboard (+CTRL change position up/down)
From Joystick
Directions: Move key cursor
Fire 3: Simulate CTRL key
Fire 2: Simulate SHIFT key
Fire 1: Press selected key
Fire 5: Exit virtual keyboard
Fire 4: Change position up/down
_____________________________________________________________________________________________________
does this work on the original pi too? Albeit with performance hit maybe.
I have to look at the hardware scaled SDL if needs to be a different version. Test have to be done. (Take a look at the "To Do" section). Last time I took a look to the scaled SDL there where 2 versions, for Pi1 and Pi2, and where trying to merge in one. Not sure if the retropie script has updated to the new unified versio. (Yes, I'm a disaster with this things). I have to make a version control of my libs!!
Just copy the executable to your PI 1 and launch :)
Ahhh great, some use for my RPi2!!! :)
If you want some CPC Plus power at your RPI2, Arnold also compiles OK, works fine, realtime, under RPI2 X11, but the code "as is" has some issues with X11 keystrokes and you cannot quit the emulator :P :P :P :P
A kill command from console saves the day, but...
If you want I can upload to the Mega folder the arnold folder as is now, cleaning .o files, just source, the patched makefile and the RPI2 exe :)
Ok, I'm sure I have to rework the GUI from 16 bit color to 8 bit. That makes the keyboard drop the emulation because I have to reescale 2x the keyboard skin at init time and because of SDL rotozoom the skin gets to 24 or 32 bit color. That's a huge array to blit. 8bit SDL surfaces remain 8 bit...
I use rotozoom also with the menus but the emulation is paused so no problem. I make the 2x zoom with the idea to recover the 320x200 screen mode for RPI1. So I don't have to redesign the GUI for both modes.
In the future I want to detect if you are using the RPI1 or 2 and select low or high resolution. And the F1 key to rotate the 2 modes (Lo, Hi) and windowed/fullscreen under X11 (So they are 4 modes actually)
But first the keyboard. Is a shame that it drops the emulation...
8) 8) 8) 8) 8)
Small fix to finish the WIP1. Make sure that you download the WIP1a KEYBOARDFIX from the WIP1 folder. :)
Now emulation is perfect with the displayed virtual keyboard. With CONTROL + F12 emulation reaches 310% and displaying the keyboard falls to 280%, I think it's more than enough !!
The "rotozoom" converts the 16bit surface to 32 bit, so big pixel array... But because keyboard bitmap loading it's done just one only time, I have add one step more to convert it to 16 bits again. :P
OMG, the SDL lib I had attached to the executable gives some ilegal operation at the RPI1. I have compiled a new SDL with DISPMANX and X11 support that works at RPI1 and RPI2 8)
But it has a Vsync option enabled, so at the RPI2 we have 50FPS 100% speed accurate, when I disable the realtime emulation, it syncs to 60FPS 120% speed :'(
Now I can make an only executable for RPI1 and RPI2, and with a code which senses the board and I can enable downgrade options for RPI1 (320x200, etc). 8Bpp mode gives me a black screen for the emulation so this is the way, recover the low resolution modes for RPI1 ???
So I have lot of things to do with this.... Coding time! 8)
Many thanks. I really look forward to a decent pi CPC.
I'm new to github but I will try my best...
KaosOverride/CapriceRPI · GitHub (https://github.com/KaosOverride/CapriceRPI)
I will continue with the executables at MEGA, but source will be managed online.
There is a master and a WIP1 branch. I will update the master and do branches for each new WIP or version :D
As I said, I'm new with all this github and online repositories, so be patient!!!
Hello Kaosoverride,
First of all, I'll have to say "Thank you" for your efforts - I used to own a CPC464 back in the 80s and I loved it (well, until I got an Amiga2000 back in 1988...)
Now I'm very happy to be able to show my kids what computers were like when I was young, and of course also to be able to play my favourite games again.
I downloaded the exec of CapriceRPI2 from mega, and it's all fine on my (daughter's) RPI2 - only thing is, if i try to use dispmanx (doing that export.... thing before starting caprice), I get
pi@raspberrypi ~/CPC $ ./capriceRPI2
======================
CapriceRPI2 WIP Start:
======================
V0.1 (CaPriCe32 v4.1.0) WIP
KaosOverride - 2015
W.I.P 1 for RPI!
...
0 joysticks were found.
video_init() failed. Aborting.
Any idea from your side what to do to get H/W scaling and a "full screen CPC experience"? Btw, I'm running the RPI2 on 1024x768, is this maybe an issue?
Many thanks in advance and kind regards,
Peter
Are you runing it at the console or under X?
For full screen must be run at the console.
This is strange because I tried it also with composite out.
If it's under X please make shure it's at 16bit colour mode. It's fixed for that bpp.
The WIP 1 also is compiled with an old DISPMANX SDL version. There is one much better and newer that I'm now using. I have WIP 2 almost ready but I want to make some cleaning at the menus. Maybe I can close WIP 2 as it is now at github plus some extended error message at the video init tomorrow night.
Oh, well, I opened a console under X... I'm quite sure it's not a 16bit colour mode.
Unfortunately I'm away from home until Thursday evening, so I can't test before then.
Thank you for your fast and kind reply, I'll report back!
Peter
I'm very sorry but there is a problem with my devel RPI2. When I exit from capriceRPI it halts the machine at the text console (but I can ssh into the RPI2 and make a reboot). 2 days ago didn' happend...
Now I have to check what I have mess... :(
Murphy, why!!!
How easy is this to incorporate in RetroPie as an alternative emulator "press X or M" jobbie?
Solved!!!!
Pre-WIP2 released. Has autodetection of RPI1 so it selects low-res mode for it. Has some error detection when trying to run under X at incorrect bpp. Latest DISPMANX SDL
here:
https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A (https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A)
Al source is updated at github also.
PHabermehl, please make an "unset SDL1_VIDEODRIVER" if you run under X, SDL tries to run as text console because of the set variable, is nbot trying X SDL, so it gives error and exit. At text console I have tried with and without the set, and works now fine.
Quote from: Beaps on 12:29, 15 July 15
How easy is this to incorporate in RetroPie as an alternative emulator "press X or M" jobbie?
Well, for my testings I directly replaced the cpc4rpi binary an edit the Amstrad script (To add support to CDT and SNA, adding the extensions). Command line runs like cpc4rpi (And Caprice32...). I have also deactivated the initial splash screen when command line params are detected.
When I finish to clean and redo some of the menus, I will made some try to run as alternate emu, and make some doc about it :)
Thanks for your efforts, I can hardly wait to try the new (pre)release...
One question meanwhile, just theoretically, do you think your sources could be compiled under, let's say, a recent SuSE Linux? How about the display manager stuff?
Kind regards,
Peter
Yes, should work, as original Caprice32 does. When this code was for GP2x I also was able to compile under Win32 for testing.
But take care about hardware dependant code, as the WhichPi() in menu.c. It just checks a file under /proc , but you can patch it replacing all the code with a return 129;. The rest should compile with no problem. Just use the normal makefile (not the .static). You need libSDL1.2-dev, libSDL-image-dev and libSDL-ttf2.0-dev (and maybe many others like zlib...)
Then if you have X11 at 16bpp colour mode for windowed mode, or console in framebuffer mode for fullscreen SDL, should work.
Just workin with some ideas for the menus. Now that there is no need for that RUN" and CAT options thanks to the autorun feature, I have room for load at B drive :)
And a drive status at the bottom!
What do you think?
Quote from: KaosOverride on 22:55, 16 July 15
Just workin with some ideas for the menus. Now that there is no need for that RUN" and CAT options thanks to the autorun feature, I have room for load at B drive :)
And a drive status at the bottom!
What do you think?
Yes!
-------------------------
Ran WIP2 release yesterday, looks good :-) Played Kong strikes back until my daughter had to go to bed :-(
Quote from: KaosOverride on 22:55, 16 July 15
Just workin with some ideas for the menus. Now that there is no need for that RUN" and CAT options thanks to the autorun feature, I have room for load at B drive :)
And a drive status at the bottom!
What do you think?
Nice, clean and simple to use :)
Quote from: KaosOverride on 23:07, 15 July 15
Then if you have X11 at 16bpp colour mode for windowed mode, or console in framebuffer mode for fullscreen SDL, should work.
Patched menu.h, installed some devel packages, compiled without errors... Perfect, many thanks! :D
BUT I'm unable to set 16bpp and yet also unable to run it from console because I don't know how to set framebuffer mode.... :( Stupid me...
Any hints? Any chance to run under 32bpp in X11?
Thank you in advance,
Peter
Sorry for being dim :laugh:
Does this need compiling before ftp'ing to the opt/retropie/emulators
I wanted to try this out as another CPC emulator when you press X or M in retropie
Quote from: Beaps on 16:12, 17 July 15
Sorry for being dim :laugh:
Does this need compiling before ftp'ing to the opt/retropie/emulators
I wanted to try this out as another CPC emulator when you press X or M in retropie
Some light ... No, you don't have to compile anything. The MEGA folder posted by Kaosoverride contains both, a source code archieve and an archieve with the executable. So just download th executable and that's it...
Have fun
Peter
OK I got a little help from a friend ;D
I do have a problem tho CDT files aint showing up in RetroPie, do I need to add CDT in a config somewhere?
At /etc/emulationstation/es_systems.cfg
Edit and at the Amstrad CPC change extension from:
<extension>.cpc .CPC .dsk .DSK</extension>
to
<extension>.sna .SNA .cdt .CDT .cpc .CPC .dsk .DSK</extension>
Also at <command> you can change your default CPC emulator from cpc4rpi to capriceRPI2 editing the line.
Quote from: PHabermehl on 09:52, 17 July 15
BUT I'm unable to set 16bpp and yet also unable to run it from console because I don't know how to set framebuffer mode.... :( Stupid me...
Any hints? Any chance to run under 32bpp in X11?
CapriceRPI2 is fixed to 16bpp. This is made this way because the default settings at the Raspbian and RetroPie distros. Well, the X11 support into the DISPMANX SDL is more a facility for the development than a feature, but it makes the sense of the emulator being both a more featured CPC emu for RetroPie adding CDT SNA and menus, and also a generic and easy to use emu, under Pi's X11 and Pi's console.
Going to 32bpp under Pi will kill performance :( also 8bpp gave problems so all modes but 16bpp are deactivated.
It's not the goal of CapriceRPI2 to be a generic emulator to be compiled under Win, Mac, Linux, etc so these bpp modes are not planed to be supported, but when a decent release is done, with the menus finished and all that, these modes can be repatched.
Also the video mode testing routine I added to the video_init() that advises that the screen is at incorrect bpp can be used to detect the bpp needed and reconfigure the emu... But that is another story.
If this Caprice was done with "any computer" in mind would not be called CapriceRPI2, but FancyCaprice!!!! :P
And because RPI1 is working fine, I am droping the 2 from the name, so it's CapriceRPI!!! :)
Quote from: KaosOverride on 00:36, 18 July 15
At /etc/emulationstation/es_systems.cfg
Edit and at the Amstrad CPC change extension from:
<extension>.cpc .CPC .dsk .DSK</extension>
to
<extension>.sna .SNA .cdt .CDT .cpc .CPC .dsk .DSK</extension>
Also at <command> you can change your default CPC emulator from cpc4rpi to capriceRPI2 editing the line.
Nothings ever simple....
I ain't got a es_systems.cfg file in that folder
Sorry, I was looking at my RetroPie installed at my Raspbian distro, not at RetroPie dedicated distro.
From EmulatorStation FAQ:
QuoteQ. EmulationStation works even though there's no ~/.emulationstation/es_systems.cfg file! What's up with that?
A. There is probably a pre-configured es_systems.cfg file in /etc/emulationstation/es_systems.cfg (Linux only). See README.md for more detailed documentation.
So it can be at your $HOME/.emulationstation also.
Getting there now and enjoying the emulator, very cool.
I do have a question tho lol. How do I disable turbo speed?
Is there a config file where I can turn it off?
Do you mean the tape turbo? Is enabled by default when loading CDTs- You can disable it at the Tape menu, last option. There is no CFG, the emu has it's defaults. Some are customizable from menus after execution, but if the idea is that you want to play a game, the CDT just loads as fast as it can.
For tape the turbo speed is only enabled when tape motor is ON and cassette status is playing. If a loader forgets to stop motor, then speed is turbo until you disable it from menu. I think that we all agree that more than 95% cases for a gaming experience is that tape loads as fast as it can, and you start playing.
Also, 464 configuration is enabled when a CDT is loaded via command line, then you can change the model to 6128 or just add more RAM up to 576, if you want to load a CDT game in 128K mode, and manually rewind the tape and play it from tape menu
I actually prefer to hear the original loading sounds. Does that mean I have go go in menu and turn it off quickly?
Also when I select a cdt in retropie it goes to the 128k Amstrad, autotypes
ITape
Run"
Which is superb!
Uhh... I was convinced that I enabled the model change when a CDT was included at command line :laugh:
I took te decision of the tape turbo by default because, under a generic gaming system as RetroPie, waiting 5-10 minutes for a game has no sense.
For Amstrad users, the tape data noise is love music :P
I guess maybe releasing two versions with tape turbo on and tape turbo off would be a good idea as I load .dsk files if I just want to load a game quickly :D
Or a command line option that yo ;D u use as part of the alternate executable. If you configure it as "capriceRPI2 --notapeturbo" instead of "capriceRPI2" it should work. (Not with actual executable, first the option must be coded!!!!!)
Well, I have updated the github source for compiler-addicts :P Menu reworks and file loading routines rewriten. Now you can load from ZIP at the menus.
Maybe some cleanups, the --tapeturbo and something else, and a release is possible (And forget about the WIP !!!)
Also since first release, the --nosound command line switch was working, since the times of GP2x
I want to finish this emu reaching some mature level and forget about it for a while. I have many other ideas (CPC real hardware related) that I would like to devel. I really enjoy with capriceRPI but I also want to do more things!!! ;D
EDIT: planned --notapeturbo switch for command line. Will be avaiable at next release, but release RELEASE, we are leaving WIP stage. 8)
So like this?
CapriceRPI2="/opt/retropie/emulators/CapriceRPI2/capriceRPI2 %ROM%"
default="CapriceRPI2 --notapeturbo"
or
CapriceRPI2="/opt/retropie/emulators/CapriceRPI2/capriceRPI2 --notapeturbo %ROM%"
default="CapriceRPI2"
or
CapriceRPI2="/opt/retropie/emulators/CapriceRPI2/capriceRPI2 %ROM%"
default="CapriceRPI2 --tapeturbo"
or
CapriceRPI2="/opt/retropie/emulators/CapriceRPI2/capriceRPI2 --tapeturbo %ROM%"
default="CapriceRPI2"
Either way none of them work
Yes, but at next release. As I said, the option must be coded, WIP2 has not the option...
Oh ok I'll chill and wait for the next release :P
Enjoy WIP2 until next release!!!! :P
GitHub updates, new menu arrangement. Config submenu now for video options.
Added the --notapeturbo to the GitHub :P
I have to finish the "save snapshot" option (pending since 2007!!!) and some minor cosmetic changes...
Also I will try to recover the code for 32bpp compatibility.
Then there will be a RELEASE V1.0 :D
I updated my Pi last night etc and Caprice Emu is really crackerly sound?
The original cpc emulator plays fine?
For compiler addicts, functional SNA save menu (unfinished) updated at GitHub
Re-update at GitHub and binary/src upload at MEGA folder of the Pre-release
Added fastload snapshot option, finished save snapshot option
Added --tapeturbo command line option for disabling tape turbo loading
How does save/fastload SNA work?
I have made an SLOT style system, where the emulator takes the DSK, CDT or SNA filename and generates a FILENAME_MEDIA_NUMBER.SNA filename for the new SNA. For this, tries to create a SAVE folder into ./SNAP folder, if not, tries ./SAVE folder.
Example, you load BATMANMOVIE.DSK so the slot filenames will be BATMOVIE_DSK_XX.SNA where XX is between 00 and 04 (5 slots)
With the save option, existing slots will be shown, and you can overwrite.
With fasload option, will use the loaded DSK, CDT, SNA filename to show only the slot SNA for that file.
Typical situation:
You load the BATMOVIE.DSK, play some time and thn you want to save, use the option and f there are allready slots used, will be shown, if there are slots free, NEW FILE... will be shown to create a new slot. Then you exit the emu.
Next day, you load the BATMOVIE.DSK and use the fastload option, the slots for the DSK will be shown, select and continue your game!!
you can use normal load option to enter SAVE folder and select ANY slot for ANY file :laugh:
still loads at 100 miles an hour ???
Is this right?
cpc="/opt/retropie/emulators/cpc/cpc4rpi %ROM%"
CapriceRPI2="/opt/retropie/emulators/CapriceRPI2/./capriceRPI2 --tapeturbo %ROM%"
default="CapriceRPI2"
Oh my God... is --notapeturbo :-\
And finaly... V1.0!!!
Some little cleanup, minor aditions, and it's ready!!!
Also I have make support for 32bpp color mode, people asked for, so they have now :D
Source at GitHub and Mega folder.
Executable at Mega, with static SDL DISPMANX or dynamic (Raspbian is supposed to adopt DISPMANX SDL as the official) :D
Also, renamed to CapriceRPI, no more CapriceRPI2
GitHub:
KaosOverride/CapriceRPI · GitHub (https://github.com/KaosOverride/CapriceRPI)
Mega:
https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A (https://mega.co.nz/#F!qctQXKiI!oPgeSUzDj6rN_1GAPFbe4A)
KaosOverride, you're my HERO ;D ;D ;D ;D
Just compiled it under OpenSuse 13.1 and it works (even with 32bpp)
I'm so happy because I just had an accident being unable to walk for some days, so I can give a meaning to all the free time I have now!
CPC, here I come!
Yes but... does it detect as RPI1 or RPI2? At other hardware that is not an RPI, you have to tweak at cap32.cpp the call to WhichPI(), where is compared with 128. Change 128 to 0 and should work forcing RPI2 mode.
By the way, do you have any kind of magenta or pink glitch at the menus?
I broke my Achiles some months ago and stay some time without walking, I now what is that.... Now I'm at recovery, fortunately and I hope to be back for work at this month end.
[ot]Oh well ... then get well soon, too!
For me, it was the quadriceps filament in my left leg.......
[/ot]
Yes, I do have the magenta background on the two menu items left and on the two right. only the one in the middle is okay. But ... it all works, so I don't care much...
I changed the WhichRPI() in menu.c to always return 129 as you recommended, so I think I'm fine, right?
Oh, and one more thing, the fullscreen on my hd display does not respect the aspect ratio - looks, well, not so good. Any chance of forcing 4:3 with black or (system color / green / whatever) border?
Aw, don't mind, I'm sooo happy, because this CPC emu now has a GUI and runs Kong strikes back in split screen mode perfectly!
Thanks for your work!
Peter
Oh, one more serious question:
on German keyboards, we do have the "QWERTZ" layout. Many games that need the "z" and "x" keys are hard to play because "y" and "z" are swapped...
Any chance to solve this Caprice-internally (an option "swap y and z keys" ?
Thanks,
Peter
There are some options at Caprice to mod the firmware rom to support different keyboard layouts, but are unused at CapriceRPI.
I think that can be added an option for keyboard layout change at the menu, and a command line option for the emulatorstation launcher to change default UK to other. But I have to make different layouts for virtual keyboard :( Also I remember only mod rom for FR and SP keyboard, so german has to be added.
I have also detected some fails at the autorun functions, so filenames of 8 chars are only filled to 7 :(
I will add that 2 things to the To Do list, sure :)
I think there was never a German CPC keyboard, it was identical to UK. My concern is just that the host keyboard is German, thus "z" and "y" are swapped in comparison to the UK CPC layout, making it impossible to play many games - I tried one of my all time favourites, "Thrust", where you can't redefine the keys and need "z" and "x" for rotation of the space ship....
V1.1 with bugfixes
-Hope to solve the transparency at the GUI at 32bpp
-Fixes to the Autoboot system
-Extra makefile for compiling at not RPI devices (take care to make clean first then do make -f makefile.notpi)
Sorry but until next week I cannot prepare a binary package, this is going to be a long weekend for me... Only GitHub update...
For the German keyboard I have some kind of fix only for console input, not X11
sudo apt-get install console-data
Then when asked, selewct not to change the actual keyboard layout
So everytime you want to run CapriceRPI at the text console, you have to do:
sudo loadkeys /usr/share/keymaps/i386/qwerty/uk.kmap.gz
./capriceRPI
sudo loadkeys /usr/share/keymaps/i386/qwertz/de.kmap.gz
This is a host keyboard issue, but also some kind of patch can be done at Caprice with time. I will also take a look for FR and SP keyboard support for the future... ;D
Sir, sorry for being a little pedantic, but ... Github v1.1 does not contain the makefile.notpi
Pedantic? O no!! Is my mistake!! Now it should be OK :)
GitHub only uploaded "known" filenames, I forget to add the new files!! :-X
Ok, now it worked all fine!
Thank you and have a nice weekend!
Great!!
By the way, did the keyboard reconfigure tip work for you? It's taken fro a PC Linux forum but did work at my RPI. It swapped the Y and Z keys :)
Yes, the keyboard trick worked on my Linux machine - haven't tried it on the RPI yet, because I finally gave a joypad to my daughter (officially, it's her RPI, for education only) :-)
First off - 8) KaosOverride (http://www.cpcwiki.eu/forum/profile/?u=431)Thanks for doing this great work on the RPi
I have been trying it for the last couple of days. I did not have a CPC back in the day :o , I had a Spectrum but my wife had a CPC. It is great fun going through the old games and remembering good times.
I have a suggestion, is it possible that once you are in the game/rom folder, holding down on the joystick scrolls through the list? At the moment you have to keep pressing/tapping the joystick button to scroll down (I get tired before even playing a game :D )
I see Page Up/Down works on the keyboard so that is great. Also is there a config file so that it auto goes to a pre-defined folder? (e.g. /home/pi/roms/cpc/ This would be handy if/when this great work gets integreated into RetroPie.
Can you also put the 'version number' on the capriceRPI splash screen please. I don't know how to check which version you are running otherwise.
Some info to help people:
I installed this onto a FRESH Raspbian image 5/5/2015 I think (the latest). First of all I installed the improved SDL files. Instructions here:
https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=99822 (https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=99822)
But then I got compile errors when trying to build capriceRPI:
menu.c:20:21: fatal error: SDL_ttf.h: No such file or directory
menu.c:21:23: fatal error: SDL_image.h: No such file or directory
Sorry not the best way, but I fixed the issue by:
sudo apt-get install libsdl-ttf1.2*
And I installed SDL_image-1.2.12.tar.gz (download off the main SDL website - Index of /projects/SDL_image/release (http://www.libsdl.org/projects/SDL_image/release/) ) but SDL_image.h was installed into the wrong place, so that needed moving:
Problem was SDL_image.h was being looked for in /usr/include/SDL but it was installed in /usr/local/include/SDL.
Once this was moved I did 'make' and it all worked great 8)
Thanks,
Higgy
Long time ago, at the GP2x times, there was some code to try that, when you keep pressed it advanced more kickly the list, but I changed to the page up and down model using the left and right triggers of the handheld. This was remapped to the Page up and down at the keyboard.
Also I am considering the left-right joy dir. selection idea a bit wrong because when you use up and down dir. for selecting options you can accidentally press left or right... And that function is repeated with the fire buttons.
All this was intended like a "phase 2" at the menu reworks. Phase 1 was done with the new options layout plus driveB use and snapshot saving system.
Caprice RPI tries to not depend of external files, this goes with firmware ROM files, GUI resources and the default config. Its mandatory for easy integration in frontends. But you can do an script to do the trick. The file load path is configured from where you run the emu, not from where the emu is. So this should work
Script idea:
cd /where/your/dsk/cdt/sna/are
/where/you/have/capriceRPI
You don't need the disk tape snap folders, if they are not at the folder from where you execute the emu (not where it is located) then that folder will be used as the "top" dir. Yes, it is sandboxed to that directory, this was ideal for the GP2x handheld, to not exiting the sd card.
In my case, using it as a cpc4rpi replacement I found at the filemenus the retropie cpc folder with all the dsk and cdts, and if you have write rights then the save folder for snapshots will be created and used.
Many thanks I got that all working ;D Goes straight to my /home/pi/roms/cpc folder
Now I have an autobooting set-up that goes to a basic text menu with:
Amstrad CPC - capriceRPI
Commodore C64 - VICE
Sinclair Spectrum - ZEsarUX
I will add some additional 8-bit computers. I hope now to add a start-up IMAGE/movie and look at using AdvanceMENU to start games from a list.
It might be useful to add in your notes/readme that you need the following items installed if building on a fresh Raspbian install:
SDL_ttf-2.0.11
SDL_image-1.2.12
Thanks again.
Is there some problems with Autoload?
I've been using CapriceRPI for a bit now on different games, and first of all Autoload would work:
Select game under 'Load Disc' then press joystick left and Run"... etc appeared and the game loaded.
Now it does not seem to work. Sometimes just a R appears instead of Run"...
Also any way of mapping commands e.g. virtual keyboard to joystick buttons? I have a USB Competition Pro (4 fire buttons) and one as default is fire, and another is Caprice MENU, but would be nice to use the other 2.
Thanks
What version are you using? Latest GitHub compiled? I will try tomorrow to update the MEGA folder mirror also with precompiled binaries for RPI 1 and 2.
The "only an R" with autorun may be because an input device is simulating keystrokes, but it's a very rare case...
The joy buttons are mapped from Joy 1 to 3, to the 3 fire buttons of the CPC. The 4 to 6 are to menu open, virtual keyboars and OSD info. Fire 2 and 3 from the real joystick should be usable under the emulation. Fire 2 is blocked for redefine options at many games (Why?? Its usefull to allow it, but they did the games that way...) But the undocumented fire 3 can be used at the redefine options for secondary fires or other options.
I tried to make the joystick code the most generic. Analog axis and the first 6 joy fires. Most USB pads emulate the analog axis and the fires 5 and 6 are not so important options (vkeyboard and OSD info) so 4 fire joysticks are very usable.
I have two PS2 like USB pads with switchable analog/digital pad, and worked fine with the analog control and the directional pad in analog mode.
I don't think there is need to remap keys to fire 2 and 3 as a general case, maybe very very few games force you to use a key from keyboard and don't allow to redefine it to Fire 2 or 3...
Hello,
I compiled v1.1 from GitHub.
Just to clarify Autoload:
1. Turn autoload option on.
2. Select .DSK file.
3. Move joystick 'left' when highlighting Load Disc text
4. Command Line screen should appear and Run"... appears?
I have just tried. Sometime I can get an 'R' but most of the time just a normal blank command line screen.
It was working once I first started using Caprice. Maybe I am doing something wrong?
Also I just tried a cheap USB PS3 copy, but the D-Pad does not work and the Analogue stick is too difficult to select menu items, it jumps about. I will try another pad.
Thanks
No news for such a long time?
Hope, you're okay, KaosOverride!
Hi!!
Latest update from github let you use Joys 3 and 4 emulating ToTo's multiplayer adapter.
Also some bug fixes for autoload. There was for example an error which failed with full 8+3 character filename, like a RUN"SABOTEUR.BAS", something like RUN"SABOTEUR.BA and no ENTER pressed :picard: There are still some issues, but they are most priority of |CPM command over RUN" when there is something at the BOOT sector. I have an image of 1943 that needs RUN"DISK but triggers |CPM because the SYSTEM BOOT sector is not empty... I will try to correct this, also to complete ToTo's multiplay I must emulate the ghost ports, now only the oficial ones are emulated, just for compatibility...
Hope that most issues are solved!!!
Good news!!! CapriceRPI is now part of RetroPie!!! As secondary emulator, libretto-caprice is the default one. Thanks to all the users of CapriceRPI because you make this happen!!!
Hi KaosOverride,
First of all, happy new year :-)
Second, thanks for the update!!!
Third, (of course) I've got a question... I compiled under SuSE Linux, all worked well, but I only have LowRes, pressing F2 switches the border on/off, but no more HiRes screen/window. What did I do wrong?
Oh, and - sorry - one more thing: in fullscreen mode, the CPC display is stretched to 16:9 aspect ratio which does not look very nice. Any chance to keep 4:3 ratio in fullscreen mode (except for getting a 4:3 monitor)?
Thank you and kind regards,
Peter
@PHabermehl (http://www.cpcwiki.eu/forum/index.php?action=profile;u=1457), what makefile are you using? For anything that is not a Raspberry Pi, use "makefile.notpi". The lowRes modes only is because CapriceRPI cannot identify the machine as an RPI2 so it goes to RPI1 mode, LowRes for low CPU use.
Also, CapriceRPI is mainly for a Raspberry throught HDMI, and uses the SDL Dispmanx, it is hardware corrected to 16:9 with black at the sides to emulate 4:3. You have the same effect as normal Caprice with 16:9 screens. A correction to 4:3 emulation, with black borders at the sides must be coded, sorry.
Hello KaosOverride,
well, yes, I used the .notpi makefile - did not work anyway. Basically I did what you advised before and patched menu.c to alwas report model > 129, now it works...
Kind regards,
Peter
Oh! Then I have to recheck the makefile and/or compiling conditions!!! :o
I have rewritten the joystick to better let some more new options as keyboard emulation, etc. So next version will come with re-joystick code with new options and the makefile/notpi recheck!!
Yesterday I had the chance to download and build the latest code "as is" from GitHub at my netbook using a Linux Slash. With a "make -f makefile.notpi" it compiles OK and let me use the hi-res modes... ???
Please, try a clean download (Now versión 1.2) and give a test
The resulting ejecutable is CapriceRPI.notpi
Well ... Download, unzip, compile ... and it works!
I guess I screwed up something last time because I unzipped into the previously existing directory. This time I extracted the data into a new directory.
Sorry for the trouble and thank you for your support.
Kind regards,
Peter
Maybe some make clean needed or anything else :)
For next version I hope to gain some time to make new menu options for the joystick stuff, most of the joystick rework+dynamic reassign is done :) 9 month babies don't let too much free time!!
Version v1.3 at GitHub!!!!
Now a new submenu for joysticks. The 4 USB joypad can be redirected to different options. The 2 CPC standard joysticks, ToTo's Multiplay and some keyboard presets. "OPQA Space CTRL Copy", cursor keys with Enter, Intro and F0, and Row5 or row7 from keyboard matrix (Don't collide with opqa or cursors, and are a natural derivative from joy 2 idea, the row 6 keys...)
Experimental CRT emulation, just for fun. Needs alot of rework but gives more eyecandy than classic Caprice Scanline mode :)
Enjoy!!
Quote from: KaosOverride on 22:00, 28 February 16
Version v1.3 at GitHub!!!!
.......
Enjoy!!
Thanks, I already do! Worked perfect this time.
Peter
Also forgot to mention. At the Joystick submenu the reload option lets you reinitialize the JoystickSDL subsystem so you can plug a new joystick, select this option and joystick is added without restart!!
Grey joysticks are not detected. Yellow ones are active :)
I absolutely love this on Pi3 but I have a few Niger nigerly issues.
There are two types of caprice capricerpi
Lr-capricerpi
Capricerpi
Issues I found are as follows.
Lr-capricerpi auto loads the game but the resolution is all to cock. If you press one of the F keys it shows a mouse cursor but you can't move it, it kinda freezes
Capricerpi only autoloads certain and you have to keep pressing F2 to switch to the right resolution everytime you play a game.
Any ideas
Tried to compile on lubuntu 15.04, got an error due to #include "SDL_ttf.h" missing. SDL 2 ?
Quote from: genesis8 on 13:03, 26 June 16
Tried to compile on lubuntu 15.04, got an error due to #include "SDL_ttf.h" missing. SDL 2 ?
It doesn't look like uses SDL2; you need to install libsdl-ttf2.0-dev (or whatever is the package in the rpi).
Use "apt-cache search sdl ttf" to find the tight package and install the "-dev" version with "apt-get install" (eg, "apt-get install libsdl-ttf2.0-dev").
EDIT: oh, missed the "ubuntu 15.04" part! "apt-get install libsdl-ttf2.0-dev" should do it!
Thanks, I also had to add libfreetype6-dev and libsdl-image1.2-dev
It works now.
I'm running some tests and this version fixes all the audio issues I had in the Caprice32 4.2 release!
I'm adding a command line interface and this emulator may replace my current setup with WinAPE and WINE!
How do I load extension ROMs with capriceRPI ?
Unfortunately CapriceRPI is aimed for gaming, mostly called from some fancy frontends like EmulatorStation. It has some "fixed" settings and some handy features like the auto boot for DSK and CDT. Tries to be as easy to run as a console emulator. Also has some taste of stand alone emulator so you can change DSK and run other games without returning to the frontend. But ROM management is not in its roadmap. But the baremetal original functions to load the ROMs are there. Some time ago, when it was a GP2x port, I had some lines of code for loading for example symbos roms. Just something as easy as " if xxxx.rom file exist then load_rom xxxx.rom at slot X"
The magic of opensource is that you can fix CapriceRPI to your needs and add the rom functions. Just easy fixes, f you just need one particular rom just add the load_rom at the proper line. I
will upload soon an update to fix some analog joystick artifacts at the menus. I also want to try to be able to reproduce the Batman Group pixel and colour hack modes but if I can't achieve it I will just make the joystick fix as minor update.
I will check the old load_ROM code and restore it if is deleted as a guide for you. It just tries to load the 4 symbos roms, and also I think it tries to load DES desktop Then if the rom file is at the ROM folder it loads (Always) if it's developer utilities to use sometimes then a command line option can be added (Yes, appart from the DSK/CDT/SNA to load there are some stupid command line options, nothing useful, but a good skeleton for personal fixes if you need customization)
For general purpose emulator, what Caprice32 needs is some kind of generic menu, like the one of the MSDOS version of CPCE :) And a read/writable. INI with the options!! Maybe in a future... The GUI of CapriceRPI is so console oriented....
EDIT: Oh yes, the code is still there... Line 4424 of CAP32.CPP. Fell free to edit and add your favourite ROMS. Have in count that if you change the CPC model to 464, 664 or get back to 6128 you lose the ROM config... Also using the command line selector at line 4330 you can add an option and condition your ROM settings, like --symbos to force the SymbOS ROMS to load.
I have never used the MultiFace functions of Caprice32. Do you think it is usefull for debug and development under a CPC Linux SDK instead of an integrated debugger like WinAPE or CPCE? For the future a --devel command line arg can be used to load the MF2 ROM and enable the hardware at the emulator engine.
DONE Joystick hotfix! Github updated to V1.3a
Now I will continue working at V1.4 :P
Hello KaosOverride,
any news on v1.4? Got a Pi3 for Christmas, need food for it ;D
Anyway, hope you had a nice Holiday and wish you all the best for 2017!
Peter
No, sorry. I haven't managed to do a nice crt blending of the even and odd frames. I'm now more dedicated to make a C socks lib under cpctelera for other projects I have in mind. Anyway my limited time makes me avance slowww :-[
Don't mind, we love CapriceRPI as it is.
My 6-year old son starts to get Manic Miner addicted, a good sign, I guess.
Kind regards
Peter
Little update for CapriceRPI
Fixed some trouble with ZIP files at readonly dirs and media.
Added more command lines!
Usage: CapriceRPI [DSK,CDT,SNA file] <options>
Options:
--model 464/664/6128 = Set model
--mem 64/128/256/576 = Set memory
--green = Set green monitor
--kbl en/fr/sp = Set keyboard layout
--drvB [DSK file] = Insert [DSK] in B drive
--nosound = Disable sound
--notapeturbo = Disable tape turboload
Guys,
I desperately need your help!
I updated our RPi to raspbian stretch and re-built CapriceRPI2.
I had to replace -lpng12 by -lpng16 in the makefile, but this worked flawless.
Good thing: CapriceRPI now also runs in full screen mode, which it did not before.
My problem: Caprice is veeeery slow now. Below 20fps (which I could accept)), but also its very sluggish and you actually can't use it any more.
Any recommendations? My kids are very upset because I broke Manic Miner...
Kind regards and still a nice holiday season
Peter
Okay, I had to switch back from the experimental GL graphics drivers to the legacy driver, now it works as before (but just without scaling in full screen mode)
Peter