Is this possible to reproduce a cart from the NWC? I know that there are external settings that influence gameplay, etc. Is there any way to change the mapper type and hardwire specific settings so that it could be recreated on a donor cart?
I know that SMB2J was remapped and works on MMC3 carts. I just don't know how much work that was or this would be..
I enjoy competing with my friends in older NES games. It would be cool to have one of these around to play with and for bragging rights over scores.
NC
Its quite possible to reproduce the cart, especially as we know what the board looks like, which ICs it uses, and how it works. But I wonder if it is possible to hack the program so the timer is done in software rather than hardware. That way, it could use a more normal board.
Exactly, that is what I was hoping for. I'm nowhere near experienced enough to know what this entails.. but I was curious if it was possible. Maybe someday I'll be able to give it a try - or perhaps someone else could work it out
NC
It may be possible to make a working replica, but not possible to make one that looks exactly like the original. So for those reading this wanting to make one and pass it off as real, there are many subtle details about an NWC cart that if faked, would fail serious srutinous tests.
-Rob
Would it be possible to structure a new NWC-like ROM as a set of patches against the PRG and CHR files from SMB1 (PRG 1), Rad Racer, and Tetris?
rbudrick wrote:
It may be possible to make a working replica, but not possible to make one that looks exactly like the original. So for those reading this wanting to make one and pass it off as real, there are many subtle details about an NWC cart that if faked, would fail serious srutinous tests.
-Rob
It might be possible to make one that looks EXACTLY like the original. The only catch is that one would need access to an actual cart. Every IC would then carefully be de-soldered, and a very high-res scan of the blank PCB made. Then the scan would be used to fabricate an exact duplicate of the PCB.
From then on, it would be smooth sailing. No part on that board is custom; the discrete logic ICs it uses are easy to acquire, and the mapper and CIC can be pulled out of any number of existing carts. The cart case is a standard NES cart case with a neat little hole cut into it, and the label was printed on a color dot-matrix printer.
It's doable, but it isn't easy. One would have to pay VERY careful attention to detail. Given that these things change hands for thousands of dollars, faking an NWC cart might not only be feasible but highly profitable.
Quote:
It might be possible to make one that looks EXACTLY like the original
For most people it would be even easier than that. They will never open it up and check out the inside, and would be even less likely to compare side by side with an actual pcb. Would be pretty easy to use the existing board photos to make a new board, then find chips with the correct date codes. Most people wont know to look for hand soldered pins, types of capacitors, etc. The color and type of dip switches is probably most critical because they are shown in every picture.
There is nothing unique about the cases, even the gold ones. The two divots in the label area are on all gold carts and is a mark from fabrication. The divots line up with two posts on the other side, so it is either material shrinkage or ejected too soon. It is a good example why texture is put on surfaces of most plastics, it hides things like that. The high res picts actually help you locate the dip switch hole correctly.
Just be sure if you make a gray cart not to use a number thats already been located!
Really? Are you guys talking about how to fake the cart? Wow...
I agree that discussion about how to counterfeit a Nintendo Game Pak isn't productive. What we need is a competition for jumping/driving/stacking/etc modules for a homebrew spiritual sequel to NWC.
Agreed. If I ever hear of someone from here faking an NWC cart, I'm gonna gag them with a dead gerbil, garrote them with their own spinal cord, hang them by their own intestines, draw, quarter, eighth and sixteenth them, and flush the remains down various different toilets in several states.
*AHEM*, Anyhow, making a new NWC-homage cart is a cool idea... If you want to follow the original plan, as the prior poster suggested, we'd need a platform game, a racing game, and a stacking or other puzzle game.
Of course, other possibilities exist as well. I was thinking something which hits three DIFFERENT genres, or possibly replaces one of the prior genres.
I had originally come up with the idea of a game inspired by the original design ideas for Q-bert (which was originally called 'snots and boogers'), where a character would hop around on an isometric/orthographic playfield and shoot enemies and collect treasures to complete the level.
I also came up with a really freaky puzzle game thats a cross between a bunch of others but the rules are rather complex, and I don't think it would work well here, but who knows.
I assume we're not trying to hack existing roms to work together to make a cart. if we were, then i would suggest smb3, <some modern racing game>, and maybe bombliss, since thats very similar to tetris but with a few rule changes.
Lord Nightmare
Personally, I would love to see someone fake an NWC card and eBay it for lots of cash. I just couldn't pity someone who would waste that amount of money on a cart only to keep it in a safe locker. ;)
The only two decent reasons for owning a cart that I can see is either to enjoy playing it or to make a devcart out of it. Everything else just seems to be a tragic "mine's bigger than yours"-game among the collector species.
The worst thing I've seen in this category was on a forum where collectors could list their rare carts, with one person being proud to have no less than 5(!) Mr.Gimmick carts in his collection.
Quote:
The only two decent reasons for owning a cart that I can see is either to enjoy playing it or to make a devcart out of it. Everything else just seems to be a tragic "mine's bigger than yours"-game among the collector species.
On the other hand, due to collectors some of these carts will survive for probably hundreds of years, and they're
paying in order to provide this service.
Bananmos is not all the way wrong, but still, it'd be very unfair to do something like that.
It's still cool to have pretty rare cards, as long as you play them and not just put them in a drawer and show off that you possess them.
Quote:
Just be sure if you make a gray cart not to use a number thats already been located!
Even faking a gold one you'd have to look out for the same. Few people know exactly how the label on those were made. They are easy to fake, but more so if you know the equipment that was actually used to print them. If you can hold the cart and lok at it or just get a really good scan, you could tell if the label was faked. It was not a standard dot matrix, btw. Also, the golds may not be numbered, but they are all individual in their appearance and I have been documenting subtle details for each one that gives them each a sort of "fingerprint." To date, 10 have been discovered, one of which I don't have a pic of and a couple others I need better pics of.
-Rob
has anyone had any luck or tried this? I have a rom of it and it seems its only set at 5:00 get 50 coins in mario etc. 1 lap in rad racer and then tetris. Is there anyway to just reproduce this rom like it is? I woudnt care if it had a dip switch in it to switch the times or not. 5:00 is fine. i would love to just put it on a cart. anyone know what kind of board it could be used on etc./? and if it will keep time some how? any hacks been made yet?
Only the NES-EVENT board (an MMC1 based board with some extra discrete logic) works, and if you have one of those, you already have the authentic cart. It would probably be possible to mapper hack it to run on a generic MMC1 board by dropping the submapper in favor of 32 KiB bankswitching for the SMB1 and Tetris segments, but nobody has had the time to do that.
If any of the NES flash cart projects get finished, it would be possible. BTW, my understading is that some emulators support the dip switch settings of the cart. Don't know which one(s) though.
-Rob
hmm i have nestopia, and it understands the timer and stuff for 5 minutes. Somebody should really try to hack this for a mmc1 board. For a certain time. It doesnt have to be able to switch times, just something to play and still make it a challenge. it would be awesome to have one of these and play it with a bunch of people. see whos got skills. that would be awesome. PLEASE SOMEONE HACK THIS GAME TO WORK ON A NORMAL CART!!! I would actually donate to a "make a repro NWC cart fund" lol.
Per
KH's page, NES-EVENT has 256 KiB PRG ROM, 8 KiB PRG RAM, and 8 KiB CHR RAM, just like SNROM. But the lower 128 KiB are switched funny through register $A000; you'll want to log all writes to $A000-$BFFF in an emulator so that you can change those to use the upper 128 KiB.
The hard part will be finding some bytes in RAM that lie unused by all three game engines for the purpose of counting down the 18,000 frames and storing the game scores.
Given the deep disassembly of SMB1 and the existence of a homebrew Tetris clone, would it be easier to start anew by making some cheap racing game?
i dunno man, im still new to all this myself. But i would love for someone to dive into it a little further, especially if they already have the knowledge to do so. It would be great to be able to play this piece of history, At least a little similar to the way it originally was. Without having to pay a few grand for it. Anyone up to the challenge, ill pitch in some cash
You do know that mapper hacking for the express purpose of making reproductions is
flagrant copyright infringement, right? I don't want to go to all the trouble of turning this into an SNROM and then get
busted.
If you are looking for repro hardware, it can easily be done. Would cost around $90 for one assembled board or ~$30 each for 25 (no cart, no cic). This would be using a cpld instead of mmc1 and no dips so it wouldnt need old parts or be confused for the real thing. Building a pcb that looks relatively close to the original is also easy, but less interesting.
Alternatively you could wait for my PowerPak (yes I promise its still coming out!) which already plays NWC with the correct dip settings. Unfortunately my source for new cart plastics disappeared so it will be a while until I can get a mold made....
It would get scary if people started making NWC repros. Someone is most definitely bound to try to screw people if such a thing is accomplished. Sure, they'd probably be pretty easy to spot, but the potential to take advantage of people would be very real.
Bunnyboy, just curious...how do you intend to handle dip switch settings for your flash cart? Physical swtches, or menu-driven? Also, I hope your cart is designed as such that one couldn't put a single rom on there and have the cart boot up with no menu, as someone could put your cart in another case, put a fake label on it, and create fake NWCs more easily. If it is menu-required, it would help safeguard such an occurance from happening.
-Rob
tepples wrote:
Uh. Duh...even if one were to repro the cartridge with a 20-whatever binary counter and and aditional 161 to control the hi-bit banking, you still would have to copy the cartridge data from a rom image in the first place. Getting caught doing that alone (without permission) is enough to get busted.
Correction: A crapload of glue logic...just saw the board scan on kevtris' site...jesus...although I now see how this thing was dumped so easily. lol, EPROM. Also to note that it's 3 4040's for the counter (anyone that's ever made an
EPROMr knows these pretty well...)
Also, one thing I didn't get is why nintendo didn't just control the stop time through the second controller port. They already had a plug in it for the starting trigger, why not to stop it as well...
The counter outputs to the IRQ which is unused on all those games, so no game logic needs to be changed. Of course I dont think they would have a problem getting the source for modifications...
bunnyboy wrote:
The counter outputs to the IRQ which is unused on all those games, so no game logic needs to be changed
Then how does it know to switch to the next game? And where does it store the score? They had to have hacked the games even if only to add auto-starting and auto-finishing.
Yes the games are modified to do game switching, most likely just a couple new lines in each game. No reason 2nd controller couldnt be used except it would be another piece of equipment.
Just did a quick check of the code running and it looks like the wram is used for the irq code and the game loading code (chrram copying).
Quote:
how do you intend to handle dip switch settings for your flash cart?
Right now PowerPak is just hardwired to the 7:21 time. I will probably add a menu for switching to other times. The cart starts up with my logo and a menu to choose the game so it wouldnt be confused for the real thing.
On a repro cart I wouldn't have any dips, it would just be hardwired. Anyone putting the board inside a fake nwc cart would have to make another place to mount fake dips. As has been discussed before, it would not be hard to create a believable fake so I'm not too worried about the repro board being used.
tepples wrote:
Then how does it know to switch to the next game? And where does it store the score? They had to have hacked the games even if only to add auto-starting and auto-finishing.
Nintendo has source code to their games, obviously.
The cart uses WRAM...and I checked in and it seems that there is quite a bit of code saved to the cart's RAM...oh, and it's totally changable too bit-for-bit.
I'm also going to assume that square changed the code for their segment as well (and added some music
).
aamof, I'm gona go in and beat that mario segment right now, just to see if anything got changed...
Talk about minimalist changing.
Okay, I modified some loopyNES code I had lying around to not IRQ on the counter (which, after looking at a board, can be deemed innacurate anyways...I was going by scanlines (y'know, the chr address line trick), which is how MMC3 and MMC5(I think) do it...)
Played through, beat it. Nothing changed besides the 50 coin thingy. Pressed B to restart. Game starts over, 1-1, 99 lives. Plays * game (I ran into a buzzy beetle). Go fig.
Anyone ever go to the minus world in the NWC cart? I know it was different in Japan. Maybe it is on the NWC cart too?
Thanks for checking that out, though, Awal. I've always wanted to know about that.
I've also been quite curious as to what the maximum possible score can be in an NWC cart (not that you could actually obtain it). Anyone know a way to figure that out? Game Genie codes?
Lol, GG codes for NWC would be hilarious!!
Come to think of it, can the time be adjusted via a GG code? That may satisfy all those who want to play this is real competition time, but their emulator won't let them.
-Rob
The timer counter is entirely hardware so no GG code will change the time. Game Genie can only work on the rom space, so you wouldn't be able to change the timer code stored in wram either. You could use the game genie to change the irq vector to a location that has rts, meaning that when the irq triggers it is just ignored. That would take out the timer completely and you would have to hand time it. Don't think there is another way except get a better emulator
A great code would be make tetris always feed you lines!
rbudrick wrote:
Anyone ever go to the minus world in the NWC cart?
Just did. Same old -1 we know and love.
Also, a while ago I ran through the FDS minus word and recorded it:
http://www.youtube.com/watch?v=xB2i-QOsBpwbunnyboy wrote:
A great code would be make tetris always feed you lines!
Good idea, I'm workin on that right now...
...and done.
Tetris:
OXKOKESU
ZOKOSATI
XVKOVEOO
Nintendo World Championships:
OXXOASSU
ZOXOPSPL
XVXOZIVO
This forces every piece (besides the first
) to a straight piece. They are also rotatable.
Believe me, I tried to find a space with a crapload of $12's to make a one-line code, but alas I was unsucessfull. A two-line code is possible by manipulation of the x register, but I'm feelin' lazy :p.
Except the first piece, huh? Hmmm...this might be due to the fact that there are only (iirc) 4 four pattern orders for blocks in the NWC version, unlike the original, which appears to be random, but might just have a shitload of pattern orders and no one's ever noticed before. Thor Aackerlund won the NWC by recognizing that only 4 patterns could appear and he spent a bunch of time memorizing in his hotel rooms and at home the videotapes his Dad made of him playing to know the best patterns ahead of time. Pure genius, imo.
Just a theory, but I just wanted to point out that the game IS different from the released version.
-Rob
I thought that'd be kinda fishy...I manipulate the call into the ordered set to always retreive (what is apparently the next piece) as 0x12, which equates to a straigh piece (laid horizontally).
Here's The Routines:
Tetris:
Code:
$988E:A5 49 LDA $0049 = #$20
$9890:C9 20 CMP #$20
$9892:30 56 BMI $98EA
$9894:A5 BE LDA $00BE = #$01
$9896:C9 01 CMP #$01
$9898:F0 20 BEQ $98BA
$989A:A5 A4 LDA $00A4 = #$00
$989C:C9 00 CMP #$00
$989E:D0 0E BNE $98AE
$98A0:E6 A4 INC $00A4 = #$00
$98A2:A5 B7 LDA $00B7 = #$01
$98A4:85 A5 STA $00A5 = #$00
$98A6:20 EB 98 JSR $98EB
$98A9:85 A6 STA $00A6 = #$07
$98AB:4C EA 98 JMP $98EA
$98AE:A5 A5 LDA $00A5 = #$00
$98B0:C5 B7 CMP $00B7 = #$01
$98B2:D0 36 BNE $98EA
$98B4:A5 A4 LDA $00A4 = #$00
$98B6:C9 1C CMP #$1C
$98B8:D0 30 BNE $98EA
$98BA:A9 00 LDA #$00
$98BC:85 A4 STA $00A4 = #$00
$98BE:85 45 STA $0045 = #$0A
$98C0:85 41 STA $0041 = #$02
$98C2:A9 01 LDA #$01
$98C4:85 48 STA $0048 = #$01
$98C6:A9 05 LDA #$05
$98C8:85 40 STA $0040 = #$05
$98CA:A6 BF LDX $00BF = #$07
//$98CC:A9 12 LDA #$12
//$98CE:EA NOP
$98CC:BD 56 99 LDA $9956,X @ $9956 = #$02
$98CF:85 42 STA $0042 = #$00
$98D1:20 69 99 JSR $9969
$98D4:A5 BE LDA $00BE = #$01
$98D6:C9 01 CMP #$01
$98D8:F0 07 BEQ $98E1
$98DA:A5 A6 LDA $00A6 = #$07
$98DC:85 BF STA $00BF = #$08
$98DE:4C E6 98 JMP $98E6
$98E1:20 EB 98 JSR $98EB
$98E4:85 BF STA $00BF = #$08
$98E6:A9 00 LDA #$00
$98E8:85 4E STA $004E = #$00
$98EA:60 RTS
$98EB:A5 C0 LDA $00C0 = #$05
$98ED:C9 05 CMP #$05
$98EF:D0 12 BNE $9903
$98F1:A6 D3 LDX $00D3 = #$0C
$98F3:E6 D3 INC $00D3 = #$0C
$98F5:BD 00 DF LDA $DF00,X @ $DF00 = #$00
$98F8:4A LSR
$98F9:4A LSR
$98FA:4A LSR
$98FB:4A LSR
$98FC:29 07 AND #$07
$98FE:AA TAX
$98FF:BD 4E 99 LDA $994E,X @ $994E = #$02
$9902:60 RTS
NWC:
Code:
$956A:A5 69 LDA $0069 = #$20
$956C:C9 20 CMP #$20
$956E:30 56 BMI $95C6
$9570:A5 BE LDA $00BE = #$01
$9572:C9 01 CMP #$01
$9574:F0 20 BEQ $9596
$9576:A5 A4 LDA $00A4 = #$00
$9578:C9 00 CMP #$00
$957A:D0 0E BNE $958A
$957C:E6 A4 INC $00A4 = #$00
$957E:A5 B7 LDA $00B7 = #$01
$9580:85 A5 STA $00A5 = #$00
$9582:20 C7 95 JSR $95C7
$9585:85 A6 STA $00A6 = #$0B
$9587:4C C6 95 JMP $95C6
$958A:A5 A5 LDA $00A5 = #$00
$958C:C5 B7 CMP $00B7 = #$01
$958E:D0 36 BNE $95C6
$9590:A5 A4 LDA $00A4 = #$00
$9592:C9 1C CMP #$1C
$9594:D0 30 BNE $95C6
$9596:A9 00 LDA #$00
$9598:85 A4 STA $00A4 = #$00
$959A:85 65 STA $0065 = #$2B
$959C:85 61 STA $0061 = #$05
$959E:A9 01 LDA #$01
$95A0:85 68 STA $0068 = #$01
$95A2:A9 05 LDA #$05
$95A4:85 60 STA $0060 = #$05
$95A6:A6 BF LDX $00BF = #$0B
//$95A8:A9 12 LDA #$12
//$95AA:EA NOP
$95A8:BD 39 96 LDA $9639,X @ $9639 = #$02
$95AB:85 62 STA $0062 = #$0B
$95AD:20 4C 96 JSR $964C
$95B0:A5 BE LDA $00BE = #$01
$95B2:C9 01 CMP #$01
$95B4:F0 07 BEQ $95BD
$95B6:A5 A6 LDA $00A6 = #$0B
$95B8:85 BF STA $00BF = #$0B
$95BA:4C C2 95 JMP $95C2
$95BD:20 C7 95 JSR $95C7
$95C0:85 BF STA $00BF = #$0B
$95C2:A9 00 LDA #$00
$95C4:85 6E STA $006E = #$00
$95C6:60 RTS
$95C7:A5 C0 LDA $00C0 = #$04
$95C9:C9 05 CMP #$05
$95CB:D0 12 BNE $95DF
$95CD:A6 D3 LDX $00D3 = #$00
$95CF:E6 D3 INC $00D3 = #$00
$95D1:BD 00 DF LDA $DF00,X @ $DF00 = #$00
$95D4:4A LSR
$95D5:4A LSR
$95D6:4A LSR
$95D7:4A LSR
$95D8:29 07 AND #$07
$95DA:AA TAX
$95DB:BD 31 96 LDA $9631,X @ $9631 = #$02
$95DE:60 RTS
That routine I manipulate:
Code:
$993C/961E and up contents: Identical BTW
00000000010101010202030404050505
0506060207080A0B0E12020202020207
07070708080A0B0B0E0E0E0E1212
---
So if it's being manipulated, it has to be the seed value, unless I'm looking at this wrong.
Yes, it's likely that the seed value is being manipulated. In the stand-alone Game Pak, the seed value is based on the timing of the first few start presses, but in NWC, the timing is the same from play to play, so it's probably predictable based on detritus left behind in RAM by Rad Racer or the menu system.
Ah, that'd explain the seed predictability. Didn't even think of the title screen wait.
If one were to extract the Tetris rom solely from the NWC cart/rom and play it alone, what would the value be then? Would the outcome always be the same, given the wait and the Rad Racer theory?
-Rob
rbudrick wrote:
If one were to extract the Tetris rom solely from the NWC cart/rom and play it alone, what would the value be then?
You are dirty pirate if you think this is an nes file, but this is just an ips, so ha!
Great Scott! The same pattern...every time. No really, try for yourself. It patches against The (U) [!] build, so the one that everyone has should work just fine.
AWal wrote:
rbudrick wrote:
If one were to extract the Tetris rom solely from the NWC cart/rom and play it alone, what would the value be then?
You are dirty pirate if you think this is an nes file, but this is just an ips, so ha!Great Scott! The same pattern...every time. No really, try for yourself. It patches against The (U) [!] build, so the one that everyone has should work just fine.
That's what I thought it would do. Sweet! Is it one of the four patterns, though?
It would be very interesting to be able to actually know how to control which pattern you would get to solely practice that one, if possible, but unlikely given that the seed may be determined by something somewhat random, like the Rad Racer theory. Or even better, make IPSs for all four, to practice the hell out of them all! One could really strive for high scores then!
And if it is RR that determines the Tetris pattern, I wonder i code was added to RR or the NWC rom itself to determine it.
-Rob
Is there GG code to disable the timer in all games?
GG codes don't effect the time. Also, you'd never finish Tetris if there were, so what would be the point?
Quote:
It would be very interesting to be able to actually know how to control which pattern you would get to solely practice that one, if possible, but unlikely given that the seed may be determined by something somewhat random, like the Rad Racer theory. Or even better, make IPSs for all four, to practice the hell out of them all! One could really strive for high scores then!
And if it is RR that determines the Tetris pattern, I wonder i code was added to RR or the NWC rom itself to determine it.
-Rob
Man, glad I found that doc to put in the instructions for the NWC repro so now all patterns are predictable. I rock, lol, jk.
-Rob
rbudrick wrote:
GG codes don't effect the time.
But can they turn CLI opcodes into SEI opcodes?
Quote:
Also, you'd never finish Tetris if there were
Unless a second code stuck a CLI into the top-out animation (bars filling the screen from top to bottom) so that the interrupt can finally squeeze through once the player tops out. Or unless the code to blink the screen on a 4-line clear were tweaked to restart the timer somehow. (Is that possible?
NotTheCommonDose wrote:
Can PAR affect time?
Action Replay style products can affect only variables visible to the CPU. The timer value is in the mapper, not the internal RAM. Or it can restart the timer, if that's possible.