Copy Link
Add to Bookmark
Report

NES 4player-adapter documentation

Nintendo's profile picture
Published in 
Famicom
 · 17 Jan 2020

 
NES 4player-adapter documentation

Date: 1998-01-20
By: Fredrik Olsson
Version: 0.9

Background: The NES has a couple of good 4player games and I wanted to emulate
the 4player-adapter, but there was no documentation. So the only solution
seemed to be to hack some games to see what they were doing to read the adapter.
And here it is, the (hopefully) complete documentation on NES 4player-adapter.

To start the reading of a joystickport you will have to do the normal strobe
(write #1 to $4016 and then #0 to $4016). Then you read bit #0 of $4016 8 times
for joystick#1 and 8 times again for joystick#3. The same rules apply to $4017
for joystick#2 and #4.
This would be all if it wasn't that some games need to know whether there is an
adapter or not. The information is supplied in the next 8 bits (read 17 to 24),
these bits I think represent the kind of adapter, for normal emulation it would
be "0001.0000" in $4016 and "0010.000" in $4017. It seems that there are adapters
that supply the information in the second bit of $4016 and $4017, but I don't
think any games require these. If you want to make your emulator emulate this
too then the last(?) (17 to 24) 8 bits would be "0010.000" in $4016 and "0001.0000"
in $4017, but then you must supply the bits for joystick information in the
second bit (bit #1) of $4016 and $4017. A real NES has some timing aspects too,
but that won't (probably) matter for an emulator.

-------------------------------------------------------------------------------------------------------------------------------------------------------
|Read# 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
-------------------------------------------------------------------------------------------------------------------------------------------------------
| Joy#1/Joy#2 | Joy#3/Joy#4 | Adapter info |
|-------------------------------------------------------------------------------------------------------------------------------------------------
| A | B | Select | Start | Up | Down | Left | Right | A | B | Select | Start | Up | Down | Left | Right | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
--------------------------------------------------------------------------------------------------------------------------------------------------
| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
-----------------------------------------
To test this I recommend Gauntlet II for test without adapterinfo and
RCProAmII for test with adapterinfo.

So use this information for your new cool NES-game =)) or in your emulator.
And please give me some credits if you think I deserve it ;).
This information may be put in either Yoshi's NES-doc or Marat's NES-doc
without any questions, but please ask me first if you put it somewhere else,
thank you.

Special thanks to:
Juan Antonio Gomez Galvarez
Yoshi
Marat Fayzulin
Morgan Johansson

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT