Compare commits

..

35 commits

Author SHA1 Message Date
lazzite a3e9b93471 rtdink fixes 2026-10-14 19:28:26 +02:00
lazzite 349057af2a retroverse updates 2026-10-14 19:16:05 +02:00
lazzite b662d2f212 retroverse updates 2026-10-14 19:15:00 +02:00
lazzite ab4fcdef6a rt dink remove bös 2026-10-14 19:04:37 +02:00
lazzite c8e26655e5 rtdink to verse 2026-10-14 18:59:55 +02:00
lazzite ac2991f22b rm dink again 2026-10-13 16:14:05 +02:00
lazzite afcdcfdd09 dink tmp 2026-10-10 07:54:19 +02:00
lazzite 61b2ef3668 licences 2026-10-03 18:00:35 +02:00
lazzite f452bfd920 licences 2026-10-03 13:35:23 +02:00
lazzite d6d40bf503 licences 2026-09-28 18:45:52 +02:00
icenine451 5b487a0d31 Update workflow wording 2026-09-28 08:51:48 -04:00
etjanster 48fbb508bc licences 2026-09-28 08:03:36 +02:00
etjanster a4d02fa9d5 licences 2026-09-28 07:48:22 +02:00
lazzite ac5db61c86 licenes 2026-09-27 14:57:41 +02:00
lazzite a93501a4af licence fixes 2026-09-27 13:58:02 +02:00
lazzite 72d8fc5f41 metadata shareware 2026-09-27 13:08:57 +02:00
lazzite 3b12fcc979 desciptions 2026-09-27 13:03:15 +02:00
lazzite 7c609a0eb4 licences cleanup 2026-09-26 10:50:32 +02:00
lazzite 7c881f51db licences 2026-09-26 10:03:40 +02:00
lazzite 42a33f4af5 licences 2026-09-26 09:30:23 +02:00
lazzite 9fefddb45e licences 2026-09-26 08:49:24 +02:00
lazzite a85c97af89 licence fixes 2026-09-26 08:37:19 +02:00
lazzite 4033740018 licences wip 2026-09-25 19:20:58 +02:00
lazzite ff3a555145 licences rv 2026-09-25 19:02:05 +02:00
lazzite 5bf4c3eefa doom thumb 2026-09-25 18:57:35 +02:00
lazzite 61e8d38563 zorky init 2026-09-25 18:50:23 +02:00
lazzite 3f338ef2da rm md 2026-09-25 18:29:02 +02:00
lazzite 9df72982cd doom shareware 2026-09-25 18:27:52 +02:00
etjanster fd1f9d8d3f freedoom mani 2026-09-25 07:45:53 +02:00
etjanster 7a305f7282 freedoom meta 2026-09-25 07:36:02 +02:00
etjanster 0696deabb1 added freedoom to freedoom 2026-09-25 07:33:23 +02:00
Lazorne 98a3ba273f
Modify logo size and add inspirational quote
Updated logo size and added a quote to the README.
2026-09-25 05:21:32 +00:00
Lazorne f2a7b8a8b9
Update logo and title in README.md 2026-09-25 05:20:21 +00:00
Lazorne e09ef24da4
Add initial README with RetroVerse logo 2026-09-25 05:16:12 +00:00
Lazorne 19c54c3619
Create retroverse_licences.md 2026-09-25 05:14:37 +00:00
25 changed files with 2661 additions and 26 deletions

View file

@ -1,4 +1,4 @@
name: "RetroVERSE: Build Store Inventory"
name: "RetroVERSE: Build Inventory"
on:
workflow_dispatch:
@ -27,7 +27,7 @@ env:
# ---------------------------------------------------------------------------
# The Alchemist is not vendored here. It is checked out from the components
# repo at a ref pinned in alchemist/alchemist_ref, so the store repo carries
# repo at a ref pinned in alchemist/alchemist_ref, so the RetroVERSE repo carries
# only its own version_policy.sh (and optional version_pins.sh), which are
# overlaid onto the checkout.
#
@ -280,7 +280,7 @@ jobs:
fail "class 'component' must not declare files[]: deployment belongs to the external component installer"
fi
# Store version is read from retroverse_manifest.json for both classes so the aggregator needs no class-specific logic.
# RetroVERSE version is read from retroverse_manifest.json for both classes so the aggregator needs no class-specific logic.
# For components it must agree with the packaged manifest.
cm="$item_dir/component_manifest.json"
if [[ ! -f "$cm" ]]; then
@ -372,7 +372,7 @@ jobs:
# Collect item metadata, fingerprints and upstream versions
# ===========================================================================
# Replaces the components repo's resolve-versions job. There is no version
# resolution for the store version, it is read from the manifest. Component
# resolution for the RetroVERSE version, it is read from the manifest. Component
# items still resolve an upstream version through the pinned policy chain,
# for the record and for the bump check.
# ===========================================================================
@ -396,7 +396,7 @@ jobs:
# -----------------------------------------------------------------------
# Alchemist checkout. sparse-checkout keeps the rest of the components
# repo out of the workspace, and the nested .git is harmless: alchemist.sh
# resolves REPO_ROOT from its working directory, which stays the store
# resolves REPO_ROOT from its working directory, which stays the RetroVERSE
# repo root, so $REPO_ROOT/$COMPONENT_NAME still points at the item folder.
# -----------------------------------------------------------------------
- name: Checkout Alchemist
@ -408,7 +408,7 @@ jobs:
sparse-checkout: automation-tools/alchemist
sparse-checkout-cone-mode: true
- name: Overlay store version policy
- name: Overlay RetroVERSE version policy
run: |
# version_policy.sh and version_pins.sh are read from the Alchemist's
# own SCRIPT_DIR, so the components repo's copies arrive with the
@ -527,7 +527,7 @@ jobs:
echo "Processing $item ($class)..."
# -----------------------------------------------------------------
# Fingerprint covers only what the Alchemist consumes. The store
# Fingerprint covers only what the Alchemist consumes. The RetroVERSE
# manifest and artwork are excluded: they are republished from
# source every release, so a description or thumbnail edit must not
# invalidate an otherwise identical artifact.
@ -673,7 +673,7 @@ jobs:
# This does NOT force version bumps: the bump check compares
# fingerprint and upstream version, neither of which the tool ref
# touches. A tool change rebuilds without demanding a bump on
# every item in the store.
# every item in the RetroVERSE.
# ---------------------------------------------------------------
ALCHEMIST_CHANGED=false
if [[ -n "$PREV_ALCHEMIST_REF" && "$PREV_ALCHEMIST_REF" != "$ALCHEMIST_REF" ]]; then
@ -733,7 +733,7 @@ jobs:
# ===========================================================================
# Build each item (or reuse from previous release)
# ===========================================================================
# fail-fast is false: a store may hold hundreds of items and one malformed
# fail-fast is false: the RetroVERSE may hold hundreds of items and one malformed
# manifest should surface every other failure in the same run.
# ===========================================================================
build-items:
@ -764,7 +764,7 @@ jobs:
sparse-checkout: automation-tools/alchemist
sparse-checkout-cone-mode: true
- name: Overlay store version policy
- name: Overlay RetroVERSE version policy
if: matrix.can_reuse == false
run: |
if [[ ! -x "$ALCHEMIST_DIR/alchemist.sh" ]]; then
@ -909,7 +909,7 @@ jobs:
echo "Build complete"
# ---------------------------------------------------------------------
# Validation runs on every item, reused or not. The store manifest sits
# Validation runs on every item, reused or not. The RetroVERSE manifest sits
# outside the fingerprint, so an edit to files[].source alone would
# otherwise reuse the old artifact and never revalidate the paths.
# ---------------------------------------------------------------------
@ -1170,7 +1170,7 @@ jobs:
# that misses one, a collection bug, a matrix entry that produced no
# leg. None of those fail anything on their own, and the result would
# be a smaller inventory that every client reads as those items having
# been removed from the store.
# been removed from the RetroVERSE.
# -------------------------------------------------------------------
jq -r 'keys[]' <<< "$CURRENT" | sort > /tmp/expected_items
printf '%s\n' "${ARCHIVES[@]}" \
@ -1196,7 +1196,7 @@ jobs:
if [[ "$INVENTORY_ERRORS" -gt 0 ]]; then
echo ""
echo "ERROR: inventory is incomplete: refusing to publish a partial store"
echo "ERROR: inventory is incomplete: refusing to publish a partial set"
echo " Expected: $(wc -l < /tmp/expected_items) items"
echo " Collected: $(wc -l < /tmp/collected_items) items"
exit 1
@ -1225,7 +1225,7 @@ jobs:
# file_hashes for a REUSED item are carried forward from the previous
# release. A reused item is never unpacked and rehashed. Omitting this
# would not fail the build; it would silently ship empty hash maps for
# the most stable items in the store.
# the most stable items in the RetroVERSE.
# ---------------------------------------------------------------------
- name: Generate retroverse.json
env:
@ -1330,7 +1330,7 @@ jobs:
--arg alchemist_ref "${{ needs.configure.outputs.alchemist_ref }}" \
--argjson items "$entries" \
'{
store_schema_version: ($schema | tonumber),
retroverse_schema_version: ($schema | tonumber),
source_id: $source_id,
release_tag: $tag,
built_on: $built_on,

7
README.md Normal file
View file

@ -0,0 +1,7 @@
<p align="center">
<img src="https://github.com/RetroDECK/RetroDECK/blob/0.11.0/res/rd_icons/general/icon-retroverse.svg" alt="RetroVERSE Logo" width="150"/>
</p>
*"The universe, ever-expanding, never-ending, inspiring and vast. From the smallest bug to the largest animal, all is small and all is equal."*
# Welcome to the RetroVERSE

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

View file

@ -0,0 +1,22 @@
{
"doom-shareware": [
{
"source_url": "$REPO_ROOT/$COMPONENT_NAME/rd_assets/doom-shareware.zip",
"source_type": "local",
"extraction_type": "archive",
"version": "$DOOM-SHAREWARE_DESIRED_VERSION",
"assets": [
{
"type": "file",
"source": "doom-shareware/DOOM1.WAD",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "dir",
"source": "docs",
"dest": "docs"
}
]
}
]
}

View file

@ -0,0 +1,494 @@
Welcome to v1.9 of DOOM!
id Software respectfully requests that you do not modify the
levels for the shareware version of DOOM. We feel that the
distribution of new levels that work with the shareware version
of DOOM will lessen a potential user's incentive to purchase the
registered version.
If you would like to work with modified levels of DOOM, we
encourage you to purchase the registered version of the game.
Make sure you read the DOOM FAQ v6.666 if you have any problems
or are anxious to find out about the World of DOOM! The 4 files
of the FAQ are DMFAQ66A.TXT, DMFAQ66B.TXT, etc. Enjoy!
------------------------------------------------------------
Additional support
------------------------------------------------------------
If you are looking for external PWADs for DOOM, DOOM2 or Heretic,
look no further than the DOOMania! BBS, owned and operated by
Paul Johnson. The BBS number is (317) 662-8842, the voice number
is (317) 662-1449.
------------------------------------------------------------
Auxiliary programs
------------------------------------------------------------
There are a number of auxiliary programs that come with DOOM. These
are DM.EXE, the DeathManager you use as a front-end for network and
modem play; DWANGO.EXE, the client software for the NEW multiplayer
gaming environment of the future; IPXSETUP.EXE, the IPX Network Device
Driver that enables you to play DOOM over an office network that uses
the IPX protocol and SERSETUP.EXE, the Serial Device Driver that enables
you to play DOOM over the modem or serial cable.
The documentation for the DM.EXE program is named DM.TXT, the documentation
for the DWANGO.EXE program is named DWANGO.TXT. The documentation for the
IPXSETUP.EXE and SERSETUP.EXE programs follow.
-------------------------------------------------------------
Get our latest releases from the following places:
id Software's BBS home:
Software Creations BBS "Home of the Authors"
1200/2400 V.42/MNP: 508-365-2359
2400-16.8k HST US Robotics: 508-368-4137
2400-14.4k V.32/V.32bis Hayes: 508-368-7036
id Software's anonymous ftp home:
ftp.uwp.edu
/pub/games/id
-------------------------------------------------------------
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
OMBUDSMAN STATEMENT
This program was written by a member of the Association of Shareware
Professionals (ASP). ASP wants to make sure that the shareware
principle works for you. If you are unable to resolve a
shareware-related problem with an ASP member by contacting the
member directly, ASP may be able to help. The ASP Ombudsman can
help you resolve a dispute or problem with an ASP member, but does
not provide technical support for members' products. Please write
to the ASP Ombudsman at 545 Grover Road, Muskegon, MI 49442 orsend
a CompuServe message via CompuServe Mail to ASP Ombudsman
70007,3536.
------------------------------------------------------------
------------------------------------------------------------
DOOM ADDENDUM
------------------------------------------------------------
Welcome to DOOM. Before playing, you'll need to read the
DOOM manual and this addendum which contains information for
playing in Multiplayer mode, as well as technical support
and troubleshooting instructions. To avoid compatibility
errors, please make sure that your machine and network conform
to the system requirements listed below.
-------------------------------------------------------------
SYSTEM REQUIREMENTS
-------------------------------------------------------------
DOOM(TM) requires an IBM compatible 386 or better with 4 megs of
RAM, a VGA graphics card, and a hard disk drive. A 486 or
better, a Sound Blaster Pro(TM) or 100% compatible sound card
is recommended. A network that uses the IPX protocol is
required for network gameplay.
-------------------------------------------------------------
MULTIPLAYER MODE
-------------------------------------------------------------
GETTING STARTED
-------------------------------------------------------------
1. Install DOOM as described in the manual.
2. Launch DOOM from the SETUP program, by going to the
directory in which you installed DOOM, type SETUP, and press
the ENTER key. (If you are installing DOOM for the first
time the SETUP program will be automatically launched.)
Unlike playing DOOM in single player mode, DOOM in
multiplayer mode must be run either from the SETUP program
or by using the command line parameters mentioned later in
this addendum.
3. The SETUP program not only allows you to configure DOOM
to your system but lets you tell DOOM information that is
necessary for the multiplayer game, (i.e. number of players,
skill level, mode, etc.) The SETUP program is simple to
use--providing context sensitive help at the bottom of the
screen.
NUMBER OF PLAYERS: A maximum of four people can play
multiplayer DOOM on a network.
COMPATIBLE NETWORKS: To play multiplayer, you must have a
network that uses the IPX protocol. Check your network
manuals for information regarding your protocol. Novell
networks use the IPX protocol.
MULTIPLE GAMES ON THE NET: To play a multiplayer game while
another group is also playing the multiplayer game, you'll
need to change your network port address from the SETUP
application. The port address tells your server where to
send information that is sent over the network. Network
addresses range from 1-64000. You should refer to the person
in charge of your network for possible port addresses.
-------------------------------------------------------------
MULTIPLAYER INSTRUCTIONS
-------------------------------------------------------------
Many of the rules for playing DOOM change for the
multiplayer game. Read the following information carefully
before you begin to play DOOM in multiplayer mode.
MENUS: When you activate the Options menu or submenus, the
game KEEPS RUNNING so that other players can continue with
the action. So it is best to find a safe place before
adjusting screen sizes or sounds.
UNPAUSE: A player may Pause the game by pressing the PAUSE
key, but any other player can Unpause the game by pressing
the PAUSE key again. Make sure it's OK with your buddies
before taking a breather.
SAVE: When you do a savegame during a network game, it saves
on every player's system in the savegame slot you select,
writing over whatever was there. Before saving the game,
players should agree on a safe slot to save in.
LOAD: You cannot load a saved game while playing a
multiplayer game. To load a game everyone must quit from the
current game and restart the game from the saved game. To
start a game from a saved game, you can either select it
from the SETUP program or identify it as a command line
parameter.
WEAPONS: When a player runs over a weapon, he picks it up,
but the weapon remains in the game for other players to
take. Note: Shotguns dropped by former human sergeants are
removed from the game after being picked up or smashed.
DEATH: If you die and restart in the level, previously taken
items and destroyed monsters DON'T reappear. Even though
you've died, other players have survived. We didn't want to
undo all of their fine destruction by reviving every monster
in the area. However, this also means the level will
eventually run dry of monsters and ammunition. You'll have
to decide when the level is played out.
UNIFORM COLORS: In net games, each player's uniform is a
different color. The color of your character is the color
behind your face on the status bar. The colors are BROWN,
INDIGO (black), GREEN, and RED.
CHAT MODE: In a multiplayer game you can communicate with
other players in the Chat mode. To enter into Chant mode and
broadcast a message to all the players, press the letter t.
A cursor will appear where your messaging is normally
placed. To broadcast to a specific player, instead of
pressing t you'll need to press the first letter of the
player's color. (B)rown, (I)ndigo, (G)reen, and (R)ed. For
example, to send a message to the brown character, you would
press the letter b.
CHAT MACROS: In a multiplayer game, you can send your own
pre-defined macros (defined in the SETUP program) by initiating
Chat mode (as stated above), then holding ALT and pressing the
number key that corresponds to the macro you wish to send. For
example, if macro #2 is "Eat it and die!", initiate Chat mode
by pressing 'T', then hold down ALT and press 2.
EXITING A LEVEL: When one player exits a level, all players
instantly exit with him, regardless of their position or
their status.
-------------------------------------------------------------
COOPERATIVE OR DEATHMATCH MODE
-------------------------------------------------------------
There are two ways to play multiplayer--DeathMatch and
Cooperative. In Cooperative mode the players work together.
In DeathMatch mode your mission is to kill everything that
moves, including your buddies. You can choose which mode you
wish to play from the SETUP application. The differences
between Cooperative and DeathMatch mode are as follows:
WHERE YOU START: In Cooperative mode each player begins in
the same area. In DeathMatch mode the players begin in
completely different areas--if you want to see your buddy
you'll need to hunt him down. Plus, each time you die,
you'll restart in one of several random locations.
KEYS: Unlike in single-player or Cooperative mode gameplay,
in DeathMatch mode the players start each location with the
keys necessary for opening any locked door in that area.
STATUS BAR: In DeathMatch mode the ARMS section on the
status bar is replaced with "FRAG." The FRAG section
displays the number of times you've killed your opponents.
AUTOMAP: In Cooperative mode the Automap works the same way
it does in single-player mode. Each player is represented by
a different color arrow. In DeathMatch mode you won't
receive the pleasure of seeing your opponents on the map.
Just like the monsters, your friends could be just around
the corner, and you won't know until you face them.
SPY MODE: If you're playing in Cooperative mode, press F12
to toggle through the other players' viewpoint(s). Press any
other key to return to your view. You still retain your own
status bar at the bottom, and if your view reddens from pain
it is YOU, not your partner, who has been hit.
INTERMISSION SCREENS: In both Cooperative and DeathMatch
mode the intermission screen tallies your achievement. In
Cooperative mode the intermission screen lists the
achievements for all players in the game. In DeathMatch mode
the intermission provides a death count on everyone, letting
you know who killed whom.
-------------------------------------------------------------
DEATHMATCH MODE GAMEPLAY NOTES
-------------------------------------------------------------
The rules for completing or winning a DeathMatch game have
intentionally been left general. Any player can exit an area
and force all of the players to move to the next area. Also,
there is no limit on how many kills are required to declare
a player the winner. We decided to leave this up to you. You
know what you like best!
Note: Before you play DOOM in DeathMatch mode you should be
familiar with the layout of every area in DOOM. As you know,
in DeathMatch mode your startup location is random and often
in an area that is very hostile.
-------------------------------------------------------------
MULTIPLAYER DEMO RECORDING
-------------------------------------------------------------
You can record your tournaments for posterity! To record multi-
player demos, add the line "-record demoz" to the command-line.
Make sure the other player is recording also, or it won't work.
If you need more time, add the "-maxdemo <K>" option to increase
demo buffer space. Make sure both of you specify the same amount.
DOOM defaults to 128K of demo buffer space, to specify 1meg you
would type "-maxdemo 1024" on the command-line.
IF DOOM BOMBS TO DOS WITH A "Z_MALLOC" ERROR, YOU DON'T HAVE
ENOUGH MEMORY FOR THE MAXDEMO AMOUNT SPECIFIED!
When you wish to stop recording, press the Q or F10 keys and both
players will exit to DOS. To play the demo back, merely type,
"DOOM -playdemo demoz" and the demo will play back. To see the
other player, press the F12 key. Press F12 to toggle between all
players in the demo. The TAB key will display the automap.
You can set the name of the demo file to anything you want. "demoz"
was just an example name.
-------------------------------------------------------------
RUNNING DOOM FROM THE COMMAND LINE
-------------------------------------------------------------
Much of the information you give to DOOM through the SETUP
program can be provided by passing program parameters to
the appropriate device driver on the command line.
NETWORK PLAY
------------
When you want to run a network game, you use IPXSETUP.EXE which
is the device driver for DOOM's network mode. The parameters
are as follows:
-NODES starts DOOM as a network game and sets the number of
players who are going to play. If you don't specify the number
of nodes, the default is 2.
-nodes <# of players>
-PORT sets the port from which to play DOOM multiplayer on
the network. By setting a different port, more than one
group of players can play DOOM on a single network.
-port <# of the port>
MODEM PLAY
----------
When you want to play a modem or null-modem game, you need to
run SERSETUP.EXE which is the device driver for DOOM's serial
communications mode. The parameters are as follows:
-DIAL tells the program which number to dial, if you're going
to do the calling.
-dial <phone number>
-ANSWER puts your modem into Answer mode so someone can call
you and play DOOM.
-answer
-COM1, -COM2, -COM3, -COM4 specifies which COM port your modem
or serial cable is connected to. Very important!
-com1
-8250 tells SERSETUP to set the UART to 8250. Just in case your
16550 UART is acting up at the higher speed.
-8250
-IRQ sets the IRQ for the COM port.
-irq <irq number>
-PORT sets the COM I/O port that SERSETUP uses to communicate
with your modem. To use hexadecimal, such as the number 0x3f8, you
would type "-port 0x3f8".
-port <port number>
-<#> sets the baud rate of your COM port, overriding the value in
the MODEM.CFG if you're running a modem game. Legal values are
9600, 14400, 38400, 57600.
Example: -14400
Note that to run a null-modem game, you must have a null-modem
cable plugged into a serial port on both computers and each
computer runs SERSETUP.EXE with a -COM# parameter as well as
any General Parameters. Do not use the -ANSWER or -DIAL
parameters, or SERSETUP will think you're using a modem. To get
a null-modem cable, go to CompUSA or Radio Shack and say,"I need
a null-modem cable to run a DOOM multiplayer game."
VERY IMPORTANT!
You will need to run the SETUP program and select Choose Modem
from the Network/Modem/Serial menu so you can set your modem
init string correctly. Merely select the modem and press Enter
and SETUP will create a new MODEM.CFG file that corresponds to
your modem (the MODEM.CFG file is used by SERSETUP for initing
the modem.)
If your modem is not in the list, you will most likely need to
edit the MODEM.CFG file in the DOOM directory. The first line
of the file is an initialization string that:
* Turns off error-correction
* Turns off data-compression
The MODEM.CFG file has a Hayes-standard init string like this:
AT Z S=46 &Q0 &D0
You just add your own commands after the "AT Z " if your modem
doesn't work with these settings -- dig up your modem manual for
the correct settings.
The second line is a hangup string used when you quit DOOM.
The third line is the baud rate at which you want your COM port set.
The legal settings are: 9600, 14400, 38400, 57600.
If the modem connection isn't working when you call your friend,
have him call you instead. Try setting the modem to GENERIC (in the
SETUP.EXE program) if your modems don't connect.
If you STILL can't get the modems to connect, both of you should
run your favorite COMM programs and connect with 9600, no error
correction and no data compression. Then quit the COMM program
and keep the connection going. Then just run SERSETUP with a -COM#
parameter (as if you were running a null-modem game) since you're
already connected.
If you had trouble connecting, but figured out some settings that
work, please fax them to us at (214) 686-9288 so we can expand our
modem init string database and perhaps have the SETUP program ask
you for your modem type in a future version of DOOM.
GENERAL PARAMETERS
------------------
These parameters can be passed straight to DOOM, or passed
to IPXSETUP or SERSETUP, which then pass them to DOOM.
-LOADGAME allows you to start DOOM from a specified save
game. Instead of using the saved game name, simply enter the
number that corresponds to the slot you saved the game to on
the SAVE GAME screen (0-5).
-loadgame <# of the game>
-DEATHMATCH starts DOOM as a DeathMatch game. If you don't
enter DEATHMATCH as a command line parameter, DOOM will
default to the Cooperative mode.
-deathmatch
-ALTDEATH specifies respawning items during DEATHMATCH.
NOTE: Invulnerability and Invisibility do not respawn.
-deathmatch -altdeath
-SKILL sets the skill level (1-5) you wish to play. Only useful
with -warp -- see below.
-skill <# of skill level>
-EPISODE sets the episode (1-3) you wish to play. The default
episode is Episode One, Knee-Deep in the Dead.
-episode <# of the episode>
-CONFIG allows you to use your configuration file from any
directory you choose. This is primarily for diskless workstations
that don't have a C: drive to save config information to. You
need to rename the default.cfg file created by the SETUP program
to a directory and name of your choosing to avoid conflicts.
-config <pathname> ex. -config f:\doom\data\myconfig.cfg
-NOMONSTERS allows you to start playing with NO MONSTERS running
around! This is great for DeathMatch where, really, the monsters
just get in the way. Only useful with -warp -- see below.
-nomonsters
-RECORD tells DOOM to record the game you are starting.
Demo files will be saved as <filename>.lmp.
-record <filename>
-MAXDEMO xxx If you want to record a demo bigger than 128k, use
this option. xxx will be the size (in kilobytes) of the demo.
example -MAXDEMO 1024 will record a 1 megabyte demo.
-record <filename> -maxdemo xxx
-RESPAWN tells DOOM that, yes, you are a badass, and yes, you
want all the monsters to respawn around 8 seconds after you kill
them. The NIGHTMARE skill level already does this. Note that
using -respawn and -nomonsters at the same time is a dumb thing
to do. Only useful with -warp -- see below.
-respawn
-TURBO xxx gives you a speed boost. This is great in DeathMatch!
The value xxx can be from 0 to 250. The other player(s) will be
notified of your speed increase! THIS IS CONSIDERED CHEATING
IN SINGLE PLAYER MODE!
-turbo xxx
@<filename> will allow you to specify a Response file that DOOM
will read additional command-line parameters from. For example,
typing 'DOOM @MYPARMS' will tell DOOM to look in the MYPARMS file
for additional command-line parameters. The file format is simply
one parameter per line with a carriage return to terminate the line.
Each parameter is typed exactly as you would type it on the DOS
command-line.
-FAST will make the monsters move and shoot up to 3 times faster,
just as if you were playing in Nightmare mode, but without the
respawning. Only useful with -warp -- see below.
-fast
-TIMER <# of minutes> will make DOOM exit the current level after
a specified amount of minutes, going to the intermission screen.
This option is only useful in DeathMatch mode.
-timer xxx
An example line for entering the above information would be:
doom -loadgame 3 -deathmatch -skill 4 -timer 10
IMPORTANT: Only the following command-line parameters are available
while using the -WARP parameter:
-fast, -nomonsters, -skill, -respawn.
-------------------------------------------------------------
ADDING MORE PHONE NUMBERS TO YOUR LIST
-------------------------------------------------------------
You must use a text editor (such as EDIT that comes with DOS)
to edit the MODEM.NUM file. The format is simple. The first line
is the Person's name (which will appear in the list), the second
line is the phone number. The third line should be blank.
-------------------------------------------------------------
DOOM, the DOOM logo and DOOM likenesses are trademarks of id
Software, inc.,(C)1993. IBM is a registered trademark of
International Business Machines, inc. Sound Blaster is a
registered trademark of Creative Labs, inc. All other
trademarks are the property of their respective companies.
Special thanks to ZOOM in their help for 28.8 modem support.

Binary file not shown.

View file

@ -0,0 +1,24 @@
{
"schema_version": "1",
"id": "doom-shareware",
"min_client_schema": "1",
"class": "data",
"name": "DOOM Shareware",
"description": "DOOM Shareware v1.9 featuring the original classic episode: 'Knee-Deep in the Dead'.",
"version": "1.0.0",
"tags": [
"game",
"rom"
],
"requires": [
"component:uzdoom"
],
"artwork": "artwork/thumb.png",
"files": [
{
"source": "DOOM1.WAD",
"destination": "$roms_folder/doom/DOOM1.WAD",
"policy": "replace"
}
]
}

View file

@ -12,6 +12,39 @@
"dest": "$COMPONENT_ARTIFACT_ROOT"
}
]
},
{
"source_url": "https://github.com/freedoom/freedoom/releases/download/v0.13.0/freedoom-0.13.0.zip",
"source_type": "github_release",
"extraction_type": "archive",
"version": "$FREEDOOM_DESIRED_VERSION",
"assets": [
{
"type": "file",
"source": "freedoom-0.13.0/freedoom1.wad",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "file",
"source": "freedoom-0.13.0/freedoom2.wad",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "file",
"source": "freedoom-0.13.0/COPYING.txt",
"dest": "docs"
},
{
"type": "file",
"source": "freedoom-0.13.0/CREDITS.txt",
"dest": "docs"
},
{
"type": "file",
"source": "freedoom-0.13.0/CREDITS-MUSIC.txt",
"dest": "docs"
}
]
}
]
}

View file

@ -0,0 +1,30 @@
Copyright © 2001-2024
Contributors to the Freedoom project. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the Freedoom project nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS
IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
For a list of contributors to the Freedoom project, see the file
CREDITS.

View file

@ -1,22 +1,34 @@
{
"schema_version": 1,
"schema_version": "1",
"min_client_schema": "1",
"id": "freedoom",
"class": "data",
"name": "FreeDOOM",
"description": "Freedoom is a complete, free content first person shooter game, based on the Doom engine.",
"version": "1.0.0",
"tags": ["rom", "freeware"],
"min_client_schema": 1,
"requires": ["component:uzdoom"],
"description": "Freedoom is a free, open-source game for UZDoom, compatible with many custom DOOM levels, music, graphics and mods.",
"version": "1.0.1",
"tags": [
"game",
"rom"
],
"requires": [
"component:uzdoom"
],
"artwork": "artwork/thumb.png",
"files": [
{
"source": "freedm.wad",
"destination": "$roms_folder/doom/freedm.wad",
"policy": "replace"
},
{
"source": "freedoom1.wad",
"destination": "$roms_folder/doom/freedoom1.wad",
"policy": "replace"
},
{
"source": "freedoom2.wad",
"destination": "$roms_folder/doom/freedoom2.wad",
"policy": "replace"
}
]
}

1320
retroverse_licences.txt Normal file

File diff suppressed because it is too large Load diff

BIN
rtdink/artwork/thumb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,000 KiB

32
rtdink/component_functions.sh Executable file
View file

@ -0,0 +1,32 @@
#!/bin/bash
_prepare_component::rtdink() {
local action="$1"
shift
local component_config="$(get_own_component_path)/rd_config"
case "$action" in
reset)
log i "----------------------"
log i "Resetting RTDink"
log i "----------------------"
dir_prep "$roms_path/dink" "$storage_path/retrodeck/retroverse/rtdink/dmods"
;;
postmove)
log i "------------------------"
log i "Post-moving RTDink"
log i "------------------------"
dir_prep "$roms_path/dink" "$storage_path/retrodeck/retroverse/rtdink/dmods"
;;
esac
}

16
rtdink/component_launcher.sh Executable file
View file

@ -0,0 +1,16 @@
#!/bin/bash
source /app/libexec/launcher_functions.sh
# Setting component name and path based on the directory name
component_name="$(basename "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")")"
component_path="$(cd "$(dirname "${BASH_SOURCE[0]}" )" && pwd)"
export LD_LIBRARY_PATH="$component_path/lib:$rd_shared_libs:${DEFAULT_LD_LIBRARY_PATH}"
export SDL_SOUNDFONTS="${SDL_SOUNDFONTS:-/app/retrodeck/components/rtdink/dink/midi/TimGM6mb.sf2}"
log i "RetroDECK is now launching $component_name"
log d "Library path is: $LD_LIBRARY_PATH"
log d "AppDir is: $component_path"
exec "$component_path/RTDinkApp" "$@"

43
rtdink/component_recipe.json Executable file
View file

@ -0,0 +1,43 @@
{
"rtdink": [
{
"source_url": "$REPO_ROOT/$COMPONENT_NAME/rd_assets/rtdink.7z.001",
"source_type": "local",
"version": "2.08",
"extraction_type": "archive",
"assets": [
{
"type": "dir",
"source": "$EXTRACTED_PATH",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "create",
"dest": "component_version",
"contents": "$SOURCE_VERSION"
},
{
"type": "file",
"source": "$REPO_ROOT/$COMPONENT_NAME/retroverse_manifest.json",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "file",
"source": "$REPO_ROOT/$COMPONENT_NAME/component_functions.sh",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "file",
"source": "$REPO_ROOT/$COMPONENT_NAME/component_launcher.sh",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "file",
"source": "$REPO_ROOT/$COMPONENT_NAME/component_recipe.json",
"dest": "$COMPONENT_ARTIFACT_ROOT"
}
],
"libs": []
}
]
}

View file

@ -0,0 +1,15 @@
Compiled from source to get non-flatpak hardcoded binary:
curl -sL https://raw.githubusercontent.com/SethRobinson/RTDink/master/linux_setup.sh | bash
Date:
2026-10-14
Version:
https://github.com/SethRobinson/RTDink/tags
------- Change log for 2.08 --------- (March 2025)

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,437 @@
------ Change log for 1.7.0 ----------
* Upgraded source projects to Visual Studio 2017 (free community edition works fine)
* (bugfix) No longer forces reload of all graphics when saving the state
* (bugfix) No longer forces reload of all graphics and audio when losing focus/going into the background
* (bugfix) Fixed issue where screen scrolling could bug out if window was resized on windows
* Latest state data to "Continue" persists even if the game crashes now
* Added support for 64 bit builds (still fully compatible with existing save states/games)
* Added support for aspect ratio correction (can be disabled by enabling "Fullscreen stretch" in the options)
* Added IPV6 support
* (DinkC) Goto statements no longer require a ; at the end to work
* (iOS) Now compatible with iOS 11
* (Windows) Installer no longer requires admin privileges, now installs to local user's appdata dir (C:\UserName\AppData\Local\DinkSmallwoodHD)
* (Windows) .exe and installer are now signed with RTsoft's distribution certificate
* (Windows) Now checks for new versions on startup
* (Windows) Now writes the stack trace to log.txt if the game crashes (helps debug problems)
------ Change log for 1.7.1 ----------
(big thanks to Redink1 for most of these bug reports and the fancy shadows patch!)
* (Windows) Fixed app icon
* (Windows) Mouse-controlled screens in DMODs control better and hide the original mouse cursor
* (Windows) Now remembers screen size and fullscreen mode (don't forget, you can drag the window corners around to customize the screen size as well)
* (Windows) Input URL input area gets focus by default when installing a DMOD by URL
* (bugfix) Can no longer tap F8 during a game load to load a save state too early which can freeze the game
* (bugfix) Fixed issue where 32 bit tilebitmaps would go wonky when reloading the surface
* Default color under status bar is now black, fixes issue when transparent colors are used in the stats area, random garbage would show through
* (windows) Version # is now shown in title bar
* (bugfix) Fixed some issues with how default offsets are calculated, it fixed some problems where sprites would be in the wrong place in certain DMODs
* (bugfix, windows) "Smoothing" no longer incorrectly turns on if you lose/regain focus
* (windows) Added "Windowed Borderless fullscreen mode" toggle, defaults to off. It will try to do 640X480 at your native monitor resolution by default now on
a clean install. If you've dragged the dink window to a weird size it won't be able to go fullscreen which is kind of weird, but it does give a clear error message. It should probably
enumerate graphic modes and choose one if the current one is invalid, or let the user choose, meh
* Added redink1's "soft shadow improvement" patch
* (proton) Fixed issue with blitting alpha things to the background, fixed the soft shadows for things rendered into the background
------ Change log for 1.7.2 ----------
* Changed "FPS lock:" to "Lock to 30 FPS:" in options, makes it more clear it's actually bad to use and not vsync
* (Windows) Handles alt-tab and clicking on a different monitor while in native fullscreen modes better
* Added "Ghost walk toggle" to in-game cheat menu. Allows you to walk through solid objects and screenlocks
* (DinkC) Added support for Dan's load_tile() command
* (Windows) Added support for -game <dmod directory> parm to load a DMOD from anywhere on your HD. It also sets
the active DMOD dir to the DMODs parent directory for that session. Automatic state autosave, save/continue and quicksave/quickload work as expected by saving data to its directory
* (bugfix) Save states now properly load even if the DMOD directory has been cut and pasted to a new place
* (bugfix) Full state saves now properly setup backgrounds with correct vision modifications instead of assuming it was 0
- Due to minor changes in the save state stuff, I've versioned it so the game will refuse to load old versions (as always, this doesn't affect the normal save files, just the full state saves HD does)
* (DinkC) fill_screen works better and colors 0 and 255 are no longer sometimes reversed
* (bugfix) M can now be used to turn off the map, previously it only worked to turn it on
* (bugfix) Status no longer incorrectly draws over full screen bitmaps (like the map in Mystery Island) and is properly reconstructed in full save states
------ Change log for 1.7.3 ----------
* (DinkC) DinkC version is now reported as 110 instead of 109
* (Bugfix) Fixed issue with set_frame_frame, the DMOD Mayhem now works
* (Bugfix) Fixed another incorrect color issue with fill_screen (This fixed Initiation's title screen)
* (Bugfix) Fixed horrible issue where the last line in a script might not get run. This fixed the intro screen to Lost Forest Romp
* (Bugfix) Rewrote some nasty code that I could no longer understand, THE LAST QUEST (part 2)'s cool room slide/warp effect now works right
* Added "Debug DinkC Toggle" to cheat menu, it shows collision boxes and causes the log (log.txt or choose view log from debug menu)
* If fullscreen is at a weird size it will now just force it to 1024X768. If that fails, well, it won't be good
- Note: Save state format has been changed again, so old save states won't load
------ Change log for 1.7.4 ----------
* (Bugfix) Fixed a script crash. This bug was also in the legacy dink
* (Windows) "Tap to continue" is no longer shown when waiting for a keypress, but will still be shown on touch-devices
* Fixed bug where any DMOD directory starting with "dink" was ignored from the internal DMOD listing screen. Oops, that was a pretty bad one, sorry dinkcrft.
* (Bugfix) Fixed issue where default .ini animations wouldn't get applied correctly in some cases, this fixed a slight offset problem with Stone Of Balance
* Fixed problem with glitchy black lines during screen transitions
* (Bugfix) Fixed issue with playmidi and filenames that start with numbers over 1000, this fixed a problem with 1812over.mid not playing in Mayhem
* Added 1920X1080 screen mode selector in the Options menu
* No longer applying Dan's checkboard fix to tile screens (they don't need it I think..), and also added a hack so it will ignore main-02 through main-04.bpm (the dialog box) as it made it look weird
* Fixed some issues related to dynamic 8 bit to 32 bit surface changes (this can happen if you turn on the new shadows after starting to play or the game suddenly hits a 32 bit image)
- Note: Just to be safe, save state version has changed, so old save states won't load
------ Change log for 1.7.5 ----------
* Properly handles an illegal frame # sent to sp_frame instead of crashing
* (Bugfix) Fixed issue with not being able to set long delays in sprites (fixed dancing knight in Bugmania)
* (Bugfix) Fixed DinkC "!=" command which was renamed "!" for some reason. This fixed the goto in Bugmania
* Enabled support for >= and <= in DinkC, not sure why it was commented out before, they were active in 1.08
* (Bugfix) Status bar will now be drawn even when mouse mode is active if needed (it now shows up in Bugmania)
* Space no longer selects dialog, you'll have to use ENTER or CONTROL like on 1.08
* Mouse can now be used to select dialog options
* Fixed mouse issue with Bugmania in the town where it wasn't sending button down messages
* Made escape open the Dink HD menu even when wait_for_button is being used. This may be a problem if any DMODs require ESCAPE to be a button that is used though
- Note: Save state format has been changed again, so old save states won't load
------ Change log for 1.7.6 ----------
* Made Dink HD work with DFArc. Either you can put DFArc in the Dink HD dir and add "dmods" as the additional dmod directory so it can find
mods installed by Dink HD too, or you can keep Dink HD completely separate, and enter the full path/exe to Dink HD's .exe in DFArc config and that works too.
It's kind of weird that Dink HD puts its mods in a subdir called "dmods" as compared to the original Dink which useds its root dir. I could change that but.. meh.
* Added support for -window and -debug from the command line. Dink HD remembers the last setting already, so -window would only have any effect
if it was last used as fullscreen
* Added Dan Walma's improved shadow patch
------ Change log for 1.7.7 ----------
* Sprite blits that hang out of the game area are now rejected in some situations, to match functionality of Dink 1.08. (Bloop the fish on 1.08 looked right because it was getting ddraw errors when trying to draw the "blank" numbers because they were too big for the screen)
* A LOAD_SEQUENCE done after a LOAD_SEQUENCE_NOW in dink.ini is now ignored to match V1.08 functionality. This fixes the issue of a fish turning into an old man in Bloop the fish
* Alt-Q now closes Dink, to match 1.08
* Fixed issue with bubble magic not having a transparent background in Bloop the fish (was due to some changes to make fake magic/weapon icons work on mobiles.. I'll have to redo that later)
* Fixed issue with slow nagivation in Broken Windows due to too much logging about scripts being run
* (Bugfix) copy_bmp_to_screen issue where it might try to blit a 24 bit image onto 8 bit fixed (fixed incorrect images in Broken Windows)
* (Bugfix) key-<key num>.c scripts are no longer sometimes loaded multiple times
* Some tweaks to keyboard input so Broken Windows typing area works better, "," and "." are supported. Escape is as well but it also brings up Dink HD's menu which isn't great, but at least it works
* (Bugfix) Default transparency for LEFTALIGN things is now correctly white instead of sometimes not transparent
* The / divider on the experience display ( ns-11.bmp ) is now always "white transparent". This WAS the original way (check the Dink jewel case screenshots) but somehow in 1.08 and beyond this stopped being transparent. Fixing this fixed the white box in Bug Mania
* (Bugfix) Fixed "way too jumpy megapotion" bug
- Note: Just to be safe, save state version has changed, so old save states won't load
------ Change log for 1.7.8 ----------
* Fixed issue where launching dmods from DFArc with a dmod path not in DFArc's dir or Dink HD's dmod dir would fail
* Fixed compatibility so Freedink.exe and the dink.exe from 1.08 can be run from Dink HD's dir (previously, start.c had been hacked to skip stuff for the HD version,
it now checks version and if it's being run as a dmod or not and does it right)
* If you run the HD "dink" dir as a mod it now works as expected (it plays the normal game, including the old start up screen)
* Now including story/*.c instead of the .d files. No reason to hide them, right? (note: if you install over HD without uninstalling, the old .d files will still be there. But .c files are checked
first so it should be ok anyway)
* DMODs now default to the original .midi files rather than the .ogg CD music, as it changed the desired "feel" of some DMODs to switch to CD music. Running with -game dink causes Dink itself to
not use CD music as well, so for people who don't like CD music at all there's an option to play the original game with midis only
* (Bugfix) Dink HD will no longer try to grab missing sprites from the base dink dir, this fixes Dink's pushing anim in Zoltron
* (Bugfix) dmod installer no longer chokes on zero byte files (I'm looking at you, 9gems)
* (Bugfix) Fixed memory leak and possible crash related to script loading
* (Bugfix) Fixed issue with the checkerboard shadow processing where the 8 bit RLE decoder failed because it was expecting an 8 bit target (most bmps don't use RLE, but Alliance does in places)
* (Bugfix) Fixed issue with loading certain 16 bit bmps incorrectly, fixed tilted text in Infinidink
* Went ahead and decided to accept 252,252,252 as alpha if it's index 255 on an 8bit sprite. This fixed the white background issue with Alliance dmod as well as Dinkcraft
* FEATURE: Can now download all DMODs from Dink Network directly from inside the game via Dan's php interface. Can sort by rating, latest update date, or alphabetically
- Note: Just to be safe, save state version has changed, so old save states won't load
------ Change log for 1.7.9 ----------
* Dink now continues to download and install dmods when in the background, but everywhere else pauses automatically
* After installing a dmod, you can now choose to play it now or go back to the browse dmod list
* DMOD data downloaded from dink network is now cached for that session (it's not going to change so quickly, so why stress DN.com if we don't have to)
* (Bugfix) "installing <dmod>..." text message is no longer truncated in a weird way sometimes
* (Bugfix) Fixed another issue where a base graphic could fill in with a missing .bmp in a sequence when it shouldn't
* Huh, turns out .D files are always loaded before .C files. I switched back to including .D files, otherwise if you didn't do a clean install my start.c changes don't show up
* Fixed it so freedink.exe and the old dink can be run directly from the Dink HD directory without crashing. I didn't actually test it before, they didn't like / instead of \ in my .ini previously.
I also added the CD and splash.bmp that were missing
* Quick tip that pops up when playing the normal game now talks about the F1/F8 instant state save/load feature instead of talking about pressing the "pause icon" which doesn't even exist on the Windows build
- Note: Just to be safe, save state version has changed, so old save states won't load
------ Change log for 1.8.0 ----------
* Applied 16 bit bmp loading fix to "fancy shadows" version too, forgot before
* (Bugfix) Dink is no longer sometimes incorrectly shown on screen right as a dmod is started
* (Windows, DinkC, Performance) Logging code rewritten, it's was horribly slow before. If a DMOD spammed "debug" messages it would previously drastically slow down the entire dmod
* (Bugfix) LOAD_SEQUENCE and LOAD_SEQUENCE_NOW fixes, fixes stuff in many dmods
* Improved mouse handling on dialog menus, no longer accidently select the first option of the dink menu if you click slow after using HD's escape menu to get there
- Note: Just to be safe, save state version has changed, so old save states won't load
------ Change log for 1.8.1 ----------
* Escape now brings up the classic dink escape menu, the Dink HD menu was just too intrusive. It will show a text message that you can hit Shift-Escape to bring up the HD menu as well
* Made dialog box background look better by making it 32 bit with alpha, no more "cracks" at some resolutions. Custom dialogs may still get line cracks at non 640X480 but whatever
* Default resolution is now 1024X768 fullscreen instead of 640X480
* dmod listing is packed tighter and now sorted alphabetically by dmod name, not directory name
------ Change log for 1.8.2 ----------
* Changed release compiling a bit to enable C7 compatible debug info, may help with stack traces
* Oops, turned max sprites back up to 300 from 100, don't ask me how I managed that one
* (DinkC) A line of over 200 characters won't corrupt memory (new limit is 512) - this fixed a crash in Grasp of Darkness
* (DinkC) external commands no longer generate bogus errors in the log.txt due to how 1.08 added weird overloading stuff
* Now shows the dmod's splash.bmp during loading
* Fixed issue where music might not play on the title screen
* Raised "memory of dead background sprites" to 300 from 100 for Windows, up to 200 for mobile
* Doubled memory Dink is allowed to use before uncaching graphics not used recently (could probably be disabled entirely for Windows but whatever)
------ Change log for 1.8.3 ----------
* Added "If a .dmod file is put in the Dink HD directory (where the .exe is), it will be automatically installed and then deleted" to readme.txt
* Dialog box rendering was off a few pixels due to me forgetting to remove some tests I did, fixed
* Black at index 255 and white at index 0 is now forced during bmp loading. Windows does it, photoshop doesn't, but older versions of Dink (directx) seemed to do
it so going with that
* Invalid sprite sent to freeze/unfreeze will no longer crash the game (bug was also in original 1.08)
* Added hardening to check valid input on many script functions, will stop "sometimes" crashes based on bad scripting as well as log them
* Crash logging should show correct function names. I mean it this time!
------ Change log for 1.8.4 ----------
* Some changes to Dink's speed calculations, it's now basically locked at "you better get 60 fps or the whole game will slow down" - the
original system is REALLY bad and the timing of Dink vs monsters can vary wildly based on your framerate. So I sort of had to "choose" a correct
speed and go with that, I chose a pretty fast speed sort of arbitrarily because it "felt" ok. There isn't really a "correct" speed so I do expect problems with some dmods due to them expecting
a specific speed, but by choosing rather snappy speed hopefully mystery island and most of them will be finishable
* Related to the above, holding tab no longer lets you cheat by moving relatively faster than monsters
* Playing location aware sounds on a script not attached to a sprite will no longer cause crashes (should fix crash in malachi the jerk)
------ Change log for 1.8.5 ----------
* Tweaked speed a bit, sort of aligned it so the cutscenes in Initiation play right
------ Change log for 1.8.6 ----------
* (Windows) Running "dink.exe c:\temp\ACoolDMOD.dmod" from the command line will now install it, then run it. (original dmod file won't be deleted) Just seemed weird that this didn't exist so added it
* DMOD installer progress now switches to showing MB instead of K if the size is big
* BUGFIX: Fixed map loading bug that could crash the game (I added this one recently trying to clean up code to use more consts rather than magic #s, but there is always the risk I stupidely break something!)
* load_tile no longer instantly takes effect but requires a draw_screen or moving screens, this matches how 1.08 worked. Loading a save state or resizing the window will cause it to happen early, but hey, close enough
* BUGFIX: Fixed extra nasty bug where logic on certain things like charging your magic would pause the amount of time you used TAB to skip time
- Note: Just to be safe, save state version has changed, so old save states won't load
------ Change log for 1.8.7 ----------
* Savestates should now properly restore the background in dmods that use mouse controls and tiles at the same time
* Some tweaks with when mouse buttons are processed (only in mouse cursor modes or a dialog menu)
* Misc work on touch controls to prepare for the mobile releases
* Added some names to credits (if you notice I added anybody twice or would rather be credited a different way or not at all, let me know!)
* Fixed bug that could sort of over-write random data if more than 100 sprites were active.. wow, bad
------ Change log for 1.8.8 ----------
* Mobile GUI tweaks
* Added option to disable screen scroll transitions, one of my Android test devices has the slowest glread in the world, it's like 1 full second to walk to the next screen because of it. This might make dmods that
use timing (Myster island camera sequence for example) easier though, not sure.
* Fixed issue where behavior of two load_sequence commands in a row on the same sequence differed from 1.08 (in 1.08, max frame is set to the second one as long as the first one wasn't actually loaded yet. key now shows up in TGKA)
* Fixed regression where offsets in Mayhem were incorrect on the hand mouse pointer
* Upped max frames per seq to 100 instead of 50, fixes Echoes of the Ancient. I should probably make it dynamic but changing one const number is much easier!
* Now gives a clear warning in the log.txt if a seq tries to go beyond what it can handle and will truncate it (better than breaking the whole sequence as it did before)
* Added support for a weird bmp header type, fixes incorrect palette issue in the dmod The Orb of Darkness
* Fixed life/exp/health to correctly interpolate between values like the original dink, huge thanks to Dan's detailed bug report on this, he even made a mod which made testing the fix a breeze!
* BUGFIX: .dmod files detected in the main Dink HD dir are now properly deleted after auto-installing them
* (Windows) Key binding changes: F1 now brings up the Dink Menu (Shift-Escape was .. weird..) and quicksave was moved to F4
- Note: Save state version has changed, old save states won't load!
------ Change log for 1.89 ----------
* Added Dan Walma's .png support (untested)
* Another bugfix in the .dmod decompresser, fixes issue with Attack of the veggies
* (Windows) Holding Shift in addition to Tab will cause "super turbo" mode, speeding up the game faster than just holding Tab. (Secret tip: If you really want to see speed, hold down the Control key too)
------ Change log for 1.90 ----------
* iOS version recompiled as Release instead of debug, oops
* OSX version released as a code-signed secure download from rtsoft.com. Removed from Mac App Store. It supports notifying the user about
new versions, same as the Windows version. Like the windows version, the window can be stretched to any size, but it lacks a full screen option.
------ Change log for 1.91 ----------
* This release fixes CVE-2018-0496: Sylvain Beucler and Dan Walma discovered several directory traversal issues in DFArc, an extension manager for the Dink Smallwood game, allowing an attacker to overwrite arbitrary files on the user's system. (While this doesn't use DFArc, some of the same "zip slip" issues applied)
* Applied Dan Walma's fix so DinkHD would not incorrectly interpret sp_frame(x, -1) as sp_frame(x, 1), this fixes an issue with the Malachi the Jerk DMOD
------ Change log for 1.92 ----------
* (Bugfix) Fixed issue that caused graphical glitches in the DMOD Revolution
* Looping sounds like fire/save machines now properly pause when app loses focus
------ Change log for 1.93 ----------
* (Bugfix) Fixed crash in Windows 10/11. What was the problem? I'm not sure, simply rebuilding the game with my current dev environment was enough to fix it
* "Cheats" button renamed "Debug tools" and only show the cheat options if debug mode is enabled, then you re-enter the menu. Seemed like having cheats
right in your face is a bad idea and probably caused people to ruin the game by cheating even when they didn't need it
* XInput gamepads now supported, can be plugged/unplugged during play
* Misc fixes to how windowing/resolutions worked, removed some code that caused weird buggy behavior in Win 10/11, was written long ago
* Added quit button (Windows version)
------ Change log for 1.94 ----------
* Should work on Windows 7 again (in theory.. uhh.. )
* Now using HTTPS for all communications/downloads on all platforms
* Download & DMOD install is now much faster
* Windows now using a 64 bit build and latest FMOD Studio version for audio
* BUGFIX: All cheats now properly show up if DinkC Debug Toggle is used from the debug mode (previously, Ghostwalk didn't appear)
* (Android) Fixed issue with Android 11 not being able to save
* (Windows) Running dink.exe with /? or --help will now show a list of possible command line parms
* (Android) Now using FMOD for the sound engine here, now all supported platforms have audio feature parity and should sound the same
* BUGFIX (Android): Installing certain large DMODs will no longer crash due to JNI not being able to garbage collect strings fast enough,
although this bug might be something that only happened on this build due to DMOD install optimizations, not sure
* (Windows) Added note on about screen: "Click and drag to move this window, yeah, this GUI was originally made for mobile so it's weird",
* (Desktop versions) In-game Options menu now shows active dink and DMOD paths, About page shows dink dir and dmod base dir
* Midi improvements - using a new MIDI soundfont ( GeneralUser GS 1.471.sf2, but I converted it to .dls1 as FMOD only supports that) -
I think it's probably better than the default Windows midi player so I went ahead and enabled it for Desktop versions too, but .. I don't know,
I feel like some instruments are a bit loud in some midis, but I guess it's probably because different midi authors worked with different
soundfonts and engineered them to different audio levels, so fixing volume for one song makes it too loud on another. Hrmph
* DMOD browse menu (showing things you can install) now shows file size
* BUGFIX: Plugged in XInput devices no longer cause dink to stutter while walking if using keyboard to move
* BUGFIX: Fixed some weirdness that happend if DPI scaling is enable
------ Change log for 1.95 ----------
* Fixed 25 year old strcpy usage issue with overlapping the dest and src locations which you shouldn't do,
strangely the first time it actually caused a problem (AFAIK?) was on a recent Android build that
was crashing on some devices when New Game is clicked.
------ Change log for 1.97 ---------- (July 2022)
* BUGFIX: Fixed issue with black tiles at the start of Charlie's Legacy (Now properly rebuilds surfaces when dynamically switching from
8 bit to 32 bit color back buffer mode, it does this the first time it detects high color sprites in a dmod) (Robj)
* BUGFIX: Fixed issue with pushing animation code that caused Charlie's Legacy to freeze dink on frame 1 when pushing (Robj)
* Unless you're using touch controls, choosing an inventory item will no longer auto-close the menu, not really need for
keyboard/gamepad players (robj)
* load_script gives a warning to log if you try to load a script to a sprite that doesn't exist instead of crashing
* Added support for bmps using "bitfields" (to Proton), have never seen one in the wild, but Charlie's Legacy's map-03.bmp uses it
* BUGFIX: Unknown procedures give correct error in log, before it would include weird garbage
* HUGE speedup on script loading, fixes slowdowns in Charlie's Legacy sliding puzzles
(and pretty much any dmod that does intensive script processing)
* (Windows) I see possible issues with the script "return var" statement and stack problems, it doesn't properly
handle recursion well and will kill the stack if enough calls are made in the same loop. Instead of a real fix, I've increased the .exe's stack
from 1 mb to 50mb on Windows for now, will revisit issue later probably when handling mobile builds
* No longer writes "drawing hardmap" to the log
* BUGFIX: Fixed *.pdb open error which caused log.txt crash info to log less than it should have
* Changed every single sp_<something> command so it won't crash on a bad sprite index, will log it and return -1 to indicate an error
* BUGFIX: Fixed issue where reloading sequences in DMODS could eventually crash the game (Robj)
* Audio assigned to an invalid sprite owner no longer causes crashes (Robj)
* Say() command with invalid sprite no longer causes crashes (Robj)
* A manual draw_status dinkc command now causes status bar variables to be updated instead of animating the differences, to match other dink engine versions (robj)
* BUGFIX: Reloading sprite sequences with longer ones no longer loses set_frame_frame info (Robj)
* Added "Unfreeze Player" command to the secret debug menu
* Tab or Shift-Tab or Ctrl-Shift-Tab "speedups" now properly also speed up certain timers that it was skipping (robj)
* Quicksave/quickload moved to F5-F9 the "standard" keys. (Skurn)
* -game option now properly handles quotes and spaces in filenames (ebilV)
* (android) External keyboards now fully work, you can turn down the onscreen controls and just play
with keyboard now
* BUGFIX: "Use F1 to bring up the Dink menu" message will no longer get stuck on the screen (Robj)
* BUGFIX: Fixed issue where sometimes the mouse cursor would stop showing up in the Dink HD F1 menu (ebilV)
* NEW DINKC COMMAND: set_disable_savestates(1) to disabled. 0 to enable, -1 to return the current status. Note: Autosaves will continue to
function normally, and the current savestate status will be respected in autosaves as well
* NEW DINKC COMMAND: show_quick_message("Hello! `4This is red``. `2Green``."); shows a quick message over the dink screen, useful for showing quick messages, I used it
for testing stuff. Works with SANSI color codes. Oh, I guess all Dink text works with color codes actually.
* get_version() now returns 111. (dinkC version incremented by one due to added new scripting commands).
Reminder: you can use get_client_version if you want 197, the client exe version.
* If dinkc debug mode is on, now logs extra info about "external" calls being done
* Reworked dinkc to use much less stack memory, fixes issue on Android with nested "external" calls
* Controller support improved on Windows and Android, 8Bit Do, Nintendo Pro, PS4,PS5,XBOX should be auto-mapped right. Start on controllers
now always opens the Dink HD menu, pushing left/right allows selecting save/load state easily. Select button will open
the classic Dink menu.
* Changed default sorting for the in-game DMOD browser to "Newest", this way active DMOD authors might get an extra boost of motivation by getting
more downloads. A player can always tap it to change to sort by rating or alphabetical of course
* Improved the DMOD browser a bit, more text fits when browsing the list to install
* BUGFIX: No longer sometimes crashes if you resize the window moving crazy while holding down Shift (non proportional resize mode)
------ Change log for 1.98 ---------- (August 2022)
* (iOS) Native Bluetooth controller & keyboard support added, same as Win and Android builds
* Added an emulated pointer where needed, all GUI screens can now be 100% controlled by controller or keyboard,
mouse/touch not required anymore
* DinkC addition: get_client_fork() added. Always returns 1.
* get_version() incremented one due to the above change. Now returns 112
* (iOS/Android) BUGFIX: show_bmp dinkc command will no longer fail on some dmods due to case sensitivity of linux based systems
* No longer drawing a black square behind the active magic icon. No idea why I was doing that. (Robj)
------ Change log for 1.99 ---------- (August 2022)
* map_tile dinkc command now checks ranges and if there is actually source tile data to write in that index (ebilV, Robj)
* Detects and fixes a rare situation where a sprite is connected to a dead script (Robj)
* Disabled the window bar menu, alt would appear to freeze the game (Robj)
* Properly shows correct dinkc version when starting a dmod, before showed incorrect version (Robj)
* if update_status is disabled, it doesn't blank out that area, it just leaves whatever was there (Robj)
------ Change log for 2.02 ---------- (November 2023)
* say() text is now drawn under choice menus rather than above, previously dmods that used sp_kill to make text permanent could cause visual problems in choice menus (Robj)
* A saved game is no longer included, oops
* The screen scroll effect now respects sprites that were drawn over the GUI parts (Robj)
* Overlapping text is easier to read now, for two reasons, the main problem was Proton SDK does batching under the hood (this didn't exist when the original Dink HD was made) and it was trying to batch all the the text backgrounds together on the same layer which isn't what we wanted, and two, I made the bg slightly darker
* attack_wait for sprite 1 is now preserved across saves to match functionality of other dink versions (RobJ)
* DinkC change: LogMsg (a script command that let's a script print text to the log.txt file directly) now properly handles &variables
* DMOD installer fixed to work with older v7 tar format (big thanks to drone1400 for help with this)
* DMOD installer fixed so it wouldn't fail with a stack overflow with certain dmods (cast_awakening_part_5_revolution-v1_00.dmod)
* (Windows) I added "dink.exe <dmod url> will install a dmod directly from the net." to the dink.exe /? command line help screen. Not a new feature but I don't think I ever told anyone about it
* Dink source updated to compile with (up to) C++ '17.
* Scrollbars can now be manipulated with a mouse as expected, in addition to the normal "click the content to move it" carry over from touch screens on mobile. I added this because it turns out having nearly 400 dmods installed was too slow to navigate without it
* Will now use .png tile screen images if available
------ Change log for 2.05 --------- (April 2024)
* BUGFIX: Detects divide by 0 errors in some DinkC situations and avoids a crash (Fix by drone1400)
* BUGFIX: Fixed issue where HD would get tricked into improperly eating a punch/magic keystroke to skip dialog when DMODS did certain tricky things (SimonK)
* Now correctly handles the case when a DMOD directory filename is different than the savestate it is in (ie, it was renamed after the savestate was made)
* (Win) Added "-skip" command-line parm support, will skip the new version check and make the main menu load without fancy animations
some Windows/proton keyboard problems. At least the method I used should work on non-US keyboards too
* Added "Force save to slot 9" option to debug menu, might break the game but useful for debugging because unlike savestates it will force all scripts to be reloaded
* (Win) Added ` (backtick) to toggle an overlay window showing the log. I wanted to do Shift-Tilde or something so it wasn't accidently hit but ran into
* Removed "View log" from debug menu because the above option replaces it
* Added "set_music_vol" DinkC command. Accepts between 0 and 100. 50 means set the music/midi to 50% of whatever the current setting is in options.
* get_version now returns 113 instead of 112 due to the DinkC addition
------- Change log for 2.06 --------- (April 2024)
* BUGFIX with map_tile, now goes 0 to 5247 (Robj, yeoldetoast, https://www.dinknetwork.com/forum.cgi?MID=209752&Posts=16 )
* BUGFIX with disable_all_sprites/enable_all_sprites (Robj, yeoldetoast, https://www.dinknetwork.com/forum.cgi?MID=209752&Posts=16 )
* sound_set_vol behaves more like original Dink ( https://www.dinknetwork.com/forum.cgi?MID=209752#209908 )
* Text fit better inside the black background (RobJ)
* Text stays visible during fades to match functionality with the original (RobJ)
------- Change log for 2.07 --------- (June 2024)
* Catches and logs invalid seq ids from the dink.ini instead of crashing (Simon)
------- Change log for 2.08 --------- (March 2025)
* Checked midi issue with 9 gems of life II, 1.mid doesn't play at startup because FMOD doesn't like the format of it. If replaced with a different midi it will work. (unfixable by me, FMOD issue)
* make_global function now works (thanks RobJ, yeoldetoast)
* text brains X won't go past 470 (for RobJ)
* re-enabeled preload_seq DinkC command
* Added get_dinkspeed to DinkC (RobJ)
* gfx_alttext_disable in the ini will disable the text shadow effect. set_gfx_alttext_disable(0 or 1) can also be used in DinkC (for RobJ)
* Fixed issue where some variables weren't be totally cleared when a second game/dmod was loaded, could cause the intro screen to have tiles on it from the previous game, oops
* set_use_latest_fixes_level() dinkC command added, currently level 1 will cause next two bugs to be fixed. (the idea is new DMODs can say "hey, fix the bugs" but old ones won't break because things got fixed.
* Fixed issue where the black background used with aspect correction of the window size might not fully cover an 8k monitor (untested, I don't have one!)
* When playing with "Smoothing" off and at an exact 4:3 screen ratio, DinkHD will now be "pixel perfect" (thanks Drone). I guess with some work this could also work with smoothing on (sub pixel and texture clamp settings?) but maybe for another day
* Dink limits have been increased so folks like Simon making more demanding DMODs can be supported (trying to keep it roughly in parity with YeOldeDink as well)
-Sorry, I was too lazy to make it stay compatible with old save states, but of course normal save-machine saves work
const int32 C_MAX_SEQUENCES = 2000; //Max # of sprite animations, was 1300
const int32 C_MAX_SPRITES_ADDRESSABLE = 30000; //was 6000
const int32 C_MAX_SPRITES_AT_ONCE = 300; //don't change, there are still hardcoded numbers elsewhere and some weird stuff with screen lock and "flub" stuff whatever that is
const int32 C_MAX_SCRIPT_CALLBACKS = 200; //was 100
const int32 max_vars = 250;
const int32 C_MAX_SCRIPTS = 400; //was 200
const int32 C_DINK_VERSION = 114; //dink script version
const int32 num_soundbanks = 64; //was 20
const int32 max_sounds = 200; //was 100
const int32 C_TILE_SCREEN_COUNT = 61 + 1; //(20 more than before)
#define C_MAX_BACKGROUND_SPRITES_AT_ONCE 200
#define C_MAX_SPRITE_FRAMES 100
if set_use_latest_fixes_level() is > 0 these bugs are fixed:
BUGFIX: "/=" math operations now work correctly (previously, only "/" worked right.. so er.. yeah)
BUGFIX: Missile weapons with an odd # like strength 5 can now actually do 5 damage sometimes, previously they couldn't due to using integer division

View file

@ -0,0 +1,62 @@
{
"rtdink": {
"name": "RTDink",
"core_framework_compatibility": "1",
"component_version": "1.0.0",
"schema_version": "1",
"min_client_schema": "1",
"id": "rtdink",
"class": "component",
"capabilities": [
"reset",
"open"
],
"url_rdwiki": "https://retrodeck.readthedocs.io/en/latest/wiki_retroverse/engines/rtdink/rtdink-guide/",
"url_webpage": "https://www.dinknetwork.com/",
"url_donation_purchase": "https://www.gog.com/en/game/dink_smallwood_hd",
"url_source": "https://github.com/SethRobinson/RTDink",
"component_type": "Engine",
"description": "RTDink Engine for Dink Smallwood HD and dmods.",
"system_friendly_name": "Dink Smallwood HD",
"system": "dink",
"artwork": "artwork/thumb.png",
"tags": [
"engine",
"game"
],
"es_de_config": {
"es_find_rules": {
"emulators": [
{
"name": "RTDINK",
"description": "RTDink - Dink Smallwood HD Engine",
"rules": [
{
"type": "staticpath",
"entries": [
"%COMPONENT_PATH%/component_launcher.sh"
]
}
]
}
]
},
"es_systems": [
{
"name": "dink",
"fullname": "Dink Smallwood HD",
"path": "%ROMPATH%/dink",
"extension": ".dink",
"commands": [
{
"label": "RTDink (Standalone)",
"command": "%EMULATOR_RTDINK% %ROM%"
}
],
"platform": "pc, pcwindows",
"theme": "dink"
}
]
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 KiB

View file

@ -0,0 +1,32 @@
{
"zork-trilogy": [
{
"source_url": "$REPO_ROOT/$COMPONENT_NAME/rd_assets/zork-trilogy.zip",
"source_type": "local",
"extraction_type": "archive",
"version": "$ZORK-TRILOGY_DESIRED_VERSION",
"assets": [
{
"type": "file",
"source": "zork-trilogy/zork1.z3",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "file",
"source": "zork-trilogy/zork2.z3",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "file",
"source": "zork-trilogy/zork3.z3",
"dest": "$COMPONENT_ARTIFACT_ROOT"
},
{
"type": "dir",
"source": "docs",
"dest": "docs"
}
]
}
]
}

View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 Microsoft
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Binary file not shown.

View file

@ -0,0 +1,35 @@
{
"schema_version": "1",
"min_client_schema": "1",
"id": "zork-trilogy",
"class": "data",
"name": "Zork Trilogy",
"description": "The full Zork Trilogy is a collection of three legendary classic interactive fiction games for the Z-machine.",
"version": "1.0.0",
"tags": [
"game",
"rom"
],
"requires": [
"component:retroarch",
"component:gargoyle"
],
"artwork": "artwork/thumb.png",
"files": [
{
"source": "zork1.z3",
"destination": "$roms_folder/zmachine/zork1.z3",
"policy": "replace"
},
{
"source": "zork2.z3",
"destination": "$roms_folder/zmachine/zork2.z3",
"policy": "replace"
},
{
"source": "zork3.z3",
"destination": "$roms_folder/zmachine/zork3.z3",
"policy": "replace"
}
]
}