Arculator on Linux?

ask about 32-bit emulators like ArcEm, Red Squirrel, Arculator or RPCEmu here
paulb
Posts: 784
Joined: Mon Jan 20, 2014 9:02 pm

Re: Arculator on Linux?

Postby paulb » Sun Jun 19, 2016 8:54 pm

I just had a quick look at this using dgrubb's Debian-Compatibility branch, but I think I'm missing a few things. I managed to build the code by doing this:

Code: Select all

cd src
make -f Makefile.nix


Fortunately, I have the Allegro stuff installed already. The packages are probably...

Code: Select all

liballegro4.2-dev
libalut-dev
libopenal-dev


However, running the code seemed to cause the Allegro crash reported previously. So, I looked up the create_video_bitmap stuff, which isn't very obvious on either of the main Allegro sites, and I guess that replacing that with create_system_bitmap is a reasonable idea. (In SDL, which I know a bit more, "video bitmaps" are probably like "hardware bitmaps", but it is often the case that you don't want to create lots of them - or you may not be able to create them - because they're using potentially dedicated video memory.)

After fixing that, I get an error about the podules:

Code: Select all

podules: Unknown error 3221219648


Suspecting that Arculator might be a bit like Elkulator and be a bit sensitive about where its resources are, I linked the podules directory from the top of the sources into the src directory.

Code: Select all

ln -s ../podules


Then, at least the program doesn't crash, but it just shows a black screen and does nothing else.

User avatar
dgrubb
Posts: 134
Joined: Thu Jun 02, 2016 8:36 pm

Re: Arculator on Linux?

Postby dgrubb » Sun Jun 19, 2016 9:46 pm

paulb wrote:However, running the code seemed to cause the Allegro crash reported previously. So, I looked up the create_video_bitmap stuff, which isn't very obvious on either of the main Allegro sites, and I guess that replacing that with create_system_bitmap is a reasonable idea. (In SDL, which I know a bit more, "video bitmaps" are probably like "hardware bitmaps", but it is often the case that you don't want to create lots of them - or you may not be able to create them - because they're using potentially dedicated video memory.)


I've managed to get as far as a proper Acorn prompt which gives way to the Pinboard (of correct proportions and colours) but I don't get proper refreshes. The Allegro documentation mentions that video bitmaps are a sub-section of the main 'screen', whereas regular system bitmaps aren't. I think what's happening is that by switching out the video bitmaps for system bitmaps then it's severing that relationship vbuf and 'screen' so the latter isn't getting automatically updated during a blit to the former.

I think ...

paulb wrote:After fixing that, I get an error about the podules:

Code: Select all

podules: Unknown error 3221219648


This one I haven't encountered!

paulb
Posts: 784
Joined: Mon Jan 20, 2014 9:02 pm

Re: Arculator on Linux?

Postby paulb » Sun Jun 19, 2016 10:29 pm

dgrubb wrote:
paulb wrote:However, running the code seemed to cause the Allegro crash reported previously. So, I looked up the create_video_bitmap stuff, which isn't very obvious on either of the main Allegro sites, and I guess that replacing that with create_system_bitmap is a reasonable idea. (In SDL, which I know a bit more, "video bitmaps" are probably like "hardware bitmaps", but it is often the case that you don't want to create lots of them - or you may not be able to create them - because they're using potentially dedicated video memory.)


I've managed to get as far as a proper Acorn prompt which gives way to the Pinboard (of correct proportions and colours) but I don't get proper refreshes. The Allegro documentation mentions that video bitmaps are a sub-section of the main 'screen', whereas regular system bitmaps aren't. I think what's happening is that by switching out the video bitmaps for system bitmaps then it's severing that relationship vbuf and 'screen' so the latter isn't getting automatically updated during a blit to the former.

I think ...


Right. So there would be the need to explicitly blit "system" bitmaps to the screen, whereas operations on the "video" bitmaps already update the screen. (With SDL, if I recall correctly, people tend to see the "hardware acceleration" stuff and think that this will turbocharge everything whereas bandwidth can be quite limited and easily exhausted if you try and access the "hardware" bitmaps directly. I don't know what happens in Allegro.)

dgrubb wrote:
paulb wrote:After fixing that, I get an error about the podules:

Code: Select all

podules: Unknown error 3221219648


This one I haven't encountered!


This was caused by me running the binary from within the src directory. Apparently I have to move it out of the src directory, and then this exposes the lack of ROMs, which wasn't detected when I was running from within the src directory. A ROM I had once used with ArcEm didn't seem to work, so I'll have to look under the sofa for another one. :wink: (Or at least I will at some point because I'm not really that interested in the 32-bit emulation stuff given that it always involved disk images and lots of messing around for less enjoyment than I get out of the 8-bit stuff. :roll: )

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Sun Jun 19, 2016 11:05 pm

Can you please upload the fixed stuff?
I want try compile and run it because I have the proper romset for Arculator.
If is OK by the rules of forum, I can upload the roms for you.
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Arculator on Linux?

Postby davidb » Sun Jun 19, 2016 11:42 pm

paulb has access to the ROMs, so that shouldn't be a problem. :)

Meanwhile, I added my Makefile to the linux branch of my repository.

User avatar
dgrubb
Posts: 134
Joined: Thu Jun 02, 2016 8:36 pm

Re: Arculator on Linux?

Postby dgrubb » Mon Jun 20, 2016 2:29 am

davidb wrote:Meanwhile, I added my Makefile to the linux branch of my repository.


Nice, I added a few directives to mine and was thinking about adding an "install" one:

https://bitbucket.org/dgrubb/arculator/ ... ew-default

paulb wrote:Right. So there would be the need to explicitly blit "system" bitmaps to the screen, whereas operations on the "video" bitmaps already update the screen. (With SDL, if I recall correctly, people tend to see the "hardware acceleration" stuff and think that this will turbocharge everything whereas bandwidth can be quite limited and easily exhausted if you try and access the "hardware" bitmaps directly. I don't know what happens in Allegro.)


I took a look into the RPCEmu vidc.c code which is structured quite similarly, except that it uses #ifdef HARDWAREBLIT to conditionally remove all the references to video memory. I think it'd work better as a command line flag to enable it at runtime, instead of using the preprocessor, but I plan on taking a deeper look into that project too to get some hints about its usage of standard bitmap buffers.

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Mon Jun 20, 2016 8:59 am

Nothing works for me at Linux Mint 17.3.
I haven't understand, is anybody here who have compiled a working Arculator for Linux?
#-o

Edit: Just tested at Debian Wheezy 7 with virtualbox. Same Allegro segment fault error.
:?
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Arculator on Linux?

Postby davidb » Mon Jun 20, 2016 2:29 pm

OK. Here's what I just did to run on Debian 7 (Wheezy) using a 64-bit (amd64 or x86_64) CPU. Obviously, you'll be copying your ROMs from somewhere else:

Code: Select all

hg clone https://bitbucket.org/dboddie/arculator arculator-dboddie
cd arculator-dboddie/
hg up linux
cp /data/david/Software/Emulation/arculator-official/roms/riscos2/rom1 roms/riscos2/
cp /data/david/Software/Emulation/arculator-official/roms/riscos3/ROM.3 roms/riscos3/
cd src/
make
cp Arculator ../
cd ..
./Arculator

If it doesn't work for others then perhaps there are other differences between our systems that we are not taking into account. For example, the Allegro libraries I have installed are these:

Code: Select all

ii  liballegro4.2-dev                     2:4.4.2-2.1                           amd64        development files for the Allegro library
ii  liballegro4.4:amd64                   2:4.4.2-2.1                           amd64        portable library for cross-platform game and multimedia development
ii  liballegro4.4-plugin-alsa:amd64       2:4.4.2-2.1                           amd64        ALSA audio plugin for the Allegro library

At some point, someone should go through this thread and try to make a summary of the problems people are encountering and the platforms in use. Then we might be able to get a grip on where the underlying problems are.

SarahWalker
Posts: 1041
Joined: Fri Jan 14, 2005 3:56 pm
Contact:

Re: Arculator on Linux?

Postby SarahWalker » Mon Jun 20, 2016 5:21 pm

Re system/video bitmaps - if you're having issues, I'd advise not using either and use create_bitmap() instead to use a plain memory bitmap. This will likely have atrocious performance when scaling up TV-resolution modes, but it should at least work...

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Mon Jun 20, 2016 6:26 pm

With davidb's method at my Linux Mint 17.3 box:

$ ./Arculator

Code: Select all

*** buffer overflow detected ***: ./Arculator terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x68fce)[0xb74b3fce]
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x6b)[0xb7546b8b]
/lib/i386-linux-gnu/libc.so.6(+0xfaa1a)[0xb7545a1a]
/lib/i386-linux-gnu/libc.so.6(+0xfa178)[0xb7545178]
/lib/i386-linux-gnu/libc.so.6(_IO_default_xsputn+0x8e)[0xb74bbd8e]
/lib/i386-linux-gnu/libc.so.6(_IO_vfprintf+0x572)[0xb748ed82]
/lib/i386-linux-gnu/libc.so.6(__vsprintf_chk+0xb1)[0xb7545231]
/lib/i386-linux-gnu/libc.so.6(__sprintf_chk+0x2f)[0xb754515f]
./Arculator[0x807c1d4]
./Arculator[0x807c709]
./Arculator[0x8078ed7]
./Arculator[0x8079151]
./Arculator[0x8049e9e]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb7464af3]
./Arculator[0x8049f15]
======= Memory map: ========
08048000-0808d000 r-xp 00000000 08:01 6953872    /home/takis/arculator-dboddie/Arculator
0808d000-0808e000 r--p 00044000 08:01 6953872    /home/takis/arculator-dboddie/Arculator
0808e000-08090000 rw-p 00045000 08:01 6953872    /home/takis/arculator-dboddie/Arculator
08090000-09076000 rw-p 00000000 00:00 0
0a432000-0a474000 rw-p 00000000 00:00 0          [heap]
afcfc000-b1000000 rw-p 00000000 00:00 0
b1000000-b1021000 rw-p 00000000 00:00 0
b1021000-b1100000 ---p 00000000 00:00 0
b112a000-b12ff000 rw-s 00000000 00:05 24150135   /SYSV00000000 (deleted)
b12ff000-b1300000 ---p 00000000 00:00 0
b1300000-b1b00000 rw-p 00000000 00:00 0          [stack:1298]
b1b00000-b1b21000 rw-p 00000000 00:00 0
b1b21000-b1c00000 ---p 00000000 00:00 0
b1c09000-b1cfa000 r-xp 00000000 08:01 4987148    /usr/lib/i386-linux-gnu/libasound.so.2.0.0
b1cfa000-b1cfe000 r--p 000f0000 08:01 4987148    /usr/lib/i386-linux-gnu/libasound.so.2.0.0
b1cfe000-b1cff000 rw-p 000f4000 08:01 4987148    /usr/lib/i386-linux-gnu/libasound.so.2.0.0
b1cff000-b1d00000 ---p 00000000 00:00 0
b1d00000-b2500000 rw-p 00000000 00:00 0          [stack:1297]
b2500000-b2521000 rw-p 00000000 00:00 0
b2521000-b2600000 ---p 00000000 00:00 0
b261c000-b2638000 r-xp 00000000 08:01 524327     /lib/i386-linux-gnu/libgcc_s.so.1
b2638000-b2639000 rw-p 0001b000 08:01 524327     /lib/i386-linux-gnu/libgcc_s.so.1
b265b000-b665c000 rw-s 00000000 00:15 1221504    /run/shm/pulse-shm-2383602783
b665c000-b6689000 rw-p 00000000 00:00 0
b6689000-b668a000 ---p 00000000 00:00 0
b668a000-b6e8a000 rw-p 00000000 00:00 0          [stack:1296]
b6e8a000-b6e9d000 r-xp 00000000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b6e9d000-b6e9e000 ---p 00013000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b6e9e000-b6e9f000 r--p 00013000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b6e9f000-b6ea0000 rw-p 00014000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b6ea0000-b6ea2000 rw-p 00000000 00:00 0
b6ea2000-b6ea9000 r-xp 00000000 08:01 4991987    /usr/lib/i386-linux-gnu/libogg.so.0.8.1
b6ea9000-b6eaa000 r--p 00006000 08:01 4991987    /usr/lib/i386-linux-gnu/libogg.so.0.8.1
b6eaa000-b6eab000 rw-p 00007000 08:01 4991987    /usr/lib/i386-linux-gnu/libogg.so.0.8.1
b6eab000-b6ed4000 r-xp 00000000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b6ed4000-b6ed5000 ---p 00029000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b6ed5000-b6ed6000 r--p 00029000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b6ed6000-b6ed7000 rw-p 0002a000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b6ed7000-b703d000 r-xp 00000000 08:01 4991989    /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b703d000-b704e000 r--p 00165000 08:01 4991989    /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b704e000-b704f000 rw-p 00176000 08:01 4991989    /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b704f000-b7081000 r-xp 00000000 08:01 4986272    /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
b7081000-b7082000 r--p 00031000 08:01 4986272    /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
b7082000-b7083000 rw-p 00032000 08:01 4986272    /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
b7083000-b7098000 r-xp 00000000 08:01 524623     /lib/i386-linux-gnu/libnsl-2.19.so
b7098000-b7099000 r--p 00015000 08:01 524623     /lib/i386-linux-gnu/libnsl-2.19.so
b7099000-b709a000 rw-p 00016000 08:01 524623     /lib/i386-linux-gnu/libnsl-2.19.so
b709a000-b709c000 rw-p 00000000 00:00 0
b709c000-b70a1000 r-xp 00000000 08:01 4987112    /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b70a1000-b70a2000 r--p 00004000 08:01 4987112    /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b70a2000-b70a3000 rw-p 00005000 08:01 4987112    /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b70a3000-b710e000 r-xp 00000000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b710e000-b710f000 ---p 0006b000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b710f000-b7110000 r--p 0006b000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b7110000-b7111000 rw-p 0006c000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b7111000-b7115000 rw-p 00000000 00:00 0
b7115000-b711d000 r-xp 00000000 08:01 525238     /lib/i386-linux-gnu/libwrap.so.0.7.6
b711d000-b711e000 r--p 00007000 08:01 525238     /lib/i386-linux-gnu/libwrap.so.0.7.6
b711e000-b711f000 rw-p 00008000 08:01 525238     /lib/i386-linux-gnu/libwrap.so.0.7.6
b711f000-b7168000 r-xp 00000000 08:01 525201     /lib/i386-linux-gnu/libdbus-1.so.3.7.6
b7168000-b7169000 r--p 00048000 08:01 525201     /lib/i386-linux-gnu/libdbus-1.so.3.7.6
b7169000-b716a000 rw-p 00049000 08:01 525201     /lib/i386-linux-gnu/libdbus-1.so.3.7.6
b716a000-b71d7000 r-xp 00000000 08:01 4990460    /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-4.0.so
b71d7000-b71d8000 r--p 0006c000 08:01 4990460    /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-4.0.so
b71d8000-b71d9000 rw-p 0006d000 08:01 4990460    /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-4.0.so
b71d9000-b71e2000 r-xp 00000000 08:01 524350     /lib/i386-linux-gnu/libjson-c.so.2.0.0
b71e2000-b71e3000 r--p 00008000 08:01 524350     /lib/i386-linux-gnu/libjson-c.so.2.0.0
b71e3000-b71e4000 rw-p 00009000 08:01 524350     /lib/i386-linux-gnu/libjson-c.so.2.0.0
b71e4000-b7231000 r-xp 00000000 08:01 4995450    /usr/lib/i386-linux-gnu/libpulse.so.0.16.2
b7231000-b7232000 r--p 0004c000 08:01 4995450    /usr/lib/i386-linux-gnu/libpulse.so.0.16.2
b7232000-b7233000 rw-p 0004d000 08:01 4995450    /usr/lib/i386-linux-gnu/libpulse.so.0.16.2
b7233000-b7235000 rw-p 00000000 00:00 0
b7235000-b723a000 r-xp 00000000 08:01 4982621    /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b723a000-b723b000 r--p 00004000 08:01 4982621    /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b723b000-b723c000 rw-p 00005000 08:01 4982621    /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b723c000-b723e000 r-xp 00000000 08:01 4981348    /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b723e000-b723f000 r--p 00001000 08:01 4981348    /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b723f000-b7240000 rw-p 00002000 08:01 4981348    /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b7240000-b7241000 rw-p 00000000 00:00 0
b7241000-b7245000 r-xp 00000000 08:01 4980963    /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b7245000-b7246000 r--p 00003000 08:01 4980963    /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b7246000-b7247000 rw-p 00004000 08:01 4980963    /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b7247000-b7250000 r-xp 00000000 08:01 4982746    /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b7250000-b7251000 r--p 00008000 08:01 4982746    /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b7251000-b7252000 rw-p 00009000 08:01 4982746    /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b7252000-b7272000 r-xp 00000000 08:01 4982704    /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
b7272000-b7273000 r--p 0001f000 08:01 4982704    /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
b7273000-b7274000 rw-p 00020000 08:01 4982704    /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
b7274000-b7278000 r-xp 00000000 08:01 4987717    /usr/lib/i386-linux-gnu/libXxf86vm.so.1.0.0
b7278000-b7279000 r--p 00004000 08:01 4987717    /usr/lib/i386-linux-gnu/libXxf86vm.so.1.0.0
b7279000-b727a000 rw-p 00005000 08:01 4987717    /usr/lib/i386-linux-gnu/libXxf86vm.so.1.0.0
b727a000-b728a000 r-xp 00000000 08:01 4990436    /usr/lib/i386-linux-gnu/libXpm.so.4.11.0
b728a000-b728b000 r--p 0000f000 08:01 4990436    /usr/lib/i386-linux-gnu/libXpm.so.4.11.0
b728b000-b728c000 rw-p 00010000 08:01 4990436    /usr/lib/i386-linux-gnu/libXpm.so.4.11.0
b728c000-b728d000 rw-p 00000000 00:00 0
b728d000-b7296000 r-xp 00000000 08:01 4987756    /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b7296000-b7297000 r--p 00008000 08:01 4987756    /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b7297000-b7298000 rw-p 00009000 08:01 4987756    /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b7298000-b72a9000 r-xp 00000000 08:01 4982716    /usr/lib/i386-linux-gnu/libXext.so.6.4.0
b72a9000-b72aa000 r--p 00010000 08:01 4982716    /usr/lib/i386-linux-gnu/libXext.so.6.4.0
b72aa000-b72ab000 rw-p 00011000 08:01 4982716    /usr/lib/i386-linux-gnu/libXext.so.6.4.0
b72ab000-b73db000 r-xp 00000000 08:01 4981854    /usr/lib/i386-linux-gnu/libX11.so.6.3.0
b73db000-b73dc000 r--p 00130000 08:01 4981854    /usr/lib/i386-linux-gnu/libX11.so.6.3.0
b73dc000-b73de000 rw-p 00131000 08:01 4981854    /usr/lib/i386-linux-gnu/libX11.so.6.3.0
b73de000-b73df000 rw-p 00000000 00:00 0
b73df000-b73e6000 r-xp 00000000 08:01 524684     /lib/i386-linux-gnu/librt-2.19.so
b73e6000-b73e7000 r--p 00006000 08:01 524684     /lib/i386-linux-gnu/librt-2.19.so
b73e7000-b73e8000 rw-p 00007000 08:01 524684     /lib/i386-linux-gnu/librt-2.19.so
b73e8000-b7400000 r-xp 00000000 08:01 524625     /lib/i386-linux-gnu/libpthread-2.19.so
b7400000-b7401000 r--p 00018000 08:01 524625     /lib/i386-linux-gnu/libpthread-2.19.so
b7401000-b7402000 rw-p 00019000 08:01 524625     /lib/i386-linux-gnu/libpthread-2.19.so
b7402000-b7405000 rw-p 00000000 00:00 0
b7405000-b7449000 r-xp 00000000 08:01 524611     /lib/i386-linux-gnu/libm-2.19.so
b7449000-b744a000 r--p 00043000 08:01 524611     /lib/i386-linux-gnu/libm-2.19.so
b744a000-b744b000 rw-p 00044000 08:01 524611     /lib/i386-linux-gnu/libm-2.19.so
b744b000-b75f3000 r-xp 00000000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b75f3000-b75f4000 ---p 001a8000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b75f4000-b75f6000 r--p 001a8000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b75f6000-b75f7000 rw-p 001aa000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b75f7000-b75fa000 rw-p 00000000 00:00 0
b75fa000-b75fd000 r-xp 00000000 08:01 524615     /lib/i386-linux-gnu/libdl-2.19.so
b75fd000-b75fe000 r--p 00002000 08:01 524615     /lib/i386-linux-gnu/libdl-2.19.so
b75fe000-b75ff000 rw-p 00003000 08:01 524615     /lib/i386-linux-gnu/libdl-2.19.so
b75ff000-b7652000 r-xp 00000000 08:01 4983987    /usr/lib/i386-linux-gnu/libopenal.so.1.14.0
b7652000-b7653000 r--p 00053000 08:01 4983987    /usr/lib/i386-linux-gnu/libopenal.so.1.14.0
b7653000-b7654000 rw-p 00054000 08:01 4983987    /usr/lib/i386-linux-gnu/libopenal.so.1.14.0
b7654000-b7659000 r-xp 00000000 08:01 4986990    /usr/lib/libalut.so.0.1.0
b7659000-b765a000 r--p 00004000 08:01 4986990    /usr/lib/libalut.so.0.1.0
b765a000-b765d000 rw-p 00005000 08:01 4986990    /usr/lib/libalut.so.0.1.0
b765d000-b765e000 rw-p 00000000 00:00 0
b765e000-b7676000 r-xp 00000000 08:01 525217     /lib/i386-linux-gnu/libz.so.1.2.8
b7676000-b7677000 r--p 00017000 08:01 525217     /lib/i386-linux-gnu/libz.so.1.2.8
b7677000-b7678000 rw-p 00018000 08:01 525217     /lib/i386-linux-gnu/libz.so.1.2.8
b7678000-b774e000 r-xp 00000000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b774e000-b774f000 ---p 000d6000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b774f000-b7750000 r--p 000d6000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b7750000-b775d000 rw-p 000d7000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b775d000-b777b000 rw-p 00000000 00:00 0
b777b000-b777d000 rw-p 00000000 00:00 0
b777d000-b777f000 r-xp 00000000 08:01 5246003    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsamidi.so
b777f000-b7780000 r--p 00001000 08:01 5246003    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsamidi.so
b7780000-b7781000 rw-p 00002000 08:01 5246003    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsamidi.so
b7781000-b7785000 r-xp 00000000 08:01 5246002    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsadigi.so
b7785000-b7786000 r--p 00003000 08:01 5246002    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsadigi.so
b7786000-b7787000 rw-p 00004000 08:01 5246002    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsadigi.so
b7787000-b778c000 r-xp 00000000 08:01 4984245    /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0
b778c000-b778d000 r--p 00004000 08:01 4984245    /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0
b778d000-b778e000 rw-p 00005000 08:01 4984245    /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0
b778e000-b7792000 r-xp 00000000 08:01 5245941    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-dga2.so
b7792000-b7793000 r--p 00003000 08:01 5245941    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-dga2.so
b7793000-b7794000 rw-p 00004000 08:01 5245941    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-dga2.so
b7794000-b7795000 rw-p 00000000 00:00 0
b7795000-b779c000 r--s 00000000 08:01 5114506    /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
b779c000-b779e000 rw-p 00000000 00:00 0
b779e000-b77a0000 r--p 00000000 00:00 0          [vvar]
b77a0000-b77a2000 r-xp 00000000 00:00 0          [vdso]
b77a2000-b77c2000 r-xp 00000000 08:01 524672     /lib/i386-linux-gnu/ld-2.19.so
b77c2000-b77c3000 r--p 0001f000 08:01 524672     /lib/i386-linux-gnu/ld-2.19.so
b77c3000-b77c4000 rw-p 00020000 08:01 524672     /lib/i386-linux-gnu/ld-2.19.so
bfc94000-bfcb5000 rw-p 00000000 00:00 0          [stack]
Shutting down Allegro due to signal #6
Cancelled
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Arculator on Linux?

Postby davidb » Mon Jun 20, 2016 6:41 pm

OK, can you try running it with gdb?

Code: Select all

gdb ./Arculator

Then

Code: Select all

run

When it crashes type

Code: Select all

bt

and eventually type

Code: Select all

q

to quit.

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Mon Jun 20, 2016 6:48 pm

$ gdb ./Arculator

Code: Select all

GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./Arculator...done.
(gdb) run
Starting program: /home/takis/arculator-dboddie/Arculator
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb76c5b40 (LWP 9896)]
[Thread 0xb76c5b40 (LWP 9896) exited]
[New Thread 0xb76c5b40 (LWP 9897)]
[New Thread 0xb2cffb40 (LWP 9898)]
[New Thread 0xb22ffb40 (LWP 9899)]
*** buffer overflow detected ***: /home/takis/arculator-dboddie/Arculator terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(+0x68fce)[0xb7ceffce]
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x6b)[0xb7d82b8b]
/lib/i386-linux-gnu/libc.so.6(+0xfaa1a)[0xb7d81a1a]
/lib/i386-linux-gnu/libc.so.6(+0xfa178)[0xb7d81178]
/lib/i386-linux-gnu/libc.so.6(_IO_default_xsputn+0x8e)[0xb7cf7d8e]
/lib/i386-linux-gnu/libc.so.6(_IO_vfprintf+0x572)[0xb7ccad82]
/lib/i386-linux-gnu/libc.so.6(__vsprintf_chk+0xb1)[0xb7d81231]
/lib/i386-linux-gnu/libc.so.6(__sprintf_chk+0x2f)[0xb7d8115f]
/home/takis/arculator-dboddie/Arculator[0x807c1d4]
/home/takis/arculator-dboddie/Arculator[0x807c709]
/home/takis/arculator-dboddie/Arculator[0x8078ed7]
/home/takis/arculator-dboddie/Arculator[0x8079151]
/home/takis/arculator-dboddie/Arculator[0x8049e9e]
/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb7ca0af3]
/home/takis/arculator-dboddie/Arculator[0x8049f15]
======= Memory map: ========
08048000-0808d000 r-xp 00000000 08:01 6953872    /home/takis/arculator-dboddie/Arculator
0808d000-0808e000 r--p 00044000 08:01 6953872    /home/takis/arculator-dboddie/Arculator
0808e000-08090000 rw-p 00045000 08:01 6953872    /home/takis/arculator-dboddie/Arculator
08090000-090b8000 rw-p 00000000 00:00 0          [heap]
b04fc000-b1800000 rw-p 00000000 00:00 0
b1800000-b1821000 rw-p 00000000 00:00 0
b1821000-b1900000 ---p 00000000 00:00 0
b192a000-b1aff000 rw-s 00000000 00:05 24903795   /SYSV00000000 (deleted)
b1aff000-b1b00000 ---p 00000000 00:00 0
b1b00000-b2300000 rw-p 00000000 00:00 0          [stack:9899]
b2300000-b2321000 rw-p 00000000 00:00 0
b2321000-b2400000 ---p 00000000 00:00 0
b2409000-b24fa000 r-xp 00000000 08:01 4987148    /usr/lib/i386-linux-gnu/libasound.so.2.0.0
b24fa000-b24fe000 r--p 000f0000 08:01 4987148    /usr/lib/i386-linux-gnu/libasound.so.2.0.0
b24fe000-b24ff000 rw-p 000f4000 08:01 4987148    /usr/lib/i386-linux-gnu/libasound.so.2.0.0
b24ff000-b2500000 ---p 00000000 00:00 0
b2500000-b2d00000 rw-p 00000000 00:00 0          [stack:9898]
b2d00000-b2d21000 rw-p 00000000 00:00 0
b2d21000-b2e00000 ---p 00000000 00:00 0
b2e58000-b2e74000 r-xp 00000000 08:01 524327     /lib/i386-linux-gnu/libgcc_s.so.1
b2e74000-b2e75000 rw-p 0001b000 08:01 524327     /lib/i386-linux-gnu/libgcc_s.so.1
b2e97000-b6e98000 rw-s 00000000 00:15 1261016    /run/shm/pulse-shm-1644380623
b6e98000-b6ec5000 rw-p 00000000 00:00 0
b6ec5000-b6ec6000 ---p 00000000 00:00 0
b6ec6000-b76c6000 rw-p 00000000 00:00 0          [stack:9897]
b76c6000-b76d9000 r-xp 00000000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b76d9000-b76da000 ---p 00013000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b76da000-b76db000 r--p 00013000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b76db000-b76dc000 rw-p 00014000 08:01 524320     /lib/i386-linux-gnu/libresolv-2.19.so
b76dc000-b76de000 rw-p 00000000 00:00 0
b76de000-b76e5000 r-xp 00000000 08:01 4991987    /usr/lib/i386-linux-gnu/libogg.so.0.8.1
b76e5000-b76e6000 r--p 00006000 08:01 4991987    /usr/lib/i386-linux-gnu/libogg.so.0.8.1
b76e6000-b76e7000 rw-p 00007000 08:01 4991987    /usr/lib/i386-linux-gnu/libogg.so.0.8.1
b76e7000-b7710000 r-xp 00000000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b7710000-b7711000 ---p 00029000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b7711000-b7712000 r--p 00029000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b7712000-b7713000 rw-p 0002a000 08:01 4988370    /usr/lib/i386-linux-gnu/libvorbis.so.0.4.5
b7713000-b7879000 r-xp 00000000 08:01 4991989    /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b7879000-b788a000 r--p 00165000 08:01 4991989    /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b788a000-b788b000 rw-p 00176000 08:01 4991989    /usr/lib/i386-linux-gnu/libvorbisenc.so.2.0.8
b788b000-b78bd000 r-xp 00000000 08:01 4986272    /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
b78bd000-b78be000 r--p 00031000 08:01 4986272    /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
b78be000-b78bf000 rw-p 00032000 08:01 4986272    /usr/lib/i386-linux-gnu/libFLAC.so.8.3.0
b78bf000-b78d4000 r-xp 00000000 08:01 524623     /lib/i386-linux-gnu/libnsl-2.19.so
b78d4000-b78d5000 r--p 00015000 08:01 524623     /lib/i386-linux-gnu/libnsl-2.19.so
b78d5000-b78d6000 rw-p 00016000 08:01 524623     /lib/i386-linux-gnu/libnsl-2.19.so
b78d6000-b78d8000 rw-p 00000000 00:00 0
b78d8000-b78dd000 r-xp 00000000 08:01 4987112    /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b78dd000-b78de000 r--p 00004000 08:01 4987112    /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b78de000-b78df000 rw-p 00005000 08:01 4987112    /usr/lib/i386-linux-gnu/libasyncns.so.0.3.1
b78df000-b794a000 r-xp 00000000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b794a000-b794b000 ---p 0006b000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b794b000-b794c000 r--p 0006b000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b794c000-b794d000 rw-p 0006c000 08:01 4983012    /usr/lib/i386-linux-gnu/libsndfile.so.1.0.25
b794d000-b7951000 rw-p 00000000 00:00 0
b7951000-b7959000 r-xp 00000000 08:01 525238     /lib/i386-linux-gnu/libwrap.so.0.7.6
b7959000-b795a000 r--p 00007000 08:01 525238     /lib/i386-linux-gnu/libwrap.so.0.7.6
b795a000-b795b000 rw-p 00008000 08:01 525238     /lib/i386-linux-gnu/libwrap.so.0.7.6
b795b000-b79a4000 r-xp 00000000 08:01 525201     /lib/i386-linux-gnu/libdbus-1.so.3.7.6
b79a4000-b79a5000 r--p 00048000 08:01 525201     /lib/i386-linux-gnu/libdbus-1.so.3.7.6
b79a5000-b79a6000 rw-p 00049000 08:01 525201     /lib/i386-linux-gnu/libdbus-1.so.3.7.6
b79a6000-b7a13000 r-xp 00000000 08:01 4990460    /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-4.0.so
b7a13000-b7a14000 r--p 0006c000 08:01 4990460    /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-4.0.so
b7a14000-b7a15000 rw-p 0006d000 08:01 4990460    /usr/lib/i386-linux-gnu/pulseaudio/libpulsecommon-4.0.so
b7a15000-b7a1e000 r-xp 00000000 08:01 524350     /lib/i386-linux-gnu/libjson-c.so.2.0.0
b7a1e000-b7a1f000 r--p 00008000 08:01 524350     /lib/i386-linux-gnu/libjson-c.so.2.0.0
b7a1f000-b7a20000 rw-p 00009000 08:01 524350     /lib/i386-linux-gnu/libjson-c.so.2.0.0
b7a20000-b7a6d000 r-xp 00000000 08:01 4995450    /usr/lib/i386-linux-gnu/libpulse.so.0.16.2
b7a6d000-b7a6e000 r--p 0004c000 08:01 4995450    /usr/lib/i386-linux-gnu/libpulse.so.0.16.2
b7a6e000-b7a6f000 rw-p 0004d000 08:01 4995450    /usr/lib/i386-linux-gnu/libpulse.so.0.16.2
b7a6f000-b7a71000 rw-p 00000000 00:00 0
b7a71000-b7a76000 r-xp 00000000 08:01 4982621    /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7a76000-b7a77000 r--p 00004000 08:01 4982621    /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7a77000-b7a78000 rw-p 00005000 08:01 4982621    /usr/lib/i386-linux-gnu/libXdmcp.so.6.0.0
b7a78000-b7a7a000 r-xp 00000000 08:01 4981348    /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b7a7a000-b7a7b000 r--p 00001000 08:01 4981348    /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b7a7b000-b7a7c000 rw-p 00002000 08:01 4981348    /usr/lib/i386-linux-gnu/libXau.so.6.0.0
b7a7c000-b7a7d000 rw-p 00000000 00:00 0
b7a7d000-b7a81000 r-xp 00000000 08:01 4980963    /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b7a81000-b7a82000 r--p 00003000 08:01 4980963    /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b7a82000-b7a83000 rw-p 00004000 08:01 4980963    /usr/lib/i386-linux-gnu/libXfixes.so.3.1.0
b7a83000-b7a8c000 r-xp 00000000 08:01 4982746    /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b7a8c000-b7a8d000 r--p 00008000 08:01 4982746    /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b7a8d000-b7a8e000 rw-p 00009000 08:01 4982746    /usr/lib/i386-linux-gnu/libXrender.so.1.3.0
b7a8e000-b7aae000 r-xp 00000000 08:01 4982704    /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
b7aae000-b7aaf000 r--p 0001f000 08:01 4982704    /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
b7aaf000-b7ab0000 rw-p 00020000 08:01 4982704    /usr/lib/i386-linux-gnu/libxcb.so.1.1.0
b7ab0000-b7ab4000 r-xp 00000000 08:01 4987717    /usr/lib/i386-linux-gnu/libXxf86vm.so.1.0.0
b7ab4000-b7ab5000 r--p 00004000 08:01 4987717    /usr/lib/i386-linux-gnu/libXxf86vm.so.1.0.0
b7ab5000-b7ab6000 rw-p 00005000 08:01 4987717    /usr/lib/i386-linux-gnu/libXxf86vm.so.1.0.0
b7ab6000-b7ac6000 r-xp 00000000 08:01 4990436    /usr/lib/i386-linux-gnu/libXpm.so.4.11.0
b7ac6000-b7ac7000 r--p 0000f000 08:01 4990436    /usr/lib/i386-linux-gnu/libXpm.so.4.11.0
b7ac7000-b7ac8000 rw-p 00010000 08:01 4990436    /usr/lib/i386-linux-gnu/libXpm.so.4.11.0
b7ac8000-b7ac9000 rw-p 00000000 00:00 0
b7ac9000-b7ad2000 r-xp 00000000 08:01 4987756    /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b7ad2000-b7ad3000 r--p 00008000 08:01 4987756    /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b7ad3000-b7ad4000 rw-p 00009000 08:01 4987756    /usr/lib/i386-linux-gnu/libXcursor.so.1.0.2
b7ad4000-b7ae5000 r-xp 00000000 08:01 4982716    /usr/lib/i386-linux-gnu/libXext.so.6.4.0
b7ae5000-b7ae6000 r--p 00010000 08:01 4982716    /usr/lib/i386-linux-gnu/libXext.so.6.4.0
b7ae6000-b7ae7000 rw-p 00011000 08:01 4982716    /usr/lib/i386-linux-gnu/libXext.so.6.4.0
b7ae7000-b7c17000 r-xp 00000000 08:01 4981854    /usr/lib/i386-linux-gnu/libX11.so.6.3.0
b7c17000-b7c18000 r--p 00130000 08:01 4981854    /usr/lib/i386-linux-gnu/libX11.so.6.3.0
b7c18000-b7c1a000 rw-p 00131000 08:01 4981854    /usr/lib/i386-linux-gnu/libX11.so.6.3.0
b7c1a000-b7c1b000 rw-p 00000000 00:00 0
b7c1b000-b7c22000 r-xp 00000000 08:01 524684     /lib/i386-linux-gnu/librt-2.19.so
b7c22000-b7c23000 r--p 00006000 08:01 524684     /lib/i386-linux-gnu/librt-2.19.so
b7c23000-b7c24000 rw-p 00007000 08:01 524684     /lib/i386-linux-gnu/librt-2.19.so
b7c24000-b7c3c000 r-xp 00000000 08:01 524625     /lib/i386-linux-gnu/libpthread-2.19.so
b7c3c000-b7c3d000 r--p 00018000 08:01 524625     /lib/i386-linux-gnu/libpthread-2.19.so
b7c3d000-b7c3e000 rw-p 00019000 08:01 524625     /lib/i386-linux-gnu/libpthread-2.19.so
b7c3e000-b7c41000 rw-p 00000000 00:00 0
b7c41000-b7c85000 r-xp 00000000 08:01 524611     /lib/i386-linux-gnu/libm-2.19.so
b7c85000-b7c86000 r--p 00043000 08:01 524611     /lib/i386-linux-gnu/libm-2.19.so
b7c86000-b7c87000 rw-p 00044000 08:01 524611     /lib/i386-linux-gnu/libm-2.19.so
b7c87000-b7e2f000 r-xp 00000000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b7e2f000-b7e30000 ---p 001a8000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b7e30000-b7e32000 r--p 001a8000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b7e32000-b7e33000 rw-p 001aa000 08:01 524686     /lib/i386-linux-gnu/libc-2.19.so
b7e33000-b7e36000 rw-p 00000000 00:00 0
b7e36000-b7e39000 r-xp 00000000 08:01 524615     /lib/i386-linux-gnu/libdl-2.19.so
b7e39000-b7e3a000 r--p 00002000 08:01 524615     /lib/i386-linux-gnu/libdl-2.19.so
b7e3a000-b7e3b000 rw-p 00003000 08:01 524615     /lib/i386-linux-gnu/libdl-2.19.so
b7e3b000-b7e8e000 r-xp 00000000 08:01 4983987    /usr/lib/i386-linux-gnu/libopenal.so.1.14.0
b7e8e000-b7e8f000 r--p 00053000 08:01 4983987    /usr/lib/i386-linux-gnu/libopenal.so.1.14.0
b7e8f000-b7e90000 rw-p 00054000 08:01 4983987    /usr/lib/i386-linux-gnu/libopenal.so.1.14.0
b7e90000-b7e95000 r-xp 00000000 08:01 4986990    /usr/lib/libalut.so.0.1.0
b7e95000-b7e96000 r--p 00004000 08:01 4986990    /usr/lib/libalut.so.0.1.0
b7e96000-b7e99000 rw-p 00005000 08:01 4986990    /usr/lib/libalut.so.0.1.0
b7e99000-b7e9a000 rw-p 00000000 00:00 0
b7e9a000-b7eb2000 r-xp 00000000 08:01 525217     /lib/i386-linux-gnu/libz.so.1.2.8
b7eb2000-b7eb3000 r--p 00017000 08:01 525217     /lib/i386-linux-gnu/libz.so.1.2.8
b7eb3000-b7eb4000 rw-p 00018000 08:01 525217     /lib/i386-linux-gnu/libz.so.1.2.8
b7eb4000-b7f8a000 r-xp 00000000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b7f8a000-b7f8b000 ---p 000d6000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b7f8b000-b7f8c000 r--p 000d6000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b7f8c000-b7f99000 rw-p 000d7000 08:01 4986982    /usr/lib/i386-linux-gnu/liballeg.so.4.4.2
b7f99000-b7fb7000 rw-p 00000000 00:00 0
b7fb7000-b7fb9000 rw-p 00000000 00:00 0
b7fb9000-b7fbb000 r-xp 00000000 08:01 5246003    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsamidi.so
b7fbb000-b7fbc000 r--p 00001000 08:01 5246003    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsamidi.so
b7fbc000-b7fbd000 rw-p 00002000 08:01 5246003    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsamidi.so
b7fbd000-b7fc1000 r-xp 00000000 08:01 5246002    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsadigi.so
b7fc1000-b7fc2000 r--p 00003000 08:01 5246002    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsadigi.so
b7fc2000-b7fc3000 rw-p 00004000 08:01 5246002    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-alsadigi.so
b7fc3000-b7fc8000 r-xp 00000000 08:01 4984245    /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0
b7fc8000-b7fc9000 r--p 00004000 08:01 4984245    /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0
b7fc9000-b7fca000 rw-p 00005000 08:01 4984245    /usr/lib/i386-linux-gnu/libXxf86dga.so.1.0.0
b7fca000-b7fce000 r-xp 00000000 08:01 5245941    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-dga2.so
b7fce000-b7fcf000 r--p 00003000 08:01 5245941    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-dga2.so
b7fcf000-b7fd0000 rw-p 00004000 08:01 5245941    /usr/lib/i386-linux-gnu/allegro/4.4.2/alleg-dga2.so
b7fd0000-b7fd1000 rw-p 00000000 00:00 0
b7fd1000-b7fd8000 r--s 00000000 08:01 5114506    /usr/lib/i386-linux-gnu/gconv/gconv-modules.cache
b7fd8000-b7fda000 rw-p 00000000 00:00 0
b7fda000-b7fdc000 r--p 00000000 00:00 0          [vvar]
b7fdc000-b7fde000 r-xp 00000000 00:00 0          [vdso]
b7fde000-b7ffe000 r-xp 00000000 08:01 524672     /lib/i386-linux-gnu/ld-2.19.so
b7ffe000-b7fff000 r--p 0001f000 08:01 524672     /lib/i386-linux-gnu/ld-2.19.so
b7fff000-b8000000 rw-p 00020000 08:01 524672     /lib/i386-linux-gnu/ld-2.19.so
bffdf000-c0000000 rw-p 00000000 00:00 0          [stack]

Program received signal SIGABRT, Aborted.
0xb7fdccb0 in ?? ()
(gdb) bt
#0  0xb7fdccb0 in ?? ()
#1  0xb7d82b8b in __fortify_fail () from /lib/i386-linux-gnu/libc.so.6
#2  0xb7d81a1a in __chk_fail () from /lib/i386-linux-gnu/libc.so.6
#3  0xb7d81178 in ?? () from /lib/i386-linux-gnu/libc.so.6
#4  0xb7cf7d8e in _IO_default_xsputn () from /lib/i386-linux-gnu/libc.so.6
#5  0xb7ccad82 in vfprintf () from /lib/i386-linux-gnu/libc.so.6
#6  0xb7d81231 in __vsprintf_chk () from /lib/i386-linux-gnu/libc.so.6
#7  0xb7d8115f in __sprintf_chk () from /lib/i386-linux-gnu/libc.so.6
#8  0x0807c1d4 in sprintf (__fmt=0x8086f1e "p_son%02i.bin", __s=0xbfffed52 "p_son01.b") at /usr/include/i386-linux-gnu/bits/stdio2.h:33
#9  loadpoizone () at romload.c:62
#10 0x0807c709 in loadrom () at romload.c:113
#11 0x08078ed7 in establishromavailability () at main.c:116
#12 0x08079151 in arc_init () at main.c:187
#13 0x08049e9e in main (argc=1, argv=0xbffff714) at main.c:319
(gdb) q
A debugging session is active.

   Inferior 1 [process 9890] will be killed.

Quit anyway? (y or n) y
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Arculator on Linux?

Postby davidb » Mon Jun 20, 2016 7:12 pm

OK. A quick fix would be to comment out line 113 of loadrom.c

Code: Select all

                case 5: append_filename(fn,exname,"roms/poizone",511); chdir(fn); return loadpoizone();

then rebuild and run again. Ideally, we'd fix the loadpoizone function but that's probably not important at the moment. :)

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Mon Jun 20, 2016 7:32 pm

davidb wrote:OK. A quick fix would be to comment out line 113 of loadrom.c

Code: Select all

                case 5: append_filename(fn,exname,"roms/poizone",511); chdir(fn); return loadpoizone();

then rebuild and run again. Ideally, we'd fix the loadpoizone function but that's probably not important at the moment. :)

make: *** [romload.o] Error 1
Probably I have made something wrong.
Can you upload a fixed romload.c?
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Arculator on Linux?

Postby davidb » Mon Jun 20, 2016 7:59 pm

Can you go into the arculator-dboddie directory and update it with this command?

Code: Select all

hg pull

Then go into the src directory and try building again?

Code: Select all

cd src
make

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Mon Jun 20, 2016 9:55 pm

With the last update it works! Thank you David. Some more little tweaks will be fine.
How can I remove the black border down and right of the window?
Where are the gui menus like Windows version?
Where is the arc.cfg file?
How can I choose memory size, window size or fullscreen, RO2 or RO3 versions, ARM2 or ARM3?
:D

Screenshot.jpg
Screenshot
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Mon Jun 20, 2016 10:19 pm

Also works on Debian weezy (CrunchBang) under virtualbox!

Debian.jpg
Debian screen
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Mon Jun 20, 2016 10:39 pm

dgrubb's version don't works for me, but he don't give step by step the commands like did David and probably I did something wrong.
If we want to be sure for this version, will need step by step commands (like did David) and I will do a copy/paste into a terminal!
:)
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

Zarchos
Posts: 2355
Joined: Sun May 19, 2013 8:19 am
Location: FRANCE

Re: Arculator on Linux?

Postby Zarchos » Wed Jun 22, 2016 6:27 am

How difficult would it be to add the ColourCard by Computer Concepts features to Arculator ?
See the doc here :
http://chrisacorns.computinghistory.org ... r_Card.pdf
there's the list of extra modes this expansion board adds to an Archie. (page 24 and 25).

User avatar
trixster
Posts: 527
Joined: Wed May 06, 2015 11:45 am
Location: York

Re: Arculator on Linux?

Postby trixster » Wed Jun 22, 2016 10:12 pm

Would it be possible to get this running under raspbian on a raspberry pi?
A3020 | A3000 | BBC B + 128K RAM/ROM + 20K Shadow + Pi0 + VideoNuLA
BBC Master Turbo + DC | Atom | A1200 060 | A500 | Jaguar | A420/1
A4000/040 060 | Atari Falcon 060 | Saturn | PS1 | SNES | CPC6128 | C64 | 3DO | MD

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Arculator on Linux?

Postby davidb » Wed Jun 22, 2016 10:37 pm

trixster wrote:Would it be possible to get this running under raspbian on a raspberry pi?

Raspbian Wheezy or Raspbian Jessie? Which model?

AndyMc1280
Posts: 582
Joined: Sat Aug 27, 2011 10:50 am

Re: Arculator on Linux?

Postby AndyMc1280 » Wed Jun 22, 2016 11:11 pm

davidb wrote:
trixster wrote:Would it be possible to get this running under raspbian on a raspberry pi?

Raspbian Wheezy or Raspbian Jessie? Which model?


Raspbian is a port of Debian, in theory if it works on Debian wheezy, it should not have problems on raspbian.

User avatar
davidb
Posts: 1901
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Arculator on Linux?

Postby davidb » Wed Jun 22, 2016 11:19 pm

AndyMc1280 wrote:Raspbian is a port of Debian, in theory if it works on Debian wheezy, it should not have problems on raspbian.

True enough. I was thinking more about the architecture. I have (had?) a cross-building environment set up for Raspbian Wheezy but it was only tested for the original Model B. I don't know if a different set of compilers are needed for the Pi 2.

User avatar
bakoulis
Posts: 249
Joined: Wed Feb 08, 2012 9:45 pm
Location: Athens, Greece

Re: Arculator on Linux?

Postby bakoulis » Thu Jun 23, 2016 9:27 am

If it runs on Model B, will be run also on Pi2. Anyway on model B will be terrible slow.
The best option for Pi is the ArcEm 1.50 emulator under RiscOS Pi.
http://arcem.sourceforge.net/ It is very fast and works almost perfect.
Also under RiscOS Pi you will have a fast and reliable BBC B emulator.
Beebit http://homepages.paradise.net.nz/mjfoot/bbc.htm
Acorn emulation on Pi under ARM Linux is the quickest joke!
Fortunately for this job we have RiscOS Pi.
:wink:
2xElectron, 3xBBC B, BBC Master.
2xAcorn A310, A420/1, 2xA3000, 2xA3010, A3020, A4000, A5000.
2xRISC PC, Acorn Pocket Book, Acorn Pocket Book II.

User avatar
dgrubb
Posts: 134
Joined: Thu Jun 02, 2016 8:36 pm

Re: Arculator on Linux?

Postby dgrubb » Fri Jun 24, 2016 4:52 pm

davidb wrote: I don't know if a different set of compilers are needed for the Pi 2.


That's not necessary as the newer chips are backwards compatible. You'd have issues if you targeted code for the new devices and then tried executing on the older hardware though. The toolchains provided by the foundation haven't been updated for a very long time for exactly this reason. There's no official support for taking advantage of the 64bit capabilities of the Pi3, for instance.

paulb
Posts: 784
Joined: Mon Jan 20, 2014 9:02 pm

Re: Arculator on Linux?

Postby paulb » Fri Jun 24, 2016 5:26 pm

dgrubb wrote:
davidb wrote: I don't know if a different set of compilers are needed for the Pi 2.


That's not necessary as the newer chips are backwards compatible. You'd have issues if you targeted code for the new devices and then tried executing on the older hardware though. The toolchains provided by the foundation haven't been updated for a very long time for exactly this reason. There's no official support for taking advantage of the 64bit capabilities of the Pi3, for instance.


At some point the toolchains in Debian will just work for whichever Pi it is (Pi3, I guess) that uses the same "sub-architecture" as practically all the other ARM boards out there. It's probably this package that provides gcc and which works with the Pi3 (as a cross-compiler), but since I don't have any interest in Pi-related things, I haven't really looked into it.

User avatar
dgrubb
Posts: 134
Joined: Thu Jun 02, 2016 8:36 pm

Re: Arculator on Linux?

Postby dgrubb » Tue Jul 05, 2016 8:05 pm

Made some positive progress today. :)

When I tried substituting the create_video_bitmap() calls with create_bitmap() Arculator would execute but produce odd screen output (see earlier in the thread) so I was reticent to commit anything until I wrapped my head around it a bit. There's a lot of if/else logic in the function which handles the screen drawing and blitting which is dependent on values from arc.cfg so I followed the paths until I had a working configuration. Turns out I needed to ensure that:

full_borders = 1
hires = 0

Different screenshots attached showing the failure case and the successful execution.

With this confirmed I've committed the fallback logic to my Debian-Compatibility branch which you should be able to run without requiring a VM (VirtualBox's special guest additions graphics driver is probably providing X with the necessary support for using video memory).
Attachments
arculator_working.png
arculator_notworking.png

User avatar
dgrubb
Posts: 134
Joined: Thu Jun 02, 2016 8:36 pm

Re: Arculator on Linux?

Postby dgrubb » Tue Jul 05, 2016 9:31 pm

While I was in there I also added configuration options to enable logging to file and output to stdout/stderr.

Zarchos
Posts: 2355
Joined: Sun May 19, 2013 8:19 am
Location: FRANCE

Re: Arculator on Linux?

Postby Zarchos » Wed Jul 06, 2016 7:48 am

dgrubb wrote:While I was in there I also added configuration options to enable logging to file and output to stdout/stderr.


I didn't dare asking but could you please change the extra mode 99 defined by arculator to NOT be 99 but a higher number (the highest the best) ?

Why ?
Simply because most demos use number 99 to define their own screen modes (because 99 is the per default number custom screenmode makers app propose).

Thanks in advance,
Xavier.

User avatar
dgrubb
Posts: 134
Joined: Thu Jun 02, 2016 8:36 pm

Re: Arculator on Linux?

Postby dgrubb » Wed Jul 06, 2016 5:37 pm

trixster wrote:Would it be possible to get this running under raspbian on a raspberry pi?


Yes. I ran it on Pi2 and Pi3 without any issues, see Makefile.nix for details about dependencies. It's a bit on the sluggish side though, even on the Pi3.

Zarchos wrote:I didn't dare asking but could you please change the extra mode 99 defined by arculator to NOT be 99 but a higher number (the highest the best) ?


I took a look at the code and *wimpmode 99 actually sets Mode 28 as they both result in a nibble of 0xF in the appropriate memory location. I'm afraid I don't know enough to understand whether that's intentional or just a side-effect of the bitmasking. Sorry! :)


Return to “emulators”

Who is online

Users browsing this forum: No registered users and 1 guest