Skip to content

Commit

Permalink
Merge pull request #943 from ohol-vitaliy/main
Browse files Browse the repository at this point in the history
New port: DoomRL
  • Loading branch information
Cebion authored Nov 19, 2024
2 parents d176a50 + 1b40a07 commit 9b300de
Show file tree
Hide file tree
Showing 132 changed files with 3,690 additions and 0 deletions.
43 changes: 43 additions & 0 deletions ports/doomrl/DoomRL.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash

XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share}

if [ -d "/opt/system/Tools/PortMaster/" ]; then
controlfolder="/opt/system/Tools/PortMaster"
elif [ -d "/opt/tools/PortMaster/" ]; then
controlfolder="/opt/tools/PortMaster"
elif [ -d "$XDG_DATA_HOME/PortMaster/" ]; then
controlfolder="$XDG_DATA_HOME/PortMaster"
else
controlfolder="/roms/ports/PortMaster"
fi

source $controlfolder/control.txt
[ -f "${controlfolder}/mod_${CFW_NAME}.txt" ] && source "${controlfolder}/mod_${CFW_NAME}.txt"

get_controls

GAMEDIR="/$directory/ports/doomrl"
BINARY="drl"

export LD_LIBRARY_PATH="$GAMEDIR/libs:$LD_LIBRARY_PATH"
export XDG_DATA_HOME="$GAMEDIR"

> "$GAMEDIR/log.txt" && exec > >(tee "$GAMEDIR/log.txt") 2>&1
cd $GAMEDIR

MP3FILES_COUNT=$(find ./mp3/*.mp3 -type f | wc -l)

if [ "$MP3FILES_COUNT" -gt "20" ]; then
sed -E -i "s/^GameMusic\s*=\s*(false|true)$/GameMusic = true/" "$GAMEDIR/config.lua"
else
sed -E -i "s/^GameMusic\s*=\s*(false|true)$/GameMusic = false/" "$GAMEDIR/config.lua"
fi

# $GPTOKEYB $BINARY -c "$BINARY.gptk" &
$GPTOKEYB2 $BINARY -c "$BINARY.gptk2" &
# ./$BINARY -console >$CUR_TTY <$CUR_TTY
pm_platform_helper "$GAMEDIR/$BINARY"
./$BINARY

pm_finish
49 changes: 49 additions & 0 deletions ports/doomrl/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
## Notes
Thanks to the [Kornel Kisielewicz](https://github.com/epyon) for creating this amazing roguelike and making it available for free!

## Controls
| Button | Action |
|--|--|
| D-Pad | Character movement, menu navigation |
| A | Confirm/Select |
| B | Cancel/Exit/Close/Esc |
| X | Run |
| Y | Wait turn |
| Start | Open inventory |
| Select | Open/Close door, Toggle lever, Use stairs |
| L1 | Fire weapon |
| L2 | Reload weapon |
| R1 | Pick-up item |
| R2 + Start | Drop item from inventory |
| R2 + Select | Unload weapon |
| R2 + L1 | Alternative fire weapon |
| R2 + L2 | Alternative reload weapon |
| R2 + R1 | Swap weapon |
| R2 + Up | y (used in prompts) |
| R2 + Down | n (used in prompts) |
| R2 + Left | Check tile info |
| R2 + Right | Show messages log |
| R2 + X | Choose weapon (in mod pack prompt) |
| R2 + Y | Choose weapon (in mod pack prompt) |
| R2 + A | Choose armor (in mod pack prompt) |
| R2 + B | Choose boots (in mod pack prompt) |

## Adding music files
The game is not bundled with music files but you can add them manually.
Here are the steps you need to take:
- Go to the [DoomRL downloads page](https://drl.chaosforge.org/downloads)
- Download Windows or Linux archive
- Copy `mp3` directory from archive into `ports/doomrl/`

## Version
0.9.9.8

## Compile
```sh
git clone https://github.com/ohol-vitaliy/PortMaster-DoomRL.git
cd PortMaster-DoomRL
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker build . --platform linux/arm64 --rm -t drl_build
docker run --rm drl_build cat /root/drl.zip > drl.zip
```
Put contents of a `drl.zip` archive into the `ports/doomrl` folder
3 changes: 3 additions & 0 deletions ports/doomrl/doomrl/backup/!readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Player and Score backup.

To control the amount of files see PlayerBackups and ScoreBackups variables in doomrl.ini.
30 changes: 30 additions & 0 deletions ports/doomrl/doomrl/colors.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
-- Custom coloring based on entity ID's. Search the DRL wiki
-- for id's for entities.
--
-- In case of cells, there are two overrides - [id]_light and [id]_dark
-- [id]_dark cells are out of vision, [id]_light cells are ones you can see.

-- Colors can be:
BLUE = 1
GREEN = 2
CYAN = 3
RED = 4
MAGENTA = 5
BROWN = 6
LIGHTGRAY = 7
DARKGRAY = 8
LIGHTBLUE = 9
LIGHTGREEN = 10
LIGHTCYAN = 11
LIGHTRED = 12
LIGHTMAGENTA= 13
YELLOW = 14
WHITE = 15

-- An example of how to change DRL's color scheme.
Colors = {
-- floor_dark = GREEN,
-- floor_light = BLUE,
-- former = BLUE,
-- demon = GREEN,
}
152 changes: 152 additions & 0 deletions ports/doomrl/doomrl/config.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
-- ----------------------------------------------------------------------
-- This is the DRL initialization file. Modify at your own risk :).
-- If you mess up something overwrite with a new config.lua.
-- ----------------------------------------------------------------------

dofile "colors.lua"

-- pick here what music set to use (see music.lua and musicmp3.lua)
dofile "musichq.lua"
dofile "soundhq.lua"

-- Graphics mode. Can be CONSOLE for raw console, or TILES for graphical
-- tiles. Overriden by -graphics and -console command line parameters.
Graphics = "TILES"

-- Sound engine, by default is FMOD on Windows, SDL on *nix. To use SDL on
-- Windows you'll need SDL_mixer.dll and smpeg.dll from SDL_mixer website.
-- For using FMOD on *nix systems you'll need the proper packages.
-- Possible values are FMOD, SDL, NONE, DEFAULT
SoundEngine = "SDL"

-- Whether to allow high-ASCII signs. Set to false if you see weird signs
-- on the screen. Not setting it at all will use the default which
-- is true on Windows and false on OS X and Linux
-- AllowHighAscii = true

-- Specifies wether items in inventory and equipment should be colored
ColoredInventory = true

-- Setting this to anything except "" will always use that as the name.
-- Warning - no error checking, so don't use too long names, or especially
-- the "@" sign (it's a control char). This setting overrides the one above!
--AlwaysName = ""

-- Setting to false will turn off music during gameplay
GameMusic = false

-- Setting to false will turn off sounds during gameplay
GameSound = true

-- Setting to true will turn on enhancements for blind people playing
-- DRL using a screen reader. Yes, some do.
BlindMode = false

-- Setting to true will make old messages disappear from the screen
-- (useful in BlindMode)
ClearMessages = false

-- Setting to false will prevent DRL from waiting for confirmation
-- when too many messages are printed in a turn. Usefull for Speedrunning.
MorePrompt = true

-- If set to true, pickup sound will be used for quickkeys and weapon
-- swapping.
SoundEquipPickup = false

-- (ASCII Only) Sets the delay value when running. Value is in milliseconds. Set to 0 for no delay.
RunDelay = 20

-- Handles what should be done in case of trying to unwield an item when inventory
-- is full : if set to false will ask the player if he wants to drop it. If set
-- to true will drop it without questions.
InvFullDrop = false

-- Messages held in the message buffer.
MessageBuffer = 100

-- Sets wether message coloring will be enabled. Needs [messages] section.
MessageColoring = true

-- If set to true will archive EVERY mortem.txt produced in the mortem subfolder.
-- The amount of files can get big after a while :)
MortemArchive = true

-- Sets the amount of player.wad backups. Set 0 to turn off. At most one backup
-- is held for a given day.
PlayerBackups = 7

-- Sets the amount of score.wad backups. Set 0 to turn off. At most one backup
-- is held for a given day.
ScoreBackups = 7

-- If set to false DRL will quit on death and quitting. Normally it will go back
-- to the main menu.
MenuReturn = true

-- Defines the maximum repeat for the run command. Setting it to larger than 80
-- basically means no limit.
MaxRun = 100

-- Defines the maximum repeat for the run command when waiting.
MaxWait = 20

-- Windows only - disables Ctrl-C/Ctrl-Break closing of program.
-- true by default.
LockBreak = true

-- Windows only - Disables closing of DRL by console close button.
-- true by default.
LockClose = true

-- Sets the color of intuition effect for beings
IntuitionColor = LIGHTMAGENTA

-- Sets the char of intuition effect for beings
IntuitionChar = "*"

-- Mortem and screenshot timestamp format
-- Format : http://www.freepascal.org/docs-html/rtl/sysutils/formatchars.html
-- note that / and : will be converted to "-" due to filesystem issues
TimeStamp = "yyyy/mm/dd hh:nn:ss"

-- Controls whether the game will attempt to save the game on crash, set to false
-- to turn this off
SaveOnCrash = true

-- Message coloring system. Works only if MessageColoring
-- variable is set to true. Use basic color names available in
-- colors.lua.
-- As for the string, it's case sensitive, but you may use
-- the wildcard characters * and ?.

-- Unsure how these work and want to fiddle with them?
-- Head over to http://forum.chaosforge.org/ for more info.
Messages = {
["Warning!*"] = RED,
["Your * destroyed!"] = RED,
["You die*"] = RED,
["Your * damaged!"] = BROWN,
["You feel relatively safe now."] = BLUE
}

-- == Path configuration ==
-- You can use command line switch -config=/something/something/config.lua
-- to load a different config!

-- Uncomment the following paths if needed:

-- This is the directory path to the read only data folder (current dir by
-- default, needs slash at end if changed). -datapath= to override on
-- command line.
--DataPath = ""

-- This is the directory path for writing (save, log) (current dir by
-- default, needs slash at end if changed). -writepath= to override on
-- command line.
--WritePath = ""

-- This is the directory path for score table (by default it will be the
-- same as WritePath, change for multi-user systems. -scorepath= to override
-- on command line.
--ScorePath = ""
Binary file added ports/doomrl/doomrl/core.wad
Binary file not shown.
Binary file added ports/doomrl/doomrl/drl
Binary file not shown.
42 changes: 42 additions & 0 deletions ports/doomrl/doomrl/drl.gptk
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
guide = \"
back = \"
select = \"
start = backspace

a = enter
b = esc
y = space
x = i

y_hk = l
x_hk = tab
b_hk = d


l1 = f
l1_hk = f
l1_hk = add_shift
l2 = r
l2_hk = r
l2_hk = add_shift
r1 = g
r1_hk = y
r2 = u
r2_hk = n

up = up
down = down
left = left
right = right

left_analog_up = w
left_analog_right = b
left_analog_down = backspace
left_analog_left = a
l3 = \"

right_analog_up = \"
right_analog_right = \"
right_analog_down = \"
right_analog_left = \"
r3 = \"
59 changes: 59 additions & 0 deletions ports/doomrl/doomrl/drl.gptk2
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
[config]
repeat_delay = 500
repeat_rate = 60

deadzone_triggers = 3000
mouse_scale = 6114
mouse_delay = 16

deadzone_mode = axial
deadzone = 1000
deadzone_scale = 7
deadzone_delay = 16

[controls]
overlay = clear

a = enter
b = esc
x = ,
y = .

l1 = f
l2 = r
r1 = g
r2 = hold_state hotkey

up = up
down = down
left = left
right = right

start = i
select = space

# right_analog = mouse_movement
# r3 = mouse_left

# left_analog = arrow_keys repeat
# l3 = .

[controls:hotkey]
overlay = clear

start = d
select = u

a = a
b = b
x = w
y = w

up = y
down = n
left = l
right = s

l1 = F add_shift
l2 = R add_shift
r1 = z
Binary file added ports/doomrl/doomrl/drl.wad
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libSDL2_mixer-2.0.so.0
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libX11.so.6
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libXau.so.6
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libXdmcp.so.6
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libbsd.so.0
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/liblua5.1.so.0
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libncursesw.so.6
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libtinfo.so.6
Binary file not shown.
Binary file added ports/doomrl/doomrl/libs/libxcb.so.1
Binary file not shown.
Loading

0 comments on commit 9b300de

Please sign in to comment.