Arculator v2.0 released!

discuss emulators of 26-bit acorn systems e.g. arculator and rpcemu
dpsharp
Posts: 68
Joined: Fri Sep 07, 2018 2:05 pm
Location: Lincolnshire
Contact:

Re: Arculator v2.0 released!

Post by dpsharp »

Nice idea but Wine won't run on Catalina or later at the moment: https://wiki.winehq.org/MacOS

Given SDL & wxWidgets are widely used I'm hoping recompiling Arculator is relatively straightforward but I'd like to get a view from someone more knowledgeable than I before I waste a lot of time on a dead end.
User avatar
mlouka
Posts: 86
Joined: Wed Sep 27, 2017 4:57 pm
Location: Halden, Norway
Contact:

Re: Arculator v2.0 released!

Post by mlouka »

Regarding compiling for macOS with X11 dependencies then there is now an alpha release update to XQuartz: https://www.xquartz.org/releases/XQuart ... lpha5.html

Normally, it is quite easy to get code that builds on Linux to build and run on macOS, if you just make sure that you have installed the prerequisite libraries using a package manager like Homebrew, and do everything from the command line, just as you would to build on Linux. Once I have a working executable then I typically use a tool like Platypus to wrap a startup script in an app. It is not necessary to use Xcode for a quick and dirty “port”. I don’t have time now but might have a go in a couple of days to see what happens.
BBC Master 128, BBC Model B i7, PMS B2P-6502 2nd proc., PiTubeDirect (both internal and external), RetroClinic Multi-OS Selector, Sundby 256k RAM/ROM card, MMFS, Gotek, Music 500, Hoglet RGBtoHDMI, ...
derek
Posts: 258
Joined: Thu May 07, 2015 8:31 pm
Location: Sunny Runcorn, UK
Contact:

Re: Arculator v2.0 released!

Post by derek »

Phipli wrote: Sun Jan 03, 2021 1:53 pm Its OK, the version at https://github.com/pdjstone/arculator works if you make the changes in this thread.

Thanks for the awesome work folks :)
Hi,

I dowloaded the Arcultor Master and it compike okay on my Linux Mint 19.3 Laptop, there was no core dumps when I tried to create a new emulator profile.

I created a 30220 with 3.11 Rom versions, all booted up to the desktop.

Great work guys...
Regards,

Derek
dpsharp
Posts: 68
Joined: Fri Sep 07, 2018 2:05 pm
Location: Lincolnshire
Contact:

Re: Arculator v2.0 released!

Post by dpsharp »

Thanks mlouka, that tip actually helped me; instead of trying to build wxWidgets from source like the page recommends I used homebrew to install wxmac.

The linux source code from pdjstone's repository all compiled happily enough, I've forced it to x86_64 build even though I'm on Apple Silicon as was getting mismatched architectures at linking time so forcing consistency seemed to help. I got a few OpenAL deprecated warnings but no errors due to that deprecation which was pleasing; how that plays out at run-time I'm not sure.

Unfortunately at runtime I immediately get a lot of errors like:
objc[39848]: Class wxNSAppController is implemented in both /usr/local/Cellar/wxmac/3.0.5.1_1/lib/libwx_osx_cocoau_core-3.0.0.5.0.dylib (0x10f92cc50) and /usr/local/Cellar/wxmac/3.0.5.1_1/lib/libwx_osx_cocoau_core-3.0.dylib (0x10e247c50). One of the two will be used. Which one is undefined.
followed by
./src/common/object.cpp(251): assert "classTable->Get(m_className) == NULL" failed in Register(): Class "wxHtmlHelpController" already in RTTI table - have you used IMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
Followed by a segmentation fault.
I don't understand why it thinks I've linked it twice?

Feels like I'm getting closer but no cigar yet! Would be great if someone more hands on than me gave it a go as I suspect it's not far away at all.
User avatar
robcfg
Posts: 161
Joined: Sun Dec 30, 2018 6:23 pm
Contact:

Re: Arculator v2.0 released!

Post by robcfg »

I just compiled it on MacOS Catalina and by sheer luck I had all dependencies installed.

I added my RiscOS 3.11 roms, started Arculator, created an A3010 and when I run it, it crashes with the following message:

Code: Select all

SDL_CreateWindowFrom could not be created! Error: NSWindow drag regions should only be invalidated on the Main Thread!
Video renderer init failed%
Any ideas?
Trendy21
Posts: 1
Joined: Fri Jan 29, 2021 9:32 pm
Contact:

Re: Arculator v2.0 released!

Post by Trendy21 »

Hello I was wondering how I can bypass having to select the CFG every time arculator opens and also will you be adding command line support. I use gameex and when I select a game to play I have to choose config then drive 0 to load game and play. Would love to boot directly to game. Thx for all the work on the new version it is much improved!
Manson976
Posts: 4
Joined: Tue Nov 17, 2020 5:00 pm
Contact:

Re: Arculator v2.0 released!

Post by Manson976 »

Trendy21 wrote: Sat Jan 30, 2021 5:35 am Hello I was wondering how I can bypass having to select the CFG every time arculator opens and also will you be adding command line support. I use gameex and when I select a game to play I have to choose config then drive 0 to load game and play. Would love to boot directly to game. Thx for all the work on the new version it is much improved!

I asked this very same question earlier in this forum.
SarahWalker wrote: Mon Jan 25, 2021 8:21 am Nope. I meant to add command line support, but forgot before the v2.0 release. Sorry!
Hopefully we can have game shortcuts it isn't to hard to send commands to the old arculator, waiting for the next update.
User avatar
mlouka
Posts: 86
Joined: Wed Sep 27, 2017 4:57 pm
Location: Halden, Norway
Contact:

Re: Arculator v2.0 released!

Post by mlouka »

I have now tried myself. After fixing the links to automake, building went smoothly but I get the same error as you on running. So the configuration dialog works fine, and I can also start from the command-line using a name configuration to bypass the configuration dialog window. The problem lies in the creation of the SDL window as macOS since 10.14 is strict on GUI updates being done on the main thread. Unfortunately SDL itself doesn’t handle that behind the scenes itself. A quick search revealed people having trouble with this same issue with SDL on other platforms too. Although I briefly tried to get a basic overview of how the initialization was taking place, and was able to confirm that SDL is detecting both OpenGL and software renderers (in additional to Metal), I am not familiar enough with the code or SDL to see a quick fix for adjusting the creation of the window to be sure that it is done from the main thread. I see that there is a file in Arculator that handles the SDL window initialization for Win32 and handles threading there in a Windows-specific way and I guess that it might be necessary to do something similar for macOS.
robcfg wrote: Fri Jan 29, 2021 11:33 pm I just compiled it on MacOS Catalina and by sheer luck I had all dependencies installed.

I added my RiscOS 3.11 roms, started Arculator, created an A3010 and when I run it, it crashes with the following message:

Code: Select all

SDL_CreateWindowFrom could not be created! Error: NSWindow drag regions should only be invalidated on the Main Thread!
Video renderer init failed%
Any ideas?
BBC Master 128, BBC Model B i7, PMS B2P-6502 2nd proc., PiTubeDirect (both internal and external), RetroClinic Multi-OS Selector, Sundby 256k RAM/ROM card, MMFS, Gotek, Music 500, Hoglet RGBtoHDMI, ...
dpsharp
Posts: 68
Joined: Fri Sep 07, 2018 2:05 pm
Location: Lincolnshire
Contact:

Re: Arculator v2.0 released!

Post by dpsharp »

Great work both of you, thanks for that, I'll persist and try and work out what's wrong with my setup so I can build it too.

Reading up on the 'not the main thread updating the UI' problem, I was interested to find this last comment with someone attempting to build Sarah's other excellent PCem for MacOS hitting a similar error and their attempt to comment out the set_window_title() call that was triggering it: https://pcem-emulator.co.uk/phpBB3/viewtopic.php?t=2999
I suspect CreateWindowFrom is a bit more fundamental and hard to comment out without problems! :)

I've not been able to investigate further yet while I can't build it; if we're lucky then it's just initialisation calls that need to be moved to the main thread. If we hit repeated calls during the actual emulation that might be harder to dispatch to the main thread. If you can get it opened up in the XCode debugger you may be able to identify the scale of the issue and potential solutions as described here under 'Detect Improper UI Updates on Background Threads':
https://developer.apple.com/documentati ... sues_early
dpsharp
Posts: 68
Joined: Fri Sep 07, 2018 2:05 pm
Location: Lincolnshire
Contact:

Re: Arculator v2.0 released!

Post by dpsharp »

So having tracked down that there's a problem with the current brew install of wxmac for MacOS Big Sur (that was causing my multiple libraries issue) that is solved if you install it with 'brew install --build-from-source wxmac', I was able to build Arculator and reproduce the SDL thread issue.

All the action's in wx-sdl2.c in arc_main_thread() so for a dirty dirty hack I've make a one line edit to arc_start_main_thread() to just call arc_main_thread() instead of spawning it in a new thread. This way all the SDL calls are on the Main UI thread which stops MacOS bleating and Arculator works beautifully (in a debug build at least, I've not attempted a release yet but I'm sure it'll work).

The only problem I'm running into is that attempting to close the window doesn't work so I have to force quit which I'm fairly sure is a result of the hack causing it to fail to respond to MacOS events properly. Command-Tab seems to happily release the mouse and I can recapture it again by clicking on the window.

See attached screenshot for the evidence and the hack. Better solutions welcome!

This seems to get me what I need for the time being though isn't really the polished releasable binary I'd love to have for such a quality emulator. Those drive sound samples just make me grin from ear to ear!
screenshot
screenshot
User avatar
robcfg
Posts: 161
Joined: Sun Dec 30, 2018 6:23 pm
Contact:

Re: Arculator v2.0 released!

Post by robcfg »

What was the change you made?
dpsharp
Posts: 68
Joined: Fri Sep 07, 2018 2:05 pm
Location: Lincolnshire
Contact:

Re: Arculator v2.0 released!

Post by dpsharp »

To get round the MacOS restriction it was just changing the function arc_start_main_thread() to comment out the SDL_CreateThread call and calling arc_main_thread() directly as per the screenshot.

I've made a couple more changes to get wxWidgets to yield to the OS so that things like the popup menu work and which is probably good behaviour and seems to mitigate any issues from running everything on the Main thread.

There's still a couple of minor MacOS UI-related bugs left that I haven't figured out and may be a consequence of what I've changed but once I've had chance to put it's through it's paces a bit more I'll see if I can release it somewhere for those who are interested. Preferably with a patch to Sarah's github or similar as forking code is the root of all evil! :)
User avatar
robcfg
Posts: 161
Joined: Sun Dec 30, 2018 6:23 pm
Contact:

Re: Arculator v2.0 released!

Post by robcfg »

On my MacBook, it launches the emulation window, but remains black and the rainbow wheel appears until I force quit it.
User avatar
Pernod
Posts: 3439
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Arculator v2.0 released!

Post by Pernod »

steve3000 wrote: Wed Aug 05, 2020 10:22 pm
SarahWalker wrote: Wed Aug 05, 2020 2:13 pm It's probably missing a number of modules that are loaded from disc. Arthur / RISC OS development ROMs are like that.
It is, and that A500 is sitting on my desk at the moment (on loan from Xavier). I think the full HDD image is on doomsday86.com, it chugs away on boot up, loading the modules. Would be nice to have that emulated in Arculator as a curiosity if anything. It feels very much half way between a Beeb and an Archimedes...(although much heavier!)
Any chance of getting the keyboard MCU dumped from this?
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
lrowe
Posts: 2
Joined: Mon Mar 01, 2021 8:35 am
Location: San Francisco
Contact:

Re: Arculator v2.0 released!

Post by lrowe »

Very experimental Docker container for running Arculator: https://github.com/lrowe/arculator/tree ... tor-docker

So this is more of a mostly failed experiment than a solution for running Arculator on the Mac, but I figured it might be worth sharing in case anyone else is able to build on it and is at least useful for checking any changes I make to the build on Mac still work on Linux.

Running in docker on Mac Big Sur (I have an Arm Mac so use the Docker M1 tech preview and brew running as arm.)

% docker build -t arculator .

Install latest XQuartz 2.8.0_rc2 from xquartz.org

In XQuartz preferences, security:
- disable 'authenticate connections'
- enable 'allow connections from network clients'

% defaults write org.xquartz.X11 enable_iglx -bool true

Quit and restart XQuartz.

% xhost +
% docker run -it --mount type=bind,source="$(pwd)/roms",target=/app/roms --mount type=bind,source="$(pwd)/hostfs",target=/app/hostfs --mount type=bind,source="$(pwd)/configs",target=/app/configs arculator

Problems

* No sound yet. May be able to configure something with pulseaudio.
* Going fullscreen breaks things enough I needed to restart before X11 from Docker worked again.
* Captured mouse goes offscreen as soon as you move at all, making arculator unusable.
User avatar
IanJeffray
Posts: 5962
Joined: Sat Jun 06, 2020 3:50 pm
Contact:

Re: Arculator v2.0 released!

Post by IanJeffray »

I want an Arculator with 4MB ROM space support (per philpem's fix) but I've been struggling to build this on Windows 10 today. Eventually I got what appeared to be suitable versions of OpenAL, wxWidgets etc, to get as far as a full "clean" build, but:
splat.PNG
Woe.

I suspect this may be down to versions of libraries/compiler/etc but I've sunk significantly more time in to this than I should have trying to sort it out myself - has anyone else tried to build it on Windows?

Any hints from Sarah would obviously be very welcomed.
User avatar
IanJeffray
Posts: 5962
Joined: Sat Jun 06, 2020 3:50 pm
Contact:

Re: Arculator v2.0 released!

Post by IanJeffray »

git clone, aclocal, autoconf, automake, configure, make. Built and ran as smooth as butter in Linux. The difference is shocking. Apart from the mouse implementation which is scaled to hell, it's working pretty nicely with Xming over a 10G network \:D/ That'll do.
Brad
Posts: 49
Joined: Sun Feb 23, 2020 8:11 pm
Contact:

Re: Arculator v2.0 released!

Post by Brad »

What format do the rom files need to be in? It doesn't like the ones I've been using for RPCEmu (No ROMs available error). Thanks for any assistance
User avatar
IanJeffray
Posts: 5962
Joined: Sat Jun 06, 2020 3:50 pm
Contact:

Re: Arculator v2.0 released!

Post by IanJeffray »

Brad wrote: Wed Mar 24, 2021 6:37 am What format do the rom files need to be in? It doesn't like the ones I've been using for RPCEmu (No ROMs available error). Thanks for any assistance
Can you share ROMs with RPCemu? Arculator emulats Archimedes series machines, not RiscPC.

The ROM should just be a file called "ROM" placed in the appropriate folder.
AndyGarton
Posts: 311
Joined: Tue May 21, 2013 3:47 pm
Contact:

Re: Arculator v2.0 released!

Post by AndyGarton »

Is anybody aware of a known issue copying large numbers of files between hard disc images? The emulator hangs for me on certain files (always the same files), yet at other times manages to copy lots of files just fine. I know the source image is fine, and I've tried multiple targets.
AndyGarton
Posts: 311
Joined: Tue May 21, 2013 3:47 pm
Contact:

Re: Arculator v2.0 released!

Post by AndyGarton »

AndyGarton wrote: Tue May 18, 2021 10:57 pm Is anybody aware of a known issue copying large numbers of files between hard disc images? The emulator hangs for me on certain files (always the same files), yet at other times manages to copy lots of files just fine. I know the source image is fine, and I've tried multiple targets.
FWIW, I've narrowed this down to the RiscOS Developments IDEFS podule emulation. If I use ZIDEFS instead, I don't get the hangs.
User avatar
cjr8bs
Posts: 86
Joined: Sun May 06, 2012 3:48 pm
Location: East Yorkshire
Contact:

Re: Arculator v2.0 released!

Post by cjr8bs »

Thought I would have a look at this and have downloaded the Windows zip. Checked it in VirusTotal and get:

Trojan.Malware.300983.susgen from one result MaxSecure

Can anyone shed light on this please?

Chris
I Maintain the 8 Bit Software (8BS) website and have mucked about with Acorn 8 bit machines from the off. Writing software and editing disc based magazines and other stuff like that. I have a personal website too chrisr.co.uk
User avatar
IanJeffray
Posts: 5962
Joined: Sat Jun 06, 2020 3:50 pm
Contact:

Re: Arculator v2.0 released!

Post by IanJeffray »

cjr8bs wrote: Tue Jun 08, 2021 8:59 am Thought I would have a look at this and have downloaded the Windows zip. Checked it in VirusTotal and get:

Trojan.Malware.300983.susgen from one result MaxSecure

Can anyone shed light on this please?

Chris
The very first hit on Google when searching for that virus is an explanation that it's often a false-positive for VirusTotal...
User avatar
cjr8bs
Posts: 86
Joined: Sun May 06, 2012 3:48 pm
Location: East Yorkshire
Contact:

Re: Arculator v2.0 released!

Post by cjr8bs »

Thanks I found that but just wondered if anyone knew for definite it is a false positive. I will just use it on the device I use for stuff I'm not sure about.

Chris
I Maintain the 8 Bit Software (8BS) website and have mucked about with Acorn 8 bit machines from the off. Writing software and editing disc based magazines and other stuff like that. I have a personal website too chrisr.co.uk
User avatar
baz4096
Posts: 1102
Joined: Sat Apr 10, 2021 3:51 pm
Location: Baildon, West Yorkshire
Contact:

Re: Arculator v2.0 released!

Post by baz4096 »

In my experience, it's pretty common to see false positives on legit applications that AV programs haven't encountered very often. The more people that use that app, the more AV scans and signature uploads are done, the more confident the AV can be in its classification.
I run a little online shop called "Vintage Imitation Parts" to sell a few Acorn Archimedes and BBC Micro related bits and pieces, such as my imitation keyboard surrounds and just recently my imitation function strips.

Take a look! vintage.imitation.parts
sirbod
Posts: 1624
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Arculator v2.0 released!

Post by sirbod »

I'm trying to test Joystick emulation under v2.0 but am not having much success. The only one I've got to work is RTFM.

Acorn, PowerPad and Serial Port/VT don't seem to be recognised. Would it be possible to post the relevent Joystick Modules that Arculator was tested with to rule out version mismatches and confirm if any particular machine config is required.

I've already spotted Acorn is only supported under A3010, I'm assuming this is down to the way the Joystick Module detects them and not restricted simply for hardware accuracy?
dbr
Posts: 4
Joined: Sat Jul 09, 2022 12:59 am
Location: Redmond, WA
Contact:

Re: Arculator v2.0 released!

Post by dbr »

Hi folks,

Just wanted to share that I have got arculator running happily on the latest MacOS :-)

(And thanks to some of the clues in this thread!)

I'd be interested if anyone could give it a try and let me know if it works for them / what issues you run into.

You can find it here:
https://github.com/richstokes/arculator-mac
dpsharp
Posts: 68
Joined: Fri Sep 07, 2018 2:05 pm
Location: Lincolnshire
Contact:

Re: Arculator v2.0 released!

Post by dpsharp »

Thanks for giving it ago, would love to get a reliable build working on the Mac. I had to additionally do the following one at a time each time it failed for the script to run without error...

xcode-select --install
brew install wget
brew install coreutils # to get nproc

when it then failed with the following while building wxwidgets I've given up for now. This is on a Macbook Air M1 - I've not figured out where the flag is I'm missing.

ld: warning: ignoring file /usr/local/lib/libX11.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
ld: warning: ignoring file /usr/local/Cellar/pcre2/10.36/lib/libpcre2-32.dylib, building for macOS-arm64 but attempting to link with file built for macOS-x86_64
dbr
Posts: 4
Joined: Sat Jul 09, 2022 12:59 am
Location: Redmond, WA
Contact:

Re: Arculator v2.0 released!

Post by dbr »

Thanks for the feedback! Have added those missing requirements to the install script.

I've not ran into the X11 error you're seeing, nor do I have an M1 mac to try and replicate it with. I wonder if there's a flag to tell it to build for macOS-x86_64, since thats what I'm using. And then MacOS can translate it to run on the arm chip.

That said, let me know if you do figure it out -- I'd love to make the mac install script more robust.
Post Reply

Return to “32-bit acorn emulators”