You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
kubilus1 78f4808838
Merge pull request #46 from kubilus1/upgrade-141
2 months ago
.circleci Release on tag 7 months ago
doc set FreeBSD instructions to pull from main kubilus1 repository 2 years ago
examples Update to SGDK 1.40 7 months ago
extras Support multiple input files. Look for .mtl files with same name as obj 5 years ago
gen_gcc Build changes 1 year ago
pkg/DEBIAN Update to SGDK 1.40 7 months ago
sgdk Add patch file 2 months ago
toolchain Makefile modifications to allow build on FreeBSD 2 years ago
tools Makefile modifications to allow build on FreeBSD 2 years ago
.gitignore Add a simple Dockerfile 4 years ago
.travis.yml Fix smaples and patch 6 months ago
Dockerfile Fix sample and Dockerfile 6 months ago
LICENSE Add LICENSE file 1 year ago
Makefile Fix sample and Dockerfile 6 months ago
README.md Fix sample and Dockerfile 6 months ago
_config.yml Set theme jekyll-theme-minimal 2 years ago
logdoer.sh Probably DON'T want a sleep there. 2 years ago

README.md

GENDEV - Genesis development environment for Linux.

Gendev exists to setup a Linux (or presumably other Unix) system for Sega Genesis development. Gendev is not intended to replace, but to be a companion project to the SGDK (Sega Genesis Development Kit).

BASIC INSTRUCTIONS

The quickest way to get going would be to simply install one of the release packages for this project. Both a ‘txz’ and ‘deb’ package are provided.

To run SGDK or in our case, Gendev, you need following packages:

  • texinfo
  • openjdk-8-jdk

USAGE

SETUP

Set the GENDEV environment variable to the install location of the project. Typcially this should be ‘/opt/gendev’

$ export GENDEV=/opt/gendev

You may, perhaps, add this into your bash profile for ease of use.

BUILDING SGDK PROJECTS

You may enter your project directory, or perhaps SGDK sample directory and build the projects by specifying the provided makefile.gen.

$ cd myaweseomeproject
$ make -f $GENDEV/sgdk/mkfiles/makefile.gen clean all

You may wish, alternatively, to copy the makefile directly to your project.

PROJECT STRUCTURE

  • gendev - Top level where things generally start from. Start building and packaging here.
  • gendev/toolchain - Where the GCC toolchain build lives
  • gendev/sgdk - Where the sgdk patches and setup lives
  • gendev/tools - Where support tools live
  • gendev/examples - Old example projects
  • gendev/extras - Old helper projects

TOOLCHAIN BUILDING

The toolchain is now setup with CircleCI for continuous integration. This should ease porting and allow better validation of incoming patches.

You may decide to build the full toolchain by making sure you have the following package installed:

  • git
  • build-essential
  • texinfo
  • curl
  • wget
  • unzip

and then:

$ cd gendev
$ make

… and wait about 45 minutes or so.

The .circleci/config.yml script is a good place to look to see how the individual build stages are executed.

DESIGN PHILOSOPHY

Initally this project was a quick hack pulling together GCC build chain scripts from ChillyWilly, and slapping together some hacks to get SGDK to compile under linux.

In effect this was at least 2 projects in one:

  1. A m68k build chain geared towards Genesis/Megadrive development
  2. An SGDK port to linux.

The original approaches led to encouraging users to rebuild toolchains, long build times, and large file footprint. Plus it was very difficult to maintain.

I am attempting to:

  1. Not necessarilly require building everything
  2. Shorten the build time
  3. Hook up with continuous integration tools
  4. Reduce the footprint
  5. Organize better
  6. Minimize changes to SGDK to make porting version easier

NOTES:

  • The 32x stuff is currently deprecated. I may create steps to build this toolchain again in the future.
  • All testing is done on 64bit Ubuntu installations, specifically Bionic. Your mileage may vary with other distros.
  • FreeBSD instructions
  • This project is still way too messy, and hopefully I have time to cleanup cruft bit by bit.
  • I welcome patches and pull requests.