It is currently Thu Nov 23, 2017 12:00 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 10 posts ] 
Author Message
 Post subject: Lots of wires
PostPosted: Sun Aug 20, 2006 12:39 am 
Offline
User avatar

Joined: Wed Aug 16, 2006 8:03 pm
Posts: 57
Location: TN, USA
I thought some folks might be interested in my crude but effective method of running code in a real NES, using lots and lots of wires, an eeprom for PRG, and sram for CHR storage. A patched Galaga was my test subject.

http://www.fybertech.com/forums/index.php?topic=453.0

The technical explanations were for pretty much just everyone else I know, since I'm sure you guys know most of it already. But for anyone else like myself that can't always get a chance to solder things, they might find it interesting.


Something else I crossposted there earlier too that you folks might find interesting is about the differences in the various versions of SMB:

http://www.fybertech.com/forums/index.php?topic=454.0

I have yet to get around to figuring out what that extra 8kb of CHR was for in VS SMB, but maybe one of you knows.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 22, 2006 9:03 am 
Offline
User avatar

Joined: Wed Aug 16, 2006 8:03 pm
Posts: 57
Location: TN, USA
I updated my jungle of wires to support UNROM.

http://www.fybertech.com/forums/index.p ... 11#msg9911

I also figure I should still be able to run my patched versions of 16kb NROM games on this setup, and with even more patching, I should be able to get full 32kb NROM games to work as well (using some bank switching to access the CHR rom to copy into vram first, then putting the lower 16kb PRG back in place before running the game).

Even better, with an inverter on A14 going to the OR gate, I should be able to make 8000-BFFF static instead of C000-FFFF like normal UNROM. This would let me make a menu system and load up to 10 16kb NROM games on the one eeprom.

[16kb fyber code]
[16k game0][16k game1][16k two chr]
[16k game2][16k game3][16k two chr]
[16k game4][16k game5][16k two chr]
[16k game6][16k game7][16k two chr]
[16k game8][16k game9][16k two chr]

It's probably possible to do without the inverter, but that means patching every game even more so, to make sure they'd run fine in 8000-BFFF, which is prolly more trouble than its worth. The only problem is making the board space for the inverter, since obviously things are a bit tight!

Since those pics were taken, I also ran some of the wires off to the side to make it easier to switch between horizontal/vertical mirroring, and also to switch between the upper and lower 128kb of my eeprom (since it's 256kb), so that I can have two 128kb UNROM games on it at once.

Still getting some minor sprite corruption at times, though. :/ But I've got an old UNROM game on the way, so perhaps that'll make this whole mess obsolete.


EDIT: Actually, due to the UNROM bus conflicts, I guess my multi-NROM idea wouldn't work very well unless I limited it to 128kb (losing half the games) and used an inverter with the fourth OR gate to prevent the eeprom from enabling on writes, or add in a second LS32, using even more board space.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 22, 2006 9:27 am 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3484
Location: Indianapolis
It's incredibly easy to make a multicart for 16kB/32kB NROM games. Really all you need is a way to force the mapper to start-up in your menu bank (pull-up resistors maybe). I'd do it with a 32kB page mapper though. Actually, I have done that, heheh, quite a while back. I never released it since there's plenty of crap multicarts already, plus I don't want to release other company's commercial games anyways. It is fun stuff though. I had to hack Pooyan, it actually had a tiny little protection. No wonder it wasn't on any of the pirate multicarts I usually see.

Just don't use MMC1A, what a pain that was (random start bank, so you can imagine what that would do). :?

Crazy that you used a breadboard. :D
I never had one of those to play with.

And if you compress the graphics, you can fit a little more in there too.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 22, 2006 11:20 am 
Offline
User avatar

Joined: Wed Aug 16, 2006 8:03 pm
Posts: 57
Location: TN, USA
Memblers wrote:
It's incredibly easy to make a multicart for 16kB/32kB NROM games. Really all you need is a way to force the mapper to start-up in your menu bank (pull-up resistors maybe). I'd do it with a 32kB page mapper though.


The reason I considered sticking with 16k banks for now for a multicart was so that I could stay as close to UNROM as possible, to allow the most amount of games to be playable on the same hardware.

Once I get some actual cartridges to work with though it won't be that big a deal, since I can just have different cartridges for different setups. I've got NROM, MMC1, MMC3, and UNROM ones on the way that I found pretty cheap on Ebay. And by cheap, I mean I found someone not trying to rip you off on shipping costs.

Some of the games I've been looking for to use for such projects are some of the very ones I owned years ago which I didn't even like very much. Funny how that works out.


Memblers wrote:
And if you compress the graphics, you can fit a little more in there too.


lol I never even thought of that, even though I read that many games did in fact use that technique. I'll have to tinker around and see if I might could fit another game in there!

After my last post, I had yet another thought about the bus conflicts of UNROM, and the extra hardware to make it work properly. I realized that I didn't HAVE to make it work properly, because obviously the original games worked around it just fine. I can just write my own loader code to use similar tricks, writing to the mapper in locations of my code which are set to the same values as I'm trying to write. Should work fine as far as I can figure, and I'll be able to use the full capacity of the eeprom after all, without sticking in any extra inverters or OR gates.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 22, 2006 1:20 pm 
Offline
User avatar

Joined: Sat Jul 22, 2006 12:06 pm
Posts: 96
Location: USA
Memblers wrote:
I had to hack Pooyan, it actually had a tiny little protection.

What's the protection? Is the GoodNES dump hacked? I know I've seen Pooyan on an (illegally) emulated multicart somewhere... (EDIT: The multicart is 100-in-1 Contra Function 16. Thanks for the tip, tepples.)

_________________
Warning: I am not a serious developer (yet), but CS and EE really interest me.
I was -_pentium5.1_- until I screwed up. This is why I screwed up. ^_^


Last edited by 85cocoa on Mon Aug 28, 2006 10:57 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Tue Aug 22, 2006 3:26 pm 
Offline

Joined: Mon Oct 31, 2005 1:01 am
Posts: 107
I've got pooyan on a multi. Would also be interested to hear what kind of protection... :)


Top
 Profile  
 
 Post subject:
PostPosted: Fri Aug 25, 2006 9:29 pm 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3484
Location: Indianapolis
Whoops, I missed the replies (damn, hope I'm not missing all kinds of cool stuff all over the forum).

The "protection" was pretty simple, it's a 16kB game with the vectors and all the code at $C000-$FFFF. Except there was one single little (but obviously important) part of it in there that accesses $8000-$BFFF. Whatever it was, that almost definitely had to be on purpose. If a multicart does the PRG mirroring properly, it'll work fine.


Last edited by Memblers on Fri Aug 25, 2006 9:33 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Fri Aug 25, 2006 9:32 pm 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19252
Location: NE Indiana, USA (NTSC)
In that case, bank mode 1 (16 KiB) of mapper 15 emulates the protection correctly. I'm guessing that most multicart-specific mappers are similar in this respect.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Aug 27, 2006 8:50 pm 
Offline
User avatar

Joined: Wed Aug 16, 2006 8:03 pm
Posts: 57
Location: TN, USA
It would seem I made my wire jungle obsolete today, since I finally got with the times and made an actual UNROM dev cart. I won't pull the old one apart for the time being though, in case there's any other projects I can try with it. If the MMC1 just wasn't such a narrow pinout, I'd try putting the one from my dead Dragon Warrior in there and see if the chip still works.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Aug 28, 2006 1:29 am 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3484
Location: Indianapolis
You could always do it 'dead bug' style. Lay or glue the chip to something upside down and solder wires to the pins. Just a suggestion if you don't want the pin pitch to stop you. Assuming wire length wouldn't be a problem.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: Google Feedfetcher and 11 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