<feed xmlns='http://www.w3.org/2005/Atom'>
<title>s1disasm.git/_inc, branch AS</title>
<subtitle>Sonic 1 Disassembly
</subtitle>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/'/>
<entry>
<title>Explain "Unknown" REV00 scrolling routines</title>
<updated>2026-04-07T09:43:16+00:00</updated>
<author>
<name>AlexField442</name>
<email>alexfield290@gmail.com</email>
</author>
<published>2026-04-07T09:38:49+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=81f82233b0af62c8cc7c5f4d0a76da11ba5c7e57'/>
<id>81f82233b0af62c8cc7c5f4d0a76da11ba5c7e57</id>
<content type='text'>
Credit goes to Katsushimi for being the one to first figure this code out.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Credit goes to Katsushimi for being the one to first figure this code out.
</pre>
</div>
</content>
</entry>
<entry>
<title>Converted demos to demoinput macro format</title>
<updated>2026-04-03T00:13:35+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-04-03T00:13:35+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=b790f64230d3c3f546b102a6a82205eaf77fc28e'/>
<id>b790f64230d3c3f546b102a6a82205eaf77fc28e</id>
<content type='text'>
This is the same macro that has been in the Sonic 2 disassembly for years.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the same macro that has been in the Sonic 2 disassembly for years.
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduced lvlsize macro to make LevelSizeArray slightly less verbose</title>
<updated>2026-04-02T23:10:16+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-04-02T23:10:16+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=c942862bc1df73189c9e3c59e32d31b659fee204'/>
<id>c942862bc1df73189c9e3c59e32d31b659fee204</id>
<content type='text'>
Also added an extra note to LevelOrder.asm
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also added an extra note to LevelOrder.asm
</pre>
</div>
</content>
</entry>
<entry>
<title>More file organization</title>
<updated>2026-04-02T23:09:04+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-04-02T23:09:04+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=7e82e14e08a7ba00215a27e5aafd3c7869b3b4f8'/>
<id>7e82e14e08a7ba00215a27e5aafd3c7869b3b4f8</id>
<content type='text'>
- Moved special stage start positions into startpos/Special Stages/
- Moved credits demos start positions into startpos/Credits Demos/
- Moved decompression algorithms into _inc/Decompression/
- Updated project files to accommodate
- Merged SBZ Palette Scripts.asm into PaletteCycle.asm
- Merged Start Location Array ASM files with LevelSizeLoad &amp; BgScrollSpeed.asm (...why were these ever split to begin with?)
- Demystified LevSz_LoadScrollBlockSize and also did some other misc cleanup in LevelSizeLoad &amp; BgScrollSpeed.asm
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Moved special stage start positions into startpos/Special Stages/
- Moved credits demos start positions into startpos/Credits Demos/
- Moved decompression algorithms into _inc/Decompression/
- Updated project files to accommodate
- Merged SBZ Palette Scripts.asm into PaletteCycle.asm
- Merged Start Location Array ASM files with LevelSizeLoad &amp; BgScrollSpeed.asm (...why were these ever split to begin with?)
- Demystified LevSz_LoadScrollBlockSize and also did some other misc cleanup in LevelSizeLoad &amp; BgScrollSpeed.asm
</pre>
</div>
</content>
</entry>
<entry>
<title>Uniformly applied REV00/REV01 naming conventions</title>
<updated>2026-04-01T14:12:37+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-04-01T14:12:37+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=20fdb03890642b6caa5f885cd0365fe957c8dff6'/>
<id>20fdb03890642b6caa5f885cd0365fe957c8dff6</id>
<content type='text'>
Any mentions of the old "JP1" have been removed. This disambiguation hopefully mitigates future confusions for beginners.

On a side note, it has been confirmed that REV01 was not exclusive to Japan (albeit it was most common market for that release).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Any mentions of the old "JP1" have been removed. This disambiguation hopefully mitigates future confusions for beginners.

On a side note, it has been confirmed that REV01 was not exclusive to Japan (albeit it was most common market for that release).
</pre>
</div>
</content>
</entry>
<entry>
<title>Removed all "S U B R O U T I N E" comments</title>
<updated>2026-03-31T16:42:53+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-03-31T16:42:53+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=1ffabe68ee5528ee636490a6f94edfb2c5a439bd'/>
<id>1ffabe68ee5528ee636490a6f94edfb2c5a439bd</id>
<content type='text'>
Specifically, these:

; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||

They were mostly pointless or redundant, sometimes even straight up misleading. But most of all, they were unsightly obstructions in the source code that made it harder to parse than aid.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Specifically, these:

; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||

They were mostly pointless or redundant, sometimes even straight up misleading. But most of all, they were unsightly obstructions in the source code that made it harder to parse than aid.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merged both revisions of LevelSizeLoad &amp; BgScrollSpeed.asm into one file</title>
<updated>2026-03-31T14:42:06+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-03-31T14:42:06+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=1a78ab083b11899664fd1aad8b0b5db1077eaad6'/>
<id>1a78ab083b11899664fd1aad8b0b5db1077eaad6</id>
<content type='text'>
Unlike Level Drawing or Deform Layers, this split never made much sense. This split only ever caused confusion because the two files are nearly identical.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unlike Level Drawing or Deform Layers, this split never made much sense. This split only ever caused confusion because the two files are nearly identical.
</pre>
</div>
</content>
</entry>
<entry>
<title>More assorted bug fixes</title>
<updated>2026-03-31T14:19:22+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-03-31T14:19:22+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=7b3b5b4adc2b3a75940745e8857cc634450b50a7'/>
<id>7b3b5b4adc2b3a75940745e8857cc634450b50a7</id>
<content type='text'>
Most of these were taken from the "Some changes/fixes for Sonic 1" thread on the Sonic Retro forums: https://forums.sonicretro.org/threads/some-changes-fixes-for-sonic-1.29751

I didn't implement all of them. Anything that leaned too far into a design choice or would require editing more than a handful of lines was skipped.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of these were taken from the "Some changes/fixes for Sonic 1" thread on the Sonic Retro forums: https://forums.sonicretro.org/threads/some-changes-fixes-for-sonic-1.29751

I didn't implement all of them. Anything that leaned too far into a design choice or would require editing more than a handful of lines was skipped.
</pre>
</div>
</content>
</entry>
<entry>
<title>Massive source code restructure: Extracted many more subroutines and reorganized a lot of code</title>
<updated>2026-03-28T20:23:44+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-03-28T20:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=f55aa883943f0de0777e363132474f9cd5c4bb9d'/>
<id>f55aa883943f0de0777e363132474f9cd5c4bb9d</id>
<content type='text'>
- Extracted subroutines (_inc): BuildSprites.asm, ExecuteObjects.asm, LevelLayoutLoad.asm, ObjPosLoad.asm, Palette Fading.asm, Special Stage Loading &amp; Drawing.asm, Special Stage Background &amp; Palette Cycle.asm,
- Extracted subroutines (_incObj): Sonic Collision.asm, sub AddPoints.asm, sub ConvertCollisionArray (Unused.asm), sub ExitPlatform.asm, sub PlatformObject.asm, sub ResumeMusic.asm
- Extracted all title cards mapping into a separate _maps/Title Cards.asm, included Game Over title cards. Also added a remark that this file cannot be altered in a sprite editor

- Merged previously multi-part files for Bridge, Swinging Platforms, and GHZ boss objects into single files (the one exception is Object 44, where both parts are so far apart that merging doesn't work). In-between shared subroutines have been annotated
- Grouped Palette bincludes together with the relevant files
- Extracted remaining Sonic collision logic and fixed/improved its label names
- Moved Ledge_Fragment and SlopeObject2 into Collapsing Floors object file, and smash fragments into sub SmashObject
- Moved stray object delete calls into relevant files
- Some miscellaneous code cleanup while I was at it
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Extracted subroutines (_inc): BuildSprites.asm, ExecuteObjects.asm, LevelLayoutLoad.asm, ObjPosLoad.asm, Palette Fading.asm, Special Stage Loading &amp; Drawing.asm, Special Stage Background &amp; Palette Cycle.asm,
- Extracted subroutines (_incObj): Sonic Collision.asm, sub AddPoints.asm, sub ConvertCollisionArray (Unused.asm), sub ExitPlatform.asm, sub PlatformObject.asm, sub ResumeMusic.asm
- Extracted all title cards mapping into a separate _maps/Title Cards.asm, included Game Over title cards. Also added a remark that this file cannot be altered in a sprite editor

- Merged previously multi-part files for Bridge, Swinging Platforms, and GHZ boss objects into single files (the one exception is Object 44, where both parts are so far apart that merging doesn't work). In-between shared subroutines have been annotated
- Grouped Palette bincludes together with the relevant files
- Extracted remaining Sonic collision logic and fixed/improved its label names
- Moved Ledge_Fragment and SlopeObject2 into Collapsing Floors object file, and smash fragments into sub SmashObject
- Moved stray object delete calls into relevant files
- Some miscellaneous code cleanup while I was at it
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleaned up undocumented jump tables</title>
<updated>2026-03-28T16:22:08+00:00</updated>
<author>
<name>Selbi182</name>
<email>shadow93x@gmail.com</email>
</author>
<published>2026-03-28T16:22:08+00:00</published>
<link rel='alternate' type='text/html' href='https://www.git.fragag.ca/s1disasm.git/commit/?id=98aa769f1c96523888d54b9c96d89902bc12cd0c'/>
<id>98aa769f1c96523888d54b9c96d89902bc12cd0c</id>
<content type='text'>
- Added proper labels for remaining entries that were still loc_ (mostly for bosses)
- Consistently use one index entry per line
- Minor documentation improvements on ending animals
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Added proper labels for remaining entries that were still loc_ (mostly for bosses)
- Consistently use one index entry per line
- Minor documentation improvements on ending animals
</pre>
</div>
</content>
</entry>
</feed>
