It is currently Fri Nov 24, 2017 9:44 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 50 posts ]  Go to page Previous  1, 2, 3, 4  Next
Author Message
PostPosted: Fri Jul 10, 2015 6:38 am 
Offline
User avatar

Joined: Tue Jun 24, 2008 8:38 pm
Posts: 1518
Location: Fukuoka, Japan
I don't want to be rude but I tried you demo and while the music was promising and felt very "nessish" I don't see in it's current state why you would require the MMC5 mapper. Are you over-engineering your project by any chance? I didn't follow any nes thread recently but I felt I had to comment on this one since I often over-engineered my project in the past so I tought I should comment on it ^-^;;;

Maybe you should try with a more common mapper then switch to MMC5 only if you requires it. Not many games really requires such level of mapper and I'm sure other people on nesdev will tell you the same thing.

Good luck on your project.


Top
 Profile  
 
PostPosted: Fri Jul 10, 2015 8:26 am 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
You're right that in its current state MMC5 is mostly being wasted (except for the random 8x8 tile palette entry here and there). But realize that everything you see and hear is eventually going to be replaced with professional quality art and music, what's there is my placeholder programmer art.

Also, I like the MMC5, it was fun to figure out its quirks and stuff. By now the engine and pipeline are already set up for multiple char banks and whatnot, and I've used the simple scanline counter (though not in the current demo)


Top
 Profile  
 
PostPosted: Wed Jul 15, 2015 8:04 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
Little update: I now have the player walking back and forth between two screens, each with their own tileset if needed (well, I mean tiles in a different bank, though the only real difference is in my extended atrribute table, so I could mix and match if I wanted). And I wrote a full BG collision system going on rather than just basing collisions on which visual tile is in a spot (it involves creating a map by overwriting the visual map with number-tiles representing the different collision types). I need to organize my screen loading code, though, I didn't do a good enough job making it generic for any screen when I first setup screen drawing.

Image

Next up after the organization: a HUD at the top of the screen with its own palette set.


Top
 Profile  
 
PostPosted: Wed Jul 22, 2015 11:01 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
Got my HUD area at the top, with its own set of 4 BG palette entries being reloaded, for a total of 5 BG palettes total on the screen! It's got a little bit of corruption underneath due to trying to fix the scroll after disabling the PPU, but the palette reloading is all done in the Hblank area off the screen.

Image

You can try it out here if you like:
http://www.dreamzle.com/blade/bladestory_7_23.nes

You can walk to the second screen if you go south, to return to the top screen you must walk north through the HUD around the same region, because I didn't draw the placeholder test maps taking a HUD into account.

I think next I'll do a simple animation of the character walking, and then give her a sword she can swing.


Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 12:10 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5838
Location: Canada
How come one of the first things you've implemented is a 5th palette for the HUD, but you don't even have background art that needs it yet? (Plenty of games are quite content to have a single "reserved" palette and work with only 3. I'm just curious why this feature became such a priority for you?)

Some suggestions:

1. Generally at least the top and bottom 8 lines of the picture aren't visible on NTSC (sometimes a few more). You might want to lower the top of your HUD by 8 or maybe 16 pixels to make sure it's visible?
2. You should also hide sprites until the HUD is finished rendering so that the player and other sprites go under it, instead of on top. If you need sprites on for a sprite-0 test, alternatively you could prevent sprites on the bottom 8 pixels of the HUD by placing 8 sprites there with high priority. (Any sprites above the bottom 8 pixels, you can just eliminate by checking their Y coordinate.)
3. During screen transitions your music gets paused noticeably. You should leave NMI running and play your music there, so that it interrupts the screen rebuild to keep the music in time.
4. Don't re-enable rendering immediately when you're done rebuilding the screen. Wait until the next NMI to write to $2001, so that you can set up the scroll correctly, or your first frame will be misaligned every time.
5. Collision should halt the player on each axis separately. If I'm touching a tree vertically, holding diagonally should still let me move horizontally. The lack of diagonal motion against a blocker has a rather frustrating feel.
6. Walking north from the southern screen, you can get stuck inside the rock.
7. Reset does not clear sprites, and the title screen does not render correctly afterward. (Are you properly blanking memory on reset, or relying on emulators that set it to zero?)
8. Consider a button press to advance the "once upon a time" screen. This is very tedious to wait through, especially when trying to test.


Last edited by rainwarrior on Thu Jul 23, 2015 12:23 am, edited 4 times in total.

Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 12:20 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2981
Location: Tampere, Finland
Some more that I noticed when trying out the ROM in NDX:

1) Don't use $0D for black, it can cause problems with some TVs.
2) Make sure to initialize your sprites before doing OAM DMA:
Attachment:
unitialized-sprites.png
unitialized-sprites.png [ 34.64 KiB | Viewed 1196 times ]

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


Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 5:35 am 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
Thanks for the great suggestions!

rainwarrior wrote:
How come one of the first things you've implemented is a 5th palette for the HUD, but you don't even have background art that needs it yet? (Plenty of games are quite content to have a single "reserved" palette and work with only 3. I'm just curious why this feature became such a priority for you?)

Well, I don't have any background art at all yet, really - I'm currently not planning on being the artist on this project, the art currently in the game is all programmer-art I created primarily for testing the engine. When I do get an artist, I want them to have as few limitations as possible, because these days great pixel-artists skilled at working with limited palettes are a rarity, so the more I can help them out from the start, the better. It's also one of the big reasons for using MMC5, being able to use as many tiles per map as the artist desires, and not having to worry about keeping palettes on 16x16 boundaries.

And if I do end up doing all the art myself, I *definitely* need all the help I can get - heck, I dedicated an entire palette to a rock!

Also, as an oldschool Gameboy programmer I love pushing systems to do more than they were really designed to do, it's a fun challenge. I had a lot of fun in this case figuring out the timing of getting the palette reloading with minimal corruption (now I just need to get rid of the scroll corruption on the bottom edge).


Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 6:57 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10118
Location: Rio de Janeiro - Brazil
Dreamwriter wrote:
I had a lot of fun in this case figuring out the timing of getting the palette reloading with minimal corruption (now I just need to get rid of the scroll corruption on the bottom edge).

It's worth noting that this is the kind of thing you should test on real hardware. These fine timing details often vary a lot from one emulator to another, so it's better to calibrate them according to the real hardware.

That said, the mid-screen scroll change should be easier to get right than the palette change. Since you have rendering disabled for the palette update already, using the $2006/5/5/6 combo and enabling rendering near the start of the next HBlank should do the trick.


Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 10:57 am 
Offline

Joined: Wed Feb 25, 2015 1:17 pm
Posts: 20
Walking on the status bar. Hi.
Image


Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 3:01 pm 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 1834
Location: DIGDUG
It looks to me like you room data is still full screen even though the HUD is covering it. Start designing the rooms shorter. And you might want to compress your data. This is just from loading room 1. Look at all those 01's. It will save alot of ROM space to compress this and load it somewhere in the RAM as collision info.


Attachments:
Blade.gif
Blade.gif [ 18.56 KiB | Viewed 1115 times ]

_________________
nesdoug.com -- blog/tutorial on programming for the NES
Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 3:30 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10118
Location: Rio de Janeiro - Brazil
dougeff wrote:
And you might want to compress your data.

At least start using metatiles (which are a form of compression), because raw screens will use up all your ROM pretty quickly.


Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 6:30 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
It's worse than you may think - each screen is composed of the basic nametable map, the extended attributes map, and a collision map, all three the size of the full screen (though soon minus the size of the HUD). Plus the 4 palettes. Don't worry, I plan on eventually implementing compression, probably PUcrunch to be specific. I just want to finalize the BG creation pipeline first (I thought I had, but it's kind-of a pain).


Top
 Profile  
 
PostPosted: Thu Jul 23, 2015 9:38 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
After each new feature I go in and solidify and clean up the code, this time I also implemented many of your suggestions too so I posted the new build if anyone's interested:

http://www.dreamzle.com/blade/bladestory_7_24.nes


Top
 Profile  
 
PostPosted: Fri Jul 31, 2015 9:28 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
New art style - looks less RPG and more Zelda. Maybe a bit too much Zelda...

Attachment:
bladestory.png
bladestory.png [ 3.73 KiB | Viewed 1011 times ]


Top
 Profile  
 
PostPosted: Fri Jul 31, 2015 10:06 pm 
Offline

Joined: Sun Nov 23, 2014 12:16 pm
Posts: 175
love the "programmer art" :)


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 50 posts ]  Go to page Previous  1, 2, 3, 4  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 1 guest


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