Atomulator on Raspberry Pi

discussion of games, software, hardware & emulators relating to the Acorn Atom and Acorn System machines.
User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sat Oct 04, 2014 5:09 pm

Hi Dave,

this is great, all programs and BeebSID collections are working now with almost no dropouts. Great job!!!! =D> =D>

The only problem I ran into was playing Equinox IV on the "BeebSID12 Jarre" collection. There is a lot of noise while playing the music.

And the Repton start tune is still missing notes, the beeper version I mean, not the SID version.

Greetings
Kees

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 04, 2014 6:10 pm

Kees,

I've been thinking about the problems with GALASND.

Here's another build that removes the debug logging with VIA writing.
OptimaV4test2.zip
(1.05 MiB) Downloaded 68 times
I don't think this is the problem but it's just possible.

When I play GALASND, it's perfect most of the time. There is a very occasional glitch (maybe one per iteration of the song), and in the rlog.txt you can see some some frames being dropped at the same time.

Then, I set sdtv_mode=2 in config.txt and rebooted.

What I noticed was that immediately that, even with nothing running, it's reporting 50 frames dropped out of every 300, which is not right.

I think what's happening here is that Allegro is double buffering the display, and is waiting for the Vsync before flipping the page. When you set sdtv_mode to PAL, the Vsync rate drops from 60Hz down to 50Hz. This is messing up the emulator timings, as I'm expecting it to run at 60Hz.

Could you try a little experiment....

With stdv_mode=2, try to estimate the number of missing notes you hear during the song. Let it run for a while, then exit and look at rlog.txt, and post the frame drop statistics.

Then, edit config.txt and comment out stdv_mode and restart, and do the same test.

Dave

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sat Oct 04, 2014 8:12 pm

Hi Dave,

The problems are with the Repton tune, not the Galaforce tune.

Greetings
Kees

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 04, 2014 8:49 pm

oss003 wrote:The problems are with the Repton tune, not the Galaforce tune.
Sorry, I understand now.

I've just tried repton and I'm also hearing missing notes in the little ditty at the start. Did you write the sound code for this?

It looks like the code to play a single note is at #54D4.

Code: Select all

    54D4 : STA 99
    54D6 : STX 9A
    54D8 : STY 9B
    54DA : LDA #40
    54DC : STA B808
    54DF : LDA #9C
    54E1 : STA B809
    54E4 : LDA 9A
    54E6 : STA B804
    54E9 : LDA 9B
    54EB : STA B805
    54EE : LDA B002
    54F1 : EOR #04
    54F3 : STA B002
    54F6 : LDA B80D
    54F9 : AND #20
    54FB : BNE 5507
    54FD : LDA B80D
    5500 : AND #40
    5502 : BEQ 54F6
    5504 : JMP 54E4
    5507 : DEC 99
    5509 : BNE 54DA
    550B : RTS
This is entered with:
A = length of note, in 40ms units
YX = 1000000/frequency of note

It uses T1 (B804 and B805) to count down from YX

It uses T2 (B808 and B809) to count to 40ms (#9C40)

If a note is being missed, it probably indicates that somehow the T2 timer is malfunctioning.

Is the same code not using in GALASND?

Dave

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sat Oct 04, 2014 9:32 pm

Yes I wrote the code myself. This is the sound routine for Galaforce:

Code: Select all

;---------------------------------------------------
; SOUND A,X,Y, produce tone
; Silence duration is :     A     * 0,005 usec
; Tone duration    is :  note_dur * 0,005 usec
;
; A = Duration (1-255) * 0,005 usec
; X = Pitch (9-19)
; Y = Octave (0-7)
;---------------------------------------------------

dur_val    = $90
pit_val    = $91
oct_val    = $92
sil_dur    = $93

sound:
	sta sil_dur

	lda note_dur
	sta dur_val	; 4
	stx pit_val	; 4
	sty oct_val	; 4

	lda #<5000	; 2, Set Timer 2=0,005 sec
	sta $b808	; 4
	lda #>5000	; 2
	sta $b809	; 4

	cpx #0
	bne loop3
	jmp pauseloop
loop3:
	  jsr toggle	     ;22 , t3=t2+22+3

	  ldy oct_val        ; 4 , t2=Y*(t1+4)+4
loop2:
	ldx pit_val      ; 4 , t1=X*32+4
loop1:
	lda $b80d       	; 4, Read IFR
	and #$20     	; 2, Mask T2
	bne chk_timer  	; 2 If T2=0, jump
	jsr wait       	; 6+18 Else wait
loop5:
	dex            	; 2
	bne loop1        	; 2
	dey              ; 2
	bne loop2          ; 2

	jmp loop3            ; 3

end_sound:			; Silence until total time 
	lda sil_dur
	sta dur_val
	jmp pauseloop

;--------------------------------------
; Pause 
;--------------------------------------
pauseloop:
	ldy dur_val
loop10:
	lda #<5000
	sta $b808
	lda #>5000
	sta $b809
loop11:
	lda $b80d
	and #$20
	beq loop11

	lda $b808
	dey
	bne loop10
	rts

;--------------------------------------
; Toggle speaker (16 usec)
;--------------------------------------
toggle:
	lda $b002      ; 4
	eor #4         ; 2
	sta $b002      ; 4
	rts            ; 6

;--------------------------------------
; Check if time is over (24 usec)
;--------------------------------------
chk_timer:
	lda $b808      ; 4
	dec dur_val    ; 3
	beq end_sound  ; 2
settimer:
	lda #<5000     ; 2
	sta $b808      ; 4
	lda #>5000     ; 2
	sta $b809      ; 4
	jmp loop5      ; 3

;--------------------------------------
; Wait routine 24-6=18 usec
;--------------------------------------
wait:
	nop            ; 2
	nop            ; 2
	nop            ; 2
	nop            ; 2
	nop            ; 2
	nop            ; 2
	rts            ; 6

and this one for Repton:

Code: Select all

;---------------------------------------------------
; SOUND A,X,Y, produce tone
;
; A = Duration (1-255) * 0,05 sec
; X = Pitch lo-byte
; Y = Pitch hi-byte
;---------------------------------------------------

dur_val   = $99
pitch_lb  = $9a
pitch_hb  = $9b

timer1    = $b804
timer2    = $b808
speaker   = $b002

sound2:
	sta dur_val
	stx pitch_lb
	sty pitch_hb
loop11:
	lda #<5000
	sta timer2
	lda #>5000
	sta timer2+1

loop21:
	lda pitch_lb
	sta timer1
	lda pitch_hb
	sta timer1+1
	lda speaker
	eor #4
	sta speaker
loop31:
	lda $b80d
	and #$20
	bne end_sound1
	lda $b80d
	and #$40
	beq loop31
	jmp loop21
end_sound1:
	dec dur_val
	bne loop11
	rts             

init_via:
	lda #$00
	sta $b80b
	rts
I have 2 versions, one with T1 for frequency timing and T2 for 0,005 sec duration. The other one is with T2 for 0,005 sec duration and a counter for frequency timing. More or less based upon the BBC note generation.

Greetings
Kees

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 04, 2014 9:41 pm

Kees,

I'm now understanding the reason that the repton ditty doesn't sound correct.

The problem is not missing notes, but different notes sounding the same.

I wrote a small basic programme to play the sound slowly:
RepTune.png
The problem is notes 2, 3 and 4 end up sounding the same on Optima.

Looking at the T1 counter values:
#01A9
#017B
#0166
#013F

The reason this is happening is because Optima executes 128 cycles of machine code, then updates the VIA timers by 128. Notes 2-4 sound the same because they are within 128 of each other.

Because the values are small, and within 128 of each other, they a

In the Repton sound code, timer T1 is used to control the speaker frequency.

I had not considered the VIA being used for very short period, where great accuracy was needed. I'll need to re-think this a bit.

Does GALASND work differently?

Dave

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sat Oct 04, 2014 9:52 pm

In fact the sound routine with the 2 timers was the first routine I wrote but in all the other games I used the sound routine with 1 timer. Also Galaforce uses the sound routine with 1 timer.

I'll recompile Repton tomorrow with the 1 timer sound routine.

Greetings
Kees

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 04, 2014 9:56 pm

I'm thinking the right thing to do is to fix the emulator, not the program.

The following bit of code needs to be re-implemented in ARM assembler, so it can execute after every instruction:

Code: Select all

via.t1c -= c;
if (!(via.acr & 0x20))
   via.t2c -= c;
if (via.t1c < -1 || via.t2c < -1) updatetimers();
At the moment, it executes every 128 cycles.

This should be possible, with out too much of a detrimental effect on performance.

Dave

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sun Oct 05, 2014 9:23 am

Could this also be the Astrobirds sound problem?

Kees

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sun Oct 05, 2014 10:04 am

oss003 wrote:The only problem I ran into was playing Equinox IV on the "BeebSID12 Jarre" collection. There is a lot of noise while playing the music.
I suspect this is because the fastsid gets the amplitude of the noise channel wrong.
oss003 wrote: Could this also be the Astrobirds sound problem?
Is there a problem here?

It sounds very close to the sound on my real Atom.

Here's another build for testing that fixes the VIA timing so now the Repton ditty is played accurately.
OptimaV4test3.zip
(1.05 MiB) Downloaded 76 times
Dave
Last edited by hoglet on Fri Oct 10, 2014 5:50 pm, edited 4 times in total.

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sun Oct 05, 2014 11:55 am

Hi Dave,
hoglet wrote:Could you try a little experiment....

With stdv_mode=2, try to estimate the number of missing notes you hear during the song. Let it run for a while, then exit and look at rlog.txt, and post the frame drop statistics.

Then, edit config.txt and comment out stdv_mode and restart, and do the same test.
There are no notes missing with the OptimaV4test3 version.

With sdtv_mode=2, skipped 50 out of 300 frames
With no sdtv_mode in config.txt, skipped 0-14 out of 300 frames (mostly 0 or 1)

Greetings
Kees

User avatar
roland
Posts: 3386
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atomulator on Raspberry Pi

Post by roland » Sun Oct 05, 2014 12:04 pm

I also started some testing, especially on Pidora. But it keeps complaining about libjpeg and libpng. I tried some tricks that solved these issues in the past on other programs but that didn't help. So right now I'm copying Raspian to an SD card and go ahead with that one.

Why does transferring the image of 3.2 GB take more then 2 hours #-o
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sun Oct 05, 2014 2:05 pm

Hi Roland,

Thanks for helping out with the testing...

Probably best that we all use Raspbian, as it eliminates one source of variation.

Here's yet another test build:
OptimaV4test4.zip
(1.05 MiB) Downloaded 79 times
I think I've fixed the FastSID bug that was affection Oxygene, which turned out to be a completely broken SID Filter.

FastSID supports either floating point or fixed point arithmetic, switchable with a #define. There seem to be different problems with each mode:

1. In floating point mode, the band pass filter sounds like it is overflowing.

The fix was to add some brackets to a macro:

Code: Select all

-#define REAL_MULT(x,y)  (x * y)
+#define REAL_MULT(x,y)  ((x) * (y))
2. In fixed point mode, the low pass filter was stuck at one frequency.

The code that generates the low pass filter coefficient table was incorrect when rk is an int, as it is in fixed point mode. The fix was:

Code: Select all

-        h = (float)((((exp(rk / 2048 * log(filterFs)) / filterFm) + filterFt)
+        h = (float)((((exp(rk / 2048.0 * log(filterFs)) / filterFm) + filterFt)
Running in either mode, Oxygene now sounds much better. I'll use floating point, because raspbian has hardware floating point support.

In testing I tried my real BeebSID (a 8580) and tried switching between 6581 and 8580 in Atomulator. It's amazing how different the filters sound. Oxygene was definitely written for the 6581.

Dave

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sun Oct 05, 2014 5:56 pm

Hi Dave,

I tested OptimaV4test4 and it's working fine. The SID files are playing ok now and Repton is also playing all notes. Great job... =D> =D>

I don't know if it is a problem with my HDMI TV but while playing Oxygene I noticed some shading now and then on the left channelbar in the VU-meter?? I'll try to make a picture of it.

PS I had a play on the HDMI TV and indeed the display is very sharp with nice colours!!

Greetings
Kees

User avatar
roland
Posts: 3386
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atomulator on Raspberry Pi

Post by roland » Sun Oct 05, 2014 8:18 pm

Transferring the Raspbian image from my harddisk to an SD card took more than three hours on my Mac. I really have no idea what the reason for that is :evil:

Because I was out with the lady of the house I didn't have a chance yet to test Optima 4 test 4. I hope I find some time this week... I'm pretty sure it will also work fine on my Pi 8)
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Fri Oct 10, 2014 6:04 pm

Giving this thread a bit of a bump...

A couple of questions for Kees:

I've just added joystick support back in. I've also just bought my first ever joystick. A SpeedLink Competition Pro:
competition-pro-usb.jpg
I found one RS title that allows Joystick control (Jungle Journey) which seems to work.

Is there a definitive of other titles that support Joystick control?

Here's my list of outstanding items before I release V4:
- Add joystick support back in
- FastSID noise channel seems to be too loud
- Menu size/font size too small on low resolution displays
- Menu bar needs a cyan background so it is readable regardless of the background colour
- Move tape cycle counter updates to ARM assembler so it is instruction accurate
- Desensitise the menu slightly
- Add menu option to allow SID filter to be enabled/disabled
- Add menu option to allow 6522 write logging to be enabled/disabled
- Add menu option to allow 6502 execution to keep running while menu displayed
- Address the 50/300 frame loss when 50Hz PAL modes
- Fix a bug with incorrect flags in BCD arithmetic
- Fix a bug with UEF tape loading
- Fix a bug with CSW tape cataloging
- Implemented show tape catalog
- Implemented fast tape node as best I could

For the 50Hz/60Hz mode, I was planning to have a new menu item for this, and initialize it based on the detected Y resolution:
<525 or >625 lines would be 60 Hz, else 50Hz.

I'm not exactly sure if this will work, because overscan will reduce the resolution. Can you look in rlog.txt and tell me the resolution it reports for your PAL setup please?

Dave
Last edited by hoglet on Sat Oct 11, 2014 7:27 pm, edited 6 times in total.

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Fri Oct 10, 2014 8:40 pm

Hi Dave,

Most of the RS titles have joystick support like Chuckie Egg, Galaforce, Joe Blade and Repton.

I'll have to check rlog.txt.

Greetings
Kees

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 11, 2014 11:30 am

Hi Kees,
oss003 wrote: Most of the RS titles have joystick support like Chuckie Egg, Galaforce, Joe Blade and Repton.
I've just tried each of these...they all work, apart from Galaforce, which for some reason has seriously messed up timings on Optima. For example, the start ditty does play, but very very slowly, and once you eventually get into the game, again the timings are messed up.

Is this using the 6522 for timing? Is there anything different you can think of compared to other games used of the 6522? Looks like the pitch is correct, but the duration of each note is 10-20x too long.
oss003 wrote: I'll have to check rlog.txt.
Much appreciated.

Dave

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 11, 2014 11:53 am

hoglet wrote:Is this using the 6522 for timing? Is there anything different you can think of compared to other games used of the 6522? Looks like the pitch is correct, but the duration of each note is 10-20x too long.
Found and fixed a rather blatent bug in in the 6522 counter code:

Code: Select all

check_counter_hits:
	ldr  %r0,[%r4, #VIA_T1C]
	cmp  %r0, #-1
	blt  do_update_timers
	ldr  %r0,[%r4, #VIA_T1C]
	cmp  %r0, #-1
	blt  do_update_timers
The second T1C should be a T2C.

After fixing this, the via works fine, but I can't get the Joystick to work in Galaforce. When I switch to joystick (by pressing K), it just fires continuously, and you can't move left/right. Is this looking for a different joystick implementation?

Edit: This behaviour is exactly reproducible in Atomulator on Windows. Slight variation between the mono and colour versions. On the mono version the fire button works properly. On the colour version it is stuck down. Left/right is nor working on either.

Dave

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sat Oct 11, 2014 2:20 pm

Hi Dave,

could be a different joystick routine. Before AtoMMC v2.9 the code was different to read the joystick. Will have a look.

Greetings
Kees

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sat Oct 11, 2014 2:39 pm

Hi Dave,

the old version uses addresses #B40E and #B40F and the new version addresses #B400 and #B401.

The joystick code should be somewhere at #4CEA. This is the right code:

Code: Select all

;----------------------------------------------------------
; Set PORTB direction
;----------------------------------------------------------

joyinit:
	lda #$ff   ; Write value to latch, bits 0-7 input
	sta $b401

	jsr interwritedelay

	lda #$a1   ; Write direction in latch to PORTB
	sta $b400

	jsr interwritedelay

	lda #$ff   ; Write value to latch, bits 0-7 high 
	sta $b401

	jsr interwritedelay

	lda #$a3   ; Write value in latch to PORTB
	sta $b400
	rts

;----------------------------------------------------------
; Get PORTB value
;----------------------------------------------------------

joyget:
	lda #$a2   ; Read value PORTB in latch
	sta $b400

	jsr interwritedelay

	lda $b401
	beq no_joystick
	eor #$ff
	and #$1f
no_joystick:
	rts

;----------------------------------------------------------
; Short delay
;
; Enough to intersperse 2 writes to the FATPIC.
;----------------------------------------------------------

interwritedelay:
	lda  #4
	sec
loop:
	sbc  #1
	bne  loop
	rts

tmp_byte:   .db 0
Greetings
Kees

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 11, 2014 2:47 pm

Do you think it's worth re-building the version of GALAFORCE in the archive against the new joystick address?

Dave

User avatar
oss003
Posts: 3098
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: Atomulator on Raspberry Pi

Post by oss003 » Sat Oct 11, 2014 7:38 pm

Hi Dave,
hoglet wrote:Do you think it's worth re-building the version of GALAFORCE in the archive against the new joystick address?
I think it's better to use the recompiled versions because now everyone is using AtoMMC 2.9x .... :)

I've also added the rlog.txt file Optima produced in PAL mode.

Greetings
Kees
Attachments
rlog.zip
(774 Bytes) Downloaded 76 times
GALA.zip
(15.75 KiB) Downloaded 77 times

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sat Oct 11, 2014 8:40 pm

Thanks Kees,

Galaforce working great now with the joystick. I'll make a note to replace it in V8 of the archive.

I've just about got through my TODO list for Optima V4 (see a few posts above). Tomorrow I'll have a go at pushing a build including the latest archive to acornatom.nl (as it's too large now to upload to the forum).

The remaining thing I wanted to work on was a custom buildroot Linux distribution, so the RPi wil boot to Optima in a few seconds.

Dave

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sun Oct 12, 2014 11:37 am

Hi all,

Here is a link to Optima V4 (thanks to Roland for hosting it):
http://acornatom.nl/optima/OptimaV004.zip

This includes the unreleased V8 Beta1 of the Atom Software Archive (12/10/2014)

There are many changes since Optima V3:
- Improved performance of SID audio with Fast SID (fixed point arithmetic)
- Fixed bugs in SID filters in Fast SID
- Added joystick support back in (supports up to 4 buttons)
- Implemented tape cycle counter in ARM assembler so it is instruction accurate
- Implemented 6522 counters in ARM assembler so it is instruction accurate
- Added support for 50Hz PAL refresh rates
- Increased menu size/font size in low resolution displays
- Re-ordered the menu bar so the settings menu doesn't run off the screen in low resolution displays
- Menu bar now has a cyan background so it is readable regardless of the background colour
- Reduced sensitivity of the menu
- Added a menu option to enable/disable the SID filter
- Added a menu option to enable/disable the 6522 write logging
- Added a menu option to enable/disable 6502 execution while menu displayed
- Fixed a 6502 emulation bug with incorrect flags in BCD arithmetic
- Implemented tape cataloging support
- Fixed a bug with CSW tape cataloging
- Fixed a bug with UEF tape loading
- Implemented an experimental fast tape mode (about 5x faster)
- Made mouse optional (although it is not possible to use the menu)
- Cleaned up some unnecessary debugging output

Known issues:
- There is no support for the debugger
- There is no support for running within a window (i.e. fullscreen only)
- When entering disk/tape names in the menu, these key presses also seem by the Atom

Please let me know if you encounter any problems.

Dave

User avatar
sPhilMainwaring
Posts: 272
Joined: Tue Jan 15, 2013 7:57 pm
Location: Mid Wales
Contact:

Re: Atomulator on Raspberry Pi

Post by sPhilMainwaring » Sun Mar 01, 2015 2:23 pm

Just compiled and run this using the above instructions on a Raspberry Pi 2 running Rasbian and Gnome Desktop Environment and it runs wonderfully !

The sound in Chuckie Egg is a bit "stuttery" and the stuttering continues even after BREAK for some reason. No errors show up in terminal window, however.

Just trying to figure out if I can make it go full screen in atom.cfg

Great work Dave ... we'll have to get the SID working :)

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Sun Mar 01, 2015 2:47 pm

Hi Phil,

I've only ever run it from the command line, not from a graphical desktop.

You get it full screen then.

Can you give this a try, and see if the audio improves?

Dave

User avatar
sPhilMainwaring
Posts: 272
Joined: Tue Jan 15, 2013 7:57 pm
Location: Mid Wales
Contact:

Re: Atomulator on Raspberry Pi

Post by sPhilMainwaring » Mon Mar 02, 2015 8:55 pm

Hi Dave

I compiled version one of Optima "out-of-the-box" (after the apt-gets for Allegro and Alut). It worked and ran all the software in the boot menu and so on (apart from the stuttery sound). I then tried updating to Optimas V2-4.x but quickly ran into Allegro 4.x problems so decided to take the plunge and hand build/compile Allegro 5.0 and then 5.1.x but kept running into missing "bits" (e.g. allegro_ttf.so) ... I'm winning slowly; but I'm a bit rusty "make" wise and time on the big TV that the Pi2 is tied to is shared :p

Re. fullscreen ... I had tried the Ubuntu alpha for the Pi2 (free Windows 10 will be available "in the coming months" apparently) which is a text console only. I had mistakenly confused my nice laptop version of Ubuntu with Gnome Desktop which Ubunut 12.04 and 14.04 install. However, my familiar Gnome Desktop runs fine with Rasbian and I knew this worked with Optima so now the Pi2 boots with a login and GDE selection menu for 8 different desktop environments - which are all fantastic and run really nice - but there is no "non X" ie Command Line only boot option. Atomulator, therefore, is still run from the command line (with ./Atomulator) as before and the command line window which runs it opens another window (like in WinDoze). I tried putting fullscreen=1 in atom.cfg (rather hopefully - but to no avail). Is there anything like --fullscreen at the command line? There must be something in Allegro or underlying libs that flicks xwindows fullscreen somewhere :-/

As an aside the Pi2 claims that the 900MHz quad core runs 6 times faster than the PiB seem to bear out. The desktop environments, web browser plus YouTube, Open Office all run quickly and smoothly with several windows open at the same time. Well worth £24 + VAT and highly recommended

Anyway I'll keep you posted ... when Atomulator works properly I'm sure it'll run sweet!

Phil :)

User avatar
hoglet
Posts: 8543
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: Atomulator on Raspberry Pi

Post by hoglet » Mon Mar 02, 2015 10:20 pm

Phil,

I did a quick test when I got my Pi 2 a couple of weeks ago.

I installed the latest Raspbian from here:
http://www.raspberrypi.org/downloads/

On first boot, I declined the option to install a graphical desktop.

I then unzipped the latest Optima binary release:
http://acornatom.nl/optima/OptimaV004.zip

This seemed to work out of the box, and was very smooth, and was full screen.

Honestly, I didn't do much further testing though.

I wouldn't surprise me if you lost all hardware acceleration when running within a graphical environment.

Dave

User avatar
roland
Posts: 3386
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: Atomulator on Raspberry Pi

Post by roland » Mon Mar 02, 2015 11:21 pm

sPhilMainwaring wrote:but there is no "non X" ie Command Line only boot option.
Doesn't ctrl+alt+F1 bring you to a non-graphical environment like almost all Linux distros do? From there you can start Atomulator, full screen.
256K + 6502 Inside
MAN WOMAN :shock:

Post Reply