My first major controller project. NeoGeo -> Master System

Started by albino_vulpix, July 10, 2010, 06:30:43 PM

Previous topic - Next topic

albino_vulpix

I know what you're thinking. "Neo Geo to Master System? Both of those use no encoding of any kind! How big could it be?"
http://img.photobucket.com/albums/v144/albino_vulpix/100_5193.jpg
http://img.photobucket.com/albums/v144/albino_vulpix/100_5192.jpg


It has some nice features, which is why there is no less than 6 ICs. It can do rapid fire, and a mode specially for a certain game, I call "Bank Panic Mode."

In standard mode, the joystick works as you'd expect, and B and C work buttons 1 and 2. A acts as 1 and 2 simultaniously, while D serves as a momentary rapid fire; while holding D buttons A, B and C (1+2, 1, 2) can be rapid-fired.
In Bank Panic mode, only left and right work on the joystick. B and C still fire 1 and 2, but A activates down (if you've played the game you'll know why this is.) D is still momentary rapid fire, enabling 1, 2 and down to be rapid fired.

The select button on the controller is used to toggle between the two modes, and the start buttons toggles between rapid fire on/off, where rapid fire is enables without needing to hold D.

http://img.photobucket.com/albums/v144/albino_vulpix/100_5194.jpg
http://img.photobucket.com/albums/v144/albino_vulpix/100_5195.jpg

Two LEDs on the front of the box show the on/off status of Bank Panic and rapid fire modes.

If you want to make one of your own, import this into this simulator:
$ 0 0.1 0.05817778142098084 50 5.0 50
s 32 240 112 240 0 1 false
s 32 272 112 272 0 1 false
s 32 304 112 304 0 1 false
s 32 336 112 336 0 1 false
s 32 368 112 368 0 1 false
s 32 400 112 400 0 1 false
s 32 432 112 432 0 1 false
s 32 464 112 464 0 1 false
s 32 496 112 496 0 1 false
s 32 528 112 528 0 1 false
g 32 560 32 576 0
w 32 560 32 528 0
w 16 528 32 528 0
w 16 528 16 496 0
w 16 496 16 464 0
w 16 464 16 432 0
w 16 432 16 400 0
w 16 400 16 368 0
w 16 368 16 336 0
w 16 336 16 304 0
w 16 304 16 272 0
w 16 272 16 240 0
w 16 240 32 240 0
w 16 272 32 272 0
w 16 304 32 304 0
w 16 336 32 336 0
w 16 368 32 368 0
w 16 400 32 400 0
w 16 432 32 432 0
w 16 464 32 464 0
w 16 496 32 496 0
r 64 32 144 32 0 4600.0
r 64 64 144 64 0 4600.0
r 64 96 144 96 0 4600.0
r 64 128 144 128 0 4600.0
r 64 160 144 160 0 4600.0
r 256 32 320 32 0 4600.0
r 256 64 320 64 0 4600.0
r 256 96 320 96 0 4600.0
r 256 128 320 128 0 4600.0
r 256 160 320 160 0 4600.0
w 64 32 16 32 0
w 16 208 112 208 0
w 112 208 112 240 0
w 64 64 32 64 0
w 32 192 128 192 0
w 128 192 128 272 0
w 128 272 112 272 0
w 16 64 16 32 0
w 32 96 32 64 0
w 64 96 48 96 0
w 48 176 144 176 0
w 144 176 144 304 0
w 144 304 112 304 0
w 160 336 112 336 0
w 176 368 112 368 0
w 144 160 160 160 0
w 160 160 160 336 0
w 144 128 176 128 0
w 176 128 176 368 0
w 64 160 64 128 0
w 64 128 64 112 0
w 16 208 16 64 0
w 32 96 32 192 0
w 48 176 48 96 0
w 64 112 144 112 0
w 144 112 144 96 0
w 144 96 144 64 0
w 144 64 144 32 0
w 176 400 112 400 0
w 176 400 192 400 0
w 192 400 192 48 0
w 192 32 192 48 0
w 192 32 240 32 0
w 128 432 112 432 0
w 128 432 208 432 0
w 208 432 208 64 0
w 208 64 240 64 0
w 128 464 112 464 0
w 128 464 224 464 0
w 224 464 224 96 0
w 224 96 240 96 0
w 128 496 112 496 0
w 128 496 240 496 0
w 240 496 240 128 0
w 128 528 112 528 0
w 128 528 256 528 0
w 256 528 256 160 0
w 256 128 240 128 0
w 256 96 240 96 0
w 256 64 240 64 0
w 256 32 240 32 0
w 144 32 160 32 0
w 160 32 160 16 0
w 160 16 320 16 0
w 320 128 320 160 0
w 320 96 320 128 0
w 320 64 320 96 0
w 320 32 320 64 0
w 320 16 320 32 0
R 320 32 368 32 0 0 40.0 5.0 0.0 0.0 0.5
w 112 240 320 240 0
w 128 272 320 272 0
w 144 304 320 304 0
w 160 336 320 336 0
w 176 368 320 368 0
w 192 400 320 400 0
w 208 432 320 432 0
w 224 464 320 464 0
w 240 496 320 496 0
w 256 528 320 528 0
M 944 240 992 240 0 2.5
M 944 272 992 272 0 2.5
M 944 304 992 304 0 2.5
M 944 336 992 336 0 2.5
M 944 368 992 368 0 2.5
M 944 400 992 400 0 2.5
r 960 48 912 48 0 4600.0
r 912 80 960 80 0 4600.0
r 960 112 912 112 0 4600.0
r 864 48 816 48 0 4600.0
r 816 80 864 80 0 4600.0
r 816 112 864 112 0 4600.0
w 960 48 992 48 0
w 992 48 992 208 0
w 992 208 944 208 0
w 944 208 944 240 0
w 944 272 928 272 0
w 928 272 928 192 0
w 928 192 976 192 0
w 976 192 976 80 0
w 976 80 960 80 0
w 944 304 912 304 0
w 912 304 912 176 0
w 912 176 960 176 0
w 960 176 960 112 0
w 912 80 912 112 0
w 912 80 912 48 0
w 864 48 864 80 0
w 864 80 864 112 0
w 864 112 912 112 0
w 816 112 816 128 0
w 816 128 896 128 0
w 896 128 896 336 0
w 896 336 944 336 0
w 816 80 800 80 0
w 800 80 800 144 0
w 800 144 880 144 0
w 880 144 880 368 0
w 880 368 944 368 0
w 816 48 784 48 0
w 784 48 784 160 0
w 784 160 864 160 0
w 864 160 864 400 0
w 864 400 944 400 0
R 880 48 880 16 0 0 40.0 5.0 0.0 0.0 0.5
w 880 48 864 48 0
w 944 240 832 240 0
w 928 272 832 272 0
w 912 304 832 304 0
w 896 336 832 336 0
w 880 368 832 368 0
w 832 400 864 400 0
x 969 445 987 448 0 12 UU
x 969 457 987 460 0 12 DD
x 974 500 988 503 0 12 A1
x 973 517 988 520 0 12 B2
x 973 469 987 472 0 12 LL
x 969 484 987 487 0 12 RR
x 975 535 984 538 0 12 C
x 975 550 984 553 0 12 D
x 943 582 981 585 0 12 START
x 934 567 981 570 0 12 SELECT
w 320 304 832 304 0
w 320 336 832 336 0
156 576 32 592 32 0 0.0
R 576 32 560 32 0 0 40.0 5.0 0.0 0.0 0.5
R 576 96 560 96 0 0 40.0 5.0 0.0 0.0 0.5
w 320 496 336 496 0
w 336 496 336 64 0
w 336 64 576 64 0
w 320 528 352 528 0
156 384 96 416 96 0 5.0
R 384 96 368 96 0 0 40.0 5.0 0.0 0.0 0.5
R 384 160 368 160 0 0 40.0 5.0 0.0 0.0 0.5
w 352 528 352 128 0
w 352 128 384 128 0
152 768 240 832 240 0 2 5.0
w 832 272 704 272 0
w 768 224 752 224 0
w 752 32 672 32 0
w 320 240 752 240 0
w 752 240 752 256 0
w 752 256 768 256 0
152 768 432 784 432 0 2 5.0
152 768 512 784 512 0 2 5.0
152 672 384 688 384 0 2 5.0
152 672 560 688 560 0 2 5.0
w 768 416 736 400 0
150 720 544 736 544 0 2 5.0
150 720 400 736 400 0 2 5.0
w 768 528 736 544 0
w 688 560 720 560 0
w 688 384 720 384 0
w 832 368 800 368 0
w 800 368 800 432 0
w 800 432 784 432 0
w 784 512 816 512 0
w 816 512 816 400 0
w 816 400 832 400 0
w 320 400 624 400 0
w 624 400 624 416 0
w 624 416 720 416 0
w 320 368 640 368 0
w 640 368 640 400 0
w 640 400 672 400 0
w 752 32 752 128 0
w 752 128 752 224 0
w 672 368 656 368 0
w 656 368 656 352 0
w 656 352 720 352 0
w 720 352 720 128 0
w 720 128 752 128 0
w 320 432 704 432 0
w 704 432 704 528 0
w 704 528 720 528 0
w 640 400 640 544 0
w 640 544 672 544 0
w 656 368 656 576 0
w 656 576 672 576 0
165 400 416 416 416 2 0.0
r 400 448 400 384 0 10000.0
r 400 448 400 512 0 47000.0
w 400 512 400 544 0
c 400 544 368 544 0 1.0E-6 2.267308778193167
g 368 544 368 560 0
w 400 384 464 384 0
R 464 384 496 384 0 0 40.0 5.0 0.0 0.0 0.5
w 528 480 752 480 0
w 752 480 752 496 0
w 752 496 768 496 0
w 752 480 752 448 0
w 752 448 768 448 0
151 480 208 496 208 0 2 0.0
w 496 208 528 208 0
w 528 208 528 448 0
w 320 464 384 464 0
w 384 464 384 224 0
w 384 224 480 224 0
w 480 96 480 144 0
w 480 144 496 144 0
w 496 144 496 176 0
w 464 192 480 192 0
w 496 176 464 192 0
152 672 272 704 272 0 2 5.0
150 640 160 656 160 0 2 5.0
w 672 96 672 128 0
w 672 128 624 128 0
w 624 128 624 144 0
w 624 144 640 144 0
w 320 272 544 272 0
w 544 272 544 176 0
w 544 176 640 176 0
w 656 160 672 160 0
w 672 160 672 224 0
w 672 224 656 224 0
w 656 224 656 256 0
w 656 256 672 256 0
152 592 208 608 208 0 2 5.0
150 624 272 640 272 0 2 0.0
w 640 272 656 272 0
w 656 272 656 288 0
w 656 288 672 288 0
w 608 208 624 208 0
w 624 208 608 256 0
w 608 256 624 256 0
w 656 352 608 352 0
w 608 352 608 288 0
w 608 288 624 288 0
w 320 368 320 352 0
w 320 352 288 352 0
w 288 352 288 256 0
w 288 256 560 256 0
w 560 256 560 192 0
w 560 192 592 192 0
w 528 480 528 464 0
w 528 464 576 464 0
w 576 464 576 224 0
w 576 224 592 224 0
162 704 64 704 96 1 2.1024259 1.0 0.0 0.0
r 704 96 704 128 0 220.0
R 704 64 704 48 0 0 40.0 5.0 0.0 0.0 0.5
w 672 128 704 128 0
162 528 80 528 112 1 2.1024259 1.0 0.0 0.0
R 528 80 528 48 0 0 40.0 5.0 0.0 0.0 0.5
r 528 112 528 144 0 220.0
I 528 208 528 144 0 0.5
x 467 81 524 84 0 12 Rapid Fire
x 723 80 818 83 0 12 Bank Panic Mode


Note with this simulation:

-The values of the Neo Geo pull-up resistors should be 4.7K
-The pull-up resistors on the SMS side are there to represent the inside of the console itself, and should not be added to the box.
-A capacitor should be connected between the JK clock inputs and ground, to prevent contact bounce in the controller toggling the flip-flop multiple times with 1 press. I used 1uF. It creates an RC time constant with the pull-up resistor.
-On my actual circuit, I used the LS family of logic ICs.


I'm really happy that something I designed and built works exactly as I intended, and wanted to share. I wanted to do something to implement the knowledge I gained during my last semester at uni in my digital electronics unit, and this is what I came up with. I call it my "NeoMaster Box."

NFG