Dreamcast - Reicast - Time and Date
-
@tipoto No problems. I'm not 100% sure how to invoke the bios without starting a game so I've set out below both my attract mode and the emulator commands and was just wondering whether you might be able to suggest changes that would invoke the bios (although I know you don't have retropie).
I'll try to send you the
runcommand-onstart.sh
in my next post. This is now quite a long file, 99% of which you can ignore, but it might be too long to send in a post. It's only in the very last part of that file that there is reference now to the reicast case statement.Attract mode file:
# Generated by Attract-Mode v2.2.1 # executable /opt/retropie/supplementary/runcommand/runcommand.sh args 0 _SYS_ dreamcast "[romfilename]" rompath /home/pi/RetroPie/roms/dreamcast romext .cdi;.gdi;.CDI;.GDI system Sega Dreamcast info_source thegamesdb.net artwork flyer /home/pi/RetroPie/roms/dreamcast/boxart artwork marquee /home/pi/RetroPie/roms/dreamcast/marquee artwork snap /home/pi/RetroPie/roms/dreamcast/snap artwork wheel /home/pi/RetroPie/roms/dreamcast/wheel
Emulators.cfg:
reicast-audio-omx = "CON:/opt/retropie/emulators/reicast/bin/reicast.sh omx %ROM%" default = "reicast-audio-oss" reicast-audio-oss = "CON:/opt/retropie/emulators/reicast/bin/reicast.sh oss %ROM%"
A copy of 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" rootdir="/opt/retropie" configdir="$rootdir/configs" 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 "$configdir/dreamcast/mappings/" -e "= $(</sys/class/input/event${ev_device_num}/device/name)") 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 "$HOME/RetroPie/BIOS/dc_boot.bin" ]]; then dialog --msgbox "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 exit 1 fi params=(-config config:homedir=$HOME -config x11:fullscreen=1) 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[@]}" >/dev/null else "$rootdir/emulators/reicast/bin/reicast" "${params[@]}" >/dev/null fi
-
@tipoto I've taken out quite a bit of my runcommand-onstart.sh to make it fit, but all relevant stuff is in there:
#!/bin/sh ### Uncomment one or all of the following if you need to find some information about the emulator or roms ### Name of the emulator #echo $1 >> /dev/shm/runcommand.log ### Name of the software used for running the emulation #echo $2 >> /dev/shm/runcommand.log ### Name of the rom #echo $3 >> /dev/shm/runcommand.log ### Executed command line #echo $4 >> /dev/shm/runcommand.log ### Code begins ### Game/ROM full path rom="${3##*/}" ### APPLE 2 - LINAPPLE - This is not a libretro core. In the linapple.conf appearing in the /opt/retropie/configs/apple2/ and in the /opt/retropie/emulators/linapple/ folders, keyboard emulation (keyboard centered) has been chosen. The keyboard is hardcoded to the number pad, so the direction and fire button keys are all linked to the Number Pad. Choose 1 joystick only (Joystick 0 = Player 1) as the second fire button on Joystick 0 won't work for some reason if Joystick 1 (Player 2) is selected. (Joystick 1 should have a "0" next to it). Exit is F10 and help is F1. Player1_appleII="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap x=void,y=void,lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \ --device-name "Player_1" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --ui-axismap X1=KEY_KP4:KEY_KP6,Y1=KEY_KP8:KEY_KP2 \ --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_BASE3=back,BTN_BASE6=start \ --ui-buttonmap a=KEY_KP0,b=KEY_KPDOT \ --ui-buttonmap back=KEY_UNKNOWN,start=KEY_UNKNOWN,start+back=KEY_F1,back+start=KEY_F10" ### LASERDISC - DAPHNE - DRAGON's LAIR. This is not a libretro core. Player1_daphne="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap y=void,lb=void,rb=void,tl=void,tr=void,guide=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \ --device-name "Player_1" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --ui-axismap X1=KEY_LEFT:KEY_RIGHT,Y1=KEY_UP:KEY_DOWN \ --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_BASE3=back,BTN_BASE6=start \ --ui-buttonmap a=KEY_SPACE,b=KEY_LEFTALT,x=KEY_LEFTSHIFT,back=KEY_UNKNOWN,start=KEY_UNKNOWN,lt=KEY_5,rt=KEY_1 \ --ui-buttonmap back+start=KEY_ESC,start+back=KEY_P" ### ARCADE - LR-FBALPHA - USES RETROARCH KEYS - The mappings below enable the joysticks to operate either in 4-Way or in 8-Way mode depending on the game. This is a libretro core. ### CORE INPUT REMAPPING - in a game (eg Bubble Bobble), hold "space" and press "F1" to enter lr-fbalpha's Retroarch menu. Note: I've set up my Player 1 joystick in Retroarch's general menu so that the button formation is A, B, X and Y (most like the XBox 360 Controller formation). However, Retroarch and lr-fbalpha mimic the SNES Controller. With the SNES Controller, Button Y is the fire button and Button B is the jump button. So that the first button (Button A) on my DragonRise controller is the "fire" button, enter core input remapping, quick menu, controls and change the "fire" button from Y to A for both Players 1 and 2. Remember to "Save Core Remap". This will mean that the "fire" button (A) and the "jump" button (B) are now next to each other - no stretching of fingers required. (Also, now there is no need for a separate rom config file in roms folder). ### Player1_4Way_FBA and Player2_4Way_FBA map Joysticks 1 and 2 with four way restriction for use with libretro emulators other than lr-mame2003. The keyboard mappings below are the same keys that are mapped for Users 1 and 2 in Retroarch. ### For Player 1, the Left Trigger button (3rd row, 1st small red button, on Arcade Table) will now start Player 1 and the Right Trigger (3rd row, 2nd small red button) will now start Player 2; holding down the Select button and pressing the Start button will exit the emulator. For Player 2, Select and Start do nothing. For Player 3, Select is Coin 1 and Start will start Player 3. Hold down Select and press Start will exit. For Player 4, Select is Coin 2 and Start will start Player 4 and Player 3. Holding down both will exit the emulator. Player1_4Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap tl=void,tr=void,guide=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \ --device-name "Player_1" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --four-way-restrictor \ --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_THUMB=y,BTN_TOP2=lb,BTN_TOP=rb,BTN_BASE3=back,BTN_BASE6=start,BTN_BASE2=lt,BTN_BASE5=rt \ --ui-axismap X1=KEY_LEFT:KEY_RIGHT,Y1=KEY_UP:KEY_DOWN \ --ui-buttonmap a=KEY_X,b=KEY_Z,x=KEY_S,y=KEY_A,lb=KEY_Q,rb=KEY_W,back=KEY_UNKNOWN,start=KEY_UNKNOWN,back+start=KEY_SPACE+KEY_ESC,lt=KEY_RIGHTSHIFT+KEY_ENTER,rt=KEY_6+KEY_2" Player2_4Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap back=void,start=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \ --device-name "Player_2" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --four-way-restrictor \ --evdev-keymap BTN_THUMB=a,BTN_TOP=b,BTN_PINKIE=x,BTN_TRIGGER=y,BTN_THUMB2=lb,BTN_TOP2=rb \ --ui-axismap X1=KEY_D:KEY_G,Y1=KEY_R:KEY_F \ --ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,lb=KEY_V,rb=KEY_B" ### Player3_4Way_FBA and Player4_4Way_FBA map Joysticks 3 and 4 with four way restriction for use with libretro emulators other than lr-mame2003. The keyboard mappings below are the same keys that are mapped for Users 1 and 2 in Retroarch (with axes appropriately altered). Player3_4Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick \ --device-name "Player_3" \ --evdev-absmap ABS_X=x1,ABS_Y=y1 \ --four-way-restrictor \ --evdev-keymap BTN_TRIGGER=y,BTN_THUMB=a,BTN_THUMB2=back,BTN_PINKIE=x,BTN_TOP=b,BTN_TOP2=start \ --ui-axismap X1=KEY_DOWN:KEY_UP,Y1=KEY_RIGHT:KEY_LEFT \ --ui-buttonmap a=KEY_X,b=KEY_Z,x=KEY_S,y=KEY_A,back=KEY_RIGHTSHIFT,start=KEY_ENTER,back+start=KEY_SPACE+KEY_ESC" Player4_4Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick \ --device-name "Player_4" \ --evdev-absmap ABS_X=x1,ABS_Y=y1 \ --four-way-restrictor \ --evdev-keymap BTN_THUMB=a,BTN_TOP=b,BTN_PINKIE=x,BTN_TRIGGER=y,BTN_BASE=lb,BTN_THUMB2=back,BTN_TOP2=start \ --ui-axismap X1=KEY_F:KEY_R,Y1=KEY_G:KEY_D \ --ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,lb=KEY_UNKNOWN,back=KEY_6,start=KEY_2,back+start=KEY_SPACE+KEY_ESC" ### Player1_8Way_FBA and Player2_8Way_FBA map Joysticks 1 and 2 with no restriction for use with libretro emulators other than lr-mame2003. The keyboard mappings below are the same keys that are mapped for Users 1 and 2 in Retroarch. Player1_8Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap tl=void,tr=void,guide=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \ --device-name "Player_1" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_THUMB=y,BTN_TOP2=lb,BTN_TOP=rb,BTN_BASE3=back,BTN_BASE6=start,BTN_BASE2=lt,BTN_BASE5=rt \ --ui-axismap X1=KEY_LEFT:KEY_RIGHT,Y1=KEY_UP:KEY_DOWN \ --ui-buttonmap a=KEY_X,b=KEY_Z,x=KEY_S,y=KEY_A,lb=KEY_Q,rb=KEY_W,back=KEY_UNKNOWN,start=KEY_UNKNOWN,back+start=KEY_SPACE+KEY_ESC,lt=KEY_RIGHTSHIFT+KEY_ENTER,rt=KEY_6+KEY_2" Player2_8Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap back=void,start=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.1:1.0-event-joystick \ --device-name "Player_2" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --evdev-keymap BTN_THUMB=a,BTN_TOP=b,BTN_PINKIE=x,BTN_TRIGGER=y,BTN_THUMB2=back,BTN_TOP2=start \ --ui-axismap X1=KEY_D:KEY_G,Y1=KEY_R:KEY_F \ --ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,lb=KEY_V,rb=KEY_B" ### Player3_8Way_FBA and Player4_8Way_FBA map Joysticks 3 and 4 with no restriction for use with libretro emulators other than lr-mame2003. The keyboard mappings below are the same keys that are mapped for Users 1 and 2 in Retroarch (with axes appropriately altered). Player3_8Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.2:1.0-event-joystick \ --device-name "Player_3" \ --evdev-absmap ABS_X=x1,ABS_Y=y1 \ --evdev-keymap BTN_THUMB=a,BTN_TOP=b,BTN_PINKIE=x,BTN_TRIGGER=y,BTN_THUMB2=back,BTN_TOP2=start \ --ui-axismap X1=KEY_DOWN:KEY_UP,Y1=KEY_RIGHT:KEY_LEFT \ --ui-buttonmap a=KEY_X,b=KEY_Z,x=KEY_S,y=KEY_A,back=KEY_RIGHTSHIFT,start=KEY_ENTER,back+start=KEY_SPACE+KEY_ESC" Player4_8Way_FBA="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.4:1.0-event-joystick \ --device-name "Player_4" \ --evdev-absmap ABS_X=x1,ABS_Y=y1 \ --evdev-keymap BTN_THUMB=a,BTN_TOP=b,BTN_PINKIE=x,BTN_TRIGGER=y,BTN_BASE=lb,BTN_THUMB2=back,BTN_TOP2=start \ --ui-axismap X1=KEY_F:KEY_R,Y1=KEY_G:KEY_D \ --ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,back=KEY_6,lb=KEY_UNKNOWN,start=KEY_2,back+start=KEY_SPACE+KEY_ESC" ### GAME BOY ADVANCE - Gameboy Advance Emulator GPSP defaults to Player 2's joystick. This is not a libretro core. Player1_gpsp enables Player 1's joystick to operate simultaneously with Player 2's joystick, as Player 1's joystick is mapped to the default keys. GPSP keys replicate the Gameboy Advance, so the default keys are D-Pad = up/down/left/right; A Button = z; B Button = x; Left Shoulder Button (on the GBA) = a; Right Shoulder Button (on the GBA) = s; Start Button (on the GBA) = enter; Select Button (on the GBA) = backspace. The enter key is the pause button. As it is easy to accidentally press it, the pause key is now mapped to start+back (the 2 left red buttons on 3rd row ie hold the start button and press back). The escape key is exit which is mapped to back+start as per normal (ie hold back and press start). Player1_gpsp="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap lb=void,rb=void,tl=void,tr=void,guide=void,lt=void,rt=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \ --device-name "Player_1" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_THUMB=y,BTN_BASE3=back,BTN_BASE6=start \ --ui-axismap X1=KEY_LEFT:KEY_RIGHT,Y1=KEY_UP:KEY_DOWN \ --ui-buttonmap a=KEY_Z,b=KEY_X,x=KEY_A,y=KEY_S,back=KEY_BACKSPACE,start=KEY_UNKNOWN,start+back=KEY_ENTER,back+start=KEY_ESC" ### NINTENDO 64 - NOT REQUIRED BECAUSE MAPPED PROPERLY VIA MUPEN64PLUS'S OWN INTERNAL CONTROLS - N64 emulator = mupen64plus-GLideN64-highres. This emulator maps the "escape" key for exiting the emulator with the following command in mupen64plus.cfg: ### # SDL keysym for stopping the emulator ### Kbd Mapping Stop = 27 ### 27 is the ASCII code for the Escape key. See www.asciitable.com . So with this emulator the escape key is mapped to mupen64plus-GLideN64-highres's keyboard controls and then is mapped to select+start in xboxdrv. ### The other keys are mapped in the InputAutoCfg.ini and are as follows: ### DPad R = key(100) - "d" key ### DPad L = key(97) - "a" key ### DPad D = key(115) - "s" key ### DPad U = key(119) - "w" key ### Start = key(13) - "enter" key ### Z Trig = key(122) - "z" key ### B Button = key(306) - " ### A Button = key(304) ### C Button R = key(108) ### C Button L = key(106) ### C Button D = key(107) ### C Button U = key(105) ### R Trig = key(99) ### L Trig = key(120) ### Mempak switch = key(44) ### Rumblepak switch = key(46) Player1_n64="sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv > /dev/null 2>&1 \ --silent \ --detach-kernel-driver \ --deadzone=4000 \ --deadzone-trigger 15% \ --force-feedback \ --mimic-xpad \ --trigger-as-button \ --ui-buttonmap tl=void,tr=void,guide=void \ --evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \ --device-name "Player_1" \ --evdev-absmap ABS_X=y1,ABS_Y=x1 \ --evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_THUMB=y,BTN_TOP2=lb,BTN_TOP=rb,BTN_BASE3=back,BTN_BASE6=start,BTN_BASE2=lt,BTN_BASE5=rt \ --ui-buttonmap start=KEY_ENTER \ --ui-buttonmap back+start=KEY_ESC" ### DREAMCAST - REICAST - Time and date correction ### dreamcast_time_fn () { ### DREAMCAST - REICAST - Time and date correction ### Update the time/date in emu.cfg ### 1) Get how many hours of difference between local time and Greenwich time (GTM) ### 2) Calculate the current time in seconds (ex: 2125613317) with an offset of +20 years ### 3) Replace Dreamcast.RTC value in emu.cfg with the result ### time_offset=$(date +'%:::z') ### newtime=$(date -d "$(date -d "+20 years $time_offset hours" +%D) $(date -d "+20 years $time_offset hours" +%T)" +"%s") ### sudo perl -i -p -e "s|Dreamcast.RTC = .*|Dreamcast.RTC = "$newtime"|" /opt/retropie/configs/dreamcast/emu.cfg ### } ### Autofire for Defender - fire button (X) (3rd button, 1st row), hold down and fires multiple times ###sudo /opt/retropie/supplementary/xboxdrv/bin/xboxdrv \ ###--silent \ ###--detach-kernel-driver \ ###--deadzone=4000 \ ###--deadzone-trigger 15% \ ###--force-feedback \ ###--mimic-xpad \ ###--trigger-as-button \ ###--ui-buttonmap tl=void,tr=void,guide=void \ ###--evdev /dev/input/by-path/platform-3f980000.usb-usb-0:1.3.3:1.0-event-joystick \ ###--device-name "Player_1" \ ###--evdev-absmap ABS_X=y1,ABS_Y=x1 \ ###--evdev-keymap BTN_THUMB2=a,BTN_PINKIE=b,BTN_TRIGGER=x,BTN_THUMB=y,BTN_TOP2=lb,BTN_TOP=rb,BTN_BASE3=back,BTN_BASE6=start,BTN_BASE2=lt,BTN_BASE5=rt \ ###--ui-axismap X1=KEY_LEFT:KEY_RIGHT,Y1=KEY_UP:KEY_DOWN \ ###--ui-buttonmap a=KEY_LEFTCTRL,b=KEY_LEFTALT,x=KEY_SPACE,y=KEY_LEFTSHIFT,lb=KEY_C,rb=KEY_V,back=KEY_5+KEY_1,start=KEY_6+KEY_2,lt=KEY_UNKNOWN,rt=KEY_UNKNOWN \ ###--buttonmap x^autofire:100=x \ ###--ui-buttonmap back+start=macro:/opt/retropie/configs/all/advmame_exit.macro \ ###& ### Arcade Games that use 4 way restricted joysticks - 208 of 208 identified games plus Arkanoid and Tempest derivatives RestrictedArcadeGames=""alibaba.zip"|"amidar.zip"|"armwrest.zip"|"astinvad.zip"|"atetris.zip"|"anteater.zip"|"armorcar.zip"|"astrob.zip"|"astrof.zip"|"bagman.zip"|"ballbomb.zip"|"barrier.zip"|"blkhole.zip"|"blasto.zip"|"blockade.zip"|"btime.zip"|"carjmbre.zip"|"carnival.zip"|"cavelon.zip"|"chameleo.zip"|"checkman.zip"|"chinhero.zip"|"circusc.zip"|"ckong.zip"|"commando.zip"|"congo.zip"|"dazzler.zip"|"devilfsh.zip"|"digdug.zip"|"digdug2.zip"|"digger.zip"|"disco.zip"|"dkong.zip"|"dkong3.zip"|"dkongjr.zip"|"docastle.zip"|"dommy.zip"|"dorodon.zip"|"frogger.zip"|"galaga.zip"|"galaxian.zip"|"galxwars.zip"|"guzzler.zip"|"invrvnge.zip"|"invinco.zip"|"jjack.zip"|"joust2.zip"|"jrpacman.zip"|"jumpcoas.zip"|"jungler.zip"|"kchamp.zip"|"kicker.zip"|"kingball.zip"|"ladybug.zip"|"lasso.zip"|"levers.zip"|"lnc.zip"|"locomotn.zip"|"logger.zip"|"lrescue.zip"|"lupin3.zip"|"mappy.zip"|"marvins.zip"|"mikie.zip"|"mmonkey.zip"|"monsterb.zip"|"moonal2.zip"|"moonqsr.zip"|"mrdo.zip"|"mrflea.zip"|"mrjong.zip"|"mrtnt.zip"|"mspacman.zip"|"mystston.zip"|"naughtyb.zip"|"netwars.zip"|"olibochu.zip"|"ozmawars.zip"|"pacnpal.zip"|"pacplus.zip"|"pengo.zip"|"perestro.zip"|"pickin.zip"|"pignewt.zip"|"pisces.zip"|"pleiads.zip"|"pooyan.zip"|"popflame.zip"|"puckman.zip"|"pacman.zip"|"pulsar.zip"|"qbert.zip"|"qbertqub.zip"|"qix.zip"|"radarscp.zip"|"retofinv.zip"|"rocnrope.zip"|"route16.zip"|"samurai.zip"|"tsamurai.zip"|"scregg.zip"|"sindbadm.zip"|"solarfox.zip"|"sonofphx.zip"|"invadpt2.zip"|"panic.zip"|"shollow.zip"|"spclaser.zip"|"sqbert.zip"|"streakng.zip"|"sbagman.zip"|"superpac.zip"|"superqix.zip"|"ssi.zip"|"swat.zip"|"tactcian.zip"|"tankbatt.zip"|"taxidrvr.zip"|"elecyoyo.zip"|"theend.zip"|"timelimt.zip"|"tomahawk.zip"|"todruaga.zip"|"tranqgun.zip"|"triplep.zip"|"tutankhm.zip"|"vanvan.zip"|"volfied.zip"|"vsgongf.zip"|"wiping.zip"|"warpwarp.zip"|"zigzag.zip"|"zzyzzyxx.zip"|"alphaho.zip"|"pacnchmp.zip"|"comotion.zip"|"copsnrob.zip"|"cosmicg.zip"|"cosmos.zip"|"crash.zip"|"crush.zip"|"redufo.zip"|"diamond.zip"|"dorunrun.zip"|"dominos.zip"|"drmicro.zip"|"drgnbstr.zip"|"dremshpr.zip"|"elvactr.zip"|"eyes.zip"|"firetrap.zip"|"40love.zip"|"galpanic.zip"|"gundealr.zip"|"hardhat.zip"|"headon.zip"|"headon2.zip"|"heiankyo.zip"|"hexa.zip"|"hustle.zip"|"intrepid.zip"|"ironhors.zip"|"karianx.zip"|"kungfum.zip"|"lvgirl94.zip"|"logicpro.zip"|"logicpr2.zip"|"msjiken.zip"|"kikcubic.zip"|"mineswpr.zip"|"mtrap.zip"|"dowild.zip"|"mrgoemon.zip"|"natodef.zip"|"rallyx.zip"|"nrallyx.zip"|"pepper2.zip"|"pettanp.zip"|"popeye.zip"|"punchout.zip"|"raiders5.zip"|"rampage.zip"|"reikaids.zip"|"robby.zip"|"rthunder.zip"|"sidetrac.zip"|"schaser.zip"|"spaceinv.zip"|"spacezap.zip"|"spectar.zip"|"springer.zip"|"stratvox.zip"|"sia2650.zip"|"spnchout.zip"|"tapper.zip"|"rbtapper.zip"|"targ.zip"|"telmahjn.zip"|"theglob.zip"|"thief.zip"|"timber.zip"|"toypop.zip"|"wwjgtin.zip"|"wndrmomo.zip"|"yamyam.zip"|"zerozone.zip"|"zookeep.zip"|"pairs.zip"|"higemaru.zip"|"elecyoy2.zip"|"arkangc.zip"|"arkanoid.zip"|"arkatayt.zip"|"arkatour.zip"|"arkbl2.zip"|"arkbl3.zip"|"arkbloc2.zip"|"arkblock.zip"|"arknid2j.zip"|"arknid2u.zip"|"arknoid2.zip"|"arknoidj.zip"|"arknoidu.zip"|"arknoiuo.zip"|"arkretrn.zip"|"tempest.zip"|"tempest1.zip"|"tempest2.zip"|"tempest3.zip"|"temptube.zip"" ### Kill xboxdrv xboxkill="sudo killall xboxdrv" ### SEE GAMES/ROMS UNDER ADVMAME - INSERTING THE ROMS INTO THEIR OWN CODE BLOCK DEFINITION DOES NOT WORK IN THIS CASE. 2 Player Co-operative or 2 Player Simultaneous Arcade games - for Advance Mame. These are games where 2 players are playing at the same time with different joysticks. With 2 Player Co-operative games, Player 1 uses Player 1's joystick and Player 2 uses Player 2's joystick. (Note: Smash TV and Robotron 2084 which use both joysticks to move and fire are included in the simultaneous games meaning only one player can play because both joysticks are in use.) ### For 2 player alternate games using Advance Mame (ie games where one person takes their turn and then the next player takes their turn), Player 1 and Player 2 use Player 1's joystick. Player 2 can't use a separate joystick. To avoid this "hot seating", these xboxdrv configurations allow 2 Player Co-operative games to continue to use 2 joysticks while for 2 Player alternate games which use hotseating normally, Player 1's and 2's joystick controls now mirror each other by using the same keys, so there is no need for "hotseating". ### Execute the driver with the configuration needed ### $1 is the name of the system emulation (eg mame-libretro), not the name of the emulator (eg not lr-mame2003), nor the name of the folder (eg not "arcade", not "mame-libretro", not "arcade-vertical" ### $1 - The system (eg: atari2600, nes, snes, megadrive, fba, etc). ### $2 - The emulator (eg: lr-stella, lr-fceumm, lr-picodrive, pifba, etc). ### $3 - The full path to the rom file. ### $4 - The full command line used to launch the emulator. ### This information can be obtained from /dev/shm/runcommand.info case $2 in advmame) case $rom in "aerofgt.zip"|"aerofgtb.zip"|"aerofgtc.zip"|"sonicwi2.zip"|"sonicwi3.zip"|"alien3.zip"|"avspu.zip"|"aliens.zip"|"alpham2.zip"|"altbeast.zip"|"altbeas2.zip"|"altbeas4.zip"|"altbeas5.zip"|"altbeaj1.zip"|"altbeaj.zip"|"altbeaj3.zip"|"androdun.zip"|"armwar.zip"|"baddudes.zip"|"batcir.zip"|"btoads.zip"|"bnzabros.zip"|"bublbobl.zip"|"bublbobr.zip"|"bublbob1.zip"|"bublbob2.zip"|"bubblebobbleultra.zip"|"bubblem.zip"|"bubsympe.zip"|"bubsymph.zip"|"bubsympu.zip"|"burnforc.zip"|"burnfrco.zip"|"burningf.zip"|"burningh.zip"|"dino.zip"|"dinoj.zip"|"dinou.zip"|"captaven.zip"|"captavna.zip"|"captavne.zip"|"captavnj.zip"|"captavnu.zip"|"captavuu.zip"|"captcomm.zip"|"captcomu.zip"|"captcomj.zip"|"cawing.zip"|"cawingj.zip"|"cawingr1.zip"|"cawingu.zip"|"edrandy.zip"|"edrandy1.zip"|"edrandyj.zip"|"ctribe.zip"|"ctribeb.zip"|"contra.zip"|"contrab.zip"|"contraj.zip"|"contrajb.zip"|"crimfght.zip"|"crimfgt2.zip"|"crimfgtj.zip"|"crsword.zip"|"darius.zip"|"darius2.zip"|"darius2d.zip"|"dariuse.zip"|"dariusg.zip"|"dariusgj.zip"|"dariusgu.zip"|"dariusgx.zip"|"dariusj.zip"|"dariuso.zip"|"diehard.zip"|"ddrgn2u.zip"|"ddrgnw1.zip"|"ddrago3b.zip"|"ddragon.zip"|"ddragon2.zip"|"ddragon3.zip"|"ddragonb.zip"|"ddragonu.zip"|"ddragonw.zip"|"ddsom.zip"|"ddsoma.zip"|"ddsomj.zip"|"ddsomjr1.zip"|"ddsomr1.zip"|"ddsomr2.zip"|"ddsomu.zip"|"ddsomur1.zip"|"ddtod.zip"|"ddtoda.zip"|"ddtodh.zip"|"ddtodj.zip"|"ddtodjr1.zip"|"ddtodr1.zip"|"ddtodu.zip"|"ddtodur1.zip"|"dynamcop.zip"|"dynwar.zip"|"dynwarj.zip"|"exedexes.zip"|"ffight.zip"|"ffightj.zip"|"ffightj1.zip"|"ffightu.zip"|"ffightua.zip"|"gdarius.zip"|"gdarius2.zip"|"gdariusb.zip"|"gground.zip"|"gaun2pg1.zip"|"gaun2pg2.zip"|"gaun2pr3.zip"|"gaun22p1.zip"|"gaun22pg.zip"|"gaunt2.zip"|"gaunt2g.zip"|"gaunt2p.zip"|"gaunt2pg.zip"|"gaunt2pj.zip"|"gaunt22p.zip"|"gauntdl.zip"|"gauntg.zip"|"gauntgr3.zip"|"gauntgr6.zip"|"gauntgr8.zip"|"gauntj.zip"|"gauntj12.zip"|"gauntr1.zip"|"gauntr2.zip"|"gauntr4.zip"|"gauntr5.zip"|"gauntr7.zip"|"gauntr9.zip"|"gpilots.zip"|"gokuparo.zip"|"goldnax1.zip"|"goldnax2.zip"|"goldnax3.zip"|"goldnaxe.zip"|"goldnaxj.zip"|"goldnaxu.zip"|"ga2.zip"|"ga2j.zip"|"ga2u.zip"|"mt_gaxe.zip"|"mt_gaxe2.zip"|"gwar.zip"|"gwara.zip"|"gwarb.zip"|"gwarj.zip"|"hbarrel.zip"|"hbarrelw.zip"|"iceclimb.zip"|"iceclmbj.zip"|"iceclmrj.zip"|"joust.zip"|"joustr.zip"|"joustwr.zip"|"knights.zip"|"knightsj.zip"|"knightsu.zip"|"lresort.zip"|"lwings.zip"|"lwings2.zip"|"lwingsjp.zip"|"lifefrce.zip"|"lifefrcj.zip"|"mario.zip"|"mariojp.zip"|"mslug.zip"|"mslug2.zip"|"mslug3.zip"|"mslug3b6.zip"|"mslug3n.zip"|"mslug4.zip"|"mslug5.zip"|"mslugx.zip"|"mwalk.zip"|"mwalkbl.zip"|"mwalkj.zip"|"mwalku.zip"|"nbbatman.zip"|"gaiden.zip"|"progear.zip"|"progeara.zip"|"progearj.zip"|"punisher.zip"|"punishrj.zip"|"punishru.zip"|"rampage.zip"|"rampage2.zip"|"rmpgwt.zip"|"rmpgwt11.zip"|"robocop2.zip"|"robocp2j.zip"|"robocp2u.zip"|"robotron.zip"|"robotryo.zip"|"rtypeleo.zip"|"rtypelej.zip"|"salamand.zip"|"salamanj.zip"|"salamndr2.zip"|"sengokh.zip"|"sengokmj.zip"|"sengoku.zip"|"sengoku2.zip"|"sengoku3.zip"|"sexyparo.zip"|"shocktro.zip"|"shocktr2.zip"|"sscope2.zip"|"simpsn2p.zip"|"skullfng.zip"|"skykid.zip"|"skykidd.zip"|"skykiddo.zip"|"skykiddx.zip"|"smashtv.zip"|"smashtv4.zip"|"smashtv5.zip"|"smashtv6.zip"|"spclorda.zip"|"spclordb.zip"|"spclordg.zip"|"spclords.zip"|"spidman.zip"|"spidmanu.zip"|"streetsm.zip"|"streets1.zip"|"streetsj.zip"|"streetsw.zip"|"ssriders.zip"|"scobra.zip"|"scobrab.zip"|"scobras.zip"|"scobrase.zip"|"tmnt.zip"|"tmnt2.zip"|"tmnt2a.zip"|"tmnt2pj.zip"|"tmnt2po.zip"|"tmnt22p.zip"|"tmntj.zip"|"tmntu.zip"|"tmntua.zip"|"timecrs2.zip"|"twinbee.zip"|"unsquad.zip"|"vendet2p.zip"|"viostorm.zip"|"viostrma.zip"|"viostrmj.zip"|"viostrmu.zip"|"vcop.zip"|"vcop2.zip"|"wof.zip"|"wofa.zip"|"wofj.zip"|"wofu.zip"|"wow.zip"|"xmen.zip"|"xenophob.zip"|"1943.zip"|"arabianm.zip"|"armora.zip"|"atarifb.zip"|"crimec.zip"|"cotton2.zip"|"deadconx.zip"|"dbreedm72.zip"|"ddonpach.zip"|"dondokod.zip"|"elvactr.zip"|"gigawing.zip"|"gunbird.zip"|"kchamp.zip"|"klax.zip"|"marble.zip"|"milliped.zip"|"narc.zip"|"ninjak.zip"|"penbros.zip"|"pbobblenzip"|"qix.zip"|"spacduel.zip"|"spacewar.zip"|"atetris.zip"|"atetrisa.zip"|"ctribe.zip"|"timesold.zip"|"timesold1.zip"|"twotiger.zip"|"victroad.zip"|"vindictr.zip"|"xybots.zip"|"logicpro.zip"|"pang.zip"|"pipedrmu.zip"|"hattrick.zip"|"mk.zip"|"umk3.zip"|"ssf2t.zip"|"sf2.zip"|"sf.zip"|"ssf2.zip"|"sfa3.zip"|"sf2ce.zip"|"vf.zip"|"vf2.zip"|"vf3.zip"|"kbash.zip"|"offroad.zip"|"rampart.zip"|"rampart2p.zip"|"ssprint.zip"|"neobombe.zip"|"simpsons2p.zip"|"simpsons.zip"|"snowbros.zip"|"warlords.zip"|"openice.zip"|"kizuna.zip"|"nbajamte.zip"|"nbajam.zip") # Configuration used only for these 2 Player Simultaneous (Co-Operative Play) ROMs $xboxkill joycommand="$Player1_AdvMame_Sim & $Player2_AdvMame_Sim &" eval $joycommand ;; *) # Configuration for every other ROM in respect of this emulator including 2 Player Alternate "hotseating" ROMS $xboxkill joycommand="$Player1_AdvMame_Alt & $Player2_AdvMame_Alt &" eval $joycommand ;; esac ;; lr-mame2003) case $rom in $RestrictedArcadeGames) # Configuration only for these ROMs. Players 1 and 3 mapped to the same keys; Players 2 and 4 mapped to the same keys; All joysticks work simultaneously in portrait and landscape modes. $xboxkill joycommand="$Player1_4Way_Mame2003 & $Player2_4Way_Mame2003 & $Player3_4Way_Mame2003 & $Player4_4Way_Mame2003 &" eval $joycommand ;; *) # Configuration for every other ROM. Players 1 and 3 mapped to the same keys; Players 2 and 4 mapped to the same keys; All joysticks work simultaneously in portrait and landscape modes. $xboxkill joycommand="$Player1_8Way_Mame2003 & $Player2_8Way_Mame2003 & $Player3_8Way_Mame2003 & $Player4_8Way_Mame2003 &" eval $joycommand ;; esac ;; amiberry-a1200) $xboxkill joycommand="$Player1_Amiga & $Player2_Amiga &" eval $joycommand ;; gpsp) $xboxkill joycommand="$Player1_gpsp &" eval $joycommand ;; reicast-audio-oss) time_offset=$(date +'%:::z') newtime=$(date -d "$(date -d "+20 years $time_offset hours" +%D) $(date -d "+20 years $time_offset hours" +%T)" +"%s") sudo perl -i -p -e "s|Dreamcast.RTC = .*|Dreamcast.RTC = "$newtime"|" /opt/retropie/configs/dreamcast/emu.cfg ;; linapple) $xboxkill joycommand="$Player1_appleII &" eval $joycommand ;; daphne) $xboxkill joycommand="$Player1_daphne &" eval $joycommand ;; vice-x64) $xboxkill joycommand="$Player1_c64 & $Player2_c64 &" eval $joycommand ;; atari800) $xboxkill joycommand="$Player1_atari800 & $Player2_atari800 &" eval $joycommand ;; hatari-compatible) $xboxkill joycommand="$Player1_atariST & $Player2_atariST &" eval $joycommand ;; lr-caprice32) $xboxkill joycommand="$Player1_Amstrad &" eval $joycommand ;; lr-fbalpha) case $rom in $RestrictedArcadeGames) # Configuration only for these ROMs. 4-way restricted. Players 1 and 3 mapped to the same keys; Players 2 and 4 mapped to the same keys; All joysticks work simultaneously in portrait and landscape modes. $xboxkill joycommand="$Player1_4Way_FBA & $Player2_4Way_FBA & $Player3_4Way_FBA & $Player4_4Way_FBA &" eval $joycommand ;; *) # Configuration for every other ROM. Players 1 and 3 mapped to the same keys; Players 2 and 4 mapped to the same keys; All joysticks work simultaneously in portrait and landscape modes. $xboxkill joycommand="$Player1_8Way_FBA & $Player2_8Way_FBA & $Player3_8Way_FBA & $Player4_8Way_FBA &" eval $joycommand ;; esac ;; esac
-
Ok, I finally decided to install an image with HyperPie on my old RPI2 that I wasn't using anymore.
It seems that reicast refreshes the time and date automatically on RetroPie, you don't need any extra code for that! So you can remove the script I sent you (even thought it was correct and at the right place), I need it on my XU4, but it's not necessary on the RPI.
Actually the solution for the bios was on the first link of your first post of this topic (which is on the Wiki as well):
https://retropie.org.uk/forum/topic/364/every-time-i-play-dreamcast-displays-the-setting-screen-time-date/51The last thing that you may want to do, is to create a fake game to have access to the reicast System Manager, in case you want to format or manage the space on your VMUs.
Here is what you have to do:- Create a fake game by typing this command on a terminal:
ln -sv fileThatDoesNotExist ~/RetroPie/roms/dreamcast/systemManager.cdi
- Edit the Dreamcast romlist file
/home/pi/.attract/romlists/Sega Dreamcast.txt
Add this line right after the first line:
systemManager;System Manager;Sega Dreamcast;...
You need to complete the line properly, replace "..." by the something that matches the structure that you have in this file.
You should be all set with that.
-
@tipoto Thanks. I'm just wondering about some of the comments at the bottom of that thread. Most of the people who posted were unable to update the time/date at all. I suppose, when creating the new bios, they might not have updated the bios to the current time/date (ie they may have made the same mistake I made), but it still makes me wonder whether we should still have the case statement. I suppose it does no harm leaving it in runcommand-onstart.sh in case it actually does do something.
I tried to add the fake file but have received the following message:
ln: failed to create symbolic link `/home/pi/RetroPie/roms/dreamcast/systemManager.cdi`: Operation not permitted
I copied and pasted your command so that shouldn't be a problem.
-
Just add
sudo
to the command:sudo ln -sv fileThatDoesNotExist ~/RetroPie/roms/dreamcast/systemManager.cdi
-
@tipoto Thanks. I should have thought of that and will do so once at home.
By the way, I'm not sure whether Retropie/Retroarch updates time automatically from the get go.
Just before I got the new bios to work, I did make one further change to things to be sure that Retroarch uses my current localised time. I followed @mediamogul's guide here and set up my local time:
https://retropie.org.uk/forum/topic/9575/how-to-set-time-in-retroarch/2
I just point this out if anyone else is viewing this thread.
-
@tipoto Hi tipoto. I have added sudo to the command, but I still get the same message each time. Not sure why.
-
It's weird! Try to change the permissions of the folder then try again:
sudo chmod -R 777 /home/pi/RetroPie/roms/dreamcast
-
@tipoto Yep, sure is. But in fact it has worked, despite the error. So thank you!
I've checked the time via System Manager and it remains up to date so far. I will be interested to see what happens if I leave it for a while like you did. Did you leave it about a month or so and not play any games?
-
Did this got implemented in any form in Retropie by now? Or do we still have to fix it manualy?
-
@Cederick said in Dreamcast - Reicast - Time and Date:
Did this got implemented in any form in Retropie by now? Or do we still have to fix it manualy?
My bios are unaltered and, as of an update 1 week ago, there is not a fix built in.
-
@hooperre I wonder why it takes so long for this fix to get implemented to be honest.
-
@Cederick It is a great pity. I've been hoping for a couple of years that it would be fixed. Several individuals have had a serious go at altering reicast's code but it seems no one has been successful, at least for the rpi.
-
But I saw some option to fix it on images with games on it but I don't want to pirate games just to have the option to fix it...
-
Here is an updated code for the time and date issue:
# We need to add 20 years to the current date (we add 631123200 seconds) # but since the limit is 2147483647 seconds (January 19th 2038), we need to loop when we reach this number (it becomes negative) newtime=$(date +%s); let "newtime = $newtime + 631123200"; let "time_offset = $newtime - 2147483647"; let "newtime = -2147483648 + $time_offset" sudo perl -i -p -e "s|Dreamcast.RTC = .*|Dreamcast.RTC = "$newtime"|" /home/odroid/.reicast/emu.cfg # Replace the Dreamcast.RTC value in emu.cfg
You need to change the path to the emu.cfg file in the code in order to adapt it to your system (I have an odroid XU4 and I'm not using retropie).
The code that I provided a year ago, doesn't work anymore because of "year 2038" issue, but this new code should work just fine.Edit: This script has to be executed every-time you launch a game, before reicast starts.
-
I know 2 ways to get around this issue :
- the first is to use a custom bios for dreamcast, i don't know if it's a legal ressource (it wasn't created by sega afaik), so i won't link it, however it shouldn't be hard to find it if you google "bootROM v1.032 Retail", that bios just won't ask, it's one of its features.
- the second one, which i only confirmed with lr-reicast, is to enable "boot to BIOS" (that's a core option in lr-reicast allowing direct access to bios), set time and date, disable "boot to BIOS" and quit. After that the emulator won't ask again.
-
My code is for the standalone version of reicast only. It has to be executed every-time a game is launched.
The time and date are asked when there is a too big difference between the date of your linux system and the date written in the emu.cfg file.
So basically my code update the time in the emu.cfg just before a game is launched. The little advantage of doing this, it's that the time and date in the emulator are correct while you're playing a game or when you launch the system manager. -
@tipoto said in Dreamcast - Reicast - Time and Date:
The little advantage of doing this, it's that the time and date in the emulator are correct while you're playing a game or when you launch the system manager.
That's also true with my 2 methods, as long as you set the time/date properly in system manager.
None of those tips to get the date updated might work on rpi tough, because rpi doesn't have rtc, so it's not keeping its time updated except if you sync it from internet.
I think the custom bios method is somehow easier, since you only need to replace the bios, no script editing. -
@barbudreadmon Hi. Thanks for your input on this. I tested
jc-bootROM-retail-v1.032.bin
on the rpi, but it doesn't work. Runcommand.log comes up with this:Parameters: Executing: /opt/retropie/emulators/reicast/bin/reicast.sh oss "/home/pi/RetroPie/roms/dreamcast/NBA Showtime.cdi" evdev: open: No such file or directory joystick open: No such file or directory /opt/retropie/emulators/reicast/bin/reicast.sh: line 88: 4512 Trace/breakpoint trap aoss "$rootdir/emulators/reicast/bin/reicast" "${params[@]}" > /dev/null
So unfortunately the easiest way doesn't seem to be operative on the rpi.
-
Yes, you are right, you need to have a constant connection to internet or to have an RTC battery.
From what I noticed with my system, but it can be different on a RPI with retropie , reicast only updates the date in the emu.cfg when you exit a game, and then starts from this date the next time you play a game. Because of that, as time passes without playing a game, the clock inside reicast losses time, and at some point, when the difference is too big with the system, it asks again to update the clock manually. But like I say, it is maybe specific to my system.That being said, you're also right when you say that it's easier to just download a custom bios that gets rid of this issue directly. I haven't tried this bios, but if it works and if you don't have your clock constantly updated, it's perfect I guess.
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.