Discover SGDK (GCC and Development Libraries for Sega Genesis)

Their github wiki has some example tutorials that are imminently readible without any resorting to pointers or assembly.

I was a little shocked at how clean this could be for a 16bit era console. Having checked in periodically for such a thing on the SNES and found little promising in the short term that wasn’t heavily reliant on assembly. There are obviously some advantages to the fact that the Genesis uses a mainline motorolla still supported by GCC. Where as the SNES’s main processor didn’t have the same staying power outside of the SNES.

The only other things similar that I have tripped over this clean to me, are targetted at gameboy development or 32bit systems and newer. (And GBDK has be unmaintaned for a good long time, unless something’s changed recently.)

https://stephane-d.github.io/SGDK/

Completion Goals:
Build Hello World and write some code that involves more than one sprite, and be able to report back.
[*] Warez page, per Make warez directory

There is no resources at https://stephane-d.github.io/SGDK/ any longer.

To be on the safe side:

@trashHeap, proposal! Change the goal of this to create a data page about the SGDK, itself spawning conversations about what a dev kit is, how to categorize it, etc. And we can make a new “Build Hello World in SGDK” quest.

Or! Let’s get started. I’m game to play along at home.

Whatcha got time for? :slight_smile:

Ill be honest Im trying not to create any new quests right now. But feel free to edit this / fork / or split this off into a new thread. I may join in as I have time/energy. Im unlikely to forget SGDK and its an easy enough quest to recreate.

Ive been in a weird headspace for most technical quests or thinking about such things for a bit.

1 Like

Well if you are into more of a “fill out this survey” mood…

Name
Status (Dead/Healthy/Abandoned/Maitenaned/Security Patches Only)
Release Schedule/Cycle
License
Is license OSI/FSF/DFSG approved ?
Runtime (Java / Electron / NodeJS / Native (or libc) / etc.)
Widgets ( Qt / Gtk / Coacoa / Windows Forms / Swing / etc. )
Platforms
Build System
Website
Repository
Function ( Text Editor / Compiler / Calculator / Emulator / etc.)
Online Required
    Decentralized / Centralized
    Peer to Peer
Protocols supported
Web Based
    Supported Web Servers
DRM & Type of DRM
Last known price
Publisher
Studio / Lead Dev
Package types available ( DEB / RPM / Flatpak / Snap / MSI / Installshield-EXE etc. )
Initial year it became available.
Recommended by other Talkgroup/Mage party member
Governance Model

:slight_smile:

I know the rough history of Inform very well and could do most of it’s list from memory. I don’t know SGDK nearly as well but I think I can infer a lot. Lets see.

  • Name: SGDK
  • Status: Maintained
  • License: Gotta be GPLv3 as it’s GCC based.
  • Is license OSI/FSF/DFSG approved ? Yes
  • Runtime Executes natively, outputs sega genesis binaries.
  • Widgets: None but integrates with IDEs.
  • Platforms: Likely anything suffeciently unix-ish and Windows and macOS.
  • Build System: GNU config/make. (GCC based right?)
  • Function: Compiler and code ibraries.
  • Online Required: No
  • DRM & Type of DRM: None
  • Last known price: Gratis
1 Like

I’m not gonna throw all warez queries at ya! :slight_smile: I just figured that you probably spent the most time of any of us, and that gives us a great start. :sunglasses:


This quest depends on Make warez directory. Go there now! :slight_smile:

Hey, I just learned about the GCC Runtime Library Exception.

https://www.gnu.org/licenses/gcc-exception-3.1-faq.html

My eye immediately went to https://allthe.codes/mirror/sgdk/src/branch/master/COPYING.RUNTIME, which begins:

GCC RUNTIME LIBRARY EXCEPTION

Version 3.1, 31 March 2009

Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

This GCC Runtime Library Exception ("Exception") is an additional
permission under section 7 of the GNU General Public License, version
3 ("GPLv3"). It applies to a given file (the "Runtime Library") that
bears a notice placed by the copyright holder of the file stating that
the file is governed by GPLv3 along with this Exception.

But there is also a file at https://allthe.codes/mirror/sgdk/src/branch/master/license.txt,

MIT License - Copyright (c) 2019 Stephane Dallongeville

Which made me pay more attention to the readme:

SGDK library and custom tools are distributed under the MIT license (see license.txt file).

GCC compiler and libgcc are under GNU license (GPL3) and any software build from it (as the SGDK library) is under the GCC runtime library exception license (see COPYING.RUNTIME file)


Okay, so that’s that. How do we want to portray this information in a directory? Is that a “dual-license”? What is useful/interesting? :slight_smile:

I hate the first pass for the SDGK warez page:

https://interi.org/warez/sgdk/

:slight_smile:

Listen, if I don’t start somewhere, I’m never gonna figure this out. Now I just need to work my way through the front matter, make some decisions.

https://allthe.codes/interi/warez/src/branch/master/sgdk.md

This isn’t a dual license per se. Or atleast not in the normal FSF/OSI lingo.

What we have here is a project running a composite of compatible licenses. Without digging into the source code deeper, the final binaries are likely all GPLv3 or GPLV3 with some MIT libraries. (very likely the later).

Dual-licesning as a term is usually when the whole project is covered by multiple libraries entirely. Not just piecemeal. Usually because the single copyright holder over the entire codebase is trying to serve multiple audiences. You see this from time to time in vanilla floss projects but it also comes up with open-core stuff or people who dual license to commercial vendors who don’t want to GPL their changes.

Linking exceptions are pretty common when you get digging. Doubly so for compilers / programming languages. I’d recommend against tracking them mostly because it falls below the granluarity you see in most package managers.

They mostly exist to make sure the GPL isn’t infecting things you make with GPL licensed tools. OR when a GPL program needs to link to an incompatible library/license. (discouraged but sometimes done.)

2 Likes

For our purposes, a single license of MIT is correct? Is having compiling exceptions an attribute we ought to track?

HRM… looking at this repo deeper and it’s kinda wierder than I thought at first or second glance.

So I think its MOSTLY what I thought GPLv3 Binaries + MIT Libraries.

But their is no GPLv3 source code in their she is just broviding GPLv3 binaries for windows, and precompiled GCC runtime for motorola. All the actual code is MIT. Odd.

1 Like

I believe so.

Tracking the compile/linking exceptions… I dunno. I don’t think most of us would find it useful. It’s deffinitely below the threshhold of most package managers. Which makes me think tracking it is awfully niche.

1 Like

My plan was for one person to add stuff they wanted to a particular archive, and others take it and run with it as desired. I have enough of a warez page for SGDK except a decent description.

@trashHeap, how would you describe this, in that meta-tag description kinda way? :slight_smile:

The page is available for updating, evermore. :slight_smile: I put a concise description there:

https://interi.org/warez/sgdk/

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.