mborjesson / PCem-wx-SDL2

Unofficial version of PCem that uses wxWidgets/SDL2
GNU General Public License v2.0
13 stars 5 forks source link

Cannot make on OSX #4

Open shockdesign opened 7 years ago

shockdesign commented 7 years ago

Hello,

Following the instructions below and installing all dependencies, it doesn't compile for OSX.

LDFLAGS=-L/usr/local/opt/openal-soft/lib CPPFLAGS=-I/usr/local/opt/openal-soft/include make
Making all in src
gcc -DPACKAGE_NAME=\"PCem\" -DPACKAGE_TARNAME=\"pcem\" -DPACKAGE_VERSION=\"v12\" -DPACKAGE_STRING=\"PCem\ v12\" -DPACKAGE_BUGREPORT=\"Sarah\ Walker\ \<pcem@pcem-emulator.co.uk\>\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pcem\" -DVERSION=\"v12\" -DHAVE_LIBOPENAL=1 -DHAVE_LIBALUT=1 -DHAVE_LIBPTHREAD=1 -I.   -I/usr/local/opt/openal-soft/include -I/usr/local/lib/wx/include/osx_cocoa-unicode-3.0 -I/usr/local/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__  -I/usr/local/include/SDL2 -D_THREAD_SAFE  -O3 -MT pcem-cdrom-ioctl-linux.o -MD -MP -MF .deps/pcem-cdrom-ioctl-linux.Tpo -c -o pcem-cdrom-ioctl-linux.o `test -f 'cdrom-ioctl-linux.c' || echo './'`cdrom-ioctl-linux.c
cdrom-ioctl-linux.c:3:10: fatal error: 'linux/cdrom.h' file not found
#include <linux/cdrom.h>
         ^
1 error generated.
make[1]: *** [pcem-cdrom-ioctl-linux.o] Error 1
make: *** [all-recursive] Error 1

Is there a way to check for DARWIN dependencies and modify the headers as needed?

Marcellus-Wallace-Sr commented 7 years ago

I'm more Linux than Mac but looks like linux-headers module needs to be installed.

On Fri, Jun 23, 2017 at 9:27 AM, Rajesh Singh notifications@github.com wrote:

Hello,

Following the instructions below and installing all dependencies, it doesn't compile for OSX.

LDFLAGS=-L/usr/local/opt/openal-soft/lib CPPFLAGS=-I/usr/local/opt/openal-soft/include make Making all in src gcc -DPACKAGE_NAME=\"PCem\" -DPACKAGE_TARNAME=\"pcem\" -DPACKAGE_VERSION=\"v12\" -DPACKAGE_STRING=\"PCem\ v12\" -DPACKAGE_BUGREPORT=\"Sarah\ Walker\ \pcem@pcem-emulator.co.uk\\" -DPACKAGE_URL=\"\" -DPACKAGE=\"pcem\" -DVERSION=\"v12\" -DHAVE_LIBOPENAL=1 -DHAVE_LIBALUT=1 -DHAVE_LIBPTHREAD=1 -I. -I/usr/local/opt/openal-soft/include -I/usr/local/lib/wx/include/osx_cocoa-unicode-3.0 -I/usr/local/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -DWXMAC -DWXOSX -D__WXOSX_COCOA__ -I/usr/local/include/SDL2 -D_THREAD_SAFE -O3 -MT pcem-cdrom-ioctl-linux.o -MD -MP -MF .deps/pcem-cdrom-ioctl-linux.Tpo -c -o pcem-cdrom-ioctl-linux.o test -f 'cdrom-ioctl-linux.c' || echo './'cdrom-ioctl-linux.c cdrom-ioctl-linux.c:3:10: fatal error: 'linux/cdrom.h' file not found

include <linux/cdrom.h>

     ^

1 error generated. make[1]: [pcem-cdrom-ioctl-linux.o] Error 1 make: [all-recursive] Error 1

Is there a way to check for DARWIN dependencies and modify the headers as needed?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mborjesson/PCem-wx-SDL2/issues/4, or mute the thread https://github.com/notifications/unsubscribe-auth/AABfttEFRn8bMK4UH89wvP2wgiIVNgKNks5sG71IgaJpZM4ODkP2 .

shockdesign commented 7 years ago

@johnnyl Yeah, I then checked the src directory and noticed there was a specific osx makefile which then compiles the pcem-cdrom-ioctrl-osx.o instead ...

However running that..

LDFLAGS=-L/usr/local/opt/openal-soft/lib CPPFLAGS=-I/usr/local/opt/openal-soft/include make -f Makefile.osx64-wx-sdl2
gcc 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acer386sx.o ali1429.o amstrad.o cdrom-ioctl-osx.o cdrom-image.o cdrom-null.o codegen.o codegen_ops.o codegen_timing_486.o codegen_timing_686.o codegen_timing_pentium.o codegen_timing_winchip.o codegen_x86-64.c compaq.o config.o cpu.o dac.o device.o dells200.o disc.o disc_fdi.o disc_img.o disc_sector.o dma.o fdc.o fdc37c665.o fdd.o fdi2raw.o gameport.o hdd.o hdd_esdi.o headland.o i430lx.o i430fx.o i430vx.o ide.o intel.o intel_flash.o io.o jim.o joystick_ch_flightstick_pro.o joystick_standard.o joystick_sw_pad.o joystick_tm_fcs.o keyboard.o keyboard_amstrad.o keyboard_at.o keyboard_olim24.o keyboard_pcjr.o keyboard_xt.o laserxt.o lpt.o mca.o mcr.o mem.o mfm_at.o mfm_xebec.o model.o mouse.o mouse_ps2.o mouse_serial.o neat.o nmi.o nvr.o olivetti_m24.o opti495.o paths.o pc.o pci.o pic.o piix.o pit.o ppi.o ps1.o ps2.o ps2_mca.o ps2_nvr.o rom.o rtc.o scat.o serial.o sio.o sis496.o sound.o sound_ad1848.o sound_adlib.o sound_adlibgold.o sound_cms.o sound_emu8k.o sound_gus.o sound_mpu401_uart.o sound_opl.o sound_pas16.o sound_ps1.o sound_pssj.o sound_sb.o sound_sb_dsp.o sound_sn76489.o sound_speaker.o sound_ssi2001.o sound_wss.o sound_ym7128.o soundopenal.o tandy_eeprom.o tandy_rom.o timer.o um8669f.o um8881f.o vid_ati_eeprom.o vid_ati_mach64.o vid_ati18800.o vid_ati28800.o vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_colorplus.o vid_ega.o vid_et4000.o vid_et4000w32.o vid_genius.o vid_hercules.o vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc200.o vid_pc1512.o vid_pc1640.o vid_pcjr.o vid_ps1_svga.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_stg_ramdac.o vid_svga.o vid_svga_render.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o x86seg.o x87.o xtide.o sound_dbopl.o sound_resid.o wx-main.o wx-config_sel.o wx-dialogbox.o wx-utils.o wx-app.o wx-sdl2-joystick.o wx-sdl2-mouse.o wx-sdl2-keyboard.o wx-sdl2-video.o wx-sdl2-midi.o wx-sdl2.o wx-config.o wx-deviceconfig.o wx-sdl2-hdconf.o wx-status.o wx-sdl2-status.o wx-resources.o wx-thread.o wx-common.o wx-sdl2-display.o cdrom_image.o dbopl.o nukedopl.o vid_cga_comp.o convolve.o convolve-sse.o envelope.o extfilt.o filter.o pot.o sid.o voice.o wave6581__ST.o wave6581_P_T.o wave6581_PS_.o wave6581_PST.o wave8580__ST.o wave8580_P_T.o wave8580_PS_.o wave8580_PST.o wave.o -o "PCem64-wx-SDL2" -lopenal -lstdc++ -lpthread -lm -L/usr/local/lib   -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -lwx_osx_cocoau_xrc-3.0 -lwx_osx_cocoau_webview-3.0 -lwx_osx_cocoau_html-3.0 -lwx_osx_cocoau_qa-3.0 -lwx_osx_cocoau_adv-3.0 -lwx_osx_cocoau_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0  -L/usr/local/lib -lSDL2 -L/usr/local/opt/openal-soft/lib
Undefined symbols for architecture x86_64:
  "_old_cdrom_drive", referenced from:
      image_medium_changed() in cdrom-image.o
      _wx_handle_command in wx-sdl2.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [PCem64-wx-SDL2] Error 1

Gets much closer but seems to fail finding the right symbol for 64bit architecture.... Will keep working on it.

Marcellus-Wallace-Sr commented 7 years ago

I would try to stick getting the topmost makefile to work. Usually the submakefiles depend on the very top one.

The error your getting now is because another file was not compiled properly to include into this current link.

I would look for the source definition of the

_old_cdrom_drive

function and see if that particular module can/did compile successfully.

On Sat, Jun 24, 2017 at 7:07 AM, Rajesh Singh notifications@github.com wrote:

@johnnyl https://github.com/johnnyl Yeah, I then checked the src directory and noticed there was a specific osx makefile which then compiles the pcem-cdrom-ioctrl-osx.o instead ...

However running that..

LDFLAGS=-L/usr/local/opt/openal-soft/lib CPPFLAGS=-I/usr/local/opt/openal-soft/include make -f Makefile.osx64-wx-sdl2 gcc 386.o 386_dynarec.o 386_dynarec_ops.o 808x.o acer386sx.o ali1429.o amstrad.o cdrom-ioctl-osx.o cdrom-image.o cdrom-null.o codegen.o codegen_ops.o codegen_timing_486.o codegen_timing_686.o codegen_timing_pentium.o codegen_timing_winchip.o codegen_x86-64.c compaq.o config.o cpu.o dac.o device.o dells200.o disc.o disc_fdi.o disc_img.o disc_sector.o dma.o fdc.o fdc37c665.o fdd.o fdi2raw.o gameport.o hdd.o hdd_esdi.o headland.o i430lx.o i430fx.o i430vx.o ide.o intel.o intel_flash.o io.o jim.o joystick_ch_flightstick_pro.o joystick_standard.o joystick_sw_pad.o joystick_tm_fcs.o keyboard.o keyboard_amstrad.o keyboard_at.o keyboard_olim24.o keyboard_pcjr.o keyboard_xt.o laserxt.o lpt.o mca.o mcr.o mem.o mfm_at.o mfm_xebec.o model.o mouse.o mouse_ps2.o mouse_serial.o neat.o nmi.o nvr.o olivetti_m24.o opti495.o paths.o pc.o pci.o pic.o piix.o pit.o ppi.o ps1.o ps2.o ps2_mca.o ps2_nvr.o rom.o rtc.o scat.o serial.o sio.o sis496.o sound.o sound_ad1848.o sound_adlib.o sound_adlibgold.o sound_cms.o sound_emu8k.o sound_gus.o sound_mpu401_uart.o sound_opl.o sound_pas16.o sound_ps1.o sound_pssj.o sound_sb.o sound_sb_dsp.o sound_sn76489.o sound_speaker.o sound_ssi2001.o sound_wss.o sound_ym7128.o soundopenal.o tandy_eeprom.o tandy_rom.o timer.o um8669f.o um8881f.o vid_ati_eeprom.o vid_ati_mach64.o vid_ati18800.o vid_ati28800.o vid_ati68860_ramdac.o vid_cga.o vid_cl5429.o vid_colorplus.o vid_ega.o vid_et4000.o vid_et4000w32.o vid_genius.o vid_hercules.o vid_icd2061.o vid_ics2595.o vid_incolor.o vid_mda.o vid_olivetti_m24.o vid_oti067.o vid_paradise.o vid_pc200.o vid_pc1512.o vid_pc1640.o vid_pcjr.o vid_ps1_svga.o vid_s3.o vid_s3_virge.o vid_sdac_ramdac.o vid_stg_ramdac.o vid_svga.o vid_svga_render.o vid_tandy.o vid_tandysl.o vid_tgui9440.o vid_tkd8001_ramdac.o vid_tvga.o vid_unk_ramdac.o vid_vga.o vid_voodoo.o vid_wy700.o video.o wd76c10.o x86seg.o x87.o xtide.o sound_dbopl.o sound_resid.o wx-main.o wx-config_sel.o wx-dialogbox.o wx-utils.o wx-app.o wx-sdl2-joystick.o wx-sdl2-mouse.o wx-sdl2-keyboard.o wx-sdl2-video.o wx-sdl2-midi.o wx-sdl2.o wx-config.o wx-deviceconfig.o wx-sdl2-hdconf.o wx-status.o wx-sdl2-status.o wx-resources.o wx-thread.o wx-common.o wx-sdl2-display.o cdrom_image.o dbopl.o nukedopl.o vid_cga_comp.o convolve.o convolve-sse.o envelope.o extfilt.o filter.o pot.o sid.o voice.o wave6581__ST.o wave6581_P_T.o wave6581PS.o wave6581_PST.o wave8580__ST.o wave8580_P_T.o wave8580PS.o wave8580_PST.o wave.o -o "PCem64-wx-SDL2" -lopenal -lstdc++ -lpthread -lm -L/usr/local/lib -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -lwx_osx_cocoau_xrc-3.0 -lwx_osx_cocoau_webview-3.0 -lwx_osx_cocoau_html-3.0 -lwx_osx_cocoau_qa-3.0 -lwx_osx_cocoau_adv-3.0 -lwx_osx_cocoau_core-3.0 -lwx_baseu_xml-3.0 -lwx_baseu_net-3.0 -lwx_baseu-3.0 -L/usr/local/lib -lSDL2 -L/usr/local/opt/openal-soft/lib Undefined symbols for architecture x86_64: "_old_cdrom_drive", referenced from: image_medium_changed() in cdrom-image.o _wx_handle_command in wx-sdl2.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [PCem64-wx-SDL2] Error 1

Gets much closer but seems to fail finding the right symbol for 64bit architecture.... Will keep working on it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mborjesson/PCem-wx-SDL2/issues/4#issuecomment-310832253, or mute the thread https://github.com/notifications/unsubscribe-auth/AABftkrGacktpK8Iet3fJUnP1q9XsAfmks5sHO3kgaJpZM4ODkP2 .

shockdesign commented 7 years ago

@johnnyl I've fixed that and it now compiles. Going to look at why the topmost Makefile is picking Linux over OSX .. But I have an executable now, so thats a good start.

mborjesson commented 7 years ago

Sorry for the lack of replies from me, I've been a bit busy. Unfortunately the OSX-code is not really maintained as I don't own a Mac. I was able to borrow one just to see if I could get it to work but that was some time ago and I'm not sure of the state of it right now. To build it you have to use the OSX-specific Makefile from the src-folder as the topmost Makefile is Linux-only. @shockdesign did you get it to run?

shockdesign commented 7 years ago

@mborjesson I did get it to compile, had to modify the topmost Makefile, and also got it to compile with the osx specific Makefile, however there are quite a few crashes, so going to have to go deeper into why it's failing. Happy to try and get this in a usable state, just might need to ping you to work out why things are the way they are.

mborjesson commented 7 years ago

@shockdesign That would be great! I'd be happy to help you get it working.

shockdesign commented 7 years ago

@mborjesson Awesome, much appreciated. Really do want this to work on OSX.

mborjesson commented 7 years ago

@shockdesign It would be great to have it running again! :) I just remembered that when I worked on it I had issues with the dynamic recompiler, so that could be a source for crashes you might experience. It means that Pentium doesn't work and that the recompiler has to be disabled for everything else.

shockdesign commented 7 years ago

@mborjesson The issues currently seem to be in regards to wxwidgets? In theory for compilation we should get the top most Makefile working as well, picking all the right bits based on the Darwin header... I guess it needs to work as 64bit these days too on OSX.

mborjesson commented 7 years ago

@shockdesign Hmm what kind of issues are you having? I might recognize them from when I worked on it.

shockdesign commented 7 years ago

@mborjesson

screen shot 2017-07-05 at 00 30 20

This occurs trying to create a new config..after entering a name.

On the command line I get this information..

➜  PCem-wx-SDL2 git:(osx-build) ✗ ./pcem
Set fullspeed - 0 0 0
Menu item not found: 1403
Menu item not found: 1404
./src/osx/cocoa/combobox.mm(196): assert "item >= 0 && item < [m_comboBox numberOfItems]" failed in SetSelectedItem(): Inavlid item index.
Collecting stack trace information, please wait..../src/osx/cocoa/evtloop.mm(129): assert "m_modalSession == __null" failed in ~wxGUIEventLoop().
Collecting stack trace information, please wait..../src/osx/cocoa/evtloop.mm(131): assert "m_modalNestedLevel == 0" failed in ~wxGUIEventLoop().
Collecting stack trace information, please wait...*** Caught unhandled unknown exception; terminating
mborjesson commented 7 years ago

That one might be fixed by changing WX_CB_SETCURSEL in wx-utils.cc to

        case WX_CB_SETCURSEL:
                if (((wxComboBox*) window)->GetCount() > 0) ((wxComboBox*) window)->Select(param1);
                break;

As can be seen in case WX_CB_RESETCONTENT there seems to be some things with the combo box on OSX that has to be worked around.

shockdesign commented 7 years ago

@mborjesson that didn't seem to work (same crash), I'm going to look into it a bit more. Is there a specific version of wxwidgets used?

Xeon3D commented 7 years ago

Just saying I can't as well compile the latest revision on macOS Sierra. I have wxmac 3.1.0 and sdl2 2.0.5 and Allegro 5.2.2 from Homebrew.

Sadly my programming skills are lacking, so apart from testing I probably can't be of more help.

shockdesign commented 7 years ago

@Xeon3D this version doesn't need Allegro, should be able to get away with running the osx specific makefile in the src directory.. i.e. make -f Makefile.osx64-wx-sdl2

I also had to install OpenAL and set some flags, so my entire make line was

LDFLAGS=-L/usr/local/opt/openal-soft/lib CPPFLAGS=-I/usr/local/opt/openal-soft/include make -f Makefile.osx64-wx-sdl2

Xeon3D commented 7 years ago

Ok, I just re-cloned the last revision, cd'ed to src/ and copy pasted that line. It fails with linker errors. I made a gist of the errors here: https://gist.github.com/Xeon3D/e77cd4369b5d57d2b82b9652d2aa760f

Xeon3D commented 7 years ago

Managed to build it but it also errors out in wxwidgets when opening configurations.. :)

mborjesson commented 7 years ago

@shockdesign @Xeon3D Thanks for testing and being interested in getting the OSX-version up and running again :) I should have some more time now to help you out.

Xeon3D commented 7 years ago

I'm up for it. I'm also at the 86box discord server if it's better for you.

mborjesson commented 7 years ago

@shockdesign It should work with wxWidgets 3.0+. @Xeon3D Great! If I need to some real-time testing I'll ping you there :)

mborjesson commented 7 years ago

Does it work if you change WX_CB_SETCURSEL to this?:

        case WX_CB_SETCURSEL:
                if (param1 >= 0 && param1 < ((wxComboBox*) window)->GetCount())
                        ((wxComboBox*) window)->Select(param1);
                break;
Xeon3D commented 7 years ago

Yes, the configuring dialog now opens. Please note that I'm using the two-windows branch as it was the first branch that compiled successfully. Shall I try another one?

Also, I'm on mostly at nights and weekends (GMT +1), so If you prefer another method (I know I do prefer real time chatting) it's ok by me, as I've got accounts in most of the communication websites/apps.

Screen Cap of Configuration Window

Edit: Just checked out the master branch, and when compiling (note, that there is no edit to any file, as that wx fix isn't needed), I only get linker errors. The make -f Makefile.osx64-wx-sdl2 output is in this gist

mborjesson commented 7 years ago

For now we can try to work it out here. Since I have a kid it's not easy for me to sit down and do something else for longer periods :) But I think we should try with the master-branch and see if we can get that to work. I've created a new branch (osx) with the latest from master and updated Makefile.osx64-wx-sdl2 and cdrom-ioctl-osx.c that should hopefully fix the linker-errors.

Xeon3D commented 7 years ago

I submitted a pull request (that fixes a small compilation error, even tho, it's better if you check it out), but we still have linker errors. Might them be due to use of -lGL ?

Linker errors

mborjesson commented 7 years ago

@Xeon3D Did you use the Makefile from the osx-branch? According to the gist none of the changes I made to the Makefile are used.

Xeon3D commented 7 years ago

My bad. Was using master... haha. I'm a newbie so you'll have to excuse my mixups. :)

New linker error

Removing the LGL from the Makefile, gives this out: Other linker error mt32emu related

mborjesson commented 7 years ago

No worries! :) Hmm seems like -framework OpenGL is needed instead of -lGL. I changed it, try and see if it works now.

Xeon3D commented 7 years ago

It still outputs the mt32emu errors like on my last link.

mborjesson commented 7 years ago

Ooops sorry, I forgot to add the obj-variables when updating the Makefile :)

Updated. Maybe it will finally remove all the linker-errors :)

Xeon3D commented 7 years ago

ok, it now compiles and shows up the new GUI, but closing one of the extra "windows" (configuration, or hdd setup), makes it segfault... :(

mborjesson commented 7 years ago

Do you have a configs-directory in the folder where you're running pcem from? (The same folder where you have roms and nvr) I seem to recall that when running pcem without that folder on Windows strange things can happen. There has been some changes to how it looks for paths on Linux which should work on OSX without issues but we'll fix that later.

Xeon3D commented 7 years ago

Heh, that was it. I made a configs folder in the same directory and now it doesn't complain, nor segfault. I've already tried a couple of setups (8086 and PS1) and they worked.

When stopping the emulation, the "computer window" doesn't disappear until I start emulating something again.

Also, there's no way of swapping floppies/cd's. The two window branch had some icons one could click but they're not present in this branch.

Forget that. Found out I had to right click the emulator window. Then the familiar window from the two windows branch appears (together with some menu bar items). I wonder if there is an easy tool to make a GUI for the emulator.

Also, the dynamic recompiler is making it crash. As long as the box isn't ticked, It works perfectly, but the maximum it can emulate is a IDT WinChip 240 :cry:

mborjesson commented 7 years ago

Great that it's working again! Yeah the dynamic recompiler doesn't work on OSX unfortunately. I'm not knowledgeable enough in that area to even think about fixing it :(

When you feel you've tested it enough it would be great if you could provide a list with all the things that needs to be fixed and I'll take a look at it.

Xeon3D commented 7 years ago

To be honest, apart from the recompiler, the only thing that bugs me quite a lot is the GUI. I wonder if there's an easy way to rearrange it or even make a new one? I'd be more than welcome to do such a thing but I'd need to have a GUI based design app for me to be able to.

mborjesson commented 7 years ago

It would be awesome if you'd like to update the GUI :) I did it by hand when I started out but I recently found wxFormBuilder (https://github.com/wxFormBuilder/wxFormBuilder) which makes it way easier. I've wanted to update the GUI but haven't had the time to do anything yet.

Xeon3D commented 7 years ago

Heh, I tried that one (and a couple of others that I found on wxwidgets site, but I can't really do anything with it. :( I'm doing a "functional" sketch on VB2010 (I know it probably won't do much programming wise, but it might do something visually. I'm heavily copying FS-UAE Launch design guides.

I was wondering if there was a possibility of using a slightly altered version of the FS-UAE Launcher as the PCem GUI.

I've also setup a macOS 10.13 (Yes, High Sierra) VM with the necessary tools for PCem to be compiled, accessible thru VNC. If you want, gimme a holla on Discord and I'll reply with the url, port and passwords :)

Made a simple half-assed GUI with bogus values but it's a windows .exe, you can check it out here: https://file.io/G4qkDW

mborjesson commented 7 years ago

Theoretically it's should be possible to create a separate launcher for PCem, since you can start it with the --config parameter. There were some discussions about that on the PCem-forums. Your GUI-sketch looks pretty nice! :)

I managed to get a few hours without interruptions yesterday so I started updating the GUI, currently the configuration-dialog looks like this: screenshot from 2017-07-11 20-58-20

It's great that you have an macOS VM available! If we run in to any issues we can't solve easily I'll poke you on Discord about it :)

Xeon3D commented 7 years ago

That is AWESOME. I'm wondering if there is something we can do to add the HDD's to the same window. I find the current menubar option to be quite off-putting.

checks frantically for new commits

Also, may the dynarec errors be due to it being compiled as 64-bit. I've read somewhere that the 64-bit recompiled failed on something or something...

mborjesson commented 7 years ago

I just committed it to master. I also merged the osx-branch to it so it's no longer needed. The HDD-configuration is now in the same dialog so everything is now configured in one place :) Not sure what you mean with the current menubar option.

You might've read about the 64-bit Voodoo recompiler being broken, I personally haven't had any issues with the CPU recompiler but it's not impossible that there is some issue with it.

Xeon3D commented 7 years ago

xeon3d@Marcoss-MacBook-Pro  ~/Documents/GitHub/PCem-wx-SDL2/src   master  make -f Makefile.osx64-wx-sdl2 make: *** No rule to make target wx-sdl2-hdconf.o', needed byPCem64-wx-SDL2'. Stop.

I'm guessing you forgot to commit some files 😆

EDIT Damn, you're fast!

mborjesson commented 7 years ago

Oh wow, I just comitted an updated Makefile as I remembered that I forgot to remove that entry :) If you pull it should hopefully build :p

Xeon3D commented 7 years ago

overlapped boxes tiny cut-off icons tiny cut-off icons v2

This is what I see at first sight. Other than that, the new UI is awesome. Strangely it looks better on Linux tho... :/

Can you make it so double clicking a configuration loads it?

EDIT 2: Also, the emulator window context menu, isn't really a context menu. I was wondering if those menu items could be on the top bar? Because the top bar items change wether you have the machine window on or not. Also, right clicking the emulator window and choosing the machine machine option, doesn't always work (doesn't always open the window)

EDIT 3: Ran two instances of the emulator, when quitting the second, it crashed. would a "Send-to-Apple-report" be of any use to you?

mborjesson commented 7 years ago

Oh that's unfortunate :/ Not sure how to fix those cut-off icons. The overlapped combo boxes have fixed sizes because that was the only way to get the layout I wanted, and it worked on both Linux and Windows so I assumed it would on OSX as well. I'll have to think about that one.

Double-clicking shouldn't be a problem I think. I've wanted to add that as well.

It might be possible to change how the menu behaves on OSX. Strange that it won't always open the machine window though.

You can paste the report, but I don't know if it will help anything. To be honest I don't really know how to code for OSX at all :) When I got it working earlier it was only by trial and error, and I don't really know why it works because the things I had to do to get it to work completely breaks both Linux and Windows. But we'll take it step by step and see what we can do.

Xeon3D commented 7 years ago

Well the report is huge and I don’t really think it’s helpful at all. I wonder if resizing the buttons to be a bit bigger would do the trick.

Cumprimentos - Best Regards Marcos Alves.

On 12 Jul 2017, 22:53 +0100, bit notifications@github.com, wrote:

Oh that's unfortunate :/ Not sure how to fix those cut-off icons. The overlapped combo boxes have fixed sizes because that was the only way to get the layout I wanted, and it worked on both Linux and Windows so I assumed it would on OSX as well. I'll have to think about that one. It might be possible to change how the menu behaves on OSX. Strange that it won't always open the machine window though. You can paste the report, but I don't know if it will help anything. To be honest I don't really know how to code for OSX at all :) When I got it working earlier it was only by trial and error, and I don't really know why it works because the things I had to do to get it to work completely breaks both Linux and Windows. But we'll take it step by step and see what we can do. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

mborjesson commented 7 years ago

I revived the osx-branch with a test to see if the buttons look better. I don't think it should be necessary to adjust the size though.

Xeon3D commented 7 years ago

Hi. The menu dropdown do not overlap now. The tools in the mini buttons are still cut off. I've found an IDE that compiles same code to OS X, Windows and Linux and I've been doing a frontend in it (code is very similar to Visual Basic, so I can code a thing or two). It looks quite similar, and the GUI design is done visually too.

Main Window

Expanded Main Window (After clicking Configure button)

Main Window Windows

Main Window Expanded Windows

mborjesson commented 7 years ago

That looks nice! Good job! :)

Are the buttons cut off the same as before or is it somewhat better?