freem / freemlib-neogeo

library(-ish) and utils for programming the Neo-Geo
https://freem.github.io/freemlib-neogeo/
ISC License
30 stars 4 forks source link

Move to different assembler/linker #11

Open freem opened 7 years ago

freem commented 7 years ago

I've only just now realized that vasm and vlink can't be used for commercial purposes (outside of Amiga 68K), making them hard to recommend to anyone who wants to do serious and/or commercial work.

For Z80, this is less of a problem, since a number of assemblers exist already. The tricky part is the 68K. I can't compile gcc cross chain on my upstairs Windows computer for some stupid reason, so that's out unless I dedicate a VM to it.

Most 68K solutions in the homebrew console dev community (read: Genesis/Mega Drive) tend to use an outdated, Windows-only piece of software. I would really like to avoid this, because having separate makefiles for Windows and Linux/whatever else is garbage. (Also, free software zealots will endlessly complain about having to use Wine, but I prefer my reason to not do this.)

freem commented 7 years ago

Z80 Assembler Options

The ideal replacement would require as little work as possible to convert the existing source (vasm z80-oldschool). Since Z80 assembly syntax is mostly standard across assemblers, this should not be much of an issue.

The following list is somewhat sorted by project activity.

Many others not included in the list above can be found on z80.info. Several others also exist that aren't included on that page (e.g. the rednex kit).

68K Assembler Options

short version: you're fucked, kid, gcc/gas is the only reasonable option that will work on multiple platforms.

longer version: The only reasonable option, it appears, is to use gcc/gas with -register-prefix-optional.

2017 version: Perhaps naken_asm is a viable option. It even supports both 68K and Z80.