Author Topic: Retro Virtual Machine v2.0.beta-1.r0 Released for Windows / Linux / MacOs  (Read 8978 times)

0 Members and 1 Guest are viewing this topic.

Offline XeNoMoRPH

  • 6128 Plus
  • ******
  • Posts: 540
  • Country: es
  • " ... in space no one , can hear you scream ... "
  • Liked: 1077
  • Likes Given: 933
Quote
Some fixes for things to come, and other fixes for things that weren't going right.
Quote
v2.0 BETA-1 R7 10/07/2019
  • UPD765 Fix the format track overflow bug. Thanks to Francisco González for the report.
  • CPC6128 Fix the partial decoding of the IO port of the PAL chip. Thanks to Thomas Bressel for the report
  • UI Fixed that the emulator hangs when there are a "unknown" ;) machine in the machine.lson startup file
  • MACOS The App is "notarized" by Apple now!!!!, ahead of the macOs 10.15 Catalina requirements

Offline XeNoMoRPH

  • 6128 Plus
  • ******
  • Posts: 540
  • Country: es
  • " ... in space no one , can hear you scream ... "
  • Liked: 1077
  • Likes Given: 933

Offline XeNoMoRPH

  • 6128 Plus
  • ******
  • Posts: 540
  • Country: es
  • " ... in space no one , can hear you scream ... "
  • Liked: 1077
  • Likes Given: 933

Offline XeNoMoRPH

  • 6128 Plus
  • ******
  • Posts: 540
  • Country: es
  • " ... in space no one , can hear you scream ... "
  • Liked: 1077
  • Likes Given: 933

Offline megachur

  • CPC464
  • **
  • Posts: 46
  • Country: fr
  • z80 Powaaa !
    • cpc-power
  • Liked: 72
  • Likes Given: 3
I really want to congratulate the author of this emulator which is enriched from days to days of functionality. It's beautiful, it's user friendly: congratulations !!
I hope to see it soon in real !

Online Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 15.180
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3009
  • Likes Given: 5352
This is nice... Nowadays I have a Mega Sg so no need for Sega emulation, but impressive nonetheless!

Offline berks

  • CPC464
  • **
  • Posts: 9
  • Country: gb
  • Liked: 4
  • Likes Given: 11
Just wanted to add my congratulations to the author of the emulator. It's smooth, beautiful, user-friendly, ... a real 10/10


Enhorabona!

Online Skunkfish

  • Supporter
  • 464 Plus
  • *
  • Posts: 444
  • Country: gb
  • Editor of Colour Personal Computing
    • Colour Personal Computing - The CPC Fanzine
  • Liked: 320
  • Likes Given: 741
This is a very slick application, I'm impressed.
But is there a little bit of keyboard lag compared to the real thing? I just played a little Dawn of Kernel and was struggling (more than usual).
Nothing to say for now

Offline SkulleateR

  • CPC664
  • ***
  • Posts: 57
  • Country: de
  • Liked: 20
  • Likes Given: 8
Hm, I played some games with keyboard on this like THRUST for example, I didn't notice any lag here (MacOS Version btw) ...

Offline XeNoMoRPH

  • 6128 Plus
  • ******
  • Posts: 540
  • Country: es
  • " ... in space no one , can hear you scream ... "
  • Liked: 1077
  • Likes Given: 933

Offline XeNoMoRPH

  • 6128 Plus
  • ******
  • Posts: 540
  • Country: es
  • " ... in space no one , can hear you scream ... "
  • Liked: 1077
  • Likes Given: 933

Offline Ast

  • 6128 Plus
  • ******
  • Posts: 1.017
  • Country: fr
    • Amstrad cpc Website of Ast/iMPACT
  • Liked: 807
  • Likes Given: 689

https://youtu.be/CS0ydqpBHkI

Ohhhh ! This space harrier tune is Always so greattt  ! Thank you !
_____________________

Ast/iMP4CT. "By the power of Grayskull, i've the power"


Amstrad Plus French Forum

All friends are welcomed !

Offline cpcitor

  • The user previously known as FindYWay
  • CPC6128
  • ****
  • Posts: 248
  • Country: fr
  • My heart still runs on traditional CPC.
    • My code for the CPC.
  • Liked: 115
  • Likes Given: 261
I tried 2.0 BETA-1 R7 (as written on the official website, why do they SHOUT the version number, that's unnecessary).

TL;DR: nice emulation quality, bad user interface that does the annoying non-necessary steps but gets the essential steps wrong. Very nice ground to build upon because of emulation quality (Z80, CRTC, etc). Urgent wish: add possiblity to disable eye candy.

Techno used?

What technology (language/environment/API) is used to create that?

This command:

Code: [Select]
nm RetroVirtualMachine | cut -f 3 -d " "  | grep -o "^[^_]*" | sort | uniq -c | sort -n | tail -n 20

     58 wl
     60 GLES2
     62 stbtt
     65 Wayland
     65 WAYLAND
     73 recff
     73 stbi
     88 lua
    106 mz
    119 z80ldr
    129 bit
    141 fold
    332 resource
    334 X11
    398 luaJIT
    464 res
    464 set
    579 glad
    819 lj
   2421 SDL

and this error message:

Code: [Select]
ERROR IN THE THREAD apps/rvm/code/rvm/controller/main.lua:261: Machine allready opened
stack traceback:
[C]: in function 'error'
apps/rvm/code/rvm/controller/main.lua:261: in function '__openCB'
code/ne/window.lua:888: in function 'saveResponse'
code/ne/window.lua:523: in function 'doEvent'
code/__bootAppThread.lua:102: in function 'doLoop'
[string "doLoop()"]:1: in main chunk

...suggests that :
* it's written with C for low-level (not C++)
* with most logic programmed in lua running on a built-in lua interpreter,
* targets OpenGL for input and output
* with OS portability provided by SDL.

Yet the visual style (resizing icons, boucing panels, etc) suggests HTML/CSS/JS/Electron stack, which it most certainly is not.

Perhaps another framework on top of that provides some middle layer?

Can anyone confirm the technology used? I could find no information on the website.

Personal opinion

Impressive work!

I ran a random conformance test from Kevin Thacker's website, one about Z80 emulation faithfulness and it fully succeeded. By comparison others like caprice32 fail.

On the annoying side

I'm not fond of eye candy. To me, moving backgrounds are silly, bouncing panels are just plain ridiculous, booming speakers are at best a sound monitoring feature.

The user experience is bad bad bad. Somehow powerful (create and configure several machines) but far too complicated, too many steps, unclear icons without tooltip).

10 clicks on 3 windows just to get to a running CPC6128!  >:( :picard2: :picard2: :doh:

It would be much better with simple quickstart buttons, one for each machine supported, that bring straight to a running machine with reasonable defaults.

On the plus side

It's really nice to have compatibility with 3 major graphical OSes.
The thing seem to pass Z80 conformance tests.

On the lacking side

I tried the Z80 assembly trace near-impossible to use. I still use arnold, it's still better for now despite important flaws.

On the side side ;-)

Some screen artifacts emulation are too much in my opinion. The "beam" option is not actually a CPC artifact. It might be perhaps an interference between the exact frequency of the CPC (observable via light from screen) vs the exact frequency of the local power source (observable via light from incandescent bulbs around). Anyway, IIRC I don't experience it. Anyway, the RGB mask was much uglier in real life: too big photophors, typically misaligned with pixels, even at an angle, and also misalignment between red, green and blur.

Conclusion

Nice work, great potential to become THE Amstrad CPC emulator.

I would use it for my tests if we could access the lua interpreter and do something interesting with it.

Anyway, to become the ultimate CPC emulator, it would have to become open-source.
Had a CPC since 1985, currently software dev professional, including embedded systems.

I made the first CPC cross-dev environment that auto-installs C compiler and tools: cpc-dev-tool-chain: a portable toolchain for C/ASM development targetting CPC.

Offline jcgamestoy

  • CPC464
  • **
  • Posts: 27
  • Country: es
  • Liked: 100
  • Likes Given: 1
I tried 2.0 BETA-1 R7 (as written on the official website, why do they SHOUT the version number, that's unnecessary).

TL;DR: nice emulation quality, bad user interface that does the annoying non-necessary steps but gets the essential steps wrong. Very nice ground to build upon because of emulation quality (Z80, CRTC, etc). Urgent wish: add possiblity to disable eye candy.


Hi, I'm the author of this creature.


You're absolutely right about the version number, it was a big mistake to put it that way. The idea was that it will be clear that the emulator was unfinished, for the next version I'll use a "flatter" version number like v2.1.0.


As for the user interface there are people who love it madly and others who hate it deeply. I'm really glad you looked beyond that and saw the accuracy of the emulation.  :)


Techno used?

What technology (language/environment/API) is used to create that?

This command:

Code: [Select]
nm RetroVirtualMachine | cut -f 3 -d " "  | grep -o "^[^_]*" | sort | uniq -c | sort -n | tail -n 20

     58 wl
     60 GLES2
     62 stbtt
     65 Wayland
     65 WAYLAND
     73 recff
     73 stbi
     88 lua
    106 mz
    119 z80ldr
    129 bit
    141 fold
    332 resource
    334 X11
    398 luaJIT
    464 res
    464 set
    579 glad
    819 lj
   2421 SDL

and this error message:

Code: [Select]
ERROR IN THE THREAD   apps/rvm/code/rvm/controller/main.lua:261: Machine allready opened
stack traceback:
   [C]: in function 'error'
   apps/rvm/code/rvm/controller/main.lua:261: in function '__openCB'
   code/ne/window.lua:888: in function 'saveResponse'
   code/ne/window.lua:523: in function 'doEvent'
   code/__bootAppThread.lua:102: in function 'doLoop'
   [string "doLoop()"]:1: in main chunk

...suggests that :
* it's written with C for low-level (not C++)
* with most logic programmed in lua running on a built-in lua interpreter,
* targets OpenGL for input and output
* with OS portability provided by SDL.

Yet the visual style (resizing icons, boucing panels, etc) suggests HTML/CSS/JS/Electron stack, which it most certainly is not.

Perhaps another framework on top of that provides some middle layer?

Can anyone confirm the technology used? I could find no information on the website.




You've been very, very close.


I use C for the low level of Opengl and for all the emulation.


Lua (more precisely LUAJIT www.luajit.org) for the rest. It's the fastest VM and it makes me very easy to add new features.


And you're also right that I don't use electron etc. I use my own intermediate layer (made in lua) for the whole user interface. In other words, all the UI is handmade and it's another of the things I have fun doing apart from making the emulator.


As for SDL I used it only for joysticks and sound. In the next version I have eliminated it completely, now I use GLFW for the joysticks and miniaudio for the sound. The management / creation of windows is done by hand because it gives me more control.



Personal opinion

Impressive work!

I ran a random conformance test from Kevin Thacker's website, one about Z80 emulation faithfulness and it fully succeeded. By comparison others like caprice32 fail.

On the annoying side

I'm not fond of eye candy. To me, moving backgrounds are silly, bouncing panels are just plain ridiculous, booming speakers are at best a sound monitoring feature.

The user experience is bad bad bad. Somehow powerful (create and configure several machines) but far too complicated, too many steps, unclear icons without tooltip).

10 clicks on 3 windows just to get to a running CPC6128!  >:( :picard2: :picard2: :doh:

It would be much better with simple quickstart buttons, one for each machine supported, that bring straight to a running machine with reasonable defaults.

On the plus side

It's really nice to have compatibility with 3 major graphical OSes.
The thing seem to pass Z80 conformance tests.

On the lacking side

I tried the Z80 assembly trace near-impossible to use. I still use arnold, it's still better for now despite important flaws.

On the side side ;-)

Some screen artifacts emulation are too much in my opinion. The "beam" option is not actually a CPC artifact. It might be perhaps an interference between the exact frequency of the CPC (observable via light from screen) vs the exact frequency of the local power source (observable via light from incandescent bulbs around). Anyway, IIRC I don't experience it. Anyway, the RGB mask was much uglier in real life: too big photophors, typically misaligned with pixels, even at an angle, and also misalignment between red, green and blur.

Conclusion

Nice work, great potential to become THE Amstrad CPC emulator.

I would use it for my tests if we could access the lua interpreter and do something interesting with it.

Anyway, to become the ultimate CPC emulator, it would have to become open-source.




The central idea of the emulator (and the user interface) are the virtual machines.


It is true that you have to make many clicks to create a machine but it is a process that you only have to do once. The rest is esqueumorphism (as in the good old days of Apple). The idea is that the user knows how to use the machines remembering what he did with the original models.


Anyway you can boot a CPC6128 from the command line with a single command:


RetroVirtualMachine -b=cpc6128


As for the shader, all effects can be deactivated.


As for emulation. The public version still has some small flaws regarding the emulation of the CRTC, and also only emulates the CRTC-0.


The new version I'm working on (and that I hope to finish when real life allows me) already implements the CRTC in all its models, as well as the ASIC of the CPC+. Although in the latter I still have to do a lot of research work.


Thank you very much for your comments. And delighted to be able to answer all your questions.


Online Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 15.180
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3009
  • Likes Given: 5352
I love the gfx filters, though I do know they're not necessarily part of the CPC experience and I only use a couple of them. They're fun!

As for the interface, indeed some things may be superfluous but they do get out of the way easily so no big deal. I really don't mind the logic of composing a machine instead of starting the emulator with a vanilla model and offering settings, though I think it could be done within a single page instead of having to go through the various steps.

Thanks for the awesome project!

Offline cpcitor

  • The user previously known as FindYWay
  • CPC6128
  • ****
  • Posts: 248
  • Country: fr
  • My heart still runs on traditional CPC.
    • My code for the CPC.
  • Liked: 115
  • Likes Given: 261
As for SDL I used it only for joysticks and sound. In the next version I have eliminated it completely, now I use GLFW for the joysticks and miniaudio for the sound. The management / creation of windows is done by hand because it gives me more control.

Héhé, I happened to have contributed a little to miniaudio, you can see a few commits on mine in its git history (under my real name see the corresponding issues I opened : https://github.com/dr-soft/miniaudio/issues?q=is%3Aissue+author%3Afidergo-stephane-gourichon+is%3Aclosed especially https://github.com/dr-soft/miniaudio/issues/57 ).

So, there's already a little something from me in retrovirtualmachine. ;-)


Thank you very much for your comments. And delighted to be able to answer all your questions.

Thanks a lot for answering!
Had a CPC since 1985, currently software dev professional, including embedded systems.

I made the first CPC cross-dev environment that auto-installs C compiler and tools: cpc-dev-tool-chain: a portable toolchain for C/ASM development targetting CPC.