Compare commits
1851 Commits
Author | SHA1 | Date |
---|---|---|
![]() |
e95b81f1f7 | |
![]() |
bbc61e0f38 | |
![]() |
4bca59daa5 | |
![]() |
93d248859f | |
![]() |
a9262868fc | |
![]() |
5d7b875629 | |
![]() |
0e42f9d561 | |
![]() |
eb781d290b | |
![]() |
62247f0dce | |
![]() |
410fbccb5a | |
![]() |
10eb794cfd | |
![]() |
360a163ad6 | |
![]() |
0b0961b804 | |
![]() |
50a314913f | |
![]() |
84704502bd | |
![]() |
cfe04fff88 | |
![]() |
95043a5864 | |
![]() |
05d1cff6eb | |
![]() |
aa5f4bc3a4 | |
![]() |
2751cc23f5 | |
![]() |
b698d4e317 | |
![]() |
1bbdbd4482 | |
![]() |
ae3a5988d0 | |
![]() |
2c71435c43 | |
![]() |
056f53ff4a | |
![]() |
eeb52e4027 | |
![]() |
51e813aa9a | |
![]() |
c302d99d1b | |
![]() |
abb46602ca | |
![]() |
9923d1b3a1 | |
![]() |
5fd0ba0d67 | |
![]() |
f108dd801d | |
![]() |
2dc4397c1b | |
![]() |
6a29f23ca5 | |
![]() |
9c9614e16d | |
![]() |
0d19cf1d5c | |
![]() |
2e0f926892 | |
![]() |
9c4c541c91 | |
![]() |
8c98eafc77 | |
![]() |
7607a5bea9 | |
![]() |
6221cd2d06 | |
![]() |
daf01b03d5 | |
![]() |
a9041b122f | |
![]() |
fc14b4b0da | |
![]() |
55f21cd951 | |
![]() |
d365312757 | |
![]() |
2e7918d8b2 | |
![]() |
92e10f31ea | |
![]() |
2dd11712db | |
![]() |
7fe4f4593e | |
![]() |
2c0e572841 | |
![]() |
ed64b35db7 | |
![]() |
e518a5ced0 | |
![]() |
4189a4d731 | |
![]() |
4cc49a6700 | |
![]() |
7012f9c666 | |
![]() |
311d9f3550 | |
![]() |
b8c890e1bc | |
![]() |
deb4f547fa | |
![]() |
8c2e2e1d46 | |
![]() |
6be223d84a | |
![]() |
762a54a388 | |
![]() |
159b0dc445 | |
![]() |
75dc290853 | |
![]() |
511437312c | |
![]() |
87bf982338 | |
![]() |
61d1dc742d | |
![]() |
d96ff26983 | |
![]() |
e3f3baed51 | |
![]() |
0880b007fa | |
![]() |
34c992eb23 | |
![]() |
3e5e20c6f0 | |
![]() |
a2fda7f441 | |
![]() |
f58f9746d7 | |
![]() |
77e50f7aec | |
![]() |
080a79fdee | |
![]() |
7643a044f4 | |
![]() |
838439dcef | |
![]() |
20dfbbbe55 | |
![]() |
419435c35b | |
![]() |
0ccd3c84dc | |
![]() |
d9aa7d5103 | |
![]() |
69ead6e3c9 | |
![]() |
ef6659d587 | |
![]() |
fe37fa2ab2 | |
![]() |
ee21e43bdb | |
![]() |
eb5fc371ff | |
![]() |
3c59429d96 | |
![]() |
e29b5ac047 | |
![]() |
4eb1dbca36 | |
![]() |
9f5c2aa00c | |
![]() |
39ced7dd81 | |
![]() |
132293449d | |
![]() |
23531e24b8 | |
![]() |
72ee6f9840 | |
![]() |
d55ee872e3 | |
![]() |
abb9bec571 | |
![]() |
6b5638efda | |
![]() |
4007e19736 | |
![]() |
ad0d3972a6 | |
![]() |
d82fc3dec1 | |
![]() |
08430fc058 | |
![]() |
39ab641953 | |
![]() |
1983d0f42c | |
![]() |
fb0fed21aa | |
![]() |
34e1ef45b6 | |
![]() |
0ca391cffc | |
![]() |
c2741c73db | |
![]() |
0df20d2da5 | |
![]() |
082dd75591 | |
![]() |
1e21b38793 | |
![]() |
9099ff0d44 | |
![]() |
54a9457c65 | |
![]() |
50e30447fb | |
![]() |
97d3f34a25 | |
![]() |
63492252d2 | |
![]() |
66a909a9b7 | |
![]() |
7d2fbb060a | |
![]() |
f7d2c464d4 | |
![]() |
23bb668200 | |
![]() |
3c32fd867b | |
![]() |
edaa27796b | |
![]() |
655211651a | |
![]() |
109fbe60f5 | |
![]() |
f4595f4578 | |
![]() |
00d17c6f42 | |
![]() |
938ee55d42 | |
![]() |
1eb130a28b | |
![]() |
a9bddb92e3 | |
![]() |
f9851e6b75 | |
![]() |
7ec56763f9 | |
![]() |
a5e3e746b2 | |
![]() |
822a2c8df5 | |
![]() |
bdb0057fb3 | |
![]() |
122128eae5 | |
![]() |
a2e7e5b902 | |
![]() |
f930184efb | |
![]() |
cca3267ef6 | |
![]() |
2a0ed00d0d | |
![]() |
d9b43463d0 | |
![]() |
dc263295dd | |
![]() |
91cf829261 | |
![]() |
d5fbd0ff1c | |
![]() |
3d493239d7 | |
![]() |
cfd30b7a95 | |
![]() |
4d6fb5b3c5 | |
![]() |
645d1cf344 | |
![]() |
f89184d51f | |
![]() |
77e747ebf6 | |
![]() |
17b03b6f20 | |
![]() |
b272968969 | |
![]() |
a114207828 | |
![]() |
ef5646bbe3 | |
![]() |
26ea53b024 | |
![]() |
377ddf5081 | |
![]() |
47e5cd2432 | |
![]() |
65b14b4ad9 | |
![]() |
279485fc3e | |
![]() |
1c739e39e7 | |
![]() |
4a5a25e90c | |
![]() |
afff68cfc0 | |
![]() |
67c3c40989 | |
![]() |
4ef98c7ddf | |
![]() |
eaf45b9ab8 | |
![]() |
7e474db93a | |
![]() |
2ccfde0f33 | |
![]() |
58510ca250 | |
![]() |
0e52f7054f | |
![]() |
7950279a09 | |
![]() |
5fb7c5e3ee | |
![]() |
541ed9606c | |
![]() |
c71cd4a81b | |
![]() |
bfc52cd2f0 | |
![]() |
8941f74292 | |
![]() |
36f321f848 | |
![]() |
ed0a63d1b8 | |
![]() |
d57bb82d22 | |
![]() |
f0d65b73e8 | |
![]() |
3f7cfb3e32 | |
![]() |
7089a5572b | |
![]() |
4008ccea3d | |
![]() |
a26971cdc7 | |
![]() |
2c1fcf9691 | |
![]() |
79ed790a4e | |
![]() |
39d90e5e44 | |
![]() |
1d584edb77 | |
![]() |
5db42e83c9 | |
![]() |
7fa572e3ff | |
![]() |
0823797671 | |
![]() |
f2bbf8e66c | |
![]() |
630e3a591a | |
![]() |
26e20ca846 | |
![]() |
cd8933415c | |
![]() |
0955b94466 | |
![]() |
36c1a8cfbc | |
![]() |
3180d432e5 | |
![]() |
0b9cf1270c | |
![]() |
621eb4d425 | |
![]() |
435c4aa243 | |
![]() |
0425dadee9 | |
![]() |
914d879811 | |
![]() |
ab655db3f8 | |
![]() |
b572e8b09f | |
![]() |
aeb547e3dc | |
![]() |
aad552ff47 | |
![]() |
5da4b1fc4d | |
![]() |
9998de4880 | |
![]() |
54c9e9d411 | |
![]() |
1b0b540de6 | |
![]() |
cd4132fba3 | |
![]() |
f9e15c53d9 | |
![]() |
09a69a32c0 | |
![]() |
451da0f8a4 | |
![]() |
4cfa9c6545 | |
![]() |
4b0b6b5d37 | |
![]() |
c564a20970 | |
![]() |
1636078b34 | |
![]() |
49fa1a30c5 | |
![]() |
f75f9fd5fd | |
![]() |
c64dbd6631 | |
![]() |
11787df6cd | |
![]() |
271c6dc129 | |
![]() |
b37bd308f2 | |
![]() |
3853b699f4 | |
![]() |
9d9cb7450f | |
![]() |
a60448d7bc | |
![]() |
e4973a98d8 | |
![]() |
3ad4e62b02 | |
![]() |
bb8a6e05f9 | |
![]() |
a6914b2ddb | |
![]() |
1c85dba0df | |
![]() |
b072cb40cb | |
![]() |
ae6cc33a5e | |
![]() |
3a07834226 | |
![]() |
a5ea157c9a | |
![]() |
da553d191f | |
![]() |
59b561b8c0 | |
![]() |
3a6657bd88 | |
![]() |
c06a376b2e | |
![]() |
84dd69ff86 | |
![]() |
ecfdff2338 | |
![]() |
eaee4228ba | |
![]() |
e91da0f423 | |
![]() |
cd22c140f0 | |
![]() |
dfab801277 | |
![]() |
17cf2e6237 | |
![]() |
b12858e974 | |
![]() |
8ab2681bca | |
![]() |
ff216ad83b | |
![]() |
fde15b6e7d | |
![]() |
09f456484c | |
![]() |
eb1b5718c3 | |
![]() |
d1ab52112a | |
![]() |
9b598d2fe4 | |
![]() |
0484cd5d31 | |
![]() |
4c161ff4df | |
![]() |
5ebf3822cc | |
![]() |
bdffa83e6b | |
![]() |
f394c51a75 | |
![]() |
0a57aca1a5 | |
![]() |
916fa1dba0 | |
![]() |
a824989e5a | |
![]() |
79193b914b | |
![]() |
a4c2571d98 | |
![]() |
1a3873da67 | |
![]() |
e8bfaa210a | |
![]() |
d8375a5896 | |
![]() |
9318e9b2cb | |
![]() |
2ea11feda6 | |
![]() |
458300b02e | |
![]() |
745e36e6bc | |
![]() |
3837ea8444 | |
![]() |
ab0194fb49 | |
![]() |
58651f2054 | |
![]() |
20fc7b6ef3 | |
![]() |
e16dfc264a | |
![]() |
2c97515742 | |
![]() |
6f261f6f1b | |
![]() |
59f4fb7132 | |
![]() |
7451decdac | |
![]() |
8b041e9a23 | |
![]() |
cf959fe20e | |
![]() |
455060ec08 | |
![]() |
e4e455dd5e | |
![]() |
942167acdf | |
![]() |
56023cfd02 | |
![]() |
b7729c9e80 | |
![]() |
c7b5d10546 | |
![]() |
3a3ebb5dc7 | |
![]() |
2b394e1e26 | |
![]() |
8c0a28477b | |
![]() |
649be1b505 | |
![]() |
8b1efec116 | |
![]() |
b723ed4764 | |
![]() |
6e3a00e081 | |
![]() |
92b67f960c | |
![]() |
f6851eba95 | |
![]() |
e73f302aee | |
![]() |
1ca75446c6 | |
![]() |
e5333f4e7c | |
![]() |
8106fbf51c | |
![]() |
ff2dfeb516 | |
![]() |
d9e080b9a9 | |
![]() |
1d2b8bf918 | |
![]() |
df75204a0b | |
![]() |
4aba51e955 | |
![]() |
5e581b0ade | |
![]() |
5a28564b12 | |
![]() |
db1e02521e | |
![]() |
aae9c502f0 | |
![]() |
87653b7b19 | |
![]() |
88a8f80ebd | |
![]() |
96702f7db1 | |
![]() |
55add8a2c6 | |
![]() |
2bce03023b | |
![]() |
3f54bcbc87 | |
![]() |
d5e49a5981 | |
![]() |
267167a236 | |
![]() |
21d4f0f5fc | |
![]() |
2cbbaea483 | |
![]() |
d422cbe65d | |
![]() |
fa2fe8eed4 | |
![]() |
f51cb153d1 | |
![]() |
89866aff95 | |
![]() |
febedc3a38 | |
![]() |
afa8a25b5b | |
![]() |
2eca3c1477 | |
![]() |
f84208a3e4 | |
![]() |
f298c0185e | |
![]() |
61791c91cb | |
![]() |
b40cdd070c | |
![]() |
5d92c3ca0a | |
![]() |
7b2edbd1bd | |
![]() |
73a39dea65 | |
![]() |
96a2ef5f42 | |
![]() |
76169c669a | |
![]() |
9fa825e336 | |
![]() |
4bd09bdac2 | |
![]() |
d1a6e6b747 | |
![]() |
be85200b3e | |
![]() |
e8e6b803f2 | |
![]() |
a999a87607 | |
![]() |
2d7000c8ae | |
![]() |
f13a087b04 | |
![]() |
237d502404 | |
![]() |
fd4175ebf8 | |
![]() |
b62ae33f38 | |
![]() |
e8c6613b12 | |
![]() |
ce46b6fe78 | |
![]() |
c689a7fd48 | |
![]() |
6d2109dd48 | |
![]() |
042a66bb80 | |
![]() |
cecb4543c3 | |
![]() |
bc6a80137f | |
![]() |
a8023e4f6a | |
![]() |
2d03ae64ba | |
![]() |
cbd117eb3a | |
![]() |
72202544bb | |
![]() |
61172d837f | |
![]() |
2037e97fc9 | |
![]() |
0e441527c8 | |
![]() |
4652bbb427 | |
![]() |
02b2f5a98a | |
![]() |
47ec447dd0 | |
![]() |
04a95a5445 | |
![]() |
1f2d0d5056 | |
![]() |
e61a324df2 | |
![]() |
008a6f3f23 | |
![]() |
104d746c1e | |
![]() |
b5a2f62c88 | |
![]() |
ee1a860ac4 | |
![]() |
8907131244 | |
![]() |
910326f29d | |
![]() |
33bfd7f752 | |
![]() |
af2e2fd517 | |
![]() |
b78d230ba9 | |
![]() |
0a8470a6d0 | |
![]() |
3a37c1d3ff | |
![]() |
7af70a69bb | |
![]() |
424ef6ff74 | |
![]() |
dcb07f6e33 | |
![]() |
5acef1c454 | |
![]() |
6e39eb37f6 | |
![]() |
9320588e45 | |
![]() |
68d120ec55 | |
![]() |
fb7ad7dbfb | |
![]() |
5ff777d301 | |
![]() |
e3edca1f41 | |
![]() |
86551614d9 | |
![]() |
ae8b88a4a3 | |
![]() |
1179d218e7 | |
![]() |
a430f58c15 | |
![]() |
318c5d7435 | |
![]() |
4a17ed3b9c | |
![]() |
abf484638e | |
![]() |
e48acb6b97 | |
![]() |
ea5339304a | |
![]() |
6940b424df | |
![]() |
04bbcdfdd1 | |
![]() |
dc29af8262 | |
![]() |
06448e8445 | |
![]() |
3f21de2b7c | |
![]() |
cf0d8fdc28 | |
![]() |
a2587cb8cf | |
![]() |
aa7b9349f8 | |
![]() |
c80f3afd77 | |
![]() |
776d52a2c6 | |
![]() |
4fdadc585d | |
![]() |
c8c9fcb665 | |
![]() |
d8ab5529a7 | |
![]() |
369e6a03f4 | |
![]() |
4ee633925c | |
![]() |
c541a79e95 | |
![]() |
3571b112dc | |
![]() |
cf54ddd864 | |
![]() |
49d9b70e6f | |
![]() |
c917a71ef8 | |
![]() |
55c7c2f48e | |
![]() |
bba2c131a1 | |
![]() |
3b32da60fa | |
![]() |
7bd877dfbd | |
![]() |
eff1785ce0 | |
![]() |
4cdcfe6dd3 | |
![]() |
530b997d7e | |
![]() |
1723a353c2 | |
![]() |
7cacae1262 | |
![]() |
0815443aeb | |
![]() |
3133105fc9 | |
![]() |
c0a323dbcd | |
![]() |
7b0e400710 | |
![]() |
7727b6434d | |
![]() |
4590dfc68b | |
![]() |
1fc37e9962 | |
![]() |
05bf592dec | |
![]() |
398df56ac9 | |
![]() |
3e86758a9f | |
![]() |
6243a57832 | |
![]() |
e5b14977ce | |
![]() |
e1ebaed508 | |
![]() |
11e16d1ad9 | |
![]() |
845d69e817 | |
![]() |
5479ab1307 | |
![]() |
4e87dc61ee | |
![]() |
6e773eafea | |
![]() |
12ed251c0b | |
![]() |
7157729ac3 | |
![]() |
c2e2b6d93c | |
![]() |
328bebbc01 | |
![]() |
2c5882df3e | |
![]() |
72a620a484 | |
![]() |
4717d25eb5 | |
![]() |
70689e1112 | |
![]() |
16c777cdd9 | |
![]() |
feb7b5a116 | |
![]() |
e01fc0f2b7 | |
![]() |
2e3ad7ed16 | |
![]() |
3becd63ef5 | |
![]() |
48253afc54 | |
![]() |
d83b2f99cd | |
![]() |
45387aa663 | |
![]() |
ffacbcfeea | |
![]() |
5bd5a8d998 | |
![]() |
6ee880c58b | |
![]() |
36a9602e62 | |
![]() |
c8f4d4aad9 | |
![]() |
1f6337fc1f | |
![]() |
a171c54b9a | |
![]() |
fc95ee2795 | |
![]() |
333483a69e | |
![]() |
bfc830e08d | |
![]() |
3a5642fcb8 | |
![]() |
256143944a | |
![]() |
ec2f791655 | |
![]() |
7b2fe75ebf | |
![]() |
83528e14f5 | |
![]() |
2e5836e179 | |
![]() |
c7240b0e8e | |
![]() |
a874450c1a | |
![]() |
dc9a2572d1 | |
![]() |
63b18687f0 | |
![]() |
569bc92b90 | |
![]() |
18a35b3928 | |
![]() |
3e47da2e18 | |
![]() |
319bdbd106 | |
![]() |
b7284542bc | |
![]() |
ce4024a29e | |
![]() |
050c5da263 | |
![]() |
978e7c94b2 | |
![]() |
d75d26bcc9 | |
![]() |
6853080b98 | |
![]() |
437ad30547 | |
![]() |
9c9f31d0d1 | |
![]() |
6ecc182d7c | |
![]() |
dca568a0be | |
![]() |
ce374b15a3 | |
![]() |
6e2c3885ee | |
![]() |
ef7edba159 | |
![]() |
46f59df10a | |
![]() |
d34ec95879 | |
![]() |
0f0dccdcf2 | |
![]() |
476dcc11df | |
![]() |
1dd00d5bb0 | |
![]() |
4215332eb4 | |
![]() |
7de02c9949 | |
![]() |
beda1d5b87 | |
![]() |
efb30080e8 | |
![]() |
0c675b12e4 | |
![]() |
805773aa8f | |
![]() |
c03b15944b | |
![]() |
8610147ad7 | |
![]() |
131b983894 | |
![]() |
d55a13c9ba | |
![]() |
9c673f527d | |
![]() |
5d32e432b3 | |
![]() |
c6316edf2a | |
![]() |
7015a104be | |
![]() |
b2dd7611ea | |
![]() |
022e009a75 | |
![]() |
b46278b3ed | |
![]() |
4b9072de03 | |
![]() |
f051b88f81 | |
![]() |
4de9d5f16c | |
![]() |
8520ad8f1f | |
![]() |
4c03970ffe | |
![]() |
bcb0073a4a | |
![]() |
6ed7341b5a | |
![]() |
20931a89d9 | |
![]() |
f2186f6a5c | |
![]() |
85c9872cd6 | |
![]() |
0acc8c2af2 | |
![]() |
16fe12cc97 | |
![]() |
5c2a55884b | |
![]() |
613ce0286a | |
![]() |
17dbdcf57c | |
![]() |
3ee12b1a55 | |
![]() |
6e65b70c32 | |
![]() |
f5a6906ef8 | |
![]() |
f637b5b1e8 | |
![]() |
bbdcb8b83b | |
![]() |
56d21feb10 | |
![]() |
19e44d59d0 | |
![]() |
a4d8c433c6 | |
![]() |
f96ba8c1aa | |
![]() |
6a317779c8 | |
![]() |
0cd50cae8c | |
![]() |
1bb8d52e16 | |
![]() |
fdfa73a7f5 | |
![]() |
fc1bfb9c73 | |
![]() |
b0977cef94 | |
![]() |
189fce016f | |
![]() |
3574f1cc6b | |
![]() |
3d0c982d6e | |
![]() |
09b7eea127 | |
![]() |
5534d23690 | |
![]() |
ec52154112 | |
![]() |
8b4818c3d8 | |
![]() |
0457b1bcb7 | |
![]() |
fe229348eb | |
![]() |
abd7ccbb1f | |
![]() |
9a8ab700f7 | |
![]() |
5b38c0f398 | |
![]() |
fd6a4161ac | |
![]() |
6c55c26082 | |
![]() |
92d7c1a1d1 | |
![]() |
8c0b9f6d06 | |
![]() |
b5c1330528 | |
![]() |
5fb0ae88a7 | |
![]() |
1ee7b70194 | |
![]() |
652b078aab | |
![]() |
57ba653bc7 | |
![]() |
ba49175697 | |
![]() |
4ca8ffe3f4 | |
![]() |
9742722213 | |
![]() |
02ba4f2499 | |
![]() |
5f35899ba3 | |
![]() |
369eab8da3 | |
![]() |
c8cfaefcc8 | |
![]() |
1e68020d1c | |
![]() |
4b38883b6a | |
![]() |
c0507b8a71 | |
![]() |
52ef584424 | |
![]() |
436d6c5a08 | |
![]() |
90b75e4c11 | |
![]() |
51d5f4bfd1 | |
![]() |
c49050fe65 | |
![]() |
4e55bc703c | |
![]() |
0e2ede06bc | |
![]() |
00e62f231a | |
![]() |
44e074a15e | |
![]() |
3f0d06e307 | |
![]() |
fd84ceddda | |
![]() |
747158d5a6 | |
![]() |
bd15285ea1 | |
![]() |
9873073400 | |
![]() |
0ee3f3f16c | |
![]() |
2a974a74e7 | |
![]() |
c5a7b1a9b7 | |
![]() |
491879da95 | |
![]() |
200e846b81 | |
![]() |
4d94ab7a38 | |
![]() |
4859e9b4c6 | |
![]() |
125db5bbe7 | |
![]() |
870c2f8bab | |
![]() |
76e5aa7148 | |
![]() |
1af9831fc9 | |
![]() |
1c41e1e051 | |
![]() |
c358f22403 | |
![]() |
600b11b284 | |
![]() |
7be14fa7cc | |
![]() |
a82c390fe9 | |
![]() |
82f7e52fc6 | |
![]() |
58da738647 | |
![]() |
20ab4d27b1 | |
![]() |
17a549baf2 | |
![]() |
e7bbc60e79 | |
![]() |
294470d940 | |
![]() |
6561223536 | |
![]() |
c1421afccb | |
![]() |
cbc8e4f11a | |
![]() |
a161dfeb31 | |
![]() |
b94cd7f1dc | |
![]() |
46c44120c9 | |
![]() |
d432ec34e1 | |
![]() |
b80797a578 | |
![]() |
4b7223c3ff | |
![]() |
a7d63cde54 | |
![]() |
196f507d3b | |
![]() |
bb6613888a | |
![]() |
7d6a8a86a8 | |
![]() |
213a534f4b | |
![]() |
257122796c | |
![]() |
a00f2939ad | |
![]() |
8efb3fb5df | |
![]() |
b21a6158f4 | |
![]() |
b1f991bf94 | |
![]() |
4f58f85572 | |
![]() |
36e62c085d | |
![]() |
abf0848421 | |
![]() |
0a36069315 | |
![]() |
00d1c0dc9d | |
![]() |
d8643870d6 | |
![]() |
2b8bb4baf7 | |
![]() |
74a72a5c07 | |
![]() |
608029e930 | |
![]() |
ac9ffdd765 | |
![]() |
201f0df4c2 | |
![]() |
2b3855f2e4 | |
![]() |
55dd3e28db | |
![]() |
428a29dae3 | |
![]() |
dda5634189 | |
![]() |
18d0ad6ff9 | |
![]() |
399ace760c | |
![]() |
dc6639b30b | |
![]() |
90420586e6 | |
![]() |
2e5751ef6f | |
![]() |
0b79184bf3 | |
![]() |
b8261a0c66 | |
![]() |
44ab21ab35 | |
![]() |
c9585b8abe | |
![]() |
a7ffcee399 | |
![]() |
eb26b3c387 | |
![]() |
65a0b63c82 | |
![]() |
75910bcdab | |
![]() |
6dbd977c73 | |
![]() |
ba6865b570 | |
![]() |
622c2491b9 | |
![]() |
3a59d9cb83 | |
![]() |
4fdebd5dd5 | |
![]() |
bd880335a8 | |
![]() |
ae75abb8fa | |
![]() |
85aaa6c3c5 | |
![]() |
03dd7d70b4 | |
![]() |
8739b22fbc | |
![]() |
420da428bd | |
![]() |
5f6948351b | |
![]() |
727ba5b2f2 | |
![]() |
7337edb82a | |
![]() |
133ed11cab | |
![]() |
2c84689345 | |
![]() |
80a8074608 | |
![]() |
9fa607b30f | |
![]() |
618a51cabb | |
![]() |
f8b923015b | |
![]() |
65f04ee408 | |
![]() |
225456a39c | |
![]() |
fd0f24d01e | |
![]() |
5bf048e380 | |
![]() |
b876f13cb2 | |
![]() |
edc0828437 | |
![]() |
77a4fbf439 | |
![]() |
f40222f0ee | |
![]() |
fca0505f38 | |
![]() |
cd720fc6d8 | |
![]() |
e8ef801a3e | |
![]() |
1b85fb3de5 | |
![]() |
3f108aae75 | |
![]() |
dfb6055ae4 | |
![]() |
b68c714455 | |
![]() |
a039e2fbef | |
![]() |
03d1ed7778 | |
![]() |
a69f95bcb6 | |
![]() |
efcdd29109 | |
![]() |
8c55769afc | |
![]() |
2f54d98ff6 | |
![]() |
9920a609e8 | |
![]() |
45762c8f9f | |
![]() |
6867b556f3 | |
![]() |
c884560fdb | |
![]() |
cfd5572fb6 | |
![]() |
5b18089e85 | |
![]() |
329159bddc | |
![]() |
2d07a269fc | |
![]() |
2fca2f4395 | |
![]() |
ed69b9f741 | |
![]() |
42527b4c5e | |
![]() |
285f22927b | |
![]() |
6d719b529a | |
![]() |
c8ce215d58 | |
![]() |
d62688a0ef | |
![]() |
bd3a3b8360 | |
![]() |
1fd974272c | |
![]() |
64408b8fd1 | |
![]() |
e80b533549 | |
![]() |
1306cfe15e | |
![]() |
4543bcf9de | |
![]() |
832d0a7c05 | |
![]() |
7ef8cd961f | |
![]() |
3c353b572b | |
![]() |
2cba34d83a | |
![]() |
cdb0c4193b | |
![]() |
cb0ad844c1 | |
![]() |
542792215e | |
![]() |
a064306916 | |
![]() |
e79ae2860b | |
![]() |
646a0e9b33 | |
![]() |
603c1800d5 | |
![]() |
e3fbb55854 | |
![]() |
ea5db5f72d | |
![]() |
dfe9177374 | |
![]() |
9a4cf28776 | |
![]() |
96d0193136 | |
![]() |
e3e8296105 | |
![]() |
ce0b1507c3 | |
![]() |
eb7b90e5d9 | |
![]() |
fc35395ab8 | |
![]() |
cd0b5193cb | |
![]() |
ea3e6d6b54 | |
![]() |
434789c6d1 | |
![]() |
fd0deaaecc | |
![]() |
fe8b436b41 | |
![]() |
7386e60ac0 | |
![]() |
5265573c0c | |
![]() |
a7c232b284 | |
![]() |
89f8873df3 | |
![]() |
44fb887737 | |
![]() |
48c9261b05 | |
![]() |
08f360af90 | |
![]() |
c7e4db58e3 | |
![]() |
09a53abe99 | |
![]() |
efbc4a49ce | |
![]() |
bd6edce5cf | |
![]() |
d6c3b012d1 | |
![]() |
dd531637c2 | |
![]() |
59ebf1c12d | |
![]() |
30fc000734 | |
![]() |
ceb66b133f | |
![]() |
077aa04f48 | |
![]() |
e06fa02d14 | |
![]() |
001135ef91 | |
![]() |
f45b4e3ef0 | |
![]() |
54b9fbd881 | |
![]() |
222d48efe7 | |
![]() |
7d014f1ae6 | |
![]() |
cd4dbaeb60 | |
![]() |
a2072b67ba | |
![]() |
bc048094b1 | |
![]() |
bba57ce530 | |
![]() |
064d6ce183 | |
![]() |
e3983d3330 | |
![]() |
622a6e9e2d | |
![]() |
e504ac3665 | |
![]() |
7ffa0ff280 | |
![]() |
2cce155173 | |
![]() |
ee21eed29c | |
![]() |
10a3165642 | |
![]() |
5f3ee83bcc | |
![]() |
5b72231166 | |
![]() |
a64dcf8e43 | |
![]() |
9b2ba64bc6 | |
![]() |
682471fa1e | |
![]() |
47941aa0b0 | |
![]() |
e07684e3ac | |
![]() |
1ca6f7e093 | |
![]() |
ea345ca815 | |
![]() |
6f14732e0d | |
![]() |
0b17a40d6b | |
![]() |
033efff86e | |
![]() |
e10f5997be | |
![]() |
b1faf67438 | |
![]() |
3139ac7d58 | |
![]() |
422439f0a6 | |
![]() |
7b979a679e | |
![]() |
30fa0a3843 | |
![]() |
1722fe4530 | |
![]() |
1acaa45ea5 | |
![]() |
3bacc33ebe | |
![]() |
cade5eebde | |
![]() |
c709aee0f3 | |
![]() |
3cbfaa010d | |
![]() |
466639ee31 | |
![]() |
123532ed6e | |
![]() |
ff449dc66c | |
![]() |
1268aaee1c | |
![]() |
0cc66867ca | |
![]() |
e3e0957f14 | |
![]() |
292ae8dcf8 | |
![]() |
dca1e49c9f | |
![]() |
f3d49527b7 | |
![]() |
63d96ab712 | |
![]() |
91474e179c | |
![]() |
8b65f3772c | |
![]() |
0c6b443065 | |
![]() |
c1e1843e5e | |
![]() |
00a34e0d07 | |
![]() |
aefcd174a8 | |
![]() |
045a2c96dc | |
![]() |
282a033df2 | |
![]() |
5c0bd1b245 | |
![]() |
004f68496f | |
![]() |
f74db92ccd | |
![]() |
bfab9dc9f2 | |
![]() |
39e3b5181a | |
![]() |
c2bcf0df07 | |
![]() |
f2e9ea6a6b | |
![]() |
0193bc3a83 | |
![]() |
5164b888d8 | |
![]() |
f37d068733 | |
![]() |
527313bafc | |
![]() |
f046596ca7 | |
![]() |
4e85de3a42 | |
![]() |
e470795258 | |
![]() |
e95bd06321 | |
![]() |
f27ce8d82e | |
![]() |
4afacfa067 | |
![]() |
86327de14f | |
![]() |
bef88a4e13 | |
![]() |
e445baaf14 | |
![]() |
5a5adc1b15 | |
![]() |
92d86af955 | |
![]() |
d08b307be0 | |
![]() |
d1f589e002 | |
![]() |
a67b0c0fb2 | |
![]() |
5b170b003a | |
![]() |
d07dbdc0dd | |
![]() |
a2d12548f5 | |
![]() |
9a50b6dcd0 | |
![]() |
8e5f5ba8ac | |
![]() |
c15f80a855 | |
![]() |
60fdbfd9ac | |
![]() |
88c4c7857c | |
![]() |
7cf3535e03 | |
![]() |
253dca5840 | |
![]() |
a90c09882e | |
![]() |
92b7b347bf | |
![]() |
38fa501a08 | |
![]() |
ff6c74397a | |
![]() |
c84c31bdc0 | |
![]() |
0701fb1997 | |
![]() |
1a29a92c3a | |
![]() |
70e31df683 | |
![]() |
7bd0e91735 | |
![]() |
a4d1268db4 | |
![]() |
7ee2be6c96 | |
![]() |
c0d4e2c347 | |
![]() |
a62a3eb811 | |
![]() |
0dd7cfd44a | |
![]() |
dfe2f62f16 | |
![]() |
a154690694 | |
![]() |
697e80a5a1 | |
![]() |
47bf00da5e | |
![]() |
e5ed2b4119 | |
![]() |
fcfab847fc | |
![]() |
fc2b94f9f7 | |
![]() |
6d8060034f | |
![]() |
dbffb46c4e | |
![]() |
6bea763b23 | |
![]() |
8545271e9e | |
![]() |
6b63e42146 | |
![]() |
0cfec878c8 | |
![]() |
1dedd1d7a7 | |
![]() |
8e671b0830 | |
![]() |
c4157e59fc | |
![]() |
b5f600c0c5 | |
![]() |
58089fb334 | |
![]() |
5216383c28 | |
![]() |
17ef84804b | |
![]() |
dfd772d2ca | |
![]() |
e2668c25c5 | |
![]() |
0da94526bc | |
![]() |
53abcfd28e | |
![]() |
74e7a44da3 | |
![]() |
2df70ee45e | |
![]() |
62c84ab815 | |
![]() |
7824a317ae | |
![]() |
430ffc18e2 | |
![]() |
0c77227e06 | |
![]() |
547c9269fa | |
![]() |
8ec856e10c | |
![]() |
4580e8d2e9 | |
![]() |
be3022156f | |
![]() |
1584023f34 | |
![]() |
8c5940e540 | |
![]() |
0d0e92ce59 | |
![]() |
941ad50723 | |
![]() |
fff9d1264e | |
![]() |
5bb12f9238 | |
![]() |
9df06383b5 | |
![]() |
70e6470e8b | |
![]() |
fa3b0d0875 | |
![]() |
068e1fb612 | |
![]() |
819d19dddc | |
![]() |
9f8679ffa6 | |
![]() |
bf3a2071b7 | |
![]() |
1c370f6ebe | |
![]() |
0a4cafcd57 | |
![]() |
520609d12a | |
![]() |
61950a52dc | |
![]() |
f3b6593ab6 | |
![]() |
1b9671bf21 | |
![]() |
86bcbf1716 | |
![]() |
455e34edcf | |
![]() |
90893dff60 | |
![]() |
d2949383d5 | |
![]() |
83578d915b | |
![]() |
0ac446beda | |
![]() |
ab82b2c856 | |
![]() |
b3f9d9b186 | |
![]() |
4626cac9e8 | |
![]() |
1127cf8b84 | |
![]() |
27076733d4 | |
![]() |
50fd46506c | |
![]() |
4f70b313fc | |
![]() |
dc5f6e37e1 | |
![]() |
b220c7a68b | |
![]() |
e9ec009836 | |
![]() |
3385f02b51 | |
![]() |
2ba42761b8 | |
![]() |
083585b565 | |
![]() |
4fefa0c51a | |
![]() |
1b684ae2e3 | |
![]() |
6f08b740f9 | |
![]() |
9b2d4bc68e | |
![]() |
c511d53d59 | |
![]() |
6aa558c4a0 | |
![]() |
0271f12280 | |
![]() |
085ce4890d | |
![]() |
2ea0114ae2 | |
![]() |
c4384d1d1e | |
![]() |
8770200874 | |
![]() |
f847502f4a | |
![]() |
91e62b8e72 | |
![]() |
b48c7a1887 | |
![]() |
694b80d289 | |
![]() |
b8c7196dd9 | |
![]() |
7f30bdc850 | |
![]() |
6bdb3470e7 | |
![]() |
25bb7a9192 | |
![]() |
658f4e1a34 | |
![]() |
2b7f5ba4d0 | |
![]() |
3f24047abb | |
![]() |
9ed00c95b6 | |
![]() |
472660a5d3 | |
![]() |
2a5417e3ce | |
![]() |
56c9065f70 | |
![]() |
fec87062ca | |
![]() |
dd13ceb42d | |
![]() |
3b558a9509 | |
![]() |
c49f09dabc | |
![]() |
15e8b20537 | |
![]() |
fcf764e3c6 | |
![]() |
85e66155f2 | |
![]() |
73afc7d7f7 | |
![]() |
981d01134b | |
![]() |
75da9f0a94 | |
![]() |
879e7561cc | |
![]() |
75155738a5 | |
![]() |
ad2a7a748a | |
![]() |
a305882dba | |
![]() |
153efa253c | |
![]() |
2cea9e6d70 | |
![]() |
1cc32c0785 | |
![]() |
ca0baae821 | |
![]() |
42f7876731 | |
![]() |
5415cd72e2 | |
![]() |
ffda3e1c9b | |
![]() |
e370f64801 | |
![]() |
506b9c69be | |
![]() |
74358521ab | |
![]() |
1f36728244 | |
![]() |
0bd4ad034e | |
![]() |
47e704d257 | |
![]() |
d5669c2872 | |
![]() |
5067eb621c | |
![]() |
6fa2f74279 | |
![]() |
686eee4e20 | |
![]() |
ce6e3fad46 | |
![]() |
959e4bf1e6 | |
![]() |
16bcdd0fc3 | |
![]() |
ded409f0da | |
![]() |
ff772fce9d | |
![]() |
903f792731 | |
![]() |
ac8c371219 | |
![]() |
d5b66cc7e7 | |
![]() |
e1c43b9287 | |
![]() |
bf3d31b24e | |
![]() |
9861fd67b0 | |
![]() |
463d157e9f | |
![]() |
330bfbaf42 | |
![]() |
c76a2340fa | |
![]() |
8232700412 | |
![]() |
ca17220e27 | |
![]() |
6585e8b244 | |
![]() |
583e95e45f | |
![]() |
04bc011900 | |
![]() |
8b887cb0ff | |
![]() |
baf5d71f93 | |
![]() |
b8a9baa474 | |
![]() |
0c39cae5a2 | |
![]() |
8665b28f0d | |
![]() |
a2a888bf10 | |
![]() |
225369f2b6 | |
![]() |
7982de2a4c | |
![]() |
4508797e35 | |
![]() |
e7159ac771 | |
![]() |
e23d04afc5 | |
![]() |
bb711d311f | |
![]() |
e2e22e2218 | |
![]() |
a56bfab48e | |
![]() |
168c9cb8d6 | |
![]() |
9adad40b1c | |
![]() |
1807442577 | |
![]() |
e4a5a3f2db | |
![]() |
6fc8195177 | |
![]() |
91fb63c484 | |
![]() |
7719dd5ec4 | |
![]() |
0c33863e66 | |
![]() |
31f798748b | |
![]() |
55c2efa3ea | |
![]() |
c06d38449d | |
![]() |
a12a391fd1 | |
![]() |
8e898b02cc | |
![]() |
73d19cc02a | |
![]() |
95336463bf | |
![]() |
68845e080a | |
![]() |
b60e0b9282 | |
![]() |
7520d8fc06 | |
![]() |
d4b3bcde0f | |
![]() |
536170c331 | |
![]() |
c57075a539 | |
![]() |
2912bd2d07 | |
![]() |
6822e04c08 | |
![]() |
d852c7c8f0 | |
![]() |
a11b103a9c | |
![]() |
084b56b3bf | |
![]() |
5dbe240442 | |
![]() |
83f0deab1b | |
![]() |
29e1ddbb21 | |
![]() |
e87f7b7b68 | |
![]() |
550866fcac | |
![]() |
d95d982ba3 | |
![]() |
4b0ea00ba1 | |
![]() |
e0b07a6446 | |
![]() |
c6b25f14a3 | |
![]() |
c305c377db | |
![]() |
9b35e76416 | |
![]() |
0d8e7efff4 | |
![]() |
055d062944 | |
![]() |
a62afb6a56 | |
![]() |
e2084b4a98 | |
![]() |
0b50e7163e | |
![]() |
1985713c3a | |
![]() |
51784b1996 | |
![]() |
bac42c9027 | |
![]() |
2a9f32a840 | |
![]() |
25677679df | |
![]() |
a8dcf87e70 | |
![]() |
a3acf4cb1f | |
![]() |
6fc656296d | |
![]() |
0fea8d63fc | |
![]() |
328fee867f | |
![]() |
e3fb7693e3 | |
![]() |
ca94e14545 | |
![]() |
8a87eaa395 | |
![]() |
feec147f07 | |
![]() |
8f724d6a1f | |
![]() |
368ad24516 | |
![]() |
3b5fb57013 | |
![]() |
3602bb113e | |
![]() |
ba27062842 | |
![]() |
9b07a63056 | |
![]() |
519968d37e | |
![]() |
902c7aade4 | |
![]() |
ad32c0f750 | |
![]() |
1fb7d7a4a3 | |
![]() |
137f3e5804 | |
![]() |
82ce165211 | |
![]() |
4247fd0be3 | |
![]() |
8cc8927bf0 | |
![]() |
527e3dd613 | |
![]() |
04216780c3 | |
![]() |
a425554d45 | |
![]() |
a0c6573653 | |
![]() |
ed5f65f36d | |
![]() |
ca484d38b8 | |
![]() |
e56653319e | |
![]() |
5db7d95aa2 | |
![]() |
4d8700ccb7 | |
![]() |
004f317aba | |
![]() |
8997eda005 | |
![]() |
ff95aab0b9 | |
![]() |
65886b02f4 | |
![]() |
91ee9822d1 | |
![]() |
d4d7a3b6b9 | |
![]() |
b8087c1d97 | |
![]() |
5ad8907acb | |
![]() |
8c2f2a8649 | |
![]() |
325f59f404 | |
![]() |
8997055fc0 | |
![]() |
f4f5521b9b | |
![]() |
01c881d18d | |
![]() |
5b3fea3038 | |
![]() |
38ae69d54d | |
![]() |
40dd9b2b18 | |
![]() |
0cfaf0a240 | |
![]() |
76d6055bb0 | |
![]() |
9bcfd248e9 | |
![]() |
c11392e77a | |
![]() |
2700bf2c97 | |
![]() |
fa5c5e9601 | |
![]() |
57880bf674 | |
![]() |
71f74d25b0 | |
![]() |
116d75c3c8 | |
![]() |
977b184ecb | |
![]() |
e03e48f9c6 | |
![]() |
39886c72f5 | |
![]() |
c71baa0c87 | |
![]() |
dcd63f1ceb | |
![]() |
ae33504577 | |
![]() |
7f91cfe58d | |
![]() |
dd29e0cad3 | |
![]() |
d053058ea3 | |
![]() |
fa985d5798 | |
![]() |
9515de7212 | |
![]() |
84e60e99f4 | |
![]() |
96c137c1a2 | |
![]() |
11589d874f | |
![]() |
68ef5d3a5b | |
![]() |
179d6a7236 | |
![]() |
a851c1e094 | |
![]() |
0979380c74 | |
![]() |
1bf1a97023 | |
![]() |
2969a8bf7a | |
![]() |
99f067e539 | |
![]() |
5c80fa67ef | |
![]() |
6629aeebec | |
![]() |
7fe043146d | |
![]() |
d21da6df2d | |
![]() |
e8a39fea95 | |
![]() |
f3209e1942 | |
![]() |
5349cab4b2 | |
![]() |
b1f1da4f7d | |
![]() |
1a61da9f83 | |
![]() |
1bda318531 | |
![]() |
c1b1f72005 | |
![]() |
8d7c040b46 | |
![]() |
0dce8b392a | |
![]() |
79506cef72 | |
![]() |
840e2806b5 | |
![]() |
0b2cfb505f | |
![]() |
4851109027 | |
![]() |
a60bc18ad0 | |
![]() |
ddccbee47b | |
![]() |
07221181ea | |
![]() |
fa910fc629 | |
![]() |
6159c5a70b | |
![]() |
33b3d33da2 | |
![]() |
a0613e27ab | |
![]() |
85737f1103 | |
![]() |
f7d8b77bd4 | |
![]() |
4707368d7f | |
![]() |
7f453ce202 | |
![]() |
d2ac7c4ca0 | |
![]() |
c12fa581b3 | |
![]() |
601d025e30 | |
![]() |
9ac6096c3d | |
![]() |
d9092c6acf | |
![]() |
45b47c32d2 | |
![]() |
aee35a4442 | |
![]() |
b43509e705 | |
![]() |
3e4f1fcb2e | |
![]() |
b42b997f00 | |
![]() |
6e196748d8 | |
![]() |
7b8ba05f88 | |
![]() |
ae0c5e91aa | |
![]() |
97cb18d3fd | |
![]() |
7a07b148cb | |
![]() |
5ba82aaed0 | |
![]() |
f9e03e7182 | |
![]() |
8c83570191 | |
![]() |
fda7f83855 | |
![]() |
00421cd046 | |
![]() |
542824e3c0 | |
![]() |
70a34a58f0 | |
![]() |
aad78be37f | |
![]() |
11837ffc15 | |
![]() |
3687863cbc | |
![]() |
6289c1a4d1 | |
![]() |
10eb2b9784 | |
![]() |
00bd093fe3 | |
![]() |
d4c1ab1728 | |
![]() |
d6accc4ef6 | |
![]() |
e87ba99140 | |
![]() |
3c228dad60 | |
![]() |
9f5267e24e | |
![]() |
f4217a7a77 | |
![]() |
46b59268d3 | |
![]() |
c19457aa4b | |
![]() |
818314a6fd | |
![]() |
0a674dd377 | |
![]() |
3c0d9f7197 | |
![]() |
29dbb55c80 | |
![]() |
cbbcf7478e | |
![]() |
cbbaa42641 | |
![]() |
cdabfd491b | |
![]() |
76a8f4da2b | |
![]() |
779e7bc94b | |
![]() |
68f628a211 | |
![]() |
5e6d063aa1 | |
![]() |
39bb404332 | |
![]() |
14f217963c | |
![]() |
4f9cfd5a7e | |
![]() |
61bc17953b | |
![]() |
ccbb44e95a | |
![]() |
6b5ad35d5b | |
![]() |
82ac857c2c | |
![]() |
6fd3bfb86b | |
![]() |
a9978e9892 | |
![]() |
6285387bdd | |
![]() |
9306510023 | |
![]() |
b4df69c0f9 | |
![]() |
0c02f2798a | |
![]() |
511a12c507 | |
![]() |
81289cdb62 | |
![]() |
d2a7065d77 | |
![]() |
3261799d92 | |
![]() |
4358364830 | |
![]() |
b6ec54dadf | |
![]() |
bd20540276 | |
![]() |
e93d780db7 | |
![]() |
8e617556e9 | |
![]() |
2471648dd0 | |
![]() |
6ebe735a73 | |
![]() |
469ce5d145 | |
![]() |
64fba235b2 | |
![]() |
38299f397f | |
![]() |
c8978fd425 | |
![]() |
21e2ccb025 | |
![]() |
edc2e1b7f5 | |
![]() |
997adecddc | |
![]() |
df60b17639 | |
![]() |
ccc7cd4d7f | |
![]() |
fd202105ef | |
![]() |
ced8fb516c | |
![]() |
85b619dc78 | |
![]() |
42efdc46eb | |
![]() |
fc34b72741 | |
![]() |
c6e68f7224 | |
![]() |
98c371b769 | |
![]() |
f739c28b5f | |
![]() |
7ab5f3d690 | |
![]() |
6b2fa8fe67 | |
![]() |
e69be0cc6f | |
![]() |
b3476a997a | |
![]() |
5d7e3bdf13 | |
![]() |
7d7987d205 | |
![]() |
62d5d788fc | |
![]() |
b84a549e8c | |
![]() |
7a6b16dc41 | |
![]() |
7bc7656988 | |
![]() |
304d8d1a4d | |
![]() |
7e36a71953 | |
![]() |
a747545014 | |
![]() |
d15bd4969e | |
![]() |
28d7bfdffc | |
![]() |
f570786d78 | |
![]() |
9c6068a526 | |
![]() |
31a7f09b8a | |
![]() |
4a345fb07c | |
![]() |
93cadacb18 | |
![]() |
304a8d1655 | |
![]() |
82c97e5dc3 | |
![]() |
e70a9b2f41 | |
![]() |
1895ed34fc | |
![]() |
98f5298e04 | |
![]() |
5c84278667 | |
![]() |
303fc17e77 | |
![]() |
cb9d45caee | |
![]() |
e228857eef | |
![]() |
fa847b1e63 | |
![]() |
48f49b74b1 | |
![]() |
f3ba5f7692 | |
![]() |
ca073379fb | |
![]() |
c14fb54a74 | |
![]() |
a59349af8a | |
![]() |
e8e9a3e3c3 | |
![]() |
5eb25876b4 | |
![]() |
076299a5f6 | |
![]() |
bbf6d94fe2 | |
![]() |
c6e18b2a59 | |
![]() |
deff3585bd | |
![]() |
aa91ffabfd | |
![]() |
c296ea79ff | |
![]() |
0c28e34a7e | |
![]() |
17d2373975 | |
![]() |
e3758597f8 | |
![]() |
af44a65c3d | |
![]() |
7bb051b01d | |
![]() |
cdfa6ac54b | |
![]() |
8326ecddce | |
![]() |
b9f88061ca | |
![]() |
66142ab4dc | |
![]() |
8c45d51b8e | |
![]() |
421c645e14 | |
![]() |
ce3710323b | |
![]() |
7226b7ee31 | |
![]() |
5c67c3b600 | |
![]() |
16bad9f141 | |
![]() |
4dae4d8f7f | |
![]() |
edb07e23c8 | |
![]() |
7c9ea1ec9b | |
![]() |
9ddada00f2 | |
![]() |
b0567832f8 | |
![]() |
eadc0c677b | |
![]() |
3179419f52 | |
![]() |
e912450e85 | |
![]() |
1a6fa25a33 | |
![]() |
af2e226cc4 | |
![]() |
c8848876fa | |
![]() |
4c1e736915 | |
![]() |
2e00104d1a | |
![]() |
7fb7d53c5d | |
![]() |
9d92c185c6 | |
![]() |
36efaf6330 | |
![]() |
2c11c4806a | |
![]() |
ce97d86906 | |
![]() |
512572769e | |
![]() |
c507157ab8 | |
![]() |
2a81e5a1ba | |
![]() |
cbae6a61e5 | |
![]() |
9955d0d19b | |
![]() |
8818bf4048 | |
![]() |
16563fe4d2 | |
![]() |
a2b0230c71 | |
![]() |
34752e95d5 | |
![]() |
9d6f424623 | |
![]() |
1a33a71771 | |
![]() |
7b4850024a | |
![]() |
f3c26add07 | |
![]() |
fe10c00289 | |
![]() |
a7710ed8d5 | |
![]() |
4c1d44692c | |
![]() |
68c57df1f6 | |
![]() |
ab3cd84ed4 | |
![]() |
86f7acbbb9 | |
![]() |
0035b5a22b | |
![]() |
6b189fe249 | |
![]() |
c6d7c40dfc | |
![]() |
86b032dac7 | |
![]() |
87738ba8f3 | |
![]() |
6f09085676 | |
![]() |
af043e0792 | |
![]() |
8a60cd8c47 | |
![]() |
14e1552a3b | |
![]() |
e76698ae59 | |
![]() |
155c57b19e | |
![]() |
e9ba117258 | |
![]() |
5c14e3738e | |
![]() |
b3ec5cca98 | |
![]() |
8f5e755c09 | |
![]() |
aad85a7950 | |
![]() |
cbe5c305b6 | |
![]() |
8410ea8b5f | |
![]() |
a1ea2066f7 | |
![]() |
2a4dcace5b | |
![]() |
4fb8514254 | |
![]() |
e2ea9330aa | |
![]() |
891af6a5f6 | |
![]() |
0395994b6b | |
![]() |
8f133caec8 | |
![]() |
492ba2478c | |
![]() |
765cc08136 | |
![]() |
69d4518ad5 | |
![]() |
dcdd6d2dd2 | |
![]() |
979be972dc | |
![]() |
f326d02e33 | |
![]() |
b10a5b7f02 | |
![]() |
ce7e53d53d | |
![]() |
4556d4b121 | |
![]() |
770b121b10 | |
![]() |
96fe40efc1 | |
![]() |
1d23aa2085 | |
![]() |
ea8e67bf63 | |
![]() |
8258668d88 | |
![]() |
af564adc85 | |
![]() |
e2f0437037 | |
![]() |
5b7780620d | |
![]() |
672867f1f6 | |
![]() |
7093d083dd | |
![]() |
8090c03dfb | |
![]() |
4a52c62f84 | |
![]() |
969d36d296 | |
![]() |
cb0b47406f | |
![]() |
cdd3dcae0a | |
![]() |
68533524d5 | |
![]() |
42275f93d3 | |
![]() |
3d65b4b4aa | |
![]() |
7ace2ac14f | |
![]() |
bc9bb43f88 | |
![]() |
43f64852ad | |
![]() |
01d59069dd | |
![]() |
dc06d517c9 | |
![]() |
a032c02b35 | |
![]() |
fc1ad942c2 | |
![]() |
1dcdf14fb0 | |
![]() |
61e278d36e | |
![]() |
5418bb066f | |
![]() |
e8f8dd429e | |
![]() |
deeeb8ea56 | |
![]() |
c8302da954 | |
![]() |
50e0fe9972 | |
![]() |
4a158427ee | |
![]() |
095481ae2e | |
![]() |
54bccfd2cd | |
![]() |
739d842129 | |
![]() |
eddd518a2c | |
![]() |
245a20b442 | |
![]() |
db9d0434e7 | |
![]() |
467c620abc | |
![]() |
c284506c1b | |
![]() |
64d8dd1b69 | |
![]() |
7d71396968 | |
![]() |
7b6dd5b136 | |
![]() |
5f46364ef6 | |
![]() |
862bd15afc | |
![]() |
91911fe092 | |
![]() |
5b26099eac | |
![]() |
7c8a06816b | |
![]() |
5f3cb2f72f | |
![]() |
f72e55c3f6 | |
![]() |
4ae540b387 | |
![]() |
93a7ae395b | |
![]() |
a966511e1e | |
![]() |
66f445cd0a | |
![]() |
ad00b2f883 | |
![]() |
751ab434f4 | |
![]() |
cf06497456 | |
![]() |
2529ea6da4 | |
![]() |
a1945cb57a | |
![]() |
39553ee9dd | |
![]() |
d0f9590999 | |
![]() |
5d6349338a | |
![]() |
4312ce14ff | |
![]() |
cea11fadc4 | |
![]() |
8289222c18 | |
![]() |
e15911891c | |
![]() |
9cfa7120b1 | |
![]() |
6b48b53356 | |
![]() |
13dee91ecc | |
![]() |
285d915df8 | |
![]() |
982eeeb689 | |
![]() |
43817e7287 | |
![]() |
4f94849728 | |
![]() |
8ba146c0c4 | |
![]() |
cb8bdb4c48 | |
![]() |
72de9bd370 | |
![]() |
33792b20f8 | |
![]() |
006beb0704 | |
![]() |
8ac1ece17a | |
![]() |
fcd2664761 | |
![]() |
6f697744d1 | |
![]() |
5159d389a3 | |
![]() |
4f844bcdc3 | |
![]() |
0676769b68 | |
![]() |
73f18f8049 | |
![]() |
a5976e6c34 | |
![]() |
9b8a31a7a5 | |
![]() |
8c802991bb | |
![]() |
2052e2cfe4 | |
![]() |
a9e6c0a659 | |
![]() |
6c84f43c22 | |
![]() |
4d648c4f7c | |
![]() |
0ff2d67317 | |
![]() |
d33471e117 | |
![]() |
31201d4903 | |
![]() |
26aea8544f | |
![]() |
c829cd2e70 | |
![]() |
e2040146ea | |
![]() |
73efec2a02 | |
![]() |
cdc7535167 | |
![]() |
667dffe515 | |
![]() |
16df8fe957 | |
![]() |
16125e8623 | |
![]() |
4e9389eba6 | |
![]() |
d071bffe0a | |
![]() |
1d8141e1fd | |
![]() |
6f4398a3b9 | |
![]() |
d1bc394ca3 | |
![]() |
c41d1e18dc | |
![]() |
bcb3e60f67 | |
![]() |
b2c349a4a3 | |
![]() |
8a310dcfed | |
![]() |
fff87985fe | |
![]() |
ee68e9742d | |
![]() |
b127178377 | |
![]() |
8564f5fef4 | |
![]() |
27809bd1a3 | |
![]() |
d4f1838a4a | |
![]() |
a3ccb49e5d | |
![]() |
e3ea64ad65 | |
![]() |
24a41d8453 | |
![]() |
1f53174270 | |
![]() |
ddca55347e | |
![]() |
506424286f | |
![]() |
b6e2faaba9 | |
![]() |
c4e481c110 | |
![]() |
851b01be15 | |
![]() |
006dba7d69 | |
![]() |
b512d6d455 | |
![]() |
9b6b7c7392 | |
![]() |
9a85fc8a5a | |
![]() |
cb0af1b77b | |
![]() |
cff269332e | |
![]() |
76438391a1 | |
![]() |
881dd11bf2 | |
![]() |
70f75bba49 | |
![]() |
ca0cfa077e | |
![]() |
e9ff76c97b | |
![]() |
a9ef7af3b1 | |
![]() |
eef3b5a57c | |
![]() |
54f89fec1e | |
![]() |
1644132ce7 | |
![]() |
cf69bad59b | |
![]() |
554019c6e8 | |
![]() |
9335a82afb | |
![]() |
3402c151e6 | |
![]() |
0d34386e7a | |
![]() |
27d59e5ed6 | |
![]() |
899fbdf1e4 | |
![]() |
46a3f9ead8 | |
![]() |
9f0d184e4b | |
![]() |
f176c096b0 | |
![]() |
d96a19420d | |
![]() |
13fab18fcc | |
![]() |
ea1abe2fcc | |
![]() |
398ee0c827 | |
![]() |
0313fedf10 | |
![]() |
ee610db141 | |
![]() |
23a815b99c | |
![]() |
cb9f736f2a | |
![]() |
6c42e2a834 | |
![]() |
a1641f7fae | |
![]() |
b5e94b0abb | |
![]() |
354f898a03 | |
![]() |
a18f8d7063 | |
![]() |
9878e2e780 | |
![]() |
f7d594a8b5 | |
![]() |
2f8526a0b1 | |
![]() |
fa2975a4ab | |
![]() |
e224b45576 | |
![]() |
10458aea67 | |
![]() |
c39f2ccb78 | |
![]() |
58ddecb830 | |
![]() |
603de394d8 | |
![]() |
c9e1b78426 | |
![]() |
283196ceb3 | |
![]() |
d42a13c4b6 | |
![]() |
eeeefa4532 | |
![]() |
c3746d629f | |
![]() |
cf5d85ac05 | |
![]() |
0086599290 | |
![]() |
dfd44b280f | |
![]() |
fdd03e505e | |
![]() |
4b4eef373f | |
![]() |
e8f3db4b3e | |
![]() |
e60f0660a4 | |
![]() |
858267da3f | |
![]() |
d2bf28b871 | |
![]() |
48fe88ce36 | |
![]() |
e68827645e | |
![]() |
1b71a64c51 | |
![]() |
71b616a9c2 | |
![]() |
53c7f6f50a | |
![]() |
59cb5c189a | |
![]() |
a997e2b6dc | |
![]() |
85e975c7af | |
![]() |
f696619b11 | |
![]() |
511a061ab0 | |
![]() |
b4f4f2b0fa | |
![]() |
40d4c430fc | |
![]() |
0252c370f2 | |
![]() |
3a3e9cd0f6 | |
![]() |
b3a7b4a098 | |
![]() |
e41ec9a6ca | |
![]() |
603fa7c26e | |
![]() |
0e5754b0c8 | |
![]() |
8c79430c5d | |
![]() |
1b696e45b2 | |
![]() |
1b6c0a7545 | |
![]() |
2e3a30abd6 | |
![]() |
669fb5232b | |
![]() |
6a05dba879 | |
![]() |
45444d5ea3 | |
![]() |
1c486cc30b | |
![]() |
ca91489e00 | |
![]() |
2d4294e417 | |
![]() |
86fe869087 | |
![]() |
1aa5f1b9ff | |
![]() |
2ac6920238 | |
![]() |
45e81d0ecc | |
![]() |
c1c931c61f | |
![]() |
9430913ba3 | |
![]() |
f603fcdb72 | |
![]() |
337ca2cfaf | |
![]() |
f2f75b3b00 | |
![]() |
19c57e0c19 | |
![]() |
c217802829 | |
![]() |
bc37f48e29 | |
![]() |
c6167470eb | |
![]() |
5c3229b4fa | |
![]() |
250262bfe7 | |
![]() |
143a336b04 | |
![]() |
80a502bcc9 | |
![]() |
7398eb5d72 | |
![]() |
000be71c5a | |
![]() |
0e0ce67778 | |
![]() |
c18bc1baa5 | |
![]() |
2ade2f9217 | |
![]() |
471e55f7de | |
![]() |
96e1ae4272 | |
![]() |
e107d90772 | |
![]() |
ebc78cf3ea | |
![]() |
7c57a5cc13 | |
![]() |
0d826bfba4 | |
![]() |
9355def316 | |
![]() |
2fec366076 | |
![]() |
9ef2c88ed3 | |
![]() |
45e944e2b9 | |
![]() |
de376a99bf | |
![]() |
cdf0d774ab | |
![]() |
b33d7c0361 | |
![]() |
4552c9c33e | |
![]() |
399a58161b | |
![]() |
2d5f6dd675 | |
![]() |
4a7feb66f9 | |
![]() |
03e35cc7c6 | |
![]() |
4e4adf7a72 | |
![]() |
06318fbdd2 | |
![]() |
c2f40b88ef | |
![]() |
9d3b4459ee | |
![]() |
37c4e08ba5 | |
![]() |
4ab0512874 | |
![]() |
935b5e40d9 | |
![]() |
74758fc3c3 | |
![]() |
de4ea9284d | |
![]() |
d996633b12 | |
![]() |
617bb0a093 | |
![]() |
9cccc5197e | |
![]() |
3392f86dcb | |
![]() |
9eefc85b64 | |
![]() |
d202cddd1b | |
![]() |
dbefc1cad6 | |
![]() |
558f644fd3 | |
![]() |
ed337c3de1 | |
![]() |
ece0e168ef | |
![]() |
801033020a | |
![]() |
0352125cad | |
![]() |
de16ea49c7 | |
![]() |
9a26c1a679 | |
![]() |
e3ad33366b | |
![]() |
d9627e3623 | |
![]() |
6c6d498817 | |
![]() |
7dce4be2e2 | |
![]() |
f14abdf749 | |
![]() |
59eaceb148 | |
![]() |
d17986aa41 | |
![]() |
c785340ea9 | |
![]() |
14419282f4 | |
![]() |
fee40bc74d | |
![]() |
1d9bc4c3f7 | |
![]() |
78d3a1f17e | |
![]() |
dc40ef7cb8 | |
![]() |
c6aa7c6673 | |
![]() |
ccafcf7bdc | |
![]() |
b1ff578201 | |
![]() |
feb22a2bda | |
![]() |
3a26c94eee | |
![]() |
645034a89e | |
![]() |
34fed8086c | |
![]() |
3f4d2f6086 | |
![]() |
d1ce973756 | |
![]() |
8a22a9f7e6 | |
![]() |
599b79390c | |
![]() |
3e194b59d9 | |
![]() |
bd5692fdc1 | |
![]() |
61cfbb3c92 | |
![]() |
f1bc1b1fa9 | |
![]() |
ed23ae3ef7 | |
![]() |
8c3f7eb228 | |
![]() |
0c1dd64e5b | |
![]() |
9cddd4d006 | |
![]() |
b97f97159d | |
![]() |
d85589b837 | |
![]() |
588186531c | |
![]() |
3e1793d3f8 | |
![]() |
02a15a72c0 | |
![]() |
e17357a50a | |
![]() |
38d55d9b6d | |
![]() |
f1ec80889d | |
![]() |
8ea9747021 | |
![]() |
31fd8c2705 | |
![]() |
a507276e25 | |
![]() |
e32da31dc2 | |
![]() |
3159f2ec56 | |
![]() |
b78f47b214 | |
![]() |
86ec2d4d22 | |
![]() |
9f24c96ded | |
![]() |
e41b755ebf | |
![]() |
c0b0b6b009 | |
![]() |
c2118cd336 | |
![]() |
31884a4c17 | |
![]() |
cbf68cec58 | |
![]() |
284de9b804 | |
![]() |
aface501a1 | |
![]() |
457be627f0 | |
![]() |
0865b8911e | |
![]() |
96988133b2 | |
![]() |
219da4538e | |
![]() |
d990f9bdb7 | |
![]() |
cce8ab2cd1 | |
![]() |
d14d0f070c | |
![]() |
1640d00e87 | |
![]() |
38c8ff241e | |
![]() |
ddf0178c4c | |
![]() |
e00987ddeb | |
![]() |
c633d08076 | |
![]() |
b9931de1bf | |
![]() |
6b99d319fb | |
![]() |
2a316ee1dc | |
![]() |
29115e711b | |
![]() |
3809876179 | |
![]() |
e25efac5fb | |
![]() |
e0db333ea3 | |
![]() |
ad14408739 | |
![]() |
6c3fb29d53 | |
![]() |
f37c72044e | |
![]() |
2f4feb6b53 | |
![]() |
925a13ac50 | |
![]() |
a713d51e05 | |
![]() |
fe195923a4 | |
![]() |
8416380030 | |
![]() |
91874af0c3 | |
![]() |
9c7f15ad58 | |
![]() |
063c4d6057 | |
![]() |
72ceb60697 | |
![]() |
c44ce3061a | |
![]() |
405f12d1bd | |
![]() |
e4b25fc16b | |
![]() |
73a1416565 | |
![]() |
967cc0886e | |
![]() |
adac035422 | |
![]() |
990704e46b | |
![]() |
4ba921ccc5 | |
![]() |
926e8fcccb | |
![]() |
dc5003a427 | |
![]() |
7da920c496 | |
![]() |
744feb116f | |
![]() |
29732113ea | |
![]() |
84d8c3727c | |
![]() |
3a8975de0a | |
![]() |
e6fb9f44a7 | |
![]() |
a7c451708f | |
![]() |
2dc47e63dd | |
![]() |
8094345153 | |
![]() |
950767e6ad | |
![]() |
9f099eab0b | |
![]() |
d1d9e796af | |
![]() |
a36e4157c0 | |
![]() |
598dbff32f | |
![]() |
8b0e8b2077 | |
![]() |
610ca84283 | |
![]() |
0406714a59 | |
![]() |
4de01a4576 | |
![]() |
0208c7456a | |
![]() |
144a05a66e | |
![]() |
0a7f8fa55d | |
![]() |
ab7cfb9634 | |
![]() |
527c089f1f | |
![]() |
ad17c22e51 | |
![]() |
e18063071a | |
![]() |
1ffae75fae | |
![]() |
fce2a27a1d | |
![]() |
b6e5b6e321 | |
![]() |
2c9e400583 | |
![]() |
c95f759c3b | |
![]() |
95dd33cf9f | |
![]() |
d5138bf885 | |
![]() |
509ab561c9 | |
![]() |
3b781c00e6 | |
![]() |
92080793b3 | |
![]() |
e84db73f31 | |
![]() |
a0360ec936 | |
![]() |
adfc3c4ab2 | |
![]() |
207c64874a | |
![]() |
afd970423e | |
![]() |
af212925e7 | |
![]() |
1c5e0a2a9f | |
![]() |
8ea7d9b3b5 | |
![]() |
bda0095721 | |
![]() |
23b5a458b8 | |
![]() |
bc16a1bfe3 | |
![]() |
9a192d9ab1 | |
![]() |
02dc7a0e66 | |
![]() |
be8b95f803 | |
![]() |
7744332b64 | |
![]() |
9be79ddb64 | |
![]() |
50cc28dab5 | |
![]() |
e587a12ddf | |
![]() |
39751aac97 | |
![]() |
2e0c245e2d | |
![]() |
4bb8744cd5 | |
![]() |
85b4bb1400 | |
![]() |
0cde0fcc19 | |
![]() |
e25d595892 | |
![]() |
21d69fa02a | |
![]() |
30ed94e803 | |
![]() |
5a0257480a | |
![]() |
d4d4bfd3d1 | |
![]() |
49ee6dc302 | |
![]() |
a4177f8e84 | |
![]() |
840dc24b6e | |
![]() |
dfb0efb17a |
|
@ -4,17 +4,19 @@ platform:
|
|||
- x64
|
||||
configuration:
|
||||
- Release
|
||||
cache:
|
||||
- C:\Tools\vcpkg
|
||||
install:
|
||||
- git -C C:\Tools\vcpkg clean -dfq ports toolsrc
|
||||
- git -C C:\Tools\vcpkg clean -dfq docs ports scripts toolsrc triplets versions
|
||||
- git -C C:\Tools\vcpkg pull --force --quiet
|
||||
- C:\Tools\vcpkg\bootstrap-vcpkg
|
||||
- vcpkg --triplet x64-windows --recurse install ffmpeg libepoxy libpng libzip sdl2 sqlite3
|
||||
- vcpkg --triplet x64-windows-release --recurse install ffmpeg libepoxy libpng libzip lua sdl2 sqlite3
|
||||
- vcpkg --no-dry-run upgrade
|
||||
- rd /Q /S C:\Tools\vcpkg\buildtrees
|
||||
before_build:
|
||||
- cmake . -DCMAKE_PREFIX_PATH=C:\Qt\5.12\msvc2017_64 -DCMAKE_TOOLCHAIN_FILE=C:\Tools\vcpkg\scripts\buildsystems\vcpkg.cmake
|
||||
- cmake . -DCMAKE_PREFIX_PATH=C:\Qt\5.15\msvc2019_64 \
|
||||
-DCMAKE_TOOLCHAIN_FILE=C:\Tools\vcpkg\scripts\buildsystems\vcpkg.cmake \
|
||||
-DVCPKG_TARGET_TRIPLET=x64-windows-release \
|
||||
-DCMAKE_CONFIGURATION_TYPES=Release \
|
||||
-DCMAKE_SYSTEM_VERSION=10.0.22000.1
|
||||
build:
|
||||
parallel: true
|
||||
project: mGBA.sln
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
if [ $TRAVIS_OS_NAME = "osx" ]; then
|
||||
brew update
|
||||
brew install qt5 ffmpeg sdl2 libelf libpng libzip
|
||||
else
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install libseccomp2
|
||||
fi
|
33
.travis.yml
|
@ -1,33 +0,0 @@
|
|||
if: type = pull_request OR NOT branch =~ /^(master$|optimization)/ OR fork
|
||||
language: c
|
||||
sudo: required
|
||||
services:
|
||||
- docker
|
||||
os: linux
|
||||
env:
|
||||
- DOCKER_TAG=ubuntu:xenial
|
||||
- DOCKER_TAG=ubuntu:bionic
|
||||
- DOCKER_TAG=ubuntu:disco
|
||||
- DOCKER_TAG=ubuntu:eoan
|
||||
- DOCKER_TAG=3ds
|
||||
- DOCKER_TAG=wii
|
||||
- DOCKER_TAG=vita
|
||||
- DOCKER_TAG=switch
|
||||
- DOCKER_TAG=windows:w32
|
||||
- DOCKER_TAG=windows:w64
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- os: osx
|
||||
osx_image: xcode12.2
|
||||
compiler: clang
|
||||
env: DOCKER_TAG=
|
||||
|
||||
before_install:
|
||||
- '[ -z "$DOCKER_TAG" ] || docker pull mgba/$DOCKER_TAG'
|
||||
- '. ./.travis-deps.sh'
|
||||
- 'mkdir build && chmod 777 build'
|
||||
|
||||
script:
|
||||
- '[ -z "$DOCKER_TAG" ] || docker run -e BUILD_DIR=build -e MAKEFLAGS=-j2 -v $PWD:/home/mgba/src mgba/$DOCKER_TAG'
|
||||
- '[ "$TRAVIS_OS_NAME" != "osx" ] || (cd build && cmake -DCMAKE_PREFIX_PATH="/usr/local/opt/qt5" .. && make -j2)'
|
409
CHANGES
|
@ -1,3 +1,408 @@
|
|||
0.11.0: (Future)
|
||||
Features:
|
||||
- Forwarder support for 3DS and Vita
|
||||
- Custom border support
|
||||
- New option to lock the maximum frame size
|
||||
- Memory access and information logging
|
||||
- 3DS: Add faster "loose" sync mode, default enabled
|
||||
- Vita: Allow using rear touch pads as L2/L3/R2/R3
|
||||
- Scripting: New `input` API for getting raw keyboard/mouse/controller state
|
||||
- Scripting: New `storage` API for saving data for a script, e.g. settings
|
||||
- Scripting: New `image` and `canvas` APIs for drawing images and displaying on-screen
|
||||
- Scripting: Debugger integration to allow for breakpoints and watchpoints
|
||||
- New unlicensed GB mappers: NT (older types 1 and 2), Li Cheng, GGB-81, Sintax
|
||||
- Initial support for bootleg GBA multicarts
|
||||
- Debugger: Add range watchpoints
|
||||
- "Headless" frontend for running tests, automation, etc.
|
||||
Emulation fixes:
|
||||
- ARM: Add framework for coprocessor support
|
||||
- GB Serialize: Add missing Pocket Cam state to savestates
|
||||
- GB Video: Implement DMG-style sprite ordering
|
||||
- GBA: Unhandled bkpt should be treated as an undefined exception
|
||||
- GBA: Add baseline CP0 (Wii U VC) and CP1 (DCC) implementations
|
||||
- GBA Serialize: Fix some minor save state edge cases
|
||||
- GBA Video: Disable BG target 1 blending when OBJ blending (fixes mgba.io/i/2722)
|
||||
- GBA Video: Improve emulation of window start/end conditions (fixes mgba.io/i/1945)
|
||||
Other fixes:
|
||||
- Core: Fix inconsistencies with setting game-specific overrides (fixes mgba.io/i/2963)
|
||||
- Debugger: Fix writing to specific segment in command-line debugger
|
||||
- GBA: Fix getting game info for multiboot ROMs
|
||||
- mGUI: Load parent directory if last used directory is missing (fixes mgba.io/i/3379)
|
||||
- Qt: Fix savestate preview sizes with different scales (fixes mgba.io/i/2560)
|
||||
- Qt: Fix potential crash when configuring shortcuts
|
||||
- Qt: Fix regression where loading BIOS creates a save file (fixes mgba.io/i/3359)
|
||||
Misc:
|
||||
- 3DS: Change title ID to avoid conflict with commercial title (fixes mgba.io/i/3023)
|
||||
- Core: Handle relative paths for saves, screenshots, etc consistently (fixes mgba.io/i/2826)
|
||||
- Core: Improve rumble emulation by averaging state over entire frame (fixes mgba.io/i/3232)
|
||||
- Core: Add MD5 hashing for ROMs
|
||||
- Core: Add support for specifying an arbitrary portable directory
|
||||
- Core: Add SHA1 hashing for ROMs
|
||||
- FFmpeg: Add Ut Video option
|
||||
- GB: Prevent incompatible BIOSes from being used on differing models
|
||||
- GB Serialize: Add missing savestate support for MBC6 and NT (newer)
|
||||
- GBA: Improve detection of valid ELF ROMs
|
||||
- GBA Audio: Remove broken XQ audio pending rewrite
|
||||
- GBA BIOS: Move SoftReset implementation to assembly
|
||||
- GBA Memory: Improve VRAM access stall cycle estimation
|
||||
- GBA SIO: Rewrite lockstep driver for improved stability
|
||||
- GBA Video: Add special circlular window handling in OpenGL renderer
|
||||
- Libretro: Add Super Game Boy Color support (closes mgba.io/i/3188)
|
||||
- mGUI: Enable auto-softpatching (closes mgba.io/i/2899)
|
||||
- mGUI: Persist fast forwarding after closing menu (fixes mgba.io/i/2414)
|
||||
- mGUI: Wrap around menu cursor when navigating past end (closes mgba.io/i/3356)
|
||||
- Qt: Handle multiple save game files for disparate games separately (fixes mgba.io/i/2887)
|
||||
- Qt: Remove maligned double-click-to-fullscreen shortcut (closes mgba.io/i/2632)
|
||||
- Qt: Pass logging context through to video proxy thread (fixes mgba.io/i/3095)
|
||||
- Qt: Show maker code and game version in ROM info
|
||||
- Qt: Show a dummy shader settings tab if shaders aren't supported
|
||||
- Qt: Allow passing multiple games on command line for multiplayer (closes mgba.io/i/3061)
|
||||
- Qt: Support building against Qt 6
|
||||
- Qt: Add shortcuts to increment fast forward speed (mgba.io/i/2903)
|
||||
- Qt: Enable ROM preloading by default
|
||||
- Res: Port hq2x and OmniScale shaders from SameBoy
|
||||
- Res: Port NSO-gba-colors shader (closes mgba.io/i/2834)
|
||||
- Res: Update gba-colors shader (closes mgba.io/i/2976)
|
||||
- Scripting: Add `callbacks:oneshot` for single-call callbacks
|
||||
|
||||
0.10.5: (2025-03-08)
|
||||
Other fixes:
|
||||
- ARM Debugger: Fix disassembly of ror r0 barrel shift (fixes mgba.io/i/3412)
|
||||
- FFmpeg: Fix failing to record videos with CRF video (fixes mgba.io/i/3368)
|
||||
- GB Core: Fix cloning savedata when backing file is outdated (fixes mgba.io/i/3388)
|
||||
- GBA Cheats: Let VBA-style codes patch ROM (fixes mgba.io/i/3423)
|
||||
- GBA Core: Fix booting into BIOS when skip BIOS is enabled
|
||||
- GBA Hardware: Fix loading states unconditionally overwriting GPIO memory
|
||||
- Updater: Fix rewriting folders and files on Windows (fixes mgba.io/i/3384)
|
||||
- Wii: Fix crash on loading large ZIP files (fixes mgba.io/i/3404)
|
||||
Misc:
|
||||
- GB: Allow use of CGB-E and AGB-0 BIOS versions (closes mgba.io/i/3427)
|
||||
|
||||
0.10.4: (2024-12-07)
|
||||
Emulation fixes:
|
||||
- GB Audio: Fix audio envelope timing resetting too often (fixes mgba.io/i/3164)
|
||||
- GB I/O: Fix STAT writing IRQ trigger conditions (fixes mgba.io/i/2501)
|
||||
- GBA GPIO: Fix gyro read-out start (fixes mgba.io/i/3141)
|
||||
- GBA I/O: Fix HALTCNT access behavior (fixes mgba.io/i/2309)
|
||||
- GBA I/O: Fix audio register 8-bit write behavior (fixes mgba.io/i/3086)
|
||||
- GBA Serialize: Properly restore GPIO register state (fixes mgba.io/i/3294)
|
||||
- GBA SIO: Fix MULTI mode SIOCNT bit 7 writes on secondary GBAs (fixes mgba.io/i/3110)
|
||||
Other fixes:
|
||||
- Core: Fix patch autoloading leaking the file handle
|
||||
- GB: Fix uninitialized save data when loading undersized temporary saves
|
||||
- GB, GBA Core: Fix memory leak if reloading debug symbols
|
||||
- GB Serialize: Prevent loading invalid states where LY >= 144 in modes other than 1
|
||||
- GBA Audio: Fix crash if audio FIFOs and timers get out of sync
|
||||
- GBA Audio: Fix crash in audio subsampling if timing lockstep breaks
|
||||
- GBA Core: Fix loading symbols from ELF files if the file doesn't end with .elf
|
||||
- GBA Memory: Let raw access read high MMIO addresses
|
||||
- Qt: Fix crash when applying changes to GB I/O registers in I/O view
|
||||
- Qt: Fix LCDC background priority/enable bit being mis-mapped in I/O view
|
||||
- Qt: Fix saving named states breaking when screenshot states disabled (fixes mgba.io/i/3320)
|
||||
- Qt: Fix potential crash on Wayland with OpenGL (fixes mgba.io/i/3276)
|
||||
- Qt: Fix installer updates if a version number is in the filename (fixes mgba.io/i/3109)
|
||||
- Updater: Fix updating appimage across filesystems
|
||||
Misc:
|
||||
- Qt: Make window corners square on Windows 11 (fixes mgba.io/i/3285)
|
||||
- Switch: Add bilinear filtering option (closes mgba.io/i/3111)
|
||||
- Vita: Add imc0 and xmc0 mount point support
|
||||
|
||||
0.10.3: (2024-01-07)
|
||||
Emulation fixes:
|
||||
- ARM: Remove obsolete force-alignment in `bx pc` (fixes mgba.io/i/2964)
|
||||
- ARM: Fake bpkt instruction should take no cycles (fixes mgba.io/i/2551)
|
||||
- GB Audio: Fix channels 1/2 staying muted if restarted after long silence
|
||||
- GB Audio: Fix channel 1 restarting if sweep applies after stop (fixes mgba.io/i/2965)
|
||||
- GB Audio: Fix restarting envelope when writing to register (fixes mgba.io/i/3067)
|
||||
- GB Audio: Improve "zombie mode" emulation in CGB mode (fixes mgba.io/i/2029)
|
||||
- GB I/O: Read back proper SVBK value after writing 0 (fixes mgba.io/i/2921)
|
||||
- GB SIO: Disabling SIO should cancel pending transfers (fixes mgba.io/i/2537)
|
||||
- GBA Audio: Fix sample timing drifting when changing sample interval
|
||||
- GBA Audio: Fix initial channel 3 wave RAM (fixes mgba.io/i/2947)
|
||||
- GBA Audio: Fix sample position issues when rate changes (fixes mgba.io/i/3006)
|
||||
- GBA GPIO: Fix tilt scale and orientation (fixes mgba.io/i/2703)
|
||||
- GBA BIOS: Fix clobbering registers with word-sized CpuSet
|
||||
- GBA SIO: Fix normal mode SI/SO semantics (fixes mgba.io/i/2925)
|
||||
Other fixes:
|
||||
- GB: Fix applying a patch that changes the cartridge mapper (fixes mgba.io/i/3077)
|
||||
- GBA Savedata: Fix crash when resizing flash save games for RTC data
|
||||
- mGUI: Fix cases where an older save state screenshot would be shown (fixes mgba.io/i/2183)
|
||||
- Qt: Re-enable sync for multiplayer windows that aren't connected (fixes mgba.io/i/2974)
|
||||
- Qt: Fix mute settings not being loaded on setting screen (fixes mgba.io/i/2990)
|
||||
- Qt: Fix screen freezing on macOS after closing save state window (fixes mgba.io/i/2885)
|
||||
- Vita: Fix camera setting not appearing (fixes mgba.io/i/3012)
|
||||
Misc:
|
||||
- mGUI: Persist fast forwarding after closing menu (fixes mgba.io/i/2414)
|
||||
- Qt: Add exporting of SAV + RTC saves from Save Converter to strip RTC data
|
||||
- VFS: Use anonymousMemoryMap for large 7z allocations (fixes mgba.io/i/3013)
|
||||
|
||||
0.10.2: (2023-04-23)
|
||||
Emulation fixes:
|
||||
- GBA Audio: Fix improperly deserializing GB audio registers (fixes mgba.io/i/2793)
|
||||
- GBA Audio: Clear GB audio state when disabled
|
||||
- GBA Memory: Make VRAM access stalls only apply to BG RAM
|
||||
- GBA Overrides: Fix saving in PMD:RRT (JP) (fixes mgba.io/i/2862)
|
||||
- GBA SIO: Fix SIOCNT SI pin value after attaching player 2 (fixes mgba.io/i/2805)
|
||||
- GBA SIO: Fix unconnected normal mode SIOCNT SI bit (fixes mgba.io/i/2810)
|
||||
- GBA SIO: Normal mode transfers with no clock should not finish (fixes mgba.io/i/2811)
|
||||
- GBA Timers: Cascading timers don't tick when disabled (fixes mgba.io/i/2812)
|
||||
- GBA Video: Fix interpolation issues with OpenGL renderer
|
||||
Other fixes:
|
||||
- Core: Allow sending thread requests to a crashed core (fixes mgba.io/i/2784)
|
||||
- FFmpeg: Force lower sample rate for codecs not supporting high rates (fixes mgba.io/i/2869)
|
||||
- Qt: Fix crash when attempting to use OpenGL 2.1 to 3.1 (fixes mgba.io/i/2794)
|
||||
- Qt: Disable sync while running scripts from main thread (fixes mgba.io/i/2738)
|
||||
- Qt: Properly cap number of attached players by platform (fixes mgba.io/i/2807)
|
||||
- Qt: Disable attempted linking betwen incompatible platforms (fixes mgba.io/i/2702)
|
||||
- Qt: Fix modifier key names in shortcut editor (fixes mgba.io/i/2817)
|
||||
- Qt: Fix a handful of edge cases with graphics viewers (fixes mgba.io/i/2827)
|
||||
- Qt: Fix full-buffer rewind
|
||||
- Qt: Fix crash if loading a shader fails
|
||||
- Qt: Fix black screen when starting with a game (fixes mgba.io/i/2781)
|
||||
- Qt: Fix OSD on modern macOS (fixes mgba.io/i/2736)
|
||||
- Qt: Fix checked state of mute menu option at load (fixes mgba.io/i/2701)
|
||||
- Qt: Remove OpenGL proxy thread and override SwapInterval directly instead
|
||||
- Scripting: Fix receiving packets for client sockets
|
||||
- Scripting: Fix empty receive calls returning unknown error on Windows
|
||||
- Scripting: Return proper callback ID from socket.add
|
||||
- Vita: Work around broken mktime implementation in Vita SDK (fixes mgba.io/i/2876)
|
||||
Misc:
|
||||
- Qt: Include wayland QPA in AppImage (fixes mgba.io/i/2796)
|
||||
- Qt: Stop eating boolean action key events (fixes mgba.io/i/2636)
|
||||
- Qt: Automatically change video file extension as appropriate
|
||||
- Qt: Swap P1 and other player's save if P1 loaded it first (closes mgba.io/i/2750)
|
||||
|
||||
0.10.1: (2023-01-10)
|
||||
Emulation fixes:
|
||||
- GB Audio: Fix channels 1/2 not playing when resetting volume (fixes mgba.io/i/2614)
|
||||
- GB Audio: Fix channel 3 volume being changed between samples (fixes mgba.io/i/1896)
|
||||
- GB Audio: Fix up boot sequence
|
||||
- GB Audio: Fix updating channels other than 2 when writing NR5x
|
||||
- GB Memory: Actually, HDMAs should start when LCD is off (fixes mgba.io/i/2662)
|
||||
- GB Serialize: Don't write BGP/OBP when loading SCGB state (fixes mgba.io/i/2694)
|
||||
- GB SIO: Further fix bidirectional transfer starting
|
||||
- GBA: Fix resetting key IRQ state (fixes mgba.io/i/2716)
|
||||
- GBA BIOS: Include timing in degenerate ArcTan2 cases (fixes mgba.io/i/2763)
|
||||
- GBA Video: Ignore disabled backgrounds as OBJ blend target (fixes mgba.io/i/2489)
|
||||
Other fixes:
|
||||
- GBA: Fix forceskip BIOS logic for multiboot ROMs (fixes mgba.io/i/2753)
|
||||
- GBA Cheats: Fix issues detecting unencrypted cheats (fixes mgba.io/i/2724)
|
||||
- Qt: Manually split filename to avoid overzealous splitting (fixes mgba.io/i/2681)
|
||||
- Qt: Fix scanning specific e-Reader dotcodes (fixes mgba.io/i/2693)
|
||||
- Qt: Don't re-enable sync if GBA link modes aren't the same (fixes mgba.io/i/2044)
|
||||
- Qt: Improve handling of multiplayer syncing (fixes mgba.io/i/2720)
|
||||
- Qt: Fix initializing update revision info
|
||||
- Qt: Redo stable branch detection heuristic (fixes mgba.io/i/2679)
|
||||
- Res: Fix species name location in Ruby/Sapphire revs 1/2 (fixes mgba.io/i/2685)
|
||||
- VFS: Fix minizip write returning 0 on success instead of size
|
||||
Misc:
|
||||
- macOS: Add category to plist (closes mgba.io/i/2691)
|
||||
- macOS: Fix modern build with libepoxy (fixes mgba.io/i/2700)
|
||||
- Qt: Keep track of current palette preset name (fixes mgba.io/i/2680)
|
||||
- Qt: Move OpenGL proxy onto its own thread (fixes mgba.io/i/2493)
|
||||
|
||||
0.10.0: (2022-10-11)
|
||||
Features:
|
||||
- Preliminary Lua scripting support
|
||||
- Presets for Game Boy palettes
|
||||
- Add Super Game Boy palettes for original Game Boy games
|
||||
- Tool for converting scanned pictures of e-Reader cards to raw dotcode data
|
||||
- Options for muting when inactive, minimized, or for different players in multiplayer
|
||||
- Cheat code support in homebrew ports
|
||||
- Accelerometer and gyro support for controllers on PC
|
||||
- Support for combo "Super Game Boy Color" SGB + GBC ROM hacks
|
||||
- Improved support for HuC-3 mapper, including RTC
|
||||
- Support for 64 kiB SRAM saves used in some bootlegs
|
||||
- Discord Rich Presence now supports time elapsed
|
||||
- Additional scaling shaders
|
||||
- Support for GameShark Advance SP (.gsv) save file importing
|
||||
- Support for multiple saves per game using .sa2, .sa3, etc.
|
||||
- Support for GBX format Game Boy ROMs
|
||||
- New unlicensed GB mappers: NT (newer type), Sachen (MMC1, MMC2)
|
||||
Emulation fixes:
|
||||
- ARM7: Fix unsigned multiply timing
|
||||
- GB: Copy logo from ROM if not running the BIOS intro (fixes mgba.io/i/2378)
|
||||
- GB: Fix HALT breaking M-cycle alignment (fixes mgba.io/i/250)
|
||||
- GB Audio: Fix channel 1/2 resetting edge cases (fixes mgba.io/i/1925)
|
||||
- GB Audio: Properly apply per-model audio differences
|
||||
- GB Audio: Revamp channel rendering
|
||||
- GB Audio: Fix APU re-enable timing glitch
|
||||
- GB I/O: Fix writing to WAVE RAM behavior (fixes mgba.io/i/1334)
|
||||
- GB MBC: Fix edge case with Pocket Cam register accesses (fixes mgba.io/i/2557)
|
||||
- GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032)
|
||||
- GB Serialize: Fix loading MBC1 states that affect bank 0 (fixes mgba.io/i/2402)
|
||||
- GB SIO: Fix bidirectional transfer starting (fixes mgba.io/i/2290)
|
||||
- GB Video: Draw SGB border pieces that overlap GB graphics (fixes mgba.io/i/1339)
|
||||
- GBA: Improve timing when not booting from BIOS
|
||||
- GBA: Fix expected entry point for multiboot ELFs (fixes mgba.io/i/2450)
|
||||
- GBA: Fix booting multiboot ROMs with no JOY entrypoint
|
||||
- GBA: Fix 1 MiB ROM mirroring to only mirror 4 times
|
||||
- GBA Audio: Adjust PSG sampling rate with SOUNDBIAS
|
||||
- GBA Audio: Sample FIFOs at SOUNDBIAS-set frequency
|
||||
- GBA BIOS: Work around IRQ handling hiccup in Mario & Luigi (fixes mgba.io/i/1059)
|
||||
- GBA BIOS: Initial HLE timing estimation of UnLz77 functions (fixes mgba.io/i/2141)
|
||||
- GBA DMA: Fix DMA source direction bits being cleared (fixes mgba.io/i/2410)
|
||||
- GBA I/O: Redo internal key input, enabling edge-based key IRQs
|
||||
- GBA I/O: Disable open bus behavior on invalid register 06A
|
||||
- GBA Memory: Fix misaligned 32-bit I/O loads (fixes mgba.io/i/2307)
|
||||
- GBA Video: Fix OpenGL rendering on M1 Macs
|
||||
- GBA Video: Ignore horizontally off-screen sprite timing (fixes mgba.io/i/2391)
|
||||
- GBA Video: Fix Hblank timing (fixes mgba.io/i/2131, mgba.io/i/2310)
|
||||
- GBA Video: Fix rare crash in modes 3-5
|
||||
- GBA Video: Fix sprites with mid-frame palette changes in GL (fixes mgba.io/i/2476)
|
||||
- GBA Video: Fix OBJ tile wrapping with 2D char mapping (fixes mgba.io/i/2443)
|
||||
- GBA Video: Fix horizontal lines in GL when charbase is changed (fixes mgba.io/i/1631)
|
||||
- GBA Video: Fix sprite layer priority updating in GL
|
||||
Other fixes:
|
||||
- ARM: Disassemble Thumb mov pseudo-instruction properly
|
||||
- ARM: Disassemble ARM asr/lsr #32 properly
|
||||
- ARM: Disassemble ARM movs properly
|
||||
- Core: Don't attempt to restore rewind diffs past start of rewind
|
||||
- Core: Fix the runloop resuming after a game has crashed (fixes mgba.io/i/2451)
|
||||
- Core: Fix crash if library can't be opened
|
||||
- Debugger: Fix crash with extremely long CLI strings
|
||||
- Debugger: Fix multiple conditional watchpoints at the same address
|
||||
- FFmpeg: Fix crash when encoding audio with some containers
|
||||
- FFmpeg: Fix GIF recording (fixes mgba.io/i/2393)
|
||||
- GB: Fix temporary saves
|
||||
- GB: Fix replacing the ROM crashing when accessing ROM base
|
||||
- GB: Don't try to map a 0-byte SRAM (fixes mgba.io/i/2668)
|
||||
- GB, GBA: Save writeback-pending masked saves on unload (fixes mgba.io/i/2396)
|
||||
- mGUI: Fix FPS counter after closing menu
|
||||
- Qt: Fix some hangs when using the debugger console
|
||||
- Qt: Fix crash when clicking past last tile in viewer
|
||||
- Qt: Fix preloading for ROM replacing
|
||||
- Qt: Fix screen not displaying on Wayland (fixes mgba.io/i/2190)
|
||||
- Qt: Fix crash when selecting 256-color sprite in sprite view
|
||||
- Qt: Fix coloration of swatches on styles with distinct frame backgrounds
|
||||
- VFS: Failed file mapping should return NULL on POSIX
|
||||
Misc:
|
||||
- Core: Suspend runloop when a core crashes
|
||||
- Core: Add wallclock offset RTC type
|
||||
- Debugger: Save and restore CLI history
|
||||
- Debugger: GDB now works while the game is paused
|
||||
- Debugger: Add command to load external symbol file (fixes mgba.io/i/2480)
|
||||
- FFmpeg: Support dynamic audio sample rate
|
||||
- GB: Support CGB0 boot ROM loading
|
||||
- GB Audio: Increase sample rate
|
||||
- GB MBC: Filter out MBC errors when cartridge is yanked (fixes mgba.io/i/2488)
|
||||
- GB MBC: Partially implement TAMA5 RTC
|
||||
- GB Video: Add default SGB border
|
||||
- GBA: Automatically skip BIOS if ROM has invalid logo
|
||||
- GBA: Refine multiboot detection (fixes mgba.io/i/2192)
|
||||
- GBA Cheats: Implement "never" type codes (closes mgba.io/i/915)
|
||||
- GBA DMA: Enhanced logging (closes mgba.io/i/2454)
|
||||
- GBA Memory: Implement adjustable EWRAM waitstates (closes mgba.io/i/1276)
|
||||
- GBA Savedata: Store RTC data in savegames (closes mgba.io/i/240)
|
||||
- GBA Video: Implement layer placement for OpenGL renderer (fixes mgba.io/i/1962)
|
||||
- GBA Video: Fix highlighting for sprites with mid-frame palette changes
|
||||
- mGUI: Add margin to right-aligned menu text (fixes mgba.io/i/871)
|
||||
- mGUI: Autosave less frequently when fast-forwarding
|
||||
- Qt: Rearrange menus some
|
||||
- Qt: Clean up cheats dialog
|
||||
- Qt: Only set default controller bindings if loading fails (fixes mgba.io/i/799)
|
||||
- Qt: Save converter now supports importing GameShark Advance saves
|
||||
- Qt: Save positions of multiplayer windows (closes mgba.io/i/2128)
|
||||
- Qt: Add optional frame counter to OSD (closes mgba.io/i/1728)
|
||||
- Qt: Add optional emulation-related information on reset (closes mgba.io/i/1780)
|
||||
- Qt: Add QOpenGLWidget cross-thread codepath for macOS (fixes mgba.io/i/1754)
|
||||
- Qt: Enable -b for Boot BIOS menu option (fixes mgba.io/i/2074)
|
||||
- Qt: Add tile range selection to tile viewer (closes mgba.io/i/2455)
|
||||
- Qt: Show warning if XQ audio is toggled while loaded (fixes mgba.io/i/2295)
|
||||
- Qt: Add e-Card passing to the command line (closes mgba.io/i/2474)
|
||||
- Qt: Boot both a multiboot image and ROM with CLI args (closes mgba.io/i/1941)
|
||||
- Qt: Improve cheat parsing (fixes mgba.io/i/2297)
|
||||
- Qt: Change lossless setting to use WavPack audio
|
||||
- Qt: Use FFmpeg to convert additional camera formats, if available
|
||||
- Qt: Resume crashed game when loading a save state
|
||||
- Qt: Include cheats in bug report
|
||||
- SDL: Support exposing an axis directly as the gyro value (closes mgba.io/i/2531)
|
||||
- Windows: Attach to console if present
|
||||
- VFS: Early return NULL if attempting to map 0 bytes from a file
|
||||
- Vita: Add bilinear filtering option (closes mgba.io/i/344)
|
||||
|
||||
0.9.3: (2021-12-17)
|
||||
Emulation fixes:
|
||||
- GB I/O: Fix incrementing SGB controller when P14 is low (fixes mgba.io/i/2202)
|
||||
- GB Memory: Add cursory cartridge open bus emulation (fixes mgba.io/i/2032)
|
||||
- GB Video: Render SGB border when unmasking with ATTR/PAL_SET (fixes mgba.io/i/2261)
|
||||
- GBA SIO: Fix SI value for unattached MULTI mode
|
||||
- GBA Video: Fix backdrop color if DISPCNT is first set to 0 (fixes mgba.io/i/2260)
|
||||
- GBA Video: Don't iterate affine backgrounds when disabled
|
||||
- GBA Video: Delay enabling backgrounds in bitmap modes (fixes mgba.io/i/1668)
|
||||
Other fixes:
|
||||
- ARM Decoder: Fix decoding of lsl r0 (fixes mgba.io/i/2349)
|
||||
- FFmpeg: Don't attempt to use YUV 4:2:0 for lossless videos (fixes mgba.io/i/2084)
|
||||
- GB Video: Fix memory leak when resetting SGB games
|
||||
- GBA: Fix out of bounds ROM accesses on patched ROMs smaller than 32 MiB
|
||||
- GBA: Fix maximum tile ID in caching for 256-color modes
|
||||
- GBA Video: Fix cache updating with proxy and GL renderers
|
||||
- Libretro: Fix crash when using Game Boy codes (fixes mgba.io/i/2281)
|
||||
- mGUI: Fix crash if autosave file can't be opened (fixes mgba.io/i/2268)
|
||||
- Qt: Remove potentially deadlocking optimization
|
||||
- Qt: Fix corrupted savestate and fatal error text
|
||||
- Qt: Fix sprite compositing when sprite tiles go out of bounds (fixes mgba.io/i/2348)
|
||||
Misc:
|
||||
- GBA I/O: Update KEYINPUT in internal I/O memory (fixes mgba.io/i/2235)
|
||||
- SDL: Use SDL_JoystickRumble where available
|
||||
- Wii: Add adjustable gyroscope settings (closes mgba.io/i/2245)
|
||||
|
||||
0.9.2: (2021-07-10)
|
||||
Emulation fixes:
|
||||
- GB Video: Clear VRAM on reset (fixes mgba.io/i/2152)
|
||||
- GBA SIO: Add missing NORMAL8 implementation bits (fixes mgba.io/i/2172)
|
||||
- GBA SIO: Fix missing interrupt on an unattached NORMAL transfer
|
||||
- GBA Memory: Fix prefetch mask when swapping modes within a region
|
||||
- GBA Serialize: Fix loading audio enable bit late (fixes mgba.io/i/2230)
|
||||
- GBA Video: Revert scanline latching changes (fixes mgba.io/i/2153, mgba.io/i/2149)
|
||||
Other fixes:
|
||||
- 3DS: Fix disabling "wide" mode on 2DS (fixes mgba.io/i/2167)
|
||||
- ARM Debugger: Fix disassembly alignment (fixes mgba.io/i/2204)
|
||||
- Core: Fix memory leak in opening games from the library
|
||||
- Core: Fix memory searches for relative values (fixes mgba.io/i/2135)
|
||||
- Core: Fix portable mode on macOS
|
||||
- GB Audio: Fix audio channel 4 being slow to deserialize
|
||||
- GB Core: Fix GBC colors setting breaking default model overrides (fixes mgba.io/i/2161)
|
||||
- mGUI: Cache save state screenshot validity in state menu (fixes mgba.io/i/2005)
|
||||
- Qt: Fix eventual deadlock when using sync to video
|
||||
- Qt: Fix applying savetype-only overrides
|
||||
- Qt: Fix crash in sprite view for partially out-of-bounds sprites (fixes mgba.io/i/2165)
|
||||
- Qt: Fix having to press controller buttons twice for menu items (fixes mgba.io/i/2143)
|
||||
- Qt: Redo sensor binding to be less fragile
|
||||
- Qt: Reuse timer when rescheduling missing frames (fixes mgba.io/i/2236)
|
||||
- Qt: Fix bounded fast forward with enhancement OpenGL renderer
|
||||
- Util: Fix loading UPS patches that affect the last byte of the file
|
||||
Misc:
|
||||
- Util: Improve speed of UPS patch loading
|
||||
|
||||
0.9.1: (2021-04-18)
|
||||
Emulation fixes:
|
||||
- ARM: Fix LDM^ with empty rlist (fixes mgba.io/i/2127)
|
||||
- Core: Fix first event scheduling after loading savestate
|
||||
- GB Serialize: Fix switching speed modes when loading a state (fixes mgba.io/i/2097)
|
||||
- GB: Fix skipping BIOS
|
||||
- GBA Memory: Fix loading Thumb savestates when in ARM mode
|
||||
- GBA Video: Fix window start on modes 3-5 with mosaic (fixes mgba.io/i/1690)
|
||||
- GBA Video: Fix mode 3-5 overflow with mosaic (fixes mgba.io/i/1691)
|
||||
Other fixes:
|
||||
- GBA: Fix non-USA 1.0 FireRed misdetecting as a ROM hack (fixes mgba.io/i/2100)
|
||||
- GBA: Fix crash when ROM loading fails
|
||||
- GBA e-Reader: Fix bitmap short strip scanning
|
||||
- GBA Video: Fix mode 5 frame 1 caching (fixes mgba.io/i/2075)
|
||||
- GBA Video: Don't attempt to copy invalid registers when switching renderer
|
||||
- Qt: Fix crash when switching from high-resolution OpenGL renderer to software
|
||||
- Qt: Fix OpenGL renderer lagging behind when fast-forwarding (fixes mgba.io/i/2094)
|
||||
- Qt: Fix smudged window icon on Windows
|
||||
- Qt: Fix saving settings enabling camera when camera name changes (fixes mgba.io/i/2125)
|
||||
- Qt: Fix frames getting backlogged (fixes mgba.io/i/2122)
|
||||
- Qt: Restore maximized state when starting (fixes mgba.io/i/487)
|
||||
Misc:
|
||||
- Core: Truncate preloading ROMs that slightly exceed max size (fixes mgba.io/i/2093)
|
||||
- GBA: Default-enable VBA bug compat for Ruby and Emerald ROM hacks
|
||||
- GBA Memory: Log GPIO writes on non-GPIO carts as Pak Hardware instead of Memory
|
||||
- Qt: Add ROM filename and size to bug reporter
|
||||
- Qt: Improve handling of disabling VBA bug compat mode (fixes mgba.io/i/2129)
|
||||
|
||||
0.9.0: (2021-03-28)
|
||||
Features:
|
||||
- e-Reader card scanning
|
||||
|
@ -39,7 +444,7 @@ Emulation fixes:
|
|||
- GBA BIOS: Implement dummy sound driver calls
|
||||
- GBA BIOS: Improve HLE BIOS timing
|
||||
- GBA BIOS: Fix reloading video registers after reset (fixes mgba.io/i/1808)
|
||||
- GBA BIOS: Make HLE BIOS calls interruptable (fixes mgba.io/i/1711 and mgba.io/i/1823)
|
||||
- GBA BIOS: Make HLE BIOS calls interruptible (fixes mgba.io/i/1711 and mgba.io/i/1823)
|
||||
- GBA BIOS: Fix invalid decompression bounds checking
|
||||
- GBA DMA: Linger last DMA on bus (fixes mgba.io/i/301 and mgba.io/i/1320)
|
||||
- GBA DMA: Fix ordering and timing of overlapping DMAs
|
||||
|
@ -55,7 +460,7 @@ Emulation fixes:
|
|||
- GBA Serialize: Fix alignment check when loading states
|
||||
- GBA SIO: Fix copying Normal mode transfer values
|
||||
- GBA SIO: Fix Normal mode being totally broken (fixes mgba.io/i/1800)
|
||||
- GBA SIO: Fix deseralizing SIO registers
|
||||
- GBA SIO: Fix deserializing SIO registers
|
||||
- GBA SIO: Fix hanging on starting a second multiplayer window (fixes mgba.io/i/854)
|
||||
- GBA SIO: Fix Normal mode transfer start timing (fixes mgba.io/i/425)
|
||||
- GBA Timers: Fix toggling timer cascading while timer is active (fixes mgba.io/i/2043)
|
||||
|
|
526
CMakeLists.txt
|
@ -1,4 +1,4 @@
|
|||
cmake_minimum_required(VERSION 3.1)
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/src/platform/cmake/")
|
||||
|
||||
if(POLICY CMP0025)
|
||||
|
@ -22,14 +22,11 @@ if(NOT LIBMGBA_ONLY)
|
|||
set(BINARY_NAME ${BINARY_NAME} CACHE INTERNAL "Name of output binaries")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
if(NOT MSVC)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
||||
if(SWITCH OR 3DS)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_EXTENSIONS ON)
|
||||
elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "4.3")
|
||||
if(SWITCH OR 3DS OR (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "4.3"))
|
||||
set(CMAKE_C_EXTENSIONS ON)
|
||||
endif()
|
||||
set(WARNING_FLAGS "-Wall -Wextra -Wno-missing-field-initializers")
|
||||
|
@ -37,19 +34,23 @@ if(NOT MSVC)
|
|||
# mingw32 likes to complain about using the "wrong" format strings despite them actually working
|
||||
set(WARNING_FLAGS "${WARNING_FLAGS} -Wno-format")
|
||||
endif()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=implicit-function-declaration")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS}")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WARNING_FLAGS} -Werror=implicit-function-declaration -Werror=implicit-int -fwrapv")
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
|
||||
# TODO: Remove this once mScript KV pairs support const correctness
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=incompatible-pointer-types")
|
||||
endif()
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WARNING_FLAGS} -Woverloaded-virtual -Werror=reorder")
|
||||
else()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS /wd4003 /wd4244 /wd4146 /wd4267")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS /wd4003 /wd4244 /wd4146 /wd4267")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_CRT_SECURE_NO_WARNINGS /wd4003 /wd4244 /wd4146 /wd4267 /Zc:preprocessor-")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_CRT_SECURE_NO_WARNINGS /wd4003 /wd4244 /wd4146 /wd4267 /Zc:preprocessor-")
|
||||
endif()
|
||||
|
||||
if(NOT LIBMGBA_ONLY)
|
||||
set(USE_DEBUGGERS ON CACHE BOOL "Whether or not to enable the debugging infrastructure")
|
||||
set(ENABLE_DEBUGGERS ON CACHE BOOL "Whether or not to enable the debugging infrastructure")
|
||||
if (NOT WIN32)
|
||||
set(USE_EDITLINE ON CACHE BOOL "Whether or not to enable the CLI-mode debugger")
|
||||
endif()
|
||||
set(USE_GDB_STUB ON CACHE BOOL "Whether or not to enable the GDB stub ARM debugger")
|
||||
set(ENABLE_GDB_STUB ON CACHE BOOL "Whether or not to enable the GDB stub ARM debugger")
|
||||
set(USE_FFMPEG ON CACHE BOOL "Whether or not to enable FFmpeg support")
|
||||
set(USE_ZLIB ON CACHE BOOL "Whether or not to enable zlib support")
|
||||
set(USE_MINIZIP ON CACHE BOOL "Whether or not to enable external minizip support")
|
||||
|
@ -57,6 +58,8 @@ if(NOT LIBMGBA_ONLY)
|
|||
set(USE_LIBZIP ON CACHE BOOL "Whether or not to enable LIBZIP support")
|
||||
set(USE_SQLITE3 ON CACHE BOOL "Whether or not to enable SQLite3 support")
|
||||
set(USE_ELF ON CACHE BOOL "Whether or not to enable ELF support")
|
||||
set(USE_LUA ON CACHE BOOL "Whether or not to enable Lua scripting support")
|
||||
set(USE_JSON_C ON CACHE BOOL "Whether or not to enable JSON-C support")
|
||||
set(M_CORE_GBA ON CACHE BOOL "Build Game Boy Advance core")
|
||||
set(M_CORE_GB ON CACHE BOOL "Build Game Boy core")
|
||||
set(USE_LZMA ON CACHE BOOL "Whether or not to enable 7-Zip support")
|
||||
|
@ -65,21 +68,21 @@ if(NOT LIBMGBA_ONLY)
|
|||
set(BUILD_QT ON CACHE BOOL "Build Qt frontend")
|
||||
set(BUILD_SDL ON CACHE BOOL "Build SDL frontend")
|
||||
set(BUILD_LIBRETRO OFF CACHE BOOL "Build libretro core")
|
||||
if(APPLE)
|
||||
set(BUILD_OPENEMU OFF CACHE BOOL "Build OpenEmu core")
|
||||
endif()
|
||||
set(BUILD_PERF OFF CACHE BOOL "Build performance profiling tool")
|
||||
set(BUILD_TEST OFF CACHE BOOL "Build testing harness")
|
||||
set(BUILD_SUITE OFF CACHE BOOL "Build test suite")
|
||||
set(BUILD_CINEMA OFF CACHE BOOL "Build video tests suite")
|
||||
set(BUILD_HEADLESS OFF CACHE BOOL "Build headless tool")
|
||||
set(BUILD_EXAMPLE OFF CACHE BOOL "Build example frontends")
|
||||
set(BUILD_PYTHON OFF CACHE BOOL "Build Python bindings")
|
||||
set(BUILD_STATIC OFF CACHE BOOL "Build a static library")
|
||||
set(BUILD_SHARED ON CACHE BOOL "Build a shared library")
|
||||
set(SKIP_LIBRARY OFF CACHE BOOL "Skip building the library (useful for only building libretro or OpenEmu cores)")
|
||||
set(SKIP_LIBRARY OFF CACHE BOOL "Skip building the library (useful for only building libretro core)")
|
||||
set(BUILD_GL ON CACHE BOOL "Build with OpenGL")
|
||||
set(BUILD_GLES2 ON CACHE BOOL "Build with OpenGL|ES 2")
|
||||
set(BUILD_GLES3 OFF CACHE BOOL "Build with OpenGL|ES 3")
|
||||
set(BUILD_GLES3 ON CACHE BOOL "Build with OpenGL|ES 3")
|
||||
set(BUILD_DOCGEN OFF CACHE BOOL "Build the scripting API documentation generator")
|
||||
set(BUILD_MAINTAINER_TOOLS OFF CACHE BOOL "Build tools only useful for maintainers")
|
||||
set(USE_EPOXY ON CACHE STRING "Build with libepoxy")
|
||||
set(DISABLE_DEPS OFF CACHE BOOL "Build without dependencies")
|
||||
set(DISTBUILD OFF CACHE BOOL "Build distribution packages")
|
||||
|
@ -87,6 +90,8 @@ if(NOT LIBMGBA_ONLY)
|
|||
set(WIN32_UNIX_PATHS OFF CACHE BOOL "Use Unix-like paths")
|
||||
mark_as_advanced(WIN32_UNIX_PATHS)
|
||||
endif()
|
||||
mark_as_advanced(BUILD_DOCGEN)
|
||||
mark_as_advanced(BUILD_MAINTAINER_TOOLS)
|
||||
else()
|
||||
set(DISABLE_FRONTENDS ON)
|
||||
set(DISABLE_DEPS ON)
|
||||
|
@ -119,6 +124,10 @@ else()
|
|||
set(CMAKE_INSTALL_INCLUDEDIR "include")
|
||||
endif()
|
||||
|
||||
if(APPLE AND DISTBUILD)
|
||||
set(CMAKE_INSTALL_DOCDIR ".")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED LIBDIR)
|
||||
set(LIBDIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
endif()
|
||||
|
@ -132,11 +141,6 @@ if (BUILD_LIBRETRO)
|
|||
mark_as_advanced(LIBRETRO_LIBDIR)
|
||||
endif()
|
||||
|
||||
if (BUILD_OPENEMU)
|
||||
set(OE_LIBDIR "${LIBDIR}" CACHE PATH "Installed library directory (OpenEmu)")
|
||||
mark_as_advanced(OE_LIBDIR)
|
||||
endif()
|
||||
|
||||
if (DISTBUILD)
|
||||
set(EXTRA_LICENSES "" CACHE FILEPATH "Extra licenses to include in distribution packaages")
|
||||
mark_as_advanced(EXTRA_LICENSES)
|
||||
|
@ -144,12 +148,17 @@ endif()
|
|||
mark_as_advanced(DISTBUILD)
|
||||
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${LIBDIR}")
|
||||
if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
|
||||
set(CMAKE_SKIP_RPATH ON)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED MANDIR)
|
||||
set(MANDIR ${CMAKE_INSTALL_MANDIR})
|
||||
endif()
|
||||
|
||||
include(FindFeature)
|
||||
include(FindFunction)
|
||||
include(DebugStrip)
|
||||
|
||||
# Version information
|
||||
add_custom_target(${BINARY_NAME}-version-info ALL
|
||||
|
@ -166,7 +175,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/core/version.c.in ${CMAKE_CURRENT
|
|||
source_group("Generated sources" FILES ${CMAKE_CURRENT_BINARY_DIR}/version.c)
|
||||
|
||||
# Advanced settings
|
||||
if(NOT (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_COMPILER_VERSION VERSION_LESS "4.5"))
|
||||
if(NOT (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "4.5"))
|
||||
set(DEFAULT_LTO ON)
|
||||
else()
|
||||
set(DEFAULT_LTO OFF)
|
||||
|
@ -199,19 +208,22 @@ elseif(BUILD_PGO AND PGO_STAGE_2)
|
|||
endif()
|
||||
|
||||
# Platform support
|
||||
set(OS_DEFINES)
|
||||
if(WIN32)
|
||||
set(WIN32_VERSION "${LIB_VERSION_MAJOR},${LIB_VERSION_MINOR},${LIB_VERSION_PATCH}")
|
||||
add_definitions(-D_WIN32_WINNT=0x0600)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||
if(MSVC)
|
||||
add_definitions(-DNOMINMAX -DWIN32_LEAN_AND_MEAN)
|
||||
add_definitions(-D_UNICODE -DUNICODE)
|
||||
else()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -municode")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -municode")
|
||||
add_definitions(-D_GNU_SOURCE)
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
add_compile_definitions(_FILE_OFFSET_BITS=64)
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND OS_LIB ws2_32 shlwapi)
|
||||
list(APPEND CORE_VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-fd.c ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/windows/vfs-w32.c)
|
||||
list(APPEND OS_DEFINES ENABLE_VFS_FD)
|
||||
list(APPEND VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-fd.c ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/windows/vfs-w32.c)
|
||||
file(GLOB OS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/windows/*.c)
|
||||
source_group("Windows-specific code" FILES ${OS_SRC})
|
||||
elseif(UNIX)
|
||||
|
@ -221,15 +233,35 @@ elseif(UNIX)
|
|||
add_definitions(-D_GNU_SOURCE)
|
||||
endif()
|
||||
|
||||
list(APPEND CORE_VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-fd.c ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-dirent.c)
|
||||
list(APPEND OS_DEFINES ENABLE_VFS_FD)
|
||||
list(APPEND VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-fd.c ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-dirent.c)
|
||||
file(GLOB OS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/posix/*.c)
|
||||
source_group("POSIX-specific code" FILES ${OS_SRC})
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
execute_process(COMMAND xcrun --show-sdk-version OUTPUT_VARIABLE MACOSX_SDK)
|
||||
if(NOT MACOSX_SDK)
|
||||
message(WARNING "Could not detect SDK version; defaulting to system version. Is SDKROOT set?")
|
||||
set(MACOSX_SDK ${CMAKE_SYSTEM_VERSION})
|
||||
endif()
|
||||
add_definitions(-D_DARWIN_C_SOURCE)
|
||||
if(CMAKE_SYSTEM_VERSION VERSION_GREATER "10.5.8")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.6")
|
||||
list(APPEND OS_LIB "-framework Foundation")
|
||||
|
||||
# Xcode 15 introduced a warning about duplicate libraries that CMake doesn't disable itself, we do it here globally
|
||||
if(MACOSX_SDK VERSION_GREATER_EQUAL 10.15)
|
||||
add_link_options(LINKER:-no_warn_duplicate_libraries)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_SYSTEM_VERSION VERSION_LESS "10.0") # Darwin 10.x is Mac OS X 10.6
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.6")
|
||||
endif()
|
||||
# Not supported until Xcode 9
|
||||
if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "9")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__STDC_NO_THREADS__=1")
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D__STDC_NO_THREADS__=1")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
@ -251,20 +283,6 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "Clang" OR
|
|||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -gdwarf")
|
||||
endif()
|
||||
|
||||
if(BUILD_BBB OR BUILD_RASPI OR BUILD_PANDORA)
|
||||
if(NOT BUILD_EGL)
|
||||
add_definitions(-DCOLOR_16_BIT -DCOLOR_5_6_5)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(BUILD_RASPI)
|
||||
set(BUILD_GL OFF CACHE BOOL "OpenGL not supported" FORCE)
|
||||
endif()
|
||||
|
||||
if(BUILD_PANDORA)
|
||||
add_definitions(-DBUILD_PANDORA)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm.*")
|
||||
enable_language(ASM)
|
||||
endif()
|
||||
|
@ -275,7 +293,7 @@ endif()
|
|||
|
||||
if(DEFINED 3DS OR DEFINED PSP2 OR DEFINED WII OR DEFINED SWITCH)
|
||||
set(IS_EMBEDDED ON)
|
||||
set(USE_DEBUGGERS OFF)
|
||||
set(ENABLE_DEBUGGERS OFF)
|
||||
set(USE_SQLITE3 OFF)
|
||||
set(USE_DISCORD_RPC OFF)
|
||||
set(USE_LIBZIP OFF CACHE BOOL "")
|
||||
|
@ -287,12 +305,12 @@ if(DEFINED SWITCH)
|
|||
endif()
|
||||
|
||||
if(NOT M_CORE_GBA)
|
||||
set(USE_GDB_STUB OFF)
|
||||
set(ENABLE_GDB_STUB OFF)
|
||||
endif()
|
||||
|
||||
if(NOT USE_DEBUGGERS)
|
||||
if(NOT ENABLE_DEBUGGERS)
|
||||
set(USE_EDITLINE OFF)
|
||||
set(USE_GDB_STUB OFF)
|
||||
set(ENABLE_GDB_STUB OFF)
|
||||
endif()
|
||||
|
||||
if(WII)
|
||||
|
@ -300,46 +318,41 @@ if(WII)
|
|||
endif()
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckFunctionExists)
|
||||
include(CheckIncludeFiles)
|
||||
check_function_exists(strdup HAVE_STRDUP)
|
||||
check_function_exists(strndup HAVE_STRNDUP)
|
||||
check_function_exists(strlcpy HAVE_STRLCPY)
|
||||
check_function_exists(vasprintf HAVE_VASPRINTF)
|
||||
if(NOT DEFINED PSP2)
|
||||
check_function_exists(localtime_r HAVE_LOCALTIME_R)
|
||||
|
||||
set(FUNCTION_DEFINES)
|
||||
|
||||
find_function(strdup)
|
||||
find_function(strlcpy)
|
||||
find_function(strndup)
|
||||
find_function(vasprintf)
|
||||
|
||||
find_function(freelocale)
|
||||
find_function(newlocale)
|
||||
find_function(setlocale)
|
||||
find_function(snprintf_l)
|
||||
find_function(uselocale)
|
||||
|
||||
find_function(popcount32)
|
||||
|
||||
find_function(futimens)
|
||||
find_function(futimes)
|
||||
find_function(localtime_r)
|
||||
|
||||
find_function(realpath)
|
||||
|
||||
if(ANDROID AND ANDROID_NDK_MAJOR GREATER 13)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_STRTOF_L)
|
||||
elseif(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# The strtof_l on Linux not actually exposed nor actually strtof_l
|
||||
find_function(strtof_l)
|
||||
endif()
|
||||
|
||||
check_include_files("xlocale.h" HAVE_XLOCALE)
|
||||
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Generic")
|
||||
check_function_exists(snprintf_l HAVE_SNPRINTF_L)
|
||||
if(ANDROID AND ANDROID_NDK_MAJOR GREATER 13)
|
||||
set(HAVE_STRTOF_L ON)
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
# The strtof_l on Linux not actually exposed nor actually strtof_l
|
||||
set(HAVE_STRTOF_L OFF)
|
||||
else()
|
||||
check_function_exists(strtof_l HAVE_STRTOF_L)
|
||||
endif()
|
||||
check_function_exists(newlocale HAVE_NEWLOCALE)
|
||||
check_function_exists(freelocale HAVE_FREELOCALE)
|
||||
check_function_exists(uselocale HAVE_USELOCALE)
|
||||
check_function_exists(setlocale HAVE_SETLOCALE)
|
||||
else()
|
||||
if(DEFINED 3DS OR DEFINED WII OR DEFINED SWITCH)
|
||||
set(CMAKE_REQUIRED_FLAGS -Wl,--require-defined,snprintf_l)
|
||||
check_function_exists(snprintf_l HAVE_SNPRINTF_L)
|
||||
set(CMAKE_REQUIRED_FLAGS -Wl,--require-defined,strtof_l)
|
||||
check_function_exists(strtof_l HAVE_STRTOF_L)
|
||||
set(CMAKE_REQUIRED_FLAGS -Wl,--require-defined,newlocale)
|
||||
check_function_exists(newlocale HAVE_NEWLOCALE)
|
||||
set(CMAKE_REQUIRED_FLAGS -Wl,--require-defined,freelocale)
|
||||
check_function_exists(freelocale HAVE_FREELOCALE)
|
||||
set(CMAKE_REQUIRED_FLAGS -Wl,--require-defined,uselocale)
|
||||
check_function_exists(uselocale HAVE_USELOCALE)
|
||||
set(CMAKE_REQUIRED_FLAGS -Wl,--require-defined,setlocale)
|
||||
check_function_exists(setlocale HAVE_SETLOCALE)
|
||||
unset(CMAKE_REQUIRED_FLAGS)
|
||||
endif()
|
||||
|
||||
set(ENABLE_VFS ON)
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "Generic")
|
||||
if(NOT IS_EMBEDDED)
|
||||
set(DISABLE_DEPS ON CACHE BOOL "This platform cannot build with dependencies" FORCE)
|
||||
endif()
|
||||
|
@ -350,9 +363,6 @@ else()
|
|||
set(ENABLE_EXTRA ON)
|
||||
endif()
|
||||
|
||||
check_function_exists(chmod HAVE_CHMOD)
|
||||
check_function_exists(umask HAVE_UMASK)
|
||||
|
||||
if(USE_PTHREADS)
|
||||
check_include_files("pthread.h" HAVE_PTHREAD_H)
|
||||
if(HAVE_PTHREAD_H)
|
||||
|
@ -362,79 +372,33 @@ if(USE_PTHREADS)
|
|||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
|
||||
endif()
|
||||
|
||||
check_function_exists(pthread_create HAVE_PTHREAD_CREATE)
|
||||
find_function(pthread_create)
|
||||
if(HAVE_PTHREAD_CREATE)
|
||||
add_definitions(-DUSE_PTHREADS)
|
||||
|
||||
check_include_files("pthread_np.h" HAVE_PTHREAD_NP_H)
|
||||
|
||||
check_function_exists(pthread_setname_np HAVE_PTHREAD_SETNAME_NP)
|
||||
check_function_exists(pthread_set_name_np HAVE_PTHREAD_SET_NAME_NP)
|
||||
find_function(pthread_setname_np)
|
||||
find_function(pthread_set_name_np)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(FUNCTION_DEFINES)
|
||||
|
||||
if(HAVE_STRDUP)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_STRDUP)
|
||||
endif()
|
||||
|
||||
if(HAVE_STRNDUP)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_STRNDUP)
|
||||
endif()
|
||||
|
||||
if(HAVE_STRLCPY)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_STRLCPY)
|
||||
endif()
|
||||
|
||||
if(HAVE_VASPRINTF)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_VASPRINTF)
|
||||
endif()
|
||||
|
||||
if(HAVE_LOCALTIME_R)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_LOCALTIME_R)
|
||||
endif()
|
||||
|
||||
if(HAVE_NEWLOCALE AND HAVE_FREELOCALE AND HAVE_USELOCALE OR APPLE)
|
||||
if(HAVE_NEWLOCALE AND HAVE_FREELOCALE OR APPLE)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_LOCALE)
|
||||
if (HAVE_SNPRINTF_L)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_SNPRINTF_L)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(HAVE_SETLOCALE)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_SETLOCALE)
|
||||
endif()
|
||||
|
||||
if (HAVE_STRTOF_L)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_STRTOF_L)
|
||||
endif()
|
||||
|
||||
if(HAVE_XLOCALE)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_XLOCALE)
|
||||
endif()
|
||||
|
||||
if(HAVE_CHMOD)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_CHMOD)
|
||||
endif()
|
||||
|
||||
if(HAVE_UMASK)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_UMASK)
|
||||
endif()
|
||||
|
||||
if(HAVE_PTHREAD_NP_H)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_PTHREAD_NP_H)
|
||||
endif()
|
||||
|
||||
if(HAVE_PTHREAD_SETNAME_NP)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_PTHREAD_SETNAME_NP)
|
||||
endif()
|
||||
|
||||
if(HAVE_PTHREAD_SET_NAME_NP)
|
||||
list(APPEND FUNCTION_DEFINES HAVE_PTHREAD_SET_NAME_NP)
|
||||
endif()
|
||||
|
||||
# Feature dependencies
|
||||
set(FEATURE_DEFINES)
|
||||
set(FEATURE_FLAGS)
|
||||
|
@ -449,26 +413,21 @@ if(CMAKE_SYSTEM_NAME MATCHES ".*BSD|DragonFly")
|
|||
else()
|
||||
find_feature(USE_EDITLINE "libedit")
|
||||
endif()
|
||||
|
||||
if(BUILD_GL)
|
||||
find_package(OpenGL QUIET)
|
||||
if(NOT OPENGL_FOUND)
|
||||
if(NOT OPENGL_FOUND OR (APPLE AND MACOSX_SDK VERSION_GREATER 10.14))
|
||||
set(BUILD_GL OFF CACHE BOOL "OpenGL not found" FORCE)
|
||||
elseif(UNIX AND NOT APPLE AND TARGET OpenGL::GL)
|
||||
set(OPENGL_LIBRARY OpenGL::GL)
|
||||
endif()
|
||||
endif()
|
||||
if(NOT BUILD_GL AND NOT LIBMGBA_ONLY)
|
||||
set(OPENGL_LIBRARY "" CACHE PATH "" FORCE)
|
||||
endif()
|
||||
if(BUILD_GLES2 AND NOT BUILD_RASPI AND NOT CMAKE_SYSTEM_NAME MATCHES "^(Windows|Darwin|Linux|.*BSD|DragonFly|Haiku)$")
|
||||
find_path(OPENGLES2_INCLUDE_DIR NAMES GLES2/gl2.h)
|
||||
find_library(OPENGLES2_LIBRARY NAMES GLESv2 GLESv2_CM)
|
||||
if(NOT OPENGLES2_INCLUDE_DIR OR NOT OPENGLES2_LIBRARY)
|
||||
set(BUILD_GLES2 OFF CACHE BOOL "OpenGL|ES 2 not found" FORCE)
|
||||
if(OpenGL_GLX_FOUND)
|
||||
list(APPEND FEATURES GLX)
|
||||
endif()
|
||||
if(OpenGL_EGL_FOUND)
|
||||
list(APPEND FEATURES EGL)
|
||||
list(APPEND OPENGL_LIBRARY ${OPENGL_egl_LIBRARY})
|
||||
endif()
|
||||
endif()
|
||||
if(NOT BUILD_GLES2 AND NOT LIBMGBA_ONLY)
|
||||
set(OPENGLES2_LIBRARY "" CACHE PATH "" FORCE)
|
||||
endif()
|
||||
if(BUILD_GL)
|
||||
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gl.c)
|
||||
|
@ -476,24 +435,58 @@ if(BUILD_GL)
|
|||
list(APPEND DEPENDENCY_LIB ${OPENGL_LIBRARY})
|
||||
include_directories(${OPENGL_INCLUDE_DIR})
|
||||
endif()
|
||||
if(NOT BUILD_GL AND NOT LIBMGBA_ONLY)
|
||||
set(OPENGL_LIBRARY "" CACHE PATH "" FORCE)
|
||||
endif()
|
||||
|
||||
if(BUILD_GLES2 AND NOT BUILD_GL)
|
||||
if(APPLE AND MACOSX_SDK VERSION_GREATER 10.14)
|
||||
find_package(OpenGL QUIET)
|
||||
set(OPENGLES2_INCLUDE_DIR ${OPENGL_INCLUDE_DIR})
|
||||
set(OPENGLES2_LIBRARY ${OPENGL_LIBRARY})
|
||||
endif()
|
||||
find_path(OPENGLES2_INCLUDE_DIR NAMES GLES2/gl2.h)
|
||||
find_library(OPENGLES2_LIBRARY NAMES GLESv2 GLESv2_CM)
|
||||
if(NOT OPENGLES2_INCLUDE_DIR OR NOT OPENGLES2_LIBRARY)
|
||||
set(BUILD_GLES2 OFF CACHE BOOL "OpenGL|ES 2 not found" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
if(BUILD_GLES2)
|
||||
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gles2.c)
|
||||
list(APPEND FEATURE_DEFINES BUILD_GLES2)
|
||||
list(APPEND DEPENDENCY_LIB ${OPENGLES2_LIBRARY})
|
||||
include_directories(${OPENGLES2_INCLUDE_DIR})
|
||||
endif()
|
||||
if(BUILD_GLES3)
|
||||
|
||||
if(BUILD_GLES3 AND NOT BUILD_GL)
|
||||
if(APPLE AND MACOSX_SDK VERSION_GREATER 10.14)
|
||||
find_package(OpenGL QUIET)
|
||||
set(OPENGLES3_INCLUDE_DIR ${OPENGL_INCLUDE_DIR})
|
||||
set(OPENGLES3_LIBRARY ${OPENGL_LIBRARY})
|
||||
endif()
|
||||
find_path(OPENGLES3_INCLUDE_DIR NAMES GLES3/gl3.h)
|
||||
find_library(OPENGLES3_LIBRARY NAMES GLESv3 GLESv2)
|
||||
list(APPEND FEATURE_DEFINES BUILD_GLES3)
|
||||
if(NOT OPENGLES3_INCLUDE_DIR OR NOT OPENGLES3_LIBRARY)
|
||||
set(BUILD_GLES3 OFF CACHE BOOL "OpenGL|ES 3 not found" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
if(BUILD_GLES3)
|
||||
list(APPEND FEATURE_DEFINES BUILD_GLES3)
|
||||
list(APPEND DEPENDENCY_LIB ${OPENGLES3_LIBRARY})
|
||||
include_directories(${OPENGLES3_INCLUDE_DIR})
|
||||
endif()
|
||||
|
||||
if(BUILD_GLES2 OR BUILD_GLES3)
|
||||
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gles2.c)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_GLES2 AND NOT BUILD_GLES3 AND NOT LIBMGBA_ONLY)
|
||||
set(OPENGLES2_LIBRARY "" CACHE PATH "" FORCE)
|
||||
endif()
|
||||
|
||||
if(DISABLE_DEPS)
|
||||
set(USE_GDB_STUB OFF)
|
||||
set(ENABLE_GDB_STUB OFF)
|
||||
set(USE_DISCORD_RPC OFF)
|
||||
set(USE_JSON_C OFF)
|
||||
set(USE_SQLITE3 OFF)
|
||||
set(USE_PNG OFF)
|
||||
set(USE_ZLIB OFF)
|
||||
|
@ -533,16 +526,18 @@ if(USE_EDITLINE)
|
|||
list(APPEND FEATURES EDITLINE)
|
||||
include_directories(AFTER ${LIBEDIT_INCLUDE_DIRS})
|
||||
link_directories(${LIBEDIT_LIBRARY_DIRS})
|
||||
set(DEBUGGER_LIB ${LIBEDIT_LIBRARIES})
|
||||
if(BUILD_STATIC)
|
||||
set(DEBUGGER_LIB ${LIBEDIT_STATIC_LIBRARIES})
|
||||
else()
|
||||
set(DEBUGGER_LIB ${LIBEDIT_LIBRARIES})
|
||||
endif()
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libedit2")
|
||||
list(APPEND FEATURE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/feature/editline/cli-el-backend.c")
|
||||
else()
|
||||
set(DEBUGGER_LIB "")
|
||||
endif()
|
||||
|
||||
if(USE_GDB_STUB)
|
||||
list(APPEND FEATURES GDB_STUB)
|
||||
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/debugger/gdb-stub.c)
|
||||
if(ENABLE_GDB_STUB)
|
||||
list(APPEND ENABLES GDB_STUB)
|
||||
endif()
|
||||
source_group("Debugger" FILES ${DEBUGGER_SRC})
|
||||
|
||||
|
@ -556,7 +551,7 @@ if(USE_FFMPEG)
|
|||
endif()
|
||||
include_directories(AFTER ${FFMPEG_INCLUDE_DIRS} ${LIBAVCODEC_INCLUDE_DIRS} ${LIBAVFILTER_INCLUDE_DIRS} ${LIBAVFORMAT_INCLUDE_DIRS} ${LIBAVRESAMPLE_INCLUDE_DIRS} ${LIBAVUTIL_INCLUDE_DIRS} ${LIBSWRESAMPLE_INCLUDE_DIRS} ${LIBSWSCALE_INCLUDE_DIRS})
|
||||
link_directories(${FFMPEG_LIBRARY_DIRS} ${LIBAVCODEC_LIBRARY_DIRS} ${LIBAVFILTER_LIBRARY_DIRS} ${LIBAVFORMAT_LIBRARY_DIRS} ${LIBAVRESAMPLE_LIBRARY_DIRS} ${LIBAVUTIL_LIBRARY_DIRS} ${LIBSWRESAMPLE_LIBRARY_DIRS} ${LIBSWSCALE_LIBRARY_DIRS})
|
||||
list(APPEND FEATURE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/feature/ffmpeg/ffmpeg-encoder.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/feature/ffmpeg/ffmpeg-decoder.c")
|
||||
list(APPEND FEATURE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/feature/ffmpeg/ffmpeg-encoder.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/feature/ffmpeg/ffmpeg-decoder.c" "${CMAKE_CURRENT_SOURCE_DIR}/src/feature/ffmpeg/ffmpeg-scale.c")
|
||||
list(APPEND DEPENDENCY_LIB ${FFMPEG_LIBRARIES} ${LIBAVCODEC_LIBRARIES} ${LIBAVFILTER_LIBRARIES} ${LIBAVFORMAT_LIBRARIES} ${LIBAVRESAMPLE_LIBRARIES} ${LIBAVUTIL_LIBRARIES} ${LIBSWSCALE_LIBRARIES} ${LIBSWRESAMPLE_LIBRARIES})
|
||||
if(WIN32 AND NOT DEFINED VCPKG_TARGET_TRIPLET)
|
||||
list(APPEND DEPENDENCY_LIB bcrypt)
|
||||
|
@ -582,13 +577,10 @@ if(USE_FFMPEG)
|
|||
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "libavcodec-extra|libavcodec-ffmpeg-extra${LIBAVCODEC_VERSION_MAJOR}")
|
||||
endif()
|
||||
if(APPLE)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -framework VideoDecodeAcceleration -framework CoreVideo")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -framework VideoDecodeAcceleration -framework CoreVideo")
|
||||
list(APPEND DEPENDENCY_LIB "-framework VideoDecodeAcceleration" "-framework CoreVideo")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
list(APPEND THIRD_PARTY_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src/third-party/blip_buf/blip_buf.c")
|
||||
|
||||
if(WANT_ZLIB AND NOT USE_ZLIB)
|
||||
set(SKIP_INSTALL_ALL ON)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/third-party/zlib zlib EXCLUDE_FROM_ALL)
|
||||
|
@ -654,14 +646,15 @@ endif()
|
|||
|
||||
if(USE_LIBZIP)
|
||||
if(TARGET libzip::zip)
|
||||
list(APPEND DEPENDENCY_LIB libzip::zip)
|
||||
set(ZIP_LIBRARIES libzip::zip)
|
||||
elseif(TARGET zip)
|
||||
list(APPEND DEPENDENCY_LIB zip)
|
||||
set(ZIP_LIBRARIES zip)
|
||||
else()
|
||||
include_directories(AFTER ${LIBZIP_INCLUDE_DIRS})
|
||||
link_directories(${LIBZIP_LIBRARY_DIRS})
|
||||
list(APPEND DEPENDENCY_LIB ${LIBZIP_LIBRARIES})
|
||||
set(ZIP_LIBRARIES ${LIBZIP_LIBRARIES})
|
||||
endif()
|
||||
list(APPEND DEPENDENCY_LIB ${ZIP_LIBRARIES})
|
||||
list(APPEND FEATURES LIBZIP)
|
||||
list(APPEND VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-zip.c)
|
||||
string(REGEX MATCH "^[0-9]+" LIBZIP_VERSION_MAJOR "${libzip_VERSION}")
|
||||
|
@ -675,6 +668,7 @@ if(USE_LIBZIP)
|
|||
elseif(USE_MINIZIP)
|
||||
include_directories(AFTER ${MINIZIP_INCLUDE_DIRS})
|
||||
link_directories(${MINIZIP_LIBRARY_DIRS})
|
||||
set(ZIP_LIBRARIES ${MINIZIP_LIBRARIES})
|
||||
list(APPEND DEPENDENCY_LIB ${MINIZIP_LIBRARIES})
|
||||
list(APPEND FEATURES MINIZIP)
|
||||
list(APPEND VFS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/util/vfs/vfs-zip.c)
|
||||
|
@ -730,8 +724,12 @@ if (USE_LZMA)
|
|||
endif()
|
||||
|
||||
if(USE_EPOXY)
|
||||
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gl.c ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gles2.c)
|
||||
list(APPEND FEATURE_DEFINES BUILD_GL BUILD_GLES2)
|
||||
if(NOT APPLE OR NOT MACOSX_SDK VERSION_GREATER 10.14)
|
||||
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gl.c)
|
||||
list(APPEND FEATURE_DEFINES BUILD_GL)
|
||||
endif()
|
||||
list(APPEND FEATURE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/opengl/gles2.c)
|
||||
list(APPEND FEATURE_DEFINES BUILD_GLES2 BUILD_GLES3)
|
||||
list(APPEND FEATURES EPOXY)
|
||||
include_directories(AFTER ${EPOXY_INCLUDE_DIRS})
|
||||
link_directories(${EPOXY_LIBRARY_DIRS})
|
||||
|
@ -766,6 +764,7 @@ if(USE_ELF)
|
|||
endif()
|
||||
|
||||
if (USE_DISCORD_RPC)
|
||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.7")
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/third-party/discord-rpc discord-rpc EXCLUDE_FROM_ALL)
|
||||
list(APPEND FEATURES DISCORD_RPC)
|
||||
include_directories(AFTER ${CMAKE_CURRENT_SOURCE_DIR}/src/third-party/discord-rpc/include)
|
||||
|
@ -773,6 +772,43 @@ endif()
|
|||
|
||||
if(ENABLE_SCRIPTING)
|
||||
list(APPEND ENABLES SCRIPTING)
|
||||
find_feature(USE_JSON_C "json-c")
|
||||
if(NOT USE_LUA VERSION_LESS 5.1)
|
||||
find_feature(USE_LUA "Lua" ${USE_LUA})
|
||||
else()
|
||||
find_feature(USE_LUA "Lua")
|
||||
endif()
|
||||
if(USE_JSON_C)
|
||||
list(APPEND FEATURES JSON_C)
|
||||
if(TARGET json-c::json-c)
|
||||
list(APPEND DEPENDENCY_LIB json-c::json-c)
|
||||
get_target_property(JSON_C_SONAME json-c::json-c IMPORTED_SONAME_NONE)
|
||||
string(SUBSTRING "${JSON_C_SONAME}" 13 -1 JSON_C_SOVER)
|
||||
|
||||
# This is only needed on 0.15, but the target unhelpfully does not contain version info
|
||||
get_target_property(JSON_C_INCLUDE_DIR json-c::json-c INTERFACE_INCLUDE_DIRECTORIES)
|
||||
if(NOT JSON_C_INCLUDE_DIR MATCHES json-c$)
|
||||
include_directories(AFTER "${JSON_C_INCLUDE_DIR}/json-c")
|
||||
endif()
|
||||
else()
|
||||
if(${json-c_VERSION} VERSION_LESS 0.13.0)
|
||||
set(JSON_C_SOVER 3)
|
||||
elseif(${json-c_VERSION} VERSION_LESS 0.15.0)
|
||||
set(JSON_C_SOVER 4)
|
||||
endif()
|
||||
list(APPEND DEPENDENCY_LIB ${json-c_LIBRARIES})
|
||||
include_directories(AFTER ${json-c_INCLUDE_DIRS})
|
||||
link_directories(${json-c_LIBDIRS})
|
||||
endif()
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},libjson-c${JSON_C_SOVER}")
|
||||
endif()
|
||||
if(USE_LUA)
|
||||
list(APPEND FEATURE_DEFINES USE_LUA)
|
||||
include_directories(AFTER ${LUA_INCLUDE_DIR})
|
||||
list(APPEND FEATURE_DEFINES LUA_VERSION_ONLY=\"${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}\")
|
||||
list(APPEND DEPENDENCY_LIB ${LUA_LIBRARY})
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS},liblua${LUA_VERSION_MAJOR}.${LUA_VERSION_MINOR}-0")
|
||||
endif()
|
||||
|
||||
if(BUILD_PYTHON)
|
||||
find_package(PythonLibs ${USE_PYTHON_VERSION})
|
||||
|
@ -780,6 +816,7 @@ if(ENABLE_SCRIPTING)
|
|||
include_directories(AFTER ${PYTHON_INCLUDE_DIRS})
|
||||
list(APPEND ENABLES PYTHON)
|
||||
endif()
|
||||
add_subdirectory(src/script)
|
||||
endif()
|
||||
|
||||
add_subdirectory(src/arm)
|
||||
|
@ -790,6 +827,7 @@ add_subdirectory(src/sm83)
|
|||
add_subdirectory(src/util)
|
||||
|
||||
list(APPEND GUI_SRC ${EXTRA_GUI_SRC})
|
||||
list(APPEND UTIL_BASE_SRC ${CMAKE_CURRENT_BINARY_DIR}/version.c)
|
||||
list(APPEND UTIL_SRC ${CMAKE_CURRENT_BINARY_DIR}/version.c)
|
||||
|
||||
set(TEST_SRC ${CORE_TEST_SRC})
|
||||
|
@ -807,10 +845,19 @@ if(M_CORE_GBA)
|
|||
list(APPEND TEST_SRC ${ARM_TEST_SRC} ${GBA_TEST_SRC})
|
||||
endif()
|
||||
|
||||
if(USE_DEBUGGERS)
|
||||
if(ENABLE_DEBUGGERS)
|
||||
list(APPEND FEATURE_SRC ${DEBUGGER_SRC})
|
||||
list(APPEND TEST_SRC ${DEBUGGER_TEST_SRC})
|
||||
list(APPEND FEATURES DEBUGGERS)
|
||||
list(APPEND ENABLES DEBUGGERS)
|
||||
endif()
|
||||
|
||||
if(ENABLE_SCRIPTING)
|
||||
list(APPEND FEATURE_SRC ${SCRIPT_SRC})
|
||||
list(APPEND TEST_SRC ${SCRIPT_TEST_SRC})
|
||||
endif()
|
||||
|
||||
if(ENABLE_VFS)
|
||||
list(APPEND ENABLES VFS DIRECTORIES)
|
||||
endif()
|
||||
|
||||
foreach(FEATURE IN LISTS FEATURES)
|
||||
|
@ -826,7 +873,6 @@ source_group("Extra features" FILES ${FEATURE_SRC})
|
|||
source_group("Third-party code" FILES ${THIRD_PARTY_SRC})
|
||||
|
||||
# Platform binaries
|
||||
set(OS_DEFINES)
|
||||
if(DEFINED 3DS)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/platform/3ds ${CMAKE_CURRENT_BINARY_DIR}/3ds)
|
||||
endif()
|
||||
|
@ -851,7 +897,11 @@ list(APPEND CORE_SRC
|
|||
${THIRD_PARTY_SRC})
|
||||
list(APPEND TEST_SRC ${UTIL_TEST_SRC})
|
||||
|
||||
set(SRC ${CORE_SRC} ${VFS_SRC})
|
||||
set(SRC ${CORE_SRC})
|
||||
if(ENABLE_VFS)
|
||||
list(APPEND SRC ${VFS_SRC})
|
||||
endif()
|
||||
|
||||
if(NOT MINIMAL_CORE)
|
||||
set(ENABLE_EXTRA ON)
|
||||
if(M_CORE_GBA)
|
||||
|
@ -873,13 +923,17 @@ if(ENABLE_EXTRA)
|
|||
list(APPEND SRC ${EXTRA_SRC})
|
||||
endif()
|
||||
|
||||
if(ENABLE_SCRIPTING)
|
||||
list(APPEND SRC ${CORE_SCRIPT_SRC})
|
||||
endif()
|
||||
|
||||
if(NOT SKIP_LIBRARY)
|
||||
if(NOT BUILD_STATIC AND NOT BUILD_SHARED)
|
||||
set(BUILD_SHARED ON)
|
||||
endif()
|
||||
|
||||
if(BUILD_SHARED)
|
||||
add_library(${BINARY_NAME} SHARED ${SRC} ${VFS_SRC})
|
||||
add_library(${BINARY_NAME} SHARED ${SRC})
|
||||
set(EXPORT_DEFINES MGBA_DLL)
|
||||
if(BUILD_STATIC)
|
||||
add_library(${BINARY_NAME}-static STATIC ${SRC})
|
||||
|
@ -899,21 +953,29 @@ if(NOT SKIP_LIBRARY)
|
|||
|
||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/mgba-util)
|
||||
|
||||
if(BUILD_STATIC)
|
||||
# Some versions of CMake are remarkably bad about deduplicating this list,
|
||||
# leading to issues with static linking. Let's do it manually.
|
||||
list(REVERSE DEPENDENCY_LIB)
|
||||
list(REMOVE_DUPLICATES DEPENDENCY_LIB)
|
||||
list(REVERSE DEPENDENCY_LIB)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${BINARY_NAME} ${DEBUGGER_LIB} ${DEPENDENCY_LIB} ${OS_LIB})
|
||||
install(TARGETS ${BINARY_NAME} LIBRARY DESTINATION ${LIBDIR} COMPONENT lib${BINARY_NAME} NAMELINK_SKIP ARCHIVE DESTINATION ${LIBDIR} RUNTIME DESTINATION ${LIBDIR} COMPONENT lib${BINARY_NAME})
|
||||
if(BUILD_SHARED)
|
||||
install(TARGETS ${BINARY_NAME} LIBRARY DESTINATION ${LIBDIR} COMPONENT ${BINARY_NAME}-dev NAMELINK_ONLY)
|
||||
endif()
|
||||
if(UNIX AND NOT APPLE AND NOT HAIKU)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-16.png DESTINATION share/icons/hicolor/16x16/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-24.png DESTINATION share/icons/hicolor/24x24/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-32.png DESTINATION share/icons/hicolor/32x32/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-48.png DESTINATION share/icons/hicolor/48x48/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-64.png DESTINATION share/icons/hicolor/64x64/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-96.png DESTINATION share/icons/hicolor/96x96/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-128.png DESTINATION share/icons/hicolor/128x128/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-256.png DESTINATION share/icons/hicolor/256x256/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-512.png DESTINATION share/icons/hicolor/512x512/apps RENAME mgba.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-16.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/16x16/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-24.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/24x24/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-32.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/32x32/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-48.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-64.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/64x64/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-96.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/96x96/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-128.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-256.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/256x256/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/mgba-512.png DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/512x512/apps RENAME io.mgba.${PROJECT_NAME}.png COMPONENT ${BINARY_NAME})
|
||||
endif()
|
||||
else()
|
||||
set(BUILD_SHARED OFF)
|
||||
|
@ -939,9 +1001,9 @@ endif()
|
|||
|
||||
if(BUILD_LIBRETRO)
|
||||
file(GLOB RETRO_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/libretro/*.c)
|
||||
add_library(${BINARY_NAME}_libretro SHARED ${CORE_SRC} ${RETRO_SRC})
|
||||
add_library(${BINARY_NAME}_libretro SHARED ${CORE_SRC} ${RETRO_SRC} ${CORE_VFS_SRC})
|
||||
add_dependencies(${BINARY_NAME}_libretro ${BINARY_NAME}-version-info)
|
||||
set_target_properties(${BINARY_NAME}_libretro PROPERTIES PREFIX "" COMPILE_DEFINITIONS "__LIBRETRO__;COLOR_16_BIT;COLOR_5_6_5;DISABLE_THREADING;MGBA_STANDALONE;${OS_DEFINES};${FUNCTION_DEFINES};MINIMAL_CORE=2")
|
||||
set_target_properties(${BINARY_NAME}_libretro PROPERTIES PREFIX "" COMPILE_DEFINITIONS "__LIBRETRO__;COLOR_16_BIT;COLOR_5_6_5;DISABLE_THREADING;MGBA_STANDALONE;${OS_DEFINES};${FUNCTION_DEFINES};ENABLE_VFS;MINIMAL_CORE=2")
|
||||
target_link_libraries(${BINARY_NAME}_libretro ${OS_LIB})
|
||||
if(MSVC)
|
||||
install(TARGETS ${BINARY_NAME}_libretro RUNTIME DESTINATION ${LIBRETRO_LIBDIR} COMPONENT ${BINARY_NAME}_libretro)
|
||||
|
@ -950,20 +1012,34 @@ if(BUILD_LIBRETRO)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(BUILD_OPENEMU)
|
||||
find_library(FOUNDATION Foundation)
|
||||
find_library(OPENEMUBASE OpenEmuBase)
|
||||
file(GLOB OE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/openemu/*.m)
|
||||
add_library(${BINARY_NAME}-openemu MODULE ${CORE_SRC} ${OS_SRC})
|
||||
set_target_properties(${BINARY_NAME}-openemu PROPERTIES
|
||||
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/openemu/Info.plist.in
|
||||
BUNDLE TRUE
|
||||
BUNDLE_EXTENSION oecoreplugin
|
||||
OUTPUT_NAME ${PROJECT_NAME}
|
||||
COMPILE_OPTIONS "-fobjc-arc"
|
||||
COMPILE_DEFINITIONS "DISABLE_THREADING;MGBA_STANDALONE;${OS_DEFINES};${FUNCTION_DEFINES};MINIMAL_CORE=1")
|
||||
target_link_libraries(${BINARY_NAME}-openemu ${OS_LIB} ${FOUNDATION} ${OPENEMUBASE})
|
||||
install(TARGETS ${BINARY_NAME}-openemu LIBRARY DESTINATION ${OE_LIBDIR} COMPONENT ${BINARY_NAME}.oecoreplugin NAMELINK_SKIP)
|
||||
if(BUILD_QT AND (WIN32 OR APPLE OR CMAKE_SYSTEM_NAME STREQUAL "Linux") AND ENABLE_VFS)
|
||||
set(BUILD_UPDATER ON)
|
||||
endif()
|
||||
|
||||
if(BUILD_UPDATER)
|
||||
add_executable(updater-stub WIN32 ${CORE_VFS_SRC} ${VFS_SRC} ${OS_SRC} ${UTIL_BASE_SRC} ${THIRD_PARTY_SRC}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/core/config.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/feature/updater.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/tools/updater-main.c)
|
||||
target_link_libraries(updater-stub ${ZLIB_LIBRARY} ${ZLIB_LIBRARY} ${ZIP_LIBRARIES} ${OS_LIB} ${PLATFORM_LIBRARY})
|
||||
set_target_properties(updater-stub PROPERTIES COMPILE_DEFINITIONS "${OS_DEFINES};${FUNCTION_DEFINES};${FEATURE_DEFINES};BUILD_STATIC")
|
||||
if(MSVC)
|
||||
set_target_properties(updater-stub PROPERTIES LINK_FLAGS /ENTRY:mainCRTStartup)
|
||||
else()
|
||||
set_target_properties(updater-stub PROPERTIES LINK_FLAGS_RELEASE -s)
|
||||
set_target_properties(updater-stub PROPERTIES LINK_FLAGS_RELWITHDEBINFO -s)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ENABLE_SCRIPTING AND BUILD_DOCGEN)
|
||||
add_executable(docgen ${CMAKE_CURRENT_SOURCE_DIR}/src/tools/docgen.c)
|
||||
target_link_libraries(docgen ${OS_LIB} ${PLATFORM_LIBRARY} ${BINARY_NAME})
|
||||
set_target_properties(docgen PROPERTIES COMPILE_DEFINITIONS "${OS_DEFINES};${FUNCTION_DEFINES};${FEATURE_DEFINES}")
|
||||
endif()
|
||||
|
||||
if(BUILD_MAINTAINER_TOOLS)
|
||||
add_executable(font-sdf-tool ${CMAKE_CURRENT_SOURCE_DIR}/src/tools/font-sdf.c ${CMAKE_CURRENT_SOURCE_DIR}/src/util/gui/font-metrics.c)
|
||||
target_link_libraries(font-sdf-tool ${OS_LIB} ${PLATFORM_LIBRARY} ${BINARY_NAME})
|
||||
endif()
|
||||
|
||||
if(BUILD_SDL)
|
||||
|
@ -974,6 +1050,14 @@ if(BUILD_QT)
|
|||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/platform/qt ${CMAKE_CURRENT_BINARY_DIR}/qt)
|
||||
endif()
|
||||
|
||||
if(BUILD_HEADLESS)
|
||||
add_executable(${BINARY_NAME}-headless ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/headless-main.c)
|
||||
target_link_libraries(${BINARY_NAME}-headless ${PLATFORM_LIBRARY} ${BINARY_NAME})
|
||||
debug_strip(${BINARY_NAME}-headless)
|
||||
target_compile_definitions(${BINARY_NAME}-headless PRIVATE "${OS_DEFINES};${FEATURE_DEFINES};${FUNCTION_DEFINES}")
|
||||
install(TARGETS ${BINARY_NAME}-headless DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${BINARY_NAME}-headless)
|
||||
endif()
|
||||
|
||||
if(NOT USE_CMOCKA)
|
||||
set(BUILD_SUITE OFF)
|
||||
endif()
|
||||
|
@ -1003,7 +1087,7 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/mgba-util DESTINATION ${CM
|
|||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/mgba/flags.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mgba COMPONENT ${BINARY_NAME}-dev)
|
||||
|
||||
# Packaging
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/licenses/blip_buf.txt DESTINATION ${CMAKE_INSTALL_DOCDIR}/licenses COMPONENT ${BINARY_NAME})
|
||||
install(FILES DESTINATION ${CMAKE_INSTALL_DOCDIR}/licenses COMPONENT ${BINARY_NAME})
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/licenses/inih.txt DESTINATION ${CMAKE_INSTALL_DOCDIR}/licenses COMPONENT ${BINARY_NAME})
|
||||
if(USE_DISCORD_RPC)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/licenses/discord-rpc.txt DESTINATION ${CMAKE_INSTALL_DOCDIR}/licenses COMPONENT ${BINARY_NAME})
|
||||
|
@ -1094,8 +1178,8 @@ set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
|
|||
set(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README.md)
|
||||
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "mGBA Game Boy Advance Emulator")
|
||||
set(CPACK_PACKAGE_VENDOR "Jeffrey Pfau")
|
||||
set(CPACK_PACKAGE_CONTACT "Jeffrey Pfau <jeffrey@endrift.com>")
|
||||
set(CPACK_PACKAGE_VENDOR "Vicki Pfau")
|
||||
set(CPACK_PACKAGE_CONTACT "Vicki Pfau <vi@endrift.com>")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "games")
|
||||
|
||||
|
@ -1107,6 +1191,9 @@ endif()
|
|||
|
||||
if(DISTBUILD)
|
||||
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
||||
set(CPACK_DMG_FILESYSTEM "HFS+")
|
||||
set(CPACK_DMG_FORMAT "UDBZ")
|
||||
set(CPACK_DMG_VOLUME_NAME "${PROJECT_NAME} ${VERSION_STRING}")
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" AND BUILD_SHARED)
|
||||
if(NOT APPLE)
|
||||
add_custom_command(TARGET ${BINARY_NAME} POST_BUILD COMMAND "${OBJCOPY}" --only-keep-debug "$<TARGET_FILE:${BINARY_NAME}>" "$<TARGET_FILE:${BINARY_NAME}>.debug")
|
||||
|
@ -1117,7 +1204,8 @@ if(DISTBUILD)
|
|||
endif()
|
||||
if(APPLE)
|
||||
set(CPACK_COMPONENTS_ALL ${BINARY_NAME} ${BINARY_NAME}-qt ${BINARY_NAME}-sdl ${BINARY_NAME}-qt-dbg ${BINARY_NAME}-sdl-dbg ${BINARY_NAME}-perf)
|
||||
set(CPACK_COMPONENTS_GROUPING ALL_COMPONENTS_IN_ONE)
|
||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/platform/cmake/DMGOverrides.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/DMGOverrides.cmake @ONLY)
|
||||
set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_CURRENT_BINARY_DIR}/DMGOverrides.cmake)
|
||||
elseif(WIN32)
|
||||
set(CPACK_COMPONENTS_ALL ${BINARY_NAME} ${BINARY_NAME}-qt ${BINARY_NAME}-sdl ${BINARY_NAME}-qt-dbg ${BINARY_NAME}-sdl-dbg ${BINARY_NAME}-perf installer)
|
||||
elseif(3DS)
|
||||
|
@ -1167,6 +1255,11 @@ if(SDL_FOUND)
|
|||
cpack_add_component(${BINARY_NAME}-sdl GROUP sdl)
|
||||
endif()
|
||||
|
||||
if(BUILD_HEADLESS)
|
||||
cpack_add_component_group(headless PARENT_GROUP base)
|
||||
cpack_add_component(${BINARY_NAME}-headless GROUP headless)
|
||||
endif()
|
||||
|
||||
if(DISTBUILD)
|
||||
cpack_add_component_group(debug PARENT_GROUP dev)
|
||||
if(BUILD_SHARED AND NOT IS_EMBEDDED)
|
||||
|
@ -1181,6 +1274,9 @@ if(DISTBUILD)
|
|||
if(SDL_FOUND)
|
||||
cpack_add_component(${BINARY_NAME}-sdl-dbg GROUP debug)
|
||||
endif()
|
||||
if(BUILD_HEADLESS)
|
||||
cpack_add_component(${BINARY_NAME}-headless-dbg GROUP debug)
|
||||
endif()
|
||||
if(WIN32)
|
||||
cpack_add_component_group(installer PARENT_GROUP base)
|
||||
endif()
|
||||
|
@ -1226,11 +1322,11 @@ if(NOT QUIET AND NOT LIBMGBA_ONLY)
|
|||
message(STATUS " Game Boy Advance: ${M_CORE_GBA}")
|
||||
message(STATUS " Game Boy: ${M_CORE_GB}")
|
||||
message(STATUS "Features:")
|
||||
message(STATUS " Debuggers: ${USE_DEBUGGERS}")
|
||||
message(STATUS " Debuggers: ${ENABLE_DEBUGGERS}")
|
||||
if(NOT WIN32)
|
||||
message(STATUS " CLI debugger: ${USE_EDITLINE}")
|
||||
endif()
|
||||
message(STATUS " GDB stub: ${USE_GDB_STUB}")
|
||||
message(STATUS " GDB stub: ${ENABLE_GDB_STUB}")
|
||||
message(STATUS " GIF/Video recording: ${USE_FFMPEG}")
|
||||
message(STATUS " Screenshot/advanced savestate support: ${USE_PNG}")
|
||||
message(STATUS " ZIP support: ${SUMMARY_ZIP}")
|
||||
|
@ -1239,20 +1335,28 @@ if(NOT QUIET AND NOT LIBMGBA_ONLY)
|
|||
message(STATUS " ELF loading support: ${USE_ELF}")
|
||||
message(STATUS " Discord Rich Presence support: ${USE_DISCORD_RPC}")
|
||||
message(STATUS " OpenGL support: ${SUMMARY_GL}")
|
||||
message(STATUS "Scripting support: ${ENABLE_SCRIPTING}")
|
||||
if(ENABLE_SCRIPTING)
|
||||
if(LUA_VERSION_STRING)
|
||||
message(STATUS " Lua: ${LUA_VERSION_STRING}")
|
||||
else()
|
||||
message(STATUS " Lua: ${USE_LUA}")
|
||||
endif()
|
||||
message(STATUS " storage API: ${USE_JSON_C}")
|
||||
endif()
|
||||
message(STATUS "Frontends:")
|
||||
message(STATUS " Qt: ${BUILD_QT}")
|
||||
message(STATUS " SDL (${SDL_VERSION}): ${BUILD_SDL}")
|
||||
message(STATUS " Headless: ${BUILD_HEADLESS}")
|
||||
message(STATUS " Python bindings: ${BUILD_PYTHON}")
|
||||
message(STATUS " Examples: ${BUILD_EXAMPLE}")
|
||||
message(STATUS "Test tools:")
|
||||
message(STATUS " Profiling: ${BUILD_PERF}")
|
||||
message(STATUS " Test harness: ${BUILD_TEST}")
|
||||
message(STATUS " Test suite: ${BUILD_SUITE}")
|
||||
message(STATUS " Video test suite: ${BUILD_CINEMA}")
|
||||
message(STATUS " Python bindings: ${BUILD_PYTHON}")
|
||||
message(STATUS " Examples: ${BUILD_EXAMPLE}")
|
||||
message(STATUS "Cores:")
|
||||
message(STATUS " Libretro core: ${BUILD_LIBRETRO}")
|
||||
if(APPLE)
|
||||
message(STATUS " OpenEmu core: ${BUILD_OPENEMU}")
|
||||
endif()
|
||||
message(STATUS "Libraries:")
|
||||
message(STATUS " Static: ${BUILD_STATIC}")
|
||||
message(STATUS " Shared: ${BUILD_SHARED}")
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"version": 3,
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "clang",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug",
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gcc",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug",
|
||||
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -55,18 +55,18 @@ Enum values and `#define`s should be all caps with underscores.
|
|||
Good:
|
||||
|
||||
static int _localVariable;
|
||||
|
||||
|
||||
struct LocalStruct {
|
||||
void (*methodName)(struct LocalStruct struct, param);
|
||||
|
||||
|
||||
int memberName;
|
||||
};
|
||||
|
||||
|
||||
enum {
|
||||
ENUM_ITEM_1,
|
||||
ENUM_ITEM_2
|
||||
};
|
||||
|
||||
|
||||
void LocalStructCreate(struct LocalStruct* struct);
|
||||
|
||||
void functionName(int argument);
|
||||
|
@ -124,7 +124,7 @@ Bad (missing space):
|
|||
if (condition){
|
||||
block;
|
||||
}
|
||||
|
||||
|
||||
### Spacing
|
||||
|
||||
Indentation should be done using tabs and should match the level of braces. Alignment within a line should be done sparingly, but only done with spaces.
|
||||
|
@ -137,9 +137,9 @@ Good:
|
|||
|
||||
#ifndef FILE_NAME_H
|
||||
#define FILE_NAME_H
|
||||
|
||||
|
||||
// Header
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
There should be no comment on the `#endif`.
|
||||
|
|
47
README.md
|
@ -22,6 +22,7 @@ Features
|
|||
- Solar sensor support for Boktai games.
|
||||
- Game Boy Camera and Game Boy Printer support.
|
||||
- A built-in BIOS implementation, and ability to load external BIOS files.
|
||||
- Scripting support using Lua.
|
||||
- Turbo/fast-forward support by holding Tab.
|
||||
- Rewind by holding Backquote.
|
||||
- Frameskip, configurable up to 10.
|
||||
|
@ -33,7 +34,7 @@ Features
|
|||
- Remappable controls for both keyboards and gamepads.
|
||||
- Loading from ZIP and 7z files.
|
||||
- IPS, UPS and BPS patch support.
|
||||
- Game debugging via a command-line interface and GDB remote support, compatible with IDA Pro.
|
||||
- Game debugging via a command-line interface and GDB remote support, compatible with Ghidra and IDA Pro.
|
||||
- Configurable emulation rewinding.
|
||||
- Support for loading and exporting GameShark and Action Replay snapshots.
|
||||
- Cores available for RetroArch/Libretro and OpenEmu.
|
||||
|
@ -49,22 +50,30 @@ The following mappers are fully supported:
|
|||
- MBC2
|
||||
- MBC3
|
||||
- MBC3+RTC
|
||||
- MBC30
|
||||
- MBC5
|
||||
- MBC5+Rumble
|
||||
- MBC7
|
||||
- Wisdom Tree (unlicensed)
|
||||
- NT "old type" 1 and 2 (unlicensed multicart)
|
||||
- NT "new type" (unlicensed MBC5-like)
|
||||
- Pokémon Jade/Diamond (unlicensed)
|
||||
- BBD (unlicensed MBC5-like)
|
||||
- Hitek (unlicensed MBC5-like)
|
||||
- Sachen MMC1 (unlicensed)
|
||||
|
||||
The following mappers are partially supported:
|
||||
|
||||
- MBC6 (missing flash memory write support)
|
||||
- MMM01
|
||||
- Pocket Cam
|
||||
- TAMA5 (missing RTC support)
|
||||
- TAMA5 (incomplete RTC support)
|
||||
- HuC-1 (missing IR support)
|
||||
- HuC-3 (missing RTC and IR support)
|
||||
- HuC-3 (missing IR support)
|
||||
- Sachen MMC2 (missing alternate wiring support)
|
||||
- BBD (missing logo switching)
|
||||
- Hitek (missing logo switching)
|
||||
- GGB-81 (missing logo switching)
|
||||
- Li Cheng (missing logo switching)
|
||||
- Sintax (missing logo switching)
|
||||
|
||||
### Planned features
|
||||
|
||||
|
@ -72,15 +81,14 @@ The following mappers are partially supported:
|
|||
- Dolphin/JOY bus link cable support.
|
||||
- MP2k audio mixing, for higher quality sound than hardware.
|
||||
- Re-recording support for tool-assist runs.
|
||||
- Lua support for scripting.
|
||||
- A comprehensive debug suite.
|
||||
- Wireless adapter support.
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
|
||||
- Windows Vista or newer
|
||||
- OS X 10.8 (Mountain Lion)[<sup>[3]</sup>](#osxver) or newer
|
||||
- Windows 7 or newer
|
||||
- OS X 10.9 (Mavericks)[<sup>[3]</sup>](#osxver) or newer
|
||||
- Linux
|
||||
- FreeBSD
|
||||
- Nintendo 3DS
|
||||
|
@ -114,17 +122,19 @@ Controls are configurable in the settings menu. Many game controllers should be
|
|||
Compiling
|
||||
---------
|
||||
|
||||
Compiling requires using CMake 3.1 or newer. GCC and Clang are both known to work to compile mGBA, but Visual Studio 2013 and older are known not to work. Support for Visual Studio 2015 and newer is coming soon.
|
||||
Compiling requires using CMake 3.1 or newer. GCC, Clang, and Visual Studio 2019 are known to work for compiling mGBA.
|
||||
|
||||
#### Docker building
|
||||
|
||||
The recommended way to build for most platforms is to use Docker. Several Docker images are provided that contain the requisite toolchain and dependencies for building mGBA across several platforms.
|
||||
|
||||
Note: If you are on an older Windows system before Windows 10, you may need to configure your Docker to use VirtualBox shared folders to correctly map your current `mgba` checkout directory to the Docker image's working directory. (See issue [#1985](https://mgba.io/i/1985) for details.)
|
||||
|
||||
To use a Docker image to build mGBA, simply run the following command while in the root of an mGBA checkout:
|
||||
|
||||
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
|
||||
docker run --rm -it -v ${PWD}:/home/mgba/src mgba/windows:w32
|
||||
|
||||
This will produce a `build-win32` directory with the build products. Replace `mgba/windows:w32` with another Docker image for other platforms, which will produce a corresponding other directory. The following Docker images available on Docker Hub:
|
||||
After starting the Docker container, it will produce a `build-win32` directory with the build products. Replace `mgba/windows:w32` with another Docker image for other platforms, which will produce a corresponding other directory. The following Docker images available on Docker Hub:
|
||||
|
||||
- mgba/3ds
|
||||
- mgba/switch
|
||||
|
@ -137,6 +147,8 @@ This will produce a `build-win32` directory with the build products. Replace `mg
|
|||
- mgba/windows:w32
|
||||
- mgba/windows:w64
|
||||
|
||||
If you want to speed up the build process, consider adding the flag `-e MAKEFLAGS=-jN` to do a parallel build for mGBA with `N` number of CPU cores.
|
||||
|
||||
#### *nix building
|
||||
|
||||
To use CMake to build on a Unix-based system, the recommended commands are as follows:
|
||||
|
@ -151,7 +163,7 @@ This will build and install mGBA into `/usr/bin` and `/usr/lib`. Dependencies th
|
|||
|
||||
If you are on macOS, the steps are a little different. Assuming you are using the homebrew package manager, the recommended commands to obtain the dependencies and build are:
|
||||
|
||||
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-config
|
||||
brew install cmake ffmpeg libzip qt5 sdl2 libedit lua pkg-config
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..
|
||||
|
@ -165,7 +177,7 @@ Note that you should not do a `make install` on macOS, as it will not work prope
|
|||
|
||||
To build on Windows for development, using MSYS2 is recommended. Follow the installation steps found on their [website](https://msys2.github.io). Make sure you're running the 32-bit version ("MSYS2 MinGW 32-bit") (or the 64-bit version "MSYS2 MinGW 64-bit" if you want to build for x86_64) and run this additional command (including the braces) to install the needed dependencies (please note that this involves downloading over 1100MiB of packages, so it will take a long time):
|
||||
|
||||
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,pkgconf,qt5,SDL2,ntldd-git}
|
||||
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,lua,pkgconf,qt5,SDL2,ntldd-git}
|
||||
|
||||
Check out the source code by running this command:
|
||||
|
||||
|
@ -184,7 +196,7 @@ Please note that this build of mGBA for Windows is not suitable for distribution
|
|||
|
||||
To build using Visual Studio is a similarly complicated setup. To begin you will need to install [vcpkg](https://github.com/Microsoft/vcpkg). After installing vcpkg you will need to install several additional packages:
|
||||
|
||||
vcpkg install ffmpeg[vpx,x264] libepoxy libpng libzip sdl2 sqlite3
|
||||
vcpkg install ffmpeg[vpx,x264] libepoxy libpng libzip lua sdl2 sqlite3
|
||||
|
||||
Note that this installation won't support hardware accelerated video encoding on Nvidia hardware. If you care about this, you'll need to install CUDA beforehand, and then substitute `ffmpeg[vpx,x264,nvcodec]` into the previous command.
|
||||
|
||||
|
@ -222,6 +234,8 @@ mGBA has no hard dependencies, however, the following optional dependencies are
|
|||
- libzip or zlib: for loading ROMs stored in zip files.
|
||||
- SQLite3: for game databases.
|
||||
- libelf: for ELF loading.
|
||||
- Lua: for scripting.
|
||||
- json-c: for the scripting `storage` API.
|
||||
|
||||
SQLite3, libpng, and zlib are included with the emulator, so they do not need to be externally compiled first.
|
||||
|
||||
|
@ -234,7 +248,7 @@ Footnotes
|
|||
|
||||
<a name="flashdetect">[2]</a> Flash memory size detection does not work in some cases. These can be configured at runtime, but filing a bug is recommended if such a case is encountered.
|
||||
|
||||
<a name="osxver">[3]</a> 10.8 is only needed for the Qt port. It may be possible to build or running the Qt port on 10.7 or older, but this is not officially supported. The SDL port is known to work on 10.5, and may work on older.
|
||||
<a name="osxver">[3]</a> 10.9 is only needed for the Qt port. It may be possible to build or running the Qt port on 10.7 or older, but this is not officially supported. The SDL port is known to work on 10.5, and may work on older.
|
||||
|
||||
[downloads]: http://mgba.io/downloads.html
|
||||
[source]: https://github.com/mgba-emu/mgba/
|
||||
|
@ -242,12 +256,11 @@ Footnotes
|
|||
Copyright
|
||||
---------
|
||||
|
||||
mGBA is Copyright © 2013 – 2021 Jeffrey Pfau. It is distributed under the [Mozilla Public License version 2.0](https://www.mozilla.org/MPL/2.0/). A copy of the license is available in the distributed LICENSE file.
|
||||
mGBA is Copyright © 2013 – 2023 Jeffrey Pfau. It is distributed under the [Mozilla Public License version 2.0](https://www.mozilla.org/MPL/2.0/). A copy of the license is available in the distributed LICENSE file.
|
||||
|
||||
mGBA contains the following third-party libraries:
|
||||
|
||||
- [inih](https://github.com/benhoyt/inih), which is copyright © 2009 – 2020 Ben Hoyt and used under a BSD 3-clause license.
|
||||
- [blip-buf](https://code.google.com/archive/p/blip-buf), which is copyright © 2003 – 2009 Shay Green and used under a Lesser GNU Public License.
|
||||
- [LZMA SDK](http://www.7-zip.org/sdk.html), which is public domain.
|
||||
- [MurmurHash3](https://github.com/aappleby/smhasher) implementation by Austin Appleby, which is public domain.
|
||||
- [getopt for MSVC](https://github.com/skandhurkat/Getopt-for-Visual-Studio/), which is public domain.
|
||||
|
|
|
@ -79,8 +79,8 @@ Die folgenden Mapper werden teilweise unterstützt:
|
|||
Unterstützte Plattformen
|
||||
------------------------
|
||||
|
||||
- Windows Vista oder neuer
|
||||
- OS X 10.8 (Mountain Lion)[<sup>[3]</sup>](#osxver) oder neuer
|
||||
- Windows 7 oder neuer
|
||||
- OS X 10.9 (Mavericks)[<sup>[3]</sup>](#osxver) oder neuer
|
||||
- Linux
|
||||
- FreeBSD
|
||||
- Nintendo 3DS
|
||||
|
@ -234,7 +234,7 @@ Fußnoten
|
|||
|
||||
<a name="flashdetect">[2]</a> In manchen Fällen ist es nicht möglich, die Größe des Flash-Speichers automatisch zu ermitteln. Diese kann dann zur Laufzeit konfiguriert werden, es wird jedoch empfohlen, den Fehler zu melden.
|
||||
|
||||
<a name="osxver">[3]</a> 10.8 wird nur für die Qt-Portierung benötigt. Es ist wahrscheinlich möglich, die Qt-Portierung unter macOS 10.7 und älter zu bauen und zu nutzen, aber das wird nicht offiziell unterstützt. Die SDL-Portierung ist dafür bekannt, mit 10.7 und möglicherweise auf älteren Versionen zu funktionieren.
|
||||
<a name="osxver">[3]</a> 10.9 wird nur für die Qt-Portierung benötigt. Es ist wahrscheinlich möglich, die Qt-Portierung unter macOS 10.7 und älter zu bauen und zu nutzen, aber das wird nicht offiziell unterstützt. Die SDL-Portierung ist dafür bekannt, mit 10.7 und möglicherweise auf älteren Versionen zu funktionieren.
|
||||
|
||||
[downloads]: http://mgba.io/downloads.html
|
||||
[source]: https://github.com/mgba-emu/mgba/
|
||||
|
@ -247,7 +247,6 @@ Copyright für mGBA © 2013 – 2021 Jeffrey Pfau. mGBA wird unter der [Mozilla
|
|||
mGBA beinhaltet die folgenden Bibliotheken von Drittanbietern:
|
||||
|
||||
- [inih](https://github.com/benhoyt/inih), Copyright © 2009 - 2020 Ben Hoyt, verwendet unter einer BSD 3-clause-Lizenz.
|
||||
- [blip-buf](https://code.google.com/archive/b/blip-buf), Copyright © 2003 - 2009 Shay Green, verwendet unter einer Lesser GNU Public License.
|
||||
- [LZMA SDK](http://www.7-zip.org/sdk.html), Public Domain.
|
||||
- [MurmurHash3](https://github.com/aappleby/smhasher), Implementierung von Austin Appleby, Public Domain.
|
||||
- [getopt fot MSVC](https://github.com/skandhurkat/Getopt-for-Visual-Studio/), Public Domain.
|
||||
|
|
|
@ -79,8 +79,8 @@ Estos mappers tienen soporte parcial:
|
|||
Plataformas soportadas
|
||||
-------------------
|
||||
|
||||
- Windows Vista o más reciente
|
||||
- OS X 10.8 (Mountain Lion)[<sup>[3]</sup>](#osxver) o más reciente
|
||||
- Windows 7 o más reciente
|
||||
- OS X 10.9 (Mavericks)[<sup>[3]</sup>](#osxver) o más reciente
|
||||
- Linux
|
||||
- FreeBSD
|
||||
- Nintendo 3DS
|
||||
|
@ -234,7 +234,7 @@ Notas a pie
|
|||
|
||||
<a name="flashdetect">[2]</a> La detección del tamaño de la memoria flash no funciona en algunos casos. Se pueden configurar en tiempo de ejecución, pero se recomienda ingresar un bug si se encuentra un caso así.
|
||||
|
||||
<a name="osxver">[3]</a> 10.8 sólo se necesita para la versión con Qt. Puede ser posible compilar o hacer funcionar la versión Qt en 10.7 o versiones más antigas, pero esto no está oficialmente soportado. La versión SDL funciona en 10.5, y puede funcionar en versiones anteriores.
|
||||
<a name="osxver">[3]</a> 10.9 sólo se necesita para la versión con Qt. Puede ser posible compilar o hacer funcionar la versión Qt en 10.7 o versiones más antigas, pero esto no está oficialmente soportado. La versión SDL funciona en 10.5, y puede funcionar en versiones anteriores.
|
||||
|
||||
[downloads]: http://mgba.io/downloads.html
|
||||
[source]: https://github.com/mgba-emu/mgba/
|
||||
|
@ -247,7 +247,6 @@ mGBA es Copyright © 2013 – 2021 Jeffrey Pfau. Es distribuído bajo la [licenc
|
|||
mGBA contiene las siguientes bibliotecas de terceros:
|
||||
|
||||
- [inih](https://github.com/benhoyt/inih), que es copyright © 2009 - 2020 Ben Hoyt y se utiliza bajo licencia de la cláusula 3 de BSD.
|
||||
- [blip-buf](https://code.google.com/archive/p/blip-buf), que es copyright © 2003 - 2009 Shay Green y se usa bajo LGPL.
|
||||
- [LZMA SDK](http://www.7-zip.org/sdk.html), la cual está en el dominio público.
|
||||
- [MurmurHash3](https://github.com/aappleby/smhasher), implementación por Austin Appleby, la cual está en el dominio público.
|
||||
- [getopt for MSVC](https://github.com/skandhurkat/Getopt-for-Visual-Studio/), la cual está en el dominio público.
|
||||
|
|
|
@ -0,0 +1,268 @@
|
|||
mGBA
|
||||
====
|
||||
|
||||
mGBAは、ゲームボーイアドバンスのゲームを実行するためのエミュレーターです。mGBAの目標は、既存の多くのゲームボーイアドバンスエミュレーターよりも高速かつ正確であり、他のエミュレーターにはない機能を追加することです。また、ゲームボーイおよびゲームボーイカラーのゲームもサポートしています。
|
||||
|
||||
最新のニュースとダウンロードは、[mgba.io](https://mgba.io/)で見つけることができます。
|
||||
|
||||
[](https://buildbot.mgba.io)
|
||||
[](https://hosted.weblate.org/engage/mgba)
|
||||
|
||||
特徴
|
||||
--------
|
||||
|
||||
- 高精度なゲームボーイアドバンスハードウェアのサポート[<sup>[1]</sup>](#missing)。
|
||||
- ゲームボーイ/ゲームボーイカラーのハードウェアサポート。
|
||||
- 高速なエミュレーション。ネットブックなどの低スペックハードウェアでもフルスピードで動作することが知られています。
|
||||
- 重量級と軽量級のフロントエンドのためのQtおよびSDLポート。
|
||||
- ローカル(同じコンピュータ)リンクケーブルのサポート。
|
||||
- フラッシュメモリサイズを含む保存タイプの検出[<sup>[2]</sup>](#flashdetect)。
|
||||
- モーションセンサーと振動機能を備えたカートリッジのサポート(ゲームコントローラーでのみ使用可能)。
|
||||
- 設定なしでもリアルタイムクロックのサポート。
|
||||
- ボクタイゲームのためのソーラーセンサーのサポート。
|
||||
- ゲームボーイカメラとゲームボーイプリンターのサポート。
|
||||
- 内蔵BIOS実装と外部BIOSファイルの読み込み機能。
|
||||
- Luaを使用したスクリプトサポート。
|
||||
- Tabキーを押し続けることでターボ/早送りサポート。
|
||||
- バッククォートを押し続けることで巻き戻し。
|
||||
- 最大10まで設定可能なフレームスキップ。
|
||||
- スクリーンショットのサポート。
|
||||
- チートコードのサポート。
|
||||
- 9つのセーブステートスロット。セーブステートはスクリーンショットとしても表示可能。
|
||||
- ビデオ、GIF、WebP、およびAPNGの録画。
|
||||
- e-Readerのサポート。
|
||||
- キーボードとゲームパッドのリマップ可能なコントロール。
|
||||
- ZIPおよび7zファイルからの読み込み。
|
||||
- IPS、UPS、およびBPSパッチのサポート。
|
||||
- コマンドラインインターフェースとGDBリモートサポートを介したゲームデバッグ、GhidraおよびIDA Proと互換性あり。
|
||||
- 設定可能なエミュレーションの巻き戻し。
|
||||
- GameSharkおよびAction Replayスナップショットの読み込みおよびエクスポートのサポート。
|
||||
- RetroArch/LibretroおよびOpenEmu用のコア。
|
||||
- [Weblate](https://hosted.weblate.org/engage/mgba)を介した複数の言語のコミュニティ提供の翻訳。
|
||||
- その他、多くの小さな機能。
|
||||
|
||||
#### ゲームボーイマッパー
|
||||
|
||||
以下のマッパーが完全にサポートされています:
|
||||
|
||||
- MBC1
|
||||
- MBC1M
|
||||
- MBC2
|
||||
- MBC3
|
||||
- MBC3+RTC
|
||||
- MBC30
|
||||
- MBC5
|
||||
- MBC5+Rumble
|
||||
- MBC7
|
||||
- Wisdom Tree(非公式)
|
||||
- NT "old type" 1 and 2(非公式マルチカート)
|
||||
- NT "new type"(非公式MBC5類似)
|
||||
- Pokémon Jade/Diamond(非公式)
|
||||
- Sachen MMC1(非公式)
|
||||
|
||||
以下のマッパーが部分的にサポートされています:
|
||||
|
||||
- MBC6(フラッシュメモリ書き込みサポートなし)
|
||||
- MMM01
|
||||
- Pocket Cam
|
||||
- TAMA5(RTCサポート不完全)
|
||||
- HuC-1(IRサポートなし)
|
||||
- HuC-3(IRサポートなし)
|
||||
- Sachen MMC2(代替配線サポートなし)
|
||||
- BBD(ロゴ切り替えなし)
|
||||
- Hitek(ロゴ切り替えなし)
|
||||
- GGB-81(ロゴ切り替えなし)
|
||||
- Li Cheng(ロゴ切り替えなし)
|
||||
|
||||
### 計画されている機能
|
||||
|
||||
- ネットワーク対応のマルチプレイヤーリンクケーブルサポート。
|
||||
- Dolphin/JOYバスリンクケーブルサポート。
|
||||
- MP2kオーディオミキシング、ハードウェアより高品質のサウンド。
|
||||
- ツールアシストランのための再録サポート。
|
||||
- 包括的なデバッグスイート。
|
||||
- ワイヤレスアダプターのサポート。
|
||||
|
||||
サポートされているプラットフォーム
|
||||
-------------------
|
||||
|
||||
- Windows 7以降
|
||||
- OS X 10.9(Mavericks)[<sup>[3]</sup>](#osxver)以降
|
||||
- Linux
|
||||
- FreeBSD
|
||||
- Nintendo 3DS
|
||||
- Nintendo Switch
|
||||
- Wii
|
||||
- PlayStation Vita
|
||||
|
||||
他のUnix系プラットフォーム(OpenBSDなど)も動作することが知られていますが、テストされておらず、完全にはサポートされていません。
|
||||
|
||||
### システム要件
|
||||
|
||||
要件は最小限です。Windows Vista以降を実行できるコンピュータであれば、エミュレーションを処理できるはずです。OpenGL 1.1以降のサポートも必要であり、シェーダーや高度な機能にはOpenGL 3.2以降が必要です。
|
||||
|
||||
ダウンロード
|
||||
---------
|
||||
|
||||
ダウンロードは公式ウェブサイトの[ダウンロード][downloads]セクションで見つけることができます。ソースコードは[GitHub][source]で見つけることができます。
|
||||
|
||||
コントロール
|
||||
--------
|
||||
|
||||
コントロールは設定メニューで設定可能です。多くのゲームコントローラーはデフォルトで自動的にマッピングされるはずです。デフォルトのキーボードコントロールは次のとおりです:
|
||||
|
||||
- **A**:X
|
||||
- **B**:Z
|
||||
- **L**:A
|
||||
- **R**:S
|
||||
- **Start**:Enter
|
||||
- **Select**:Backspace
|
||||
|
||||
コンパイル
|
||||
---------
|
||||
|
||||
コンパイルにはCMake 3.1以降の使用が必要です。GCC、Clang、およびVisual Studio 2019はmGBAのコンパイルに使用できることが知られています。
|
||||
|
||||
#### Dockerビルド
|
||||
|
||||
ほとんどのプラットフォームでのビルドにはDockerを使用することをお勧めします。いくつかのプラットフォームでmGBAをビルドするために必要なツールチェーンと依存関係を含むいくつかのDockerイメージが提供されています。
|
||||
|
||||
注意:Windows 10以前の古いWindowsシステムを使用している場合、DockerがVirtualBox共有フォルダーを使用して現在の`mgba`チェックアウトディレクトリをDockerイメージの作業ディレクトリに正しくマッピングするように構成する必要がある場合があります。(詳細については、issue [#1985](https://mgba.io/i/1985)を参照してください。)
|
||||
|
||||
Dockerイメージを使用してmGBAをビルドするには、mGBAのチェックアウトのルートで次のコマンドを実行します:
|
||||
|
||||
docker run --rm -it -v ${PWD}:/home/mgba/src mgba/windows:w32
|
||||
|
||||
Dockerコンテナを起動した後、ビルド成果物を含む`build-win32`ディレクトリが生成されます。他のプラットフォーム用のDockerイメージに置き換えると、対応する他のディレクトリが生成されます。Docker Hubで利用可能なDockerイメージは次のとおりです:
|
||||
|
||||
- mgba/3ds
|
||||
- mgba/switch
|
||||
- mgba/ubuntu:xenial
|
||||
- mgba/ubuntu:bionic
|
||||
- mgba/ubuntu:focal
|
||||
- mgba/ubuntu:groovy
|
||||
- mgba/vita
|
||||
- mgba/wii
|
||||
- mgba/windows:w32
|
||||
- mgba/windows:w64
|
||||
|
||||
ビルドプロセスを高速化したい場合は、`-e MAKEFLAGS=-jN`フラグを追加して、`N`個のCPUコアでmGBAの並列ビルドを行うことを検討してください。
|
||||
|
||||
#### *nixビルド
|
||||
|
||||
UnixベースのシステムでCMakeを使用してビルドするには、次のコマンドを実行することをお勧めします:
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr ..
|
||||
make
|
||||
sudo make install
|
||||
|
||||
これにより、mGBAがビルドされ、`/usr/bin`および`/usr/lib`にインストールされます。インストールされている依存関係は自動的に検出され、依存関係が見つからない場合に無効になる機能は、`cmake`コマンドを実行した後に警告として表示されます。
|
||||
|
||||
macOSを使用している場合、手順は少し異なります。homebrewパッケージマネージャーを使用していると仮定すると、依存関係を取得してビルドするための推奨コマンドは次のとおりです:
|
||||
|
||||
brew install cmake ffmpeg libzip qt5 sdl2 libedit lua pkg-config
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_PREFIX_PATH=`brew --prefix qt5` ..
|
||||
make
|
||||
|
||||
macOSでは`make install`を実行しないでください。正しく動作しないためです。
|
||||
|
||||
#### Windows開発者ビルド
|
||||
|
||||
##### MSYS2
|
||||
|
||||
Windowsでの開発用ビルドにはMSYS2を使用することをお勧めします。MSYS2の[ウェブサイト](https://msys2.github.io)に記載されているインストール手順に従ってください。32ビットバージョン(「MSYS2 MinGW 32-bit」)を実行していることを確認してください(x86_64用にビルドする場合は64ビットバージョン「MSYS2 MinGW 64-bit」を実行してください)。必要な依存関係をインストールするために次の追加コマンド(中括弧を含む)を実行します(このコマンドは1100MiB以上のパッケージをダウンロードするため、長時間かかることに注意してください):
|
||||
|
||||
pacman -Sy --needed base-devel git ${MINGW_PACKAGE_PREFIX}-{cmake,ffmpeg,gcc,gdb,libelf,libepoxy,libzip,lua,pkgconf,qt5,SDL2,ntldd-git}
|
||||
|
||||
次のコマンドを実行してソースコードをチェックアウトします:
|
||||
|
||||
git clone https://github.com/mgba-emu/mgba.git
|
||||
|
||||
最後に、次のコマンドを実行してビルドします:
|
||||
|
||||
mkdir -p mgba/build
|
||||
cd mgba/build
|
||||
cmake .. -G "MSYS Makefiles"
|
||||
make -j$(nproc --ignore=1)
|
||||
|
||||
このWindows用mGBAビルドは、実行に必要なDLLが分散しているため、配布には適していないことに注意してください。ただし、開発には最適です。ただし、そのようなビルドを配布する必要がある場合(たとえば、MSYS2環境がインストールされていないマシンでのテスト用)、`cpack -G ZIP`を実行すると、必要なDLLをすべて含むzipファイルが準備されます。
|
||||
|
||||
##### Visual Studio
|
||||
|
||||
Visual Studioを使用してビルドするには、同様に複雑なセットアップが必要です。まず、[vcpkg](https://github.com/Microsoft/vcpkg)をインストールする必要があります。vcpkgをインストールした後、いくつかの追加パッケージをインストールする必要があります:
|
||||
|
||||
vcpkg install ffmpeg[vpx,x264] libepoxy libpng libzip lua sdl2 sqlite3
|
||||
|
||||
このインストールでは、Nvidiaハードウェアでのハードウェアアクセラレーションビデオエンコーディングはサポートされません。これが重要な場合は、事前にCUDAをインストールし、前のコマンドに`ffmpeg[vpx,x264,nvcodec]`を置き換えます。
|
||||
|
||||
Qtもインストールする必要があります。ただし、Qtは合理的な組織ではなく、困窮している会社によって所有および運営されているため、最新バージョンのオフラインオープンソースエディションインストーラーは存在しないため、[旧バージョンのインストーラー](https://download.qt.io/official_releases/qt/5.12/5.12.9/qt-opensource-windows-x86-5.12.9.exe)に戻る必要があります(これには無用なアカウントの作成が必要ですが、一時的に無効なプロキシを設定するか、ネットワークを無効にすることで回避できます)、オンラインインストーラーを使用する(いずれにしてもアカウントが必要です)、またはvcpkgを使用してビルドする(遅い)。これらはすべて良い選択肢ではありません。インストーラーを使用する場合は、適用可能なMSVCバージョンをインストールする必要があります。オフラインインストーラーはMSVC 2019をサポートしていないことに注意してください。vcpkgを使用する場合、次のようにインストールする必要があります。特にクアッドコア以下のコンピュータではかなりの時間がかかります:
|
||||
|
||||
vcpkg install qt5-base qt5-multimedia
|
||||
|
||||
次に、Visual Studioを開き、「リポジトリのクローンを作成」を選択し、`https://github.com/mgba-emu/mgba.git`を入力します。Visual Studioがクローンを完了したら、「ファイル」>「CMake」に移動し、チェックアウトされたリポジトリのルートにあるCMakeLists.txtファイルを開きます。そこから、他のVisual Studio CMakeプロジェクトと同様にVisual StudioでmGBAを開発できます。
|
||||
|
||||
#### ツールチェーンビルド
|
||||
|
||||
devkitARM(3DS用)、devkitPPC(Wii用)、devkitA64(Switch用)、またはvitasdk(PS Vita用)を持っている場合は、次のコマンドを使用してビルドできます:
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../src/platform/3ds/CMakeToolchain.txt ..
|
||||
make
|
||||
|
||||
次のプラットフォーム用に`-DCMAKE_TOOLCHAIN_FILE`パラメータを置き換えます:
|
||||
|
||||
- 3DS:`../src/platform/3ds/CMakeToolchain.txt`
|
||||
- Switch:`../src/platform/switch/CMakeToolchain.txt`
|
||||
- Vita:`../src/platform/psp2/CMakeToolchain.vitasdk`
|
||||
- Wii:`../src/platform/wii/CMakeToolchain.txt`
|
||||
|
||||
### 依存関係
|
||||
|
||||
mGBAには厳密な依存関係はありませんが、特定の機能には次のオプションの依存関係が必要です。依存関係が見つからない場合、これらの機能は無効になります。
|
||||
|
||||
- Qt 5:GUIフロントエンド用。オーディオにはQt MultimediaまたはSDLが必要です。
|
||||
- SDL:より基本的なフロントエンドおよびQtフロントエンドでのゲームパッドサポート用。SDL 2が推奨されますが、1.2もサポートされています。
|
||||
- zlibおよびlibpng:スクリーンショットサポートおよびPNG内セーブステートサポート用。
|
||||
- libedit:コマンドラインデバッガーサポート用。
|
||||
- ffmpegまたはlibav:ビデオ、GIF、WebP、およびAPNGの録画用。
|
||||
- libzipまたはzlib:zipファイルに保存されたROMの読み込み用。
|
||||
- SQLite3:ゲームデータベース用。
|
||||
- libelf:ELF読み込み用。
|
||||
- Lua:スクリプト用。
|
||||
- json-c:スクリプトの`storage` API用。
|
||||
|
||||
SQLite3、libpng、およびzlibはエミュレーターに含まれているため、最初に外部でコンパイルする必要はありません。
|
||||
|
||||
脚注
|
||||
---------
|
||||
|
||||
<a name="missing">[1]</a> 現在欠けている機能は次のとおりです
|
||||
|
||||
- モード3、4、および5のOBJウィンドウ([バグ#5](http://mgba.io/b/5))
|
||||
|
||||
<a name="flashdetect">[2]</a> フラッシュメモリサイズの検出は一部のケースで機能しません。これらは実行時に構成できますが、そのようなケースに遭遇した場合はバグを報告することをお勧めします。
|
||||
|
||||
<a name="osxver">[3]</a> 10.9はQtポートにのみ必要です。10.7またはそれ以前のバージョンでQtポートをビルドまたは実行することは可能かもしれませんが、公式にはサポートされていません。SDLポートは10.5で動作することが知られており、古いバージョンでも動作する可能性があります。
|
||||
|
||||
[downloads]: http://mgba.io/downloads.html
|
||||
[source]: https://github.com/mgba-emu/mgba/
|
||||
|
||||
著作権
|
||||
---------
|
||||
|
||||
mGBAの著作権は© 2013 – 2023 Jeffrey Pfauに帰属します。これは[Mozilla Public License version 2.0](https://www.mozilla.org/MPL/2.0/)の下で配布されています。配布されたLICENSEファイルにライセンスのコピーが含まれています。
|
||||
|
||||
mGBAには次のサードパーティライブラリが含まれています:
|
||||
|
||||
- [inih](https://github.com/benhoyt/inih)、著作権© 2009 – 2020 Ben Hoyt、BSD 3-clauseライセンスの下で使用。
|
||||
- [LZMA SDK](http://www.7-zip.org/sdk.html)、パブリックドメイン。
|
||||
- [MurmurHash3](https://github.com/aappleby/smhasher)、Austin Applebyによる実装、パブリックドメイン。
|
||||
- [getopt for MSVC](https://github.com/skandhurkat/Getopt-for-Visual-Studio/)、パブリックドメイン。
|
||||
- [SQLite3](https://www.sqlite.org)、パブリックドメイン。
|
||||
|
||||
ゲームパブリッシャーであり、商業利用のためにmGBAのライセンスを取得したい場合は、[licensing@mgba.io](mailto:licensing@mgba.io)までメールでお問い合わせください。
|
|
@ -5,7 +5,9 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
|
||||
可在以下网址找到最新新闻和下载:[mgba.io](https://mgba.io/)。
|
||||
|
||||
[](https://travis-ci.org/mgba-emu/mgba)
|
||||
[](https://buildbot.mgba.io)
|
||||
[](https://hosted.weblate.org/engage/mgba)
|
||||
|
||||
|
||||
功能
|
||||
--------
|
||||
|
@ -13,7 +15,7 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
- 支持高精确的 Game Boy Advance 硬件[<sup>[1]</sup>](#missing)。
|
||||
- 支持 Game Boy/Game Boy Color 硬件。
|
||||
- 快速模拟:已知即使在低端硬件(例如上网本)上也能够全速运行。
|
||||
- 用于重型和轻型前端的 Qt 和 SDL 端口。
|
||||
- 可用于重型和轻型前端的 Qt 和 SDL 移植。
|
||||
- 支持本地(同一台计算机)链接电缆。
|
||||
- 存档类型检测,即使是闪存大小也可检测[<sup>[2]</sup>](#flashdetect)。
|
||||
- 支持附带有运动传感器和振动机制的卡带(仅适用于游戏控制器)。
|
||||
|
@ -21,6 +23,7 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
- 支持《我们的太阳》系列游戏的太阳能传感器。
|
||||
- 支持 Game Boy 相机和 Game Boy 打印机。
|
||||
- 内置 BIOS 执行,并具有加载外部 BIOS 文件的功能。
|
||||
- 支持使用 Lua 编写脚本
|
||||
- 支持 Turbo/快进功能(按住 Tab 键)。
|
||||
- 支持倒带(按住反引号键)。
|
||||
- 支持跳帧,最多可配置 10 级。
|
||||
|
@ -32,10 +35,11 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
- 可重新映射键盘和游戏手柄的控制键。
|
||||
- 支持从 ZIP 和 7z 文件中加载。
|
||||
- 支持 IPS、UPS 和 BPS 补丁。
|
||||
- 支持通过命令行界面和 GDB 远程支持进行游戏调试,兼容 IDA Pro。
|
||||
- 支持通过命令行界面和 GDB 远程支持进行游戏调试,兼容 Ghidra 和 IDA Pro。
|
||||
- 支持可配置的模拟倒带。
|
||||
- 支持载入和导出 GameShark 和 Action Replay 快照。
|
||||
- 适用于 RetroArch/Libretro 和 OpenEmu 的内核。
|
||||
- 社区支持的多种语言翻译 [Weblate](https://hosted.weblate.org/engage/mgba).
|
||||
- 许许多多的小玩意。
|
||||
|
||||
#### Game Boy 映射器(mapper)
|
||||
|
@ -51,9 +55,10 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
- MBC5+振动
|
||||
- MBC7
|
||||
- Wisdom Tree(未授权)
|
||||
- NT "old type" 1 and 2 (未授权多合一卡带)
|
||||
- NT "new type" (未授权 MBC5-like)
|
||||
- Pokémon Jade/Diamond(未授权)
|
||||
- BBD(未授权、类 MBC5)
|
||||
- Hitek(未授权、类 MBC5)
|
||||
- Sachen MMC1 (未授权)
|
||||
|
||||
部分支持以下 mapper:
|
||||
|
||||
|
@ -63,6 +68,11 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
- TAMA5(缺少 RTC 支持)
|
||||
- HuC-1(缺少 IR 支持)
|
||||
- HuC-3(缺少 IR 和 RTC 支持)
|
||||
- Sachen MMC2 (缺少备用接线支持)
|
||||
- BBD (缺少图标切换)
|
||||
- Hitek (缺少图标切换)
|
||||
- GGB-81 (缺少图标切换)
|
||||
- Li Cheng (缺少图标切换)
|
||||
|
||||
### 计划加入的功能
|
||||
|
||||
|
@ -70,15 +80,14 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
- 支持 Dolphin/JOY 总线链接电缆。
|
||||
- MP2k 音频混合,获得比硬件更高质量的声音。
|
||||
- 支持针对工具辅助竞速(Tool-Assisted Speedrun)的重录功能。
|
||||
- 支持 Lua 脚本。
|
||||
- 全方位的调试套件。
|
||||
- 支持无线适配器。
|
||||
|
||||
支持平台
|
||||
-------------------
|
||||
|
||||
- Windows Vista 或更新
|
||||
- OS X 10.8(山狮 / Mountain Lion)[<sup>[3]</sup>](#osxver) 或更新
|
||||
- Windows 7 或更新
|
||||
- OS X 10.9(Mavericks)[<sup>[3]</sup>](#osxver) 或更新
|
||||
- Linux
|
||||
- FreeBSD
|
||||
- Nintendo 3DS
|
||||
|
@ -112,17 +121,19 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
编译
|
||||
---------
|
||||
|
||||
编译需要使用 CMake 3.1 或更新版本。已知 GCC 和 Clang 都可以编译 mGBA,而 Visual Studio 2013 和更旧的版本则无法编译。我们即将实现对 Visual Studio 2015 或更新版本的支持。
|
||||
编译需要使用 CMake 3.1 或更新版本。已知 GCC , Clang 和 Visual Studio 2013 都可以编译 mGBA。
|
||||
|
||||
#### Docker 构建
|
||||
|
||||
对于大多数平台来说,建议使用 Docker 进行构建。我们提供了多个 Docker 映像,其中包含在多个平台上构建 mGBA 所需的工具链和依赖项。
|
||||
|
||||
注意: 如果你是用的是 Widnows 10 之前的旧版本 Windows 系统, 你可能需要配置你的 Docker 使用 VirtualBox 共享文件夹以正确映射你当前 mGBA 检出目录到 Docker 镜像中的工作目录. 详细细节参见 issue [#1985](https://mgba.io/i/1985)
|
||||
|
||||
要使用 Docker 映像构建 mGBA,只需在 mGBA 的签出(checkout)根目录中运行以下命令:
|
||||
|
||||
docker run --rm -t -v $PWD:/home/mgba/src mgba/windows:w32
|
||||
|
||||
此命令将生成 `build-win32` 目录。将 `mgba/windows:w32` 替换为其他平台上的 Docker 映像,会生成相应的其他目录。Docker Hub 上提供了以下 Docker 映像:
|
||||
启动 Docker 容器之后, 此命令将生成 `build-win32` 目录, 此目录中包含编译产物。将 `mgba/windows:w32` 替换为其他平台上的 Docker 映像,会生成相应的其他目录。Docker Hub 上提供了以下 Docker 映像:
|
||||
|
||||
- mgba/3ds
|
||||
- mgba/switch
|
||||
|
@ -135,6 +146,8 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
- mgba/windows:w32
|
||||
- mgba/windows:w64
|
||||
|
||||
如果你希望加速编译过程, 可以考虑添加编译选项 `-e MAKEFLAGS=-jN`, 使用 `N` 个 CPU 核心来并行构建 mGBA
|
||||
|
||||
#### *nix 构建
|
||||
|
||||
要在基于 Unix 的系统上使用 CMake 进行构建,推荐执行以下命令:
|
||||
|
@ -147,7 +160,7 @@ mGBA 是一个运行 Game Boy Advance 游戏的模拟器。mGBA 的目标是比
|
|||
|
||||
这些命令将构建 mGBA 并将其安装到 `/usr/bin` 和 `/usr/lib` 中。系统会自动检测已安装的依赖项,如果未找到依赖项,则会在提示找不到依赖项的情况下运行 `cmake` 命令,并显示已被禁用的功能。
|
||||
|
||||
如果您使用的是 MacOS,则步骤略有不同。假设您使用的是自制软件包管理器,建议使用以下命令来获取依赖项并进行构建:
|
||||
如果您使用的是 MacOS,则步骤略有不同。假设您使用的 homebrew 软件包管理器,建议使用以下命令来获取依赖项并进行构建:
|
||||
|
||||
brew install cmake ffmpeg libzip qt5 sdl2 libedit pkg-config
|
||||
mkdir build
|
||||
|
@ -220,10 +233,12 @@ mGBA 没有硬性的依赖项,但是特定功能需要以下可选的依赖项
|
|||
- libzip 或 zlib:载入储存在 ZIP 文件中的 ROM 的所需依赖项。
|
||||
- SQLite3:游戏数据库的所需依赖项
|
||||
- libelf:ELF 载入的所需依赖项
|
||||
- Lua: 脚本支持
|
||||
- json-c: 脚本 `storage` API 支持
|
||||
|
||||
SQLite3、libpng 以及 zlib 已包含在模拟器中,因此不需要先对这些依赖项进行外部编译。
|
||||
|
||||
Footnotes
|
||||
脚注
|
||||
---------
|
||||
|
||||
<a name="missing">[1]</a> 目前缺失的功能有
|
||||
|
@ -232,7 +247,7 @@ Footnotes
|
|||
|
||||
<a name="flashdetect">[2]</a> 闪存大小检测在某些情况下不起作用。 这些可以在运行时中进行配置,但如果遇到此类情况,建议提交错误。
|
||||
|
||||
<a name="osxver">[3]</a> 仅 Qt 端口需要 10.8。应该可以在 10.7 或更早版本上构建或运行 Qt 端口,但这类操作不受官方支持。已知 SDL 端口可以在 10.5 上运行,并且可能能够在旧版本上运行。
|
||||
<a name="osxver">[3]</a> 仅 Qt 移植需要 10.9。应该可以在 10.7 或更早版本上构建或运行 Qt 移植,但这类操作不受官方支持。已知 SDL 移植可以在 10.5 上运行,并且可能能够在旧版本上运行。
|
||||
|
||||
[downloads]: http://mgba.io/downloads.html
|
||||
[source]: https://github.com/mgba-emu/mgba/
|
||||
|
@ -240,12 +255,11 @@ Footnotes
|
|||
版权
|
||||
---------
|
||||
|
||||
mGBA 版权 © 2013 – 2020 Jeffrey Pfau。基于 [Mozilla 公共许可证版本 2.0](https://www.mozilla.org/MPL/2.0/) 许可证分发。分发的 LICENSE 文件中提供了许可证的副本。
|
||||
mGBA 版权 © 2013 – 2023 Jeffrey Pfau。基于 [Mozilla 公共许可证版本 2.0](https://www.mozilla.org/MPL/2.0/) 许可证分发。分发的 LICENSE 文件中提供了许可证的副本。
|
||||
|
||||
mGBA 包含以下第三方库:
|
||||
|
||||
- [inih](https://github.com/benhoyt/inih):版权 © 2009 – 2020 Ben Hoyt,基于 BSD 3-clause 许可证使用。
|
||||
- [blip-buf](https://code.google.com/archive/p/blip-buf):版权 © 2003 – 2009 Shay Green,基于 Lesser GNU 公共许可证使用。
|
||||
- [LZMA SDK](http://www.7-zip.org/sdk.html):属公有领域使用。
|
||||
- [MurmurHash3](https://github.com/aappleby/smhasher):由 Austin Appleby 实施,属公有领域使用。
|
||||
- [getopt for MSVC](https://github.com/skandhurkat/Getopt-for-Visual-Studio/):属公有领域使用。
|
||||
|
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,6 @@
|
|||
[testinfo]
|
||||
skip=15
|
||||
frames=1
|
||||
|
||||
[ports.cinema]
|
||||
sgb.borders=0
|
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 699 B |
After Width: | Height: | Size: 729 B |
|
@ -0,0 +1,2 @@
|
|||
[testinfo]
|
||||
skip=600
|
After Width: | Height: | Size: 751 B |
|
@ -0,0 +1,2 @@
|
|||
[testinfo]
|
||||
skip=1080
|
After Width: | Height: | Size: 663 B |
After Width: | Height: | Size: 729 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 788 B |
After Width: | Height: | Size: 870 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 737 B |
After Width: | Height: | Size: 628 B |
|
@ -0,0 +1,3 @@
|
|||
[testinfo]
|
||||
skip=360
|
||||
frames=1
|
After Width: | Height: | Size: 672 B |
After Width: | Height: | Size: 700 B |
|
@ -0,0 +1,3 @@
|
|||
[testinfo]
|
||||
skip=600
|
||||
fail=1
|
After Width: | Height: | Size: 669 B |
After Width: | Height: | Size: 675 B |
After Width: | Height: | Size: 634 B |
After Width: | Height: | Size: 628 B |
After Width: | Height: | Size: 745 B |
After Width: | Height: | Size: 696 B |
After Width: | Height: | Size: 636 B |
After Width: | Height: | Size: 664 B |
|
@ -0,0 +1,2 @@
|
|||
[testinfo]
|
||||
skip=600
|
After Width: | Height: | Size: 685 B |
|
@ -0,0 +1,2 @@
|
|||
[testinfo]
|
||||
skip=600
|
After Width: | Height: | Size: 699 B |
After Width: | Height: | Size: 729 B |
|
@ -0,0 +1,2 @@
|
|||
[testinfo]
|
||||
skip=600
|
After Width: | Height: | Size: 751 B |
|
@ -0,0 +1,2 @@
|
|||
[testinfo]
|
||||
skip=1080
|
After Width: | Height: | Size: 663 B |
After Width: | Height: | Size: 729 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 788 B |
After Width: | Height: | Size: 890 B |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 737 B |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 527 B |