Giter Club home page Giter Club logo

sgdk's Introduction

SGDK 2.00 (January 2024)

Copyright 2024 Stephane Dallongeville

Patreon: https://www.patreon.com/SGDK
Github: https://github.com/Stephane-D/SGDK

SGDK is a free development kit allowing development of software in C language for the Sega Mega Drive. It contains the development library itself (with the code sources) and some custom tools used to compile resources. SGDK uses the GCC compiler (m68k-elf target) and the libgcc to generate a ROM image. Binaries (GCC 6.3) are provided for Windows OS for convenience, but you need to install it by yourself for other operating systems. Note that SGDK also requires Java (custom tools require it), so you need to have Java installed on your system.

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)

GETTING STARTED

First, you need to know that SGDK uses the C language (assembly is also possible, but not necessary) so it's highly recommended to be familiar with C programming before trying to develop with SGDK. Learning C language at same time as learning 'Sega Mega Drive' programming is definitely too difficult and you will end up getting nowhere. It's also important to have, at least, a basic knowledge of the Sega Mega Drive hardware (specifically the video system).

MEGA DRIVE TECHNICAL INFO REFERENCES

INSTALLATION AND DOCUMENTATION

Then when you feel ready you can go further and finally install SGDK :)

You can find installation instructions and tutorials about how use SGDK on the wiki:
https://github.com/Stephane-D/SGDK/wiki

SGDK comes with doxygen documentation (generated from .h header files) which provides descriptions about SGDK structures and functions. You can find it in the 'doc' folder (open your local doc/html/files.html in your browser).

It's important to know that SGDK heavily relies on resources which are compiled through the rescomp tool. You should read the rescomp.txt file to understand which kind of resources you can use and how to declare them. Then you can look at the 'sample' folder from SGDK and, in particular, the sonic sample which is a good showcase of SGDK usage in general (functions and resources).

OTHERS TUTORIALS

You can find a lot of tutorials online about SGDK but be careful, some are outdated or sometimes just wrong.
I really recommend starting from the wiki which provides the basics to start, but if you need more visual and more complete tutorials you can give either of these a try:
MD programming tutorials from Ohsat:
https://www.ohsat.com/tutorial/mdmisc/creating-graphics-for-md/
Very complete and visual tutorials from Danibus (spanish only):
https://danibus.wordpress.com/

USEFUL TOOLS

Here's a list of useful tools to help you creating your assets:

Pixel art / Sprite

Map / Level

  • 16Tile: SGDK specific tile map editor
  • Tiled: Tile map editor, supported by SGDK resource compiler tool
  • LDTK: New but powerful tile map editor (support Tiled formats as well)
  • Ogmo: Another nice and simple tile map editor
  • Palette merger: A tool allowing to easily change tile palette index and priority

Music / sound

  • Deflemask: music tracker supporting several system as the Sega Mega Drive
  • Furnace: new music tracker supporting many systems
  • Wavosaur: wave sound editor (windows only)
  • Audacity: wave sound editor (all OS)

Alternates sound drivers

SGDK sound drivers may not fit your needs so it's important to know that some alternatives exist:

  • MDSDRV: powerful sound driver support FM & PSG SFX, pitchable PCM playback...
  • Echo: another sound driver supporting FM & PSG SFX and working 100% on Z80 CPU.
  • MiniMusic: a tiny Z80 sound driver for Mega Drive that runs entirely off Z80 RAM and doesn't access the cartridge slot.

HELP AND SUPPORT

If you need help or support with SGDK, you can join the SGDK Discord server:
https://discord.gg/xmnBWQS

You can also go to the Spritesmind forum which is dedicated to Sega Mega Drive development and has a specific section for SGDK:
http://gendev.spritesmind.net/forum/

MACOSX / LINUX

Unix/Linux users should give this very simple script a try, allowing you to use SGDK from Wine easily:
https://github.com/Franticware/SGDK_wine

There is also a new solution proposed by Daniel Valdivieso to use SGDK with VSCode under any OS using Wine:
https://github.com/v4ld3r5/sgdk_vscode_template

Another great alternative is to use the complete MarsDev environment developed by Andy Grind: https://github.com/andwn/marsdev It supports all OSes, provides SGDK compatibility as well as 32X support, so be sure to check it out.

MacOSX users also have access to SGDK with Gendev for MacOS from the Sonic3D project:
https://github.com/SONIC3D/gendev-macos

DOCKER

A modern way to install it on any environement is to use Docker.

To download the sgdk base image:

 docker pull ghcr.io/Stephane-D/sgdk
 docker tag ghcr.io/Stephane-D/sgdk sgdk

Or build it:

 docker build -t ghcr.io/stephane-d/sgdk-m68k-gcc:latest -f deps/gcc.Dockerfile deps/
 docker build -t sgdk .

And then to compile the local env, such as samples for example:

cd sample/sonic
docker run --rm -v "$PWD":/src sgdk

Notes:

  • $PWD will not work on Windows, %CD% has to be used instead.
  • To avoid writing ./out files as root, execute the docker command as current user: docker run --rm -v "$PWD":/src -u $(id -u):$(id -g) sgdk
  • You can also try the alternate Doragasu docker solution which uses a native linux compiler (much faster): https://gitlab.com/doragasu/docker-sgdk

VISUAL STUDIO

You can find a Visual Studio template in the 'vstudio' folder to facilate SGDK integration with VS. Or, to take it even further, you can also install the VS extension made by zerasul:
https://marketplace.visualstudio.com/items?itemName=zerasul.genesis-code

SUPPORT SGDK

SGDK is completly free but you can support it on Patreon: https://www.patreon.com/SGDK

THANKS

  • Doragasu for the multi-tasking engine (based on Sik implementation), MegaWifi, flash save support and others nice additions.
  • Sik for the multi-tasking base implementation and for all its unvaluable Plutidev Sega Mega Drive technical information source.
  • Chilly Willy for making almost all the JOY / controller support in SGDK (and the joy test sample ^^).
  • Astrofra for the starfield donut sample and the revamped readme ;)
  • Gligli for building and providing GCC 6.3 for Windows.
  • Gunpog for making the 'cute' SGDK logo.
  • Adrian Spoz for making the 'profesionnal' SGDK logo.
  • Vojtěch Salajka for the script allowing to use SGDK easily from Wine (Linux/Unix but may work on OSX too).
  • Daniel Valdivieso for another Wine based solution to use SGDK on multi-OS (including a VSCode template).
  • Andy Grind for the MarsDev project allowing to use SGDK on any OS and also supporting 32X dev.
  • Kubilus for the GenDev Linux port of SGDK.
  • Sonic3D for the GenDev OSX port of SGDK.
  • Vladimir Kryvian for Visual Studio support and template.
  • Steve Schnepp for Docker support.
  • Andreas Dietrich for the nice Wobbler & scaling effect samples.
  • clbr for various contributions.
  • jgyllinsky for providing / improving build batches.
  • nolddor for fixes / contributions.
  • starling13 for fixes.
  • davidgf for its contributions (improved assembly LTO optimization).
  • ShiningBzh / Jeremy and Kentosama for their precious help in testing.
  • Vetea and Studio Vetea Discord people in general for their support and kindness.
  • all those i forgot and generally all people helping by providing support, reporting bugs, adding samples and supporting SGDK in any way !

SPECIAL THANKS

Of course I thank all my patreon for their continuous support but I want to dedicace a very special and warmfull thanks for generous donation from:

  • Bitmap Bureau (Xeno Crisis team)
  • Neofid Studios (Demons of Asteborg team)
  • Dmitry (D I)
  • Rajen Savjani

POWERED BY THE SGDK!

These projects are known to be based on the SGDK (non-exhaustive list):

alt text

Tanzer by Mega Cat Studios

alt text

MASIAKA by Resistance

alt text

Xeno Crisis by the Bitmap Bureau

alt text

Demons of Asteborg Neofid Studios

Random list of SGDK-powered games and demos

sgdk's People

Contributors

a-dietrich avatar andwn avatar astrofra avatar atamurad avatar benjamin-allion avatar bigevilcorporation avatar clbr avatar d0nm avatar danielt3 avatar darky-lucera avatar davidgfnet avatar devpow112 avatar emeric-martineau avatar gerardgascon avatar iratahack avatar jagiella avatar jgyllinsky avatar joeyparrish avatar lizardrive avatar lucaspcamargo avatar mrben89 avatar nolddor avatar pladaria avatar redbug26 avatar sirmacho2 avatar stephane-d avatar steveschnepp avatar turiaso avatar viciious avatar werton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sgdk's Issues

Add instructions for using SGDK with QtCreator

Hi,

I've just written a guide on how to use SGDK with QtCreator (my IDE of choice), 
with images.

It's available at 
https://github.com/AbigailBuccaneer/sgdk/wiki/sgdk-with-qtcreator - it's public 
domain, so feel free to copy it over to this wiki, or do whatever you want with 
it.

Thanks for the tools :)
--Abigail

Original issue reported on code.google.com by [email protected] on 9 Jan 2015 at 2:45

Move QtCreator info to local GitHub wiki

Hi. A while back (before SGDK moved from Google Code to GitHub) I wrote the instructions for using QtCreator with SGDK, and put them in the wiki of my own GitHub exported version of SGDK.

Now SGDK's officially on GitHub, but the QtCreator pages are still on my wiki. I don't have any plans to maintain them so it makes no sense for them to be on my version of the SGDK repository (which I was about to delete, before I remembered the QtCreator docs).

I've just updated my version's wiki's master branch to be ahead of yours and merge in the QtCreator info.

Please merge https://github.com/AbigailBuccaneer/sgdk.wiki.git into https://github.com/Stephane-D/SGDK.wiki.git. It should be a simple fast-forward merge.

Basic Tutorial outdated.

Update tutorial to reflct last SGDK version.

Original issue reported on code.google.com by Stephane.D on 30 May 2012 at 10:31

Random seed initialization.

Just add HV counter in the seed number, take care of not having any sync before 
it.

Original issue reported on code.google.com by Stephane.D on 10 Jul 2013 at 9:25

SR set in SGDK

Add SR control in SGDK.
Should be already done but verify it.


Original issue reported on code.google.com by Stephane.D on 25 May 2012 at 10:00

Feature request: add JASC-PAL palette support to rescomp

Here is the format description :

.pal Paint Shop Pro colour palette file:

Contains the colour palette table saved from a 16 or 256 colour image. It can 
be loaded for another image and this provides a means of copying colour 
palettes from one image to another.

These files are text editable. The format of the file is as follows:

- The first line contains the header "JASC-PAL" (without the quotes).
- The second line contains the palette file version. For example "0100" 
(without the quotes)
- The third line contains the number of colours, either 16 or 256.
- Subsequent lines contain the Red, Green and Blue components of each palette 
entry, with a space between each of the Red, Green and Blue numbers. These 
numbers are in decimal, so each attribute should be in the range 0 to 255.

Original issue reported on code.google.com by Stephane.D on 16 Jun 2014 at 8:54

RGB24_TO_VDPCOLOR is BGR

The RGB24_TO_VDPCOLOR macro is BGR, nor RGB.

VDP_setPaletteColor(63, RGB24_TO_VDPCOLOR(0xff0000));

sets the color to blue, even though it should be red.

4PCM_ENV driver crackles

The attached wav file plays badly on the 4PCM_ENV driver, it crackles. The format is fine, as it's already 8-bit mono 16kHz, and it sounds perfect when player on a computer.

It plays perfect in both mplayer and aplay, the latter confirms there is no advanced filtering in play. So either there is an issue in the 4PCM driver's mixing or interpolating algorithms, or in wavtoraw.

bug.pdf

Error with fading method

Using fading method on palette != PAL0 result in some unexpected results.
For instance VDP_fadePalOut(PAL1, ...) doesn't work correctly.

Original issue reported on code.google.com by Stephane.D on 31 May 2013 at 8:50

VDP_drawImageEx() - SetPalette() after SetMap() produces an incorrect flashing with old colours

What steps will reproduce the problem?
1.VDP_drawImageEx() -> using Load Palette true


What is the expected output? What do you see instead?
If you load an image it flashes with the old palette during some milliseconds. 
Instead of show the correct palette.


What version of the product are you using? On what operating system?
SGDK - Last Version


Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 19 Aug 2014 at 11:46

Big sprites do not display correctly

Hi there.

I'm trying to insert a sprite that is 13x13 tiles big. Data seems to be OK, but as soon as an animation is changed, the sprite partially blinks and also displays some bad tiles.

Is there something important that I am missing or is it really a bug?
By the way, I made some slides about basic function usage etc and could send these to you.

PS: did not find your e-mail therefore I am sending this message.

ResComp Crash

When i was compiling a PNG file (with an invalid palette between 2 tiles) as a SPRITE ResComp keep crashing, after a quick look up here's what i found:

Sprite.c in the Execute function :

sprDef = getSpriteDefinition(data, wt, ht, wf, hf, time, collid);  (return null due to invalid palette in getTile)

removeEmptyFrame(sprDef);

if sprDef is null removeEmptyFrame access member of sprDef crashing ResComp.

Undefined reference to "registerState"

What steps will reproduce the problem?
1. Checkout the repo (r96);
2. Try to compile with Eclipse CDT;

First error will be about "libmd.a", which can be fixed by copying it to ./lib 
dir.
Second will be about:
"out/sega.o: In function `registersDump':
(.text+0x2a4): undefined reference to `registerState'".

How to fix that?

Original issue reported on code.google.com by [email protected] on 8 Jan 2014 at 2:14

Makefile supporting variable overriding for tools.

Use:

SHELL?=$(BIN)/sh
RM?= $(BIN)/rm
AR?= $(BIN)/ar
CC?= $(BIN)/gcc
LD?= $(BIN)/ld 

Instead of:

SHELL=$(BIN)/sh
RM= $(BIN)/rm
AR= $(BIN)/ar
CC= $(BIN)/gcc
LD= $(BIN)/ld

Original issue reported on code.google.com by Stephane.D on 31 Jul 2013 at 7:49

VDP_loadBMPTileData broken.

The moon display tutorial does not work anymore because of the 
VDP_loadBMPTileData which seems to be broken when tile index destination is not 
aligned on 32.
Also check the default plan initialization...

Original issue reported on code.google.com by Stephane.D on 30 May 2012 at 9:39

tools/xgmtool/inc/gd3.h missing

Hello,

Was building with gendev and ran into this.

In file included from src/xgmtool.c:8:0:
src/../inc/vgm.h:6:17: fatal error: gd3.h: No such file or directory
 #include "gd3.h"
                 ^

The code blocks project file has a reference to this header, so just forgot to commit it I think.

SGDK causes conflict with gcc stdint.h

I usually use data types provided by stdint.h, such as uint16_t. But including this file on projects using also SGDK, causes type redefinition problems:

In file included from /opt/toolchains/gen//m68k-elf/include/genesis.h:7:0,
                 from main.c:8:
/opt/toolchains/gen//m68k-elf/include/types.h:142:21: error: conflicting types for 's8'
 #define int8_t      s8
                     ^
/opt/toolchains/gen//m68k-elf/include/types.h:79:14: note: previous declaration of 's8' was here
 typedef char s8;
              ^
Makefile:148: recipe for target 'main.o' failed
make: *** [main.o] Error 1

I think conflicting with standard header files should be avoided. Could this be fixed?

Move project to Github

Maybe it will be better to move project on Github?

Github community could be a little bit active. :)

Original issue reported on code.google.com by [email protected] on 23 Jan 2015 at 12:46

Sprite "rolls" from posx 384 back to 184, but from posy 1016 back to 0.

I'm trying to make a simple "Snake" game, where I control a sprite which is represented by a block.

If I'm going horizontally right- then I increment the sprite.posx by + 8. It will reach 384 (sometimes only 376 if I frame step slowly) but the next position is 128.

It does not do this vertically, instead when doing sprite.posy + 8, it will reach 1016 and reset to 0.

Is the sprite area not defined to be 512x512 starting at 128,128?

I've got these values using GensKmod, but I get the same behaviour in Fusion.

My code looks like this:


    while(1)
    {

    if (count > 5) {
        switch (steer) { // I change steer elsewhere
        case up:
            snakeSprite->posy = snakeSprite->posy - 8;
            direction = up;
            break;
        case down:
            snakeSprite->posy = snakeSprite->posy + 8;
            direction = down;
            break;
        case left:
            snakeSprite->posx = snakeSprite->posx - 8;
            direction = left;
            break;
        case right:
            snakeSprite->posx = snakeSprite->posx + 8;
            direction = right;
            break;
        }
        count = 0;
    }
    else count++;

        VDP_setSpriteP(0, &snakeSprite);
        VDP_updateSprites();

        VDP_waitVSync();

    }

Any advice you could give would be appreciated.

wavtoraw crashes

The attached file crashes wavtoraw. It's straight exported from Audacity at 16Khz and 8-bit unsigned.

Valgrind log:

==4496== Command: /tmp/wavtoraw /tmp/bug.wav bug.tmp 16000
==4496==
==4496== Conditional jump or move depends on uninitialised value(s)
==4496==    at 0x400B1B: main (wavtoraw.c:68)
==4496==
==4496== Conditional jump or move depends on uninitialised value(s)
==4496==    at 0x400C36: main (wavtoraw.c:93)
==4496==
==4496== Conditional jump or move depends on uninitialised value(s)
==4496==    at 0x400C82: main (wavtoraw.c:99)
==4496==
==4496== Conditional jump or move depends on uninitialised value(s)
==4496==    at 0x400CB0: main (wavtoraw.c:105)
==4496==
==4496== Conditional jump or move depends on uninitialised value(s)
==4496==    at 0x400D70: main (wavtoraw.c:99)
==4496==
==4496== Use of uninitialised value of size 8
==4496==    at 0x400DAD: main (wavtoraw.c:129)
==4496==

The line numbers are offset by 2, because I had to add a #define _GNU_SOURCE on top, to fix a warning about round().

The file is named PDF because github didn't allow uploading wavs, just rename to wav.

bug.pdf

Split SPR_setAttribut() / SPR_setPosition() into more specific functions

Because you sometimes only want to change HFLIP, VFLIP,.... should be interesting create an especific funcion for each task, in addition to SPR_setAttribut()

An example could be:

void SPR_setHFlip( Sprite *sprite, u8 HFlip )
{
if( HFlip )
{
sprite->attribut |= ( 1<<11 );
}
else
{
sprite->attribut &= ~( 1<<11 );
}
}

Others interesting functions:
SPR_setVFlip
SPR_setPalette
SPR_setPriority

The same with SPR_setPosition...
SPR_setPositionX
SPR_setPositionY
Should be created in order to update only one axis.

Rescomp: RLE compression issue

The RLE compression return corrupted image sometime.


Original issue reported on code.google.com by Stephane.D on 2 Jun 2014 at 3:35

VRam copy DMA locks up on real hardware

Try to do a VRAM Copy DMA operation actually fails when done on the real 
hardware.

Original issue reported on code.google.com by Stephane.D on 9 May 2014 at 6:35

Error "make: *** No rule to make target `C:/sega/sdk/lib/libmd.a', needed by `out/rom.out'

What steps will reproduce the problem?
1. Configure environment 
(https://code.google.com/p/sgdk/wiki/UseSGDKWithEclipse)
2. Checkout SDK from trunk.
3. Create "Hello world" example and try to build.

What is the expected output? What do you see instead?
Expected result: Application is compiled.
Actual result: Error "make: *** No rule to make target 
`C:/sega/sdk/lib/libmd.a', needed by `out/rom.out'.  Stop."

What version of the product are you using? On what operating system?
SDK from trunk

Original issue reported on code.google.com by [email protected] on 26 Apr 2013 at 10:54

Redefinition of size_t causes compilation error.

What steps will reproduce the problem?
1. Build sgdk file that includes both "genesis.h" and <stdio.h>
2.
3.

What is the expected output? 

Compilation should be successful.

What do you see instead?

Compilation fails with the following:

"""
/opt/toolchains/gen/m68k-elf/lib/gcc/m68k-elf/4.5.2/include/stddef.h:211:23: 
error: conflicting types for ‘size_t’
/opt/toolchains/gen/m68k-elf/include/types.h:160:22: note: previous declaration 
of ‘size_t’ was here
"""

The file stddef.h checks for the prior definition of __size_t which is not 
defined in types.h.  Defining this fixes the issue.  Here is the patch:

{{{
--- types.h.orig        2012-12-12 16:36:39.734989382 -0500
+++ types.h     2012-12-12 16:36:48.755034106 -0500
@@ -158,7 +158,7 @@

 // used for memcpy and memset ISO C method
 typedef unsigned int size_t;
-
+#define __size_t

 #define FASTCALL
}}} 



What version of the product are you using? On what operating system?

Ubuntu 12.10

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 12 Dec 2012 at 10:31

Duplicated video output

What steps will reproduce the problem?
1. Configure Eclipse with https://code.google.com/p/sgdk/wiki/UseSGDKWithEclipse
2. Compile any example from "sample" directory.

What is the expected output? What do you see instead?
Expected result: Image isn't duplicated.
Actual result: Image is duplicated.

Please see attachment (duplicated_image.PNG).

Original issue reported on code.google.com by [email protected] on 26 Apr 2013 at 11:36

Attachments:

Move VISIBILITY_ALWAYS_xxx definition in sprite_eng.h file

It can be useful to know the visibility state of a sprite so move that :

define VISIBILITY_ALWAYS_FLAG 0x40000000

define VISIBILITY_ALWAYS_ON (VISIBILITY_ALWAYS_FLAG | 0x3FFFFFFF)

define VISIBILITY_ALWAYS_OFF (VISIBILITY_ALWAYS_FLAG | 0x00000000)

in sprite_eng.h file :)

Wrong return value in readJoypadX-Y functions

/**
 ...
 * A light gun returns the unsigned screen X coordinate. This is not calibrated;<br>
 * Calibration is left to the game to handle. The value is -1 if the gun is not<br>
 * pointed at the screen, or the screen is too dim to detect.<br>
 ...
 */

u16  JOY_readJoypadX(u16 joy);
 &
u16  JOY_readJoypadY(u16 joy);


Wrong return value, should be s16

Original issue reported on code.google.com by [email protected] on 12 Oct 2014 at 3:59

Function PSG_setNoise missing

Not really a issue but an featurerequest for the sake of completness.
the psg-part is missing a function for controlling the noisechannel.
something like the following should work (untested)

void PSG_setNoise(u8 type,u8 frequency)
{
vu8 *psg;
psg = (u8 *) PSG_PORT;
*psg = 0xE0 | ((type & 1) << 2) | (frequency & 0x3);
}

Original issue reported on code.google.com by [email protected] on 30 Aug 2012 at 6:21

Declaring lenght array from a char var

It's probably a C lenguage problem, but i write it for if its not.


unsigned char lenght = 25;
unsigned char buffer[lenght];

Compies but show's illegal instruction on screen.

Original issue reported on code.google.com by [email protected] on 3 Oct 2012 at 9:41

strcmp() return error

Should return s16 instead u16

From

http://code.google.com/p/sgdk/source/diff?spec=svn171&r=171&format=side&path=/tr
unk/inc/string.h

42  u16 strcmp(const char *str1, const char *str2);

Also in string.c

Original issue reported on code.google.com by [email protected] on 14 Mar 2014 at 1:21

TFM Z80 driver issues.

- Should provide a stop command (just by unloading the driver).
- Fix multiple play operation (clear Z80 ram before loading params and driver).

Original issue reported on code.google.com by Stephane.D on 25 Jun 2013 at 1:40

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.