Cocoa Port:

- Fix building of the Legacy project.
- In the Legacy and Xcode 3 projects, make the default C language GNU99.
This commit is contained in:
rogerman 2014-03-05 04:47:34 +00:00
parent 4d50b396dd
commit e23beb8630
5 changed files with 344 additions and 75 deletions

View File

@ -887,6 +887,69 @@
ABB9215E17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; };
ABB9215F17CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; };
ABB9216017CEB53A0049D4C5 /* slot1comp_protocol.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */; };
ABBBF2EE18B7F59E00BDE776 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */; };
ABBBF2EF18B7F59E00BDE776 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */; };
ABBBF2F118B7F59E00BDE776 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E018B7F59E00BDE776 /* epx.cpp */; };
ABBBF2F218B7F59E00BDE776 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */; };
ABBBF2F318B7F59E00BDE776 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */; };
ABBBF2F418B7F59E00BDE776 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */; };
ABBBF2F518B7F59E00BDE776 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E418B7F59E00BDE776 /* scanline.cpp */; };
ABBBF2F618B7F59E00BDE776 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */; };
ABBBF2F718B7F59E00BDE776 /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */; };
ABBBF2F818B7F59E00BDE776 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */; };
ABBBF2F918B7F59E00BDE776 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */; };
ABBBF2FB18B7F59E00BDE776 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E018B7F59E00BDE776 /* epx.cpp */; };
ABBBF2FC18B7F59E00BDE776 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */; };
ABBBF2FD18B7F59E00BDE776 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */; };
ABBBF2FE18B7F59E00BDE776 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */; };
ABBBF2FF18B7F59E00BDE776 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E418B7F59E00BDE776 /* scanline.cpp */; };
ABBBF30018B7F59E00BDE776 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */; };
ABBBF30118B7F59E00BDE776 /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */; };
ABBBF30218B7F59E00BDE776 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */; };
ABBBF30318B7F59E00BDE776 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */; };
ABBBF30518B7F59E00BDE776 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E018B7F59E00BDE776 /* epx.cpp */; };
ABBBF30618B7F59E00BDE776 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */; };
ABBBF30718B7F59E00BDE776 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */; };
ABBBF30818B7F59E00BDE776 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */; };
ABBBF30918B7F59E00BDE776 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E418B7F59E00BDE776 /* scanline.cpp */; };
ABBBF30A18B7F59E00BDE776 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */; };
ABBBF30B18B7F59E00BDE776 /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */; };
ABBBF30C18B7F59E00BDE776 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */; };
ABBBF30D18B7F59E00BDE776 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */; };
ABBBF30F18B7F59E00BDE776 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E018B7F59E00BDE776 /* epx.cpp */; };
ABBBF31018B7F59E00BDE776 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */; };
ABBBF31118B7F59E00BDE776 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */; };
ABBBF31218B7F59E00BDE776 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */; };
ABBBF31318B7F59E00BDE776 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E418B7F59E00BDE776 /* scanline.cpp */; };
ABBBF31418B7F59E00BDE776 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */; };
ABBBF31518B7F59E00BDE776 /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */; };
ABBBF31618B7F59E00BDE776 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */; };
ABBBF31718B7F59E00BDE776 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */; };
ABBBF31918B7F59E00BDE776 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E018B7F59E00BDE776 /* epx.cpp */; };
ABBBF31A18B7F59E00BDE776 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */; };
ABBBF31B18B7F59E00BDE776 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */; };
ABBBF31C18B7F59E00BDE776 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */; };
ABBBF31D18B7F59E00BDE776 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E418B7F59E00BDE776 /* scanline.cpp */; };
ABBBF31E18B7F59E00BDE776 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */; };
ABBBF31F18B7F59E00BDE776 /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */; };
ABBBF32018B7F59E00BDE776 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */; };
ABBBF32118B7F59E00BDE776 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */; };
ABBBF32318B7F59E00BDE776 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E018B7F59E00BDE776 /* epx.cpp */; };
ABBBF32418B7F59E00BDE776 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */; };
ABBBF32518B7F59E00BDE776 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */; };
ABBBF32618B7F59E00BDE776 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */; };
ABBBF32718B7F59E00BDE776 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E418B7F59E00BDE776 /* scanline.cpp */; };
ABBBF32818B7F59E00BDE776 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */; };
ABBBF32918B7F59E00BDE776 /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */; };
ABBBF32A18B7F59E00BDE776 /* 2xsai.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */; };
ABBBF32B18B7F59E00BDE776 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */; };
ABBBF32D18B7F59E00BDE776 /* epx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E018B7F59E00BDE776 /* epx.cpp */; };
ABBBF32E18B7F59E00BDE776 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */; };
ABBBF32F18B7F59E00BDE776 /* hq4x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */; };
ABBBF33018B7F59E00BDE776 /* lq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */; };
ABBBF33118B7F59E00BDE776 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E418B7F59E00BDE776 /* scanline.cpp */; };
ABBBF33218B7F59E00BDE776 /* videofilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */; };
ABBBF33318B7F59E00BDE776 /* xbrz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */; };
ABBF053014B5436E00E505A0 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABBF052F14B5436E00E505A0 /* cocoa_file.mm */; };
ABBF053114B5436E00E505A0 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABBF052F14B5436E00E505A0 /* cocoa_file.mm */; };
ABBF053214B5436E00E505A0 /* cocoa_file.mm in Sources */ = {isa = PBXBuildFile; fileRef = ABBF052F14B5436E00E505A0 /* cocoa_file.mm */; };
@ -1424,6 +1487,22 @@
ABB328EE18313F7C00FEE4C4 /* slot2_auto.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot2_auto.cpp; sourceTree = "<group>"; };
ABB9215817CEB53A0049D4C5 /* slot1comp_protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = slot1comp_protocol.h; sourceTree = "<group>"; };
ABB9215917CEB53A0049D4C5 /* slot1comp_protocol.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = slot1comp_protocol.cpp; sourceTree = "<group>"; };
ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = 2xsai.cpp; sourceTree = "<group>"; };
ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bilinear.cpp; sourceTree = "<group>"; };
ABBBF2E018B7F59E00BDE776 /* epx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = epx.cpp; sourceTree = "<group>"; };
ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq2x.cpp; sourceTree = "<group>"; };
ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hq4x.cpp; sourceTree = "<group>"; };
ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lq2x.cpp; sourceTree = "<group>"; };
ABBBF2E418B7F59E00BDE776 /* scanline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scanline.cpp; sourceTree = "<group>"; };
ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = videofilter.cpp; sourceTree = "<group>"; };
ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xbrz.cpp; sourceTree = "<group>"; };
ABBBF2E718B7F59E00BDE776 /* filter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = filter.h; sourceTree = "<group>"; };
ABBBF2E818B7F59E00BDE776 /* hq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq2x.h; sourceTree = "<group>"; };
ABBBF2E918B7F59E00BDE776 /* hq4x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hq4x.h; sourceTree = "<group>"; };
ABBBF2EA18B7F59E00BDE776 /* interp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = interp.h; sourceTree = "<group>"; };
ABBBF2EB18B7F59E00BDE776 /* lq2x.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lq2x.h; sourceTree = "<group>"; };
ABBBF2EC18B7F59E00BDE776 /* videofilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = videofilter.h; sourceTree = "<group>"; };
ABBBF2ED18B7F59E00BDE776 /* xbrz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbrz.h; sourceTree = "<group>"; };
ABBF045E14B5144D00E505A0 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = "translations/English.lproj/MainMenu (Legacy).xib"; sourceTree = "<group>"; };
ABBF04CB14B51BBB00E505A0 /* Chinese */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Chinese; path = translations/Chinese.lproj/Localizable.strings; sourceTree = "<group>"; };
ABBF04CC14B51BC300E505A0 /* Norwegian */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Norwegian; path = translations/Norwegian.lproj/Localizable.strings; sourceTree = "<group>"; };
@ -1718,6 +1797,7 @@
AB06CD9B135B8AED00E977B3 /* addons */,
AB06CDA7135B8AED00E977B3 /* cli */,
AB06CDAF135B8AED00E977B3 /* gdbstub */,
ABBBF2DC18B7F59E00BDE776 /* filter */,
AB06CDB3135B8AED00E977B3 /* metaspu */,
AB06CDDC135B8AED00E977B3 /* utils */,
AB06CD0F135B8ACE00E977B3 /* aggdraw.cpp */,
@ -2093,6 +2173,30 @@
name = "App Icons";
sourceTree = "<group>";
};
ABBBF2DC18B7F59E00BDE776 /* filter */ = {
isa = PBXGroup;
children = (
ABBBF2DD18B7F59E00BDE776 /* 2xsai.cpp */,
ABBBF2DE18B7F59E00BDE776 /* bilinear.cpp */,
ABBBF2E018B7F59E00BDE776 /* epx.cpp */,
ABBBF2E118B7F59E00BDE776 /* hq2x.cpp */,
ABBBF2E218B7F59E00BDE776 /* hq4x.cpp */,
ABBBF2E318B7F59E00BDE776 /* lq2x.cpp */,
ABBBF2E418B7F59E00BDE776 /* scanline.cpp */,
ABBBF2E518B7F59E00BDE776 /* videofilter.cpp */,
ABBBF2E618B7F59E00BDE776 /* xbrz.cpp */,
ABBBF2E718B7F59E00BDE776 /* filter.h */,
ABBBF2E818B7F59E00BDE776 /* hq2x.h */,
ABBBF2E918B7F59E00BDE776 /* hq4x.h */,
ABBBF2EA18B7F59E00BDE776 /* interp.h */,
ABBBF2EB18B7F59E00BDE776 /* lq2x.h */,
ABBBF2EC18B7F59E00BDE776 /* videofilter.h */,
ABBBF2ED18B7F59E00BDE776 /* xbrz.h */,
);
name = filter;
path = ../filter;
sourceTree = SOURCE_ROOT;
};
ABC3ADEC14B7DC6E00D5B13D /* userinterface */ = {
isa = PBXGroup;
children = (
@ -2983,6 +3087,15 @@
AB126D2A182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */,
ABB328EC18313F5A00FEE4C4 /* slot2.cpp in Sources */,
ABB328F418313F7C00FEE4C4 /* slot2_auto.cpp in Sources */,
ABBBF32018B7F59E00BDE776 /* 2xsai.cpp in Sources */,
ABBBF32118B7F59E00BDE776 /* bilinear.cpp in Sources */,
ABBBF32318B7F59E00BDE776 /* epx.cpp in Sources */,
ABBBF32418B7F59E00BDE776 /* hq2x.cpp in Sources */,
ABBBF32518B7F59E00BDE776 /* hq4x.cpp in Sources */,
ABBBF32618B7F59E00BDE776 /* lq2x.cpp in Sources */,
ABBBF32718B7F59E00BDE776 /* scanline.cpp in Sources */,
ABBBF32818B7F59E00BDE776 /* videofilter.cpp in Sources */,
ABBBF32918B7F59E00BDE776 /* xbrz.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -3134,6 +3247,15 @@
AB126D28182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */,
ABB328EA18313F5A00FEE4C4 /* slot2.cpp in Sources */,
ABB328F218313F7C00FEE4C4 /* slot2_auto.cpp in Sources */,
ABBBF30C18B7F59E00BDE776 /* 2xsai.cpp in Sources */,
ABBBF30D18B7F59E00BDE776 /* bilinear.cpp in Sources */,
ABBBF30F18B7F59E00BDE776 /* epx.cpp in Sources */,
ABBBF31018B7F59E00BDE776 /* hq2x.cpp in Sources */,
ABBBF31118B7F59E00BDE776 /* hq4x.cpp in Sources */,
ABBBF31218B7F59E00BDE776 /* lq2x.cpp in Sources */,
ABBBF31318B7F59E00BDE776 /* scanline.cpp in Sources */,
ABBBF31418B7F59E00BDE776 /* videofilter.cpp in Sources */,
ABBBF31518B7F59E00BDE776 /* xbrz.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -3285,6 +3407,15 @@
AB126D26182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */,
ABB328E818313F5A00FEE4C4 /* slot2.cpp in Sources */,
ABB328F018313F7C00FEE4C4 /* slot2_auto.cpp in Sources */,
ABBBF2F818B7F59E00BDE776 /* 2xsai.cpp in Sources */,
ABBBF2F918B7F59E00BDE776 /* bilinear.cpp in Sources */,
ABBBF2FB18B7F59E00BDE776 /* epx.cpp in Sources */,
ABBBF2FC18B7F59E00BDE776 /* hq2x.cpp in Sources */,
ABBBF2FD18B7F59E00BDE776 /* hq4x.cpp in Sources */,
ABBBF2FE18B7F59E00BDE776 /* lq2x.cpp in Sources */,
ABBBF2FF18B7F59E00BDE776 /* scanline.cpp in Sources */,
ABBBF30018B7F59E00BDE776 /* videofilter.cpp in Sources */,
ABBBF30118B7F59E00BDE776 /* xbrz.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -3406,6 +3537,15 @@
AB126D25182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */,
ABB328E718313F5A00FEE4C4 /* slot2.cpp in Sources */,
ABB328EF18313F7C00FEE4C4 /* slot2_auto.cpp in Sources */,
ABBBF2EE18B7F59E00BDE776 /* 2xsai.cpp in Sources */,
ABBBF2EF18B7F59E00BDE776 /* bilinear.cpp in Sources */,
ABBBF2F118B7F59E00BDE776 /* epx.cpp in Sources */,
ABBBF2F218B7F59E00BDE776 /* hq2x.cpp in Sources */,
ABBBF2F318B7F59E00BDE776 /* hq4x.cpp in Sources */,
ABBBF2F418B7F59E00BDE776 /* lq2x.cpp in Sources */,
ABBBF2F518B7F59E00BDE776 /* scanline.cpp in Sources */,
ABBBF2F618B7F59E00BDE776 /* videofilter.cpp in Sources */,
ABBBF2F718B7F59E00BDE776 /* xbrz.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -3527,6 +3667,15 @@
AB126D27182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */,
ABB328E918313F5A00FEE4C4 /* slot2.cpp in Sources */,
ABB328F118313F7C00FEE4C4 /* slot2_auto.cpp in Sources */,
ABBBF30218B7F59E00BDE776 /* 2xsai.cpp in Sources */,
ABBBF30318B7F59E00BDE776 /* bilinear.cpp in Sources */,
ABBBF30518B7F59E00BDE776 /* epx.cpp in Sources */,
ABBBF30618B7F59E00BDE776 /* hq2x.cpp in Sources */,
ABBBF30718B7F59E00BDE776 /* hq4x.cpp in Sources */,
ABBBF30818B7F59E00BDE776 /* lq2x.cpp in Sources */,
ABBBF30918B7F59E00BDE776 /* scanline.cpp in Sources */,
ABBBF30A18B7F59E00BDE776 /* videofilter.cpp in Sources */,
ABBBF30B18B7F59E00BDE776 /* xbrz.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -3658,6 +3807,15 @@
AB126D2B182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */,
ABB328ED18313F5A00FEE4C4 /* slot2.cpp in Sources */,
ABB328F518313F7C00FEE4C4 /* slot2_auto.cpp in Sources */,
ABBBF32A18B7F59E00BDE776 /* 2xsai.cpp in Sources */,
ABBBF32B18B7F59E00BDE776 /* bilinear.cpp in Sources */,
ABBBF32D18B7F59E00BDE776 /* epx.cpp in Sources */,
ABBBF32E18B7F59E00BDE776 /* hq2x.cpp in Sources */,
ABBBF32F18B7F59E00BDE776 /* hq4x.cpp in Sources */,
ABBBF33018B7F59E00BDE776 /* lq2x.cpp in Sources */,
ABBBF33118B7F59E00BDE776 /* scanline.cpp in Sources */,
ABBBF33218B7F59E00BDE776 /* videofilter.cpp in Sources */,
ABBBF33318B7F59E00BDE776 /* xbrz.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -3809,6 +3967,15 @@
AB126D29182ECC7B00EBCF22 /* slot2_passme.cpp in Sources */,
ABB328EB18313F5A00FEE4C4 /* slot2.cpp in Sources */,
ABB328F318313F7C00FEE4C4 /* slot2_auto.cpp in Sources */,
ABBBF31618B7F59E00BDE776 /* 2xsai.cpp in Sources */,
ABBBF31718B7F59E00BDE776 /* bilinear.cpp in Sources */,
ABBBF31918B7F59E00BDE776 /* epx.cpp in Sources */,
ABBBF31A18B7F59E00BDE776 /* hq2x.cpp in Sources */,
ABBBF31B18B7F59E00BDE776 /* hq4x.cpp in Sources */,
ABBBF31C18B7F59E00BDE776 /* lq2x.cpp in Sources */,
ABBBF31D18B7F59E00BDE776 /* scanline.cpp in Sources */,
ABBBF31E18B7F59E00BDE776 /* videofilter.cpp in Sources */,
ABBBF31F18B7F59E00BDE776 /* xbrz.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -4048,6 +4215,7 @@
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_ALTIVEC_EXTENSIONS = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_FAST_OBJC_DISPATCH = NO;
@ -4090,6 +4258,7 @@
COPY_PHASE_STRIP = NO;
GCC_ALTIVEC_EXTENSIONS = YES;
GCC_AUTO_VECTORIZATION = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_SSE3_EXTENSIONS = YES;
GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;

View File

@ -4219,6 +4219,7 @@
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
GCC_ALTIVEC_EXTENSIONS = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
GCC_FAST_MATH = YES;
@ -4271,6 +4272,7 @@
ENABLE_OPENMP_SUPPORT = NO;
GCC_ALTIVEC_EXTENSIONS = YES;
GCC_AUTO_VECTORIZATION = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = YES;
GCC_ENABLE_SSE3_EXTENSIONS = YES;
GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;

View File

@ -159,4 +159,5 @@
@end
void RomIconToRGBA8888(uint32_t *bitmapData);
bool OSXOpenGLRendererInit();

View File

@ -130,7 +130,7 @@ bool OSXOpenGLRendererInit()
timer_based = ([NSObject instancesRespondToSelector:@selector(performSelector:onThread:withObject:waitUntilDone:)]==NO)?true:false;
#ifdef HAVE_JIT
CommonSettings.use_jit = false;
CommonSettings.use_jit = true;
#endif
//Firmware setup
@ -461,81 +461,61 @@ bool OSXOpenGLRendererInit()
- (NSImage *) romIcon
{
NDS_header *header = NDS_getROMHeader();
if(!header)return nil;
if(header->IconOff == 0)return nil;
NSImage *result = [[NSImage alloc] initWithSize:NSMakeSize(32, 32)];
if(result == nil)return nil;
NSBitmapImageRep *image = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
pixelsWide:32
pixelsHigh:32
bitsPerSample:8
samplesPerPixel:4
hasAlpha:YES
isPlanar:NO
colorSpaceName:NSCalibratedRGBColorSpace
bytesPerRow:32 * 4
bitsPerPixel:32];
[image setAlpha:YES];
if(image == nil)
NSImage *newImage = nil;
NDS_header *ndsRomHeader = NDS_getROMHeader();
if (ndsRomHeader == nil)
{
[result release];
return nil;
return newImage;
}
//load the palette
//the pallete contains 16 entries, 2 bytes each
//the first entry represents alpha so the value is ignored
u8 palette[16*4]; //16 entries at 32 bit (we will convert)
int x;
for(x = 0; x < 16; x++)
NSUInteger iconOffset = ndsRomHeader->IconOff;
if(iconOffset == 0)
{
u16 temp = T1ReadWord(MMU.CART_ROM, header->IconOff + 0x220 + x*2);
palette[x*4+0] = (temp & 0x001F) << 3; //r
palette[x*4+1] = (temp & 0x03E0) >> 5 << 3; //g
palette[x*4+2] = (temp & 0x7C00) >> 10 << 3; //b
palette[x*4+3] = x==0?0:255; //alpha: color 0 is always transparent
return newImage;
}
//load the image
//the image is 32x32 pixels, each 4bit (correspoding to the pallete)
//it's stored just before the pallete
u8 *bitmap_data = [image bitmapData];
int y, inner_y, inner_x, offset = 0;
for(y = 0; y < 4; y++) //the image is split into 16 squares (4 on each axis)
for(x = 0; x < 4; x++)
for(inner_y = 0; inner_y < 8; inner_y++) //each square is 8x8
for(inner_x = 0; inner_x < 8; inner_x+=2) //increment by 2 since each byte is two 4bit colors
newImage = [[NSImage alloc] initWithSize:NSMakeSize(32, 32)];
if(newImage == nil)
{
//grab the color indicies of the next 2 pixels
u8 color = T1ReadByte(MMU.CART_ROM, header->IconOff + 0x20 + offset++);
//set the first pixel color
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+1)*4+0 )) = palette[(color>>4) * 4 + 0]; //r
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+1)*4+1 )) = palette[(color>>4) * 4 + 1]; //g
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+1)*4+2 )) = palette[(color>>4) * 4 + 2]; //b
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+1)*4+3 )) = palette[(color>>4) * 4 + 3]; //a
//set the next pixel color
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+0)*4+0 )) = palette[(color&0x0F) * 4 + 0]; //r
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+0)*4+1 )) = palette[(color&0x0F) * 4 + 1]; //g
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+0)*4+2 )) = palette[(color&0x0F) * 4 + 2]; //b
*(bitmap_data+( (y*8+inner_y)*32*4+(x*8+inner_x+0)*4+3 )) = palette[(color&0x0F) * 4 + 3]; //a
return newImage;
}
[result addRepresentation:image];
[image release];
[result autorelease];
return result;
NSUInteger w = ROM_ICON_WIDTH;
NSUInteger h = ROM_ICON_HEIGHT;
NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
pixelsWide:w
pixelsHigh:h
bitsPerSample:8
samplesPerPixel:4
hasAlpha:YES
isPlanar:NO
colorSpaceName:NSCalibratedRGBColorSpace
bytesPerRow:w * 4
bitsPerPixel:32];
if(imageRep == nil)
{
[newImage release];
newImage = nil;
return newImage;
}
uint32_t *bitmapData = (uint32_t *)[imageRep bitmapData];
RomIconToRGBA8888(bitmapData);
#ifdef __BIG_ENDIAN__
uint32_t *bitmapDataEnd = bitmapData + (w * h);
while (bitmapData < bitmapDataEnd)
{
*bitmapData++ = CFSwapInt32LittleToHost(*bitmapData);
}
#endif
[imageRep autorelease];
[newImage addRepresentation:imageRep];
return [newImage autorelease];
}
- (NSString *) romFileName
@ -1185,3 +1165,120 @@ bool OSXOpenGLRendererInit()
}
@end
void RomIconToRGBA8888(uint32_t *bitmapData)
{
const RomBanner &ndsRomBanner = gameInfo.getRomBanner(); // Contains the memory addresses we need to get our read pointer locations.
const uint16_t *iconClutPtr; // Read pointer for the icon's CLUT.
const uint32_t *iconPixPtr; // Read pointer for the icon's pixel data.
uint32_t clut[16]; // 4-bit indexed CLUT, storing RGBA8888 values for each color.
uint32_t pixRowColors; // Temp location for storing an 8 pixel row of 4-bit indexed color values from the icon's pixel data.
unsigned int pixRowIndex; // Temp location for tracking which pixel row of an 8x8 square that we are reading.
unsigned int x; // Temp location for tracking which of the 8x8 pixel squares that we are reading (x-dimension).
unsigned int y; // Temp location for tracking which of the 8x8 pixel squares that we are reading (y-dimension).
uint32_t *bitmapPixPtr; // Write pointer for the RGBA8888 bitmap pixel data, relative to the passed in *bitmapData pointer.
if (bitmapData == NULL)
{
return;
}
if (&ndsRomBanner == NULL)
{
memset(bitmapData, 0, 4096); // 4096 bytes = 32px * 32px * sizeof(uint32_t)
return;
}
// Set all of our icon read pointers.
iconClutPtr = (uint16_t *)ndsRomBanner.palette + 1;
iconPixPtr = (uint32_t *)ndsRomBanner.bitmap;
// Setup the 4-bit CLUT.
//
// The actual color values are stored with the ROM icon data in RGB555 format.
// We convert these color values and store them in the CLUT as RGBA8888 values.
//
// The first entry always represents the alpha, so we can just ignore it.
clut[0] = 0x00000000;
RGB555ToRGBA8888Buffer(iconClutPtr, &clut[1], 15);
// Load the image from the icon pixel data.
//
// ROM icons are stored in 4-bit indexed color and have dimensions of 32x32 pixels.
// Also, ROM icons are split into 16 separate 8x8 pixel squares arranged in a 4x4
// array. Here, we sequentially read from the ROM data, and adjust our write
// location appropriately within the bitmap memory block.
for(y = 0; y < 4; y++)
{
for(x = 0; x < 4; x++)
{
for(pixRowIndex = 0; pixRowIndex < 8; pixRowIndex++, iconPixPtr++)
{
// Load the entire row of pixels as a single 32-bit chunk.
pixRowColors = *iconPixPtr;
// Set the write location. The formula below calculates the proper write
// location depending on the position of the read pointer. We use a more
// optimized version of this formula in practice.
//
// bitmapPixPtr = bitmapData + ( ((y * 8) + pixRowIndex) * 32 ) + (x * 8);
bitmapPixPtr = bitmapData + ( ((y << 3) + pixRowIndex) << 5 ) + (x << 3);
// Set the RGBA8888 bitmap pixels using our CLUT from earlier.
#ifdef __BIG_ENDIAN__
*bitmapPixPtr = clut[(pixRowColors & 0x0F000000) >> 24];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0xF0000000) >> 28];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x000F0000) >> 16];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x00F00000) >> 20];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x00000F00) >> 8];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x0000F000) >> 12];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x0000000F)];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x000000F0) >> 4];
#else
*bitmapPixPtr = clut[(pixRowColors & 0x0000000F)];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x000000F0) >> 4];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x00000F00) >> 8];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x0000F000) >> 12];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x000F0000) >> 16];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x00F00000) >> 20];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0x0F000000) >> 24];
bitmapPixPtr++;
*bitmapPixPtr = clut[(pixRowColors & 0xF0000000) >> 28];
#endif
}
}
}
}

View File

@ -62,7 +62,7 @@
screen_buffer = nil;
viewScale = 1.0;
viewRotation = 0.0;
displayMode = DS_DISPLAY_TYPE_COMBO;
displayMode = DS_DISPLAY_TYPE_DUAL;
gpuStateFlags = GPUSTATE_MAIN_GPU_MASK |
GPUSTATE_MAIN_BG0_MASK |
GPUSTATE_MAIN_BG1_MASK |
@ -647,7 +647,7 @@ void SetGPULayerState(int displayType, unsigned int i, bool state)
theGpu = MainScreen.gpu;
break;
case DS_GPU_TYPE_COMBO:
case DS_GPU_TYPE_MAIN_AND_SUB:
SetGPULayerState(DS_GPU_TYPE_SUB, i, state); // Recursive call
theGpu = MainScreen.gpu;
break;
@ -695,7 +695,7 @@ bool GetGPULayerState(int displayType, unsigned int i)
}
break;
case DS_GPU_TYPE_COMBO:
case DS_GPU_TYPE_MAIN_AND_SUB:
if (SubScreen.gpu != nil && MainScreen.gpu != nil)
{
result = (CommonSettings.dispLayers[SubScreen.gpu->core][i] && CommonSettings.dispLayers[MainScreen.gpu->core][i]);
@ -721,7 +721,7 @@ void SetGPUDisplayState(int displayType, bool state)
CommonSettings.showGpu.main = state;
break;
case DS_GPU_TYPE_COMBO:
case DS_GPU_TYPE_MAIN_AND_SUB:
CommonSettings.showGpu.sub = state;
CommonSettings.showGpu.main = state;
break;
@ -745,7 +745,7 @@ bool GetGPUDisplayState(int displayType)
result = CommonSettings.showGpu.main;
break;
case DS_GPU_TYPE_COMBO:
case DS_GPU_TYPE_MAIN_AND_SUB:
result = (CommonSettings.showGpu.sub && CommonSettings.showGpu.main);
break;