Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zerasul/genesis-code
Visual Studio Code Genesis Development Extension
https://github.com/zerasul/genesis-code
gendev genesis hacktoberfest retrodev sega sega-genesis sega-megadrive sgdk vscode vscode-extension
Last synced: about 2 months ago
JSON representation
Visual Studio Code Genesis Development Extension
- Host: GitHub
- URL: https://github.com/zerasul/genesis-code
- Owner: zerasul
- License: mit
- Created: 2019-08-21T18:04:05.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T19:53:14.000Z (2 months ago)
- Last Synced: 2024-10-29T21:45:01.395Z (2 months ago)
- Topics: gendev, genesis, hacktoberfest, retrodev, sega, sega-genesis, sega-megadrive, sgdk, vscode, vscode-extension
- Language: TypeScript
- Homepage: https://marketplace.visualstudio.com/items?itemName=zerasul.genesis-code
- Size: 43.3 MB
- Stars: 43
- Watchers: 3
- Forks: 9
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: contributing.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Genesis-code Extension
[![Build Status](https://dev.azure.com/zerasul/genesis-code/_apis/build/status/zerasul.genesis-code?branchName=master)](https://dev.azure.com/zerasul/genesis-code/_build/latest?definitionId=1&branchName=master)
[![SGDK Compatible](https://img.shields.io/badge/SGDK_Compatible-2.00-912aeb)](https://github.com/Stephane-D/SGDK)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=genesis-code-project&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=genesis-code-project) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=genesis-code-project&metric=security_rating)](https://sonarcloud.io/dashboard?id=genesis-code-project)
[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/zerasul.genesis-code)](https://marketplace.visualstudio.com/items?itemName=zerasul.genesis-code)Genesis-Code is a Visual Studio Code Extension for Sega Genesis/ Mega Drive development. This extension is created for use with the [SGDK](https://github.com/Stephane-D/SGDK)/[GENDEV](https://github.com/kubilus1/gendev) or [MARSDEV](https://github.com/andwn/marsdev) projects for create homebrew games for the Sega 16 bits console.
For more information, see [Genesis Code Documentation Web Page](https://zerasul.github.io/genesis-code-docs/).
If you want to know how to develop Mega Drive Games; You can see the "16 Bits Homebrew Development" Book available on Amazon: [Spanish Version](https://amzn.eu/d/1GDGkhA), [English Version](https://www.amazon.com/dp/B0CW4TH2NJ).
## Features
With this extension, you can use easily a few commands for help you create awesome games. This extension adds the following commands:
* Compile command: compile the program and generate the Rom file.
* Run command: You can use an emulator like Gens to run and test your game.
* Clean command: Clean the programs build folder (calls makefile with clean).
* Compile & Run command: first compile and later run the rom.bin file in an emulator.
* Create project: Select a folder and create a Hello World project ready for compile and run.
* Set Gens Command: Update the configuration and adds the command path to run Gens Emulator.
* Compile For debug command: Compile the project with debug options.
* SGDK Resource Files Code Completion.
* Added remote debugging configuration for use with GDB.
* Compatible with [MarsDev](https://github.com/andwn/marsdev) Toolchain.
* Import TMX file command: Uses a [TMX file format](https://doc.mapeditor.org/en/stable/reference/tmx-map-format/) for generate a C header file for your projects.
* Import Json TMX file command: Uses a [Tmx Json File Format](https://doc.mapeditor.org/en/stable/reference/json-map-format/) for generate a C Header file for Your project.
* Added configuration for use alternative MakeFile.
* Added configuration for use alernative environment variables for GDK, GENDEV or MARSDEV.
* Added Genesis Code: About for open more information about the extension.
* Added BitmapViewer.
* Added Status Bar Buttons for compile, compile & Run, Compile For debug and clean (Thanks to burmaraider).
* Added Configuration for enable or disable status bar buttons.
* Added Docker Support.![vscodegif](imgs/vscodegif.gif)
## Requirements
To use this extension you need to install SGDK(windows)/GENDEV(linux) or MARSDEV projects on your system and configure the GDK, GENDEV or MARSDEV enviroment variables, or build a SGDK Docker Image.
## Extension Settings
You can set the [Gens Emulator](http://www.gens.me/) command to call it directly from the Genesis Code Extension (Run Command).
You can set it via command , or using the settings configuration.
![Genesiscodeconfiguration](imgs/genscodesettings.png)
**NOTE**: You can use another emulators like [Blastem](https://www.retrodev.com/blastem/).
You can select the toolchain type for use with genesis code:
* SGDK/GENDEV: the SGDK libs and GENDEV (On Linux) will be used with Genesis Code.
* MARSDEV: The MARSDEV project will be used with Genesis Code.
* DOCKER: Use a SGDK Docker container for compiling.![genesiscodeconfigtoolchain](imgs/genesiscodeconfigtoolchain.png)
You can set an alternative MakeFile on the configuration panel. When the compile or clean command is called the alternative Makefile will be used instead the default makefile.
![genesiscodemakefile](imgs/makefile.png)
Also, you can set an alternative value for the environment variables of GDK, GENDEV or MARSDEV.
![envvariables](imgs/envvariables.png)
Now, you can define a custom docker image tag for generate a new container.
![dockertag](imgs/dockertag.png)
**NOTE:** If you want to use [Doragasu SGDK Docker Image](https://gitlab.com/doragasu/docker-sgdk), you can use the check in Configuration and you must add the current Docker Image Tag description (with the gitlab registry URL).
![statusbarconfig](imgs/statusbar.png)
You can enable or disable status bar buttons for use some common commands.
![Status Bar Buttons](imgs/sbarbuttons.png)
## Bitmap Viewer
Now you can use the Bitmap Viewer; with some information of the images. You can open as alternative viewer on VSCODE (right click and Reopen Editor... on tab).
![bitmapviewer](imgs/bitmapv.PNG)
## Known Issues
* In MacOs the _compile & Run project_ command, the emulator is not running in background. We are working in this issue.
* In Linux systems, you can't compile with debug options using SGDK/GENDEV toolchain.
* In Linux Systems, when you create a new project there is no launch.json file for SGDK/GENDEV toolchain.
* On MacOs Systems, for the SGDK/GENDEV ToolchainType you can't use custom Makefile or custom Environment variables; this is due to the use of Wine.
* The C headers include settings don't work if you are using Docker containers; this is due the SGDK headers are inside the container and not available without using a volume. Follow [this instructions](https://zerasul.github.io/genesis-code-docs/install/#configure-headers-using-docker-containers) for more information.## Release Notes
### 1.5.0
* Add "Status bar Button" configuration, to add status bar buttons for the more commons commands (no more command palette).
* Added 4 Status Bar Buttons for _compile_, _compile&Run_, _compile for Debug_ and _clean_.
* Updating autocompletion and .res grammar for use with the new XGM2 Driver and SGDK 2.00.
* Updating dependencies.### 1.4.2
* Updating grammar for use SGDK 1.80 with the last documentation.
* Fix Bug when create on Windows a new project the settings are not properly point to SGDK include Folders.
* Fix Multiple Instances of gens.code error.
* Updated dependencies.### 1.4.1
* Added Support for Dogarasu SGDK Docker Image.
* Added Configuration Flag for Dogarasu SGDK Docker Image.
* Fix Gens.code Multiples Instances Error.
* Updated Rescomp Context Help Information for the Last Version of SGDK (Supports 1.70).
* Updated Dependencies.### 1.4.0
* Added Docker container Support.
* Improved Code with a total Refactoring.
* SGDK resource files now have regions
* They start with *#region* / *#pragma region*
* They end with *#endregion* / *#pragma endregion*
* Fixed some syntax highlighting errors related with numbers**NOTE:** Thanks to our contributors on the HacktoberFest 2021 and for the last contributors with the File resource Grammar improvements.
### 1.3.3
* Added SGDK 1.65 Support.
* Updating use of Wine for Wine64 (Only MacOs).
* Added Bitmap Viewer for Bmp,Png and JPEG images.### 1.3.2
* Added Support for SGDK 1.60 Map resources in res files.
* Changed default main.c generation for use the new functions for SGDK 1.60.
* Added comment higthlingthing on res files.
* Fixed a bug that the Run command dosen't works if the path have spaces characters.
* Added Genesis Code: About command. This command shows information about Genesis Code extension.
* Updated some dependencies.### 1.3.1
* Fixed a bug with some dependencies (Import TMX format ins't works).
* Fixed some code smells reported by sonar.### 1.3.0
* Added import TMX file command; it generates a C Header File with the information of the TMX file. For more info about the TMX format, please see [Tiled Documentation](https://doc.mapeditor.org/en/stable/reference/tmx-map-format/).
* Added import Json Tmx File command; it generates a C Header File with the information of the json TMX file. For more info about the json Tmx Format, please see [Tiled Documentation](https://doc.mapeditor.org/en/stable/reference/json-map-format/).
* Added custom makefile configuration; now you can set an alternartive for the default makefile.
* Added configuration for GDK, GENDEV or MARSDEV custom variables.
* Updated some dependencies and improved code.### 1.2.2
* Updated for use with SGDK 1.51; added new features for SGDK Resource Files autocompletion (for use with the last version of rescomp tool).
* Fixed some bugs and improved code.
* Updated some dependencies and updating package-lock.json.### 1.2.1
* Updated for use with SGDK 1.50; added new features for SGDK Resource Files autocompletion (for use with the last version of rescomp tool).
* Now when you create a new Project a settings.json file is created with the default include paths.
* Added Debuggers category to Package.json.
* Updated some dependencies and updating package-lock.json.### 1.2.0
* Added [Marsdev](https://github.com/andwn/marsdev) toolchain compatibility. Now you can use the marsdev toolchain with genesis code. For more information please see [Genesis code Documentation Web](https://zerasul.github.io/genesis-code-docs/).
* Added configuration for debugging. Now when you create a new project a launch.json is created. For more information please see [Genesis code Documentation Web](https://zerasul.github.io/genesis-code-docs/debug/).
* Now you can select your toolchain from the genesis code Settings; SGDK/GENDEV toolchain or MARSDEV toolchain.
* Added Compile with Debug Options command.
* Updated dependencies and improving code.### 1.1.1
* Added SGDK Resource Files Autocomplete feature. Now we have contextual help for the SGDK Resource Files, see [Genesis code Documentation web](https://zerasul.github.io/genesis-code-docs/otherfeatures/) for more information.
* Fixed a typo error on the main.c autogenerated file when we create a new Project.
* Updated depdendencies and improving tests.### 1.1.0
* Adding MACOs Support. Now you can use genesis code using wine. For more information please see [Genesis code Documentation](https://zerasul.github.io/genesis-code-docs/).
* Added Syntax HighLingthing for SGDK Resource Files (.res).
* Updated dependencies.### 1.0.1
* Fixed a bug with create new project that dosent show properly the readme.md file.
* Fixed a bug with create new project that dosent include 'res' and 'inc' directories into git repository.
* Updating dependencies of the extension.### 1.0.0
Initial Release:
* Added Compile command.
* Added Run command.
* Added Clean command.
* Added Compile & Run command.
* Added Create Project command.
* Added Set Gens Emulator Command.-----------------------------------------------------------------------------------------------------------
You can support this project using [Buy Me a Coffee](https://www.buymeacoffee.com/zerasul).
**Enjoy!**