It is currently Thu Oct 19, 2017 3:39 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Wed Apr 12, 2017 5:07 am 
Offline
User avatar

Joined: Thu Jan 19, 2006 5:08 pm
Posts: 744
Location: Shelton, Washington.
For example, I plan on porting a plain-jane copy of SMB2jDIS (Super Mario Bros Lost Levels Disassembly By Doppelganger) to CA65 instead of ASM6,

But first... I need to make a working template for a .FDS Image as a base, But it looks like a simple CFG file won't do it alone.

Would someone find a way around this?

_________________
AKA SmilyMZX/AtariHacker.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 3:08 am 
Offline

Joined: Tue May 28, 2013 5:49 am
Posts: 802
Location: Sweden
I've seen no ca65 FDS projects but there are for asm6 here: viewtopic.php?f=2&t=15169


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 7:50 am 
Offline
User avatar

Joined: Thu Jan 19, 2006 5:08 pm
Posts: 744
Location: Shelton, Washington.
Didn't I already make it clear from the beginning?

ASM6 is what I have just already known and talked about for use with FDS,
CA65 may be a good assembler to switch to when needed.

It is not very possible right now due to the specifics on how the CFG must be setup.

I tried contacting the current CA65 Github Issues page about this, It's a No Go!

_________________
AKA SmilyMZX/AtariHacker.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 8:40 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10057
Location: Rio de Janeiro - Brazil
What exactly makes ca65 unable to assemble an FDS project?


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 9:57 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2962
Location: Tampere, Finland
For reference: https://github.com/cc65/cc65/issues/419

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 10:13 am 
Offline

Joined: Sat Apr 25, 2015 1:47 pm
Posts: 327
Location: FL
I generally agree with the other commenters in that GitHub issue that an assembler is not really an appropriate tool to use for generating a disk image.

Is there an existing command-line tool to generate FDS images from individual files? I think integrating that into the build process would work much better and would require much less assembler-specific configuration for projects in general.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 10:16 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19099
Location: NE Indiana, USA (NTSC)
You'd probably need a specialized linker script anyway to spit out a separate file for each overlay segment, which segments the command-line builder combines into a .fds/.qd file.

And then you'd need to distribute the builder to anyone who wants to build your project, and the method by which that is done depends on the language in which the builder is written. Do more people have, or are more people willing to install, a Python 3 interpreter or a C++ compiler?


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 11:56 am 
Offline
User avatar

Joined: Thu Jan 19, 2006 5:08 pm
Posts: 744
Location: Shelton, Washington.
If anyone is willing (this is not forced), try to make it with C.

_________________
AKA SmilyMZX/AtariHacker.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 1:22 pm 
Offline
User avatar

Joined: Sat Jan 03, 2015 5:58 pm
Posts: 367
Location: ...
thefox wrote:

A similar reference: https://github.com/cc65/cc65/pull/259

So would this tool just have to link a bunch of .bin files together and slap a header at the beginning?


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 1:38 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6280
Location: Seattle
Mostly?
Each file has a bunch of attributes, though; more than just a filename and a size.

ccovell has already adapted an existing FDS lister to be able to extract the actual data blocks, but there isn't a great place to put the extra metadata for reassembly.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 1:50 pm 
Offline
User avatar

Joined: Sat Jan 03, 2015 5:58 pm
Posts: 367
Location: ...
I took a look at an asm6 fds example, and I don't think that ca65 is really the right tool for the job.

You could use segments for the different files on the disk, but then you'd be modifying the cfg file constantly. Especially since the files don't seem to have a set size, and I don't think ld65 will take a rom segment without a size (note: don't think).

There's also using just one module for the whole project and then the cfg file is pretty simple, but then you'd need pad commands which the assembler doesn't seem to have either.

Maybe I'm not the right person to be trying this but afaik asm6 is the way to go for making fds files no matter how you intend to do it.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 2:48 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19099
Location: NE Indiana, USA (NTSC)
nicklausw wrote:
You could use segments for the different files on the disk, but then you'd be modifying the cfg file constantly. Especially since the files don't seem to have a set size, and I don't think ld65 will take a rom segment without a size (note: don't think).

If you don't specify fill=yes in a MEMORY area, the size is treated as the maximum size of that memory area, not its exact size.

Quote:
you'd need pad commands which the assembler doesn't seem to have either.

ca65 has .res, which adds a particular number of bytes rather than adding enough bytes to get to a particular address.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 4:46 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5718
Location: Canada
nicklausw wrote:
You could use segments for the different files on the disk, but then you'd be modifying the cfg file constantly. Especially since the files don't seem to have a set size, and I don't think ld65 will take a rom segment without a size (note: don't think).

The linker is allowed to define symbols about the segment size which you can use in the code (they get patched in at link time, just like all other linked symbols). See: define = yes.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 6:13 pm 
Offline
User avatar

Joined: Sat Jan 03, 2015 5:58 pm
Posts: 367
Location: ...
I did try to make an old fds asm6 example compatible with ca65. It's...alright, I guess.

A big problem is that the way I did things, files use a config called file.cfg and the final fds uses fds.cfg. For files, I'm just blindly assuming they'll all be size=$4000, and for the final fds I got lazy and ended up setting the size=$4000+8548. If dynamic segment sizes were a thing, my set-up would probably be alright but I can't find anything even like that.

If anyone here wants to mess with it, I'll upload.

EDIT: sorry, I didn't see tepples' post above somehow! Trying his suggestion now.


Top
 Profile  
 
PostPosted: Thu Apr 13, 2017 6:49 pm 
Offline
User avatar

Joined: Sat Jan 03, 2015 5:58 pm
Posts: 367
Location: ...
I might as well just upload my disaster here for anyone who wants to see. Running the fds gives a disk error. The code is very sloppy in that it uses previously made and bloated cfg files, gross looking code (not an insult to original creator but I haven't been going for cleanliness), and pretty sure I put ".segment "CODE"" three times in a row somewhere in there...but this is just annoying me. Maybe it'll fill in some blanks for someone else trying to do this with ca65.

Build with build.sh, windows users just rename it to build.bat and run that. Just please don't try using this as a template. You won't get very far :wink: .

Edit, I just figured out why it doesn't work but am not at my computer...didn't pad the fds header to be 16 bytes.


Attachments:
fdstemp.tar.gz [15.39 KiB]
Downloaded 44 times
Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group