Difficult-to-emulate lightgun game: Top Hunter by Asder

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200906)
All emulators that have lightgun support can run Duck Hunt and Hogan's Alley, but there are some tough-to-emulate light gun games from unlicensed publishers that pose a greater challenge.

The most difficult seems to be a game called "Top Hunter", which only exists on the Asder 20-in-1 multicart, although an extracted mapper 0 ROM image of the game can be found on the net for emulators that do not bother to implement this particular multicart mapper (which only exists as a UNIF board mapper so far). Only FCEUX with its Old PPU emulation seems to be able to run the game past the title screen, all other emulators that I have tried fail, including FCEUX with its New PPU emulation. The game has been reported to work well on actual hardware.
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200907)
Top hunter seems to do the following:

1. Full white screen with a timed loop to identify the first scanline where the zapper registers. (Y detection)
2. Series of narrow white blobs moving horizontally across the detected Y position. (X detection)

Image demonstrating:
Attachment:
top_hunter_hit_detection.png
top_hunter_hit_detection.png [ 6.44 KiB | Viewed 4294 times ]


I'm noticing that with New PPU on, the Y position is detected a little bit lower than with Old PPU. Even in Old PPU mode the position is a bit low, but with New PPU the X detection pass is just too low for it to register.

I haven't looked into how FCEUX registers a zapper hit, but this seems to be the problem. Operation Wolf has a very similar detection scheme, but it appears to work because its Y detection isn't so low, so the difference doesn't cause a problem.
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200908)
Both Old and New PPU seem to give very good Y tracking with tepples' zapper stuff in Action 53, though. Maybe Top Hunter does something exceptionally unusual?
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200910)
Attachment:
20170726071747.png
20170726071747.png [ 27.28 KiB | Viewed 4282 times ]

Attachment:
20170726071740.png
20170726071740.png [ 17.58 KiB | Viewed 4282 times ]

Attachment:
0170726071754.png
0170726071754.png [ 30 KiB | Viewed 4282 times ]
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200911)
So, playing a little bit around with Mesen's debugger...

I think it's an interaction of two "sorta" bugs, one in the game, and one in how most emulators implement the Zapper.
#1 The game draws the horizontal scans a couple scanlines below where the mouse is pointing. On hardware, the bit goes true a few scanlines after light is sensed, and so the game should scan for X position a few scanlines higher than it does.
#2 Many emulators only check the single pixel under the mouse cursor, instead of the comparatively large area that the Zapper actually sees.

So the two together mean that the game gets a Y coordinate in the first frame, and no X coordinate at all in the following six.
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200969)
As far as I can tell, changing Mesen's code to check for any single "bright" pixel in a 3x3 or 5x5 grid around the mouse's position seems to fix the game (the targeting is kind of bad, but that might be the game's fault). Doing this makes most of the vertical/horizontal pattern tests in Zap Ruder behave more or less like a solid white block, though. I'd be curious to see how those patterns behave on an actual CRT+Zapper...
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200972)
I guess I only have the subset of tests in A53v1, but I do have a CRT and Zapper. (I suspect other people will have both and the ability to run Zap Ruder v3 itself)

What specifically are you looking for?

Zap Ruder doesn't seem to contain a "focus size" test. I (or someone else) can probably figure out some way to make one?
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200976)
All Action 53 tests are in the cartridge as unused data. You could use a Game Genie code to change the ZapPing entry point to the main menu entry point.
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#200977)
I'm mostly curious how a zapper would behave on the thinner lines at a reasonable distance.
e.g can it actually pick up the light from those tiny bars? And does it just pick up the light from those bars no matter where you aim inside the pattern? If so, the vertical tracking in both tests would work despite aiming at the black portions of the pattern.

In that case, it would make sense to expand the tracking in Mesen to a ~5x5 grid, since that's pretty much how the tests behave with a 5x5 grid.
In contrast, at the moment (in emulators), as soon as you put the mouse into the black areas, the tracking arrows reset to their default position at the bottom of the screen (and I doubt the zapper itself is precise enough to do this unless you stick it to the screen of a 30" CRT..)
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#201402)
Sour wrote:
I'm mostly curious how a zapper would behave on the thinner lines at a reasonable distance.
e.g can it actually pick up the light from those tiny bars? And does it just pick up the light from those bars no matter where you aim inside the pattern? If so, the vertical tracking in both tests would work despite aiming at the black portions of the pattern.

In that case, it would make sense to expand the tracking in Mesen to a ~5x5 grid, since that's pretty much how the tests behave with a 5x5 grid.
In contrast, at the moment (in emulators), as soon as you put the mouse into the black areas, the tracking arrows reset to their default position at the bottom of the screen (and I doubt the zapper itself is precise enough to do this unless you stick it to the screen of a 30" CRT..)



Mesen, The latest source code to compile successfully and run error. vs2015.

You use ~5x5 grid, Can choose 2 player ?
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#201430)
zxbdragon wrote:
Mesen, The latest source code to compile successfully and run error. vs2015.
You use ~5x5 grid, Can choose 2 player ?
It's normal for it to crash at the moment - you will need to delete your settings.xml file to fix it.
The grid size is customizable - selecting a zapper in the input devices now enables the "Setup" button and lets you pick the radius (1x1, 3x3, 5x5 or 7x7). The radius setting is shared by all connected zappers.
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#201452)
Sour wrote:
zxbdragon wrote:
Mesen, The latest source code to compile successfully and run error. vs2015.
You use ~5x5 grid, Can choose 2 player ?
It's normal for it to crash at the moment - you will need to delete your settings.xml file to fix it.
The grid size is customizable - selecting a zapper in the input devices now enables the "Setup" button and lets you pick the radius (1x1, 3x3, 5x5 or 7x7). The radius setting is shared by all connected zappers.


thank you ,delete setting.xml OK
fceux mouse right click,choose 2 Player mode.
Mesen right click no response?
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#201574)
zxbdragon wrote:
fceux mouse right click,choose 2 Player mode.
Mesen right click no response?
Ah, I had to try it in the game to understand - I thought there was some option about 2-player zapper mode in the FCEUX right-click menu.

You can do the same in Mesen - you need to hold down the right button and then click the left button.
Basically while the right button is held, the zapper can't detect any light, and pressing the left button acts as it always does.
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#201575)
Sour wrote:
zxbdragon wrote:
fceux mouse right click,choose 2 Player mode.
Mesen right click no response?
Ah, I had to try it in the game to understand - I thought there was some option about 2-player zapper mode in the FCEUX right-click menu.

You can do the same in Mesen - you need to hold down the right button and then click the left button.
Basically while the right button is held, the zapper can't detect any light, and pressing the left button acts as it always does.



fceux right button menu can be closed.
Attachment:
2017-08-04_10-51-23.jpg
2017-08-04_10-51-23.jpg [ 63.75 KiB | Viewed 3853 times ]

If fceux is correct, then right-click should be able to select 2 p mode
Re: Difficult-to-emulate lightgun game: Top Hunter by Asder
by on (#201640)
NewRisingSun wrote:
All emulators that have lightgun support can run Duck Hunt and Hogan's Alley, but there are some tough-to-emulate light gun games from unlicensed publishers that pose a greater challenge.

The most difficult seems to be a game called "Top Hunter", which only exists on the Asder 20-in-1 multicart, although an extracted mapper 0 ROM image of the game can be found on the net for emulators that do not bother to implement this particular multicart mapper (which only exists as a UNIF board mapper so far). Only FCEUX with its Old PPU emulation seems to be able to run the game past the title screen, all other emulators that I have tried fail, including FCEUX with its New PPU emulation. The game has been reported to work well on actual hardware.


Works fine in bizhawk, and it doesn't do anything particularly special for lightgun...