WHDLoad MantisBT - Beast
View Issue Details
0003498Beast[WHDLoad Installs Games] slavepublic2016-08-01 16:232019-10-28 20:48
Assigned ToCFOU 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
GFXCardPicasso II
ChipMem2 MB
FastMem0 MB
WorkbenchOS 3.9
KickROM40 - Kick 3.1
Summary0003498: 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 Filesjpg Beast_trashed_gfx.jpg (124,116) 2016-08-01 16:23

jpg Winuae Screenshot 2019.10.25 - (149,327) 2019-10-25 10:45

? ShadowOfTheBeast.slave (3,680) 2019-10-28 20:48

2016-08-04 20:23   
(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:

EDIT: tested myself and confirmed.

2016-08-06 19:58   
i have this very same problem on real hardware. Maybe JOTD can have a look at this?
2017-04-10 23:06   
errr, that's really too minor to bother about that
2017-04-23 10:42   
Just wanted to say Codetapper probably found also the exact reason behind the bug...

Maybe you can collaborate to fix once and for all this Amiga classic.
Still hoping for a fix, maybe one day... ;)
2018-01-22 11:12   
...in the meanwhile with WinUAE I've found is possible to fix also that glitch using these tooltypes for the WHDLoad slave:

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

chipset ecs_denise did the trick!
2019-03-12 17:49   
Is it possible to force "chipset ECS" mode in the slave? This will automagically solve also the tree sprite issue in the main menu.
2019-03-12 17:49   
ECS Denise mode to be exact (with WinUAE this removes the sprite bug)
2019-10-25 01:35   
(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

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 ;)

2019-10-25 02:34   
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 ;)
2019-10-25 02:55   
Would be great, after all these years for a great classic like Beast! :)
2019-10-25 03:45   
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

5) Tree sprite is fixed!!!!!
2019-10-25 04:10   
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)
2019-10-25 09:20   
Can you send me picture of following gfx glitches?

=>left border 1 pixel vertical lines glitches
2019-10-25 09:50   
(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.

2019-10-25 10:45   
Attached left border glitch screenshot.
2019-10-25 10:52   
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?
2019-10-25 12:15   
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 ;-) )
2019-10-25 14:36   
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.
2019-10-25 15:10   
Just tested. Doesn't fix the tree bug unfortunately
2019-10-25 16:03   
(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:

2019-10-25 22:30   

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:
2019-10-25 22:31   
beta 0B
2019-10-25 23:03   
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! ;)
2019-10-26 00:15   
if you can reproduct vertical line (sprite?) can you send to me screenshot
2019-10-26 00:54   
and I see for a millisecond something flashing in the upper left-right corners of the loading pic when it appears.
2019-10-26 02:47   
Hi can you test last version and both method?.

normaly sprite bug on loading screen fixed
2019-10-26 20:30   
fix with 2.3
2019-10-28 20:48   
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?

Issue History
2016-08-01 16:23HexaaeNew Issue
2016-08-01 16:23HexaaeFile Added: Beast_trashed_gfx.jpg
2016-08-04 20:23HexaaeNote Added: 0005151
2016-08-04 20:23HexaaeNote Edited: 0005151bug_revision_view_page.php?bugnote_id=5151#r827
2016-08-04 21:08HexaaeNote Edited: 0005151bug_revision_view_page.php?bugnote_id=5151#r828
2016-08-06 19:58DenisNote Added: 0005164
2017-04-10 23:06JOTDAssigned To => JOTD
2017-04-10 23:06JOTDStatusnew => closed
2017-04-10 23:06JOTDResolutionopen => won't fix
2017-04-10 23:06JOTDNote Added: 0005550
2017-04-23 10:42HexaaeStatusclosed => feedback
2017-04-23 10:42HexaaeResolutionwon't fix => reopened
2017-04-23 10:42HexaaeNote Added: 0005571
2018-01-22 11:12HexaaeNote Added: 0005997
2018-01-22 11:12HexaaeStatusfeedback => assigned
2019-03-12 17:49HexaaeNote Added: 0006748
2019-03-12 17:49HexaaeNote Added: 0006749
2019-08-08 22:17JOTDAssigned ToJOTD =>
2019-10-25 01:35CFOUNote Added: 0007198
2019-10-25 01:45CFOUAssigned To => CFOU
2019-10-25 01:51CFOUNote Edited: 0007198bug_revision_view_page.php?bugnote_id=7198#r1034
2019-10-25 01:57CFOUNote Edited: 0007198bug_revision_view_page.php?bugnote_id=7198#r1035
2019-10-25 02:34CFOUNote Added: 0007199
2019-10-25 02:55HexaaeNote Added: 0007200
2019-10-25 03:45CFOUNote Added: 0007201
2019-10-25 04:10HexaaeNote Added: 0007203
2019-10-25 09:20CFOUNote Added: 0007204
2019-10-25 09:50CFOUNote Added: 0007205
2019-10-25 09:51CFOUNote Edited: 0007205bug_revision_view_page.php?bugnote_id=7205#r1037
2019-10-25 10:35CFOUNote Edited: 0007205bug_revision_view_page.php?bugnote_id=7205#r1038
2019-10-25 10:45HexaaeFile Added: Winuae Screenshot 2019.10.25 -
2019-10-25 10:45HexaaeNote Added: 0007206
2019-10-25 10:52CFOUNote Added: 0007207
2019-10-25 12:15HexaaeNote Added: 0007208
2019-10-25 14:36CFOUFile Added: Beast.slave
2019-10-25 14:36CFOUNote Added: 0007210
2019-10-25 15:10HexaaeNote Added: 0007211
2019-10-25 16:03CFOUNote Added: 0007212
2019-10-25 16:23CFOUNote Edited: 0007212bug_revision_view_page.php?bugnote_id=7212#r1040
2019-10-25 22:30CFOUFile Added: Beast-2.slave
2019-10-25 22:30CFOUNote Added: 0007215
2019-10-25 22:31CFOUFile Deleted: Beast.slave
2019-10-25 22:31CFOUFile Deleted: Beast-2.slave
2019-10-25 22:31CFOUFile Added: Beast.slave
2019-10-25 22:31CFOUNote Added: 0007216
2019-10-25 23:03HexaaeNote Added: 0007217
2019-10-26 00:15CFOUNote Added: 0007221
2019-10-26 00:54HexaaeNote Added: 0007222
2019-10-26 02:46CFOUFile Deleted: Beast.slave
2019-10-26 02:47CFOUFile Added: Beast.slave
2019-10-26 02:47CFOUNote Added: 0007223
2019-10-26 20:30CFOUStatusassigned => closed
2019-10-26 20:30CFOUNote Added: 0007224
2019-10-28 20:48CFOUFile Added: ShadowOfTheBeast.slave
2019-10-28 20:48CFOUNote Added: 0007234
2019-10-28 20:48CFOUFile Deleted: Beast.slave