Arculator v2.1 released!

discuss emulators of 26-bit acorn systems e.g. arculator and rpcemu
Post Reply
User avatar
SarahWalker
Posts: 1441
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Arculator v2.1 released!

Post by SarahWalker »

Only two years since the last release! I must be getting soft in my old age.

Changes since v2.0:
  • New podules : Acorn AKA05 ROM Podule, Acorn AKA10 IO Podule (w/AKA15 MIDI Upgrade), Acorn AKA16 MIDI Podule, Aleph One 386PC/486PC Podule, Computer Concepts ColourCard, State Machine G16 Graphics Accelerator, Oak 16 Bit SCSI Interface
  • Minipodule support for A30x0/A4000. Currently included : Acorn AKA12 MIDI/IO Podule, ICS A3INv5 IDE Interface, ZIDEFS IDE Interface
  • Added A4 laptop emulation
  • Added A500 prototype emulation
  • Added HFE disc image support (read/write)
  • Fixed MEMC1 timing
  • Bugfixes
As ever, main site is at http://b-em.bbcmicro.com/arculator/ (and is in desperate need of some more modern styling...), github is at https://github.com/sarah-walker-pcem/arculator/.
User avatar
IanJeffray
Posts: 2116
Joined: Sat Jun 06, 2020 3:50 pm
Location: Scotland
Contact:

Re: Arculator v2.1 released!

Post by IanJeffray »

WOW! Impressive and boggling stuff. So much to play with! Totally boggled to see PC podule emulation.
Arculator support as an extension ROM is a smart idea too.
Great work. Thank you!
arkiruthis
Posts: 115
Joined: Sat Jul 17, 2021 4:18 pm
Contact:

Re: Arculator v2.1 released!

Post by arkiruthis »

Thank you so much for continuing to work on this. It's been essential for going backwards and forwards with my own machine. Really appreciate it.
User avatar
Pernod
Posts: 2811
Joined: Fri Jun 08, 2012 11:01 pm
Location: Croydon, UK
Contact:

Re: Arculator v2.1 released!

Post by Pernod »

Nice release, and good to see more podules supported, it saves me from having to reverse engineer them ;)

What's the significance of the fixed MEMC1 timing? Does any particular software fail without this?
- Nigel

BBC Model B: ATPL Sidewise, Acorn Speech, 2xWatford Floppy Drives, AMX Mouse, Viglen case, BeebZIF, etc.
User avatar
SarahWalker
Posts: 1441
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: Arculator v2.1 released!

Post by SarahWalker »

No, but if you're aiming for cycle accuracy having broken timing is a bit embarrassing!
steve3000
Posts: 2639
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: Arculator v2.1 released!

Post by steve3000 »

Absolutely brilliant Sarah, as always!

Just tested RasterMan and very pleased it (still) runs nicely. :)

For the A500 prototype emulation - does this emulate the VIDC1 with sound byte format having D[7] as sign? (vs. VIDC2 used in production models, with D[0] sign). And is the FDC1793 emulated? Any other differences?

Is there any way to enter a different ARM3 speed, above 35MHz, without needing to modify source? BITD I had an IFEL 36MHz ARM3 upgrade and having recently overclocked a real ARM3 to 48MHz, I'd love to be able to do this (or more...) in emulation whenever I have something large to compress, compile, etc.
User avatar
SarahWalker
Posts: 1441
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: Arculator v2.1 released!

Post by SarahWalker »

steve3000 wrote:
Mon Sep 06, 2021 11:54 pm
For the A500 prototype emulation - does this emulate the VIDC1 with sound byte format having D[7] as sign? (vs. VIDC2 used in production models, with D[0] sign). And is the FDC1793 emulated? Any other differences?
Yes. Yes. ST-506 controller mapping is also different.
Is there any way to enter a different ARM3 speed, above 35MHz, without needing to modify source? BITD I had an IFEL 36MHz ARM3 upgrade and having recently overclocked a real ARM3 to 48MHz, I'd love to be able to do this (or more...) in emulation whenever I have something large to compress, compile, etc.
Not at present, no.
timw
Posts: 55
Joined: Tue May 10, 2016 7:55 pm
Contact:

Re: Arculator v2.1 released!

Post by timw »

This is brilliant - thanks, Sarah! I still remember reading in one of the magazines BITD that "emulation of an Archimedes on another machine will never be possible", or words to that effect...

Here are some notes for compiling on linux. Some peculiarities may be down to my particular build environment.
  1. Add podules/morley_uap/src/Makefile to configure.ac
  2. In podules/aka10/src/Makefile.am: change .o to .c and the same for morley_uap, otherwise the libraries don't get built and we get missing symbols at runtime:

    Code: Select all

    libaka10_la_SOURCES = ../../common/uart/6850.c aka10.c ../../common/joystick/joystick_sdl2.c ../../common/adc/d7002c.c ../../common/misc/6522.c
  3. Add CFLAGS -std=c99 in podules/aka05/src/Makefile.am
  4. #include <stdint.h> in wx-hd_new.cc and wx-joystick-config.cc
  5. In wx-main.cc, exclude this windows call:

    Code: Select all

    #ifdef _WIN32
            SDL_SetHint(SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING, "1");
    #endif
  6. I get a compile error "wx-podule-config.cc:619:49: error: cast from ‘void*’ to ‘int’ loses precision". I don't know what's going on with these casts, but if I change int to long, it seems to work:

    Code: Select all

    cbox->SetSelection((long)val);
  7. In wx-config.cc ConfigDialog::OnComboPodule(wxCommandEvent &event), the following doesn't return a valid string pointer:

    Code: Select all

    const char *sel_s = cbox->GetStringSelection().c_str();
    This breaks the function of the config menu, so I can't select any podules. I have to get the string as follows, instead:

    Code: Select all

    char sel_s[256];strncpy(sel_s, cbox->GetValue(), sizeof(sel_s));
  8. Regenerate the makefiles:

    Code: Select all

    autoreconf --force --install
    ./configure --enable-release-build
    make
It works. Great stuff!
arakeen
Posts: 26
Joined: Fri Jul 03, 2020 7:42 pm
Contact:

Re: Arculator v2.1 released!

Post by arakeen »

Thanks for the update, however I am seeing an issue with the new version... On first launch of an A5000 machine I briefly get a Disc Error 23 or 22 for ADFS::5 (an HDF originally imaged from a physical A5000 ~10 years ago). Resetting the machine then boots without error.

Normally the machine is set to boot from this drive - this gives me the Error 23 at the initial boot screen. After a CMOS reset and before configuring boot back to the drive I get a short stall during the splash screen then Error 22 when trying to open the drive. Location is the same for each error (00000C00).

Screenshots attached. I reverted to 2.0 and confirmed that it still boots without error.
Attachments
FilerError.png
BootError.png
User avatar
SarahWalker
Posts: 1441
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: Arculator v2.1 released!

Post by SarahWalker »

Odd. Can you post your config please?
arakeen
Posts: 26
Joined: Fri Jul 03, 2020 7:42 pm
Contact:

Re: Arculator v2.1 released!

Post by arakeen »

I've included the .cfg and CMOS files, hopefully that covers it - thank you.

I noticed in the 2.0 release thread a mention of removing the 512 byte header from older images - is this worth a try, and if so what's the best/safest way to do that?
Attachments
A5000.zip
(776 Bytes) Downloaded 10 times
arakeen
Posts: 26
Joined: Fri Jul 03, 2020 7:42 pm
Contact:

Re: Arculator v2.1 released!

Post by arakeen »

I tried removing the top 512 bytes in WSL (dd if=hd5.hdf of=hd5new.hdf bs=512 skip=1), but I see the same behaviour when it's not configured as the boot drive (I haven't tried it as boot drive).
User avatar
SarahWalker
Posts: 1441
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: Arculator v2.1 released!

Post by SarahWalker »

Whoops, looks like secondary IDE drive support is broken on v2.1. Will be fixed for v2.2.
garfield
Posts: 465
Joined: Mon Jan 03, 2005 1:38 am
Contact:

Re: Arculator v2.1 released!

Post by garfield »

SarahWalker wrote:
Wed Nov 17, 2021 8:30 pm
Whoops, looks like secondary IDE drive support is broken on v2.1. Will be fixed for v2.2.
Nice! Thanks Sarah!
User avatar
anightin
Posts: 905
Joined: Thu Aug 23, 2018 2:03 pm
Location: Cambridge UK
Contact:

Re: Arculator v2.1 released!

Post by anightin »

Was just thinking how cool it would be to have floppy drive support on Arculator via a USB floppy or such.

Have been following the Drawbridge project and great to see that it's hooked into WinUAE for Amiga:

https://amiga.robsmithdev.co.uk/

I'm currently on the waiting list for the current batch of boards, and if successful will hopefully have a drawbridge-enabled drive to lend to anyone who has the skill-set to link in the drive support in a similar way.

Just a thought.
sirbod
Posts: 1245
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Arculator v2.1 released!

Post by sirbod »

When you edit a machine, there's a tagline below the machine name that says:
ARM2, 1MB RAM, MEMC1, Old IO, Arthur
Is that a leftover from a previous version or should it update to describe the machine config as list below in the drop-down menus? It doesn't appear to change.
arakeen
Posts: 26
Joined: Fri Jul 03, 2020 7:42 pm
Contact:

Re: Arculator v2.1 released!

Post by arakeen »

SarahWalker wrote:
Wed Nov 17, 2021 8:30 pm
Whoops, looks like secondary IDE drive support is broken on v2.1. Will be fixed for v2.2.
Grand, thanks very much, I'll look forward to it :)

(Sorry for the delayed response, I swear all the posts following my last one only showed up for me today...)
User avatar
bakoulis
Posts: 360
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece
Contact:

Re: Arculator v2.1 released!

Post by bakoulis »

Linux Mint 19.3 64bits
Arculator 2.1 file from homepage compiled with success.
Latest version with some fixes from github, stops with errors:

Code: Select all

mv -f .deps/arculator-wx-main.Tpo .deps/arculator-wx-main.Po
g++ -DPACKAGE_NAME=\"Arculator\" -DPACKAGE_TARNAME=\"arculator\" -DPACKAGE_VERSION=\"v2.0\" -DPACKAGE_STRING=\"Arculator\ v2.0\" -DPACKAGE_BUGREPORT=\"Sarah\ Walker\ \<b-em@bbcmicro.com\>\" -DPACKAGE_URL=\"\" -DPACKAGE=\"arculator\" -DVERSION=\"v2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBZ=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBOPENAL=1 -DHAVE_LIBASOUND=1 -I.    -I/usr/lib/x86_64-linux-gnu/wx/include/gtk2-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -I/usr/include/SDL2 -D_REENTRANT -O3 -MT arculator-wx-podule-config.o -MD -MP -MF .deps/arculator-wx-podule-config.Tpo -c -o arculator-wx-podule-config.o `test -f 'wx-podule-config.cc' || echo './'`wx-podule-config.cc
wx-podule-config.cc: In member function ‘void PoduleConfigDialog::OnCombo(wxCommandEvent&)’:
wx-podule-config.cc:351:140: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
                                         update = item->function(this, item, (void *)(dynamic_cast<wxComboBox *>(obj)->GetCurrentSelection()));
                                                                                                                                            ^
wx-podule-config.cc: In function ‘void* podule_config_get_current(void*, int)’:
wx-podule-config.cc:588:59: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
                         return (void *)cbox->GetSelection();
                                                           ^
wx-podule-config.cc: In function ‘void podule_config_set_current(void*, int, void*)’:
wx-podule-config.cc:619:49: error: cast from ‘void*’ to ‘int’ loses precision [-fpermissive]
                         cbox->SetSelection((int)val);
                                                 ^~~
Makefile:1510: recipe for target 'arculator-wx-podule-config.o' failed
make[1]: *** [arculator-wx-podule-config.o] Error 1
make[1]: Leaving directory '/home/user/arculator/src'
Makefile:398: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

#-o
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.
timw
Posts: 55
Joined: Tue May 10, 2016 7:55 pm
Contact:

Re: Arculator v2.1 released!

Post by timw »

bakoulis wrote:
Tue Jan 11, 2022 10:40 pm

Code: Select all

wx-podule-config.cc:619:49: error: cast from ‘void*’ to ‘int’ loses precision [-fpermissive]
                         cbox->SetSelection((int)val);
 
See my post item 6 further up in this thread for a quick fix for this!
User avatar
bakoulis
Posts: 360
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece
Contact:

Re: Arculator v2.1 released!

Post by bakoulis »

timw wrote:
Wed Jan 12, 2022 10:38 pm
bakoulis wrote:
Tue Jan 11, 2022 10:40 pm

Code: Select all

wx-podule-config.cc:619:49: error: cast from ‘void*’ to ‘int’ loses precision [-fpermissive]
                         cbox->SetSelection((int)val);
 
See my post item 6 further up in this thread for a quick fix for this!
Thank you mate, I saw this fix and now compiled but not all fixes is possible.
changes .o with .c produce errors when autoreconf.
Also 3.Add CFLAGS -std=c99 in podules/aka05/src/Makefile.am don't know what replace with it or where added.
Also 5.#ifdef _WIN32 have not string SDL_SetHint(SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING, "1");
This command is many lines away from #ifdef _WIN32
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.
steve3000
Posts: 2639
Joined: Sun Nov 25, 2012 12:43 am
Contact:

Re: Arculator v2.1 released!

Post by steve3000 »

I think I've found a bug in Arculator v2.1 (windows version). :shock:

I've set it up as a 4mb A3010 with monitortype configured as 0 (TV/standard) and I've been trying to get a demo working which uses a MODE module to create a widescreen TV-resolution MODE, called MODE 99. But it wasn't displaying correctly, and although things were clearly being drawn, the output was scrambled.

Trying to get this working, I loaded the mode module and entered MODE 99 from the desktop... and very odd... it didn't enter the expected 416x272 mode, but rather 800x600 in 256 colours? Reset Arculator, and try without loading the mode module, and yes MODE 99 appears to be built in as 800x600 in 256 colours, and it even displays like this with the monitortype as 0. Maybe this is a test mode (and it certainly could be useful, perhaps as MODE 32), but there doesn't seem to be any way to override this built-in MODE 99?
User avatar
SarahWalker
Posts: 1441
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: Arculator v2.1 released!

Post by SarahWalker »

MODE 99 is in the Arculator support extension ROM. Disable that and MODE 99 ought to return to normal.
Post Reply

Return to “32-bit acorn emulators”