News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Gryzor

CP/M Box - a PCW emulator

Started by Gryzor, 09:06, 11 July 11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Gryzor

Never seen this before (came up today in csa8), seems nice:


http://www.habisoft.com/pcw/index_uk.htm



CP/M Box

TFM

Last Update is just 3 weeks old, get it :-)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

SyX

The new version of CP/M Box appeared a few days ago, the new features are:
- Fixed a few things in the disk emulation (protections). Now works Bob Winner, Twin disk simulation, etc...
- Fixed AMX mouse emulation. Master Paint works perfectly.
- Snapshots. As the same that with disk images, you can drag-and-drop them over the emulator window to launch them.
- Set full screen, using the maximize window button.
- Commandline options, specially made for an external launcher (CPCloader/CPCgamesCD will give support to CP/M Box very soon ;)).
- Debugging API (suggested by SyX).
- Another few things...

The commandline options are (you can use - or / ):
/A name.dsk  ->  Insert a disk in A drive.
/B name.dsk  ->  Insert a disk in B drive.
/F  -> Set full screen.
/O  -> Launch the emulator (play).
/P A V  ->  Poke in the memory address 'A' (absolute address) the value 'V', both values are in hexadecimal.
/S name.pcw  -> Load the snapshot.

I love this emulator and i envy the sane snapshot format (not the cpc hell, we are in 2012 people!!!  :( ), it's simply a .zip with all the machine configuration inside, you can open the zip and take a look to the memory dump, the floppy images and a few text files where you can see and change very easy the z80 registers or anything of the PCW state.

Phi2x

#3
.

SyX

#4
But the snapshot affair is a shame, i can make 10 snapshots of Renegade (i can get the same results with a speccy port as Prayer of The Warrior) in each of the best CPC emulators and when i reload those snapshots in the same emu that made them, the success rate at best can be at the 70%; but if i try to reload them in other emulator, then i'm lucky if i get a 30% of success.

And you need understand the structure of the file format to change fields; while in CP/M Box, i unzip the file, make the changes that i want to make, rezip and voila, snapshot update! Of course, is only one emu and the PCW could be not so complex as the CPC, but it works GREAT :)

Sure, the biggest problem is get all the emulator authors and the community reach an agreement. But i can not agreed with the ACE affair, you can not define a new standard only in P&P, you need to bring that discussion to the CPCWiki, the international community lives here and all the emulator authors have an account, too.

Although that doesn't change, that we got two incompatible "input events" record formats (one of them, even changes with every version of that emu :( )... Take a look to the RZX format and places as "The RZX Archive", we need to learn a lot from the speccy community.

PD: In this thread you can see the problem of the people to load an snapshot.

Phi2x

#5
.

TFM

I don't. In contrast, we have to move on and make things better  :)
TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Gryzor

I agree. I can say I can't even remember the discussion myself, though I can see that if we are to rebuild all the files out there from scratch the proposed snapshot format should offer significant advantages...

Executioner

Quote from: SyX on 12:54, 21 April 12
But the snapshot affair is a shame, i can make 10 snapshots of Renegade (i can get the same results with a speccy port as Prayer of The Warrior) in each of the best CPC emulators and when i reload those snapshots in the same emu that made them, the success rate at best can be at the 70%; but if i try to reload them in other emulator, then i'm lucky if i get a 30% of success.

That's why Kev and I worked together to define the Version 3 SNA format. I have since made a couple of small changes to the format which wouldn't stop old V3 SNA's from working. The biggest difference between the CPC and the ZX is the fact that the 4 CPC versions all had differences in the way they store firmware variables and also the fact that they can be used with different ROM configurations (apart from the other hardware support, eg. extra RAM, Symbiface, mouse etc which also needed to be supported). That's why I added a new section to the V3 SNA to allow storing the current ROMs and disc images being used. As far as I know, no other emulator actually supports V3 fully. Version 1 and Version 2 SNA files do not have enough information to recreate the environment or the timing of the CRTC precisely, and are therefore loaded with best guess logic.

Quote
Although that doesn't change, that we got two incompatible "input events" record formats (one of them, even changes with every version of that emu :( )... Take a look to the RZX format and places as "The RZX Archive", we need to learn a lot from the speccy community.

The original SNP file format was simply a V2 SNA followed by a collection of keystrokes. Obviously, given the limitations stated above for the V1 and V2 SNA file, this is inadequate. It also suffers from the problem of only being able to define key presses and releases and no other user changes (such as mouse input or RTC values). Getting an SNP file to work depends on being able to recreate the exact environment and timing otherwise the exact timing of the keypresses and the timing of the events (or random-ness) used in games would be different. There's not much point having a keypress dodge a rock that is on the wrong side of the screen since the random code produced a different game pattern.

The SNR format was designed to overcome these problems by firstly providing a V3 SNA as the basis for the original snapshot, and adding support for other devices like mouse and RTC. The SNR is also extremely dependent on timing, and the format has changed very little. The main reason an SNR created with an earlier (pre A16?) version of WinAPE won't work in the latest version is that the FDC emulation has changed significantly, providing more accurate FDC timing which is significantly different to the original FDC emulation. Of course, if it takes one microsecond longer (or shorter) to load a game than in the original recording, the recording may well not work any more. The FDC emulation in WinAPE (and JEMU) is still a long way from perfect, and the timings may have to change again in the future. Unfortunately, HARP requires that recordings start from a reset which means the FDC routine timing has to have an effect on the recording even if the game doesn't multi-load (this is apparently to save a few Kb on each file and ensure the game hasn't been patched).

I assume either an RZX doesn't support FDC properly, or all RZXs use tape images, or those clever ZX emulator coders have all got their FDC routines so perfect that the support all possible protection systems and all have exactly the same timing.

SyX

Well, then it would be great if we could add the new changes to the V3 snapshot format at the CPCWiki, as reference for other emulators and tools developers. That it should increase the support of this improved version, and who knows, perhaps in a future we could be free of the V1 and V2 hell :P

Quote from: Executioner on 04:32, 28 April 12
The original SNP file format was simply a V2 SNA followed by a collection of keystrokes. Obviously, given the limitations stated above for the V1 and V2 SNA file, this is inadequate. It also suffers from the problem of only being able to define key presses and releases and no other user changes (such as mouse input or RTC values). Getting an SNP file to work depends on being able to recreate the exact environment and timing otherwise the exact timing of the keypresses and the timing of the events (or random-ness) used in games would be different. There's not much point having a keypress dodge a rock that is on the wrong side of the screen since the random code produced a different game pattern.

The SNR format was designed to overcome these problems by firstly providing a V3 SNA as the basis for the original snapshot, and adding support for other devices like mouse and RTC. The SNR is also extremely dependent on timing, and the format has changed very little. The main reason an SNR created with an earlier (pre A16?) version of WinAPE won't work in the latest version is that the FDC emulation has changed significantly, providing more accurate FDC timing which is significantly different to the original FDC emulation. Of course, if it takes one microsecond longer (or shorter) to load a game than in the original recording, the recording may well not work any more. The FDC emulation in WinAPE (and JEMU) is still a long way from perfect, and the timings may have to change again in the future. Unfortunately, HARP requires that recordings start from a reset which means the FDC routine timing has to have an effect on the recording even if the game doesn't multi-load (this is apparently to save a few Kb on each file and ensure the game hasn't been patched).
Perfect, we can dump the SNP format, it's old and prone to fail. I was talking about it, when i was saying that there is an emulator, cpce, where you are unable to load SNPs made with another version of the same emulator, and because that, you need to have 3 or 4 versions of the emu (even a few ones not officially released) to load all the SNPs that i have found.

... but there is another problem, i'm unable to find the documentation of SNR format in any place (neither SNP, but it doesn't mind) and we should have in the cpcwiki for reference, too.

Quote from: Executioner on 04:32, 28 April 12
I assume either an RZX doesn't support FDC properly, or all RZXs use tape images, or those clever ZX emulator coders have all got their FDC routines so perfect that the support all possible protection systems and all have exactly the same timing.
It's much more easy, the zx emulators need to meet certain requirements of accuracy for giving support at RZX (only 7 actually, but the 7 most used zx emus). In other case, sorry, but that emu need to be improved.

PD: Richard, did you take a look at your personal messages in the forum?

Executioner

Quote from: SyX on 11:42, 28 April 12
Well, then it would be great if we could add the new changes to the V3 snapshot format at the CPCWiki, as reference for other emulators and tools developers. That it should increase the support of this improved version, and who knows, perhaps in a future we could be free of the V1 and V2 hell :P
It would be nice... I'd prefer to drop support for V1 and V2 saving altogether, and it's only really there to allow other emulators to (perhaps) be able to use the snapshot. There should be some documentation of the V3 format on Kev's site, which I think may have been uploaded to the Wiki at some stage.

Quote
Perfect, we can dump the SNP format, it's old and prone to fail. I was talking about it, when i was saying that there is an emulator, cpce, where you are unable to load SNPs made with another version of the same emulator, and because that, you need to have 3 or 4 versions of the emu (even a few ones not officially released) to load all the SNPs that i have found.

... but there is another problem, i'm unable to find the documentation of SNR format in any place (neither SNP, but it doesn't mind) and we should have in the cpcwiki for reference, too.

The SNR format is based on the SNP format, but has become quite different. It starts with A V3 snapshot, then has a sequence of keystrokes, timing information, and mouse/Real-Time-Clock information. All in quite a complicated compressed format.

Quote
It's much more easy, the zx emulators need to meet certain requirements of accuracy for giving support at RZX (only 7 actually, but the 7 most used zx emus). In other case, sorry, but that emu need to be improved.

The only way this may be able to happen is to get all us emulator authors to agree on a specific implementation for FDC, CRTC and tape emulation, and that could be a bit difficult, especially considering the varied languages used to implement the emulators. Also, the new Z80 core for JEMU (not complete or released as yet) may throw a spanner in the works since it's T-State emulation rather than the usual microsecond emulation.

Quote
PD: Richard, did you take a look at your personal messages in the forum?

Yes, I've had a look. Unfortunately not had a lot of time with work and Targa Tasmania to have a good look at the source code.

SyX

Quote from: Executioner on 00:25, 30 April 12Also, the new Z80 core for JEMU (not complete or released as yet) may throw a spanner in the works since it's T-State emulation rather than the usual microsecond emulation.
GREAT!!! :D

Quote from: Executioner on 00:25, 30 April 12
... Unfortunately not had a lot of time with work and Targa Tasmania.
Amazing!!! :D I have googled a little and i have found about the vintage Jaguar SS ;)

Executioner

Quote from: SyX on 15:23, 30 April 12
GREAT!!! :D
This is mainly because I want the same Z80 core to support all systems rather than having a special version with different timing for the CPC.

Quote
Amazing!!! :D I have googled a little and i have found about the vintage Jaguar SS ;)

Yes, last week was a lot of fun. It's a pity we lost nearly 30 minutes on one stage with a slight mishap, otherwise we may have had a chance to win the vintage class, but at least we managed to finish, which is an achievement in itself :)

SyX

Quote from: Executioner on 01:10, 01 May 12Yes, last week was a lot of fun. It's a pity we lost nearly 30 minutes on one stage with a slight mishap, otherwise we may have had a chance to win the vintage class, but at least we managed to finish, which is an achievement in itself :)
Sure!!! Great Adventure!!! A real trip to the past!!!  :D :D :D ... and the next year will go better!!! ;)

SyX

A new version of CP/M Box appeared a few days ago.

Habi has been working hard and there is a lot of new features:
* Fast mode (F11 short-cut).
* Mount a pc folder in the M: unit (great for testing programs without putting them in a DSK or writting files in the pc side).
* DAC emulation in the DK'tronics.
* Electric Studio joystick and mouse.
* Bright adjust in the interpolation mode.
* A low-pass filter for the sound.
* Better commandline (possibility of macros in future versions).
* Fix in the AY envelopes.
* General BOOT mode.
* Mapping of ROMs.
* 32 and 64 bits versions.
* Memory contended (preliminar).
* Improves in the debugger.
* Z80 MemPtr emulation.
* ...


SyX

The actual commandline options are (you can use - or / and they are executed sequentially):
/A name.dsk  ->  Insert a disk in A drive (eject the actual floppy before). Use a '.' (dot) for empty drive.
/B name.dsk  ->  The same for B drive.
/E -> "Synchro" the emulator state (Stop the emulator and toggle to window mode).
/F -> Toggle between window and full screen mode.
/G -> Toggle Fast mode.
/O -> Toggle emulator between pause/play
/P A V -> Poke in the memory address 'A' (absolute address) the value 'V', both values are in hexadecimal.
/R -> Reset the PCW
/S name.pcw  -> Load the snapshot name.pcw.
/T -> Simulate keypress. You can use the char '#' for escape codes (in hexadecimal), for example #0D for carriage return, ...
/W time -> Wait 'time' miliseconds in emulation time.

The next version will add:
/M folder -> Mount a folder in the drive M:, similar to /A or /B.

If you can think in any extra option that it could be helpful, only say ;)

SyX

#16
Thanks to Habi, we get a new version of CP/M Box, perfect for having a green summer  ;D

The new features are:
* New and more flexible commandline system.
* Added the parameter /M, that i comment in the previous post.
* Added parameter /R to choose a config file and being able to select the hardware emulated.
* Exact emulation of memory contention.
* Macro system, with buttons in the gui.
* Various bug fixes, ...

Beaps

Hi all,
How do you set this up. When I run the .exe I just get a green screen. I insert the the disk & start button & it just beeps.

Does it need a bios as I dont have any txt on screen just solid green screen?

robcfg

Hi, I think that the disk you are trying to boot is not bootable at all. You may need to boot CP/M first, then change the disk, do a DIR to see the files on disk, and then run a .com file that looks like what you're looking for.


It would be useful to know what are you trying to run, so we can find a the right solution.


Regards,
Rob

Beaps

#19
I am trying to load a .dsk file using this emulator but when I run the PCW.exe & select my game.dsk, the screen goes green, makes a few beeps & that it.

I think I need a boot disk first so if you like the dos screen (PCW screen that I can type in) shows up?

If so where can I find the boot disk?

MaV

Black Mesa Transit Announcement System:
"Work safe, work smart. Your future depends on it."

craiganderson

Quote from: SyX on 20:59, 18 April 13
The actual commandline options are (you can use - or / and they are executed sequentially):
/A name.dsk  ->  Insert a disk in A drive (eject the actual floppy before). Use a '.' (dot) for empty drive.
/B name.dsk  ->  The same for B drive.
/E -> "Synchro" the emulator state (Stop the emulator and toggle to window mode).
/F -> Toggle between window and full screen mode.
/G -> Toggle Fast mode.
/O -> Toggle emulator between pause/play
/P A V -> Poke in the memory address 'A' (absolute address) the value 'V', both values are in hexadecimal.
/R -> Reset the PCW
/S name.pcw  -> Load the snapshot name.pcw.
/T -> Simulate keypress. You can use the char '#' for escape codes (in hexadecimal), for example #0D for carriage return, ...
/W time -> Wait 'time' miliseconds in emulation time.

The next version will add:
/M folder -> Mount a folder in the drive M:, similar to /A or /B.

If you can think in any extra option that it could be helpful, only say ;)


Sorry for the noob question. Can you help me with a specific example which I think will help me to understand how to use this command line stuff a little better? Thanks in advance. Lets say I want to use command line to load and run "Cosarios.pcw"....how would it look?

something like this??    -S cosarios.pcw -O

When i send the example above....the game loads and plays....but then i get an error stating: Command Expected: "Cosarios"

thanks in advance
-craig

robcfg

Hi Craig,


I just tried to reproduce your error, and this is what I've found:


If I type pcw -S .\snapshots\loopz1.pcw -O , the snapshot loads ok.


But, if you forget the -S parameter, like in pcw .\snapshots\loopz1.pcw -O , then I get the same error as you.


Can you please double check that you typed the command line right? Otherwise it should work fine.

Habi

Hi everyone.


Finally, there is a new version of CP/M Box, v1.8 (http://habisoft.com/pcw/index_uk.asp).


There are a lot of new stuff: new video system (with color support), new languages system, actions, video recording, a new better debugger, more hardware options, light pens, mass storage, test PCBs, fast loading, keyboard redefinition, ...


I also put the manual online: http://habisoft.com/pcw/manual/en.htm.


Regards.


P.D.: I think this is my first message on this thread. Shame on me!  :-[

FloppySoftware

Quote from: Habi on 12:42, 31 December 18
Hi everyone.


Finally, there is a new version of CP/M Box, v1.8 (http://habisoft.com/pcw/index_uk.asp).


There are a lot of new stuff: new video system (with color support), new languages system, actions, video recording, a new better debugger, more hardware options, light pens, mass storage, test PCBs, fast loading, keyboard redefinition, ...


I also put the manual online: http://habisoft.com/pcw/manual/en.htm.


Regards.


P.D.: I think this is my first message on this thread. Shame on me!  :-[


These are good news!
floppysoftware.es < NEW URL!!!
cpm-connections.blogspot.com.es

Powered by SMFPacks Menu Editor Mod