The idea beyond your workaround is very good and seems that work fine :clap:
Btw, this is my modified function I have added to the rtl:
[pascal]{ CPU detecting function (thanks to 21o6):
----------------------------------------
"You see, the ARM7 can't write to bank A of VRAM, but it doesn't give any
error ... it just doesn't write there... so it's easily determinable what
CPU is running the code"}
function IsARM9(): boolean;
var
Dummy : pword absolute $06800000;
begin
Dummy^ := $C0DE;
IsARM9 := Dummy^ = $C0DE;
end;

...

if IsARM9 then
fpc_cpucodeinit;[/pascal]
(Please, note the g33k value :cylon: :mrgreen