Jump to content
bastetfurry

Yay! First working ASM Kernel :D

Recommended Posts

Got my first ASM Kernel working, in Stella that is, and would love a code audit. :)

I copied over the sprite x-positioning from the tutorial and looked at the asymetrical playfield tutorial, the rest is by myself.

 

The source in the ZIP is in ACME format, the addresses and names in the INCs are straight from the official programmers manual.

bf.zip

  • Like 2

Share this post


Link to post
Share on other sites

Looks pretty good man. I noticed if you scroll the character across the screen horizontally the color mode goes to black and white. If this is unintentional, you might have some self-modifying code somewhere?

 

I like what you did the the playfields. Looks like you are on the right track.

Share this post


Link to post
Share on other sites

Hey Bastetfury!

Nice one :)

And eeeek.... dont go for interlace ;-))

Just my personal opinion. To me the very point of going the hard road (pure assembler) is the ability to avoid flickering as long as possible, hehe.

Edited by enthusi

Share this post


Link to post
Share on other sites

Welcome to the "real" coders club! :thumbsup:

 

The x-positioning has problems, because you forgot to use CLD at initialization.

 

You use a lot of comments and cycle counts. This is very good.

 

The labeling is a bit odd for my taste.

 

Personally I use mixed case starting with a lowercase character for ZP-RAM and starting with an uppercase character for ROM addresses. Constants are all uppercase (with "_" for structuring).

 

Well, if there are constants. I urge you to use them, this makes changing the code later much easier.

 

Also you should use local labels starting with a . inside SUBROUTINEs. So that you don't have to make up new label names all the time.

 

BTW: Why e.g. COLLUPPF instead of COLUPF?

Share this post


Link to post
Share on other sites

Looks pretty good man. I noticed if you scroll the character across the screen horizontally the color mode goes to black and white. If this is unintentional, you might have some self-modifying code somewhere?

Nope, just not checking if the player left the playfield.

This was just quickly implemented to see if the sprite moves right.

 

Welcome to the "real" coders club! :thumbsup:

Heh :D

 

The x-positioning has problems, because you forgot to use CLD at initialization.

Gotta check that...

 

You use a lot of comments and cycle counts. This is very good.

Quite normal for me when i do assembler stuff.

Otherwise i would load it up in a week and forgot what the heck i was doing there anyway. ;)

 

Also you should use local labels starting with a . inside SUBROUTINEs. So that you don't have to make up new label names all the time.

Hmm, good idea.

 

BTW: Why e.g. COLLUPPF instead of COLUPF?

Because i copied that stuff from the original Stella programmers guide.

 

I want to make this a game release for Revision, might not make the first place, but whatever. :)

 

@Enthusi:

Interesting where you find people. :D

Edited by bastetfurry

Share this post


Link to post
Share on other sites

Welcome to the "real" coders club! :thumbsup:

 

Bah! Real coders hardwire their machine language directly to hand etched boards. DASM is just a crutch.

  • Like 2

Share this post


Link to post
Share on other sites

Because i copied that stuff from the original Stella programmers guide.

It is better to adapt to common naming standards (see vcs.h). Else (e.g. in case you ask for help) it will makes things just more difficult.

Share this post


Link to post
Share on other sites

 

Bah! Real coders hardwire their machine language directly to hand etched boards. DASM is just a crutch.

 

Real coders sometimes work only with zeros and ones, and sometimes only with zeros... :P

 

dilbert-03-zeros-and-ones.gif

 

And now i want to see a game cart with a big breadboard attached to it full of doides that make the game. =]

 

I always wanted to do something like that :), 16 bytes with a 74154, maybe using 16 74154 and a 256 byte minigame :D

  • Like 3

Share this post


Link to post
Share on other sites

"It is better to adapt to common naming standards (see vcs.h). Else (e.g. in case you ask for help) it will makes things just more difficult."

Good advice.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...