It is currently Mon Apr 23, 2018 10:11 pm

All times are UTC - 7 hours



Forum rules


Related:



Post new topic Reply to topic  [ 11 posts ] 
Author Message
 Post subject: SNES Newbie
PostPosted: Thu Nov 16, 2017 1:20 pm 
Offline
User avatar

Joined: Thu Nov 16, 2017 10:42 am
Posts: 6
Hello!

I have recently taken an interest in programming for the SNES, and I've gotten to know the basics of the console's architecture.
I've messed with sprites, backgrounds, tile collision, and simple horizontal-DMA effects, but I feel like I don't know enough to advance further into a large project for the console. (I actually made a few small projects for SNES with PVSNESLib years ago but I had no idea how the console worked since you work with a higher level language and I didn't bother looking at any documentation at the time.)

Here's a video I made showcasing what I've been messing around with using the WLA-DX cross assembler and I'm quite happy with its progress so far. (Of course, the code needs some cleaning up. :roll:)

https://www.youtube.com/watch?v=ttLVtmIrmyo

I'd like to know more about what things are, the terminologies behind them, and how they work; Great example is "metasprite". I've heard this term quite a few times while lurking around here on the forums and I'm not sure what it is. I know the general purpose of OAM and how there's a low and high table (512 bytes for low and 32 for high?) but never heard of metasprites until visiting the forum.

I Think I understand GP-DMA well enough to utilize it for simple tasks like transferring, let's say, a tile into VRAM.
SPC700 is by far the most complicated thing I'm having trouble understanding, and will definitely need a few pointers to guide me in the right direction.

Responses and resources are definitely appreciated!


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Thu Nov 16, 2017 1:56 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19947
Location: NE Indiana, USA (NTSC)
"Metasprite" means a single cel of animation made out of multiple entries in the OAM. For example, in Super Mario World, Mario's cels are roughly 16x32 pixels in size made of two 16x16 pixel sprites. Sprites in a metasprite need not be aligned corner-to-corner; Yoshi's, for instance, are offset somewhat to put his head forward of his body.

For SPC700, when starting, you'll want to use a third-party engine. Right now, the most complete engine available for homebrew is probably SNES GSS.


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Thu Nov 16, 2017 1:58 pm 
Offline
User avatar

Joined: Thu Sep 15, 2016 6:29 am
Posts: 550
Location: Denmark (PAL)
A metasprite is not a hardware thing, but a common concept in game programming.
It's basically a sprite made out of multiple smaller hardware sprites. So one way to define a metasprite is with a bunch of data that your code knows how to interpret when writing to the sprite buffer.

Similar terminology is used with metasprites = a collection of smaller sprites, and a common way to compress larger pieces of level data in a simple manner.

edit: tepples beat me to it, for some reason the forum didn't warn me as it usually does :)


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Thu Nov 16, 2017 3:28 pm 
Offline
User avatar

Joined: Thu Nov 16, 2017 10:42 am
Posts: 6
Ah, okay, makes a ton of sense.
Thanks, guys!


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Tue Feb 06, 2018 12:17 am 
Offline
User avatar

Joined: Thu Nov 16, 2017 10:42 am
Posts: 6
Hmm, I've been trying to look more into the SPC-700 and implement the SNES GSS audio driver for my own game engine, but seem to have an issue.
The driver data is transferred into SPC RAM at $0200 and is executed, but once I set a GGS command, SPC is either always busy (which results in a endless check loop) or nothing happens.

Sorry if this is an idiotic post; I'm very ignorant to how the SPC-700 exactly works and have been understanding it by basically observing others' code.


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Tue Feb 06, 2018 11:51 am 
Offline
User avatar

Joined: Wed Dec 06, 2006 8:18 pm
Posts: 2824
I'm not sure but I have a random suggestion. After you transfer the data to the SPC are you immediately issuing a command or do you let some time pass before then? Maybe you are too quickly trying to issue a command that the SPC program isn't ready and doesn't see your command and never gives the response the 65816 wants to see.

The other suggestion would be to try running your code in an emulator that lets you see both SPC and SCPU status in debug windows. Then you could really see why the deadlock happens.


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Tue Feb 06, 2018 4:37 pm 
Offline
User avatar

Joined: Tue Apr 05, 2016 5:25 pm
Posts: 184
You may have run into the same pitfall that I did initially - the first two bytes of the driver and music files exported from the SNESGSS tracker describe the byte size of those files, and therefore should not be transferred to the SPC.

_________________
SNES NTSC 2/1/3 1CHIP | serial number UN318588627


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Tue Feb 06, 2018 5:43 pm 
Offline
User avatar

Joined: Thu Nov 16, 2017 10:42 am
Posts: 6
HihiDanni wrote:
You may have run into the same pitfall that I did initially - the first two bytes of the driver and music files exported from the SNESGSS tracker describe the byte size of those files, and therefore should not be transferred to the SPC.


Wow, you're a life saver. That did the trick; thanks a ton!
I would have never figured that out on my own.


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Sun Feb 11, 2018 9:48 am 
Offline
User avatar

Joined: Thu Nov 16, 2017 10:42 am
Posts: 6
Just uploaded this!

https://www.youtube.com/watch?v=O7ce9sWMSz8


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Sun Feb 11, 2018 11:54 am 
Offline

Joined: Mon Dec 11, 2017 4:01 pm
Posts: 28
That's super cool congratulations on your progress! :)


Now, that you have a huge animated sprite, some HMDA gradient, and sound working, you're all set to make a game! Do you have any plan for it yet?


Top
 Profile  
 
 Post subject: Re: SNES Newbie
PostPosted: Mon Feb 12, 2018 9:30 am 
Offline
User avatar

Joined: Thu Nov 16, 2017 10:42 am
Posts: 6
drludos wrote:
That's super cool congratulations on your progress! :)


Now, that you have a huge animated sprite, some HMDA gradient, and sound working, you're all set to make a game! Do you have any plan for it yet?


Something akin to Super Smash Brothers, though not entirely sure yet! :lol:
There are still quite a few things I need to do before I'm ready to work on the game.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 9 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