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

    Dreamcast mvc2 crashing at stage 2

    Scheduled Pinned Locked Moved Help and Support
    reicastmvc2crashingstage 2
    128 Posts 6 Posters 13.4k 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.
    • R
      rejesterd
      last edited by

      @tackett1980 I just realized that my retropie setup log for reicast (which I updated from source today) shows a commit number from issue #1662 (which is before #1684, where this crashing issue is supposed to be fixed). I'm wondering if you could run the following commands from the terminal, and let me know the output..

      cd ~/RetroPie-Setup/logs
      
      reicastver () { for fname in *.log.gz; do    zcat "$fname" | grep -A 1 "Cloning into '/home/pi/RetroPie-Setup/tmp/build/reicast'"; done; }
      
      reicastver
      

      That should spit out your reicast version number. Just wanted to compare it to mine.

      T 1 Reply Last reply Reply Quote 0
      • T
        tackett1980 @rejesterd
        last edited by

        @rejesterd

        Roger, I’ll take a look when I get home.

        1 Reply Last reply Reply Quote 0
        • R
          rejesterd
          last edited by

          Yep.. It seems the latest retropie_setup script grabs reicast commit id 201bf1543616356cb9fa316cfcde7b89dfc09428, which doesn't contain the fix that reicast maintainers identified as being the root cause for the crash in MVC2. I rebuilt reicast against the latest commit (from today), manually installed it, and I no longer observe the crash on rpi4.

          BTW, I can also reproduce this faster by simply starting the stage 1 fight (waiting until after the big "FIGHT" flashes across the screen), quit the fight (which triggers a vmu save). Then just try to go back and fight stage 1 again. Same crash will occur at the same time (i.e. right after the "FIGHT" flashes across the screen).

          So definitely let me know the result of running the above commands. If the retropie_setup script is indeed grabbing the same older version of reicast, I can tell you what I did to build it manually on the pi4. Can't guarantee that the same steps will work for you on the pi3, but it's probably worth a try, considering my test results. Then I can add this to the retropie-setup issue tracker. I don't want to do that yet, as I'm not on an officially supported platform.

          1 Reply Last reply Reply Quote 0
          • mituM
            mitu Global Moderator
            last edited by

            @rejesterd said in Dreamcast mvc2 crashing at stage 2:

            It seems the latest retropie_setup script grabs reicast commit id 201bf1543616356cb9fa316cfcde7b89dfc09428, which doesn't contain the fix that reicast maintainers identified as being the root cause for the crash in MVC2

            which fix is that ? The RetroPie-Setup script uses the master branch from the reicast repository, not the development one (not recommended by the maintainer).

            R 1 Reply Last reply Reply Quote 0
            • R
              rejesterd @mitu
              last edited by

              @mitu The fix is reicast issue 1684. Have you updated reicast from source in retropie today? If so, what version is shown in your build log?

              mituM 1 Reply Last reply Reply Quote 0
              • R
                rejesterd
                last edited by

                @mitu - Looks like master only goes up to 1662. Thanks for clarifying.

                1 Reply Last reply Reply Quote 0
                • mituM
                  mitu Global Moderator @rejesterd
                  last edited by

                  @rejesterd the master branch hasn't been updated in a long time (July last year to be exact), so my guess is that updating from source/binary will get anyone that version. For now, the fix you mention is only part of the alpha branch, which is the development branch of reicast and is in constant flux.

                  1 Reply Last reply Reply Quote 0
                  • R
                    rejesterd
                    last edited by

                    @tackett1980 No need to run the commands I posted previously, as mitu clarified something for me.

                    So the main issue is that the version of reicast which retropie currently provides does not contain the fix reported in reicast issue #1684. This fix will prevent the crashing at stage 2 in mvc2. So if you want this fix, you need to manually build a newer version of reicast on your pi.

                    My initial testing of mvc2 has been good so far in my newer build of reicast, but as mitu indicated, this was built from a development branch. So it hasn't gone through as much testing (if any) as the older version which retropie will install for you. So expect other issues to come up.

                    For example, I already noticed that the game freezes if I hit the Exit hotkey button on my controller. Fortunately, I can workaround this by configuring a Menu hotkey button, and hitting that instead. That brings up the reicast menu, where you can then select 'Exit'. So that's just a preview of what you'll be dealing with. Fortunately, this issue has an easy workaround (i.e. use the Menu hotkey when playing a game, and then select 'Exit' from the menu). Other issues may not

                    If you want to try building a newer version of reicast manually on your pi, I can give you steps. Just understand that you might want to continue using the retropie-provided version of reicast for other dreamcast games (which my steps would enable you to do). If you're interested, post the contents of..

                    /opt/retropie/emulators/reicast/reicast.sh
                    /opt/retropie/configs/dreamcast/emulators.cfg

                    ..and I'll write up some steps for you.

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      tackett1980 @rejesterd
                      last edited by tackett1980

                      @rejesterd

                      Wow.

                      Thank you guys so much for this information and everything!

                      I haven’t had the chance to look today, I’m feeling a little under the weather.

                      The only game I want to play is mvc2, I have no interest in any other Dreamcast game at this point. So if you could give me steps to build this the way you are describing I would appreciate it and I will give it a try.

                      I wonder if the Naomi emulation using the reicast core for the arcade rom has the same issues? I’ve seen some people on YouTube running the Naomi emulator arcade version of this game and my ultimate goal is to get that up and running in a dedicated cabinet...at some point. For now I’d just like to be able to play this version

                      So if you could list the steps that need to be done to get this operational I would appreciate it very much. I will post the requested information from my end if I don’t feel like a walking corpse tommorrow.

                      Edit: does anyone have any idea when they will add the fix to the master branch?

                      Thanks again!

                      1 Reply Last reply Reply Quote 0
                      • R
                        rejesterd
                        last edited by rejesterd

                        Ok, feel better. Here you go..

                        First, open a terminal window on the pi, and run the following:

                        cd ~/
                        
                        git clone -n https://github.com/reicast/reicast-emulator.git
                         
                        cd ~/reicast-emulator/
                        
                        git checkout 49046aecd9e87d6ba8c1508ad6222526842bbacd
                        
                        cd reicast/linux/
                        
                        make -j4
                        

                        That will start the build, and it will take a few minutes to complete. When it's done, you'll have the command prompt available to you again in the terminal window. If the build was successful, you should see a file called 'reicast.elf' when you run..

                        ls -al
                        

                        ..from that same terminal window. That's your new reicast binary, which needs to be placed in the reicast installation directory. To do that, run the following:

                        sudo cp reicast.elf /opt/retropie/emulators/reicast/bin/reicast_49046ae
                        

                        At this point, you'll have 2 copies of the reicast binary in /opt/retropie/emulators/reicast/bin/: the new one you just copied over, and the one that retropie_setup.sh installed for you (which is just named 'reicast').

                        If you can get to that point, then run..

                        cat /opt/retropie/emulators/reicast/bin/reicast.sh
                        
                        cat /opt/retropie/configs/dreamcast/emulators.cfg
                        

                        ..and copy/paste the resulting output from each cat command. Then I can send you the remaining steps.

                        Edited: Just needed to correct the path to reicast.sh shown above

                        T 2 Replies Last reply Reply Quote 0
                        • T
                          tackett1980 @rejesterd
                          last edited by

                          @rejesterd

                          I will do this when I get home and post it. Thanks!

                          1 Reply Last reply Reply Quote 0
                          • T
                            tackett1980 @rejesterd
                            last edited by tackett1980

                            @rejesterd

                            Ok sir I made it up to the very end where you are asking me to run these two lines.

                            It says not such file or directory, however.

                            My reicast.sh is not in the reicast root directory, it is in reicast/bin/reicast.sh

                            Ok I ran the cat on it from the bin directory, but the output is enormous and I’m not sure how to get it from the pi to here on the forums unless I take a picture of it or something.

                            edit:
                            Ok I think I'm following what your doing here. I had to google what the cat command did but here it is.

                            reicast.sh:

                            #!/usr/bin/env bash
                            
                            # This file is part of The RetroPie Project
                            #
                            # The RetroPie Project is the legal property of its developers, whose names are
                            # too numerous to list here. Please refer to the COPYRIGHT.md file distributed with this source.
                            #
                            # See the LICENSE.md file at the top-level directory of this distribution and
                            # at https://raw.githubusercontent.com/RetroPie/RetroPie-Setup/master/LICENSE.md
                            #
                            
                            AUDIO="$1"
                            ROM="$2"
                            XRES="$3"
                            YRES="$4"
                            rootdir="/opt/retropie"
                            configdir="$rootdir/configs"
                            biosdir="$HOME/RetroPie/BIOS/dc"
                            
                            source "$rootdir/lib/inifuncs.sh"
                            
                            function mapInput() {
                                local js_device
                                local js_device_num
                                local ev_device
                                local ev_devices
                                local ev_device_num
                                local device_counter
                                local conf="$configdir/dreamcast/emu.cfg"
                                local params=""
                            
                                # get a list of all present js device numbers and device names
                                # and device count
                                for js_device in /dev/input/js*; do
                                    js_device_num=${js_device/\/dev\/input\/js/}
                                    for ev_device in /dev/input/event*; do
                                        ev_device_num=${ev_device/\/dev\/input\/event/}
                                        if [[ -d "/sys/class/input/event${ev_device_num}/device/js${js_device_num}" ]]; then
                                            file[$ev_device_num]=$(grep --exclude=*.bak -rl -m 1 "$configdir/dreamcast/mappings/" -e "= $(</sys/class/input/event${ev_device_num}/device/name)" | tail -n 1)
                                            if [[ -f "${file[$ev_device_num]}" ]]; then
                                                #file[$ev_device_num]="${file[$ev_device_num]##*/}"
                                                ev_devices[$ev_device_num]=$(</sys/class/input/event${ev_device_num}/device/name)
                                                device_counter=$(($device_counter+1))
                                            fi
                                        fi
                                    done
                                done
                            
                                # emu.cfg: store up to four event devices and mapping files
                                if [[ "$device_counter" -gt "0" ]]; then
                                    # reicast supports max 4 event devices
                                    if [[ "$device_counter" -gt "4" ]]; then
                                        device_counter="4"
                                    fi
                                    local counter=0
                                    for ev_device_num in "${!ev_devices[@]}"; do
                                        if [[ "$counter" -lt "$device_counter" ]]; then
                                            counter=$(($counter+1))
                                            params+="-config input:evdev_device_id_$counter=$ev_device_num "
                                            params+="-config input:evdev_mapping_$counter=${file[$ev_device_num]} "
                                        fi
                                    done
                                    while [[ "$counter" -lt "4" ]]; do
                                        counter=$(($counter+1))
                                        params+="-config input:evdev_device_id_$counter=-1 "
                                        params+="-config input:evdev_mapping_$counter=-1 "
                                    done
                                else
                                    # fallback to keyboard setup
                                    params+="-config input:evdev_device_id_1=0 "
                                    device_counter=1
                                fi
                                params+="-config input:joystick_device_id=-1 "
                                params+="-config players:nb=$device_counter "
                                echo "$params"
                            }
                            
                            if [[ ! -f "$biosdir/dc_boot.bin" ]]; then
                                dialog --no-cancel --pause "You need to copy the Dreamcast BIOS files (dc_boot.bin and dc_flash.bin) to the folder $biosdir to boot the Dreamcast emulator." 22 76 15
                                exit 1
                            fi
                            
                            params=(-config config:homedir=$HOME -config x11:fullscreen=1)
                            [[ -n "$XRES" ]] && params+=(-config x11:width=$XRES -config x11:height=$YRES)
                            getAutoConf reicast_input && params+=($(mapInput))
                            [[ -n "$AUDIO" ]] && params+=(-config audio:backend=$AUDIO -config audio:disable=0)
                            [[ -n "$ROM" ]] && params+=(-config config:image="$ROM")
                            if [[ "$AUDIO" == "oss" ]]; then
                                aoss "$rootdir/emulators/reicast/bin/reicast" "${params[@]}"
                            else
                                "$rootdir/emulators/reicast/bin/reicast" "${params[@]}"
                            fi
                            
                            

                            emulators.cfg:

                            reicast-audio-omx = "/opt/retropie/emulators/reicast/bin/reicast.sh omx %ROM%"
                            reicast-audio-oss = "/opt/retropie/emulators/reicast/bin/reicast.sh oss %ROM%"
                            default = "reicast-audio-omx"
                            
                            
                            R 1 Reply Last reply Reply Quote 0
                            • R
                              rejesterd @tackett1980
                              last edited by

                              @tackett1980 Sorry about that.. yes, the reicast.sh in the reicast bin folder is what we want. To complete your journey toward the dark side, do the following:

                              cd ~/
                              
                              sed 's/\/bin\/reicast\"/\/bin\/reicast_49046ae\"/g' /opt/retropie/emulators/reicast/bin/reicast.sh > ~/reicast_49046ae.sh
                              
                              chmod +x reicast_49046ae.sh
                              
                              sudo cp reicast_49046ae.sh /opt/retropie/emulators/reicast/bin/
                              
                              sudo cp /opt/retropie/configs/dreamcast/emulators.cfg ~/emulators.cfg.old
                              
                              sed '/reicast/ i reicast-for-mvc2 = "/opt/retropie/emulators/reicast/bin/reicast.sh omx %ROM%"' emulators.cfg.old > emulators.cfg
                              
                              sudo cp emulators.cfg /opt/retropie/configs/dreamcast/
                              

                              That's it. So now launch mvc2, and press a button on your controller as it's launching. This will take you to the menu where you can select a specific emulator for this ROM. Select 'reicast-for-mvc2'.

                              Also, note that if you install/update any dreamcast emulators via retropie_setup going forward, these custom settings will be overwritten. So maybe keep some copies of reicast_49046ae.sh and emulators.cfg in your home directory.

                              T 1 Reply Last reply Reply Quote 0
                              • T
                                tackett1980 @rejesterd
                                last edited by

                                @rejesterd

                                Alright friend. I thank you for all this hard work with me.

                                I did this, and it does come up in the select emulators, but it won’t boot. Just crashes back to the emulation station rom select screen.

                                I probably screwed something up somewhere

                                1 Reply Last reply Reply Quote 0
                                • R
                                  rejesterd
                                  last edited by

                                  hm.

                                  cat /dev/shm/runcommand.log
                                  

                                  Take a look at the log. Then launch the game with your default reicast emulator (reicast-audio-omx, and we can compare the logs.

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    tackett1980 @rejesterd
                                    last edited by

                                    @rejesterd

                                    OK,

                                    here is the runcommand with the default reicast.

                                    Parameters: 
                                    Executing: /opt/retropie/emulators/reicast/bin/reicast.sh oss "/home/pi/RetroPie/roms/dreamcast/Marvel vs. Capcom 2 (USA).gdi"
                                    glGetError 0x500
                                    Config dir is: /home/pi/.reicast/
                                    Data dir is:   /home/pi/.reicast/
                                    Personality: 00C00000
                                    Updated personality: 00800000
                                    found libbcm_host
                                    rpi2: bcm_init
                                    ARM VFP-Run Fast (NFP) enabled !
                                    Linux paging: 4096 00001000 00000FFF
                                    Info: nvmem is enabled, with addr space of size 512MB
                                    Info: p_sh4rcb: 0x4f9f0000 virt_ram_base: 0x53af0000
                                    Virtual cfg config:homedir=/home/pi
                                    Virtual cfg x11:fullscreen=1
                                    Virtual cfg input:evdev_device_id_1=0
                                    Virtual cfg input:evdev_mapping_1=/opt/retropie/configs/dreamcast/mappings/controller_DragonRiseInc.GenericUSBJoystick.cfg
                                    Virtual cfg input:evdev_device_id_2=1
                                    Virtual cfg input:evdev_mapping_2=/opt/retropie/configs/dreamcast/mappings/controller_DragonRiseInc.GenericUSBJoystick.cfg
                                    Virtual cfg input:evdev_device_id_3=-1
                                    Virtual cfg input:evdev_mapping_3=-1
                                    Virtual cfg input:evdev_device_id_4=-1
                                    Virtual cfg input:evdev_mapping_4=-1
                                    Virtual cfg input:joystick_device_id=-1
                                    Virtual cfg players:nb=2
                                    Virtual cfg audio:backend=oss
                                    Virtual cfg audio:disable=0
                                    Virtual cfg config:image=/home/pi/RetroPie/roms/dreamcast/Marvel vs. Capcom 2 (USA).gdi
                                    
                                    evdev: Opened device 'DragonRise Inc.   Generic   USB  Joystick  ' using custom mapping 'DragonRise Inc.   Generic   USB  Joystick   mapping'
                                    evdev: Opened device 'DragonRise Inc.   Generic   USB  Joystick  ' using custom mapping 'DragonRise Inc.   Generic   USB  Joystick   mapping'
                                    EGL config: 0x1, 0x1, 0x1 640x480
                                    OpenGL version: OpenGL ES 2.0
                                    Packed depth/stencil not supported: no modifier volumes when rendering to a texture
                                    Screen DPI is 96, size 640 x 480. Scaling by 1.00
                                    Loaded /home/pi/.reicast/data/dc_boot.bin as bootrom
                                    
                                    Loaded /home/pi/.reicast/data/dc_flash.bin as nvram
                                    
                                    chd: chd_open failed for file /home/pi/RetroPie/roms/dreamcast/Marvel vs. Capcom 2 (USA).gdi: 5
                                    
                                    GDI : 3 tracks
                                    file[1] "Marvel vs. Capcom 2 (USA) (Track 1).bin": FAD:0, CTRL:4, SSIZE:2352, OFFSET:0
                                    file[2] "Marvel vs. Capcom 2 (USA) (Track 2).bin": FAD:300, CTRL:0, SSIZE:2352, OFFSET:0
                                    file[3] "Marvel vs. Capcom 2 (USA) (Track 3).bin": FAD:45000, CTRL:4, SSIZE:2352, OFFSET:0
                                    gdrom: Opened image "/home/pi/RetroPie/roms/dreamcast/Marvel vs. Capcom 2 (USA).gdi"
                                    
                                    	 ARM7_TCB addr: 0x4b000 | from: 0x4ad3c | addr here: 0x4a620
                                    Game ID is [T1212N]
                                    recSh4 Init
                                    @@	ngen_ResetBlocks()
                                    Initializing the ARM32 dynarec
                                    readm helpers: up to 00271250
                                    @@	ngen_ResetBlocks()
                                    Using Recompiler
                                    Sh4 Reset
                                    Initializing audio backend "oss" (Open Sound System)...
                                    sound enabled, dsp opened for write
                                    set Frequency to 44100, return 0 (rate=44100)
                                    set dsp to stereo (2 => 0)
                                    set dsp to 16bits signed audio (16/16 => 0)
                                    Using Recompiler
                                    cntx // fpcb offset: -68157440 // pc offset: -184 // pc A0000000
                                    @@	ngen_ResetBlocks()
                                    recSh4:Dynarec Cache clear at 8C0000DE
                                    Invalid GD-DMA start, SB_GDEN=0.Ingoring it.
                                    MODEM Reset
                                    VREG = 00 ARMRST 00
                                    VREG = 00 ARMRST 01
                                    VREG = 00 ARMRST 00
                                    Invalid GD-DMA start, SB_GDEN=0.Ingoring it.
                                    VREG = 00 ARMRST 00
                                    VREG = 00 ARMRST 01
                                    VREG = 00 ARMRST 01
                                    VREG = 00 ARMRST 00
                                    Status: reicast git/n - 11.71 - 85.37 - V: 51.18 (3.32, VGA480p59.94) R: 4.47+10.93 VTX: 0.00 , MIPS: 0.00
                                    Status: reicast git/n - 4.99 - 200.03 - V: 119.90 (1.00, VGA480p59.94) R: 59.95+59.95 VTX: 0.00 , MIPS: 0.00
                                    Status: reicast git/n - 4.63 - 215.79 - V: 129.35 (1.09, VGA480p59.94) R: 59.93+58.43 VTX: 0.00 , MIPS: 0.00
                                    @@	ngen_ResetBlocks()
                                    recSh4:Dynarec Cache clear at AC0082FE
                                    VREG = 00 ARMRST 00
                                    @@	ngen_ResetBlocks()
                                    recSh4:Dynarec Cache clear at AC00FFFE
                                    VREG = 00 ARMRST 01
                                    VREG = 00 ARMRST 01
                                    VREG = 00 ARMRST 00
                                    Status: reicast git/n - 4.58 - 218.14 - V: 130.76 (6.71, VGA480p59.94) R: 14.47+4.99 VTX: 0.00 , MIPS: 0.00
                                    Status: reicast git/n - 8.19 - 122.01 - V: 73.14 (1.54, VGA480p59.94) R: 44.28+2.98 VTX: 0.00 , MIPS: 0.00
                                    Status: reicast git/n - 8.50 - 117.54 - V: 70.46 (1.52, VGA480p59.94) R: 46.14+0.00 VTX: 0.00 , MIPS: 0.00
                                    Status: reicast git/n - 10.32 - 96.86 - V: 58.06 (1.00, VGA480p59.94) R: 58.06+0.00 VTX: 0.00 , MIPS: 0.00
                                    Status: reicast git/n - 10.24 - 97.59 - V: 58.50 (1.00, VGA480p59.94) R: 58.00+0.49 VTX: 0.00 , MIPS: 0.00
                                    Status: reicast git/n - 10.06 - 99.31 - V: 59.53 (1.00, VGA480p59.94) R: 59.03/opt/retropie/emulators/reicast/bin/reicast.sh: line 92:  1832 Trace/breakpoint trap   aoss "$rootdir/emulators/reicast/bin/reicast" "${params[@]}"
                                    
                                    

                                    Here is the crashy one we just built:

                                    Parameters: 
                                    Executing: 
                                    
                                    

                                    actually its blank, geez I screwed something up.

                                    R 1 Reply Last reply Reply Quote 0
                                    • R
                                      rejesterd @tackett1980
                                      last edited by

                                      @tackett1980 - Probably worth taking a look at the modified files..

                                      cat /opt/retropie/emulators/reicast/bin/reicast_49046ae.sh
                                      
                                      cat /opt/retropie/configs/dreamcast/emulators.cfg
                                      

                                      ..just to make sure they look right. Also..

                                      ls -al /opt/retropie/emulators/reicast/bin/
                                      

                                      ..would confirm that the new binary is there, and it's not 0 bytes in size.

                                      T 1 Reply Last reply Reply Quote 0
                                      • T
                                        tackett1980 @rejesterd
                                        last edited by tackett1980

                                        @rejesterd said in Dreamcast mvc2 crashing at stage 2:

                                        @tackett1980 - Probably worth taking a look at the modified files..

                                        cat /opt/retropie/emulators/reicast/bin/reicast_49046ae.sh
                                        
                                        cat /opt/retropie/configs/dreamcast/emulators.cfg
                                        

                                        ..just to make sure they look right. Also..

                                        ls -al /opt/retropie/emulators/reicast/bin/
                                        

                                        ..would confirm that the new binary is there, and it's not 0 bytes in size.

                                        Ok this is the issue, the reicast_49046ae.sh is 0 bytes.

                                        LOL what did i do wrong?

                                        1 Reply Last reply Reply Quote 0
                                        • R
                                          rejesterd
                                          last edited by

                                          Maybe the reicast.elf wasn't built..

                                          ls -al ~/reicast-emulator/reicast/linux/
                                          

                                          If you don't see it there (or it's also 0 bytes in size), then try the build again (i.e. the steps up to, and including, 'make -j4'). When it finishes, scroll up in the terminal window and look for ERROR or WARN messages.

                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            tackett1980 @rejesterd
                                            last edited by

                                            @rejesterd said in Dreamcast mvc2 crashing at stage 2:

                                            Maybe the reicast.elf wasn't built..

                                            ls -al ~/reicast-emulator/reicast/linux/
                                            

                                            If you don't see it there (or it's also 0 bytes in size), then try the build again (i.e. the steps up to, and including, 'make -j4'). When it finishes, scroll up in the terminal window and look for ERROR or WARN messages.

                                            ok I will run it again. The elf file is indeed there and it is about 50mb.

                                            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.