Skip to content

Commit 2fcdeb9

Browse files
committed
scripts
1 parent 830e42b commit 2fcdeb9

5 files changed

Lines changed: 73 additions & 10 deletions

File tree

app/formats/scripts/load.js

Whitespace-only changes.

scripts/sonic1.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ const {
1111
dc,
1212
} = Flex2;
1313

14+
label('Sonic 1');
1415
info();
15-
offsetTable(dc.b);
16+
offsetTable(dc.w);
1617
mappingHeader(
1718
(_mappings) => read(dc.b),
1819
(mappings) => write(dc.b, mappings.length),

scripts/sonic2.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
// Flex2 mapping definition - sonic 2 object sprites
1+
// Flex2 mapping definition
22

33
const {
4+
label,
45
info,
56
offsetTable,
67
mapping,
@@ -11,6 +12,7 @@ const {
1112
dc,
1213
} = Flex2;
1314

15+
label('Sonic 2');
1416
info();
1517
offsetTable(dc.w);
1618
mappingHeader(
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
// Flex2 mapping definition - sonic 2 object sprites
1+
// Flex2 mapping definition
22

33
const {
4+
label,
45
info,
56
offsetTable,
67
mapping,
@@ -11,6 +12,7 @@ const {
1112
dc,
1213
} = Flex2;
1314

15+
label('Sonic 3&K');
1416
info();
1517
offsetTable(dc.w);
1618
mappingHeader(
@@ -28,7 +30,6 @@ mappings(
2830
mapping.yflip = read(1);
2931
mapping.xflip = read(1);
3032
mapping.offset = read(1);
31-
read(dc.w);
3233
mapping.left = read(dc.l);
3334
},
3435
(mapping) => {
@@ -44,12 +45,6 @@ mappings(
4445
write(1, mapping.yflip);
4546
write(1, mapping.xflip);
4647
write(11, mapping.offset);
47-
// 2 player
48-
write(1, mapping.priority);
49-
write(2, mapping.palette);
50-
write(1, mapping.yflip);
51-
write(1, mapping.xflip);
52-
write(11, Math.floor(mapping.offset / 2));
5348
// left
5449
write(dc.w, mapping.left);
5550
},

scripts/soniccd.js

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// Flex2 mapping definition
2+
3+
const {
4+
label,
5+
info,
6+
offsetTable,
7+
mapping,
8+
mappingHeader,
9+
write,
10+
read,
11+
nybble,
12+
dc,
13+
} = Flex2;
14+
15+
label('Sonic CD');
16+
info();
17+
offsetTable(dc.w);
18+
mappingHeader(
19+
(_mappings) => read(dc.b),
20+
(mappings) => write(dc.b, mappings.length),
21+
);
22+
mappings(
23+
(mapping) => {
24+
mapping.top = read(dc.b);
25+
read(nybble);
26+
mapping.width = read(2) + 1;
27+
mapping.height = read(2) + 1;
28+
mapping.priority = read(1);
29+
mapping.palette = read(2);
30+
mapping.yflip = read(1);
31+
mapping.xflip = read(1);
32+
mapping.offset = read(1);
33+
mapping.left = read(dc.l);
34+
},
35+
(mapping) => {
36+
// top
37+
write(dc.b, mapping.top);
38+
write(nybble, 0);
39+
// size
40+
write(2, mapping.width - 1);
41+
write(2, mapping.height - 1);
42+
// 1 player
43+
write(1, mapping.priority);
44+
write(2, mapping.palette);
45+
write(1, mapping.yflip);
46+
write(1, mapping.xflip);
47+
write(11, mapping.offset);
48+
// left
49+
write(dc.w, mapping.left);
50+
},
51+
);
52+
dplcHeader(
53+
(_dplcs) => read(dc.w),
54+
(dplcs) => write(dc.w, dplcs.length),
55+
);
56+
dplcs(
57+
(dplc) => {
58+
dplc.size = read(nybble);
59+
dplc.offset = read(nybble * 3);
60+
},
61+
(dplc) => {
62+
write(nybble, dplc.size);
63+
write(nybblr * 3, dplc.offset);
64+
},
65+
);

0 commit comments

Comments
 (0)