Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Clownacy opened this issue Jul 22, 2022 · 15 comments
Open

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

Clownacy opened this issue Jul 22, 2022 · 15 comments

Comments

@Clownacy
Copy link
Member

Clownacy commented Jul 22, 2022

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...

  • Support for platforms besides Windows.
  • A disassembled DAC driver.
  • Split DPCM samples.
  • Disassembled music and SFX data (in SMPS2ASM format).

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
Copy link
Contributor

Brainulator9 commented Jul 22, 2022

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
Copy link

kramlat commented Jul 23, 2022

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
Copy link
Member

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
Copy link

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
Copy link
Member Author

Clownacy commented Aug 6, 2022

...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
Copy link
Member

FraGag commented Aug 6, 2022

@Clownacy I changed it.

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

@Clownacy
Copy link
Member Author

Clownacy commented Aug 6, 2022

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

@Clownacy Clownacy closed this as completed Aug 6, 2022
@Clownacy
Copy link
Member Author

Clownacy commented Aug 6, 2022

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

@Clownacy Clownacy reopened this Aug 6, 2022
@FraGag
Copy link
Member

FraGag commented Aug 6, 2022

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
Copy link

kramlat commented Aug 6, 2022

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

@Brainulator9
Copy link
Contributor

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

@kramlat
Copy link

kramlat commented Aug 18, 2022

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
Copy link
Member Author

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
Copy link
Contributor

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
Copy link

kramlat commented Aug 19, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants