CDI(Weld)高级<1>CDI高级说明以及Producer methods

本文探讨了CDI(Contexts and Dependency Injection)与Spring框架的主要区别,强调了CDI在实现松耦合、强类型方面的优势,并通过具体示例介绍了Producer methods的使用技巧及注意事项。
CDI是为解耦而生.如Spring主要用途是AOP.IOC(DI),而CDI除了DI外,AOP功能也是有的.从实际使用上来看,CDI比Spring功能更丰富,更灵活,其代价也是有的,学习成本相对spring较高.

1.CDI致力于松耦合,强类型.

实现松散耦合的三种方式:
  1. 部署时候的多态选择,@alternatives 
  2. producer methods在运行时的多态.
  3. 上下文相关的生命周期管理与bean生命周期解耦。
这些技术使客户端和服务器的松散耦合服务。客户端不再是紧密地绑定到一个接口的一个实现,也不需要管理生命周期实现。这种方法允许有状态的对象当作服务交互。松散耦合使系统更具活力。在以前,框架总是牺牲了类型安全(尤其是通过使用XML描述符,Spring2.5)。

CDI提供了三个额外的重要措施,进一步松耦合:
  1. 在业务逻辑层用拦截器技术解耦.
  2. 修饰符(注解)可以用来分离一些业务问题
  3. 用CDI EVENT技术进行解耦事件生产者与消费者.
第二个CDI是强类型的.无论是依赖关系的信息,拦截器,修饰符的Bean,以及CDI event的生产者,消费者等的信息全部都是类型安全的.由编译器进行验证.
CDI是确确实实没String标识符,如xml配置什么的.比如Spring2.5用XML配置,其实都是字符串,以及"约定大于配置"的概念.在CDI里是没有的.CDI框架不是隐藏,而是没有.
这种方法的最明显好处就是任何IDE都可以提供自动完成,验证以及最重要的重构!(了解JPA的,可以对比安全类型的查询和JPQL.如果重构代码JPQL是非常麻烦的).
还有个好处就是你在识别不同的对象,事件,拦截器可以通过注解而不是字符串名字,这样你可以提升代码质量.

CDI鼓励开发使用注解.如
@Asynchronous,  
@Secure,
@Updated,
而不是使用复合名称,
asyncPaymentProcessor,
SecurityInterceptor
DocumentUpdatedEvent.
这也符合代码大全里的一些概念.只不过不用费尽心思考虑命名了,这样更简洁高效.
注释是可重用的。他们帮助描述系统的不同部分的共同特质。他们帮助我们分类和理解代码。他们帮助我们应对常见问题的常用方法。他们使我们的代码更简洁高效.

2.高级功能Producer methods

先贴一段代码,下面都用到

import javax.enterprise.inject.Produces;

@SessionScoped
public class Preferences implements Serializable {

   private PaymentStrategyType paymentStrategy;

   ...

   @Produces @Preferred 
   public PaymentStrategy getPaymentStrategy() {
       switch (paymentStrategy) {
           case CREDIT_CARD: return new CreditCardPaymentStrategy();
           case CHECK: return new CheckPaymentStrategy();
           case PAYPAL: return new PayPalPaymentStrategy();
           default: return null;
       } 
   }
}
//注入一个Producer methods
@Inject @Preferred PaymentStrategy paymentStrategy;

A:Producer methods的Scope

Producer methods的默认范围是@Dependent.
从上面代码我们可以思考一种场景,那就是一个用户会话中有多个PaymentStrategy对象的实例.如果想改变,我们可以在Producer方法上添加一个@SessionSciped注解.
现在,如果一个用户调用了这个Producer methods,那么返回的这个PaymentStrategy对象的实例将绑定到会话的上下文.Producer methods不会再实例化另一个出来.
@Produces @Preferred @SessionScoped
public PaymentStrategy getPaymentStrategy() {
   ...
}
注意:Producer methods不继承声明此Producer methods的Bean的Scope.
其实这里有2个不同的Bean:Producer methods(相当于一个Bean)以及声明这个生产方法的Bean.

B: Injection into producer methods

在Producer methods一开始的实例有一个潜在的问题
CreditCardPaymentStrategy 的实现使用 Java new 运算符来实例化。

private PaymentStrategyType paymentStrategy;

而producer methods应该理解为一个独立的Bean,而paymentStrategy是从Preferences 中用new实例化的.所以我们应该使用下面这种方式来使用producer methods方法.

@Produces @Preferred @SessionScoped
public PaymentStrategy getPaymentStrategy(CreditCardPaymentStrategy ccps,
                                          CheckPaymentStrategy cps,
                                          PayPalPaymentStrategy ppps) {

   switch (paymentStrategy) {
      case CREDIT_CARD: return ccps;
      case CHEQUE: return cps;
      case PAYPAL: return ppps;
      default: return null;
   } 
}

这里会有问题,如果CreditCardPaymentStrategy 是一个@RequestScope,那这里必然是要发生错误的.因为注入的CreditCardPaymentStrategy Bean实例是request,在@SessionScoped使用前容器就会进行销毁.那么就出错了.

这是个问题,所以我们有3种处理方案.

  1.  producer method to @Dependent or @RequestScoped.<最好的方式>
  2. CreditCardPaymentStrategy 更改Scope,但这可能会影响其他的地方,不是很好.
  3. 使用@New限定符,但在CDI 1.1 @New限定符被弃用。CDI鼓励应用程序注入@Dependent范围bean。

C:Use of @New with producer methods<不推荐>

Consider the following producer method:
@Produces @Preferred @SessionScoped
public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy ccps,
                                          @New CheckPaymentStrategy cps,
                                          @New PayPalPaymentStrategy ppps) {
   switch (paymentStrategy) {
      case CREDIT_CARD: return ccps;
      case CHEQUE: return cps;
      case PAYPAL: return ppps;
      default: return null;
   } 
}
这将会创建一个新的CreditCardPaymentStrategy依赖实例,传递到生产方法,依赖对象不会被摧毁,直到会话结束。

在CDI 1.1 @New限定符被弃用。CDI鼓励应用程序注入@Dependent范围bean。

D:Disposer methods

一些Procucer methods返回的对象需要显式的破坏。例如,有人需要关闭这个JDBC连接:
@Produces @RequestScoped 
Connection connect(User user) {

   return createConnection(user.getId(), user.getPassword());
}
而在一个相同的类中,disposer method可以进行匹配.
void close(@Disposes Connection connection) {

   connection.close();
}
说明:在同一个类中,disposer method可以进行匹配类型为Connection 的Procucer methods,从而在 Procucer methods周期结束后进行jdbc的链接关闭.

如下面这个:
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Resources {

	@PersistenceUnit
	private EntityManagerFactory entityManagerFactory;

	@Produces
	@RequestScoped
	protected EntityManager createEntityManager() {

		return entityManagerFactory.createEntityManager();
	}

	//参数必须对应上面方法的返回值
	protected void closeEntityManager(@Disposes EntityManager entityManager) {

		if ( entityManager.isOpen() )
		{
			entityManager.close();
		}
	}
}

结束.

转载于:https://my.oschina.net/zhaoqian/blog/263422

<?xml version="1.0" encoding="UTF-8"?> <!-- This is the EmulationStation Systems configuration file. All systems must be contained within the <systemList> tag.--> <systemList> <system> <name>amstradcpc</name> <fullname>Amstrad CPC</fullname> <manufacturer>Amstrad</manufacturer> <release>1984</release> <hardware>computer</hardware> <path>/storage/roms/amstradcpc</path> <extension>.dsk .DSK .sna .SNA .tap .TAP .cdt .CDT .voc .VOC .m3u .M3U .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>amstradcpc</platform> <theme>amstradcpc</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">cap32</core> </cores> </emulator> </emulators> </system> <system> <name>arcade</name> <fullname>Arcade</fullname> <manufacturer>Arcade</manufacturer> <hardware>arcade</hardware> <path>/storage/roms/arcade</path> <extension>.zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>arcade</platform> <theme>arcade</theme> <emulators> <emulator name="AdvanceMame"> <cores> <core>AdvanceMame</core> </cores> </emulator> <emulator name="libretro"> <cores> <core default="true">mame2003_plus</core> <core>mame2010</core> <core>fbneo</core> <core>fbalpha2012</core> <core>mba_mini</core> </cores> </emulator> </emulators> </system> <system> <name>mame</name> <fullname>Arcade MAME</fullname> <manufacturer>Arcade</manufacturer> <hardware>arcade</hardware> <path>/storage/roms/mame</path> <extension>.7z .7Z .zip .ZIP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>arcade</platform> <theme>mame</theme> <emulators> <emulator name="AdvanceMame"> <cores> <core default="true">AdvanceMame</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>mame2003_plus</core> <core>mame2010</core> <core>fbneo</core> <core>fbalpha2012</core> <core>mba_mini</core> </cores> </emulator> </emulators> </system> <system> <name>atari2600</name> <fullname>Atari 2600</fullname> <manufacturer>Atari</manufacturer> <release>1977</release> <hardware>console</hardware> <path>/storage/roms/atari2600</path> <extension>.a26 .A26 .bin .BIN .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>atari2600</platform> <theme>atari2600</theme> <emulators> <emulator name="STELLASA"> <cores> <core>STELLASA</core> </cores> </emulator> <emulator name="libretro"> <cores> <core default="true">stella</core> </cores> </emulator> </emulators> </system> <system> <name>atari5200</name> <fullname>Atari 5200</fullname> <manufacturer>Atari</manufacturer> <release>1982</release> <hardware>console</hardware> <path>/storage/roms/atari5200</path> <extension>.rom .ROM .xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .bin .BIN .a52 .A52 .xex .XEX .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>atari5200</platform> <theme>atari5200</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">atari800</core> </cores> </emulator> </emulators> </system> <system> <name>atari7800</name> <fullname>Atari 7800</fullname> <manufacturer>Atari</manufacturer> <release>1986</release> <hardware>console</hardware> <path>/storage/roms/atari7800</path> <extension>.a78 .A78 .bin .BIN .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>atari7800</platform> <theme>atari7800</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">prosystem</core> </cores> </emulator> </emulators> </system> <system> <name>atari800</name> <fullname>Atari 800</fullname> <manufacturer>Atari</manufacturer> <release>1979</release> <hardware>console</hardware> <path>/storage/roms/atari800</path> <extension>.rom .ROM .xfd .XFD .atr .ATR .atx .ATX .cdm .CDM .cas .CAS .bin .BIN .a52 .A52 .xex .XEX .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>atari800</platform> <theme>atari800</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">atari800</core> </cores> </emulator> </emulators> </system> <system> <name>atarilynx</name> <fullname>Atari Lynx</fullname> <manufacturer>Atari</manufacturer> <release>1989</release> <hardware>portable</hardware> <path>/storage/roms/atarilynx</path> <extension>.lnx .LNX .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>atarilynx</platform> <theme>atarilynx</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">handy</core> </cores> </emulator> </emulators> </system> <system> <name>atarist</name> <fullname>Atari ST</fullname> <manufacturer>Atari</manufacturer> <release>1985</release> <hardware>computer</hardware> <path>/storage/roms/atarist</path> <extension>.st .ST .msa .MSA .stx .STX .dim .DIM .ipf .IPF .m3u .M3U .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>atarist</platform> <theme>atarist</theme> <emulators> <emulator name="HATARISA"> <cores> <core>HATARISA</core> </cores> </emulator> <emulator name="libretro"> <cores> <core default="true">hatari</core> </cores> </emulator> </emulators> </system> <system> <name>atomiswave</name> <fullname>Atomiswave</fullname> <manufacturer>Sammy</manufacturer> <release>2003</release> <hardware>arcade</hardware> <path>/storage/roms/atomiswave</path> <extension>.lst .LST .bin .BIN .dat .DAT .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>atomiswave</platform> <theme>atomiswave</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">flycast</core> </cores> </emulator> </emulators> </system> <system> <name>wonderswan</name> <fullname>Bandai Wonderswan</fullname> <manufacturer>Bandai</manufacturer> <release>1999</release> <hardware>portable</hardware> <path>/storage/roms/wonderswan</path> <extension>.ws .WS .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>wonderswan</platform> <theme>wonderswan</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_wswan</core> </cores> </emulator> </emulators> </system> <system> <name>wonderswancolor</name> <fullname>Bandai Wonderswan Color</fullname> <manufacturer>Bandai</manufacturer> <release>2000</release> <hardware>portable</hardware> <path>/storage/roms/wonderswancolor</path> <extension>.wsc .WSC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>wonderswancolor</platform> <theme>wonderswancolor</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_wswan</core> </cores> </emulator> </emulators> </system> <system> <name>cps1</name> <fullname>Capcom PlaySystem 1</fullname> <manufacturer>Capcom</manufacturer> <release>1988</release> <hardware>arcade</hardware> <path>/storage/roms/cps1</path> <extension>.zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>arcade</platform> <theme>cps1</theme> <emulators> <emulator name="AdvanceMame"> <cores> <core>AdvanceMame</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>mame2003_plus</core> <core>mame2010</core> <core default="true">fbneo</core> <core>fbalpha2012</core> <core>mba_mini</core> </cores> </emulator> </emulators> </system> <system> <name>cps2</name> <fullname>Capcom PlaySystem 2</fullname> <manufacturer>Capcom</manufacturer> <release>1993</release> <hardware>arcade</hardware> <path>/storage/roms/cps2</path> <extension>.zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>arcade</platform> <theme>cps2</theme> <emulators> <emulator name="AdvanceMame"> <cores> <core>AdvanceMame</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>mame2003_plus</core> <core>mame2010</core> <core default="true">fbneo</core> <core>fbalpha2012</core> <core>mba_mini</core> </cores> </emulator> </emulators> </system> <system> <name>cps3</name> <fullname>Capcom PlaySystem 3</fullname> <manufacturer>Capcom</manufacturer> <release>1996</release> <hardware>arcade</hardware> <path>/storage/roms/cps3</path> <extension>.zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>arcade</platform> <theme>cps3</theme> <emulators> <emulator name="AdvanceMame"> <cores> <core>AdvanceMame</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>mame2003_plus</core> <core>mame2010</core> <core default="true">fbneo</core> <core>fbalpha2012</core> <core>mba_mini</core> </cores> </emulator> </emulators> </system> <system> <name>colecovision</name> <fullname>ColecoVision</fullname> <manufacturer>Coleco</manufacturer> <release>1982</release> <hardware>console</hardware> <path>/storage/roms/coleco</path> <extension>.bin .BIN .col .COL .rom .ROM .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>colecovision</platform> <theme>colecovision</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">bluemsx</core> </cores> </emulator> </emulators> </system> <system> <name>c128</name> <fullname>Commodore 128</fullname> <manufacturer>Commodore</manufacturer> <release>1985</release> <hardware>computer</hardware> <path>/storage/roms/c128</path> <extension>.d64 .g64 .t64 .x64 .zip .D64 .G64 .T64 .X64 .ZIP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>c128</platform> <theme>c128</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">vice_x128</core> </cores> </emulator> </emulators> </system> <system> <name>c64</name> <fullname>Commodore 64</fullname> <manufacturer>Commodore</manufacturer> <release>1982</release> <hardware>computer</hardware> <path>/storage/roms/c64</path> <extension>.d64 .D64 .zip .ZIP .7z .7Z .t64 .T64</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>c64</platform> <theme>c64</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">vice_x64</core> </cores> </emulator> </emulators> </system> <system> <name>amiga</name> <fullname>Commodore Amiga</fullname> <manufacturer>Commodore</manufacturer> <release>1985</release> <hardware>computer</hardware> <path>/storage/roms/amiga</path> <extension>.zip .ZIP .adf .ADF .uae .UAE .ipf .IPF .dms .DMS .adz .ADZ .lha .LHA</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>amiga</platform> <theme>amiga</theme> <emulators> <emulator name="AMIBERRY"> <cores> <core default="true">AMIBERRY</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>puae</core> <core>uae4arm</core> </cores> </emulator> </emulators> </system> <system> <name>amigacd32</name> <fullname>Commodore Amiga CD 32</fullname> <manufacturer>Commodore</manufacturer> <release>1994</release> <hardware>console</hardware> <path>/storage/roms/amigacd32</path> <extension>.iso .ISO .cue .CUE .zip .ZIP .lha .LHA</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>amigacd32</platform> <theme>amigacd32</theme> <emulators> <emulator name="AMIBERRY"> <cores> <core default="true">AMIBERRY</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>puae</core> <core>uae4arm</core> </cores> </emulator> </emulators> </system> <system> <name>c16</name> <fullname>Commodore Plus4</fullname> <manufacturer>Commodore</manufacturer> <release>1984</release> <hardware>computer</hardware> <path>/storage/roms/c16</path> <extension>.d64 .g64 .t64 .x64 .zip .D64 .G64 .T64 .X64 .ZIP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>c16</platform> <theme>c16</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">vice_xplus4</core> </cores> </emulator> </emulators> </system> <system> <name>vic20</name> <fullname>Commodore Vic 20</fullname> <manufacturer>Commodore</manufacturer> <release>1980</release> <hardware>computer</hardware> <path>/storage/roms/vic20</path> <extension>.d64 .g64 .t64 .x64 .zip .D64 .G64 .T64 .X64 .ZIP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>vic20</platform> <theme>vic20</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">vice_xvic</core> </cores> </emulator> </emulators> </system> <system> <name>pc</name> <fullname>DOS x86</fullname> <manufacturer>Microsoft</manufacturer> <release>1981</release> <hardware>computer</hardware> <path>/storage/roms/pc</path> <extension>.com .COM .sh .SH .bat .BAT .exe .EXE</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pc</platform> <theme>pc</theme> <emulators> <emulator name="DOSBOXSDL2"> <cores> <core default="true">DOSBOXSDL2</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>dosbox_svn</core> </cores> </emulator> </emulators> </system> <system> <name>pc-9800</name> <fullname>NEC PC-9800</fullname> <manufacturer>NEC</manufacturer> <release>1983</release> <hardware>computer</hardware> <path>/storage/roms/pc98</path> <extension>.d98 .zip .98d .fdi .fdd .2hd .tfd .d88 .88d .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn </extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pc98</platform> <theme>pc98</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">np2kai</core> <core>nekop2</core> </cores> </emulator> </emulators> </system> <system> <name>daphne</name> <fullname>Daphne</fullname> <manufacturer>Arcade</manufacturer> <release>1982</release> <hardware>arcade</hardware> <path>/storage/roms/daphne</path> <extension>.daphne .DAPHNE</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>daphne</platform> <theme>daphne</theme> <emulators> <emulator name="HYPSEUS"> <cores> <core default="true">HYPSEUS</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>daphne</core> </cores> </emulator> </emulators> </system> <system> <name>fbn</name> <fullname>Final Burn Neo</fullname> <manufacturer>Arcade</manufacturer> <hardware>arcade</hardware> <path>/storage/roms/fbneo</path> <extension>.7z .zip .7Z .ZIP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>arcade</platform> <theme>fbn</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">fbneo</core> <core>mame2003</core> <core>fbalpha2012</core> </cores> </emulator> </emulators> </system> <system> <name>msx</name> <fullname>MSX</fullname> <manufacturer>Microsoft</manufacturer> <release>1983</release> <hardware>computer</hardware> <path>/storage/roms/msx</path> <extension>.dsk .DSK .mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>msx</platform> <theme>msx</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">bluemsx</core> </cores> </emulator> </emulators> </system> <system> <name>msx2</name> <fullname>MSX2</fullname> <manufacturer>Microsoft</manufacturer> <release>1985</release> <hardware>computer</hardware> <path>/storage/roms/msx2</path> <extension>.dsk .DSK .mx1 .MX1 .mx2 .MX2 .rom .ROM .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>msx</platform> <theme>msx2</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">bluemsx</core> </cores> </emulator> </emulators> </system> <system> <name>odyssey2</name> <fullname>Magnavox Odyssey 2</fullname> <manufacturer>Magnavox - Philips</manufacturer> <release>1979</release> <hardware>console</hardware> <path>/storage/roms/odyssey</path> <extension>.bin .BIN .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>odyssey2</platform> <theme>odyssey2</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">o2em</core> </cores> </emulator> </emulators> </system> <system> <name>intellivision</name> <fullname>Mattel Intellivision</fullname> <manufacturer>Mattel</manufacturer> <release>1979</release> <hardware>console</hardware> <path>/storage/roms/intellivision</path> <extension>.int .INT .bin .BIN .rom .ROM .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>intellivision</platform> <theme>intellivision</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">freeintv</core> </cores> </emulator> </emulators> </system> <system> <name>mplayer</name> <fullname>Media Player</fullname> <manufacturer>EmuELEC</manufacturer> <release>2020</release> <path>/storage/roms/mplayer</path> <extension>.mp4 .MP4 .mkv .MKV .avi .AVI .mov .MOV .wmv .WMV .m3u .M3U .mpg .MPG .ytb .YTB .twi .TWI .sh .SH</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>mplayer</platform> <theme>mplayer</theme> <emulators> <emulator name="mpv"> <cores> <core>mpv</core> </cores> </emulator> <emulator name="ffplay"> <cores> <core>ffplay</core> </cores> </emulator> </emulators> </system> <system> <name>vectrex</name> <fullname>Milton Bradley Vectrex</fullname> <manufacturer>Milton Bradley</manufacturer> <release>1982</release> <hardware>console</hardware> <path>/storage/roms/vectrex</path> <extension>.bin .BIN .gam .GAM .vec .VEC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>vectrex</platform> <theme>vectrex</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">vecx</core> </cores> </emulator> </emulators> </system> <system> <name>pcengine</name> <fullname>NEC PC-Engine</fullname> <manufacturer>NEC</manufacturer> <release>1987</release> <hardware>console</hardware> <path>/storage/roms/pcengine</path> <extension>.pce .PCE .bin .BIN .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pcengine</platform> <theme>pcengine</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_pce_fast</core> <core>mednafen_supergrafx</core> </cores> </emulator> </emulators> </system> <system> <name>pcenginecd</name> <fullname>NEC PC-Engine CD</fullname> <manufacturer>NEC</manufacturer> <release>1988</release> <hardware>console</hardware> <path>/storage/roms/pcenginecd</path> <extension>.pce .PCE .cue .CUE .ccd .CCD .iso .ISO .img .IMG .bin .BIN .chd .CHD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pcenginecd</platform> <theme>pce-cd</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_pce_fast</core> <core>mednafen_supergrafx</core> </cores> </emulator> </emulators> </system> <system> <name>pcfx</name> <fullname>NEC PC-FX</fullname> <manufacturer>NEC</manufacturer> <release>1994</release> <hardware>console</hardware> <path>/storage/roms/pcfx</path> <extension>.chd .CHD .zip .ZIP .cue .CUE .ccd .CCD .toc .TOC</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pcfx</platform> <theme>pcfx</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_pcfx</core> </cores> </emulator> </emulators> </system> <system> <name>supergrafx</name> <fullname>NEC Super Grafx</fullname> <manufacturer>NEC</manufacturer> <release>1989</release> <hardware>console</hardware> <path>/storage/roms/sgfx</path> <extension>.pce .PCE .sgx .SGX .cue .CUE .ccd .CCD .chd .CHD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>supergrafx</platform> <theme>supergrafx</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_supergrafx</core> <core>mednafen_pce_fast</core> </cores> </emulator> </emulators> </system> <system> <name>tg16</name> <fullname>NEC TurboGrafx 16</fullname> <manufacturer>NEC</manufacturer> <release>1989</release> <hardware>console</hardware> <path>/storage/roms/tg16</path> <extension>.pce .PCE .bin .BIN .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pcengine</platform> <theme>tg16</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_pce_fast</core> <core>mednafen_supergrafx</core> </cores> </emulator> </emulators> </system> <system> <name>tg16cd</name> <fullname>NEC TurboGrafx 16-CD</fullname> <manufacturer>NEC</manufacturer> <release>1989</release> <hardware>console</hardware> <path>/storage/roms/tg16cd</path> <extension>.pce .PCE .cue .CUE .ccd .CCD .iso .ISO .img .IMG .bin .BIN .chd .CHD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pcenginecd</platform> <theme>tg16cd</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_pce_fast</core> <core>mednafen_supergrafx</core> </cores> </emulator> </emulators> </system> <system> <name>n64</name> <fullname>Nintendo 64</fullname> <manufacturer>Nintendo</manufacturer> <release>1996</release> <hardware>console</hardware> <path>/storage/roms/n64</path> <extension>.z64 .Z64 .n64 .N64 .v64 .V64 .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>n64</platform> <theme>n64</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mupen64plus_next</core> <core>mupen64plus</core> <core>parallel_n64</core> </cores> </emulator> </emulators> </system> <system> <name>nes</name> <fullname>Nintendo Entertainment System</fullname> <manufacturer>Nintendo</manufacturer> <release>1985</release> <hardware>console</hardware> <path>/storage/roms/nes</path> <extension>.nes .NES .unif .UNIF .unf .UNF .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>nes</platform> <theme>nes</theme> <emulators> <emulator name="libretro"> <cores> <core>fceumm</core> <core default="true">nestopia</core> </cores> </emulator> </emulators> </system> <system> <name>nesh</name> <fullname>Nintendo Entertainment System Hacks</fullname> <manufacturer>Nintendo</manufacturer> <release>1985</release> <hardware>console</hardware> <path>/storage/roms/nesh</path> <extension>.nes .NES .unif .UNIF .unf .UNF .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>nes</platform> <theme>nesh</theme> <emulators> <emulator name="libretro"> <cores> <core>fceumm</core> <core default="true">nestopia</core> </cores> </emulator> </emulators> </system> <system> <name>famicom</name> <fullname>Nintendo Famicom</fullname> <manufacturer>Nintendo</manufacturer> <release>1983</release> <hardware>console</hardware> <path>/storage/roms/famicom</path> <extension>.nes .NES .unif .UNIF .unf .UNF .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>famicom</platform> <theme>famicom</theme> <emulators> <emulator name="libretro"> <cores> <core>fceumm</core> <core default="true">nestopia</core> </cores> </emulator> </emulators> </system> <system> <name>fds</name> <fullname>Nintendo Famicom Disk System</fullname> <manufacturer>Nintendo</manufacturer> <release>1986</release> <hardware>console</hardware> <path>/storage/roms/fds</path> <extension>.fds .FDS .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>fds</platform> <theme>fds</theme> <emulators> <emulator name="libretro"> <cores> <core>fceumm</core> <core default="true">nestopia</core> </cores> </emulator> </emulators> </system> <system> <name>gb</name> <fullname>Nintendo Game Boy</fullname> <manufacturer>Nintendo</manufacturer> <release>1989</release> <hardware>portable</hardware> <path>/storage/roms/gb</path> <extension>.gb .GB .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gb</platform> <theme>gb</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gambatte</core> <core>gearboy</core> <core>tgbdual</core> <core>mgba</core> <core>vbam</core> <core>vba_next</core> </cores> </emulator> </emulators> </system> <system> <name>gba</name> <fullname>Nintendo Game Boy Advance</fullname> <manufacturer>Nintendo</manufacturer> <release>2001</release> <hardware>portable</hardware> <path>/storage/roms/gba</path> <extension>.gba .GBA .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gba</platform> <theme>gba</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mgba</core> <core>gpsp</core> <core>vbam</core> <core>vba_next</core> </cores> </emulator> </emulators> </system> <system> <name>gbah</name> <fullname>Nintendo Game Boy Advance hacks</fullname> <manufacturer>Nintendo</manufacturer> <release>2001</release> <hardware>portable</hardware> <path>/storage/roms/gbah</path> <extension>.gba .GBA .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gba</platform> <theme>gbah</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mgba</core> <core>gpsp</core> <core>vbam</core> <core>vba_next</core> </cores> </emulator> </emulators> </system> <system> <name>gbc</name> <fullname>Nintendo Game Boy Color</fullname> <manufacturer>Nintendo</manufacturer> <release>1998</release> <hardware>portable</hardware> <path>/storage/roms/gbc</path> <extension>.gb .GB .gbc .GBC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gbc</platform> <theme>gbc</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gambatte</core> <core>gearboy</core> <core>tgbdual</core> <core>mgba</core> <core>vbam</core> <core>vba_next</core> </cores> </emulator> </emulators> </system> <system> <name>gbch</name> <fullname>Nintendo Game Boy Color Hacks</fullname> <manufacturer>Nintendo</manufacturer> <release>1998</release> <hardware>portable</hardware> <path>/storage/roms/gbch</path> <extension>.gb .GB .gbc .GBC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gbc</platform> <theme>gbch</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gambatte</core> <core>gearboy</core> <core>tgbdual</core> <core>mgba</core> <core>vbam</core> <core>vba_next</core> </cores> </emulator> </emulators> </system> <system> <name>gbh</name> <fullname>Nintendo Game Boy Hacks</fullname> <manufacturer>Nintendo</manufacturer> <release>1989</release> <hardware>portable</hardware> <path>/storage/roms/gbh</path> <extension>.gb .GB .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gb</platform> <theme>gbh</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gambatte</core> <core>gearboy</core> <core>tgbdual</core> <core>mgba</core> <core>vbam</core> <core>vba_next</core> </cores> </emulator> </emulators> </system> <system> <name>gameandwatch</name> <fullname>Nintendo Game and Watch</fullname> <manufacturer>Nintendo</manufacturer> <release>1980</release> <hardware>portable</hardware> <path>/storage/roms/gameandwatch</path> <extension>.mgw .MGW .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gameandwatch</platform> <theme>gameandwatch</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gw</core> </cores> </emulator> </emulators> </system> <system> <name>sfc</name> <fullname>Nintendo Super Famicom</fullname> <manufacturer>Nintendo</manufacturer> <release>1990</release> <hardware>console</hardware> <path>/storage/roms/sfc</path> <extension>.smc .SMC .fig .FIG .bs .BS .st .ST .sfc .SFC .gd3 .GD3 .gd7 .GD7 .dx2 .DX2 .bsx .BSX .swc .SWC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>sfc</platform> <theme>sfc</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">snes9x</core> <core>snes9x2010</core> <core>snes9x2002</core> <core>snes9x2005_plus</core> </cores> </emulator> </emulators> </system> <system> <name>snes</name> <fullname>Nintendo Super Nintendo</fullname> <manufacturer>Nintendo</manufacturer> <release>1991</release> <hardware>console</hardware> <path>/storage/roms/snes</path> <extension>.smc .SMC .fig .FIG .bs .BS .st .ST .sfc .SFC .gd3 .GD3 .gd7 .GD7 .dx2 .DX2 .bsx .BSX .swc .SWC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>snes</platform> <theme>snes</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">snes9x</core> <core>snes9x2010</core> <core>snes9x2002</core> <core>snes9x2005_plus</core> </cores> </emulator> </emulators> </system> <system> <name>snesh</name> <fullname>Nintendo Super Nintendo Hacks</fullname> <manufacturer>Nintendo</manufacturer> <release>1991</release> <hardware>console</hardware> <path>/storage/roms/snesh</path> <extension>.smc .SMC .fig .FIG .bs .BS .st .ST .sfc .SFC .gd3 .GD3 .gd7 .GD7 .dx2 .DX2 .bsx .BSX .swc .SWC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>snes</platform> <theme>snesh</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">snes9x</core> <core>snes9x2010</core> <core>snes9x2002</core> <core>snes9x2005_plus</core> </cores> </emulator> </emulators> </system> <system> <name>snesmsu1</name> <fullname>Nintendo Super Nintendo MSU1</fullname> <manufacturer>byuu</manufacturer> <release>2012</release> <hardware>console</hardware> <path>/storage/roms/snesmsu1</path> <extension>.smc .SMC .fig .FIG .bs .BS .st .ST .sfc .SFC .gd3 .GD3 .gd7 .GD7 .dx2 .DX2 .bsx .BSX .swc .SWC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>snes</platform> <theme>snesmsu1</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">snes9x</core> </cores> </emulator> </emulators> </system> <system> <name>virtualboy</name> <fullname>Nintendo Virtual Boy</fullname> <manufacturer>Nintendo</manufacturer> <release>1995</release> <hardware>console</hardware> <path>/storage/roms/virtualboy</path> <extension>.vb .VB .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>virtualboy</platform> <theme>virtualboy</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_vb</core> </cores> </emulator> </emulators> </system> <system> <name>pokemini</name> <fullname>Pokemon Mini</fullname> <manufacturer>Nintendo</manufacturer> <release>2001</release> <hardware>portable</hardware> <path>/storage/roms/pokemini</path> <extension>.min .MIN .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pokemini</platform> <theme>pokemini</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">pokemini</core> </cores> </emulator> </emulators> </system> <system> <name>openbor</name> <fullname>OpenBOR</fullname> <manufacturer>Ports</manufacturer> <release>2008</release> <hardware>port</hardware> <path>/storage/roms/openbor</path> <extension>.pak .PAK</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>openbor</platform> <theme>openbor</theme> <emulators> <emulator name="OPENBOR"> <cores> <core default="true">OPENBOR</core> </cores> </emulator> </emulators> </system> <system> <name>videopac</name> <fullname>Philips VideoPac</fullname> <manufacturer>Magnavox - Philips</manufacturer> <release>1978</release> <hardware>console</hardware> <path>/storage/roms/videopac</path> <extension>.bin .BIN</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>videopac</platform> <theme>videopac</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">o2em</core> </cores> </emulator> </emulators> </system> <system> <name>ports</name> <fullname>Ports</fullname> <manufacturer>Ports</manufacturer> <release>Varies</release> <hardware>port</hardware> <path>/storage/.config/emuelec/ports</path> <extension>.sh .SH</extension> <command>/usr/bin/bash %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>ports</platform> <theme>ports</theme> </system> <system> <name>residualvm</name> <fullname>ResidualVM</fullname> <manufacturer>LucasArts</manufacturer> <release>1998</release> <hardware>computer</hardware> <path>/storage/.config/residualvm/games</path> <extension>.sh .SH .rvm .RVM .residualvm</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pc</platform> <theme>residualvm</theme> <emulators> <emulator name="RESIDUALVM"> <cores> <core default="true">RESIDUALVM</core> </cores> </emulator> </emulators> </system> <system> <name>neogeo</name> <fullname>SNK Neo-Geo</fullname> <manufacturer>SNK</manufacturer> <release>1990</release> <hardware>console</hardware> <path>/storage/roms/neogeo</path> <extension>.7z .7Z .zip .ZIP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>neogeo</platform> <theme>neogeo</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">fbneo</core> <core>mame2003</core> <core>fbalpha2012</core> </cores> </emulator> </emulators> </system> <system> <name>neocd</name> <fullname>SNK Neo-Geo CD</fullname> <manufacturer>SNK</manufacturer> <release>1990</release> <hardware>console</hardware> <path>/storage/roms/neocd</path> <extension>.cue .CUE .iso .ISO .chd .CHD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>neogeocd</platform> <theme>neogeocd</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">neocd</core> <core>fbneo</core> </cores> </emulator> </emulators> </system> <system> <name>ngp</name> <fullname>SNK Neo-Geo Pocket</fullname> <manufacturer>SNK</manufacturer> <release>1998</release> <hardware>portable</hardware> <path>/storage/roms/ngp</path> <extension>.ngp .NGP .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>ngp</platform> <theme>ngp</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_ngp</core> </cores> </emulator> </emulators> </system> <system> <name>ngpc</name> <fullname>SNK Neo-Geo Pocket Color</fullname> <manufacturer>SNK</manufacturer> <release>1999</release> <hardware>portable</hardware> <path>/storage/roms/ngpc</path> <extension>.ngc .NGC .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>ngpc</platform> <theme>ngpc</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">mednafen_ngp</core> </cores> </emulator> </emulators> </system> <system> <name>scummvm</name> <fullname>ScummVM</fullname> <manufacturer>LucasArts</manufacturer> <release>1987</release> <hardware>computer</hardware> <path>/storage/.config/scummvm/games</path> <extension>.sh .SH .svm .SVM .scummvm</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pc</platform> <theme>scummvm</theme> <emulators> <emulator name="SCUMMVMSA"> <cores> <core default="true">SCUMMVMSA</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>scummvm</core> </cores> </emulator> </emulators> </system> <system> <name>sega32x</name> <fullname>Sega 32X</fullname> <manufacturer>Sega</manufacturer> <release>1991</release> <hardware>console</hardware> <path>/storage/roms/sega32x</path> <extension>.32x .32X .smd .SMD .bin .BIN .md .MD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>sega32x</platform> <theme>sega32x</theme> <emulators> <emulator name="libretro"> <cores> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>segacd</name> <fullname>Sega CD</fullname> <manufacturer>Sega</manufacturer> <release>1991</release> <hardware>console</hardware> <path>/storage/roms/segacd</path> <extension>.chd .CHD .cue .CUE .iso .ISO .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>segacd</platform> <theme>segacd</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>dreamcast</name> <fullname>Sega Dreamcast</fullname> <manufacturer>Sega</manufacturer> <release>1998</release> <hardware>console</hardware> <path>/storage/roms/dreamcast</path> <extension>.cdi .CDI .gdi .GDI .chd .CHD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>dreamcast</platform> <theme>dreamcast</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">flycast</core> </cores> </emulator> <emulator name="REICAST"> <cores> <core>REICASTSA</core> <core>REICASTSA_OLD</core> </cores> </emulator> </emulators> </system> <system> <name>gamegear</name> <fullname>Sega Game Gear</fullname> <manufacturer>Sega</manufacturer> <release>1990</release> <hardware>portable</hardware> <path>/storage/roms/gamegear</path> <extension>.bin .BIN .gg .GG .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gamegear</platform> <theme>gamegear</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gearsystem</core> <core>genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>ggh</name> <fullname>Sega Game Gear Hacks</fullname> <manufacturer>Sega</manufacturer> <release>1990</release> <hardware>portable</hardware> <path>/storage/roms/gamegearh</path> <extension>.bin .BIN .gg .GG .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>gamegear</platform> <theme>ggh</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gearsystem</core> <core>genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>genesis</name> <fullname>Sega Genesis</fullname> <manufacturer>Sega</manufacturer> <release>1989</release> <hardware>console</hardware> <path>/storage/roms/genesis</path> <extension>.bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>genesis</platform> <theme>genesis</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>genh</name> <fullname>Sega Genesis Hacks</fullname> <manufacturer>Sega</manufacturer> <release>1989</release> <hardware>console</hardware> <path>/storage/roms/genh</path> <extension>.bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>genesis</platform> <theme>genh</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>mastersystem</name> <fullname>Sega Master System</fullname> <manufacturer>Sega</manufacturer> <release>1985</release> <hardware>console</hardware> <path>/storage/roms/mastersystem</path> <extension>.bin .BIN .sms .SMS .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>mastersystem</platform> <theme>mastersystem</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gearsystem</core> <core>genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>megadrive</name> <fullname>Sega Mega Drive</fullname> <manufacturer>Sega</manufacturer> <release>1990</release> <hardware>console</hardware> <path>/storage/roms/megadrive</path> <extension>.bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>megadrive</platform> <theme>megadrive</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>megadrive-japan</name> <fullname>Sega Mega Drive Japan</fullname> <manufacturer>Sega</manufacturer> <release>1988</release> <hardware>console</hardware> <path>/storage/roms/megadrive-japan</path> <extension>.bin .BIN .gen .GEN .md .MD .sg .SG .smd .SMD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>megadrive</platform> <theme>megadrive-japan</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>naomi</name> <fullname>Sega Naomi</fullname> <manufacturer>Sega</manufacturer> <release>1998</release> <hardware>arcade</hardware> <path>/storage/roms/naomi</path> <extension>.lst .LST .bin .BIN .dat .DAT .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>naomi</platform> <theme>naomi</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">flycast</core> </cores> </emulator> </emulators> </system> <system> <name>sc-3000</name> <fullname>Sega SC-3000</fullname> <manufacturer>Sega</manufacturer> <release>1983</release> <hardware>computer</hardware> <path>/storage/roms/sc-3000</path> <extension>.bin .BIN .sg .SG .zip .ZIP .7z .7Z</extension>-P%SYSTEM% <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>sc-3000</platform> <theme>sc-3000</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">bluemsx</core> </cores> </emulator> </emulators> </system> <system> <name>sg-1000</name> <fullname>Sega SG-1000</fullname> <manufacturer>Sega</manufacturer> <release>1983</release> <hardware>console</hardware> <path>/storage/roms/sg-1000</path> <extension>.bin .BIN .sg .SG .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>sg-1000</platform> <theme>sg-1000</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">gearsystem</core> <core>genesis_plus_gx</core> <core>picodrive</core> </cores> </emulator> </emulators> </system> <system> <name>setup</name> <fullname>Setup</fullname> <manufacturer>EmuELEC</manufacturer> <release>2017</release> <hardware>Amlogic</hardware> <path>/emuelec/scripts/modules</path> <extension>.sh</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>setup</platform> <theme>setup</theme> </system> <system> <name>x68000</name> <fullname>Sharp X68000</fullname> <manufacturer>Sharp</manufacturer> <release>1987</release> <hardware>computer</hardware> <path>/storage/roms/x68000</path> <extension>.dim .DIM .img .IMG .d88 .D88 .88d .88D .hdm .HDM .dup .DUP .2hd .2HD .xdf .XDF .hdf .HDF .cmd .CMD .m3u .M3U .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>x68000</platform> <theme>x68000</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">px68k</core> </cores> </emulator> </emulators> </system> <system> <name>zxspectrum</name> <fullname>Sinclair ZX Spectrum</fullname> <manufacturer>Sinclair</manufacturer> <release>1982</release> <hardware>computer</hardware> <path>/storage/roms/zxspectrum</path> <extension>.tzx .TZX .tap .TAP .z80 .Z80 .rzx .RZX .scl .SCL .trd .TRD .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>zxspectrum</platform> <theme>zxspectrum</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">fuse</core> </cores> </emulator> </emulators> </system> <system> <name>zx81</name> <fullname>Sinclair ZX81</fullname> <manufacturer>Sinclair</manufacturer> <release>1981</release> <hardware>computer</hardware> <path>/storage/roms/zx81</path> <extension>.tzx .TZX .p .P .zip .ZIP .7z .7Z</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>zx81</platform> <theme>zx81</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">81</core> </cores> </emulator> </emulators> </system> <system> <name>psx</name> <fullname>Sony Playstation</fullname> <manufacturer>Sony</manufacturer> <release>1994</release> <hardware>console</hardware> <path>/storage/roms/psx</path> <extension>.bin .BIN .cue .CUE .img .IMG .mdf .MDF .pbp .PBP .toc .TOC .cbn .CBN .m3u .M3U .ccd .CCD .chd .CHD .zip .ZIP .7z .7Z .iso .ISO</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>psx</platform> <theme>psx</theme> <emulators> <emulator name="libretro"> <cores> <core default="true">pcsx_rearmed</core> </cores> </emulator> </emulators> </system> <system> <name>psp</name> <fullname>Sony Playstation Portable</fullname> <manufacturer>Sony</manufacturer> <release>2004</release> <hardware>portable</hardware> <path>/storage/roms/psp</path> <extension>.iso .ISO .cso .CSO .pbp .PBP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>psp</platform> <theme>psp</theme> <emulators> <emulator name="PPSSPPSDL"> <cores> <core default="true">PPSSPPSDL</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>ppsspp</core> </cores> </emulator> </emulators> </system> <system> <name>pspminis</name> <fullname>Sony Playstation Portable Minis</fullname> <manufacturer>Sony</manufacturer> <release>2004</release> <hardware>portable</hardware> <path>/storage/roms/pspminis</path> <extension>.iso .ISO .cso .CSO .pbp .PBP</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>psp</platform> <theme>pspminis</theme> <emulators> <emulator name="PPSSPPSDL"> <cores> <core default="true">PPSSPPSDL</core> </cores> </emulator> <emulator name="libretro"> <cores> <core>ppsspp</core> </cores> </emulator> </emulators> </system> <system> <name>uzebox</name> <fullname>uzebox</fullname> <manufacturer>belogic</manufacturer> <release>2008</release> <hardware>console</hardware> <path>/storage/roms/uzebox</path> <extension>.uze .UZE .hex .HEX</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>uzebox</platform> <theme>uzebox</theme> <emulators> <emulator name="libretro"> <cores> <core>uzebox</core> </cores> </emulator> </emulators> </system> <system> <name>pico8</name> <fullname>PICO-8 fantasy console</fullname> <manufacturer>Lexaloffle</manufacturer> <release>2015</release> <hardware>console</hardware> <path>/storage/roms/pico-8</path> <extension>.p8 .P8 .png .PNG</extension> <command>/emuelec/scripts/emuelecRunEmu.sh %ROM% -P%SYSTEM% --core=%CORE% --emulator=%EMULATOR% --controllers="%CONTROLLERSCONFIG%"</command> <platform>pico8</platform> <theme>pico8</theme> <emulators> <emulator name="Pico-8"> <cores> <core default="true">Pico-8</core> </cores> </emulator> </emulators> </system> </systemList> 帮我解释一下这个文件设置了什么
05-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值