Discuss Scratch

  • Discussion Forums
  • » Show and Tell
  • » "The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports [RSS Feed]
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

–WELCOME to MegaGenS Framework! Made by a Sonic Scratcher for Sonic Scratchers–

The goal of this framework is to provide Scratch users an optimal, super-accurate recreation of the Genesis Sonic games while making it relatively simple to create your own games with.

The project is still incomplete, but a public tech demo of the framework was made for SSE '26!
Here are most of the the current features of the project:
  • Four Playable Characters: Sonic, Tails, Knuckles, and Amy
  • An optional Tails CPU following you around and assisting you with flight
  • A variety of monitor types (lives, rings, speed shoes, invincibility, etc)
  • Fully-Functioning HUD
  • All Elemental Shields
  • Options for Different Physics and Styles (i.e. Extended Camera, CD Spindash, Speed Caps)
  • All Classic Sonic Abilities: Spindash, Peelout, Insta-Shield, and Drop Dash
  • Option for Flight and Glide Cancel (Lenient Abilities on)
  • Underwater Physics
  • Super Physics
  • Badniks (Motobug, Buzz Bomber, Crabmeat, Chopper)
  • and More!
Updates will be posted here! Feel free to reply with bug reports, suggestions, or other related commentary!

Although MegaGenS may not be as flexible as other Sonic game engines, such as Harmony and Sonic Worlds Next, it should definitely be somewhat equivalent in quality with a sizeable amount of features.

Link to the Tech Demo: https://scratch.mit.edu/projects/1350232262/

Of course, this framework wouldn't have been possible without these individuals:
Main Engines: Yuto Framework (@HominidMin) and MEW2 (@mewtube47)
Sprites: CartoonsAnimate22, Deadm3m, OConnorsRule, KookieCast, Soufon
Level/Object/Particle System: @Da-thing
Animation/HUD/Water System: @ToastedBag
Other Help/Refinements: @mewtube47, @pullmehair, @DahliaNova, @Vlad9407
Real-Time Screen Size Detector: @TheRealHyperDude
Special Thanks: Sonic Physics Guide, Sonic Retro, SEGA, Sonic Team

Screenshots from the SSE '26 Tech Demo:










Last edited by TTTEfanSQB (July 8, 2026 01:14:11)

EVBO_GROX3289321
Scratcher
9 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

how do I select?
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

EVBO_GROX3289321 wrote:

how do I select?
Check the controls of the project. The options menu is currently using variable sliders but will be a proper menu in the future
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

-OFFLINE UPDATE! Fire shields can break walls now!-

New Player List item: “40. _FireFlame”

How to Add? Include this as part of the “Mechanics - Breakable Wall” block in the “Objects” sprite!
<<> or <(item ((40) + (_PlayerListIndicator)) of [Player List v] :: list) > [0]>>
(Note: This currently doesn't affect the public build, hence the world “offline”)

mario_rr11
Scratcher
46 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

Bug: The character with the ID 00, 01, 02, 03 or setting CPU with 01 makes the character makes them unidentified and invisible.
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

mario_rr11 wrote:

Bug: The character with the ID 00, 01, 02, 03 or setting CPU with 01 makes the character makes them unidentified and invisible.
If you REALLY think it should be fixed, it will be. Granted, MegaGenS will have its own character select screen, so the question-answer prompt will become obsolete. The characters still function properly, just without animations lol
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

-OFFLINE UPDATE! New Player Mod Timer Block!-

This block is intended to fix deltatime issues with mod reporters. Use the code listed below to add!

define Player Mod Timer (Item) (Mod Value)
repeat until <(length of [_PlayerModTimers v] :: list) > ((Item) - (1))>
add [0] to [_PlayerModTimers v]
end
replace item (Item) of [_PlayerModTimers v] with ((item (Item) of [_PlayerModTimers v] :: list) + (DeltaTime))
if <(item (Item) of [_PlayerModTimers v] :: list) > ((Mod Value) - (1))> then
replace item (Item) of [_PlayerModTimers v] with (0)
end
--Nope---
Scratcher
2 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

How long do you think until a level creator?
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

--Nope--- wrote:

How long do you think until a level creator?
Probably a while. I'm currently working on refining what I already have before adding new stuff
ToastedBag
Scratcher
1 post

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

megagens
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

-OFFLINE UPDATE! New Object Extracting/Spawning Method!-

The “Object” sprite now uses a new object extracting system made by @Vlad9407! This new spawning system sorts the objects by x position from least to greatest, helping to fix any weird pop-in issues caused by an object's out-of-order placement in the list.
define Extract Objects (Data)
set [Letter Index v] to [0]
repeat ((length of (Data)) / (12))
change [Object Index v] by (1)
set [Result v] to []
change [Letter Index v] by [1]
Get 2-byte Hex String from (Data) (1)
Get 2-byte Hex String from (Data) (1)
add ((join [0x] (Result)) * (1)) to [_UnsortedObjectData v]
set [Result v] to []
set [Flip v] to (letter (Letter Index) of (Data))
change [Letter Index v] by (1)
Get 2-byte Hex String from (Data) (1)
set [Result v] to (join (Result) (letter (Letter Index) of (Data)))
change [Letter Index v] by (1)
add ((join [0x] (Result)) * (-1)) to [_UnsortedObjectData v]
repeat (2)
set [Result v] to []
Get 2-byte Hex String from (Data) (1)
add (Result) to [_UnsortedObjectData v]
end
change [Letter Index v] by (-1)
add (Flip) to [_UnsortedObjectData v]
Ring Separator
end
The “Object” sprite also uses a new spawning method, with objects checking for chunk indexes (initiated in the “Map Chunks” sprite) rather than their position in-frame. It's still in its infancy, but it's a step toward a better object system!
define Set Level Index Variable and Onscreen Check (Chunk Size) (Height)
set [Level Index X v] to (([floor v] of ((item (1) of [_ObjectList v] :: list) / (Chunk Size))::operators) + (2))
set [Level Index Y v] to (((([floor v] of ((item (2) of [_ObjectList v] :: list) / (Chunk Size))::operators) + (2)) * (() - (item (2) of [Current Level Data v] :: list))) + ((item (2) of [Current Level Data v] :: list) * (Height)))
set [_ObjectOnscreen? v] to (round <<<(Level Index X) > ((Recorded Level Index X) - (2))> and <(Level Index X) < ((Recorded Level Index X) + (2))>> and <<(Level Index Y) > ((Recorded Level Index Y) - ((item (2) of [Current Level Data v] :: list) + (2)))> and <(Level Index Y) < ((Recorded Level Index Y) + ((item (2) of [Current Level Data v] :: list) + (2)))>>>)
GamerBoyA2007
New Scratcher
2 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

Hey ThomasfanSQB, i was working on trying to find out what sprite the player mod time block should be at also what are those red blocks in the Extracting/Spawning blocks? i was working on a project using your framework and i really need help plz.

Last edited by GamerBoyA2007 (July 28, 2026 22:09:00)

TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

GamerBoyA2007 wrote:

Hey ThomasfanSQB, i was working on trying to find out what sprite the player mod time block should be at also what are those red blocks in the Extracting/Spawning blocks? i was working on a project using your framework and i really need help plz.

The Player Mod Timer block should be in the “Player” sprite and can be used in place of any mod-block stuff, such as in the CPU control scripts

The main red block you should be worried about is this one:
define Get 2-byte Hex String from (Data) (Auto-Increment Letter Index?)
set [Result v] to (join (Result) (join (letter (Letter Index) of (Data)) (letter ((Letter Index) + (1)) of (Data))))
if <(Auto-Increment Letter Index?) = [1]> then
change [Letter Index v] by [2]
end
(Note: the “Ring Separator” block may not be necessary)
GamerBoyA2007
New Scratcher
2 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

thanks for the help ThomasfanSQB ,

but can you kindly tell us more about those variables & lists from these blocks (player mod timer, Object Extracting/Spawning, & the 2-byte Hex String) if they're new or template and if They're for all sprites or their sprites,

btw which events should the player mod timer (Player sprite), Object Extracting/Spawning (Objects/Map Chunks sprite) blocks be?

also i was attempting to build the player mod timer:

Last edited by GamerBoyA2007 (July 29, 2026 16:40:48)

TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

GamerBoyA2007 wrote:

thanks for the help ThomasfanSQB ,

but can you kindly tell us more about those variables & lists from these blocks (player mod timer, Object Extracting/Spawning, & the 2-byte Hex String) if they're new or template and if They're for all sprites or their sprites,

btw which events should the player mod timer (Player sprite), Object Extracting/Spawning (Objects/Map Chunks sprite) blocks be?

also i was attempting to build the player mod timer:
Those variables and lists should be “for this sprite only” when created

The Object Extracting/Spawning blocks replace the “Initialize Objects” blocks
The “Load Objects” block needs modifications, too, because every object now takes up six list items in the “Current Level Data” list instead of one


The Player Mod Timer was used in the CPU code (Player Controls), Skidding code, Flying sound code, and more (basically anywhere there is a “mod” reporter since they can get wonky in DeltaTime)
mario_rr11
Scratcher
46 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

——–TECHNICAL STUFF———–
-the P2 char ID actually uses the same ID as P1 char ID
-by changing your character (codes required) while using character-exclusive moves, they can be in that state (Peelout uses Dashing animation, Flying Uses Walking Animations etc.)
-You can change the zone name whatever you want in the codes (Green Hill Zone is Displaying the Text ‘GREEN HILL’)

@TTTEfanSQB put a lot of details on this game engine so well done to SQB!
20thCenturyShay
Scratcher
4 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

Loop Bug When Sonic'Tails'Knuckles & Amy Go Fast
mario_rr11
Scratcher
46 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

20thCenturyShay wrote:

Loop Bug When Sonic'Tails'Knuckles & Amy Go Fast
Oh, yeah that happens to me as well.
TTTEfanSQB
Scratcher
11 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

20thCenturyShay wrote:

Loop Bug When Sonic'Tails'Knuckles & Amy Go Fast
Loops were rushed. Proper layer-switcher objects will be added eventually

Last edited by TTTEfanSQB (Aug. 9, 2026 15:44:36)

MaximizePrime1
Scratcher
3 posts

"The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports

I found some bugs some Crabmeats and Super Sonic can clip though stuff
  • Discussion Forums
  • » Show and Tell
  • » "The Tank Engine's" MegaGenS Framework - A Super-Accurate Genesis Sonic Framework Made for Scratch | Updates, Suggestions, Bug Reports [RSS Feed]

Powered by DjangoBB