Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

# -*- coding:Utf-8 -*- 

############################################################################### 

## Lutris 

## 

## Copyright (C) 2009 Mathieu Comandon strycore@gmail.com 

## 

## This program is free software; you can redistribute it and/or modify 

## it under the terms of the GNU General Public License as published by 

## the Free Software Foundation; either version 3 of the License, or 

## (at your option) any later version. 

## 

## This program is distributed in the hope that it will be useful, 

## but WITHOUT ANY WARRANTY; without even the implied warranty of 

## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 

## GNU General Public License for more details. 

## 

## You should have received a copy of the GNU General Public License 

## along with this program; if not, write to the Free Software 

## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 

############################################################################### 

 

"""Runner for Sega Master System""" 

 

import os 

 

from lutris import settings 

from lutris.runners.runner import Runner 

 

 

# pylint: disable=C0103 

class osmose(Runner): 

    """Sega Master System Emulator""" 

 

    package = "osmose" 

    executable = "osmose" 

    platform = "Sega Master System" 

 

    game_options = [ 

        { 

            'option': 'main_file', 

            'type': 'file', 

            'label': 'Rom File' 

        } 

    ] 

 

    runner_options = [ 

        {'option': 'fullscreen', 'type': 'bool', 'label': 'Fullscreen'}, 

        {'option': 'joy', 'type': 'bool', 'label': 'Use joystick'} 

    ] 

 

    def is_installed(self): 

        if os.path.exists(self.get_executable()): 

            return True 

        else: 

            return super(osmose, self).is_installed() 

 

    def install(self): 

        self.logger.debug("Installing osmose") 

        if self.arch == 'x64': 

            tarball = "osmose-0.9.96-x64.tar.gz" 

        else: 

            return False 

        self.download_and_extract(tarball) 

 

    def get_executable(self): 

        return os.path.join(settings.RUNNER_DIR, 'osmose/osmose') 

 

    def play(self): 

        """Run Sega Master System game""" 

        arguments = [] 

        if 'fullscreen' in self.settings['osmose']: 

            if self.settings['osmose']['fullscreen']: 

                arguments = arguments + ['-fs', '-bilinear'] 

        if 'joy' in self.settings["osmose"]: 

            if self.settings['osmose']['joy']: 

                arguments = arguments + ['-joy'] 

 

        rom = self.settings['game']['main_file'] 

        arguments = arguments + ["\"%s\"" % rom] 

 

        if not os.path.exists(rom): 

            return {'error': 'FILE_NOT_FOUND', 

                    'file': rom} 

        return {'command': [self.get_executable()] + arguments}