Page 5 of 5

Posted: Fri Oct 08, 2010 1:39 pm
by psycopathicteen
This is a ROM and an .asm file. It's just the basic engine. Background and sprite handling. It's not very entertaining the way it currently is, but I incourage people to play around manipulating the source code.

$0000-$0003 are joypad input
$0004 blanks the screen allowing you to update a new level
$000c counts to frames from 0-3 then repeats
$0010 x-coordinate BG1
$0012 y-coordinate BG1
$0014 width of level in tiles (only powers of 2 work)
$0016 = #2^20 / $0014
$0018 = $0010 / #16
$0020 x-coordinate BG2
$0022 y-coordinate BG2
$0028 = $0020 / #16
$0030 # of metasprites onscreen
$0800 metasprite list starts
$7e2000-$7effff RECOMMENDED FOR RUNNING GAME LOGIC SINCE NOTHING IS USED IN THIS HUGE REGION OF MEMORY
$7f0000-$7f7fff tile map

http://www.mediafire.com/?wzb6u3pansbntwr

Posted: Sat Oct 09, 2010 8:56 am
by TmEE
I tried it in SNES and thought thigns were broken in it.... so I DLed BSNES and tried it there... and now I'm disappointed :P

fun note though... BSNES runs on my 98SE setup, ableit slowly because 1.4GHz PentiumIII is well below recommended CPU power :P
(it will not run on vanilla 98SE though, KernelEx is needed to get it run)

Posted: Sat Oct 09, 2010 9:10 am
by psycopathicteen
What are you seeing onscreen? If there is a "1" made out of "X"s then it's working correctly. I'm working on some real graphics now.

Posted: Sat Oct 09, 2010 9:46 am
by mic_
Why have hardcoded addresses for variables when you can define proper names for them?

Posted: Sat Oct 09, 2010 9:47 am
by tepples
mic_ wrote:Why have hardcoded addresses for variables when you can define proper names for them?
So as not to have to give out relocatable object code that works only in one assembler. Or can the ca65/ld65 toolchain interoperate with other 65816 toolchains?

Posted: Sat Oct 09, 2010 10:06 am
by mic_
I don't see why compability with all assemblers should be a goal, especially if it makes the code a mess.

Posted: Sat Oct 09, 2010 11:14 am
by blargg
tepples wrote:
mic_ wrote:Why have hardcoded addresses for variables when you can define proper names for them?
So as not to have to give out relocatable object code that works only in one assembler. Or can the ca65/ld65 toolchain interoperate with other 65816 toolchains?
I think he meant just giving the addresses names, so that a human reader doesn't have to memorize them, and so that moving variables isn't an exercise in adding bugs. e.g.

foo_var EQU $0001
bar_var EQU $0002

I don't see the point, though. Why even use mnemonics? Real men memorize opcodes and write in binary.

.byte %10100101,%00000010 ; What, this doesn't look like lda bar_var to you? Tough! :)

Posted: Sat Oct 09, 2010 11:38 pm
by tomaitheous
but I incourage people to play around manipulating the source code.
My god man, at least use equates :shock:

Edit: Indexing/tabbing your code could be nice too (make it more readable IMO). I dunno. Maybe I'm an old grumpy fart, but prefer clean looking/easy on the eyes source code nowadays ;)

Posted: Tue Oct 12, 2010 3:24 pm
by psycopathicteen
Sorry for the slowness of development. I have a lot of homework from school and don't have much time to work on it.