[Linux] GUI discussion

Discussion of development and patch submission.
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: [Linux] GUI discussion

Post by leilei »

bit wrote:Nice! :)
I found that it's possible to configure overscan, gamma, brightness and more in misc/image-adjustment.glsl, could be useful in combination with some shaders.
Looking into that shader trying to chain a preset before the preset I couldn't figure out how to work around the aliasing.

Code: Select all

shaders = "1"

shader0 = "../misc/image-adjustment.glsl"
filter_linear0 = "false"
srgb_framebuffer0 = "true"
scale_type_x0 = "source"
scale_x0 = "1.09"
scale_type_y0 = "source"
scale_y0 = "1.09"

parameters = "ZOOM"
ZOOM = 0.91
(I also feel many of these shader-related posts could be split to anew thread)
basic2004
Posts: 124
Joined: Sun 08 Jan, 2017 5:59 pm

Re: [Linux] GUI discussion

Post by basic2004 »

leilei wrote:Here's some shader presets to have fun with
https://github.com/leilei-/someshaders

feel free to improve/whatever. I hope i'm doing this right


(I did think about implementing V1/V2/V3 filter as a shader for this repo, but that would also require a Voodoo CLUT shader to apply after it, as well as extensive hacking to make them the first shaders processed and only for when the voodoo's used. Also since the shader stuff's independently rendered, an interference shader (i.e. moving diagonal lines, should be a trivial sin job) could be possible for more accurate Voodoo signal emulation :P)
Thanks for making shaders.

I edited Aybe's grayBT601 shader to apply monochrome display's color for testing shaders feature.
https://pcem-emulator.co.uk/phpBB3/view ... t=30#p6101
simply added these codes from it.

Amber monitor

Code: Select all

    _ret_0 = vec4(1.25 * pow(_w, 0.725), 0.905 * pow(_w, 1.5), 0.225 * pow(_w, 8), _c.w);
Green monitor

Code: Select all

    _ret_0 = vec4(0.225 * pow(_w, 4), pow(_w, 0.75), 0.375 * pow(_w, 2), _c.w);
Paper-White monitor

Code: Select all

    _ret_0 = vec4(pow(_w, 1.05), 0.99 * _w, 0.925 * pow(_w, 0.9), _c.w);
(these value are modified 2017/07/18)

this was original grayscale before modified it.

Code: Select all

    _ret_0 = vec4(_w, _w, _w, _c.w);
Can you add these shaders for PCem?
Last edited by basic2004 on Tue 18 Jul, 2017 4:56 am, edited 1 time in total.
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: [Linux] GUI discussion

Post by szadycbr »

Hey bit, i did install Lubuntu (17.04 32bit) and PCem dependiences , i get src from your github and it compiles fine. But it still does crash, i did run doom under dos, but when i try quake sw version it crash and close right away, also when i try load windows ,as soon as i see windows loading screen it closes as well. it seems that it crashes not always in same place , depend what i try to run. there is the Log, but i cant understand what its all about :

Code: Select all

path = /home/szadycbr/.pcem/
Config data :
[]
vid_resize = 0
vid_force_aspect_ratio = 0
vid_disc_indicator = 1
vid_api = 0
video_fullscreen_scale = 0
video_fullscreen_first = 1
window_w = 0
window_h = 0
window_x = 0
window_y = 0
window_remember = 0
sound_buf_len = 200
[Paths]
roms_paths = /home/szadycbr/.pcem/roms/:/usr/share/pcem/roms/
nvr_path = /home/szadycbr/.pcem/nvr/
configs_path = /home/szadycbr/.pcem/configs/
logs_path = /home/szadycbr/.pcem/logs/
[wxWidgets]
show_machine_info = 1
show_disc_activity = 1
show_speed_history = 0
show_mount_paths = 0
show_status = 0
show_machine_on_start = 0
confirm_on_reset_machine = 1
confirm_on_stop_emulation = 1
window_x = 0
window_y = 0
Config data :
[]
Config loaded
Starting with romset 13
Failed to load ROM!
timer_reset
Cannot create file '': No such file or directoryCannot create file '': No such file or directoryCannot create file '': No such file or directoryCannot create file '': No such file or directoryread_toc: CDROMREADTOCHDR failed
timer_reset
Loading :0  
Loading :1  
Initting as [8088] AMI XT clone
io_init
Video_init 13 0
PCI burst=1 nonburst=4
hasfpu - 0
is486 - 0  0
x86 reset
znp8 b1 = 4 04
znp16 b1 = 4 04
znp16 65b1 = 4 04
Recalc - 0 0 0
Cannot create file '': No such file or directoryCannot create file '': No such file or directoryCannot create file '': No such file or directoryCannot create file '': No such file or directoryread_toc: CDROMREADTOCHDR failed
SDL 2.0.5 initialized.
Starting with romset 0
romset 0 - 1
Starting with romset 1
romset 1 - 1
Starting with romset 2
romset 2 - 1
Starting with romset 3
romset 3 - 1
Starting with romset 4
Failed to load ROM!
romset 4 - 0
Starting with romset 5
romset 5 - 1
Starting with romset 6
romset 6 - 1
Starting with romset 7
Failed to load ROM!
romset 7 - 0
Starting with romset 8
romset 8 - 1
Starting with romset 9
romset 9 - 1
Starting with romset 10
romset 10 - 1
Starting with romset 11
Loading BIOS
FF FF FF
romset 11 - 1
Starting with romset 12
romset 12 - 1
Starting with romset 13
Failed to load ROM!
romset 13 - 0
Starting with romset 14
Failed to load ROM!
romset 14 - 0
Starting with romset 15
Failed to load ROM!
romset 15 - 0
Starting with romset 16
Failed to load ROM!
romset 16 - 0
Starting with romset 17
romset 17 - 1
Starting with romset 18
romset 18 - 1
Starting with romset 19
romset 19 - 1
Starting with romset 20
romset 20 - 1
Starting with romset 21
romset 21 - 1
Starting with romset 22
romset 22 - 1
Starting with romset 23
romset 23 - 1
Starting with romset 24
Failed to load ROM!
romset 24 - 0
Starting with romset 25
romset 25 - 1
Starting with romset 26
romset 26 - 1
Starting with romset 27
Failed to load ROM!
romset 27 - 0
Starting with romset 28
romset 28 - 1
Starting with romset 29
romset 29 - 1
Starting with romset 30
romset 30 - 1
Starting with romset 31
Failed to load ROM!
romset 31 - 0
Starting with romset 32
Failed to load ROM!
romset 32 - 0
Starting with romset 33
romset 33 - 1
Starting with romset 34
romset 34 - 1
Starting with romset 35
Load SIS496 ea ff
romset 35 - 1
Starting with romset 36
romset 36 - 1
Starting with romset 37
romset 37 - 1
Starting with romset 38
romset 38 - 1
Starting with romset 39
romset 39 - 1
Starting with romset 40
Failed to load ROM!
romset 40 - 0
Starting with romset 41
Failed to load ROM!
romset 41 - 0
Starting with romset 42
Failed to load ROM!
romset 42 - 0
Starting with romset 43
Failed to load ROM!
romset 43 - 0
Starting with romset 44
Failed to load ROM!
romset 44 - 0
Starting with romset 45
Failed to load ROM!
romset 45 - 0
Starting with romset 46
Failed to load ROM!
romset 46 - 0
Starting with romset 47
Failed to load ROM!
romset 47 - 0
Starting with romset 13
Failed to load ROM!
config_save()
timer_reset
Loading :0  
Loading :1  
Initting as [8088] IBM PC
io_init
Video_init 0 0
PCI burst=1 nonburst=4
hasfpu - 0
is486 - 0  0
x86 reset
znp8 b1 = 4 04
znp16 b1 = 4 04
znp16 65b1 = 4 04
Recalc - 0 0 0
Cannot create file '': No such file or directoryCannot create file '': No such file or directoryCannot create file '': No such file or directoryCannot create file '': No such file or directoryread_toc: CDROMREADTOCHDR failed
Dir /home/szadycbr/.pcem/configs/*.cfg
wx_dlgdirselectex returned 1 430vx.
Config name /home/szadycbr/.pcem/configs/430vx.cfg
Starting emulation...
path = /home/szadycbr/.pcem/
Config data :
[]
vid_resize = 0
vid_force_aspect_ratio = 0
vid_disc_indicator = 1
vid_api = 0
video_fullscreen_scale = 0
video_fullscreen_first = 1
window_w = 0
window_h = 0
window_x = 0
window_y = 0
window_remember = 0
sound_buf_len = 200
[Paths]
roms_paths = /home/szadycbr/.pcem/roms/:/usr/share/pcem/roms/
nvr_path = /home/szadycbr/.pcem/nvr/
configs_path = /home/szadycbr/.pcem/configs/
logs_path = /home/szadycbr/.pcem/logs/
[wxWidgets]
show_machine_info = 1
show_disc_activity = 1
show_speed_history = 0
show_mount_paths = 0
show_status = 0
show_machine_on_start = 0
confirm_on_reset_machine = 1
confirm_on_stop_emulation = 1
window_x = 0
window_y = 0
Config data :
[]
gameblaster = 0
gus = 0
ssi2001 = 0
voodoo = 1
model = 430vx
cpu_manufacturer = 0
cpu = 12
cpu_use_dynarec = 1
cpu_waitstates = 0
gfxcard = virge375
video_speed = 3
sndcard = sb16
midi_device = none
cpu_speed = 14
has_fpu = 1
disc_a = 
disc_b = 
hdd_controller = none
mem_size = 131072
cdrom_drive = 0
cdrom_enabled = 0
cdrom_channel = 1
cdrom_path = 
hdc_sectors = 63
hdc_heads = 16
hdc_cylinders = 1024
hdc_fn = /home/szadycbr/Downloads/PCem disk/windows.img
hdd_sectors = 0
hdd_heads = 0
hdd_cylinders = 0
hdd_fn = 
hde_sectors = 0
hde_heads = 0
hde_cylinders = 0
hde_fn = 
hdf_sectors = 0
hdf_heads = 0
hdf_cylinders = 0
hdf_fn = 
drive_a_type = 5
drive_b_type = 0
bpb_disable = 0
joystick_type = 0
mouse_type = 0
enable_sync = 0
vid_resize = 0
video_fullscreen_scale = 0
video_fullscreen_first = 1
[Joysticks]
joystick_0_nr = 0
joystick_1_nr = 0
[SDL2]
fullscreen = 0
fullscreen_mode = 0
scale = 1
scale_mode = 1
vsync = 0
focus_dim = 0
render_driver = auto
[GL3]
input_scale = 1.000000
input_stretch = 0
simulated_refresh_rate = 30.000000
[GL3 Shaders]
shaders = 0
Starting with romset 36
timer_reset
Loading :0  
Loading :1  
Initting as [Socket 7] Award 430VX PCI
io_init
Video_init 36 17
PCI burst=4 nonburst=16
hasfpu - 1
is486 - 1  17
x86 reset
znp8 b1 = 4 04
znp16 b1 = 4 04
znp16 65b1 = 4 04
Cannot create file '': No such file or directoryCannot create file '': No such file or directoryCannot create file '': No such file or directoryread_toc: CDROMREADTOCHDR failed
renderer_doreset
i430vx_write : PAM0 write 00
i430vx_write : PAM5 write 00
i430vx_write : PAM6 write 00
i430vx_write : PAM0 write 00
i430vx_write : PAM5 write 00
i430vx_write : PAM6 write 00
i430vx_write : PAM5 write 22
i430vx_write : PAM6 write 22
i430vx_write : PAM6 write 11
i430vx_write : PAM5 write 11
i430vx_write : PAM0 write 20
i430vx_write : PAM0 write 10
i430vx_write : PAM5 write 33
i430vx_write : PAM6 write 33
i430vx_write : PAM5 write 11
i430vx_write : PAM6 write 11
i430vx_write : PAM0 write 30
i430vx_write : PAM0 write 10
onesec
i430vx_write : PAM0 write 10
i430vx_write : PAM6 write 11
i430vx_write : PAM0 write 10
i430vx_write : PAM0 write 30
i430vx_write : PAM0 write 10
Update mapping - bank 00 Linear framebuffer 00 Memory mapped IO 08
Update mapping - bank 00 Linear framebuffer 00 Memory mapped IO 08
Update mapping - bank 00 Linear framebuffer 00 Memory mapped IO 08
voodoo_recalcmapping : disabled
voodoo_recalcmapping : memBaseAddr FF000000
Update mapping - bank 00 Linear framebuffer 00 Memory mapped IO 08
voodoo_recalcmapping : memBaseAddr E4000000
Update mapping - bank 00 Linear framebuffer 00 Memory mapped IO 08
Update mapping - bank 00 Linear framebuffer 00 Memory mapped IO 08
Update mapping - bank 0C Linear framebuffer 00 Memory mapped IO 00
Update mapping - bank 0C Linear framebuffer 00 Memory mapped IO 00
Update mapping - bank 04 Linear framebuffer 00 Memory mapped IO 10
Update mapping - bank 04 Linear framebuffer 00 Memory mapped IO 10
Update mapping - bank 04 Linear framebuffer 00 Memory mapped IO 00
Update mapping - bank 0C Linear framebuffer 00 Memory mapped IO 00
Update mapping - bank 0C Linear framebuffer 00 Memory mapped IO 00
onesec
onesec
Upd
and there is my config :

Code: Select all

gameblaster = 0
gus = 0
ssi2001 = 0
voodoo = 1
model = 430vx
cpu_manufacturer = 0
cpu = 12
cpu_use_dynarec = 1
cpu_waitstates = 0
gfxcard = virge375
video_speed = 3
sndcard = sb16
midi_device = none
cpu_speed = 14
has_fpu = 1
disc_a = 
disc_b = 
hdd_controller = none
mem_size = 131072
cdrom_drive = 0
cdrom_enabled = 0
cdrom_channel = 1
cdrom_path = 
hdc_sectors = 63
hdc_heads = 16
hdc_cylinders = 1024
hdc_fn = /home/szadycbr/Downloads/PCem disk/windows.img
hdd_sectors = 0
hdd_heads = 0
hdd_cylinders = 0
hdd_fn = 
hde_sectors = 0
hde_heads = 0
hde_cylinders = 0
hde_fn = 
hdf_sectors = 0
hdf_heads = 0
hdf_cylinders = 0
hdf_fn = 
drive_a_type = 5
drive_b_type = 0
bpb_disable = 0
joystick_type = 0
mouse_type = 0
enable_sync = 0
vid_resize = 0
video_fullscreen_scale = 0
video_fullscreen_first = 1

[Joysticks]
joystick_0_nr = 0
joystick_1_nr = 0

[SDL2]
fullscreen = 0
fullscreen_mode = 0
scale = 1
scale_mode = 1
vsync = 0
focus_dim = 0
render_driver = auto

[GL3]
input_scale = 1.000000
input_stretch = 0
simulated_refresh_rate = 30.000000

[GL3 Shaders]
shaders = 0
Ughhh, grrr so pity , PCem works so much better now, do only i see that difference? everything is smooth and no scrolling, just display is much faster!!!
Hopefully we can find a problem, and hopefully problem lies in my sytem ,not in PCem.
Just want to test more apps, thanks :)

EDIT: just one more thing, why i do get this error on start : "Configured romset not available. Defaulting to available romset."?

And i thought i add what terminal shows :

Code: Select all

Set fullspeed - 0 0 0
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Menu item not found: 1403
Menu item not found: 1404
Menu item not found: 1403
Menu item not found: 1404
Segmentation fault (core dumped)
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

Laucian wrote:Any time I edit a machine and save the configuration, the mem_size on its config file (on ~/.pcem/configs/) resets to the minimum, which is either 64, 640 or 1024 depending on the machine.

For instance, I have a 486 machine with 16 megabytes of RAM. I set Fluidsynth as the MIDI Out and the memory was set to 1024.
Ah I see. I was able to reproduce the problem and it is now fixed :)
leilei wrote:Looking into that shader trying to chain a preset before the preset I couldn't figure out how to work around the aliasing.
Try to set filter_linear0 = "true" or increase the input scale. Both of them seem to make it better.
leilei wrote:(I also feel many of these shader-related posts could be split to anew thread)
Yeah I agree. It might also be time to to either rename this topic or create a new one, since it's no longer Linux-only :)
szadycbr wrote:But it still does crash, i did run doom under dos, but when i try quake sw version it crash and close right away, also when i try load windows
I just tried your config and the first time Scitech Display Doctor froze when trying to detect resolutions, but the second time it worked. So it might be the graphics card that is the problem, try to use another one. I usually use Phoenix S3 Trio64.
I didn't get any crashes though, not sure why that happens.
szadycbr wrote:EDIT: just one more thing, why i do get this error on start : "Configured romset not available. Defaulting to available romset."?
I just checked and yeah, that shouldn't happen :) Thanks for pointing it out! It is now fixed.
basic2004
Posts: 124
Joined: Sun 08 Jan, 2017 5:59 pm

Re: [Linux] GUI discussion

Post by basic2004 »

I tried latest fluidsynth branch again in my Windows, I saw these errors(warnings)

Code: Select all

gcc -DPCEM_USE_FLUIDSYNTH -march=i686 -O3 -m32 -msse2 -mfpmath=sse -fomit-frame-pointer -mstackrealign -Werror -fno-strict-aliasing -DRELEASE_BUILD -c sound_mpu401.c
sound_mpu401.c:816:42: error: overflow in implicit constant conversion [-Werror=overflow]
                                 "0x300", 0x300
                                          ^~~~~
sound_mpu401.c:819:42: error: overflow in implicit constant conversion [-Werror=overflow]
                                 "0x330", 0x330
                                          ^~~~~
cc1.exe: all warnings being treated as errors
make: *** [sound_mpu401.o] Error 1
What's happened?
Ignored warning when compile and launched fluidsynth branch, FluidSynth active and playing MIDI well.
And saving configure with spinner well.
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: [Linux] GUI discussion

Post by szadycbr »

Mr. bit, just to let you know, this crash i have is most likely Lubuntu bug in system itself , lots of people have same issue with many programs using Lubuntu :Segmentation fault , and system close application while it try access wrong memory area to prevent system crash. it is happenig often in Lubuntu , it must be Lubuntu specific bug cos its rare in standard version of Ubuntu.
basic2004
Posts: 124
Joined: Sun 08 Jan, 2017 5:59 pm

Re: [Linux] GUI discussion

Post by basic2004 »

I modified src/sound_mpu401.c (from line 810) like PCem style.

Code: Select all

static device_config_t mpu401_standalone_config[] =
{
        {
                .name = "base",
                .description = "MPU-401 Address",
                .type = CONFIG_SELECTION,
                .selection =
                {
                        {
                                .description = "0x300",
                                .value = 0x300
                        },
                        {
                                .description = "0x330",
                                .value = 0x330
                        },
                        {
                                ""
                        }
                },
                .default_int = 0x330
        },
        {
                .name = "irq",
                .description = "MPU-401 IRQ",
                .type = CONFIG_SELECTION,
                .selection =
                {
                        {
                                .description = "IRQ 3",
                                .value = 3
                        },
                        {
                                .description = "IRQ 4",
                                .value = 4
                        },
                        {
                                .description = "IRQ 5",
                                .value = 5
                        },
                        {
                                .description = "IRQ 7",
                                .value = 7
                        },
                        {
                                .description = "IRQ 9",
                                .value = 9
                        },
                        {
                                .description = "IRQ 10",
                                .value = 10
                        },
                        {
                                ""
                        }
                },
                .default_int = 9
        },
        {
                .name = "mode",
                .description = "Mode",
                .type = CONFIG_SELECTION,
                .selection =
                {
                        {
                                .description = "UART",
                                .value = M_UART
                        },
                        {
                                .description = "Intelligent",
                                .value = M_INTELLIGENT
                        },
                        {
                                ""
                        }
                },
                .default_int = M_INTELLIGENT
        },
        {
                .type = -1
        }
};
This should modify both. master and fluidsynth branch.
basic2004
Posts: 124
Joined: Sun 08 Jan, 2017 5:59 pm

Re: [Linux] GUI discussion

Post by basic2004 »

Here is a patch for PCem-wx-SDL2, this patch will make to support SBMIDI for 8-bit Sound Blaster cards.
PCem-wx-SDL2-support-SBMIDI.patch
(3.96 KiB) Downloaded 507 times
Original works by TC1995 in 86Box GitHub.
https://github.com/OBattler/86Box/commi ... 0e714955cf
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: [Linux] GUI discussion

Post by szadycbr »

Ok. bit, i installed AntiX linux , based on debian and all dependencies installed no probs. system is blazing fast and PCem runs perfectly!!! so , yeah if anyone want to try Lubuntu it is not worth it.
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

basic2004 wrote:I modified src/sound_mpu401.c (from line 810) like PCem style.
Thanks!
basic2004 wrote:Here is a patch for PCem-wx-SDL2, this patch will make to support SBMIDI for 8-bit Sound Blaster cards.
PCem-wx-SDL2-support-SBMIDI.patch
Original works by TC1995 in 86Box GitHub.
https://github.com/OBattler/86Box/commi ... 0e714955cf
Nice!
I think Sarah should decide if this patch should be applied though.
szadycbr wrote:Ok. bit, i installed AntiX linux , based on debian and all dependencies installed no probs. system is blazing fast and PCem runs perfectly!!! so , yeah if anyone want to try Lubuntu it is not worth it.
I'm a bit curious to why Lubuntu is so unstable, maybe I should try it in a VM sometime. It's great that you got it working!
iwasaperson
Posts: 31
Joined: Sun 02 Nov, 2014 12:48 am

Re: [Linux] GUI discussion

Post by iwasaperson »

I can't get either pcem or your fork to recognize any ROMs lately. It worked just fine in previous versions (I have all of my ROM names lowercase), but something seems to have changed preventing it from working.

I'm using Debian 9, and I've never had this issue in the past.
basic2004
Posts: 124
Joined: Sun 08 Jan, 2017 5:59 pm

Re: [Linux] GUI discussion

Post by basic2004 »

bit wrote:
basic2004 wrote:Here is a patch for PCem-wx-SDL2, this patch will make to support SBMIDI for 8-bit Sound Blaster cards.
PCem-wx-SDL2-support-SBMIDI.patch

Original works by TC1995 in 86Box GitHub.
https://github.com/OBattler/86Box/commi ... 0e714955cf
Nice!
I think Sarah should decide if this patch should be applied though.
I think MIDI out device problem not solved mainline yet.
PCem-wx-SDL2's Windows UI and wxWidgets UI both solved MIDI problem in my Windows.

But I saw wx-SDL2-midi.c there has many empty functions.
How to works MIDI in other platforms?
and when wx-SDL2 supports joysticks?
I think wxWidgets UI almost done when supports these completely.

and Windows UI should support CONFIG_SPINNER too, fluidsynth branch can work in my MinGW with fluidsynth-1.1.6.
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

iwasaperson wrote:I can't get either pcem or your fork to recognize any ROMs lately. It worked just fine in previous versions (I have all of my ROM names lowercase), but something seems to have changed preventing it from working.

I'm using Debian 9, and I've never had this issue in the past.
It was recently changed that on Linux everything PCem-related will be stored in ${HOME}/.pcem/
You can look in ~/.pcem/pcem.cfg and see the default paths.
basic2004 wrote:I think MIDI out device problem not solved mainline yet.
No not yet. If Sarah accepts my MIDI-updates and your patch I can apply it. Otherwise your patch have to be modified for how it is in mainline.
basic2004 wrote:But I saw wx-SDL2-midi.c there has many empty functions.
How to works MIDI in other platforms?
It is currently Windows-only. I'm actually not sure how MIDI really works on Linux, which is why I looked at FluidSynth as an alternative :)
basic2004 wrote:and when wx-SDL2 supports joysticks?
I don't own a joystick so I haven't looked at it. I might be able to get it working by guessing but I hope someone else is willing to implement it :)
basic2004 wrote:and Windows UI should support CONFIG_SPINNER too
I've started work on it, so it will be available soon.
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

basic2004 wrote:and Windows UI should support CONFIG_SPINNER too
Unfortunately I couldn't figure out how to make a spinner using DLGITEMTEMPLATE, so I made it an ordinary edit box so it can be configured at least.
I also updated the makefiles a bit so to build with fluidsynth-support you add FLUIDSYNTH=1 as a parameter, for example like this:

Code: Select all

mingw32-make -f Makefile.mingw FLUIDSYNTH=1
User avatar
TheMechanist
Posts: 71
Joined: Mon 03 Apr, 2017 6:59 pm
Contact:

Re: [Linux] GUI discussion

Post by TheMechanist »

Just installed latest mainline ...

simply two words: fucking excellent ! Great job !!!!
User avatar
TheMechanist
Posts: 71
Joined: Mon 03 Apr, 2017 6:59 pm
Contact:

Re: [Linux] GUI discussion

Post by TheMechanist »

one suggestion - would be nice to have some fixed screen resolutions for window .. you could either stay with fixed & scale, but in that case the window is resized everytime the resolution of the machine changes, or it stays the same window size when set to resizeable, but it's only freehand .. so getting a fixed positioned & sized window but with a special resolution would be fine !
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

Thank you :)

It's a good idea, adding a custom resolution. I've seen it mentioned before as well. I'll take a look at it.
iwasaperson
Posts: 31
Joined: Sun 02 Nov, 2014 12:48 am

Re: [Linux] GUI discussion

Post by iwasaperson »

Is there a way to get the sharp-bilinear shader (in libretro's pack retro/sharp-bilinear.glslp) working? It essentially completely fixes uneven pixel scaling by scaling the image evenly to a high resolution, then downscaling back to your preferred resolution using a bilinear filter. The pixels are slightly less sharp, but it's barely even noticeable while using it. This would be fantastic for scaling 640x400 to the proper 4:3 ratio.

Trying to use it with PCem gives me this error:
Could not compile shader:
0:122(22): error: no matching function for call to `texture(sampler2D, vec2)'; candidates are:
0:122(22): error: type mismatch
0:122(17): error: cannot construct `vec4' from a non-numeric data type

I'm assuming the shader implementation is incomplete, so consider this more of a feature request than a bug report.
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

iwasaperson wrote:Is there a way to get the sharp-bilinear shader (in libretro's pack retro/sharp-bilinear.glslp) working? It essentially completely fixes uneven pixel scaling by scaling the image evenly to a high resolution, then downscaling back to your preferred resolution using a bilinear filter. The pixels are slightly less sharp, but it's barely even noticeable while using it. This would be fantastic for scaling 640x400 to the proper 4:3 ratio.

Trying to use it with PCem gives me this error:
Could not compile shader:
0:122(22): error: no matching function for call to `texture(sampler2D, vec2)'; candidates are:
0:122(22): error: type mismatch
0:122(17): error: cannot construct `vec4' from a non-numeric data type

I'm assuming the shader implementation is incomplete, so consider this more of a feature request than a bug report.
I tried that shader on three different computers and it was compiled without issues on all of them. Are you using the latest version from https://github.com/libretro/glsl-shaders/?
It might be an issue with the graphics driver though, what GPU and driver version are you using?

Even though it compiles for me it doesn't seem to work as I expected though, so I will take a look at it :)
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Linux] GUI discussion

Post by SarahWalker »

I'm considering ditching the native Windows GUI and just making the wxWidgets one the default + only option. Does anyone have any problems with that?

Basically I don't want to have to maintain multiple UIs, and this one is multi-platform and frankly better looking!
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: [Linux] GUI discussion

Post by szadycbr »

I think it's great idea, wx widgets looks great and neat , so , why not.
User avatar
leilei
Posts: 1039
Joined: Fri 25 Apr, 2014 4:47 pm

Re: [Linux] GUI discussion

Post by leilei »

SarahWalker wrote:I'm considering ditching the native Windows GUI and just making the wxWidgets one the default + only option. Does anyone have any problems with that?
Maybe regarding potential input issues in the SDL2 part which always could get ironed out later. The Wx part's fantastic besides some focusing problems with some windows. Relatively minor issues at this time

My typical concerns over SDL2 not supporting Win9x/2000 doesn't really apply to an emulator that requires a modern system anyway.

Maybe the native windows GUI part could be reduced to a really barebones interface without menus and the like for less maintenance burden / debugging?
iwasaperson
Posts: 31
Joined: Sun 02 Nov, 2014 12:48 am

Re: [Linux] GUI discussion

Post by iwasaperson »

bit wrote: I tried that shader on three different computers and it was compiled without issues on all of them. Are you using the latest version from https://github.com/libretro/glsl-shaders/?
It might be an issue with the graphics driver though, what GPU and driver version are you using?

Even though it compiles for me it doesn't seem to work as I expected though, so I will take a look at it :)
Using Intel iGPU (6600K) on Debian stretch with Mesa 13.0.6.

Just updated both your fork and the shaders. Still not working.

Also to Sarah, I also like this UI better than the Windows one, and having a singular UI on all platforms is a good idea IMO.
basic2004
Posts: 124
Joined: Sun 08 Jan, 2017 5:59 pm

Re: [Linux] GUI discussion

Post by basic2004 »

bit wrote:Thank you :)

It's a good idea, adding a custom resolution. I've seen it mentioned before as well. I'll take a look at it.
Thanks, custom resolution is very nice feature.
but I need same feature for OpenGL 3, this will instead input scale.
Maybe it can showing to clean screen when selected custom resolution with same custom input resolution.
basic2004
Posts: 124
Joined: Sun 08 Jan, 2017 5:59 pm

Re: [Linux] GUI discussion

Post by basic2004 »

SarahWalker wrote:I'm considering ditching the native Windows GUI and just making the wxWidgets one the default + only option. Does anyone have any problems with that?

Basically I don't want to have to maintain multiple UIs, and this one is multi-platform and frankly better looking!
I agree to unified UI with wxWidgets.
This can launch on Mac OS X, maybe next version of PCem will add OS X release.

But some features has incompleted, MIDI and Joystick.
I hope complete these feature and work stability.
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: [Linux] GUI discussion

Post by Battler »

SarahWalker wrote:I'm considering ditching the native Windows GUI and just making the wxWidgets one the default + only option. Does anyone have any problems with that?
I do. I will explain why below the next quote.
Maybe regarding potential input issues in the SDL2 part which always could get ironed out later.
They can't get ironed out. You'll be doing scan code -> virtual key code -> scan code conversion, that's lossy by definition.
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

Thanks everyone! I'm happy you like the GUI :)
basic2004 wrote:This can launch on Mac OS X, maybe next version of PCem will add OS X release.

But some features has incompleted, MIDI and Joystick.
It would be great to support OSX, but there are a few issues with the current port as is and since I don't have a Mac we'd need someone who is willing to maintain it.
I'm working on some MIDI patches right now and regarding Joystick I'm thinking of just using the win-joystick-code to enable it on Windows for the time being.

Regarding input the Windows port is no longer using SDL2 for keyboard input, the current code for that is actually copy-pasted straight from win.c so if there's still any issues with keyboard input it's probably me who can't copy-paste properly :)
leilei wrote:focusing problems with some windows
Which windows are misbehaving? I'll take a look at them.
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

iwasaperson wrote:Using Intel iGPU (6600K) on Debian stretch with Mesa 13.0.6.

Just updated both your fork and the shaders. Still not working.
Hmm, I wonder if it might be a driver issue. Unfortunately I don't have that combination available to test with. Have you tried the same shader with RetroArch?

Is there anyone else who have trouble with shader-compiling?
basic2004 wrote:Thanks, custom resolution is very nice feature.
but I need same feature for OpenGL 3, this will instead input scale.
Maybe it can showing to clean screen when selected custom resolution with same custom input resolution.
Yeah I'm thinking of adding input resolution as well.
I'm not sure what you mean with clean screen.
iwasaperson
Posts: 31
Joined: Sun 02 Nov, 2014 12:48 am

Re: [Linux] GUI discussion

Post by iwasaperson »

bit wrote:
iwasaperson wrote:Using Intel iGPU (6600K) on Debian stretch with Mesa 13.0.6.

Just updated both your fork and the shaders. Still not working.
Hmm, I wonder if it might be a driver issue. Unfortunately I don't have that combination available to test with. Have you tried the same shader with RetroArch?

Is there anyone else who have trouble with shader-compiling?
That shader works perfectly with RetroArch. I've never had a problem with a shader not working with RetroArch on this setup, barring the cg Analog Shader Pack.

EDIT: The shader does compile on Antergos using fglrx with a 7870, but it doesn't actually do anything. Pixellate (a similar shader) also compiles, but it just slightly blurs the image without actually doing anything useful.

On another note, When I select square pixels or integer scale (using the GL3 renderer), it keeps the 4:3 ratio, but makes the image look a lot nicer as opposed to the mess I get when selecting 4:3. This happens on both Antergos with fglrx and Debian with mesa. Even when selecting either of these options, I still do not get either square pixels or an integer scale (the obvious signs are all there).

EDIT2: The aspect ratio only changes with the output stretch mode option. Everything I said about the 4:3 looking nasty and the improvement when using square pixels or integer scale still stands, but it seems like the two options (GL3 settings and the other settings) aren't linked like they should be. When selecting integer scale on both, I do get a proper integer scale.

EDIT3: Seperate bug report: the Scale filtering (Nearest neighbor or Linear) doesn't seem to do anything on any renderer except for OpenGL (not GL3).

For contrast, DOSBox in RetroArch with sharp-bilinear with a 4:3 ratio looks absolutely fantastic, even when viewing text.

Are you applying the shader before or after the built in scaling?
bit
Posts: 98
Joined: Sun 19 Mar, 2017 7:04 pm

Re: [Linux] GUI discussion

Post by bit »

iwasaperson wrote:
bit wrote:
iwasaperson wrote:Using Intel iGPU (6600K) on Debian stretch with Mesa 13.0.6.

Just updated both your fork and the shaders. Still not working.
Hmm, I wonder if it might be a driver issue. Unfortunately I don't have that combination available to test with. Have you tried the same shader with RetroArch?

Is there anyone else who have trouble with shader-compiling?
That shader works perfectly with RetroArch. I've never had a problem with a shader not working with RetroArch on this setup, barring the cg Analog Shader Pack.
Could you try the shader_test-branch on my GitHub? It will use the latest available OpenGL-version instead of forcing it to 3.0. It might make it compileable.
Post Reply