WADPunk is a cross-platform app to help you manage your WAD library and launch Source Ports like GZDoom.
The idea is you have a Games folder filled with .wad
files or folders. WADPunk
will read everything in that folder and present them as Games which you launch
in a Source Port.
Games can be tagged with anything you want, and some default tags are included.
iwad
is a special tag used so WADPunk knows which IWAD to use when launching
your game. Anything tagged with that will be presented for you to choose from
when launching a game.
You can then launch those games and:
- Specify a Source Port.
- Separate save files.
- Use a separate config (optional).
- Easily add other .wads.
- Choose from any of your IWADs.
- Drag + drop to sort all files.
- Specify .deh and .bex files.
WADPunk was inspired by Doom Launcher.
The UI lives in src/
, while the backend lives in ./src-tauri/src
.
./script/start
Communication between the UI and backend is done via GraphQL.
To add new types, queries, or mutations, edit schema.graphql
and run
./script/prepare-env
.
After adding new Queries / Mutations, or "complex" fields, you might need to
implement the method in ./src-tauri/src/graphql/datasource.rs
. You can find a
reference implementation in ./src-tauri/src/graphql/datasource_impl.rs
Edit a file named operations.graphql
in the directory of the feature.
Say for example you made this operation:
query Example {
getGames {
id
name
}
}
Then you would use it like:
const { data } = useSuspenseQuery(ExampleDocument)
And if you'd like, an interface for the response would be available as
ExampleQuery
, and an interface for the variables would be available as
ExampleQueryVariables
.
For a mutation, it's exactly the same, except instead of Query
in the names
above it would be `Mutation,