WHDLoad MantisBT - Logical
View Issue Details
0006376Logical[WHDLoad Installs Games] OCSpublic2024-01-15 01:052025-09-01 13:20
Reporterpadrino 
Assigned ToCFOU 
PrioritynormalSeverityfeatureReproducibilityhave not tried
StatusassignedResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
MachineA1200
CPU68020
CPUSpeed50
ChipSetAGA
GFXCardNone
ChipMem2 MB
FastMem0 MB
WorkbenchOS 3.0
KickROM40 - Kick 3.1
KickSoftNone
WHDLoad18.9
imported
Summary0006376: Add a "trainer" for colour blind people
DescriptionRecently it came to my attention that colour blind people might have a hard time to play this game.
So I wondered if it might be possible to add a "trainer", so that colours could be set/changed? =)
Guess that would be awesome. 8)
TagsNo tags attached.
Attached Files? logical.iff (33,564) 2025-08-06 16:25
https://whdload.de/mantis/file_download.php?file_id=1927&type=bug
png logical_mod.png (38,878) 2025-08-10 16:58
https://whdload.de/mantis/file_download.php?file_id=1928&type=bug
png

png logical_sprites.png (56,278) 2025-08-12 00:13
https://whdload.de/mantis/file_download.php?file_id=1929&type=bug
png

png Logical (1).png (111,575) 2025-08-20 13:35
https://whdload.de/mantis/file_download.php?file_id=1930&type=bug
png

png logical_colorblind.png (41,055) 2025-08-20 13:46
https://whdload.de/mantis/file_download.php?file_id=1931&type=bug
png

png logical_v1.4.png (7,841) 2025-08-20 14:08
https://whdload.de/mantis/file_download.php?file_id=1932&type=bug
png

Notes
(0014585)
HenryTails   
2025-08-06 16:25   
Padrino, please list all types of color blindness.
For every one describe how it affects game.
Then point which types of such disabilities you want to take care of.
Also describing scientific testing of game fixes in that area would be very nice.

Game allows for graphics theming using following files:
  kristall.ECL
  marmor.ECL
  Stein.ECL
  holz1.ECL
They contain colors and artwork (ball shapes).

For start we can alter colors.
I've attached image. Open it in Deluxe Paint or any other pixel-art graphics program which supports indexed colors and palette modification.
Editing shades of green blue and red colors should affect other elements in a limited way. Focus on them first.
I'm expecting from you list containing following fields:
  color_index, original_color_rgb, new_color_rgb

As for ball shapes. We can make them triangles, squares, crosses, etc.
But it needs much more work as described here: https://eab.abime.net/showthread.php?t=121058
(0014587)
HenryTails   
2025-08-10 16:58   
Converter completed.
You can change palette and graphics.
Ball shape might be troublesome cause there is only one mask for balls of all colors (have to verify).
Image attached.
(0014588)
padrino   
2025-08-10 17:23   
Hi Henry,

first, it's "padrino", with a small "p". ;)

Now, to the really important stuff...

Wow, you are too fast for me. =)

I was still gathering information, back an forth and now you're already done. 8)

Thanks for picking up this project!

I will spread the work and looking forward to the release version.
(0014589)
HenryTails   
2025-08-10 17:51   
> I was still gathering information, back an forth and now you're already done. 8)
I'm done regards technical aspects.
Still need feedback from you as described in post from 2025-08-06.
I can't move any further without it.
(0014591)
HenryTails   
2025-08-12 00:13   
Regards custom shapes.
Game uses Amiga Sprites for moving balls.
But due to hardware limitations (or author laziness) last moving ball is drawn using blitter.
As shown in attached image, custom shapes for sprites are possible.
But last (fourth) user controlled ball is drawn using blitter with transparency mask which is shared across all balls. No custom shape there.
Yellow ball at the top - sprite.
Yellow ball at the middle of the screen - blitter.
I don't see any 'easy' remedy here.

But for now lets focus on fixing colors.
(0014592)
padrino   
2025-08-19 13:54   
Hi,

finally got some feedback form the guy from whom pointed out the problem to friend... :)

yellow:
20: 15/14/0 -> 15/15/0
21: 12/9/1 -> 13/10/1
22: 10/5/1 -> 12/6/1

blue:
23: 0/9/15 -> 0/10/15
24: 0/6/12 -> 0/7/13
25: 0/4/8 -> 0/5/10

green:
26: 0/13/0 -> 0/11/0
27: 0/10/0 -> 0/8/0
28: 0/7/0 -> 0/5/0

I wonder, as a general approach, would it be possible to have desired values maybe just set in the tool types, as whd does other custom settings?

BTW, changing shapes, imo, is not really needed, especially as it would quite alter the game. Changing colours is a very subtle change.
(0014593)
padrino   
2025-08-19 13:57   
Oh, there seems to be a game called "Zuma's Revenge" which does have a colour blind mode/setting.
Maybe it could be taken as inspiration or hint for colour changes?
(don't know the game, was just brought to my attention)
(0014594)
HenryTails   
2025-08-20 12:50   
It is not that easy.
Amiga architecture allows for many scenarios regards color management on the screen.
There is not one, universal way which could be patched by whdload-colorblind-feature.
Just check source of the slave for new logical release (in a few days).
I'm using custom code to hijack color processing in the right place of code.

One step above would be to utilize some sort of filter/shader in any Amiga emulator (hardware or software).
But there is not one magic mapping which will solve this issue once and for all cases.
Otherwise every modern game would use it today. Which is not the case unfortunately.

Proper approach is to walk backwards by using tools which will change monitor color profile to one and every colorblindness type and allow for fast swapping between them.
Then, looking at the results, alter game assets to make them more resilient to such color degradation.
(0014595)
padrino   
2025-08-20 13:35   
Well, I was just quoting that other game, cause I thought, maybe it could show what colours it changes and to what and not how it does that. ;)

Anyway, someone on the a1k forum suggest to "just hex ed" the file "Kristall.ecl" and supplied attached image.

I am no coder, so I unfortunately don't know how you tackle the problem.
I just thought when you modify those value you mentioned,it would make no difference if you had a fixed change, or if your read pre-start values to use from datatype.
(0014596)
HenryTails   
2025-08-20 13:46   
Image attached - game running with altered palette.
(0014597)
HenryTails   
2025-08-20 13:56   
> Anyway, someone on the a1k forum suggest to "just hex ed" the file "Kristall.ecl" and supplied attached image.

You have to modify 4 ECL files for every 'graphic set' game supports.
Then these files should be distributed with whdload Install.
This is not very professional and might rise some legal questions regards distributing copyright material (even if it is abandonware).

> I just thought when you modify those value you mentioned,it would make no difference if you had a fixed change, or if your read pre-start values to use from datatype.

Tell me how can I read datatypes from slave. Code example would be fine.
Custom1-5 variables might be not enough to fit all color data.
(0014598)
HenryTails   
2025-08-20 14:08   
Changes + new slave file:
https://github.com/HenryTails/amiga_whdload/commit/4b0ff77de1145f1aefc40b7aa1efc295f26d2361

Let me know how it works.
(0014599)
padrino   
2025-08-20 23:19   
I can pass this on, as I am unable to test this myself?
(0014600)
padrino   
2025-08-28 18:28   
Ok, got feedback from the guy who's remark got this rolling... and, he's happy.
He can finally play the game after all those years!
Let me say "thank you", on his behalf too, for looking into this and making it happen. =)
If I get further feedback from other colour blind people I'll report.
(0014601)
padrino   
2025-08-28 18:36   
Concerning the tool types, sorry, don't know how WHD works.
Just saw there are so many in the wild, that I assumed, could be used for this.
Don't know technical limitations (like max length, allowed characters) either.
Thought maybe, if the values are restricted to be always 6 digits per RGB...
(0014602)
HenryTails   
2025-08-28 22:06   
That is great news!
Thanks for field test.
(0014606)
DJ Mike   
2025-09-01 13:20   
Custom tooltypes are probably too limited for what you want to do here. I would suggest storing in a separate file and loading on startup, but I accept that you would need to parse+validate yourself with that solution.

Issue History
2024-01-15 01:05padrinoNew Issue
2024-01-17 21:33StingRayAssigned To => CFOU
2024-01-17 21:33StingRayStatusnew => assigned
2025-08-06 16:25HenryTailsFile Added: logical.iff
2025-08-06 16:25HenryTailsNote Added: 0014585
2025-08-10 16:58HenryTailsFile Added: logical_mod.png
2025-08-10 16:58HenryTailsNote Added: 0014587
2025-08-10 17:23padrinoNote Added: 0014588
2025-08-10 17:51HenryTailsNote Added: 0014589
2025-08-12 00:13HenryTailsFile Added: logical_sprites.png
2025-08-12 00:13HenryTailsNote Added: 0014591
2025-08-19 13:54padrinoNote Added: 0014592
2025-08-19 13:57padrinoNote Added: 0014593
2025-08-20 12:50HenryTailsNote Added: 0014594
2025-08-20 13:35padrinoFile Added: Logical (1).png
2025-08-20 13:35padrinoNote Added: 0014595
2025-08-20 13:46HenryTailsFile Added: logical_colorblind.png
2025-08-20 13:46HenryTailsNote Added: 0014596
2025-08-20 13:56HenryTailsNote Added: 0014597
2025-08-20 14:08HenryTailsFile Added: logical_v1.4.png
2025-08-20 14:08HenryTailsNote Added: 0014598
2025-08-20 23:19padrinoNote Added: 0014599
2025-08-28 18:28padrinoNote Added: 0014600
2025-08-28 18:36padrinoNote Added: 0014601
2025-08-28 22:06HenryTailsNote Added: 0014602
2025-09-01 13:20DJ MikeNote Added: 0014606