sonicretro / s1disasm

Sonic 1 Disassembly
336 stars 97 forks source link

Make the AS branch this repo's default? #64

Open Clownacy opened 2 years ago

Clownacy commented 2 years ago

I don't want to be a complete repo-dictator, so I want to get some input from users and contributors before making this change.

The master (asm68k) branch is starting to lag quite a bit behind the AS branch: advantages that the AS branch has over the asm68k branch include...

Additionally, AS is the only supported assembler of the Sonic 2 and Sonic 3 & Knuckles disassemblies. Promoting asm68k as the default assembler contributes to fragmentation, making it more difficult for people to share code that works across all Git disassemblies. Examples of this are Flamewing's DMA queue, debugger, and sound driver, which are intended to be ported to either of the three games, but are incompatible with asm68k. I also frequently find myself referring people to the AS branch instead of the asm68k branch whenever I make a tutorial on porting assets from later games back to Sonic 1.

I suppose, if this goes through, then we may have to consider rebasing the MapMacros and Project Sonic 1: Two-Eight branches on the AS branch as well.

Brainulator9 commented 2 years ago

At the same time, if you know what you're doing, much of the code you mentioned can be migrated to ASM68K with little issue (at least SMPS2ASM and the Ultra DMA queue can be).

I actually find the ASM68K version easier to use, since you don't have to worry about recompiling tools with some program if you want to make larger modifications. Maybe this is just me being a noob, though.

EDIT: It took all day, but I managed to port Flamewing's SMPS2ASM back into something that ASM68K can use, maintaining all features yet still assembling bit-perfect Sonic 1 ROMs.

kramlat commented 2 years ago

the entire point of using ASW is to not even have to do that. I am fine with that, as long as the asm68k branch just becomes a lesser branch that others can still use if they really want it.

MainMemory commented 2 years ago

I would say something about how many people hate AS, but I don't think any of them use this disassembly anyway so I guess it really doesn't matter.

Awuwunya commented 2 years ago

Then we come to the whole debate about AS vs ASM68K ultimately. You can't win in the argument because both have some serious flaws. Until we have a better solution (eg someone creates a competent assembler), switching to AS branch as default would be a sensible alternative, provided Flamewing's fixed version of AS is implemented and improved upon, and tutorials are updated to reflect the change.

Clownacy commented 2 years ago

...I was going to make the change today, but I realised that I don't have the permissions to change the repo's default branch.

@MainMemory, could you do it?

FraGag commented 2 years ago

@Clownacy I changed it.

Should we also rename the master branch to something else, like asm68k, for clarity?

Clownacy commented 2 years ago

Yes, I think that's a good idea. Thanks.

Clownacy commented 2 years ago

Whoops, maybe I should leave this open until the MapMacros and Project Sonic 1: Two Eight branches are rebased on the AS branch.

FraGag commented 2 years ago

Also, I just pushed a noop merge to the asm68k branch (from the AS branch) so that changes committed to the AS branch can be merged "more easily" to the asm68k branch. We should no longer merge the asm68k branch into the AS branch.

kramlat commented 2 years ago

I will take down all branches except one of my fork once this completes because they will officially be redundant

Brainulator9 commented 2 years ago

Perhaps the MapMacros and Project 128 branches should be split into ASM68K and AS versions?

kramlat commented 2 years ago

Perhaps the MapMacros and Project 128 branches should be split into ASM68K and AS versions?

that would be a perfect idea, and for Sonic 1: twenty eight as well?

Clownacy commented 2 years ago

The problem with that is maintenance burden: it's bad enough that I have to keep 4 branches in sync with each other, so I'd really rather not bump that up to 6.

Brainulator9 commented 2 years ago

Project 128 is Project Sonic 1: Two Eight; I messed up the name.

Having 6 branches doesn't seem much worse to me, though, than s2disasm's 5 branches (master, megaplay, knuckles, classics, MapMacros). Then again, it's not like I've been able to handle much of the commit history here.

kramlat commented 2 years ago

or we can bump it up to 8 if you prefer by adding a megaplay branch in each of the assemblers, or we can drop it to just 4: our as based branches and asm68k branch and if one wants something else,l they just fork it. the forks should still be accessible from the main repository and the one that wants an up to date asm68k sonic 1 with knuckles one, they could just fork the asm68k repository and pull changes into it over time. i.e. if they want 6 branches, they could just do what I was doing over these years, and they could simply just name their fork for an example, s1sidasm-asm68k-mapmacros-with-tails.