ColinPitrat / caprice32

An emulator of the Amstrad CPC 8bit home computer range.
GNU General Public License v2.0
146 stars 32 forks source link

Autorun #38

Open ghost opened 7 years ago

ghost commented 7 years ago

Hi

Is that possible to add autorun ?

Ex : ./cap32 'renegade.dsk' to play directly.

Thank.

ColinPitrat commented 7 years ago

You mean to automatically execute 'run"xxx' if xxx is the only runnable file ? I thought there was already a ticket open for that but I can't find it anymore.

This should be feasible, with a complication when there is more than one eligible file. I'm not 100% sure of the criteria for a file to be chosen, BAS and BIN extension are often used, I think sometime also no extension.

I'm not sure also when to do it. Should it be done on reset ? Or only at startup ? It should be configurable of course. A shortcut to do it manually would also be nice.

ghost commented 7 years ago

Yes, I mean 'run"xxx'. Very few CPC emulators can do that; it's very useful.

If that is possible, I think it should be done at startup.

ColinPitrat commented 7 years ago

There's already a way to send input to the emulator used for the virtual keyboard. Reading the list of file when loading the .dsk should be easy. So it's really just doing that, choosing which file to load and adding 'run"file' to the input to send.

I will try to have a look quickly as it is, indeed, a nice feature.

ColinPitrat commented 7 years ago

For info, I implemented the -a/--autocmd option that allows to automatically execute one (or multiple if repeated) command(s).

ghost commented 7 years ago

Thank, I'll give it a try.

Uukrull commented 6 years ago

Would it be possible to add support for the .kcr format?

https://github.com/redbug26/crocods-core/wiki/kcr

From the info supplied:

Recently, I build a cabinet arcade and I want to play Amstrad games on it. The existing file format are not enough.

I want:

Quick start: I don’t need the splash screen I don’t want to type the RUN" things To play with a joystick. Some game need keyboard to select the Joystick (eg., on Boulderdash, you need to type the Enter key to begin to play) What I propose is the .kcr file format.

.kcr is a zipped archive that contains 4 files.

capture.gif: a screenshot from the game (used for a splash screen for instance) disk.dsk: the main disk snapshot.sna: the state from where the game will begins settings.ini: some key mapping.

And here you can download a couple of examples.

ColinPitrat commented 6 years ago

That sounds interesting. Could you please open a separate issue for that ? I suspect running caprice and providing both the SNA and DSK on the command line would work fine. In this case it would be easy to build a KCR support around that in a shell script without even modifying caprice. It would just unzip the KCR and run caprice with the right params.

FloLore commented 6 years ago

Thanks ColinPitrat, for all the work you do, but how can we load software "ùcpm or |cpm" with autorun? If it is not implemented, will you be able to add the option please? Thank you

ColinPitrat commented 6 years ago

The following works for me, no matter what keyboard layout I use: ./cap32 -a "|cpm" file.dsk

FloLore commented 6 years ago

Thank you for giving me an answer very quickly, and for all this great work you do on the emulator!

FloLore commented 6 years ago

Hi ColinPitrat, I had not tested the command run"... thinking it would not be a problem for me, but when I type for example: cap32 -a "run"disc.bas" temp.dsk, the emulator copies rundisc.bas without " What is the solution please?

ColinPitrat commented 6 years ago

You need to escape the quote in the argument with \: cap32 -a "run\"disc.bas" temp.dsk

FloLore commented 6 years ago

Actually, I could not find ... Thanks ColinPitrat

FloLore commented 6 years ago

Hi, I have another question, I would like to load software on a configuration "Amstrad 6128 Plus" in autorun. What command line does it take to not have the boot menu (f1: Basic, f2: Burning Rubber) so that the autorun can run?

ColinPitrat commented 6 years ago

Indeed, this was not supported (well, not easily). I just added a way to do it. You can try the latest version from git. The trick is that it takes time for the Basic to load after pressing F1 so you have to insert a few useless keys (spaces) to give it some time.

For example: ./cap32 -a CPC_F1 -a " cat"

FloLore commented 6 years ago

I'll try this, thanks ColinPitrat !

FloLore commented 6 years ago

Hi Colin Pitrat, Actually, the command added for a autorun on CPC + works but with a space of more (2 spaces in all before "cat").

Thank you very much for your work and your determination to emulate an Amstrad CPC / CPC +!

2play commented 4 years ago

@ColinPitrat I ll move my question here so its more relative I think what most of us we are trying to ask (thank you for the -a noted) is something similar to this https://github.com/KaosOverride/CapriceRPI/blob/master/src/autoboot.c

tx in advance for your consideration.

ColinPitrat commented 3 years ago

@2play Thanks for this. The run" only works for tape though as far as I remember. With disks you have to provide a filename which requires to parse the disk content and decide which file is the right one to run.

This is feasible but I didn't take time to look at it so far. I think the -a option covers most needs because if you're building yourself an arcade system, you can just create different shortcuts with different -a options for each game. But I recognize this would be a nice feature to have a generic smart one.