View Issue Details

IDProjectCategoryView StatusLast Update
06376LogicalOCSpublic2025-09-01 13:20
Reporterpadrino Assigned ToCFOU  
PrioritynormalSeverityfeatureReproducibilityhave not tried
Status assignedResolutionopen 
Project InfoLogical (Rainbow Arts)
http://www.whdload.de/games/Logical.html
Summary06376: 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 (1).png (111,575 bytes)   
Logical (1).png (111,575 bytes)   
MachineA1200
CPU68020
CPUSpeed50
ChipSetAGA
GFXCardNone
ChipMem2 MB
FastMem0 MB
WorkbenchOS 3.0
KickROM40 - Kick 3.1
KickSoftNone
WHDLoad18.9
imported

Activities

HenryTails

HenryTails

2025-08-06 16:25

reporter   note ~14585

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
logical.iff (33,564 bytes)
HenryTails

HenryTails

2025-08-10 16:58

reporter   note ~14587

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.
logical_mod.png (38,878 bytes)   
logical_mod.png (38,878 bytes)   
padrino

padrino

2025-08-10 17:23

reporter   note ~14588

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.
HenryTails

HenryTails

2025-08-10 17:51

reporter   note ~14589

> 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.
HenryTails

HenryTails

2025-08-12 00:13

reporter   note ~14591

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.
logical_sprites.png (56,278 bytes)   
logical_sprites.png (56,278 bytes)   
padrino

padrino

2025-08-19 13:54

reporter   note ~14592

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.
padrino

padrino

2025-08-19 13:57

reporter   note ~14593

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

HenryTails

2025-08-20 12:50

reporter   note ~14594

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.
padrino

padrino

2025-08-20 13:35

reporter   note ~14595

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.
HenryTails

HenryTails

2025-08-20 13:46

reporter   note ~14596

Image attached - game running with altered palette.
logical_colorblind.png (41,055 bytes)   
logical_colorblind.png (41,055 bytes)   
HenryTails

HenryTails

2025-08-20 13:56

reporter   note ~14597

> 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.
HenryTails

HenryTails

2025-08-20 14:08

reporter   note ~14598

Changes + new slave file:
https://github.com/HenryTails/amiga_whdload/commit/4b0ff77de1145f1aefc40b7aa1efc295f26d2361

Let me know how it works.
logical_v1.4.png (7,841 bytes)   
logical_v1.4.png (7,841 bytes)   
padrino

padrino

2025-08-20 23:19

reporter   note ~14599

I can pass this on, as I am unable to test this myself?
padrino

padrino

2025-08-28 18:28

reporter   note ~14600

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.
padrino

padrino

2025-08-28 18:36

reporter   note ~14601

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...
HenryTails

HenryTails

2025-08-28 22:06

reporter   note ~14602

That is great news!
Thanks for field test.
DJ Mike

DJ Mike

2025-09-01 13:20

developer   note ~14606

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

Date Modified Username Field Change
2024-01-15 01:05 padrino New Issue
2024-01-17 21:33 StingRay Assigned To => CFOU
2024-01-17 21:33 StingRay Status new => assigned
2025-08-06 16:25 HenryTails File Added: logical.iff
2025-08-06 16:25 HenryTails Note Added: 0014585
2025-08-10 16:58 HenryTails File Added: logical_mod.png
2025-08-10 16:58 HenryTails Note Added: 0014587
2025-08-10 17:23 padrino Note Added: 0014588
2025-08-10 17:51 HenryTails Note Added: 0014589
2025-08-12 00:13 HenryTails File Added: logical_sprites.png
2025-08-12 00:13 HenryTails Note Added: 0014591
2025-08-19 13:54 padrino Note Added: 0014592
2025-08-19 13:57 padrino Note Added: 0014593
2025-08-20 12:50 HenryTails Note Added: 0014594
2025-08-20 13:35 padrino File Added: Logical (1).png
2025-08-20 13:35 padrino Note Added: 0014595
2025-08-20 13:46 HenryTails File Added: logical_colorblind.png
2025-08-20 13:46 HenryTails Note Added: 0014596
2025-08-20 13:56 HenryTails Note Added: 0014597
2025-08-20 14:08 HenryTails File Added: logical_v1.4.png
2025-08-20 14:08 HenryTails Note Added: 0014598
2025-08-20 23:19 padrino Note Added: 0014599
2025-08-28 18:28 padrino Note Added: 0014600
2025-08-28 18:36 padrino Note Added: 0014601
2025-08-28 22:06 HenryTails Note Added: 0014602
2025-09-01 13:20 DJ Mike Note Added: 0014606