It takes a bunch of scripts and images and, from that, it generates SGDK-compatible .c and .res files. Those are then compiled into a Sega Genesis compatible ROM, which can be run on an emulator or even on real hardware.
The syntax of the scripts is somewhat based on ChoiceScript, but it is not exactly the same.
Please note that this is an early work and progress, and it is not as stable or user-friendly as it is planned to become.
Version 0.0.1 of the tool: https://github.com/haroldo-ok/choice4ge ... nspiler.7z
Video for version 0.0.1: https://www.youtube.com/watch?v=K9aZ-uPyhkY
Page on itch.io: https://haroldo-ok.itch.io/choice4genesis
Github repo: https://github.com/haroldo-ok/choice4genesis
It basically picks a script like this:
Code: Select all
* font "damieng.com - Hourglass font.png"
* background "Blue Hedgehog.png"
* choice
# Play some music
* music "Actraiser - Fillmore.vgm"
OK, playing Fillmore, from Actraiser.
# Show a smiley
* image "Smiley.png", at(30, 3)
OK... showing a smiley!
# Third choice
You chose the third one
* choice
# Yet another choice
You chose this.
# One more choice
You chose that.
This is a test.
Second line.
Third line.
"generated_scripts.c", generated from the script above:
Code: Select all
#include "vn_engine.h"
void *VS_startup() {
VN_font(&damieng_com_Hourglass_font_png);
VN_background(&Blue_Hedgehog_png);
{
VN_flushText();
VN_option(1, "Play some music");
VN_option(2, "Show a smiley");
VN_option(3, "Third choice");
switch (VN_choice()) {
case 1:
VN_music(Actraiser_Fillmore_vgm);
VN_text("OK, playing Fillmore, from Actraiser.");
break;
case 2:
VN_imageAt(30, 3);
VN_image(&Smiley_png);
VN_text("OK... showing a smiley!");
break;
case 3:
VN_text("You chose the third one");
{
VN_flushText();
VN_option(1, "Yet another choice");
VN_option(2, "One more choice");
switch (VN_choice()) {
case 1:
VN_text("You chose this.");
break;
case 2:
VN_text("You chose that.");
break;
}
VN_flushText();
}
break;
}
VN_flushText();
}
VN_text("This is a test.");
VN_text("Second line.");
VN_text("Third line.");
VN_flushText();
return VS_startup;
}
Code: Select all
IMAGE damieng_com_Hourglass_font_png "../project/damieng.com - Hourglass font.png" APLIB NONE
IMAGE Blue_Hedgehog_png "../project/Blue Hedgehog.png" APLIB ALL
IMAGE Smiley_png "../project/Smiley.png" APLIB ALL
Code: Select all
XGM Actraiser_Fillmore_vgm "../project/Actraiser - Fillmore.vgm" APLIB