Search in sources :

Example 1 with DatParserPlugin

use of jack.rm.plugins.types.DatParserPlugin in project rom-manager by Jakz.

the class OfflineListProviderPlugin method buildRomSets.

@Override
public GameSet[] buildRomSets(List<DatParserPlugin> datParsers) {
    DatParserPlugin parser = this.findDatParser(datParsers, "offline-list");
    List<GameSet> sets = new ArrayList<>();
    try {
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", new GBASaveParserOL());
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms.GBA, KnownProviders.OFFLINE_LIST.derive("", "", "Replouf66", new Provider.Source("http://offlinelistgba.free.fr/tool/ReleaseList/gba_OL_0.7.1.zip")), datParser, format, GBA_ATTRIBUTES, new AssetManager(GBA_ASSETS, new URL("http://offlinelistgba.free.fr/imgs/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", new GBASaveParserAS());
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms.GBA, KnownProviders.ADVAN_SCENE.derive("pure", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_GBA.zip")), datParser, format, GBA_ATTRIBUTES, new AssetManager(GBA_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_GBA/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", (SaveParser) (s -> GameSave.NULL));
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            final Asset[] PSP_ASSETS = { new Asset.Image(Paths.get("title"), new Dimension(208, 181 * 2)), new Asset.Image(Paths.get("gameplay"), new Dimension(320 * 2, 181 * 2)) };
            final Attribute[] attributes = { GameAttribute.TITLE, GameAttribute.NUMBER, GameAttribute.SIZE, GameAttribute.PUBLISHER, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.GROUP, GameAttribute.COMMENT };
            sets.add(new GameSet(Platforms.PSP, KnownProviders.ADVAN_SCENE.derive("", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_PSP.zip")), datParser, format, attributes, new AssetManager(PSP_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_PSP/")), s -> new MyGameSetFeatures(s)));
        }
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", new NDSSaveParser());
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms.NDS, KnownProviders.ADVAN_SCENE.derive("collection", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_NDS.zip")), datParser, format, GBA_ATTRIBUTES, new AssetManager(NDS_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_NDS/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        /* Nintendo 3DS */
        {
            final Asset[] _3DS_ASSETS = { new Asset.Image(Paths.get("title"), new Dimension(268, 480)), new Asset.Image(Paths.get("gameplay"), new Dimension(400, 480)) };
            final Attribute[] _3DS_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.NUMBER, GameAttribute.SIZE, GameAttribute.PUBLISHER, GameAttribute.GROUP, GameAttribute.SAVE_TYPE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.COMMENT };
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", (SaveParser) s -> null);
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms._3DS, KnownProviders.ADVAN_SCENE.derive("", "", "AdvanScene", new Provider.Source("http://www.advanscene.com/offline/datas/ADVANsCEne_3DS.zip")), datParser, format, _3DS_ATTRIBUTES, new AssetManager(_3DS_ASSETS, new URL("http://www.advanscene.com/offline/imgs/ADVANsCEne_3DS/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", (SaveParser) (r -> null));
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms.GBC, KnownProviders.NO_INTRO.derive("", "", "Replouf66", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Nintendo%20Gameboy%20Color.zip")), datParser, format, GB_ATTRIBUTES, new AssetManager(GB_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Nintendo%20Gameboy%20Color/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", (SaveParser) (r -> null));
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms.GB, KnownProviders.NO_INTRO.derive("", "", "MadBob", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Nintendo%20Gameboy.zip")), datParser, format, GB_ATTRIBUTES, new AssetManager(GB_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Nintendo%20Gameboy/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", (SaveParser) (r -> null));
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms.NES, KnownProviders.NO_INTRO.derive("", "", "Zepman", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Nintendo%20NES%20-%20Famicom.zip")), datParser, format, NES_ATTRIBUTES, new AssetManager(GB_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Nintendo%20NES%20-%20Famicom/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
            sets.add(new GameSet(Platforms.NES, KnownProviders.OFFLINE_LIST.derive("", "", "Zepman", new Provider.Source("http://nesofflinelist.free.fr/dat/nes_OL.zip")), datParser, format, NES_ATTRIBUTES, new AssetManager(NES_ASSETS, new URL("http://nesofflinelist.free.fr/imgs/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        {
            Map<String, Object> args = new HashMap<>();
            args.put("save-parser", (SaveParser) (r -> null));
            DataSupplier datParser = parser.buildDatLoader("offline-list", args);
            DatFormat format = datParser.getFormat();
            sets.add(new GameSet(Platforms.LYNX, KnownProviders.NO_INTRO.derive("", "", "Atari Lynx", new Provider.Source("http://nointro.free.fr/datas/Official%20No-Intro%20Atari%20Lynx.zip")), datParser, format, NES_ATTRIBUTES, new AssetManager(LYNX_ASSETS, new URL("http://nointro.free.fr/imgs/Official%20No-Intro%20Atari%20Lynx/")), s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
        }
        return sets.toArray(new GameSet[sets.size()]);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    return null;
}
Also used : Arrays(java.util.Arrays) SaveParser(com.github.jakz.romlib.parsers.SaveParser) URL(java.net.URL) GameAttribute(com.github.jakz.romlib.data.game.attributes.GameAttribute) DatFormat(com.github.jakz.romlib.data.set.DatFormat) Asset(com.github.jakz.romlib.data.assets.Asset) Game(com.github.jakz.romlib.data.game.Game) DataSupplier(com.github.jakz.romlib.data.set.DataSupplier) HashMap(java.util.HashMap) MyGameSetFeatures(jack.rm.data.romset.MyGameSetFeatures) Attribute(com.github.jakz.romlib.data.game.attributes.Attribute) ProviderPlugin(jack.rm.plugins.types.ProviderPlugin) Platforms(com.github.jakz.romlib.data.platforms.Platforms) ArrayList(java.util.ArrayList) GameSet(com.github.jakz.romlib.data.set.GameSet) Map(java.util.Map) DatParserPlugin(jack.rm.plugins.types.DatParserPlugin) Feature(com.github.jakz.romlib.data.set.Feature) NDS(com.github.jakz.romlib.data.platforms.NDS) MalformedURLException(java.net.MalformedURLException) Version(com.github.jakz.romlib.data.game.Version) DecimalFormat(java.text.DecimalFormat) UnknownFormatConversionException(java.util.UnknownFormatConversionException) Dimension(java.awt.Dimension) List(java.util.List) Paths(java.nio.file.Paths) GameSave(com.github.jakz.romlib.data.game.GameSave) Provider(com.github.jakz.romlib.data.set.Provider) GBA(com.github.jakz.romlib.data.platforms.GBA) RomSize(com.github.jakz.romlib.data.game.RomSize) MalformedURLException(java.net.MalformedURLException) ArrayList(java.util.ArrayList) Dimension(java.awt.Dimension) URL(java.net.URL) SaveParser(com.github.jakz.romlib.parsers.SaveParser) DataSupplier(com.github.jakz.romlib.data.set.DataSupplier) MyGameSetFeatures(jack.rm.data.romset.MyGameSetFeatures) DatFormat(com.github.jakz.romlib.data.set.DatFormat) HashMap(java.util.HashMap) Map(java.util.Map) DatParserPlugin(jack.rm.plugins.types.DatParserPlugin) GameSet(com.github.jakz.romlib.data.set.GameSet)

Example 2 with DatParserPlugin

use of jack.rm.plugins.types.DatParserPlugin in project rom-manager by Jakz.

the class ClrMamePlugin method buildRomSets.

@Override
public GameSet[] buildRomSets(List<DatParserPlugin> datParsers) {
    DatParserPlugin datParser = this.findDatParser(datParsers, "clr-mame-pro-nointro");
    List<GameSet> sets = new ArrayList<>();
    {
        DataSupplier parser = datParser.buildDatLoader("clr-mame-pro-nointro");
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms.GG, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
    }
    {
        DataSupplier parser = datParser.buildDatLoader("clr-mame-pro-nointro");
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms.LYNX, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms.MD, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        // TODO: this should be added only if XMDB is not present
        parser = parser.apply(new NormalizedTitleCloneSetCreator());
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms.NDS, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, Feature.FINITE_SIZE_SET)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms.PSP, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms.PSP, KnownProviders.NO_INTRO.derive("With Clones", "with-clones", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms.N64, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        DatFormat format = parser.getFormat();
        sets.add(new GameSet(Platforms._3DS, KnownProviders.NO_INTRO.derive("", "", "", null), parser, format, GG_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        parser = parser.apply(new RedumpAggregatorByDisks());
        parser = parser.apply(new NormalizedTitleCloneSetCreator());
        DatFormat format = parser.getFormat();
        final Attribute[] PC_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.SIZE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.VERSION, GameAttribute.VERSION_NUMBER };
        sets.add(new GameSet(Platforms.IBM_PC, KnownProviders.REDUMP.derive("", "", "", new Provider.Source("http://redump.org/datfile/pc/")), parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        parser = parser.apply(new RedumpAggregatorByDisks());
        parser = parser.apply(new NormalizedTitleCloneSetCreator());
        DatFormat format = parser.getFormat();
        final Attribute[] PC_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.SIZE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.VERSION, GameAttribute.VERSION_NUMBER };
        sets.add(new GameSet(Platforms.PS2, KnownProviders.REDUMP.derive("", "", "", null), parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
        sets.add(new GameSet(Platforms.GC, KnownProviders.REDUMP.derive("", "", "", new Provider.Source("http://redump.org/datfile/gc/")), parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s)));
    }
    {
        DataSupplier parser = findDatParser(datParsers, "logiqx-xml").buildDatLoader("logiqx-xml");
        parser = parser.apply(new GoodOldDaysFixer());
        parser = parser.apply(new GoodOldDaysFixer.CloneCreator());
        DatFormat format = parser.getFormat();
        final Attribute[] PC_ATTRIBUTES = { GameAttribute.TITLE, GameAttribute.SIZE, GameAttribute.LOCATION, GameAttribute.LANGUAGE, GameAttribute.RELEASE_DATE, GameAttribute.DESCRIPTION, GameAttribute.COMMENT };
        sets.add(new GameSet(Platforms.IBM_PC, KnownProviders.GOOD_OLD_DAYS, parser, format, PC_ATTRIBUTES, AssetManager.DUMMY, s -> new MyGameSetFeatures(s, GameID.Generator.BY_RELEASE_NUMBER, Feature.FINITE_SIZE_SET)));
    }
    return sets.toArray(new GameSet[sets.size()]);
}
Also used : NormalizedTitleCloneSetCreator(com.github.jakz.romlib.data.cataloguers.impl.NormalizedTitleCloneSetCreator) DataSupplier(com.github.jakz.romlib.data.set.DataSupplier) RedumpAggregatorByDisks(com.github.jakz.romlib.data.cataloguers.impl.RedumpAggregatorByDisks) MyGameSetFeatures(jack.rm.data.romset.MyGameSetFeatures) ArrayList(java.util.ArrayList) DatFormat(com.github.jakz.romlib.data.set.DatFormat) GoodOldDaysFixer(com.github.jakz.romlib.data.cataloguers.impl.GoodOldDaysFixer) DatParserPlugin(jack.rm.plugins.types.DatParserPlugin) GameSet(com.github.jakz.romlib.data.set.GameSet)

Example 3 with DatParserPlugin

use of jack.rm.plugins.types.DatParserPlugin in project rom-manager by Jakz.

the class GameSetManager method buildRomsetList.

@SuppressWarnings("unchecked")
public void buildRomsetList() {
    Set<ActualPluginBuilder> parsers = manager.getBuildersByType(PluginRealType.DAT_PARSER);
    List<DatParserPlugin> datParsers = parsers.stream().map(b -> (DatParserPlugin) manager.build((Class<DatParserPlugin>) b.getID().getType())).collect(Collectors.toList());
    Set<ActualPluginBuilder> builders = manager.getBuildersByType(PluginRealType.PROVIDER);
    logger.d("Building available rom sets");
    logger.ld("Found %d dat parsers: %s", () -> datParsers.size(), () -> datParsers.stream().map(p -> Arrays.toString(p.getSupportedFormats())).collect(Collectors.joining(", ")));
    for (ActualPluginBuilder builder : builders) {
        ProviderPlugin plugin = (ProviderPlugin) manager.build((Class<ProviderPlugin>) builder.getID().getType());
        logger.d("Found ProviderPlugin: %s", plugin.getClass().getName());
        GameSet[] rsets = plugin.buildRomSets(datParsers);
        for (GameSet set : rsets) {
            helpers.put(set, new MyGameSetFeatures(set));
            List<GameSet> setsForPlatform = sets.computeIfAbsent(set.platform(), s -> new ArrayList<>());
            setsForPlatform.add(set);
        }
    }
    for (Platform platform : Platforms.values()) sets.computeIfAbsent(platform, s -> new ArrayList<>());
}
Also used : JsonParseException(com.google.gson.JsonParseException) NoSuchFileException(java.nio.file.NoSuchFileException) Arrays(java.util.Arrays) Asset(com.github.jakz.romlib.data.assets.Asset) HashMap(java.util.HashMap) ProviderPlugin(jack.rm.plugins.types.ProviderPlugin) Platforms(com.github.jakz.romlib.data.platforms.Platforms) ArrayList(java.util.ArrayList) GameSet(com.github.jakz.romlib.data.set.GameSet) Gson(com.google.gson.Gson) Map(java.util.Map) Log(com.pixbits.lib.log.Log) GameList(com.github.jakz.romlib.data.set.GameList) Json(jack.rm.json.Json) Path(java.nio.file.Path) DatParserPlugin(jack.rm.plugins.types.DatParserPlugin) Feature(com.github.jakz.romlib.data.set.Feature) ActualPluginBuilder(jack.rm.plugins.ActualPluginBuilder) Files(java.nio.file.Files) PluginManager(com.pixbits.lib.plugin.PluginManager) LogSource(jack.rm.log.LogSource) LogTarget(jack.rm.log.LogTarget) BufferedWriter(java.io.BufferedWriter) Collection(java.util.Collection) PluginRealType(jack.rm.plugins.PluginRealType) Set(java.util.Set) IOException(java.io.IOException) GameListAdapter(com.github.jakz.romlib.json.GameListAdapter) ActualPlugin(jack.rm.plugins.ActualPlugin) Collectors(java.util.stream.Collectors) FileNotFoundException(java.io.FileNotFoundException) List(java.util.List) Platform(com.github.jakz.romlib.data.platforms.Platform) Logger(com.pixbits.lib.log.Logger) Paths(java.nio.file.Paths) AssetManager(com.github.jakz.romlib.data.assets.AssetManager) GameSetFeatures(com.github.jakz.romlib.data.set.GameSetFeatures) Optional(java.util.Optional) BufferedReader(java.io.BufferedReader) GlobalSettings(jack.rm.GlobalSettings) Platform(com.github.jakz.romlib.data.platforms.Platform) ArrayList(java.util.ArrayList) ActualPluginBuilder(jack.rm.plugins.ActualPluginBuilder) ProviderPlugin(jack.rm.plugins.types.ProviderPlugin) DatParserPlugin(jack.rm.plugins.types.DatParserPlugin) GameSet(com.github.jakz.romlib.data.set.GameSet)

Aggregations

GameSet (com.github.jakz.romlib.data.set.GameSet)3 DatParserPlugin (jack.rm.plugins.types.DatParserPlugin)3 ArrayList (java.util.ArrayList)3 Asset (com.github.jakz.romlib.data.assets.Asset)2 Platforms (com.github.jakz.romlib.data.platforms.Platforms)2 DatFormat (com.github.jakz.romlib.data.set.DatFormat)2 DataSupplier (com.github.jakz.romlib.data.set.DataSupplier)2 Feature (com.github.jakz.romlib.data.set.Feature)2 MyGameSetFeatures (jack.rm.data.romset.MyGameSetFeatures)2 ProviderPlugin (jack.rm.plugins.types.ProviderPlugin)2 Paths (java.nio.file.Paths)2 Arrays (java.util.Arrays)2 AssetManager (com.github.jakz.romlib.data.assets.AssetManager)1 GoodOldDaysFixer (com.github.jakz.romlib.data.cataloguers.impl.GoodOldDaysFixer)1 NormalizedTitleCloneSetCreator (com.github.jakz.romlib.data.cataloguers.impl.NormalizedTitleCloneSetCreator)1 RedumpAggregatorByDisks (com.github.jakz.romlib.data.cataloguers.impl.RedumpAggregatorByDisks)1 Game (com.github.jakz.romlib.data.game.Game)1 GameSave (com.github.jakz.romlib.data.game.GameSave)1 RomSize (com.github.jakz.romlib.data.game.RomSize)1 Version (com.github.jakz.romlib.data.game.Version)1