Browse Source

OpenDingux: Add "lepus" platform

The "lepus" platform is the OpenDingux Beta for the same devices that
run RetroFW (e.g. RG300).
pull/3225/head
Gleb Mazovetskiy 4 years ago committed by Anders Jenbo
parent
commit
0d7072dae4
  1. 59
      CMake/lepus_defs.cmake
  2. 4
      CMakeLists.txt
  3. 3
      Packaging/OpenDingux/build.sh
  4. 31
      Packaging/OpenDingux/lepus-manual.txt
  5. 12
      Packaging/OpenDingux/lepus.desktop
  6. 1
      Packaging/OpenDingux/targets.sh

59
CMake/lepus_defs.cmake

@ -0,0 +1,59 @@
set(DISABLE_ZERO_TIER ON)
set(USE_SDL1 ON)
set(SDL1_VIDEO_MODE_BPP 8)
set(SDL1_VIDEO_MODE_FLAGS SDL_YUV444|SDL_HWSURFACE|SDL_TRIPLEBUF)
set(SDL1_FORCE_SVID_VIDEO_MODE ON)
set(PREFILL_PLAYER_NAME ON)
set(JOY_AXIS_LEFTX 0)
set(JOY_AXIS_LEFTY 1)
set(JOY_AXIS_RIGHTX 2)
set(JOY_AXIS_RIGHTY 3)
# OpenDingux Beta does not currently support X-OD-NeedsJoystick,
# so we use KBCTRL instead. Unfortunately, this partially breaks
# external mouse and keyboard support.
set(HAS_KBCTRL 1)
set(KBCTRL_BUTTON_DPAD_LEFT SDLK_LEFT)
set(KBCTRL_BUTTON_DPAD_RIGHT SDLK_RIGHT)
set(KBCTRL_BUTTON_DPAD_UP SDLK_UP)
set(KBCTRL_BUTTON_DPAD_DOWN SDLK_DOWN)
set(KBCTRL_BUTTON_B SDLK_LCTRL)
set(KBCTRL_BUTTON_A SDLK_LALT)
set(KBCTRL_BUTTON_Y SDLK_SPACE)
set(KBCTRL_BUTTON_X SDLK_LSHIFT)
set(KBCTRL_BUTTON_RIGHTSHOULDER SDLK_BACKSPACE)
set(KBCTRL_BUTTON_LEFTSHOULDER SDLK_TAB)
set(KBCTRL_BUTTON_START SDLK_RETURN)
set(KBCTRL_BUTTON_BACK SDLK_ESCAPE) # Select
set(KBCTRL_BUTTON_TRIGGERLEFT SDLK_PAGEUP)
set(KBCTRL_BUTTON_TRIGGERRIGHT SDLK_PAGEDOWN)
set(KBCTRL_BUTTON_LEFTSTICK SDLK_KP_DIVIDE)
set(KBCTRL_BUTTON_RIGHTSTICK SDLK_KP_PERIOD)
# Joystick mappings that have no effect on OpenDingux Beta:
set(JOY_HAT_DPAD_UP_HAT 0)
set(JOY_HAT_DPAD_UP 1)
set(JOY_HAT_DPAD_DOWN_HAT 0)
set(JOY_HAT_DPAD_DOWN 4)
set(JOY_HAT_DPAD_LEFT_HAT 0)
set(JOY_HAT_DPAD_LEFT 8)
set(JOY_HAT_DPAD_RIGHT_HAT 0)
set(JOY_HAT_DPAD_RIGHT 2)
set(JOY_BUTTON_A 0)
set(JOY_BUTTON_B 1)
set(JOY_BUTTON_Y 2)
set(JOY_BUTTON_X 3)
set(JOY_BUTTON_RIGHTSHOULDER 5)
set(JOY_BUTTON_LEFTSHOULDER 4)
set(JOY_BUTTON_TRIGGERLEFT 6)
set(JOY_BUTTON_TRIGGERRIGHT 7)
set(JOY_BUTTON_START 9)
set(JOY_BUTTON_BACK 8)
set(JOY_BUTTON_LEFTSTICK 10)
set(JOY_BUTTON_RIGHTSTICK 11)
# Map Power button to Esc (Menu in-game / Exit in-menu).
set(REMAP_KEYBOARD_KEYS "{SDLK_HOME,SDLK_ESCAPE}")

4
CMakeLists.txt

@ -164,7 +164,9 @@ endif()
set(TARGET_PLATFORM host CACHE STRING "Target platform")
set_property(CACHE TARGET_PLATFORM PROPERTY STRINGS host retrofw rg350 gkd350h cpigamesh)
if(TARGET_PLATFORM STREQUAL "retrofw")
if(TARGET_PLATFORM STREQUAL "lepus")
include(lepus_defs)
elseif(TARGET_PLATFORM STREQUAL "retrofw")
include(retrofw_defs)
elseif(TARGET_PLATFORM STREQUAL "rg350")
include(rg350_defs)

3
Packaging/OpenDingux/build.sh

@ -20,11 +20,13 @@ fi
declare -r TARGET="$1"
declare -r BUILD_DIR="build-${TARGET}"
declare -rA BUILDROOT_REPOS=(
[lepus]=https://github.com/OpenDingux/buildroot.git
[retrofw]=https://github.com/retrofw/buildroot.git
[rg350]=https://github.com/OpenDingux/buildroot.git
[gkd350h]=https://github.com/tonyjih/RG350_buildroot.git
)
declare -rA BUILDROOT_DEFCONFIGS=(
[lepus]='od_lepus_defconfig BR2_EXTERNAL=board/opendingux'
[retrofw]='RetroFW_defconfig BR2_EXTERNAL=retrofw'
[rg350]='od_gcw0_defconfig BR2_EXTERNAL=board/opendingux'
[gkd350h]='rg350_defconfig BR2_EXTERNAL=board/opendingux'
@ -55,6 +57,7 @@ prepare_buildroot() {
fi
git clone --depth=1 "${BUILDROOT_REPOS[$BUILDROOT_TARGET]}" "$BUILDROOT"
cd "$BUILDROOT"
ln -s ../shared-dl dl
# Work around a BR2_EXTERNAL initialization bug in older buildroots.
mkdir -p output

31
Packaging/OpenDingux/lepus-manual.txt

@ -0,0 +1,31 @@
Copy diabdat.mpq from your CD (or GoG install folder) to:
~/.local/share/diasurgical/
For Hellfire, also copy hellfire.mpq, hfmonk.mpq, hfmusic.mpq, and hfvoice.mpq.
Game saves and diablo.ini are located at:
~/.local/share/diasurgical/devilution
~ is your home directory, /media/home by default.
Controls:
- D-pad: move hero
- A: attack nearby enemies, talk to townspeople and merchants, pickup/place items in the inventory, OK while in main menu
- B: select spell, back while in menus
- X: pickup items, open nearby chests and doors, use item in the inventory
- Y: cast spell, delete character while in main menu
- R: use mana potion from belt
- L: use health item from belt
- Start + Select: game menu (alt: Start + ↑)
- Start + L or ←: character info
- Start + R or →: inventory
- Start + ↓: map
- Start + Y: Quest log
- Start + B: Spell book
- Select + A/B/X/Y: hot spell
- Select + D-pad: move map/cursor
- Select + L: left mouse click
- Select + R: right mouse click
- Suspend: map
Source: https://github.com/diasurgical/devilutionX/

12
Packaging/OpenDingux/lepus.desktop

@ -0,0 +1,12 @@
[Desktop Entry]
Name=DevilutionX
Comment=Diablo 1 for OpenDingux
Exec=devilutionx
Terminal=false
Type=Application
StartupNotify=true
Icon=icon_32
Categories=games;
X-OD-Manual=readme.lepus.txt
X-OD-NeedsDownscaling=true
X-OD-NeedsJoystick=true

1
Packaging/OpenDingux/targets.sh

@ -1,4 +1,5 @@
declare -ra VALID_TARGETS=(
lepus
retrofw
rg350
gkd350h

Loading…
Cancel
Save