It is currently Sat Nov 25, 2017 2:18 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 50 posts ]  Go to page 1, 2, 3, 4  Next
Author Message
PostPosted: Mon Jul 06, 2015 9:34 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
As people visiting the Newbie board may remember, I'm diving into an original NES project using MMC5 (possibly eventually getting a cartridge release on the Retro VGS game console). It's gonna be a Legend of Zelda clone with more story, I'm tentatively calling it "Blade Story".

Image

So here it is, at what I consider the true beginning: title screen, and then being able to walk around a single overworld screen. Pretty early of course, but hey if anyone wants to try out my first attempt at programmer art mixed with programmer music and programmer gameplay, have at it :)

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

P.S. - Man this thing makes me miss the Gameboy Color's Z80 chip - just having a couple virtual 16-bit registers like BC, HL would be so nice, I can see why Nintendo thought using a 6502 would dissuade third-parties from programming it if they were used-to Z80.


Top
 Profile  
 
PostPosted: Tue Jul 07, 2015 5:33 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19259
Location: NE Indiana, USA (NTSC)
In at least my coding style, the 6502's virtual 16-bit registers are $00-$01 and $02-$03. I reserve $00-$0F for local variables.


Top
 Profile  
 
PostPosted: Tue Jul 07, 2015 6:09 am 
Offline
User avatar

Joined: Sun Jan 02, 2011 11:50 am
Posts: 522
Zero page was supposed to make up for lack of registers.


Top
 Profile  
 
PostPosted: Tue Jul 07, 2015 6:44 am 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 1835
Location: DIGDUG
When I loaded it FCEUX 2.2.2 with "new PPU" it didn't load anything right. It did look fine with "old PPU", but it may not be running properly in all emulators/hardware. Music is working fine, though.


Attachments:
Blade2.jpg
Blade2.jpg [ 62.96 KiB | Viewed 2737 times ]
Blade.jpg
Blade.jpg [ 87.05 KiB | Viewed 2737 times ]

_________________
nesdoug.com -- blog/tutorial on programming for the NES
Top
 Profile  
 
PostPosted: Tue Jul 07, 2015 9:52 am 
Offline

Joined: Mon Jan 23, 2012 11:27 pm
Posts: 141
If you're shooting for a physical release, do you have someone who can produce new mmc5 compatible boards? afaik nobody does that yet, and real mmc5 boards are not readily available.


Top
 Profile  
 
PostPosted: Tue Jul 07, 2015 10:56 am 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
From my tests it's working in FCEUx 2.2.2 (old PPU), PUnes, Nintendulator, and...one other emulator I forget the name of, Nestopia? It looks like the new FCEUx PPU isn't getting the extended attribute data, that's probably something to do with the fact that you can only write to the extended attribute table while the screen is being drawn (opposite of normal PPU stuff). It could be an incorrect assumption on either mine or the emulator writer's part about whether you can read the MMC5 interrupt flag that says if the screen is being drawn, without actually turning on the MMC5 scanline interrupt. I'll be adding a scanline effect soon (for a HUD at the top of the screen, possibly with its own BG palettes) so I'll be able to test that case out.

As for physical release, I'm not actually targeting the NES but assuming I get far enough along,the Retro VGS. That's a game console that's going to be Kickstartered soon, it uses physical cartridges, and includes an FPGA that can be loaded up with whatever classic consoles they get cores for (or custom cores). It was mentioned in an interview they were going to license cores from Kevtris, and I know his NES core includes MMC5 support, so I'm hoping that's true.


Top
 Profile  
 
PostPosted: Tue Jul 07, 2015 7:59 pm 
Offline

Joined: Sun Nov 23, 2014 12:16 pm
Posts: 175
So are you saying that you can't really do an NES release because the boards for an MMC5 haven't been made yet? Why haven't they been made yet?

Also for the title screen. Try going over to pixeljoint.com and see if anyone can do a nice title screen for a decent price. :)


Top
 Profile  
 
PostPosted: Tue Jul 07, 2015 8:27 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6458
Location: UK (temporarily)
Erockbrox wrote:
So are you saying that you can't really do an NES release because the boards for an MMC5 haven't been made yet? Why haven't they been made yet?
The MMC5 is a ludicrously complicated mapper, extending the NES awfully close to its intrinsic limits. It allows for direct addressing of up to 256 KiB of CHR with 8x8 attributes (using 14 bits for tile # and 2 bits for palette #), up to 8 separate sprite banks when using 8x16 sprites, two extra sound channels, an extra nametable, up to 64 KiB of PRG-RAM that can be banked almost anywhere, vertical (separate left-and-right sections) splits, a hardware multiplier, as well as "ordinary" things like a scanline IRQ.

It's possible to choose a subset of that and get new boards made, but cloning the full MMC5 is well into "real" FPGA territory, making it a fairly expensive endeavor. And the MMC5 had a small enough circulation that getting donor PCBs for any non-trivial number would be relatively hard, too.

On the other hand, it sounds like he's "only" (so far) using the MMC5 for its 8x8 attributes. We've got a few ideas for ways to implement that without adding much hardware...


Top
 Profile  
 
PostPosted: Wed Jul 08, 2015 4:22 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
Yeah, MMC5 makes it hard if I ever want to test on an actual NES - I'd probably have to take apart a Castlevania 3 or Uncharted Waters or something and solder my own ROM chips in. I guess loopy has an early MMC5 core for the PowerPak cart, but as far as I can find it isn't complete.

But, since I was a kid I always heard great things about MMC5, and because I already had to learn to program the NES from scratch and used to program the Gameboy Color (which is quite similar to an NES with MMC5), I thought it'd be extra fun to also write my game for MMC5. Plus, skilled pixel artists are hard to find these days, so I wanted to make their job as easy as possible when I do get one. So the less limitations the better - one palette for char, no real char limit for backgrounds. And the musician can use all the main channels for music, and I'd still have two more MMC5 channels for sound effects.


Top
 Profile  
 
PostPosted: Wed Jul 08, 2015 4:55 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19259
Location: NE Indiana, USA (NTSC)
Even if you can find a reliable source for MMC5 boards, the two more channels will not play on an unmodified NES.


Top
 Profile  
 
PostPosted: Wed Jul 08, 2015 5:08 pm 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
An Analogue NT, though... :P


Top
 Profile  
 
PostPosted: Wed Jul 08, 2015 6:35 pm 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5843
Location: Canada
Dreamwriter wrote:
Yeah, MMC5 makes it hard if I ever want to test on an actual NES - I'd probably have to take apart a Castlevania 3 or Uncharted Waters or something and solder my own ROM chips in. I guess loopy has an early MMC5 core for the PowerPak cart, but as far as I can find it isn't complete.


I believe Loopy's last MMC5 mapper is "complete" for NES. It's incomplete for Famicom. i.e. it has everything except the expansion sound.

If you're really interested in expansion sound, though, I'd maybe suggest the VRC6 instead? It's a very capable mapper, but the sound in particular is very straight-forward to use and versatile. It doesn't have some of MMC5's bells and whistles (e.g. multiplier, expanded attributes, etc.) but it's pretty beefy, and its expansion sound is better. It's also very fully implemented on the PowerPak and Everdrive.


Top
 Profile  
 
PostPosted: Wed Jul 08, 2015 10:45 pm 
Offline
User avatar

Joined: Mon Oct 06, 2014 12:37 am
Posts: 186
Neat! It's cool so see other people making Zelda clones on the NES!

I gave the demo a try, and came across one notable issue--
When the player touches the top, and/or the right sides of the screen, this causes one of their sprites to offset by a single pixel. I can't say why this would be happening, though.

I *was* going to upload a screenshot, but Imgur is being a butt, today. (busy server)


Top
 Profile  
 
PostPosted: Thu Jul 09, 2015 4:55 am 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3119
Location: Nacogdoches, Texas
Why not just use the attachment feature?


Top
 Profile  
 
PostPosted: Fri Jul 10, 2015 5:12 am 
Offline
User avatar

Joined: Tue Jun 02, 2015 9:17 pm
Posts: 35
Location: Florida
Yeah, I've seen the player breaking apart - thanks. I'm not going to allow the player to walk off the border anyways, I'm planning on doing the transition when the player touches the chars at the edge of the screen. That's the next thing I'm adding, support for special chars like that and a couple test screens to walk between. After that it's the HUD at the top and doing a palette swap between the HUD and the rest.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: Google [Bot] and 3 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