nds-bootstrap icon indicating copy to clipboard operation
nds-bootstrap copied to clipboard

[IR Passthrough] On-cart IR using "Walk With Me" cart cannot reset Pokéwalker in Pokémon HeartGold

Open aphirst opened this issue 7 years ago • 47 comments

What I have currently available for testing:

  • n3DS, Luma CFW
  • twilightmenu + nds-bootstrap 0.12.1 rev02
  • Physical copy of "Walk With Me" NTR-IMWP-EUR, a game with a built-in IR port
  • (I do not currently possess a "Walk With Me" pedometer, but I have recently ordered one for testing.)
  • Verified Good Dump of Pokémon Heart Gold (German), along with anti-AP xdelta patch applied (though this does not seem to affect the issue)
  • Pokéwalker

What I want to achieve

  • Be able to connect the Pokéwalker to an instance of Heart Gold running through nds-bootstrap, by means of an inserted "Walk With Me" IR-cart

What I've tested

  1. (Unfortunately I don't have my physical copy of Heart Gold currently to hand for testing.)
  2. Choose "connect" on the Pokéwalker while pointing at nothing, LCD display says "No trainer found."
  3. Boot "Pokémon Heart Gold" in nds-bootstrap, attempt to connect the Pokéwalker: LCD text says "No trainer found."
  4. Boot "Walk with Me" from the physical cart, attempt to connect the (obviously incompatible) Pokéwalker: LCD text says "Cannot connect."
  5. Boot "Walk With Me" using nds-bootstrap, attempt to connect to the Pokéwalker: LCD text says "No trainer found."

Apparent conclusions

  • The "walk with me" cart obviously does have a not-utterly-broken IR port since it triggers a distinct error message with the Pokéwalker, presumably due to the handshake being different to the game's intended bundled peripheral.
  • nds-bootstrap does not appear to be properly initialising the "Walk with Me" game cart's built-in IR port

I've asked about this in the NDS(i)Brew Discord server, but after not making much progress, figured it made sense to escalate it to a proper Issue.

If there's anything I could test which might shed light on why IR passthrough isn't working in my case, I'd be only glad to help.

aphirst avatar Sep 25 '18 18:09 aphirst

My second copy of "Walk With Me" arrived today, this time with its bundled "actimeter" pedometer peripheral. I can confirm two things:

  1. The IR works perfectly with the real card(s) in conjunction with the "actimeter".
  2. Booting the "Walk With Me" ROM via nds-bootstrap does NOT activate the IR chip on the inserted gamecard, and communication with the "actimeter" is not possible.

This certainly makes it seem as if the problem here lies with nds-bootstrap.

As before, if there's anything I can do to help, please just ask. Additionally, I am willing to donate my spare "Walk With Me" game card if there's a developer in the UK or EU (shipping prices) who reckons it would be key in getting it working.

aphirst avatar Sep 27 '18 12:09 aphirst

After further testing at the NDS(i)Brew Discord server, it turned out to be an issue with TWiLight Menu++, where it resets slot-1 access to read header data from a flashcard, so that TWLMenu++ can init the DLDI driver for the specific flashcard. The Slot-1 reset is the culprit where it stops IR from working. In the next TWiLight Menu++ version, direct flashcard access will be an option, so that IR will work again.

RocketRobz avatar Sep 27 '18 15:09 RocketRobz

I can confirm that the workaround of relaunching the game via "last run ROM" does seem to result in the IR chip remaining active.

There is still potentially an issue remaining. Allow me to describe it by means of a comparison

  • If I run "Walk With Me" via its ROM, I can now connect its "actimeter" peripheral through the WWM cart's IR, register a user on it, and seemingly use it as normal.
  • If I run "Pokémon Heart Gold" via ROM, the Pokéwalker now responds to IR from the WWM IR port, however it does not seem possible to successfully reset the Pokéwalker to be used with a new save game. It is not possible to test "normal" operation of the Pokéwalker without doing this, since it is set up for an old save file, and there is no on-device way to reset this data.

Is anyone able to confirm whether either resetting Pokéwalkers works or doesn't work for them, and which IR-supported cart they're using in their Slot-1? That might indicate whether it's a general issue with nds-bootstrap, or whether it's instead a quirk of using different IR-supporting carts.

aphirst avatar Sep 27 '18 16:09 aphirst

I was finally able to get my hands again on a Pokémon SoulSilver cart. Japanese, but I'm confident that the region doesn't matter.

The various possible IR tasks are:

  • resetting an old IR pedometer
  • activating a reset pedometer
  • send data to a linked pedometer
  • receiving data from a linked pedometer

I think there's also cart-to-cart stuff in Pokemon Black/White but since I only have one console I'm not in a position to test it.

Pokémon SoulSilver cart (NTR-IPGJ-JPN, NTR-031)

Task \ ROM Walk With Me HeartGold (AP Patched) Heart Gold (Clean)
Reset Old Works Works Works
Activate New Works Works Works
Send (Pokémon) Works Works Works
Receive (steps, Pokémon) Works Works Works

So the first conclusion is: the HG/SS carts do everything the WWM carts do.

Walk With Me cart (NTR-IMWP-EUR, NTR-031)

Task \ ROM Walk With Me HeartGold (AP Patched) Heart Gold (Clean)
Reset Old Works Fails Fails
Activate New Works Fails* Fails*
Send (user data) Works Fails** Fails**
Receive (step counts) Works Fails** Fails**
  • The boxes marked * could only be tested after first using the SS cart to reset my old Pokéwalker which contained old data.
  • The boxes marked ** could only be tested after first using the SS cart to pair the Pokéwalker to the save file.

So the second conclusion is: The WWM carts work fine when loading ROMs of its own game, but fail at all the relevant steps required by the Pokémon games. As mentioned before, the IR does seem to do "something" at that time, since it makes the Pokéwalker respond, displaying an explicit error message instead of merely causing a time-out message, but whatever it does do is clearly false.

I think it's safe to conclude that the Pokémon IR carts are in fact an upgraded or extended version of the carts used for Walk With Me, however it's worth noting that there's no external difference - they all declare "NTR-031. PAT. PEND." on the back, and are all from the same black (rather than grey) plastic.

Future Work

At a bare minimum, it should be made clear to people wanting to use the Pokéwalker feature that these WWM carts unfortunately do not work like the Pokémon carts do. From there, it would be interesting to know exactly what it is that the WWM carts do when receiving IR-related commands from the game code, both on an electronic and an optical level. If there's a slim chance that this could be worked around in a straightforward way, it might be worth at some point pursuing.

aphirst avatar Nov 09 '18 15:11 aphirst

would it be possible to use the 3ds IR thing?

fennectech avatar Jun 15 '19 01:06 fennectech

I don't think that's available in DS mode.

autofire372 avatar Jun 16 '19 06:06 autofire372

Could be done through a sysmodule like you do for widescreen.

fennectech avatar Aug 08 '19 05:08 fennectech

is this fixed? I just bought a wwm cart for tthe IR so i can use my pokewalker some day

fennectech avatar May 20 '20 22:05 fennectech

I have acquired a compatable cart and a walk with me cart. They are physically different. This is pokemon black on the left. Walk with me on the right. I CAN use the actimeter with walk with me through twilightmenu/pokemon black. I CAN use the pokewalker through twilightmenu / pokemon black I CAN use the actimeter with twilightmenu/wwm cart. I CANNOT use the pokewalker through twilightmenu/wwm cart image image

fennectech avatar Jun 01 '20 20:06 fennectech

I would be willing to acquire an IR toy for further testing. From even more testing just about any IR source will trigger the "cannot connect" screen from the actimeter to telecvision remotes and even open flame. So it seems to be a protocol failure

fennectech avatar Jun 01 '20 21:06 fennectech

IR isn't working when I use a HeartGold rom with a White or White 2 cartridge.

IR is only working for me if i enable "last played rom on startup".

Turning "slot-1 microSD access" on or off doesn't fix the issue.

On a previous version (twilightmenu version 11), ir passthrough worked without enabling "last played rom on startup".

ec04012 avatar Aug 01 '20 19:08 ec04012

@ec04012 Did you enable the SELECT menu as well? Going into the DS Classic Menu causes this issue.

RocketRobz avatar Aug 01 '20 19:08 RocketRobz

@RocketRobz

Yeah, that worked.

I disabled "DS Classic Menu on startup" and set "DSi/Saturn; SELECT" to SELECT menu.

What's the difference between the classic menu and the select menu? I can't seem to find an explanation of them.

ec04012 avatar Aug 01 '20 20:08 ec04012

The DS Classic Menu resets Slot-1 in order to read the header and banner title/icon, which causes IR to not work, as a result.

RocketRobz avatar Aug 01 '20 20:08 RocketRobz

So, from what I've been able to gather from this thread (and please correct me if this is incorrect)

  • You need a Pokemon HG/SS/B/W/B2/W2 cart to use IR Passthrough for the Pokewalker
  • Walk With Me does NOT work for IR Passthrough if using a Pokemon ROM due to physically different hardware
  • The DS Classic menu cannot be used when wanting to use IR Passthrough

So, the question still stands: With the prices of these carts going up EXUBERANTLY (check Amazon, eBay, Mercari, whatever) will we ever have an alternative that would allow us to connect to a Pokewalker that doesn't need a cart? Or is that totally out of the question as all of this runs on the arm9 processor? Furthermore, what project would that question fall under? nds-bootstrap? TWiLight Menu? Or a completely different, new project utilizing some sort of sysmodule or passthrough to the 3DS's IR hardware?

nn9dev avatar Feb 13 '21 20:02 nn9dev

Other languages of the carts work too and are often significantly cheaper

Sent from my iPad

On Feb 13, 2021, at 2:22 PM, nn9dev [email protected] wrote:

 So, from what I've been able to gather from this thread (and please correct me if this is incorrect)

You need a Pokemon HG/SS/B/W/B2/W2 cart to use IR Passthrough for the Pokewalker Walk With Me does NOT work for IR Passthrough if using a Pokemon ROM due to physically different hardware The DS Classic menu cannot be used when wanting to use IR Passthrough So, the question still stands: With the prices of these carts going up EXUBERANTLY (check Amazon, eBay, Mercari, whatever) will we ever have an alternative that would allow us to connect to a Pokewalker that doesn't need a cart? Or is that totally out of the question as all of this runs on the arm9 processor? Furthermore, what project would that question fall under? nds-bootstrap? TWiLight Menu? Or a completely different, new project utilizing some sort of sysmodule or passthrough to the 3DS's IR hardware?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

fennectech avatar Feb 13 '21 21:02 fennectech

I was more looking for the answer to "Will we ever have a future-proof option?" (aka no cart)

nn9dev avatar Feb 14 '21 01:02 nn9dev

In theory. Yes. Without a lot of work (Reverse engineering TWL_FIRM no. If you have the skills to make it so then it could be. But there are more important thigns being worked on RN But this is an open source project so your welcome to add it yourself or pay someone to do the legwork to add it for you :)

fennectech avatar Feb 14 '21 04:02 fennectech

well, maybe when i get some extra money i'll put up a bounty or something for it, but it's really good to know that it's at least possible. It would honestly be a great step for immortalizing such games fully, but i definitely see how it isn't a number one priority :)

nn9dev avatar Feb 14 '21 19:02 nn9dev

Having some trouble connecting my pokewalker using both my black & white 2 cards & a HG save. They both have functioning ir ports, and as suggested I: -Disabled DS Classic Menu on startup -Select to Select Menu -Disabled Slot1 microSD access -Tried with & without Last played rom on startup

Working with New3dsxl, twilight menu++ v18.5.0

mrpj924 avatar Feb 21 '21 16:02 mrpj924

I had a similar issue a few days back. The most recent updates of TWiLight Menu and nds-bootstrap (which both released less than a week ago) made some improvements to the IR functionality. Update those, and also make sure that your Pokéwalker is pointing at the cartridge when you're trying to use it. I ended up using my o3DS due to the cartridge port location, but I assume it shouldn't make too much or a difference on the n3DS. Try updating them both from the TWiLight Menu++ updater app.

nn9dev avatar Feb 21 '21 19:02 nn9dev

I originally installed them yesterday so I think I had installed the newest version, but just to be safe I updated both. I pointed them at the cartridge (on the front for the n3ds) but still no improvement.

mrpj924 avatar Feb 22 '21 04:02 mrpj924

Interestingly enough, I can't actually get it to work on my n2dsxl which makes me think there might be a hardware change between the n3ds and o3ds that makes the IR passthrough code not work? So this may be something for @RocketRobz to look at, however I know this issue has been on triage for quite some time...

Edit: I'm noticing that the original poster used a n3ds, however there have been a LOT of changes since then. I myself still can't get it to work even after toggling any and every setting related to it on and off. I am BEYOND confused honestly, so I guess yeah, this is left to Robz or whoever else wants to take a crack at it.

nn9dev avatar Feb 24 '21 00:02 nn9dev

same issue here :( tried it on my DSiXL after it wasn't working on my n3DSXL and still no luck

Epsilon635 avatar Mar 05 '21 10:03 Epsilon635

As of 46ee6ce (and release v0.45.0) IR is working in Pokémon Generation 5, however it doesn't seem to work in Generation 4.

I've tested Pokémon Black 2 (U) and Pokémon Heart Gold (U) both with Pokémon White (J) and Pokémon Heart Gold (U) carts and Black 2 worked with both, Heart Gold worked with neither.

Edit: All testing was done on a DSi (K) with TWiLight Menu++ v21.0.2 and the latest bootstrap nightlies.

Epicpkmn11 avatar Jul 24 '21 06:07 Epicpkmn11

With all listed above, I didn't manage to connect SoulSilver rom to my Pokewalker via Black 1 (EU eng) and HeartGold (EU ger) cards.

Tests were made on New 3DS xl and DSi xl with the latest TWiLightMenu v21.3.0 and Included nds-bootstrap v0.46.0

MegaVat30 avatar Aug 06 '21 19:08 MegaVat30

Can't get the pokewalker to work neither. Tried with DSi XL with Twilight Menu v21.3.0 and nds-bootstrap v0.46.0 and also nigthly 2ea69cd5 but nothing.

Used the above settings: -Disabled DS Classic Menu on startup -Select to Select Menu -Disabled Slot1 microSD access -Tried with & without Last played rom on startup

The test was done with Pokémon Soul Silver (Spain) rom and Pokémon Heart Gold (Spain) cartridge.

JanitorHead avatar Aug 10 '21 23:08 JanitorHead

On r/NBSBrew, u/honct123 tested Active Health with Carol Vorderman with Pokémon B2/W2 and it doesn't appear to work, so that game likely has the same old IR version as Walk With Me.

Epicpkmn11 avatar Sep 18 '21 17:09 Epicpkmn11

IR using a Pokémon cart to connect to the Pokéwalker should be fixed by #1302!

If anyone else wants to test I haven't tested super thoroughly yet, however from what little I've done it seems good. I highly doubt this will fix Walk With Me carts, but a confirmation on that would be good.

Epicpkmn11 avatar Nov 02 '21 07:11 Epicpkmn11

IR using a Pokémon cart to connect to the Pokéwalker should be fixed by #1302!

If anyone else wants to test I haven't tested super thoroughly yet, however from what little I've done it seems good. I highly doubt this will fix Walk With Me carts, but a confirmation on that would be good.

Hi, it's working now on 24902ba5

Amazing work!

JanitorHead avatar Jan 01 '22 20:01 JanitorHead