Compilers / Assemblers

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,055CR
OK, I was going to call this thread tools, but I don't personally want it to be that general as I personally don't want sprite converters and all that kind of thing listed here, but feel free to start other threads for that kind of thing.

So I'm interested in compiler and assembler options for various architectures. What people use and also what is known to work, and please remember that these days the whole world does not revolve around Windows. It sounds like at least myself and CMonkey are on OS X and I know of other people that are as well who haven't shown up here yet, but I would expect probably will when they have time (I'm talking about you Nes4Life !!)

I also know that not using assembler is frowned upon wherever you look. I get it all the time on the Vectrex FB group and I expect to get it here as well, but for me this isn't all just about writing new games for old hardware using old methods, this is the 21st century, so for me half the fun is in making use of modern methods. So I want to be able to develop in a higher level language like C for example, where I can (you're always going to need to dip into assembler somewhere along the line).

For 6809 then I use (and can supply for OS X if anyone needs):

asxxxx Assembler tool chain. Specifically as6809: http://shop-pdp.net/ashtml/asxxxx.htm

gcc6809 C compiler. https://github.com/bcd/gcc

I have a feeling that I'm using the as6809 that was built as part of the GCC-6809 distribution. I will say that the GCC-6809 was an absolute bitch to compile and get working on OS X 10.9 (as it was at the time) and not only can I not really remember what I did to get it working in the end but I also wouldn't wish that on anyone. So if anyone wants that (for OS X) then let me know and I'll send it over to them provided I can package it.

For 6502 cmonkey suggested yesterday:

64tass asembler tool chain : http://sourceforge.net/projects/tass64/

I don't know if I'm being too picky here but it seems to use a different syntax to as6809 above right down to fundamental things like $0d for hex whereas as6809 is 0x0d - (may or may not be correct off the top of my head, as I said, I'm not that familiar with assembler). Using a different syntax seems to further add complication and be a pain in the ass! But like I say, not sure if I'm being too picky?

I've not investigated a C compiler yet but it looks like the only one I could really spot was cc65 which is now defunct, but as long as the host OS is supported them defunct is OK. Let's face it, the target hardware is long since defunct too
smiley17.gif


For Z80 I remember using:

sdcc : http://sdcc.sourceforge.net/index.php

I had a little tinker about with that for Amstrad CPC work but I never did anything with it. I remember seeing some examples which is what led me there. That suite contains an assembler based on asxxxx as well incidentally.

That's it for me, I will be eagerly awaiting some input from others on this one!

What I will do at some point is write up my development process for Vectrex (suitably tagged as OT
smiley36.gif
) It may not specifically be arcade home-brew but in my mind it will demonstrate the method that I have been using (all on modern tools) and in my mind, I think I can make the same process work for arcade projects, though I'm not 100% sure on that just yet, I'm still mulling the intricacies of it over in my head...
 

cmonkey

Active member
vacBacker
Feedback
4 (100%)
Credits
1,658CR
Good thread Martin.

For 6809 stuff I use as9 as it was the original assembler as recommended by Motorola. It's been modified and revised a little since then of course. It's open source (as are all the assemblers/compilers I use). This is what I used to create the Pac-Land tile viewer homebrew.

http://home.hccnet.nl/a.w.m.van.der.horst/m6809.html

For 68000 stuff I use vasm. The 68000 CPU is only one of many different CPU's that vasm can target. It can also assemble code for 80x86, PowerPC, ARM, Z80, 6502, 6800 and others. It can also create binaries for Atari ST and Amiga and output ELFs, etc. It's also constantly updated by the author.

http://sun.hasenbraten.de/vasm/

For Z80 I use zasm, simply because I've used it for years and it's embedded in my soul now! It's also regularly updated by Kio (the author).

http://k1.spdns.de/Develop/Projects/zasm/

In the past I've dabbled with pasmo and sjasmplus for Z80 but always end up going back to zasm.

http://pasmo.speccy.org

http://sourceforge.net/projects/sjasmplus/

If you're wanting to try a C compiler that outputs Z80 then I'd recommend z88dk. This has grown from its roots of only targeting the Cambridge Z88 portable to now targeting a whole range of Z80 based devices.

http://www.z88dk.org/forum/

And then of course there's always hand coded asm! All enhancements I've done to Out Run, Super Hang-On, Hang-On and After Burner have had the code hand assembled by yours truly.
smiley23.gif
Not pretty, but when you don't have the original source it's usually the only way.
 

guddler

Busting vectors like it's 1982!
vacBacker
Feedback
10 (100%)
Credits
4,055CR
Cool. Trying to work my way through the list here!

I'm early enough in my Vectrex development that I could relatively easily jump ship to a different assembler as long as it stays compatible with the linker I'm using (which I'm not sure if that is portable or not yet). So I'm trying to see if there's a 6809 / 6502 / Z80 / 68K combo that would share the same basic syntax for the assembler. That would help me immensely in getting used to things.

Obviously I'm not talking about assembler specific directives like .area and stuff like that but more the general language stuff.
 

Muppz

Active member
Feedback
6 (100%)
Credits
362CR
I'm doing some 68K. I started using GCC but it was a pita to build a linux machine then the toolchain so I have now moved to http://home.kpn.nl/pj.fondse/ide68k/ works fine for what I'm doing and it runs on windows so no faffing about building tool chains.

Chris
 

cmonkey

Active member
vacBacker
Feedback
4 (100%)
Credits
1,658CR
Just a heads up for anyone who wants to do homebrew dev on Konami-1 equipped boards likes Track & Field, Juno First, Circus Charlie, Road Fighter, Jail Break, Roc 'n Rope, etc. KLOV user shoestring recently modified the freeware A09 assembler (6809 CPU) to produce Konami-1 encrypted binaries. He's currently using this modified assembler to develop a test/diagnostic rom for Track & Field, something that previously would have been almost impossible.

You can get the source and pre-compiled executable for the modified assembler at porchy's site in the Downloads section.

http://www.jammarcade.net/programs/
 
Top