Tactic (1990) (Eterna)

Download games the project has approval to release
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Tactic (1990) (Eterna)

Post by JonAbbott »

wmd wrote: Thu Aug 17, 2023 4:24 pm Tried that with a Shift+Power on and am still getting the crash.
Does it still lock when pressing M?
wmd
Posts: 120
Joined: Thu Feb 04, 2021 1:02 am

Re: Tactic (1990) (Eterna)

Post by wmd »

Tried enabling / disabling music with M on menu screen and in-game. Tried quite a few times over the course of a few minutes and no crash yet.
wmd
Posts: 120
Joined: Thu Feb 04, 2021 1:02 am

Re: Tactic (1990) (Eterna)

Post by wmd »

It eventually crashed again, but not when I was pressing M.

Another pattern I may have noticed - it always seems to crash while a new shape is spawning at the top of the screen. When shapes spawn, they gradually enlarge to their normal size (like a sprite scaling) - when the crash occurs the shape is not yet its full size.
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Tactic (1990) (Eterna)

Post by JonAbbott »

wmd wrote: Thu Aug 17, 2023 4:52 pm Tried enabling / disabling music with M on menu screen and in-game. Tried quite a few times over the course of a few minutes and no crash yet.
I've fixed the audio bug then. There must be another bug that's causing the random crash that I need to find.
wmd
Posts: 120
Joined: Thu Feb 04, 2021 1:02 am

Re: Tactic (1990) (Eterna)

Post by wmd »

Another observation - if you pause the game, it never freezes. I must have left it paused for over half an hour, and still no freeze. Normally it would freeze quite soon after starting when not paused.
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Tactic (1990) (Eterna)

Post by JonAbbott »

wmd wrote: Fri Aug 18, 2023 12:46 am Another observation - if you pause the game, it never freezes. I must have left it paused for over half an hour, and still no freeze. Normally it would freeze quite soon after starting when not paused.
Looking through the main code, it does use OS calls to print text while you're playing the game, so my initial thought is a combination of a change between RO2 and RO3 and the right SOE triggers register/stack corruption; the code then returns to an indeterminate address causing the hard-lock.

It's an odd one as I'd expect to see the issue under RO5. That said, when the game is run on StrongARM or newer, it's run under the ARM3 JIT, which Hypervises all SWI to look like RO2 in this case. I've explicitly set the emulation to RO2 for this game, but my game notes don't state why, so I'll try changing the RO emulation under RO5 to see if I can trigger a crash.
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Tactic (1990) (Eterna)

Post by JonAbbott »

wmd wrote: Thu Aug 17, 2023 5:06 pm it always seems to crash while a new shape is spawning at the top of the screen.
I've tracked it down to a section of elevated code that uses R13 as a spare register, but doesn't turn off IRQ around itself. If an IRQ occurs during that sequence, the OS causes an Address Exception when it tries to use the stack...that then causes a cascade of Aborts that can't be recovered from.

There's two ways to fix...de-elevate the game code or rewrite the routine to not use R13.

Could you try the latest obey.zip, I've de-elevated the code as it's quicker than rewriting the routine. Hopefully that will fix it as all the code that previously required elevation to alter VIDC/MEMC has been replaced with legal OS calls.
wmd
Posts: 120
Joined: Thu Feb 04, 2021 1:02 am

Re: Tactic (1990) (Eterna)

Post by wmd »

I left it in demonstration mode for 15 mins then played up to phase 6 and no crash so far! Also, about the timer, is it still set to 60 seconds? I think it might actually be correct as when you clear a contract pattern extra time is added back on to the timer, so to me it doesn't seem too unfair. Still worth you checking on the later version though just to be sure. Eitherway, many thanks for fixing.
JonAbbott
Posts: 2957
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Tactic (1990) (Eterna)

Post by JonAbbott »

wmd wrote: Fri Aug 18, 2023 3:31 pm about the timer, is it still set to 60 seconds? I think it might actually be correct as when you clear a contract pattern extra time is added back on to the timer
I've checked the timer code. It uses the following sequence:

Levels 1-6 50 seconds
Bonus level type 1
Levels 8-13 60 seconds
Bonus level type 2
Levels 15-20 70 seconds
Bonus level type 1
Levels 22-27 70 seconds
Bonus level type 1
Levels 29-34 80 seconds
Bonus level type 2
Levels 36-41 80 seconds
Bonus level type 1
Levels 43-48 90 seconds
Bonus level type 1
Levels 50-55 90 seconds
Bonus level type 2
Levels 57-61 98 seconds
Bonus level type 1
Level 63 100 seconds
Infinite level

I tried for 30 mins to get past level 3 with no luck, but I guess you just need to create sequences you don't need to keep adding to the timer.
wmd wrote: Fri Aug 18, 2023 3:31 pm many thanks for fixing.
:D
Post Reply