Actions

SCHG How-to

Relocate Player Object Logic in Sonic 2 SMS

From Sonic Retro

Revision as of 21:30, 20 December 2015 by Scarred Sun (talk | contribs) (Text replacement - "</asm>" to "</syntaxhighlight>")

(Original guide by Glitch)

Introduction

This guide will show you how to increase the the Sonic 2 ROM from 32 to 64 banks and move the logic for the Sonic object into bank 32. This gives you much more room to breathe when editing the player object not to mention extra space for art!

Increasing the ROM Size

We're going to start by increasing the ROM size. Open src/s2.asm and find the section that starts ".ROMBANKMAP". It should look like this:

<asm> .ROMBANKMAP BANKSTOTAL 32 BANKSIZE $7FF0 BANKS 1 BANKSIZE $0010 BANKS 1 BANKSIZE $4000 BANKS 30 .ENDRO </syntaxhighlight>

Change it to look like this:

<asm> .ROMBANKMAP BANKSTOTAL 64 BANKSIZE $7FF0 BANKS 1 BANKSIZE $0010 BANKS 1 BANKSIZE $4000 BANKS 62 .ENDRO </syntaxhighlight>

That was easy enough...

Prepare the Source Files

Now we're going to add a source file for the 32nd bank. Create a new file called "bank32.asm" in the src/includes dir. Open the src/includes/banks.asm file. Add the following lines at the end and save:

<asm> .BANK 32 .ORG $0000 Bank32:

.include "src\includes\bank32.asm" </syntaxhighlight>

Move the Logic

Open src/object_logic/bank31_logic.asm. It should start with the following lines:

<asm> .include "src\object_logic\logic_sonic.asm"

.include "src\object_logic\logic_ring_sparkle.asm"

.include "src\object_logic\logic_block_fragment.asm" </syntaxhighlight>

Cut the line that includes the logic for the Sonic object and paste it into the "bank32.asm" file. Save everything and build the ROM.