Kind of surprised, but it seems no one has hacked Arkanoid II Famicom to use the NES Vaus (Arkanoid Controller) on the NES? Is that so? I guess another game to hack would be Chase H.Q. Anyhow, I believe zapper games have been modded to look for the controller on the NES 2-player not Famicom Expansion.
I think the protocol for zapper on player 2 port is same as Famicom expansion port.
Yeah it is, I'm using a Nes Zapper on my Famicom (using a home-made adapter) and playing both Famicom lightgun games and NES Zapper games without any modding.
The expansion port has pretty much all pins that the Nes controller ports have.
That works for the Zapper because both the NES and Famicom guns use D3 and D4. But the Famicom Arkanoid controller uses player 1 D1 and player 2 D1 instead of D3 and D4 like the NES Arkanoid controller.
Of course it can be done.
It's just a question of whether it's a pain.
Funny thing is ... it looks like it might already be being done.
Fceux shows two reading routines in the game:
- At .NES offset 0x1D69B-0x1D6A8 (memory $D68B-$D698) is the loop that reads from joypad 1 and the Famicom Vaus Controller's button.
- At .NES offset 0x1D6BE-0x1D6CF (memory $D6AE-$D6BF) is the loop that reads from joypad 2, the Famicom Vaus's ADC .... as well as explicitly storing the results of the NES Vaus also.
... was there a special two-player pair of Vaus controllers for Arkanoid 2? and I'm using the wrong term here with "NES Vaus" ?
... also, the ADC timing isn't compatible between the FC and NES variants. (The FC vaus has an explicit "load shift register" command, while the NES vaus automatically loads the shift register after the ADC conversion finishes)
lidnariq wrote:
... was there a special two-player pair of Vaus controllers for Arkanoid 2? and I'm using the wrong term here with "NES Vaus" ?
I think Arkanoid II version of the paddle has an EXP port so you can daisy-chain two paddles for two players.
If you load up Arkanoid 2 in FCEUX, set up both FC expansion port and P2 to both use the Vaus controller, then you can control two paddles in Arkanoid 2 Vs mode. But it looks like there's no two-player cooperative mode.
So it looks like we should be able to lazily just swap P1 and P2, change how the game requests a report from the controller, and you just don't get the 2 player Vs mode.
Try this:Attachment:
It seems to work in FCEUX, but, well...(sha1sum of file to patch: 79f9d3da1904400832546216833978a2261313a5 = Arkanoid II (J) [!].nes )
EDIT: Use
this patch instead, which has been verified to work on hardware against the actual NES Vaus controller.
If this does work, Greg2600, would you be willing to open your Vaus controller and report a few numbers on components inside? We recently had a
thread about figuring out what's going on inside the Vaus controller, but it'd be nice to be told exactly what the size of the capacitors are. (The capacitors are the parts that are tan discs without colored stripes, and the green, blue, or pink other components)
Wow, sorry I forgot about the thread. I tried the patch on my Everdrive N8, didn't work. When I run it it goes directly to 2P mode but the Vaus doesn't respond. I can open up the vaus if needed.
Greg2600 wrote:
Wow, sorry I forgot about the thread.
NP!
Quote:
I tried the patch on my Everdrive N8, didn't work. When I run it it goes directly to 2P mode but the Vaus doesn't respond.
Awww.
Also, that's weird. Going directly to 2P mode should only happen if... the game thought that player 2 was pressing a button? But player 2 shouldn't be doing anything at all on an NES. Those bits are always 0 because nothing can be plugged into those pins on an NES...
The patch works correctly in both FCEUX and Mesen... and it's doing what our documentation on the wiki says it should...
I'm kind of at a loss for ideas for why it's not working :/
I assume tepples's various Vaus test programs work correctly on your N8? (
viewtopic.php?p=184333#p184333 ,
viewtopic.php?t=10662 )
Quote:
I can open up the vaus if needed.
I don't think it'll help this particular problem, and as much as I'd like to know the specific values of the capacitors, I feel like I should trade that knowledge for a working patch.
Both of those controller tests checked out fine.
Uh... I guess, try this patch? It explicitly discards the results of the button read from [$4016]&$02 instead of pretending it's player 2.
With NES pad in P1 and Vaus in P2, still goes right to 2P and selects it on its own. No improvement.
How about this one? It completely disables the Arkanoid controllers' buttons altogether. Won't be great for gameplay, but should let me find out whether the thing that's automatically starting the game is it erroneously thinking the arkanoid button is pressed...
Still does it. I don't even have the Vaus plugged in either. Would it make sense to experiment with original Arkanoid (Famicom)?
Ok, that's really weird.
Does the original Arkanoid 2 do that even if not patched?
The only thing that comes to mind is that the NES/Famicom differ in how they request the ADC do a conversion. So I had to patch out the "load shift registers" command ($01→[$4016]) and replace the "start ADC conversion" ($02→[$4016]) with the NES's "load joypad shift registers and start ADC conversion and after 7ms load Vaus shift register".
But I have no idea why a 15ms delay between the two would cause both select and start to be pressed on the joypads. I could simply disable the joypads altogether... that might be annoying, though.
Firstly, wow, thanks for the effort! The original (J) [!] rom functions properly with pad in 1 and vaus in 2, although obviously the vaus doesn't do anything. I'm terrible with these things, but is your approach similar to what was done to get the NES Zapper to work on Famicom-only light gun games?
It's not really the same as the Zapper—both the Famicom and NES Zapper work the same way, the only difference is the connector.
I think the obvious step is to try something that only changes how it reads the ADC. This definitely won't work on any real console, but if it automatically starts the game then I'll at least have narrowed down the problem... just without any idea of what the next thing to try is.
Yep still goes right to 2P. I also found I had a "beta" rom, and tried the IPS on that, but it seemed to have no effect. I'm also fearful if us having different roms could be an issue, although I'd be shocked if multiple dumps of this game are floating around.
So, it's probably something wrong with one of the joypads. So ... uh, I guess here's some patches that will disable p1joy/p2joy/vaus buttons. Apply some combination (any one or any two) on top of the first patch I shared.
You definitely won't want to apply all three, because then you won't be able to start the game! But if it's just the joypads, I guess I might have an idea for how to rewrite the entire problematic routine instead of a surgical excision.
Hey, we're in business (I guess)! I applied your original (9/15) patch, and then a combination of the others. What worked was disabling of P1, that enabled me to hit 1P with the vaus button, and then play the game with the vaus. Obviously I couldn't select other options since P1 was down. Disabling P2 did nothing because I had the Vaus plugged in there. Disabling Vaus did disable it, but any combination that left P1 active would cause the game to go right into 2P mode.
... the "vetted" GoodNES Arkanoid 2 dump is an overdump.
There's only 64 KiB of PRG.
I'll carry through pretending it's 128 KiB for now, but Augh.
— Ok, after carefully writing a new schmancy Vaus reader that would ?correctly? handle the US Vaus's ADC's peculiarities, and finding that no emulator is accurate enough to actually test that my code is right, I looked at the original US Arkanoid 1 Vaus reading code and ... discovered that I'd really rather overcomplicated things. The US Vaus's shift register doesn't lose its contents
just because I started a new ADC conversion.
(We can strobe the joypads and start the Vaus ADC at the same time and not lose anything! Just because the US Vaus ADC will automatically load the shift register in about 7ms doesn't mean anything right now. Now, yes, the sophisticated thing I'd written should be necessary if we ever want to get a 9-bit ADC result out of the Vaus controller, but the two Arkanoid games don't care)So ... the contents of this patch is the very
first patch minus the
problematic init patch. And it should be more-or-less identical to what Arkanoid 1 (U) does.
Here's hoping this works for you?
Tried it, and P1 is working, there's no jump to 2P mode, but the Vaus isn't working. It's still using the controller pad whereas NES Arkanoid gameplay is controlled by the vaus.
Just to be paranoid ... you're patching a file that's 262160 bytes in size, and has sha1sum 79f9d3da1904400832546216833978a2261313a5 ?
Does the Vaus button work, even if the wheel doesn't? ('cuz I really don't understand why that would break)
I guess I could go for the total rewrite again. And/or try to copy the Arkanoid 1 (U) reader...
262160 bytes but the sha1sum I get is ba64eee98a020760999e43a3650ce0f3.
But anyway, now this is wild! So I tried the button and it worked. I then discover that if you hit START on the pad, gameplay is controlled by the gamepad. However, if you hit start (even on 2P), gameplay is controlled by the vaus. Ha ha! I think this is actually kind of a cool scenario, to be honest, gives the player the option. If it were me, I'd call it a day, and submit this terrific work on
RomHacking.Net! Or perhaps, go one step further and create a hack for Chase H.Q.!
Greg2600 wrote:
ba64eee98a020760999e43a3650ce0f3
That's the md5sum, same file.
Quote:
But anyway, now this is wild! So I tried the button and it worked.
So would you be willing to relay the labels on the capacitors now? :}
Quote:
hack for Chase H.Q
Hm, their controller reading code is much more space efficient... and
I don't yet see an obvious empty space to put a new reading function.hm, there might be space in the arctan table...
... You know, try this:
Attachment:
ChaseHQ-use-US-Vaus-20161223.ips [42 Bytes]
Downloaded 203 times
Apply to file:
GoodNES 3.14 name "Taito Chase H.Q. (J).nes"
crc32 b3408ee4
md5sum 9ed94d66532446e3cbf7e563d5c3d8bc
sha256 5936b6e234280d834472630e0147307795f22d8a41bcfd8d97d6e7b557f7861b
Chase patch worked perfectly! Only drawback obviously is you need to use Select on the pad for Turbos!
As for the capacitors, would you know how I can remove the knob without breaking the vaus? I can't get a view of the top half of the PCB without doing so.
... given that every picture of the Vaus PCB shows the bare resistive tracks for that potentiometer, it looks like the knob is tethered to the top? Or else that everyone else was too impatient to figure out how to remove the knob without removing the top half of the potentiometer.
With nicer knobs, sometimes there are set screws to hold the knob on. For things like stereos, the knob is often just held on with an astounding amount of friction (and a lack of ability to get a good enough grip for pulling). It kinda looks like it "should" be the latter.
I just don't know if the knob is permanently affixed (i.e. glue) or not.
I suppose, at its goofiest, desoldering the potentiometer and then resoldering would work out, if you have proper equipment to avoid lifting pads.
This picture shows that classic "metal tabs clipped around the potentiometer PCB" assembly. FWIW, I have disassembled "real" potentiometers (like
this one) and had no problems with it after I reassembled it, but I understand if you don't want to take that chance. Maybe someone else will chime in...
I just couldn't see a way to get the knob off without breaking it. You should post the Chase HQ patch on romhacking as well. Again, many thanks, great job.
The Arkaonoid II hack (I verified the source CRC23 for the Japanese ROM I used matched what shows on romhacking) doesn't seem to load with the Everdrive-N8 even though the Chase H.Q. hack and the original Japanese ROM both work just fine. I'm using the latest Everdrive OS:
http://krikzz.com/pub/support/everdrive ... os-v16.zipIf anybody has gotten this hack to work on the Everdrive-N8, can you tell me which OS version you are using? If the original hacker is still available, can you look into it?
VideogameScrapbook wrote:
The Arkaonoid II hack (I verified the source CRC23 for the Japanese ROM I used matched what shows on romhacking) doesn't seem to load with the Everdrive-N8 even though the Chase H.Q. hack and the original Japanese ROM both work just fine. I'm using the latest Everdrive OS:
http://krikzz.com/pub/support/everdrive ... os-v16.zipIf anybody has gotten this hack to work on the Everdrive-N8, can you tell me which OS version you are using? If the original hacker is still available, can you look into it?
When I did the testing I was using v15. However, it still works on v16 and v20 rc6. When the game starts, you're hitting the button on the vaus to enter the 1P game right?