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

Replace asm68k with a free alternative #10

Open
superctr opened this issue Apr 7, 2020 · 4 comments
Open

Replace asm68k with a free alternative #10

superctr opened this issue Apr 7, 2020 · 4 comments

Comments

@superctr
Copy link
Owner

superctr commented Apr 7, 2020

asm68k originally came from the leaked Psy-Q Sega Saturn SDK and is an old proprietary assembler that has not been maintained in 25 years. It is also Windows-only, although it does work with Wine.

For Windows users I would like an alternative that can be either easily installed or included in the repo.

Currently, MDSDRV uses a few features which may or may not be specific to asm68k, including equr statements and some fancy expressions that might not work in other assemblers.

Suggested alternatives:
https://github.com/asmotor/asmotor - Is free software (GPLv3) and is currently maintained. It has an equs directive which can replace equr. Not sure about Windows support? -> It cannot output listing files, which makes debugging much harder.

@htv04
Copy link

htv04 commented Jul 7, 2023

What about VASM (specifically the Motorola syntax)? A lot of syntax is shared, and anything that isn't should be trivial to convert over. It also supports listing files.

@superctr
Copy link
Owner Author

superctr commented Jul 7, 2023

VASM is not free software.

image

@htv04
Copy link

htv04 commented Jul 11, 2023

Ah, understandable. Though I might port it over to VASM sometime to take advantage of its features if you don't mind.

In terms of FOSS, what about Macroassembler AS? It's under the GPL 2.0 and used for the Sonic decompilations (when they similarly migrated from ASM68K). However, I've heard it's a little buggy.

@superctr
Copy link
Owner Author

I have tried AS, unfortunately it has a pretty big behavior difference compared with asm68k, that when defining a label using EQU or SET (instead of implicit label before an instruction, see here), it will create a new local scope, making all previously defined local labels inaccessible. I have proposed adding this behavior as an option at least, but it's been refused so far.

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

2 participants