Пример #1
0
def find_equivalent_snes_arcade(name: str) -> Optional[Machine]:
    if not default_mame_executable:
        #CBF tbhkthbai
        return None
    if not hasattr(find_equivalent_snes_arcade, 'nss_games'):
        try:
            find_equivalent_snes_arcade.nss_games = set(
                iter_machines_from_source_file(
                    'nss',
                    default_mame_executable))  #type: ignore[attr-defined]
        except MAMENotInstalledException:
            find_equivalent_snes_arcade.nss_games = set(
            )  #type: ignore[attr-defined]
    if not hasattr(find_equivalent_snes_arcade, 'arcade_bootlegs'):
        try:
            find_equivalent_snes_arcade.arcade_bootlegs = set(
                chain(
                    iter_machines_from_source_file('snesb',
                                                   default_mame_executable),
                    iter_machines_from_source_file(
                        'snesb51',
                        default_mame_executable)))  #type: ignore[attr-defined]
        except MAMENotInstalledException:
            find_equivalent_snes_arcade.arcade_bootlegs = set(
            )  #type: ignore[attr-defined]

    for machine in chain(find_equivalent_snes_arcade.nss_games,
                         find_equivalent_snes_arcade.arcade_bootlegs
                         ):  #type: ignore[attr-defined]
        if does_machine_match_name(name, machine):
            return machine

    return None
Пример #2
0
	def iter_launchers(self) -> Iterator[MAMELauncher]:
		if self.driver_list:
			for driver_name in self.driver_list:
				launcher = self._process_machine(get_machine(driver_name, default_mame_executable))
				if launcher:
					yield launcher
			return 

		if self.source_file:		
			for machine in iter_machines_from_source_file(self.source_file, self.emu.executable):
				if not _is_actually_machine(machine):
					continue
				if not machine.launchable:
					continue
				if not self.emu.executable.verifyroms(machine.basename):
					continue
				launcher = self._process_machine(machine)
				if launcher:
					yield launcher
			return

		for machine in iter_machines(self.emu.executable):
			if not main_config.full_rescan:
				if has_been_done('Arcade', machine.basename):
					continue
				if has_been_done('MAME', machine.basename):
					continue

			launcher = self._process_machine(machine)
			if launcher:
				yield launcher
Пример #3
0
def _get_megatech_games() -> Iterator[Machine]:
    try:
        yield from _get_megatech_games.result  #type: ignore[attr-defined]
    except AttributeError:
        if not default_mame_executable:
            return
        _get_megatech_games.result = set(
            iter_machines_from_source_file(
                'megatech',
                default_mame_executable))  #type: ignore[attr-defined]
        yield from _get_megatech_games.result  #type: ignore[attr-defined]
Пример #4
0
def _get_megaplay_games() -> Iterator[Machine]:
    try:
        yield from _get_megaplay_games.result  #type: ignore[attr-defined]
    except AttributeError:
        if not default_mame_executable:
            #I don't think there's a use case for this being changed
            return
        _get_megaplay_games.result = set(
            iter_machines_from_source_file(
                'megaplay',
                default_mame_executable))  #type: ignore[attr-defined]
        yield from _get_megaplay_games.result  #type: ignore[attr-defined]
Пример #5
0
def _get_uapce_games() -> Iterator[Machine]:
    try:
        yield from _get_uapce_games.result  #type: ignore[attr-defined]
    except AttributeError:
        try:
            if not default_mame_executable:
                #CBF tbhkthbai
                return
            _get_uapce_games.result = set(
                iter_machines_from_source_file(
                    'uapce',
                    default_mame_executable))  #type: ignore[attr-defined]
        except MAMENotInstalledException:
            return
        yield from _get_uapce_games.result  #type: ignore[attr-defined]
Пример #6
0
def find_equivalent_nes_arcade(name: str) -> Optional[Machine]:
	if not default_mame_executable:
		#CBF tbhkthbai
		return None
	if not hasattr(find_equivalent_nes_arcade, 'playchoice10_games'):
		try:
			find_equivalent_nes_arcade.playchoice10_games = set(iter_machines_from_source_file('playch10', default_mame_executable)) #type: ignore[attr-defined]
		except MAMENotInstalledException:
			find_equivalent_nes_arcade.playchoice10_games = set() #type: ignore[attr-defined]
	if not hasattr(find_equivalent_nes_arcade, 'vsnes_games'):
		try:
			find_equivalent_nes_arcade.vsnes_games = set(iter_machines_from_source_file('vsnes', default_mame_executable)) #type: ignore[attr-defined]
		except MAMENotInstalledException:
			find_equivalent_nes_arcade.vsnes_games = set() #type: ignore[attr-defined]

	for playchoice10_machine in find_equivalent_nes_arcade.playchoice10_games: #type: ignore[attr-defined]
		if does_machine_match_name(name, playchoice10_machine):
			return playchoice10_machine

	for vsnes_machine in find_equivalent_nes_arcade.vsnes_games: #type: ignore[attr-defined]
		if does_machine_match_name(name, vsnes_machine, match_vs_system=True):
			return vsnes_machine
	
	return None
Пример #7
0
def find_equivalent_mega_drive_arcade(game_name: str) -> Optional[Machine]:
    #TODO: Maybe StandardEmulatedPlatform can just hold some field called "potentially_equivalent_machines" or is that stupid? Yeah maybe just have a function yielding them
    if not hasattr(find_equivalent_mega_drive_arcade, 'arcade_bootlegs'):
        try:
            if not default_mame_executable:
                #CBF tbhkthbai
                return None
            find_equivalent_mega_drive_arcade.arcade_bootlegs = set(
                iter_machines_from_source_file(
                    'megadriv_acbl',
                    default_mame_executable))  #type: ignore[attr-defined]
        except MAMENotInstalledException:
            find_equivalent_mega_drive_arcade.arcade_bootlegs = set(
            )  #type: ignore[attr-defined]

    for machine in chain(_get_megatech_games(), _get_megaplay_games(),
                         find_equivalent_mega_drive_arcade.arcade_bootlegs
                         ):  #type: ignore[attr-defined]
        if does_machine_match_name(game_name, machine):
            return machine

    return None