| |
xIII
Registered: Nov 2008 Posts: 210 |
Need a coder
I made two hires pictures for the 'C64 Double Screen Compo 2013'. I need someone to make it into a screenscroller (going left-right)and a sound needs to be added.
The WOW coders are inactive and allthough I got some help from Jox (thx mate) I don't think I can code this myself in time.
Don't expect too much from the pics (Made them in HermIRES but I'm not a good graphician :)).
So if you want to help me out, PM me. |
|
| |
xIII
Registered: Nov 2008 Posts: 210 |
Thx to Hermit I found the routine I needed on codebase64.
this thread can be closed. |
| |
Bitbreaker
Registered: Oct 2002 Posts: 508 |
I added a simple vertical version to codebase64, just in case someone is in need of one.
http://www.codebase64.org/doku.php?id=base:double_screen_vertic.. |
| |
Dr.j
Registered: Feb 2003 Posts: 277 |
10x Bitbreaker for the source
but its on "ACME" and i ain't familiar with this tool so well , can someone please translate it to Kick Assembler ? i believe its not such a big work. (i didn't understand the "For" sentences )
|
| |
Bitbreaker
Registered: Oct 2002 Posts: 508 |
I simplified the code a bit and enriched it with a bunch of comments. The tables at the end are pointers into the bitmaps/screens for different y-offsets. For lazy typers i decided to use the for command which most macro-assemblers should support in some similiar syntax. Of course you can also just write out those tables. |
| |
FATFrost Account closed
Registered: Sep 2003 Posts: 211 |
@Bitbreaker, many thanks for the code but when i compile it says errors on line 129,134,148,150 and 168.
1, value not yet defined
2, garbage data
3, no string given
4, macro not yet defined
5,and so on....
any chance to fix this little problem mate? ;)
Many Thanks,
/FF |
| |
Bitbreaker
Registered: Oct 2002 Posts: 508 |
I am afraid, this little problem can only be fixed on your side. I suspect something got wrong during copy & paste. beq + and + as label are pretty valid, that are the first two errors you get in line 129 and 134. I just did a copy & paste of my code into a new file, and it complies like a charm.
I use the svn-version of acme, but it even works with 0.91, so no idea what you are doing wrong. Compile with: acme -f cbm -o crap.prg source.asm |
| |
Dr.j
Registered: Feb 2003 Posts: 277 |
Thanks very much BitBreaker , i will check it during the day.appreciate |
| |
FATFrost Account closed
Registered: Sep 2003 Posts: 211 |
yeah i got it working, i had old stinky version of acme.... thanks for your help. :) |
| |
FATFrost Account closed
Registered: Sep 2003 Posts: 211 |
Sorry, just one more question... can we make it scroll koala with a quick modification too?? ;) |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Dr J.:
About converting to Kick Ass. Note that the parameter to align is $100 in KickAss but $ff in Acme (Tricky if you aren't aware of it).
For convenience you can define you own bin command in KickAss like this.
.macro LoadBin(filename, length, startOffset) {
.var file = LoadBinary(filename)
.fill length, file.get(startOffset+i)
}
You use it like:
screens:
//glue together screen data
:LoadBin("pic1.prg",$3e8,$1f42)
:LoadBin("pic2.prg",$3e8,$1f42)
.align $100
bitmaps:
//glue together bitmap data
:LoadBin("pic1.prg",$1f40,2)
:LoadBin("pic2.prg",$1f40,2)
(I saw in another thread that others was missing this feature)
I have a converted version you can have, just pm if you need it. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
thats a really nice example of how kickass is not designed properly btw - try to explain yourself why incbin must be implemented by a macro and align is a directive =P |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Groepaz: I really don't understand your aggression. I thought you needed that command and did the post half as a favor to you. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
"I thought you needed that command and did the post half as a favor to you."
you must be kidding o_O
|
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Groepaz: No, I'm not. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
if i didnt find out how to do that, artphosis would look really empty =)
i just find it seriously awkward that a lot of this kind of basic assembler features must be implemented as macros, when on the other hand some other things that dont really need another directive have one (for convenience ofcourse). eg you dont need .align when you have .fill in an assembler that has no linker - its the same thing in that case :) |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
I both use .align and .fill. When i see .align i immediately know that here we are skipping bytes to reach a page boundary, while .fill can be used in so many other ways, as a nice way of for generating data. If you don't like .align then just ignore it.
I agree that the incbin syntax is convenient, I noticed it some time ago as a 'nice to have feature', which probably come in a future version. Until then you will have to live with the .import directive (only complete files), the LoadBinary function, or sacrifice 4 lines of code in your standard library to define it.
Since I can't know every feature of every assembler, I really like getting feedback to where to improve the assembler, even though I think you have really aggressive way of formulating it.
I don't know how many posts this is going to take, but how about moving this to the 'Kick Assembler Thread' before completely hijacking this subject.
|
| |
Bitbreaker
Registered: Oct 2002 Posts: 508 |
For everyones convenience i removed the !align directives, as they are not needed anyway :-P Now multicolor mode can be enabled by uncommenting the MULTICOLOR label at the beginning. I have not tried with koala pics as i just had two hires pics at hand. But when i copy junk as colram data it looks sane however. So have a try :-) |
| |
Pantaloon
Registered: Aug 2003 Posts: 124 |
Groepaz: eg you dont need .align when you have .fill
Well, align is totally different from fill and both have their usage. Sometimes you really dont want to fill the data to align something, and thats when align gets handy :P
Just because you use the assembler in a certain way doesnt mean it's the right way :) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
"Sometimes you really dont want to fill the data to align something, and thats when align gets handy :P"
but to do that you need an assembler that has a linker. else you always fill with some value (you can not output bytes that contain "nothing"). hence
.align $100
equals
.fill $100 - (* & $ff), 0
(assuming the skip/fillvalue for align is 0). actually you'd be surprised how many assemblers do exactly this internally when you use .align :) (never wondered why acme wants $ff to align to page boundary? see above =))
|
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Quote:.align $100
equals
.fill $100 - (* & $ff), 0 Yeah, it's really stupid of KickAss to have that cumbersome .align feature when it's much easier with .fill :P |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
its just an example of how the decision to support one thing with a directive and not another is rather arbitrary and doesnt follow a design rule. ofcourse you want an .align directive for convinience. just like .incbin :) |
| |
Glasnost Account closed
Registered: Aug 2011 Posts: 26 |
.byte is a useless syntax too as the following example show:
.fill $1,'G'
.fill $1,'r'
.fill $1,'o'
.fill $1,'e'
.fill $1,'p'
.fill $1,'a'
.fill $1,'z'
:D |
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
Quote:.byte is a useless syntax too as the following example show:
correct. actually .fill is one of the very few directives that an assembler *must* support :) once you have .fill and a half working macro facility, you can even implement the mnemonics as macros easily (and again, you'd be surprised how many assembler work just like that internally) |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
Making an intermediate language of .fill and .macro is the way to go then ;-) |
| |
Count Zero
Registered: Jan 2003 Posts: 1932 |
grp: Name 15 please!
:)
|
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
and you'd be surprised how many assemblers work like that - it makes a lot of sense actually (implement a minimal subset in actual code, then implement all the rest in macros and tables - once done properly you have a nice target architecture and -cpu agnostic assembler).
the point however is, no matter how you actually do it (only pedantic idiots like me care about inner workings of an assembler, obviously =P) that you shouldnt leave that implementation to the user - because that only creates a lot of unnecessary confusion (as you can see in this thread even). that could even be solved as having a builtin set of macros, which then can be important using a specific directive (eg in ca65 .macpack cbm or .macpack longjump) |
| |
Stainless Steel
Registered: Mar 2003 Posts: 966 |
Hey, stay on topic plz!! Or i'll have to alert the mods! err ... wait :-D (/me ducks and runs) |
| |
Bitbreaker
Registered: Oct 2002 Posts: 508 |
Yes, better draw some ugly koalas to test with my routine, fuckers :-) |
| |
enthusi
Registered: May 2004 Posts: 677 |
I always use .dsb ((*+$100)/$100)*$100-*,0
and I find it rather intuitive. Groepaz' solution is a bit more elegant though ;-) |
| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Hmm.. Gpz smoked too much crack again. :) |