Actions

SCHG How-to

Difference between revisions of "Set up a Sonic 1 split disassembly"

From Sonic Retro

(Undo revision 202062 by Mrsoniclover (talk) No, you can't use Windows Explorer to extract a RAR file (without installing WinRAR).)
m (Text replacement - "\[\[Category:SCHG How-tos.*" to "")
 
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
''(Original guide by [[Qjimbo]] / [[The Glowing Bridge]])''
+
''(Original guide by [[User:Qjimbo|Qjimbo]] / [[The Glowing Bridge]])''
 
==Introduction and Overview==
 
==Introduction and Overview==
 
So, you want to modify Sonic 1? The first step for most people might be to download SonED1, or ESE II, and edit the ROM directly. However there is another way of ROM editing, called using a '''split [[disassembly]]'''. Here we are going to cover the basics of using a disassembly, and allow you the user to understand how they work, so you can get modifying Sonic 1!
 
So, you want to modify Sonic 1? The first step for most people might be to download SonED1, or ESE II, and edit the ROM directly. However there is another way of ROM editing, called using a '''split [[disassembly]]'''. Here we are going to cover the basics of using a disassembly, and allow you the user to understand how they work, so you can get modifying Sonic 1!
  
 
==Files and Useful Tools==
 
==Files and Useful Tools==
* [[:Image:Sonic_1_%28Split_and_Text_by_Hivebrain%29_%28ASM68K%29.zip|Hivebrain's Sonic 1 Disassembly]] ASM68K version
+
* [https://github.com/sonicretro/s1disasm_git/archive/master.zip Sonic 1 Git Disassembly] Standard ASM68K version
 
: For rebuilding the ROM from its split form.
 
: For rebuilding the ROM from its split form.
:: (note from andlabs) Use this version instead of the version that used to be here as the old one will not work with Windows 2000/XP/Vista/7.
+
* [[:Image:SonED2_v11-05-19.rar|Stealth's SonED2]]
* [[:Image:SonED2_v.1.02.zip|Stealth's SonED2]]
+
: For creating and editing the levels (a guide for SonLVL, another level editor, is available [[SCHG How-to:Set Up SonLVL|here]]).
: For creating and editing the levels.
 
* [[:Image:SonED2Projects_Quickman.zip|Quickman's Hivebrain Disassembly Project Files for SonED2]]
 
: Allows you to use Hivebrain's disassembly with SonED2.
 
* A clean ''[[Sonic 1]]'' Revision 00 ROM (Hint: [http://www.sonicstrike.net/users/sonicroms/ Try here])
 
: Needed to generate files not included with the disassembly.
 
  
 
==Setting up the Project==
 
==Setting up the Project==
  
:1. Open the SonED2 zip file and extract it into a folder. I'll use '''''C:\SonED2-1\'''''
+
:1. Open the SonED2 rar file and extract it into a folder. I'll use '''''C:\SonED2-1\''''' (For this you need [http://www.rarsoft.com/ WinRAR])
  
:2. Now open the rar file containing Hivebrain's Sonic 1 Disassembly and extract it to a subdirectory inside your chosen folder. In my case, this will be  '''''C:\SonED2-1\s1h\'''''
+
:2. Now open the zip file containing the Git Sonic 1 disassembly and extract it to a subdirectory inside your chosen folder. In my case, this will be  '''''C:\SonED2-1\s1h\''''', and with that you're ready to go! The SonED2 project files can be found under '''''C:\SonED2-1\s1h\SonED2 Projects'''''.
(For this you need [http://www.rarsoft.com/ WinRAR])
 
 
 
Make sure the path to the files contains folder names no longer than 8 characters, and with no spaces. I strongly suggest you follow the '''''C:\SonED2-1\s1h\''''' scheme if you're at all confused.
 
 
 
:3. Extract Quickman's Hivebrain Disassembly Project files to this folder as well. so '''''C:\SonED2-1\s1h\project''''' is created containing the .SEP files.
 
 
 
:4. Copy your clean Sonic 1 ROM into the '''''C:\SonED2-1\s1h\''''' folder and rename it to '''''s1.bin''''' (Make sure you have file extensions visible)
 
 
 
:5. If you don't see it already, create an empty file in the same folder as the disassembly called '''''s1comb.asm''''' (this is already included in the disassembly here).
 
 
 
:6. Now run split.bat, and you're ready to go!
 
  
 
==Advantages over hex editing==
 
==Advantages over hex editing==
* One of the most common problems you run into with hex editing is when something doesn't fit, and has to be put at the end of the ROM, and all the pointers changed. This is incredibly wasteful. With a split disassembly everything is kept organized and pointers automatically change on compiling, so you can, for example, replace art with a larger file, recompile the ROM and everything will be adjusted accordingly.
+
* One of the most common problems you run into with hex editing is when something doesn't fit, and has to be put at the end of the ROM, and all the pointers changed. This is incredibly wasteful. With a split disassembly everything is kept organized and pointers automatically change during the assembling process, so you can, for example, replace art with a larger file, assemble the ROM and everything will be adjusted accordingly.
  
* As everything is in seperate files, there is no extracting -> decompressing -> editing -> recompressing -> inserting into the ROM. All you have to do are the middle three steps, sometimes only the editing if files are compressed during the build.
+
* As everything is in separate files, there is no extracting -> decompressing -> editing -> recompressing -> inserting into the ROM. All you have to do are the middle three steps, sometimes only the editing if files are compressed during the build.
  
 
* Editing the code. While this might seem awkward, it's amazing how far a little bit of patience can go in terms of teaching yourself the basics of assembly. Editing in hex makes code editing a lot harder.
 
* Editing the code. While this might seem awkward, it's amazing how far a little bit of patience can go in terms of teaching yourself the basics of assembly. Editing in hex makes code editing a lot harder.
  
 
==Possibilities==
 
==Possibilities==
The possibilities are only as limited as the hardware and your imagination. You can edit the code of the game, the artwork, the level layouts, the music, anything! All these parts of the game are labelled and in seperate files. This is why I believe more people should be aware of the advantages of using a split disassembly, even if they plan not to even touch the assembly code.
+
The possibilities are only as limited as the hardware and your imagination. You can edit the code of the game, the artwork, the level layouts, the music, anything! All these parts of the game are labelled and in separate files. This is why I believe more people should be aware of the advantages of using a split disassembly, even if they plan not to even touch the assembly code.
  
 
{{S1Howtos}}
 
{{S1Howtos}}
[[Category:SCHG How-tos|Set up a Sonic 1 split disassembly]]
+
|{{PAGENAME}}]]

Latest revision as of 10:51, 25 August 2018

(Original guide by Qjimbo / The Glowing Bridge)

Introduction and Overview

So, you want to modify Sonic 1? The first step for most people might be to download SonED1, or ESE II, and edit the ROM directly. However there is another way of ROM editing, called using a split disassembly. Here we are going to cover the basics of using a disassembly, and allow you the user to understand how they work, so you can get modifying Sonic 1!

Files and Useful Tools

For rebuilding the ROM from its split form.
For creating and editing the levels (a guide for SonLVL, another level editor, is available here).

Setting up the Project

1. Open the SonED2 rar file and extract it into a folder. I'll use C:\SonED2-1\ (For this you need WinRAR)
2. Now open the zip file containing the Git Sonic 1 disassembly and extract it to a subdirectory inside your chosen folder. In my case, this will be C:\SonED2-1\s1h\, and with that you're ready to go! The SonED2 project files can be found under C:\SonED2-1\s1h\SonED2 Projects.

Advantages over hex editing

  • One of the most common problems you run into with hex editing is when something doesn't fit, and has to be put at the end of the ROM, and all the pointers changed. This is incredibly wasteful. With a split disassembly everything is kept organized and pointers automatically change during the assembling process, so you can, for example, replace art with a larger file, assemble the ROM and everything will be adjusted accordingly.
  • As everything is in separate files, there is no extracting -> decompressing -> editing -> recompressing -> inserting into the ROM. All you have to do are the middle three steps, sometimes only the editing if files are compressed during the build.
  • Editing the code. While this might seem awkward, it's amazing how far a little bit of patience can go in terms of teaching yourself the basics of assembly. Editing in hex makes code editing a lot harder.

Possibilities

The possibilities are only as limited as the hardware and your imagination. You can edit the code of the game, the artwork, the level layouts, the music, anything! All these parts of the game are labelled and in separate files. This is why I believe more people should be aware of the advantages of using a split disassembly, even if they plan not to even touch the assembly code.

SCHG How-To Guide: Sonic the Hedgehog (16-bit)
Fixing Bugs
Fix Demo Playback | Fix a Race Condition with Pattern Load Cues | Fix the SEGA Sound | Display the Press Start Button Text | Fix the Level Select Menu | Fix the Hidden Points Bug | Fix Accidental Deletion of Scattered Rings | Fix Ring Timers | Fix the Walk-Jump Bug | Correct Drowning Bugs | Fix the Death Boundary Bug | Fix the Camera Follow Bug | Fix Song Restoration Bugs | Fix the HUD Blinking | Fix the Level Select Graphics Bug | Fix a remember sprite related bug
Changing Design Choices
Change Spike Behavior | Collide with Water After Being Hurt | Fix Special Stage Jumping Physics | Improve the Fade In\Fade Out Progression Routines | Fix Scattered Rings' Underwater Physics | Remove the Speed Cap | Port the REV01 Background Effects | Port Sonic 2's Level Art Loader | Retain Rings Between Acts | Add Sonic 2 (Simon Wai Prototype) Level Select | Improve ObjectMove Subroutines | Port Sonic 2 Level Select
Adding Features
Add Spin Dash ( Part 1 / Part 2 / Part 3 / Part 4 ) | Add Eggman Monitor | Add Super Sonic | Add the Air Roll
Sound Features
Expand the Sound Index | Play Different Songs Per Act | Port Sonic 2 Final Sound Driver | Port Sonic 3's Sound Driver | Port Flamewing's Sonic 3 & Knuckles Sound Driver | Change The SEGA Sound
Extending the Game
Load Chunks From ROM | Add Extra Characters | Make an Alternative Title Screen | Use Dynamic Tilesets | Make GHZ Load Alternate Art | Make Ending Load Alternate Art | Add a New Zone | Set Up the Goggle Monitor | Add New Moves | Add a Dynamic Collision System | Dynamic Special Stage Walls System | Extend Sprite Mappings and Art Limit | Enigma Credits | Use Dynamic Palettes
Miscellaneous
Convert the Hivebrain 2005 Disassembly to ASM68K
Split Disassembly Guides
Set Up a Split Disassembly | Basic Level Editing | Basic Art Editing | Basic ASM Editing (Spin Dash)

|Set up a Sonic 1 split disassembly]]