Dweep Genesis#

Project source at lucaspcamargo/dweep-gen

Build Status

A demake of Dweep for the Sega MegaDrive.

Screenshot of the game

About#

This is a work-in-progress SGDK port of the old shareware game Dweep. The main objective of the project is to be a good C programming exercise, and a way to practice coding for the MegaDrive.

Most of the game is working, and all of the 10 starting levels are playable. There are missing and incomplete behaviors and objects on the simulation. Also, the game as a whole is still missing things such as saves and menus.

Some songs were rearranged using the Furnace tracker. Others were converted using libOPNMIDI (midi2vgm), and still need some manual adjustment or a proper arrangement. SFX was imported straight from the original game. Art uses LibreSprite for tilesets and sprites, and Tiled for tilemaps.

The original Dweep was created and programmed by Steve Pavlina, with music by Michael Huang.

Try it Out#

You can try the latest build, with debug enabled, running in an emulator in your browser.

Mouse support is enabled, and mouse will be captured on first init. Click to start.

Controls:

  • Arrow keys: move cursor

  • A: click with cursor (A button)

  • Z: previous tool (B button)

  • X: next tool (C button)

  • Enter: pause, menu, start (Start button)

  • F1: open RetroArch menu

Download#

Download the latest build here.

Building#

For any build method, you will need Python 3 with the lxml library.

Using the CI script#

This requires docker. Just run scripts/ci-build.sh. The output will be at ci-build/out/rom.bin. Thanks to doragasu for the docker container script.

Manually#

  1. Init and update git submodules (git submodule update --init)

  2. Run the map processor script beforehand (./scripts/process_all_maps.sh).

  3. Also run the string processor script (./scripts/process_strings.sh).

After this, it should not be different to build than any other SGDK project. Using version 1.90. After installing the toolchain, check the usage documentation. But in general, running make -f ${SGDK_LOCATION}/makefile.gen build should do it.