Author Topic: Caprice32 (Amstrad CPC)  (Read 20136 times)

ker (OP)

  • **
  • Posts: 549
Caprice32 (Amstrad CPC)
« on: May 01, 2014, 01:52:36 pm »
Dingux-cap32 v1.1.2 adapted, recompiled and packed as OPK.

Bios files must be located at $HOME/.cap32/bios/ folder

Download: http://www.mediafire.com/download/482w6k5zs5u447d/dingux-cap32.opk

Triple buffer version: http://www.mediafire.com/download/x3em0hx8e9an18a/dingux-cap32(3b).opk

Source code: https://github.com/kerheol/dingux-cap32

Thanks to @Gab1975 for his nice PNGs  ;)

Changelog:
[2014-05-03]
- Updated help.txt and background images (@Gab1975 work)
- ROMs last used path saved in new config file
- Changed video mode from SDL_SWSURFACE to SDL_HWSURFACE | SDL_DOUBLEBUF (@hi-ban suggestion)

[2014-05-25]
- Unified emulator menu button implemented. You can press Power slider or Start+Select to enter menu (more info here)
- Updated PNGs and menu emulator name (more info here)
« Last Edit: May 25, 2014, 03:40:42 pm by ker »

surfi80

  • *
  • Posts: 252
Re: Caprice32 (Amstrad CPC)
« Reply #1 on: May 01, 2014, 02:45:23 pm »
thanks ker and still friend
play with the best? die like the rest!

http://www.elotrolado.net/wiki/PS_VITA_Usuarios_EoL

Gab1975

  • ***
  • Posts: 1165
Re: Caprice32 (Amstrad CPC)
« Reply #2 on: May 01, 2014, 03:06:00 pm »
Thanks to @Gab1975 for his nice PNGs  ;)

Thanks to you for your work! :)

DeusDormouse

  • *
  • Posts: 99
Re: Caprice32 (Amstrad CPC)
« Reply #3 on: May 01, 2014, 07:56:47 pm »
What's your relation to this post?

ker (OP)

  • **
  • Posts: 549
Re: Caprice32 (Amstrad CPC)
« Reply #4 on: May 01, 2014, 11:34:19 pm »
What's your relation to this post?

I don't understand your question. I'm the guy who posted last message in that post...

doglush

Re: Caprice32 (Amstrad CPC)
« Reply #5 on: May 02, 2014, 04:57:31 pm »
I've tested this emulator and I have a little request.
Can we add a Vsyng option, because I saw a lot of glitch when Amstrad try to move big surfaces.

(I made a little prog who move the screen with OUT command and I got a lot of glitch)
Thanks

Gab1975

  • ***
  • Posts: 1165
Re: Caprice32 (Amstrad CPC)
« Reply #6 on: May 02, 2014, 09:11:43 pm »
I've tested this emulator and I have a little request.
Can we add a Vsyng option, because I saw a lot of glitch when Amstrad try to move big surfaces.

Maybe I don't understand well what you mean, but you need to consider that the jerky scrolling is a "feature" of many Amstrad CPC games (this is a "problem" of the original hardware and not of the emulator)

Unlike the C64, the Amstrad CPC hasn't got any hardware function to speed up the graphic rendering...
« Last Edit: May 02, 2014, 09:13:33 pm by Gab1975 »

doglush

Re: Caprice32 (Amstrad CPC)
« Reply #7 on: May 03, 2014, 11:16:20 am »
No you're (half) wrong. :)
All demos have pixels perfect scroller.

And when you try to move a screen with basic command like
OUT &bc00,2:out &bd00,x

You don't have glitch like that.



hi-ban

  • **
  • Posts: 825
Re: Caprice32 (Amstrad CPC)
« Reply #8 on: May 03, 2014, 11:37:05 am »
Try using "SDL_HWSURFACE | SDL_DOUBLEBUF" instead of "SDL_SWSURFACE". That enables vsync and double buffer.
I'm 99% sure that will solve the scroll issues, already happened in most emulators.
« Last Edit: May 03, 2014, 11:43:40 am by hi-ban »

ker (OP)

  • **
  • Posts: 549
Re: Caprice32 (Amstrad CPC)
« Reply #9 on: May 03, 2014, 03:04:55 pm »
Try using "SDL_HWSURFACE | SDL_DOUBLEBUF" instead of "SDL_SWSURFACE". That enables vsync and double buffer.
I'm 99% sure that will solve the scroll issues, already happened in most emulators.

I've updated OPK changing video mode flags to SDL_HWSURFACE | SDL_DOUBLEBUF.

Emulator now remembers last rom path. Background image and help.txt are updated also.

Enjoy  ;)

hi-ban

  • **
  • Posts: 825
Re: Caprice32 (Amstrad CPC) [updated 2014-05-03]
« Reply #10 on: May 03, 2014, 03:48:37 pm »
if you want to use triple buffer, you must wait for a new toolchain, or just patch your toolchain:

Edit /mipsel-gcw0-linux-uclibc/sysroot/usr/include/SDL/SDL_video.h and add the following line under the "#define SDL_DOUBLEBUF   0x40000000" line:
Code: [Select]
#define SDL_TRIPLEBUF 0x40000100   /**< Set up triple-buffered video mode */
Then you will be able to compile the emulator using "SDL_HWSURFACE | SDL_TRIPLEBUF" in the source code of the emulator, and it will use triple buffer.

Triple buffer is better than double because it does not force 30 fps when the emulator performance is 59 fps or less.

pcercuei

  • ***
  • Posts: 1397
    • GitHub
Re: Caprice32 (Amstrad CPC) [updated 2014-05-03]
« Reply #11 on: May 03, 2014, 03:51:43 pm »
But there is absolutely no reason to use triple buffering on this emulator, as it never struggles to push 60 frames per second.
With triple buffering, the delay between the moment you render the frame and the moment it is shown is increased by a few milliseconds, so if you don't need it, better stay with double buffering.

Also, patching the toolchain does not change the fact that triple-buffering will work only with the new firmware (it reverts to double-buffering on older firmwares).
« Last Edit: May 03, 2014, 03:53:16 pm by pcercuei »

Nebuleon

  • Guest
Re: Caprice32 (Amstrad CPC) [updated 2014-05-03]
« Reply #12 on: May 03, 2014, 08:07:48 pm »
Yeah, triple-buffering is only needed if any emulated game gets locked to 30 FPS with less than 100% CPU usage.

And triple-buffering is better protected by an #ifdef anyway for cross-platform compatibility:

Code: [Select]
output_screen = SDL_SetVideoMode(...,
#ifdef SDL_TRIPLEBUF
    SDL_TRIPLEBUF
#else
    SDL_DOUBLEBUF
#endif
    );

Gab1975

  • ***
  • Posts: 1165
Re: Caprice32 (Amstrad CPC) [updated 2014-05-03]
« Reply #13 on: May 03, 2014, 09:01:06 pm »
Changelog:
[2014-05-03]
- Updated help.txt and background images (@Gab1975 work)
- ROMs last used path saved in new config file
- Changed video mode from SDL_SWSURFACE to SDL_HWSURFACE | SDL_DOUBLEBUF (@hi-ban suggestion)

Thanks for the update! :)

Gab1975

  • ***
  • Posts: 1165
Re: Caprice32 (Amstrad CPC)
« Reply #14 on: May 03, 2014, 09:08:53 pm »
No you're (half) wrong. :)
All demos have pixels perfect scroller.

And when you try to move a screen with basic command like
OUT &bc00,2:out &bd00,x

You don't have glitch like that.

I didn't spotted a similar glitch, but, with the double buffer support, the scrolling is certainly more stable! :)