View Issue Details

IDProjectCategoryView StatusLast Update
03498Beastslavepublic2019-10-28 20:48
ReporterHexaae Assigned ToCFOU  
PrioritylowSeveritytweakReproducibilityalways
Status closedResolutionreopened 
Project InfoShadow of the Beast (Psygnosis)
http://www.whdload.de/games/Beast.html
Summary03498: Trashed tree in parallax scrolling
DescriptionI've noticed (many years ago) the parallax tree sprite looks trashed in the original version of this game... (attached sshot).
Would be possible to fix it once and for all or is it too complicated?
TagsNo tags attached.
Attached Files
Beast_trashed_gfx.jpg (124,116 bytes)   
Beast_trashed_gfx.jpg (124,116 bytes)   
MachineUAE
CPU68040
CPUSpeed50
ChipSetAGA
GFXCardPicasso II
ChipMem2 MB
FastMem0 MB
WorkbenchOS 3.9
KickROM40 - Kick 3.1
KickSoftOther
WHDLoad18.2
imported

Activities

Hexaae

Hexaae

2016-08-04 20:23

reporter   note ~05151

Last edited: 2016-08-04 21:08

Looks like a chipset related issue.
Here Toni stated the problem disappears setting OCS chipset emulation on WinUAE:
http://eab.abime.net/showthread.php?p=727664&styleid=4&styleid=1

EDIT: tested myself and confirmed.

Denis

Denis

2016-08-06 19:58

reporter   note ~05164

i have this very same problem on real hardware. Maybe JOTD can have a look at this?
JOTD

JOTD

2017-04-10 23:06

developer   note ~05550

errr, that's really too minor to bother about that
Hexaae

Hexaae

2017-04-23 10:42

reporter   note ~05571

Just wanted to say Codetapper probably found also the exact reason behind the bug...
http://codetapper.com/amiga/sprite-tricks/shadow-of-the-beast/

Maybe you can collaborate to fix once and for all this Amiga classic.
Still hoping for a fix, maybe one day... ;)
Hexaae

Hexaae

2018-01-22 11:12

reporter   note ~05997

...in the meanwhile with WinUAE I've found is possible to fix also that glitch using these tooltypes for the WHDLoad slave:

ExecuteStartup=
ExecutePostDisk=UAE-configuration cachesize 0 cycle_exact true cpu_multiplier 4 chipset ecs_denise

chipset ecs_denise did the trick!
Hexaae

Hexaae

2019-03-12 17:49

reporter   note ~06748

Is it possible to force "chipset ECS" mode in the slave? This will automagically solve also the tree sprite issue in the main menu.
Hexaae

Hexaae

2019-03-12 17:49

reporter   note ~06749

ECS Denise mode to be exact (with WinUAE this removes the sprite bug)
CFOU

CFOU

2019-10-25 01:35

developer   note ~07198

Last edited: 2019-10-25 01:57

try something fun:

1) launch Beast 1 in WinAUE
2) wait to get main scrollings screen (with Trashed tree in parallax scrolling)
3) enter in Winuae debugger
(in general Shilf+F12 =>but Warning, WINUAE must be in windows mode to see debugger external screen)
4) type in debugger prompt:
W 283AC 00960020.L
W 28444 F80FFFFE.L 00968020.L FFFFFFFE.L
g

5) Tree sprite is fixed!!!!!

PS: it's just a joke, because i erase good datas in copperlist (it's cause gfx bugs in loading screen. But it's first step to fix it;)

PS2: in fact, i disable DMA sprite after tree and enable DMA sprite at the end of the screen ;)

CFOU

CFOU

2019-10-25 02:34

developer   note ~07199

I think that I found a solution to integrate the tree sprite fix properly.

I'm going to ask JOTD, if he agrees that I integrate it to his whdload's slave via a CUSTOM option ;)
Hexaae

Hexaae

2019-10-25 02:55

reporter   note ~07200

Would be great, after all these years for a great classic like Beast! :)
CFOU

CFOU

2019-10-25 03:45

developer   note ~07201

Try proper solution using copperlist2 (loading screen not corrupted)

1) launch Beast 1 in WinAUE
2) wait to get main scrollings screen (with Trashed tree in parallax scrolling)
3) enter in Winuae debugger
(in general Shilf+F12 =>but Warning, WINUAE must be in windows mode to see debugger external screen)
4) type in debugger prompt:
W 283AC 00960020.L
W 28438 00860400.L
W 400 F80FFFFE.L 00968020.L FFFFFFFE.L
W 28444 008A0000.L
g

5) Tree sprite is fixed!!!!!
Hexaae

Hexaae

2019-10-25 04:10

reporter   note ~07203

Nice, it works! :D

Switching temporarily to ECS in WinUAE is still better though since it fixes also left border 1 pixel vertical lines glitches... (visible only in AGA mode)
CFOU

CFOU

2019-10-25 09:20

developer   note ~07204

Can you send me picture of following gfx glitches?

=>left border 1 pixel vertical lines glitches
CFOU

CFOU

2019-10-25 09:50

developer   note ~07205

Last edited: 2019-10-25 10:35

In fact, i have simply disable DMA sprite after end of tree during raster display and enable DMA sprite in the bottom black part of the screen.

Other solution would had consisted to fix DMA sprite End(Stop) via SPRxCTL in sprite structure.

I had done that for Ballistix to fix bubble sprites(see http://www.whdload.de/games/Ballistix.html).

But it was more longer to done because tree use several sprites.

Hexaae

Hexaae

2019-10-25 10:45

reporter   note ~07206

Attached left border glitch screenshot.
CFOU

CFOU

2019-10-25 10:52

developer   note ~07207

I had never noticed that.

It may be only under UAE.

Is it the same thing on a real amiga?

do you know which hardware is affected?
Hexaae

Hexaae

2019-10-25 12:15

reporter   note ~07208

Yes was confirmed on EAB on real HW, happens only in AGA mode.
If you switch to OCS/ECS before you run the game you won't notice it.

(Would be great if someone could add also a delay pause at screen "Alestes metamorphoses into a owl..." when you press fire, for the WHDLoad version ;-) )
CFOU

CFOU

2019-10-25 14:36

developer   note ~07210

Can you test Beta slave?

For moment, only method using temporary DMA sprites disable supported.

Indeed more simple implementation, because no code modification needed.
Just to install it before launch main game code.

here slave patch code:

lea $400,a0 ; initialise new copperlist2
move.l #$F80FFFFE,(a0)+ ; wait bottom of screen
move.l #$00968020,(a0)+ ; restore sprite
move.l #$018000f0,(a0)+ ; green flash for test position
move.l #$ffffFFFE,(a0)+ ; CopperList end

move.l #$00960020,$283ac ; disable DMA Sprite after to have display tree sprites=>replace 00F40007 it"s not needed because BPL6PTL already to 0007 and not change....
; move.l #$00860400,$28438 , define copperlist2 adress to $400
move.l #$008a0000,$28444 , jump to CopperList2 at the end of copperlist1=>replace $FFFFFFFE end of copperlist1

move.l #$400,$DFF084 ; force copperlist2

JMP $1E986
For second method (SPRxCTL fix), it's need code modifications, it seems Sprites structure are not present at $46xxx memory area, at this step.

prehaps sprites are not again initialised....

I investigate.
Hexaae

Hexaae

2019-10-25 15:10

reporter   note ~07211

Just tested. Doesn't fix the tree bug unfortunately
CFOU

CFOU

2019-10-25 16:03

developer   note ~07212

Last edited: 2019-10-25 16:23

working here:

but you must:
- use custom2=1 tooltype
  or on whdload's splash windows select:
 "Tree sprite fix without ECS Denise: Disable DMA Sprites (CFou!)"

Working for moment only with one verison of game (not tested with other).

If patch installed correctly main sceolling screen must be green at TOP & bottom

see for snapshots:
http://eab.abime.net/showpost.php?p=1354118&postcount=68

CFOU

CFOU

2019-10-25 22:30

developer   note ~07215

Hi,

Can you test new beta slave?
To fix tree sprite bug
CUSTOM1=0 ; nothing changed (for ECS Denise)
CUSTOM1=1 ; Disable DMA Sprites temporary via not used copperlist2
CUSTOM2=2 ; SPRxCTL fix (Toni's solution)

Ross's enhancement included in both cases to see:
http://eab.abime.net/showpost.php?p=...2&postcount=57
CFOU

CFOU

2019-10-25 22:31

developer   note ~07216

beta 0B
Hexaae

Hexaae

2019-10-25 23:03

reporter   note ~07217

Works fine! Thank you!
I prefer mode 2: once I got a vertical line in the first loading scree with mode 1 I've not been able to reproduce though...

Only remaining bugs are the borders now! ;)
CFOU

CFOU

2019-10-26 00:15

developer   note ~07221

if you can reproduct vertical line (sprite?) can you send to me screenshot
Hexaae

Hexaae

2019-10-26 00:54

reporter   note ~07222

https://i.ibb.co/qY2HknZ/image.png
and I see for a millisecond something flashing in the upper left-right corners of the loading pic when it appears.
CFOU

CFOU

2019-10-26 02:47

developer   note ~07223

Hi can you test last version and both method?.

normaly sprite bug on loading screen fixed
CFOU

CFOU

2019-10-26 20:30

developer   note ~07224

fix with 2.3
CFOU

CFOU

2019-10-28 20:48

developer   note ~07234

Final i think it's finished =>borders seems fixed too

All game (with AGA +sub-pixel option) has been tested up to the static end screen!

it Seems ok.

Can you test ?
Have you possibility to test it on real amiga?
ShadowOfTheBeast.slave (3,680 bytes)

Issue History

Date Modified Username Field Change
2016-08-01 16:23 Hexaae New Issue
2016-08-01 16:23 Hexaae File Added: Beast_trashed_gfx.jpg
2016-08-04 20:23 Hexaae Note Added: 0005151
2016-08-04 20:23 Hexaae Note Edited: 0005151
2016-08-04 21:08 Hexaae Note Edited: 0005151
2016-08-06 19:58 Denis Note Added: 0005164
2017-04-10 23:06 JOTD Assigned To => JOTD
2017-04-10 23:06 JOTD Status new => closed
2017-04-10 23:06 JOTD Resolution open => won't fix
2017-04-10 23:06 JOTD Note Added: 0005550
2017-04-23 10:42 Hexaae Status closed => feedback
2017-04-23 10:42 Hexaae Resolution won't fix => reopened
2017-04-23 10:42 Hexaae Note Added: 0005571
2018-01-22 11:12 Hexaae Note Added: 0005997
2018-01-22 11:12 Hexaae Status feedback => assigned
2019-03-12 17:49 Hexaae Note Added: 0006748
2019-03-12 17:49 Hexaae Note Added: 0006749
2019-08-08 22:17 JOTD Assigned To JOTD =>
2019-10-25 01:35 CFOU Note Added: 0007198
2019-10-25 01:45 CFOU Assigned To => CFOU
2019-10-25 01:51 CFOU Note Edited: 0007198
2019-10-25 01:57 CFOU Note Edited: 0007198
2019-10-25 02:34 CFOU Note Added: 0007199
2019-10-25 02:55 Hexaae Note Added: 0007200
2019-10-25 03:45 CFOU Note Added: 0007201
2019-10-25 04:10 Hexaae Note Added: 0007203
2019-10-25 09:20 CFOU Note Added: 0007204
2019-10-25 09:50 CFOU Note Added: 0007205
2019-10-25 09:51 CFOU Note Edited: 0007205
2019-10-25 10:35 CFOU Note Edited: 0007205
2019-10-25 10:45 Hexaae File Added: Winuae Screenshot 2019.10.25 - 10.42.59.69.jpg
2019-10-25 10:45 Hexaae Note Added: 0007206
2019-10-25 10:52 CFOU Note Added: 0007207
2019-10-25 12:15 Hexaae Note Added: 0007208
2019-10-25 14:36 CFOU File Added: Beast.slave
2019-10-25 14:36 CFOU Note Added: 0007210
2019-10-25 15:10 Hexaae Note Added: 0007211
2019-10-25 16:03 CFOU Note Added: 0007212
2019-10-25 16:23 CFOU Note Edited: 0007212
2019-10-25 22:30 CFOU File Added: Beast-2.slave
2019-10-25 22:30 CFOU Note Added: 0007215
2019-10-25 22:31 CFOU File Deleted: Beast.slave
2019-10-25 22:31 CFOU File Deleted: Beast-2.slave
2019-10-25 22:31 CFOU File Added: Beast.slave
2019-10-25 22:31 CFOU Note Added: 0007216
2019-10-25 23:03 Hexaae Note Added: 0007217
2019-10-26 00:15 CFOU Note Added: 0007221
2019-10-26 00:54 Hexaae Note Added: 0007222
2019-10-26 02:46 CFOU File Deleted: Beast.slave
2019-10-26 02:47 CFOU File Added: Beast.slave
2019-10-26 02:47 CFOU Note Added: 0007223
2019-10-26 20:30 CFOU Status assigned => closed
2019-10-26 20:30 CFOU Note Added: 0007224
2019-10-28 20:48 CFOU File Added: ShadowOfTheBeast.slave
2019-10-28 20:48 CFOU Note Added: 0007234
2019-10-28 20:48 CFOU File Deleted: Beast.slave