Hello. Recently, I have started a Sonic 1 ROM Hack, however it's in a HUGE hiatus, because I ran into some problems. And if possible i would like to know a solution for said problems. 1. For some reason, the objects in GHZ Act 3 Do not go away, no matter how many times I select them all and delete them. 2. The levels have barely 30 seconds of gameplay, how could I extend them. I am aiming for a Explorative gameplay style. I know it sounds extensive, but is there any way I could make a level go to at least 3 minutes of gameplay? 3. How can i add custom text, cutscenes, or new movements into the game? E.G: Jump dash, Spindash, Double jump, etc. 4. how do i delete a zone? I wanna delete Marble Zone. I'm just testing ROM Hack Editing/producing for now. Sorry for the extensive thread. i just don't wanna spam the forum with questions.
Hello! For the first two questions I don't know how to answer, I'm sorry But I have some advice for the last two: 3-Here you will find useful programs for various functions: http://info.sonicretro.org/Sonic_Hacking_Utilities If you want to add something new check out the tutorials on SSRG: https://sonicresearch.org/community/index.php?forums/tutorials.60/ Or Sonic Retro: http://info.sonicretro.org/SCHG_How-to:Guide 4-I'm not sure if you can delete the zone, but you can hide it,I have created a guide on how to change the order of the levels of sonic 1: https://sonicresearch.org/community...he-levels-in-sonic-1-github-disassembly.5992/ I hope these tips will be useful to you
1) You may be editing the wrong revision's object placement file. Sonic 1 has 2 main revisions, them being REV00 and REV01. Each has its differences in terms of code, level design and object placement. Check the very top of your disassembly's main code file to figure out what revision your builds are using (if you're using a Github based disassembly, the file should be called sonic.asm) There's a high chance your object placement edits are saved in a different file. Based on the revision your build is using, if there are 2 files with the same name: - If it's REV01, the build will use the content of files of which name is followed by "(JP1)" - If it's REV00, the exact opposite will occur If you want to quickly carry over one revision's object placement file to another, simply swap the names. Also, depending on which level editor you're using: - If it's SonED2, switch over to SonLVL make sure you're editing the correct .sep project - If it's SonLVL, make sure you've selected the correct .INI file before starting to edit the level. 2) Refer to this guide if you'd like to resize your level. You may also want to familiarize with dynamic level events. Keep in mind that, due to limitations, you can only create levels 64x8 chunks in size. Also, placing more than 256 objects capable of remembering their sprite state (which is many, and include rings) will cause gameplay issues. I personally don't think these limitations will allow you to make an "explorative level" capable of warranting 3 minutes of gameplay. You'd need to make changes to the level format and the object manager. 3) You may need to elaborate on what you mean by custom text and cutscenes (if you mean S3K styled cutscenes, I can't really help you myself). As far as custom moves go, Sonic's moveset is handled by Sonic's object. More precisely, these 4 routines: Obj01_MdNormal for ground control, Obj01_MdJump for midair control, Obj01_MdRoll for control while rolling and Obj01_MdJump2 for control after jumping. Before even trying to implement a custom move, familiarize with how objects work, so that you have an idea of what you're doing when you're creating moves. If you're using a GitHub based disassembly, you may have a harder time navigating through these sections of code, as Sonic's object is heavily separated into multiple files. There is, already, an existing Spin Dash porting guide, however, it is VERY old, unfinished (for Github users) and uses really old methods and practices (e.g. the way the Spin Dash graphics are ported in). If you're using a Github disassembly, you will find yourself struggling to follow this guide, especially if you don't know where to place your code. 4) Fully deleting any reference to a zone requires knowing pretty much everything about how the zone data is loaded and where it is loaded from, from stuff as small as the title card mappings or as large as the level's art. You can, however, hide a zone from gameplay by following the guide by Angel X.
Could you go a little bit more into detail about 1? I am using REV00. About 3, on the cutscene topic, no, i mean like, for example when a boss starts. For example the boss is a giant robot snake. The boss falls into the ground, gets back up, then the fight starts. On the custom moveset side, i don't really know if im gonna put custom moves other than the spindash, since i don't know how to modify stuff in ASM. About 4; yeah, i modified the ASM Code to wipe off MZ and LZ.
Since you're using REV00: - If you are using SonED2 for level editing, you want to pick the project files that do NOT contain "(JP1)" in their names when editing levels - If you are using SonLVL, you want to select the SonLVL.INI file that specifically references REV00 (or, if you are using an older version of the Github INI files, you want to select the one that does NOT reference REV01). Since your screenshot shows GHZ3, I can tell you that possible object placement edits ended up in objpos/ghz3 (JP1).bin. If you wish to recover those, you want to swap file names between the JP1 variant and the non JP1 variant. Do the same for any level that also has a JP1 file variant you may have edited (check both your levels and objpos folders) Boss behavior is something that is handled by the boss object's code. That requires ASM programming skills and knowledge on how objects work.
I'd check out the 'Dynamic Level Events' routine (Resize_Index if using the 2005 disassembly), and see how that works as well.
I'm using SonLVL, which i did use to edit specifically, the file which does not contain REV01 in it's name. And about the JP1 Thing, no, i didn't edit any of these files.
Since you use SonLVL, but the level edits you tried to make do not get accounted for in the building process, make sure to check for the following before picking your file: - If it contains REV00 in its name, pick that. - If it contains REV01 in its name, pick the other one. Make sure to also check the last edit date of your files. There's a very small possibility that your object placement edits were just lost altogether.