RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Cannonball Engine (Outrun Emulator)

    Scheduled Pinned Locked Moved Help and Support
    38 Posts 11 Posters 14.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • RiverstormR
      Riverstorm @jretropie
      last edited by

      @jretropie said in Cannonball Engine (Outrun Emulator):

      @Riverstorm I have changed controls mode to 0 but still cannot use joystick to do up and down at the menu. :(

      it is so weird that joystick(left and right) and buttons all work inside the game but just that menu cannot scroll up and down. I need a way to exit the game without keyboard.

      Is your keyboard working to play? Is your joystick working with Emulationstation and other emulators? Here's my xml config if it helps. I am using an XBOX 360 controller with no issues. There's a section on what buttons you assign to specific options using a joystick. Really straight forward.

      <?xml version="1.0"?>
      
      <!-- 
          Video Settings
      -->
      <video>
          <!-- Set Screen Mode: 
          
               0 is windowed, 
               1 is full-screen
               2 is full-screen stretched, no borders. (Aspect ratio will be lost. Scanlines will be disabled.)
          -->
          <mode>2</mode>
      
          <!-- 
              Windowed Mode Settings 
              Scale: Scale or zoom factor for window mode. 1 is original size. 
          -->
          <window>
              <scale>2</scale>
          </window>
      
          <!-- 
              Scanline intensity.
              0   = No scanlines
              100 = Solid black
              
              A value of 35 looks good on my LCD monitor.
              
              Note that scanlines require a scale factor of 2 or more. 
              Scanlines do not work in full-screen stretch mode.
              Scanlines may result in some borders around the screen in full-screen mode.
          -->
          <scanlines>35</scanlines>
      
          <!-- FPS 
               0 = 30    FPS. Optimized Mode       (Slow computers)
               1 = 30/60 FPS. Original Game Mode.  (The original experience)
               2 = 60    FPS. Smooth Mode.         (Full 60fps)
          -->
          <fps>0</fps>
          
          <!-- Enable FPS Counter -->
          <fps_counter>0</fps_counter>
          
          <!-- Enhanced Widescreen Mode -->
          <widescreen>1</widescreen>
          
          <!-- Higher Internal Resolution. Better Sprite Scaling, but has a performance hit. 
               Disable for original experience. -->
          <hires>0</hires>
          
          <!-- Open GL Filtering for Scaling. 0 = Nearest Neighbour. 1 = Linear -->
          <filtering>0</filtering>
      </video>
      
      <!-- 
          Sound Settings
      -->
      <sound>
          <!-- Toggle Sound -->
          <enable>1</enable>
          
          <!-- Advertise Sound In Attract Mode -->
          <advertise>1</advertise>
          
          <!-- Preview Sound On Music Selection Screen (Enhancement, Off in original game) -->
          <preview>1</preview>
          
          <!-- OutRun shipped with a corrupt PCM sample ROM. This uses the repaired ROM 'opr-10188.71f' -->
          <fix_samples>1</fix_samples>
          
          <!-- Custom Music: Play a WAV file instead of the inbuilt music -->
          <custom_music>
              <!-- Magical Sound Shower Replacement -->
              <track1 enabled = "0">
                  <title>MAGICAL SOUND SHOWER REMIX</title>
                  <filename>track1.wav</filename>
              </track1>
              <!-- Passing Breeze Replacement -->
              <track2 enabled = "0">
                  <title>PASSING BREEZE REMIX</title>
                  <filename>track2.wav</filename>
              </track2>
              <!-- Splash Wave Replacement -->
              <track3 enabled = "0">
                  <title>SPLASH WAVE REMIX</title>
                  <filename>track3.wav</filename>
              </track3>
              <track4 enabled = "0">
                  <title>LAST WAVE REMIX</title>
                  <filename>track4.wav</filename>
              </track4>
          </custom_music>
      </sound>
      
      <!--
          CannonBoard Arduino Based Interface
       -->
       
      <cannonboard enabled = "0">
          <!-- Port Name -->
          <port>COM6</port>
          
          <!-- Baud Rate -->
          <baud>57600</baud>
          
          <!-- Machine Type. 0 = Moving, 1 = Up Cockpit, 2 = Mini -->
          <cabinet>0</cabinet>
          
          <!-- Write Debug Information To Console-->
          <debug>1</debug>
      </cannonboard>
      
      <!-- 
          Controls Settings
          
          There are two high level modes
          
          0 = Standard PC Input (keyboard/joypad/wheel)
          1 = Original OutRun Controls (Requires CannonBoard PCB setup)
          
      -->
      <controls mode = "0">
          <!-- Gears: 
              0 = Manual   (Click to shift, for normal play)
              1 = Manual   (Hold to shift, for cabinet play)
              2 = Manual   (Separate Buttons for High/Low)
              3 = Automatic 
          -->
          <gear>0</gear>
          
          <!-- Use the N'th joystick on the system. -->
          <pad_id>0</pad_id>
          
          <!-- Keyboard Button Configuration. Easiest to configure with inbuilt menu. -->
          <keyconfig>
          	<up>1073741906</up>
      	<down>1073741905</down>
      	<left>1073741904</left>
      	<right>1073741903</right>
              <acc>1073742048</acc>
              <brake>32</brake>
              <gear1>1073742050</gear1>
              <gear2>1073742050</gear2>
              <start>49</start>
              <coin>53</coin>
              <menu>9</menu>
              <view>122</view>
          </keyconfig>
          
          <!-- Gamepad / Joystick Button Configuration. Easiest to configure with inbuilt menu. -->
          <padconfig>
              <acc>0</acc>
              <brake>7</brake>
              <gear1>5</gear1>
              <gear2>5</gear2>
              <start>9</start>
              <coin>8</coin>
              <menu>10</menu>    
              <view>4</view>
          </padconfig>
                 
          <!-- Digital Controls: Steering Adjust Speed (1 to 9) -->
          <steerspeed>3</steerspeed>
          
          <!-- Digital Controls: Pedal Adjust Speed (1 to 9) -->
          <pedalspeed>4</pedalspeed>
          
          <!-- Analog Controls
               0 = Off
               1 = On
               2 = Wheel Only
          -->
          <analog enabled = "0">
              <!-- Select axis for analog controls 
                   You can place the accelerator and the brake on the same axis if your controller
                   has a split axis setup.
                   
                   For an XBox 360 Controller, the wheel should be axis 0 and the pedals on axis 2.
                -->
              <axis>
                  <wheel>0</wheel>
                  <accel>2</accel>
                  <brake>3</brake>
              </axis>
              
              <!-- Analog Wheel Settings -->
              <wheel>
                  <!-- Amount of wheel turning circle to use.
                       Example:  0 means use the entire wheel (this works best if haptic is enabled)
                       larger values mean to progressively use less of the wheel turning circle -->
                  <zone>0</zone>
                  
                  <!-- Dead Zone In Centre Of Wheel. Total Wheel Range = 128
                       A Dead zone is useful if the centre accuracy of your wheel is poor.
                       A good Logitech Racing wheel should not need this -->
                  <dead>0</dead>
              </wheel>
              
              <!-- Analog Pedal Settings -->
              <pedals>
                  <!-- Central Dead Zone: Only used for split axis controls -->
                  <dead>1</dead>
              </pedals>
              
              <!-- Force Feedback / Haptic Support -->
              <haptic enabled = "0">
              
                  <!-- Make both of the below values negative, 
                       if force feedback is in the wrong direction -->
              
                  <!-- Maximum Force To Apply (0 to 10000) -->
                  <max_force>8500</max_force>
                  
                  <!-- Minimum Force To Apply (0 to max_force) -->
                  <min_force>7000</min_force>
                  
                  <!-- Length of each effect. (1/x seconds) 1/20th suggested. -->
                  <force_duration>20</force_duration>
              </haptic>
              
          </analog>
      </controls>
      
      <!-- 
          Game Engine Settings
      -->
      <engine>
          <!-- Game Time: 
               0 = Easy      (80 seconds)
               1 = Normal    (75 seconds) 
               2 = Hard      (72 seconds) 
               3 = Very Hard (70 seconds)  
               4 = Infinite Time 
          -->
          <time>0</time>
          
          <!-- Traffic Difficulty: 
               0 = Easy, 
               1 = Normal, 
               2 = Hard, 
               3 = Very Hard 
               4 = No Traffic
          -->
          <traffic>1</traffic>
          
          <!-- Freeplay Mode -->
          <freeplay>0</freeplay>
          
          <!-- The original Japanese release of OutRun featured slightly different
               tracks and course ordering. 
               
               Requires additional ROM files:
               epr-10380.133, epr-10382.118, epr-10381.132, epr-10383.117
               epr-10327.76,  epr-10329.58,  epr-10328.75,  epr-10330.57
          --->
          <japanese_tracks>0</japanese_tracks>
          
          <!-- Swap In Prototype Coconut Beach Track -->
          <prototype>0</prototype>
          
          <!-- Increase the number of allowed level objects. 
               This fixes the broken arches in Gateway for example.
          --->
          <levelobjects>1</levelobjects>
          
          <!-- Use the original random number generator seed to match the setup of
               the original game. Disable to use a truly random setup.
               This will affect initial traffic patterns in attract mode for example.
          -->
          <randomgen>1</randomgen>
          
          <!-- Fix minor bugs present in the original engine. -->
          <!-- Tile on music select screen, ms value at checkpoint etc. -->
          <fix_bugs>1</fix_bugs>
          
          <!-- Fixes two timing bugs:
               1. The hundredths of seconds lookup table contains 64 values but there should only be 60 values
                  Therefore it takes 31 frames to decrement 1 second on the countdown timer (it should be 30)
               2. Timer counts down 1 complete second AFTER timer reaches zero (it should stop at zero) -->
          <fix_timer>0</fix_timer>
          
          <!-- Use new Attract Mode which demos different viewpoints and has improved
               Ferrari AI when driving
          -->
          <new_attract>1</new_attract>
          
          <!-- Display debug info that's useful for LayOut track editing -->
          <layout_debug>0</layout_debug>
      </engine>
      
      <!-- Settings for Time Trial Mode -->
      <time_trial>
          <!-- Default Number of Laps (1 - 5) -->
          <laps>3</laps>
          
          <!-- Default Amount of Traffic (0 - 8), where 0 is off -->
          <traffic>3</traffic>
      </time_trial>
      
      <!-- Settings for Continuous Mode -->
      <continuous>
          <!-- Default Amount of Traffic (0 - 8), where 0 is off -->
          <traffic>3</traffic>
      </continuous>
      
      <!-- 
          Use the inbuilt menu system. 
          You can disable it and edit this config file instead if it makes more sense for your system.
       -->
      <menu>
          <enabled>1</enabled>
          <roadspeed>25</roadspeed>
      </menu>
      
      1 Reply Last reply Reply Quote 0
      • edmaul69E
        edmaul69
        last edited by edmaul69

        Cant you just configure the controller in the game settings? im pretty sure thats what i did. Works fine for me.

        J RiverstormR 2 Replies Last reply Reply Quote 0
        • J
          jretropie @edmaul69
          last edited by

          @edmaul69 There's no up and down controller setting during configure. The games joystick control works perfectly fine inside the game(left and right and all the buttons) but just the joystick cannot control up and down on the specific menu. The joystick also work fine and all other games and ES. At this point, I can only use keyboard to select the menu. But in my finish built, I am not going to have keyboard for my bartop.

          http://i.imgur.com/E2TxF7A.jpg

          1 Reply Last reply Reply Quote 0
          • BuZzB
            BuZz administrators
            last edited by

            If this is a limitation you can report it to the author - https://github.com/djyt/cannonball

            Or play the arcade version with mame ?

            A wireless keyboard would be a useful thing to include with your bartop anyway, for maintenance etc.

            To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

            J 1 Reply Last reply Reply Quote 0
            • J
              jretropie @BuZz
              last edited by

              @BuZz Thanks admin! Do you know how to set mame version outrun to automatic gear?

              edmaul69E 1 Reply Last reply Reply Quote 0
              • BuZzB
                BuZz administrators
                last edited by

                I don't think the arcade had automatic - it's only hi-lo - got to play it properly! :-)

                To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

                RiverstormR 1 Reply Last reply Reply Quote 0
                • RiverstormR
                  Riverstorm @edmaul69
                  last edited by

                  @edmaul69 said in Cannonball Engine (Outrun Emulator):

                  Cant you just configure the controller in the game settings?

                  It's been a while but I believe I did the same. I did make a few tweaks to the xml directly but I think everything could have been done via the settings menu. Once I have it setup I use Winmerge a differencing and merging tool to compare files for changes after an upgrade.

                  @jretropie - You might press TAB and check the Dip Switch settings. I have no idea but you might find something in there as some games have a lot of settings you may change.

                  1 Reply Last reply Reply Quote 0
                  • edmaul69E
                    edmaul69 @jretropie
                    last edited by edmaul69

                    nm i am wrong

                    J 1 Reply Last reply Reply Quote 0
                    • RiverstormR
                      Riverstorm @BuZz
                      last edited by

                      @BuZz said in Cannonball Engine (Outrun Emulator):

                      it's only hi-lo - got to play it properly! :-)

                      For sure, instead of braking I always used hi-lo on those hairpin turns. :)

                      1 Reply Last reply Reply Quote 0
                      • J
                        jretropie @edmaul69
                        last edited by

                        @edmaul69 I think there's up and down for redefine under keyboard redefine. But no up and down for joypad redefine.

                        1 Reply Last reply Reply Quote 0
                        • J
                          jretropie
                          last edited by jretropie

                          or Is there a way to map the keyboard's ESC key to one of the joystick button just for this game? This way, I can exit the game in cannonball.

                          edmaul69E 2 Replies Last reply Reply Quote 0
                          • edmaul69E
                            edmaul69 @jretropie
                            last edited by edmaul69

                            Post deleted.

                            1 Reply Last reply Reply Quote 0
                            • edmaul69E
                              edmaul69 @jretropie
                              last edited by

                              @jretropie you should be able to use joymap to configure the what your up and down axis to what you want. Question though. Do you have analog turned on in settings? I had to turn it off to get controls up and down to work for me.

                              J 1 Reply Last reply Reply Quote 0
                              • J
                                jretropie @edmaul69
                                last edited by

                                @edmaul69 Analog is off.

                                <analog enabled="0">

                                edmaul69E 1 Reply Last reply Reply Quote 0
                                • edmaul69E
                                  edmaul69 @jretropie
                                  last edited by edmaul69

                                  @jretropie ok. I would install joymap and configure keyboard keys up and down to your controls up and down. Btw what are your up and downs read as on your controller? Then you need to add the settings for joymap to your cannonball's .sh

                                  J 1 Reply Last reply Reply Quote 0
                                  • J
                                    jretropie @edmaul69
                                    last edited by

                                    @edmaul69 I don't know how to read these result code. Here's the result when I run jstest:

                                    http://i.imgur.com/7Z8I1zy.jpg

                                    The last four lines is up and down

                                    edmaul69E 1 Reply Last reply Reply Quote 0
                                    • edmaul69E
                                      edmaul69 @jretropie
                                      last edited by

                                      @jretropie ok so i think you need to map joymap to use up and down keys on keyboard to axis -1 (up) and axis +1 (down)

                                      J 1 Reply Last reply Reply Quote 0
                                      • J
                                        jretropie @edmaul69
                                        last edited by jretropie

                                        @edmaul69 Can you help me with this? what should I put in the src?

                                        button vendor=0x0079 product=0x0006 src= target=kbd button="up"
                                        button vendor=0x0079 product=0x0006 src= target=kbd button="down"

                                        is it like this?

                                        button vendor=0x0079 product=0x0006 src=-1 target=kbd button="up"
                                        button vendor=0x0079 product=0x0006 src=1 target=kbd button="down"

                                        here's the output for up and down when I run jstest:
                                        Up

                                        Event: type 2, time 13438880, number 3, value -32767
                                        Event: type 2, time 13439060, number 3, value 0

                                        Down

                                        Event: type 2, time 13441530, number 3, value 32767
                                        Event: type 2, time 13441770, number 3, value 0

                                        edmaul69E 1 Reply Last reply Reply Quote 0
                                        • J
                                          jretropie
                                          last edited by

                                          Somehow I end it up mapping the up and down to second joystick's buttons. Now I can work without keyboard.

                                          I have one more question. Why cannonball emulates outrun like very pixelize?

                                          When I run outrun in mame, I notice that it's more detail.

                                          Is there any setting I can change to get cannonball more detail?

                                          RiverstormR 1 Reply Last reply Reply Quote 0
                                          • RiverstormR
                                            Riverstorm @jretropie
                                            last edited by Riverstorm

                                            @jretropie said in Cannonball Engine (Outrun Emulator):

                                            Is there any setting I can change to get cannonball more detail?

                                            Check these options for widescreen and a higher resolution. The Pi has some performance issues with running <hires> on. I think you can tweak those settings from the in game Settings menu. I don't have it in front of me but I think there some angle settings but those are in the original I think. The scanline settings just well suck. I do run them but after using DaveJ's shader everything has been pale in comparison. I think mame4all-pi scanlines are ok and AdvMAME is worse than mame4all-pi except when playing vector games then AdvMAME really shines but Outrun's really leaves something to be desired.

                                            EDIT: You might check the full screen stretch mode might be causing issues with pixelation. Also I don't know what the default resolution is for the Cannonball Engine. The MAME emulator might be set higher where it looks cleaner and less pixelated.

                                            <video>
                                                <!-- Set Screen Mode: 
                                                
                                                     0 is windowed, 
                                                     1 is full-screen
                                                     2 is full-screen stretched, no borders. (Aspect ratio will be lost. Scanlines will be disabled.)
                                                -->
                                                <mode>2</mode>
                                            
                                               <!-- Enhanced Widescreen Mode -->
                                                <widescreen>1</widescreen>
                                            
                                                <!-- Higher Internal Resolution. Better Sprite Scaling, but has a performance hit. 
                                                     Disable for original experience. -->
                                                <hires>0</hires>
                                            
                                                <!-- Open GL Filtering for Scaling. 0 = Nearest Neighbour. 1 = Linear -->
                                                <filtering>0</filtering>
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.