gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

Announcements And Comments > Hello forum newbie here.

#65471 - enigmavariation - Tue Jan 03, 2006 3:29 pm

Hi, I'm a programmer for a company based in Sheffield. I've been a professional programmer for 20+ years now. Got several GBA games under my belt along with a couple of DS titles, previously worked on games from the Amstrad CPC and Spectrum right up to the Playstations of this world.

Currently developing for the GBA again, so I'll be hanging around here for quite a while.

I don't know if anyone is interested but I use a modified version of the nasm assembler with elf output (Not the the narm project, my own) this is compatib le with the gnu linker - The reason I use it (It can only assemble 80386 instructions) - Is the for incbin and macro functions - the Gnu as incbin is decidely ropey so I use nasm and just link in the object files with the rest of my c code - I use the macro function as a script-language for my AI.

Anyway - Enough rambling. I'll see you in the forums.

Enigma

#65473 - kusma - Tue Jan 03, 2006 3:48 pm

hi, welcome :)

enigmavariation wrote:

The reason I use it (It can only assemble 80386 instructions) - Is the for incbin and macro functions - the Gnu as incbin is decidely ropey so I use nasm and just link in the object files with the rest of my c code - I use the macro function as a script-language for my AI.

I'm not sure what you mean by this, i use both incbin and macros with gas and i find it to work wonderfully. this might be just a matter of taste though.

#65474 - enigmavariation - Tue Jan 03, 2006 3:55 pm

kusma wrote:
hi, welcome :)

enigmavariation wrote:

The reason I use it (It can only assemble 80386 instructions) - Is the for incbin and macro functions - the Gnu as incbin is decidely ropey so I use nasm and just link in the object files with the rest of my c code - I use the macro function as a script-language for my AI.

I'm not sure what you mean by this, i use both incbin and macros with gas and i find it to work wonderfully. this might be just a matter of taste though.


incbin with older versions of Gas is notoriously dodgy - Some times it would skip bytes. Though it's probably fixed on later versions especially the devkit arm build. However gas macro handling is very primitive especiall parameter parsing - in nasm you can tell what kind of parameter is being passed to a macro, i.e a global variable a local variable a string or a constant or a fixed number this is useful for tokenising in a script based language.

#65476 - keldon - Tue Jan 03, 2006 4:03 pm

I think that one of the most powerful macro parsers is in RosAsm. I have thought on many occasions about writing a generic assembler based on this titled TLTL (Too Little Too Late) which would be able to assemble various architectures by having the processor architectures defined in some sort of XML definition. But I do not have much ambition to dedicate time to that project at the moment.

The macro parser on Rosasm is so powerful that you can create a language using it. I implemented a macro where you can traverse structures and do cell.next.next.next.prev.next (etc.). Well if you are interested in seeing what an assembler / linker could be capable go to their forum and ask them for a demo of their macros - I am sure they will be more than happy to demonstrate.

And to add to its features - it has one of the fastest compile times. In fact your code is actually stored in your executable so that makes this the only assembler which allows you to have a single file which includes your source and executable. It is also integrated into an IDE and is a true One-Click assembler IDE interface.

The Nessie NES emulator was written using RosAsm.

#65477 - enigmavariation - Tue Jan 03, 2006 4:11 pm

keldon wrote:
I think that one of the most powerful macro parsers is in RosAsm. I have thought on many occasions about writing a generic assembler based on this titled TLTL (Too Little Too Late) which would be able to assemble various architectures by having the processor architectures defined in some sort of XML definition. But I do not have much ambition to dedicate time to that project at the moment.

The macro parser on Rosasm is so powerful that you can create a language using it. I implemented a macro where you can traverse structures and do cell.next.next.next.prev.next (etc.). Well if you are interested in seeing what an assembler / linker could be capable go to their forum and ask them for a demo of their macros - I am sure they will be more than happy to demonstrate.

And to add to its features - it has one of the fastest compile times. In fact your code is actually stored in your executable so that makes this the only assembler which allows you to have a single file which includes your source and executable. It is also integrated into an IDE and is a true One-Click assembler IDE interface.

The Nessie NES emulator was written using RosAsm.


Interesting - I'll take a look - Though I do remember taking a cursory glance - It seemed a trifle convulted at the time, but I'll persevere.