Skip to content

Miscellaneous additions to Sonic 1 in Sonic 3 & Knuckles (S.C.E. Version) by Red Miso Studios

Notifications You must be signed in to change notification settings

giovannidotgen/Giovannis-Potpourri

 
 

Repository files navigation

Giovanni's Potpourri

This is a disassembly where I implement a variety of things onto Red Miso Studios' Sonic 1 in Sonic 3 of small to medium size.

Additions from source

  • Drop Dash, from Sonic Mania (the code for which was derived from my own Sonic 2 - Score Rush)
  • Fast Air Moves, a feature that disables the vertical speed check that occurs during a jump, and before an air move

Known issues

  • Super Sonic's sprites have been disabled. I intend to address it through an approach distinct from that of the base game.

Usage conditions

All code contributions are free to reuse for the development of Sonic ROM Hacks, and, if applicable, non-commercial projects. Other original asset contributions may be subject to separate conditions. You may not use any of the contents of the repository for commercial purposes without the explicit, written permission of giovanni.gen. Due to the fact that this is a derivative of SEGA's Sonic the Hedgehog Mega Drive games, there is a 99.99999% likelihood you will simply not be granted permission to use certain code and assets for commercial purposes anyway, on account of the fact that giovanni.gen does not hold the power to grant you such permission in the first place.

Credit is appreciated.

Giovanni's Potpourri - Credits

Each mini-project has its own set of credits:

Drop Dash in Sonic 1 in Sonic 3

Sprites source: Sample Sprite mod (Sonic 3 - Angel Island Revisited)

Super Peel-Out in Sonic 1 in Sonic 3

Peel-Out fading sound effect: DeltaW May contain code by heyjoeway Original sprites sourced from Sonic 3 - Angel Island Revisited

Original Description

SONIC-1-IN-SONIC-3-S.C.E.-

Title

Disclaimer

This is a port of Sonic The Hedgehog (1991) to Sonic Clean Engine (S.C.E.), our heavily modified and improved Sonic 3 & Knuckles engine, which we have been using for a long time for our MD projects (such as Hellfire Saga and Sonic 3 & Knuckles: Epilogue).

Free use. You use it at your own risk. All code is provided “as is”. This source code uses software from other authors. Check their licenses before using it. You assume any and all responsibility for using this content responsibly. I claims no responsibility or warranty.

You can use this source code as a base for your projects, or just as an example for optimizations of your source code.

Screenshots

Screenshots

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Additional links

Main source code:

Extended source code:

How to build the ROM

To build this, use build.bat if you're a Windows user, or build.sh if you're a Linux user. The built ROM will be called 'S3CE.gen'. Use build_debug for debug things. The built ROM will be called 'S3CE.Debug.gen'.

Quick start

Current issues

  1. S.C.E. uses Kosinski Plus algorithm, but Flex2 program does not support Kosinski Plus Module. Therefore, Flex2.json project file is partially useless. SonMapEd program does not support Kosinski Plus at all. You can only open uncompressed graphics.

Alternative programs:

FAQ

  • If you want to convert levels from previous Sonic games, you have to use LevelConverter from SonLVL. Then change the layout format using Layout converter.

  • If you want to make a different text for Title Card, you need to create a file of letters from List.unc. This will be loaded before the level starts. You don't have to add the letters 'ENOZ' (ZONE) because those letters are already in VRAM. Then you have to create a mapping of your zone name in Map - Title Card.asm.

  • If you want to use other SMPS music you can use Valley Bell's SMPS Research or vgm2smps.

The Macro Assembler AS issues

Why does the ROM take so long to build?

  • The speed of the ROM build process depends entirely on the power of your computer. A high-performance machine will build the ROM quickly, while a slower one will take significantly more time. If you're a Linux user and you're using Wine and Windows batch script, that will affect build speed too.

  • Always specify jump sizes for instructions. Writing code without specifying jump sizes will significantly slow down the ROM build. The Macro Assembler AS will perform multiple passes until it can successfully build the ROM, which increases build time.

Example of problematic code:

		beq	sub_1234	; and any other branch instructions
		jsr	sub_1234
		jmp	sub_1234
		lea	sub_1234,a1

Example of correct code:

		beq.s	sub_1234	; and any other branch instructions
		jsr	(sub_1234).l
		jmp	(sub_1234).l
		lea	(sub_1234).l,a1

Pay close attention to your code to avoid such issues.

Credits

Red Miso Studios Staff

  • TheBlad768 -- Project lead, sole programmer, S.C.E. Game Engine
  • kuroya2mouse -- Level art and level design edits, sprite art and other things
  • pixelcat -- Sprite art, UI art and other things
  • FoxConED -- S.C.E. Level Select font art
  • Dolphman -- Robotnik head art

Testing and other help

  • giovanni.gen, KGL, DeltaW, Narcologer, CatswellMeow, Nintorch, FoxConED, lavagaming1, cuberoot, Vladikcomper, ProjectFM, MarkeyJester, VAdaPEGA

Special Support

  • cuberoot

Special Thanks

  • joshyflip for consulting on the artwork
  • Flamewing, devon, RealMalachi and others for bug fixing guides
  • Clownacy for work on the disassemblies
  • SSRG and Sonic Retro

Discord

These projects are based on this source code

Check out the Sonic Retro source code

About

Miscellaneous additions to Sonic 1 in Sonic 3 & Knuckles (S.C.E. Version) by Red Miso Studios

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Assembly 97.4%
  • C# 2.0%
  • Other 0.6%