It is currently Sat Apr 29, 2017 4:27 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Tue Dec 20, 2016 10:34 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5586
Location: Seattle
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.


Top
 Profile  
 
PostPosted: Wed Dec 21, 2016 8:36 am 
Offline

Joined: Tue Dec 01, 2009 8:32 pm
Posts: 27
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?


Top
 Profile  
 
PostPosted: Wed Dec 21, 2016 12:00 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5586
Location: Seattle
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.


Attachments:
Arkanoid2-patch-US-vaus-init-20161221.ips [26 Bytes]
Downloaded 14 times
Top
 Profile  
 
PostPosted: Wed Dec 21, 2016 5:44 pm 
Offline

Joined: Tue Dec 01, 2009 8:32 pm
Posts: 27
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.


Top
 Profile  
 
PostPosted: Wed Dec 21, 2016 6:18 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5586
Location: Seattle
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.


Attachments:
Arkanoid2-patch-disable-vaus-buttons-20161221.ips [15 Bytes]
Downloaded 13 times
Arkanoid2-patch-disable-p2-joypad-20161221.ips [15 Bytes]
Downloaded 15 times
Arkanoid2-patch-disable-p1-joypad-20161221.ips [15 Bytes]
Downloaded 13 times
Top
 Profile  
 
PostPosted: Wed Dec 21, 2016 9:22 pm 
Offline

Joined: Tue Dec 01, 2009 8:32 pm
Posts: 27
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.


Top
 Profile  
 
PostPosted: Thu Dec 22, 2016 7:33 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5586
Location: Seattle
... 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?


Attachments:
Arkanoid2-patch-use-US-vaus-20161222.ips [32 Bytes]
Downloaded 19 times
Top
 Profile  
 
PostPosted: Thu Dec 22, 2016 10:57 pm 
Offline

Joined: Tue Dec 01, 2009 8:32 pm
Posts: 27
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.


Top
 Profile  
 
PostPosted: Fri Dec 23, 2016 12:20 am 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5586
Location: Seattle
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...


Top
 Profile  
 
PostPosted: Fri Dec 23, 2016 1:42 pm 
Offline

Joined: Tue Dec 01, 2009 8:32 pm
Posts: 27
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.! :)


Top
 Profile  
 
PostPosted: Fri Dec 23, 2016 2:08 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5586
Location: Seattle
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 19 times

Apply to file:
GoodNES 3.14 name "Taito Chase H.Q. (J).nes"
crc32 b3408ee4
md5sum 9ed94d66532446e3cbf7e563d5c3d8bc
sha256 5936b6e234280d834472630e0147307795f22d8a41bcfd8d97d6e7b557f7861b


Top
 Profile  
 
PostPosted: Sat Dec 24, 2016 11:22 am 
Offline

Joined: Tue Dec 01, 2009 8:32 pm
Posts: 27
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.


Top
 Profile  
 
PostPosted: Sat Dec 24, 2016 12:01 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 5586
Location: Seattle
... 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...


Top
 Profile  
 
PostPosted: Sat Jan 07, 2017 8:40 pm 
Offline

Joined: Tue Dec 01, 2009 8:32 pm
Posts: 27
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 9 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