NX01: Fixed BE in T512/T64 and hinary, WIP printed lingua dial tones

This commit is contained in:
Willem Cazander 2026-01-26 02:29:08 +01:00
parent e69a13ec92
commit 7feb638a40
32 changed files with 1060 additions and 626 deletions

View file

@ -64,32 +64,32 @@ public enum LegoGearByteNative {
int v2 = (data[6] & 0xFF) + ((data[7] << SHIFT_8) & 0xFF00) + ((data[8] << SHIFT_16) & 0xFF0000);
// in-lined manual 3 loops for speed
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_8));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_1));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_2));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_3));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_4));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_5));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_6));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_7));
octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_8));
// todo recode back to block streaming (move octals in while)
}
@ -136,14 +136,14 @@ public enum LegoGearByteNative {
JediTempleBase8Iterator read = brickᐧtapeᐧrecordᐧχ3();
while (read.hasNextᴿᵈ().toNavajo()) {
int byteTriplet = 0;
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_1);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_2);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_3);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_4);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_5);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_6);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_7);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_8);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_1);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_2);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_3);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_4);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_5);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_6);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_7);
byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_8);
output.write(byteTriplet);
output.write(byteTriplet >> SHIFT_8);
output.write(byteTriplet >> SHIFT_16);

View file

@ -61,13 +61,16 @@ public final class V018Tord extends LegoBrickMould抽<T512ᖟ, T002ᖟ> implemen
}
public T008ᖟ legoᐧtuneᐧᗅᗷᗷᗅ(T006ᖟ part, T008ᖟ value) {
T002ᖟ tuneBy3 = part.clampᐧtuneᐧby3();
T003ᖟ tuneBy3M = part.clampᐧtuneᐧby3ᐧmod();
T512ᖟ valueBy3 = legoᐧtuneᐧᗅᗷᗷᗅ(tuneBy3);
if (value == null) {
return legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(part.clampᐧtuneᐧby3ᐧmod());
return valueBy3.clampᐧtuneᐧby3(tuneBy3M);
}
T008ᖟ value1 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_1);
T008ᖟ value2 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_2);
T008ᖟ value3 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_3);
switch (part.clampᐧtuneᐧby3ᐧmod()) {
T008ᖟ value1 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_1);
T008ᖟ value2 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_2);
T008ᖟ value3 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_3);
switch (tuneBy3M) {
case PART_1:
value1 = value;
break;
@ -79,7 +82,7 @@ public final class V018Tord extends LegoBrickMould抽<T512ᖟ, T002ᖟ> implemen
break;
}
T512ᖟ valueNew = T512ᖟ.valueOf(value1, value2, value3);
legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3(), valueNew);
legoᐧtuneᐧᗅᗷᗷᗅ(tuneBy3, valueNew);
return value;
}