Starfighter3000 The Next Generation

subjects relating to classic games for the archimedes and risc pc
Post Reply
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Starfighter3000 The Next Generation

Post by thecellartroll »

Back in my early dabblings with Risc OS on Pi I was able to run SF3000 TNG. I can't remember if I had to do any tinkering and I can't remember what version of RO5 I was running on the Pi. But Googling for it brings up one of my own threads talking about it!

Now, though I can't get it to work at all. On Pi3B+ it just crashes out. On Pi Zero it tries to run the intro and plays the music, even showing the splash screen, but then fails when it tries to load the actual game. No errors given; just a flashing cursor.

I used to play it on an overclocked SA RPC and it ran nicely, but since it was actually meant to run on an Iyonix I would have thought it should be at home on a Pi.

Anyone had better luck than me?
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

sirbod wrote:
Wed Nov 18, 2020 8:30 am
Have you tried downloading the latest build?

http://starfighter.acornarcade.com
That website only covers the original SF3000 game. The Next Generation is a different looking beasty and very nice to play.

http://www.apdl.org.uk/riscworld/volume ... /index.htm
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

Ah, sorry, I realise now that you're talking about the 3DO version.

I thought I had the source code for the 3DO version, but having just run it, it looks identical to the original release - which is why I didn't do anything with it at the time it was passed to me.

I don't have a working copy of TNG, but it sounds like its StrongARM compatible so might work on an Iyonix, but probably won't work on any newer CPU cores due to instruction set changes and deprecations. That said, it will probably work under ADFFS using the StrongARM JIT.

If I can find I copy I'll take a look at it.
Last edited by sirbod on Wed Nov 25, 2020 7:06 am, edited 1 time in total.
User avatar
davidb
Posts: 3059
Joined: Sun Nov 11, 2007 10:11 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by davidb »

sirbod wrote:
Sat Nov 21, 2020 4:07 pm
I thought I had the source code for the 3DO version, but having just run it, it looks identical to the original release - which is why I didn't do anything with it at the time it was passed to me.
I don't want to distract you, but did you see this post on the RISC OS Open forum mentioning the 3DO version?
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

davidb wrote:
Sat Nov 21, 2020 4:53 pm
I don't want to distract you, but did you see this post on the RISC OS Open forum mentioning the 3DO version?
I hadn't, but off the back of this thread I did email Nathan about the source for the 3DO port.
Qjimbo
Posts: 6
Joined: Wed Jan 16, 2019 10:07 pm
Location: Vancouver, Canada
Contact:

Re: Starfighter3000 The Next Generation

Post by Qjimbo »

Didn't the DOS version look similar to this as well? With textured polys, etc.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

sirbod wrote:
Wed Nov 25, 2020 7:10 am
davidb wrote:
Sat Nov 21, 2020 4:53 pm
I don't want to distract you, but did you see this post on the RISC OS Open forum mentioning the 3DO version?
I hadn't, but off the back of this thread I did email Nathan about the source for the 3DO port.
I sent you a PM about it. Perhaps your inbox is full :D
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

I've taken a very quick look at it in the past hour and managed to get it natively running on a Pi3. There is an issue with the colour translation in the Intro and as I had to run it from a ZIP file, I've not tested it much as it was taking 15 mins to load. If you find the game crashes, post the output of *SHOWREGS and I'll investigate.

The original code is 32bit compatible, but its reliant on rotated LDR for half-word loads. The !Run replacement below fixes the ones it crashed at getting into the first level:

Code: Select all

set SF_Resources$Path <Obey$Dir>.,<Obey$Dir>.SF_Resources.

set NVRam$Path <Choices$Dir>.SF3000.NVRAM.
set NVRam$Dir <Choices$Dir>.SF3000.NVRAM

| Fix halfword loads
|RMEnsure PlaySample	2.50 RMLoad <Obey$Dir>.PlaySample
Load <Obey$Dir>.PlaySample 10000
| 000113E4 E1A00080           MOV R0,R0,LSL#1
| 000113E8 E19400B0           LDRH R0,[R4,R0]
| 000113EC E1A00000           NOP
MEMORYA 113E4 E1A00080 { > null: }
MEMORYA 113E8 E19400B0 { > null: } 
MEMORYA 113EC E1A00000 { > null: } 
| 00011454 E1A00080           MOV R0,R0,LSL#1
| 00011458 E19400B0           LDRH R0,[R4,R0]
| 0001145C E1A00000           NOP
MEMORYA 11454 E1A00080 { > null: }
MEMORYA 11458 E19400B0 { > null: }
MEMORYA 1145C E1A00000 { > null: }
| 000114C4 E1A00080           MOV R0,R0,LSL#1
| 000114C8 E19400B0           LDRH R0,[R4,R0]
| 000114CC E1A00000           NOP
MEMORYA 114C4 E1A00080 { > null: }
MEMORYA 114C8 E19400B0 { > null: }
MEMORYA 114CC E1A00000 { > null: }
| 00011534 E1A00080           MOV R0,R0,LSL#1
| 00011538 E19400B0           LDRH R0,[R4,R0]
| 0001153C E1A00000           NOP
MEMORYA 11534 E1A00080 { > null: }
MEMORYA 11538 E19400B0 { > null: }
MEMORYA 1153C E1A00000 { > null: }
| 00011620 E1D400B0           LDRH R0,[R4,#0]
MEMORYA 11620 E1D400B0 { > null: }
| 00011660 E1A00081           MOV R0,R1,LSL#1
| 00011664 E19400B0           LDRH R0,[R4,R0]
| 00011668 E1A00000           NOP
MEMORYA 11660 E1A00081 { > null: }
MEMORYA 11664 E19400B0 { > null: }
MEMORYA 11668 E1A00000 { > null: }
| 00011B14 E1D900B0           LDRH R0,[R9,#0]
MEMORYA 11B14 E1D900B0 { > null: }
| 00011B3C E1D800B8           LDRH R0,[R8,#8]
MEMORYA 11B3C E1D800B8{ > null: }

| 0000FFEC E3A00000           MOV R0,#11
| 0000FFF0 E28F1008           ADR R1,&10000
| 0000FFF4 E3A02DFB           MOV R2,#&3EC0
| 0000FFF8 EF00001E           SWI "OS_Module"
| 0000FFFC EF000011           SWI "OS_Exit"
MEMORYA FFEC E3A0000B { > null: }
MEMORYA FFF0 E28F1008 { > null: }
MEMORYA FFF4 E3A02DFB { > null: }
MEMORYA FFF8 EF00001E { > null: }
MEMORYA FFFC EF000011 { > null: }
GO FFEC
RMEnsure PlaySample	2.50 Error Cannot load PlaySample module for intro

RMEnsure SharedSound	1.03 RMLoad System:Modules.SharedSound
RMEnsure SharedSound	1.03 Error SharedSound module is out of date. Need at least 1.03

wimpslot -min 4000k
| Fix halfword loads
LOAD <Obey$Dir>.intro 8000
| 0000A08C E1A097A9           MOV R9,R9,LSR#15
| 0000A090 E3C99001           BIC R9,R9,#1
| 0000A094 E197B0B9           LDRH R11,[R7,R9]
| 0000A098 E08002C3           ADD R0,R0,R3,ASR#5
| 0000A09C E1A00000           NOP
| 0000A0A0 E1A00000           NOP
MEMORYA A08C E1A097A9 { > null: }
MEMORYA A090 E3C99001 { > null: }
MEMORYA A094 E197B0B9 { > null: }
MEMORYA A098 E08002C3 { > null: }
MEMORYA A09C E1A00000 { > null: }
MEMORYA A0A0 E1A00000 { > null: }
| 0000A0CC E1A097A9           MOV R9,R9,LSR#15
| 0000A0D0 E3C99001           BIC R9,R9,#1
| 0000A0D4 E197B0B9           LDRH R9,[R7,R9]
| 0000A0D8 E08002C3           ADD R0,R0,R3,ASR#5
| 0000A0DC E1A00000           NOP
MEMORYA A0CC E1A097A9 { > null: }
MEMORYA A0D0 E3C99001 { > null: }
MEMORYA A0D4 E19790B9 { > null: }
MEMORYA A0D8 E08002C3 { > null: }
MEMORYA A0DC E1A00000 { > null: }
GO 8000

wimpslot -min 2000k
LOAD <Obey$Dir>.Star3000 8000
| 00008FAC E1DD00FE           LDRSH R0,[R13,#12]
| 00008FB0 E1A00000           NOP
MEMORYA 8FAC E1DD00FC { > null: }
MEMORYA 8FB0 E1A00000 { > null: }
| 0001FCF4 E1DD01F2           LDRSH R0,[R13,#18]
| 0001FCF8 E1A00000           NOP
MEMORYA 1FCF4 E1DD01F2 { > null: }
MEMORYA 1FCF8 E1A00000 { > null: }
| Fix bug in code
| 0001FD3C E5900018           LDR R0,[R0,#24]
| 0001FD40 E1A00000           NOP
MEMORYA 1FD3C E5900018 { > null: }
MEMORYA 1FD40 E1A00000 { > null: }
| 00030CF8 E1A0C7CC           MOV R12,R12,ASR #15
| 00030CFC E3CCC001           BIC R12,R12,#1
| 00030D00 E19E20BC           LDRH R2,[R14,R12]
| 00030D04 E0844006           ADD R4,R4,R6
| 00030D08 E0855007           ADD R5,R5,R7
| 00030D0C E285E902           ADD R14,R5,#&8000
| 00030D10 E1A0E84E           MOV R14,R14,ASR #16
| 00030D14 E02E8E99           MLA R14,R9,R14,R8
| 00030D18 E284E902           ADD R14,R4,#&8000
| 00030D1C E1A0C7CC           MOV R12,R12,ASR #15
| 00030D20 E3CCC001           BIC R12,R12,#1
| 00030D24 E19EE0BC           LDRH R14,[R14,R12]
MEMORYA 30CF8 E1A0C7CC { > null: }
MEMORYA 30CFC E3CCC001 { > null: }
MEMORYA 30D00 E19E20BC { > null: }
MEMORYA 30D04 E0844006 { > null: }
MEMORYA 30D08 E0855007 { > null: }
MEMORYA 30D0C E285E902 { > null: }
MEMORYA 30D10 E1A0E84E { > null: }
MEMORYA 30D14 E02E8E99 { > null: }
MEMORYA 30D18 E284E902 { > null: }
MEMORYA 30D1C E1A0C7CC { > null: }
MEMORYA 30D20 E3CCC001 { > null: }
MEMORYA 30D24 E19EE0BC { > null: }
| 00030D44 E1A0C7CC           MOV R12,R12,ASR #15
| 00030D48 E3CCC001           BIC R12,R12,#1
| 00030D4C E19E30BC           LDRH R3,[R14,R12]
| 00030D50 E0844006           ADD R4,R4,R6
| 00030D54 E0855007           ADD R5,R5,R7
| 00030D58 E285E902           ADD R14,R5,#&8000
| 00030D5C E1A0E84E           MOV R14,R14,ASR #16
| 00030D60 E02E8E99           MLA R14,R9,R14,R8
| 00030D64 E284E902           ADD R14,R4,#&8000
| 00030D68 E1A0C7CC           MOV R12,R12,ASR #15
| 00030D6C E3CCC001           BIC R12,R12,#1
| 00030D70 E19EE0BC           LDRH R14,[R14,R12]
MEMORYA 30D44 E1A0C7CC { > null: }
MEMORYA 30D48 E3CCC001 { > null: }
MEMORYA 30D4C E19E30BC { > null: }
MEMORYA 30D50 E0844006 { > null: }
MEMORYA 30D54 E0855007 { > null: }
MEMORYA 30D58 E285E902 { > null: }
MEMORYA 30D5C E1A0E84E { > null: }
MEMORYA 30D60 E02E8E99 { > null: }
MEMORYA 30D64 E284E902 { > null: }
MEMORYA 30D68 E1A0C7CC { > null: }
MEMORYA 30D6C E3CCC001 { > null: }
MEMORYA 30D70 E19EE0BC { > null: }
| 00030D90 E1A0C7CC           MOV R12,R12,ASR #15
| 00030D94 E3CCC001           BIC R12,R12,#1
| 00030D98 E19EB0BC           LDRH R11,[R14,R12]
| 00030D9C E0844006           ADD R4,R4,R6
| 00030DA0 E0855007           ADD R5,R5,R7
| 00030DA4 E285E902           ADD R14,R5,#&8000
| 00030DA8 E1A0E84E           MOV R14,R14,ASR #16
| 00030DAC E02E8E99           MLA R14,R9,R14,R8
| 00030DB0 E284E902           ADD R14,R4,#&8000
| 00030DB4 E1A0C7CC           MOV R12,R12,ASR #15
| 00030DB8 E3CCC001           BIC R12,R12,#1
| 00030DBC E19EE0BC           LDRH R14,[R14,R12]
MEMORYA 30D90 E1A0C7CC { > null: }
MEMORYA 30D94 E3CCC001 { > null: }
MEMORYA 30D98 E19EB0BC { > null: }
MEMORYA 30D9C E0844006 { > null: }
MEMORYA 30DA0 E0855007 { > null: }
MEMORYA 30DA4 E285E902 { > null: }
MEMORYA 30DA8 E1A0E84E { > null: }
MEMORYA 30DAC E02E8E99 { > null: }
MEMORYA 30DB0 E284E902 { > null: }
MEMORYA 30DB4 E1A0C7CC { > null: }
MEMORYA 30DB8 E3CCC001 { > null: }
MEMORYA 30DBC E19EE0BC { > null: }
| 00030DDC E1A0C7CC           MOV R12,R12,ASR #15
| 00030DE0 E3CCC001           BIC R12,R12,#1
| 00030DE4 E19EC0BC           LDRH R12,[R14,R12]
| 00030DE8 E0844006           ADD R4,R4,R6
| 00030DEC E0855007           ADD R5,R5,R7
| 00030DF0 E285E902           ADD R14,R5,#&8000
| 00030DF4 E1A0E84E           MOV R14,R14,ASR #16
| 00030DF8 E02E8E99           MLA R14,R9,R14,R8
| 00030DFC E284D902           ADD R13,R4,#&8000
| 00030E00 E1A0D7CD           MOV R13,R13,ASR #15
| 00030E04 E3CDD001           BIC R13,R13,#1
| 00030E08 E19EE0BD           LDRH R14,[R14,R13]
MEMORYA 30DDC E1A0C7CC { > null: }
MEMORYA 30DE0 E3CCC001 { > null: }
MEMORYA 30DE4 E19EC0BC { > null: }
MEMORYA 30DE8 E0844006 { > null: }
MEMORYA 30DEC E0855007 { > null: }
MEMORYA 30DF0 E285E902 { > null: }
MEMORYA 30DF4 E1A0E84E { > null: }
MEMORYA 30DF8 E02E8E99 { > null: }
MEMORYA 30DFC E284D902 { > null: }
MEMORYA 30E00 E1A0D7CD { > null: }
MEMORYA 30E04 E3CDD001 { > null: }
MEMORYA 30E08 E19EE0BD { > null: }
| 00030E3C E1A027C2           MOV R2,R2,ASR #15
| 00030E40 E3C22001           BIC R2,R2,#1
| 00030E44 E193C0B2           LDRH R12,[R3,R2]
| 00030E48 E0844006           ADD R4,R4,R6
| 00030E4C E0855007           ADD R5,R5,R7
| 00030E50 E2853902           ADD R3,R5,#&8000
| 00030E54 E1A03843           MOV R3,R3,ASR #16
| 00030E58 E0238399           MLA R3,R9,R3,R8
| 00030E5C E2842902           ADD R2,R4,#&8000
| 00030E60 E1A027C2           MOV R2,R2,ASR #15
| 00030E64 E3C22001           BIC R2,R2,#1
| 00030E68 E19330B2           LDRH R3,[R3,R2]
MEMORYA 30E3C E1A027C2 { > null: }
MEMORYA 30E40 E3C22001 { > null: }
MEMORYA 30E44 E193C0B2 { > null: }
MEMORYA 30E48 E0844006 { > null: }
MEMORYA 30E4C E0855007 { > null: }
MEMORYA 30E50 E2853902 { > null: }
MEMORYA 30E54 E1A03843 { > null: }
MEMORYA 30E58 E0238399 { > null: }
MEMORYA 30E5C E2842902 { > null: }
MEMORYA 30E60 E1A027C2 { > null: }
MEMORYA 30E64 E3C22001 { > null: }
MEMORYA 30E68 E19330B2 { > null: }
| 00030E88 E1A027C2           MOV R2,R2,ASR #15
| 00030E8C E3C22001           BIC R2,R2,#1
| 00030E90 E193C0B2           LDRH R12,[R3,R2]
| 00030E94 E0844006           ADD R4,R4,R6
| 00030E98 E0855007           ADD R5,R5,R7
| 00030E9C E2853902           ADD R3,R5,#&8000
| 00030EA0 E1A03843           MOV R3,R3,ASR #16
| 00030EA4 E0238399           MLA R3,R9,R3,R8
| 00030EA8 E2842902           ADD R2,R4,#&8000
| 00030EAC E1A027C2           MOV R2,R2,ASR #15
| 00030EB0 E3C22001           BIC R2,R2,#1
| 00030EB4 E19330B2           LDRH R3,[R3,R2]
MEMORYA 30E88 E1A027C2 { > null: }
MEMORYA 30E8C E3C22001 { > null: }
MEMORYA 30E90 E193C0B2 { > null: }
MEMORYA 30E94 E0844006 { > null: }
MEMORYA 30E98 E0855007 { > null: }
MEMORYA 30E9C E2853902 { > null: }
MEMORYA 30EA0 E1A03843 { > null: }
MEMORYA 30EA4 E0238399 { > null: }
MEMORYA 30EA8 E2842902 { > null: }
MEMORYA 30EAC E1A027C2 { > null: }
MEMORYA 30EB0 E3C22001 { > null: }
MEMORYA 30EB4 E19330B2 { > null: }
| 00030EE8 E1A027C2           MOV R2,R2,ASR #15
| 00030EEC E3C22001           BIC R2,R2,#1
| 00030EF0 E193C0B2           LDRH R12,[R3,R2]
| 00030EF4 E0844006           ADD R4,R4,R6
| 00030EF8 E0855007           ADD R5,R5,R7
| 00030EFC E2853902           ADD R3,R5,#&8000
| 00030F00 E1A03843           MOV R3,R3,ASR #16
| 00030F04 E0238399           MLA R3,R9,R3,R8
| 00030F08 E2842902           ADD R2,R4,#&8000
| 00030F0C E1A027C2           MOV R2,R2,ASR #15
| 00030F10 E3C22001           BIC R2,R2,#1
| 00030F14 E19330B2           LDRH R3,[R3,R2]
MEMORYA 30EE8 E1A027C2 { > null: }
MEMORYA 30EEC E3C22001 { > null: }
MEMORYA 30EF0 E193C0B2 { > null: }
MEMORYA 30EF4 E0844006 { > null: }
MEMORYA 30EF8 E0855007 { > null: }
MEMORYA 30EFC E2853902 { > null: }
MEMORYA 30F00 E1A03843 { > null: }
MEMORYA 30F04 E0238399 { > null: }
MEMORYA 30F08 E2842902 { > null: }
MEMORYA 30F0C E1A027C2 { > null: }
MEMORYA 30F10 E3C22001 { > null: }
MEMORYA 30F14 E19330B2 { > null: }

| Don't check for 26bit CLib
MEMORYA 2C1C8 E1300000 { > null: }
MEMORYA 2C1F8 E59F1020 { > null: }
MEMORYA 2C210 E1300000 { > null: }
MEMORYA 2F0B8 EA00000B { > null: }
MEMORYA 2F258 EA00000A { > null: }
MEMORYA 2F350 E1A00000 { > null: }

GO 8000
Last edited by sirbod on Fri Jan 01, 2021 12:19 pm, edited 5 times in total.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Ace! I'll try it out at the weekend. Will I need to run it from a zip file too?
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

thecellartroll wrote:
Tue Dec 08, 2020 9:00 pm
Ace! I'll try it out at the weekend. Will I need to run it from a zip file too?
I wouldn't advise it, it literally took 15 minutes to load on a Pi3!

If like me, you don't have the space to extract it (it's ~400mb) I'd copy it to an ISO and modify the script to run from that instead.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Ah, no worries. My RiscOS install on Pi3 is pretty bare at the moment so 400mb shouldn't be an issue. I thought there may have been some advantage to running it from the zip file :D
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Alas it does crash on my Pi. It plays the intro music and flashes the screen a lot. Then it changes to 640x480 75Hz and goes black with a corrupted buzz sort of sound. Showregs output is;
*showregs
Register dump (stored at &2001ADD0) is:
R0 = 205A56F5 R1 = 00000000 R2 = 205A96F4 R3 = 205A46D4
R4 = 205AD6F4 R5 = 205AD6F4 R6 = 216C1FBC R7 = 00F72B80
R8 = 00000008 R9 = 00001000 R10 = FAFF7200 R11 = 00000002
R12 = FAFF70AA R13 = FA101F88 R14 = FC30AA00 R15 = 205A25F0
Mode IRQ32 flags set: NzcvqjggggeAift PSR = 80000112
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Update!

I installed the Risc OS Direct image which is a 5.27 image rather than the ROOL 5.28 image and the game runs! It did crash out after a game over and locked out the keyboard and mouse so I can't do *showregs. (Internal error: abort on instruction fetch at &000303A4)

The colours are off in the intro but in the game itself all looks nice and smooth :)
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Another update: it also crashes out with the same error if you fly too far into space :lol:
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

thecellartroll wrote:
Fri Dec 11, 2020 5:37 pm
Internal error: abort on instruction fetch at &000303A4
I'll investigate this and update the script above once I have a fix, post any more crashes that you can produce in the meantime.
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

thecellartroll wrote:
Fri Dec 11, 2020 8:38 pm
Another update: it also crashes out with the same error if you fly too far into space
I couldn't reproduce this or the other issue, but I have since fixed another alignment error and a bug in the code. Try the updated script above.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

I've tried the new script. It seems to improve stability a bit. I can now fly upwards until the ship bounces off of the top of the atmosphere.

The game does seem to crash out if you don't let cut scenes finish. And also randomly if you blow up. Always with the same error message as above and on my Pi it always locks out the keyboard and mouse so you need to power off to restart.

The Death By Stereo music seems to play about about 1/3 speed, though strangely the other music plays fine!

It has been fun to bomb around in this game again :D
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

thecellartroll wrote:
Fri Dec 18, 2020 11:37 am
The game does seem to crash out if you don't let cut scenes finish.
I have seen that, but not tracked the root cause yet.
thecellartroll wrote:
Fri Dec 18, 2020 11:37 am
And also randomly if you blow up. Always with the same error message as above and on my Pi it always locks out the keyboard and mouse so you need to power off to restart.
The error is a bit misleading as it’s not an instruction fetch error. I’ll continue to investigate though.
thecellartroll wrote:
Fri Dec 18, 2020 11:37 am
The Death By Stereo music seems to play about about 1/3 speed, though strangely the other music plays fine!
How can I get that particular music to play? It could down to the alignment of the file in memory.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

sirbod wrote:
Fri Dec 18, 2020 7:45 pm
thecellartroll wrote:
Fri Dec 18, 2020 11:37 am
How can I get that particular music to play? It could down to the alignment of the file in memory.
You just need to play long enough for the first tune to finish. I have also observed that the music that plays at the level selection balls also plays very slowly :)
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

thecellartroll wrote:
Fri Dec 18, 2020 10:07 pm
You just need to play long enough for the first tune to finish. I have also observed that the music that plays at the level selection balls also plays very slowly :)
If you configure the sound, you can play each track individually. Try the updated script above, I've replaced every LDR in PlaySample that looked like a half-word load with LDRH.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

sirbod wrote:
Mon Dec 28, 2020 1:52 pm
thecellartroll wrote:
Fri Dec 18, 2020 10:07 pm
You just need to play long enough for the first tune to finish. I have also observed that the music that plays at the level selection balls also plays very slowly :)
If you configure the sound, you can play each track individually. Try the updated script above, I've replaced every LDR in PlaySample that looked like a half-word load with LDRH.
Thank you very much for working on this! I shall have plenty of time for a good blast with it tomorrow. Happy New Year!
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Wow! Fantastic :D

There seems to be a specific issue with the "Death By Stereo" track as when that starts it always crashes the Pi. I disabled it in configuration but the game crashed when changing tracks sometimes, so maybe the PlaySample module isn't very Pi friendly.

Ending cut scenes early still crashes the Pi.

So I turned off the music and the cut scenes in configuration. And I was able to play the game for a good couple of hours non stop with no crashes, other than me panning into buildings because it takes longer for them to blow up than in Starfighter 3000. What good fun it is. Nice that you can destroy the gun turrets by approaching from the other side of the hill and shooting a hole through the hill to get at them 😄 it really would be good if the game could get to be properly finished and packaged for Pi.
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

thecellartroll wrote:
Thu Dec 31, 2020 10:38 pm
Ending cut scenes early still crashes the Pi.
I think I've tracked this down to the way it detects a 26bit CLib. Try the updated script above.

I've been unable to reproduce the issue with the music. Could you try playing the track in the Configuration page and see if it also crashes, or if it's only crashing when it switches whilst playing the game.
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

sirbod wrote:
Fri Jan 01, 2021 12:22 pm
thecellartroll wrote:
Thu Dec 31, 2020 10:38 pm
Ending cut scenes early still crashes the Pi.
I think I've tracked this down to the way it detects a 26bit CLib. Try the updated script above.
I don't suppose anyone has had a chance to test the revised script, so I can close it off.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Hi Jon,

Sorry, I haven’t yet had time as my office has turned into a temporary storage room for stuff removed from the disaster site left by unexpected water ingress :(
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Hi Jon,

I finally managed to recover my Pi from its hiding place! I haved tried out the new script and played until my hands hurt. I didn't get it to crash out at all. Ending cut scenes early works. Changing music tracks works in config and in the game. Bouncing off of the top of the sky works.

Thank you so much!
sirbod
Posts: 1208
Joined: Mon Apr 09, 2012 9:44 am
Location: Essex
Contact:

Re: Starfighter3000 The Next Generation

Post by sirbod »

Thanks for confirming, I’ll tidy the script up and add it to the next release of ADFFS.
thecellartroll
Posts: 340
Joined: Thu Nov 24, 2011 10:43 pm
Contact:

Re: Starfighter3000 The Next Generation

Post by thecellartroll »

Pleased to confirm it also works splendidly on Pi400 under RO 5.28 :D
Post Reply

Return to “32-bit acorn software: classic games”