wii-retropad-adapter:wii-retropad-adapter.git
4 years agoAdding timeout before first reading for N64 and GC pads master
bootsector [Fri, 28 Feb 2014 22:07:18 +0000 (19:07 -0300)]
Adding timeout before first reading for N64 and GC pads

5 years agoAdding additional ps2 mode check during init.
bootsector [Thu, 2 May 2013 09:53:49 +0000 (06:53 -0300)]
Adding additional ps2 mode check during init.

5 years agoPS2 polling loop now checks for controller mode (Analog/Digital) and set
bootsector [Thu, 2 May 2013 09:29:44 +0000 (06:29 -0300)]
PS2 polling loop now checks for controller mode (Analog/Digital) and set
CC registers accordingly.

5 years agoReverted GC and N64 code as of commit
bootsector [Thu, 2 May 2013 01:15:20 +0000 (22:15 -0300)]
Reverted GC and N64 code as of commit
503f52576feb7287a55d99cda62e8a10eb7c1090: N64 support was broken on
commits following it.

5 years agoOops!
bootsector [Sun, 21 Apr 2013 14:31:02 +0000 (11:31 -0300)]
Oops!

5 years agoFixed extension cable detection routine.
bootsector [Sun, 21 Apr 2013 14:03:30 +0000 (11:03 -0300)]
Fixed extension cable detection routine.

5 years agoAdded TG16 extension cable schematics
bootsector [Sun, 21 Apr 2013 10:40:54 +0000 (07:40 -0300)]
Added TG16 extension cable schematics

5 years agoAdded TurboGrafx16 controller support
bootsector [Sun, 21 Apr 2013 04:11:50 +0000 (01:11 -0300)]
Added TurboGrafx16 controller support

5 years agoMinor tweaks
bootsector [Fri, 1 Feb 2013 10:57:38 +0000 (08:57 -0200)]
Minor tweaks

5 years agoFixed the GC/N64 pad so it doesn't wait forever during reads when
bootsector [Wed, 30 Jan 2013 22:42:53 +0000 (20:42 -0200)]
Fixed the GC/N64 pad so it doesn't wait forever during reads when
controller is disconnected. That avoids the Wiimote to hang, but it
still gets garbage data when plugging in the GC/N64 controller back,
requiring a full disconnect/connect of the WRA to the Wiimote with the
GC/N64 already plugged.

5 years agoOops! Forgot to set n64_loop_helper as the buttons callback! :P
bootsector [Sun, 13 Jan 2013 14:38:38 +0000 (12:38 -0200)]
Oops! Forgot to set n64_loop_helper as the buttons callback! :P

5 years agoGC/N64 pad readings are now done inside the TWI ISR. Since inside ISR
bootsector [Sun, 13 Jan 2013 14:30:23 +0000 (12:30 -0200)]
GC/N64 pad readings are now done inside the TWI ISR. Since inside ISR
functions interrupts are disabled, there will be no timing issues
reading the controllers. No Wire library hack is needed anymore. It
seems to be the cleanest and definitive solution for the case! :)

5 years agoAnother attempt on fixing interrupts disabling for N64 and GC
bootsector [Sat, 12 Jan 2013 14:55:55 +0000 (12:55 -0200)]
Another attempt on fixing interrupts disabling for N64 and GC
controllers versus I2C communications.

5 years agoStill trying to find the best way to prevent that interrupts being
bootsector [Thu, 10 Jan 2013 00:42:53 +0000 (22:42 -0200)]
Still trying to find the best way to prevent that interrupts being
disabled by the GC and N64 pad reading routines mess with I2C/TWI comms.

5 years agoPolling N64 and GC controllers only at every other loop cycle. This
bootsector [Wed, 9 Jan 2013 00:14:17 +0000 (22:14 -0200)]
Polling N64 and GC controllers only at every other loop cycle. This
gives TWI some time to "breath" (interrupts enabled).

5 years agoCode cleanup
bootsector [Tue, 8 Jan 2013 00:00:08 +0000 (22:00 -0200)]
Code cleanup

5 years agoFixed old IOS VC titles not detecting the Classic Controller without
bootsector [Sun, 6 Jan 2013 11:29:40 +0000 (09:29 -0200)]
Fixed old IOS VC titles not detecting the Classic Controller without
re-plugging.

5 years agoSmall changes inside WMExtension::receive_bytes to make it more
bootsector [Sun, 6 Jan 2013 10:00:39 +0000 (08:00 -0200)]
Small changes inside WMExtension::receive_bytes to make it more
readable.

5 years agoSaving and restoring state of the SREG register when disabling
bootsector [Sat, 5 Jan 2013 19:06:45 +0000 (17:06 -0200)]
Saving and restoring state of the SREG register when disabling
interrupts.

5 years agoAdded option to disable interrupts when filling buttons data buffer for
bootsector [Sat, 5 Jan 2013 11:36:06 +0000 (09:36 -0200)]
Added option to disable interrupts when filling buttons data buffer for
the CC emulator.

5 years agoTweaked delay time for GC pad readings
bootsector [Thu, 3 Jan 2013 10:59:22 +0000 (08:59 -0200)]
Tweaked delay time for GC pad readings

5 years agoAdded a 6ms delay between GC pad reads so don't get the controller too
bootsector [Thu, 3 Jan 2013 10:35:28 +0000 (08:35 -0200)]
Added a 6ms delay between GC pad reads so don't get the controller too
much stressed. Official games poll the controller using that interval.

5 years agoImproved GCPad driver timing by making core read/write functions inline
bootsector [Thu, 3 Jan 2013 09:09:38 +0000 (07:09 -0200)]
Improved GCPad driver timing by making core read/write functions inline
and adjusted the delay for the reading function.

5 years agoHalved ANALOG_NEUTRAL_RADIUS for the right analog stick since it has
bootsector [Wed, 2 Jan 2013 21:36:47 +0000 (19:36 -0200)]
Halved ANALOG_NEUTRAL_RADIUS for the right analog stick since it has
half of the precision of the left analog stick. Switched map() function
call to a right shift operation for the GC analog shoulders.

5 years agoAdded Wii Classic Controller and Nintendo Game Cube shoulder buttons (L
bootsector [Wed, 2 Jan 2013 09:18:16 +0000 (07:18 -0200)]
Added Wii Classic Controller and Nintendo Game Cube shoulder buttons (L
and R) analog support.

5 years agoChanged WMCrypt file header with proper copyright line from marcan.
bootsector [Wed, 19 Dec 2012 08:52:06 +0000 (06:52 -0200)]
Changed WMCrypt file header with proper copyright line from marcan.

5 years agoFixed copyright line in file header for WMCrypt.cpp and WMCrypt.h
bfreitas [Wed, 19 Dec 2012 00:05:34 +0000 (22:05 -0200)]
Fixed copyright line in file header for WMCrypt.cpp and WMCrypt.h
(thanks marcan for letting me know!)

5 years agoFixed Sega Genesis controller driver so it works fine with Sega Master
bootsector [Sun, 30 Sep 2012 10:05:29 +0000 (07:05 -0300)]
Fixed Sega Genesis controller driver so it works fine with Sega Master
System, Atari 2600 and compatibles.

5 years agoFixed HOME button triggering condition (Master System pad Button 2
bootsector [Sat, 29 Sep 2012 20:19:01 +0000 (17:19 -0300)]
Fixed HOME button triggering condition (Master System pad Button 2
reports like C + START buttons).

5 years agoTreating Wii Classic Controller extension cable.
bootsector [Wed, 5 Sep 2012 11:45:53 +0000 (08:45 -0300)]
Treating Wii Classic Controller extension cable.

5 years agoPS2 pad driver now detects analog mode during init.
bootsector [Tue, 4 Sep 2012 12:59:22 +0000 (09:59 -0300)]
PS2 pad driver now detects analog mode during init.

5 years agoPS2 Pad driver: reverted to more aggressive interrupt disable. This
bootsector [Sat, 28 Jul 2012 12:09:13 +0000 (09:09 -0300)]
PS2 Pad driver: reverted to more aggressive interrupt disable. This
makes the PS2 controller more responsive on XBOX (USB RetroPad Adapter).
This can be disable so it still works on Wii RetroPad Adapter.

5 years agoPS2 pad driver tweak
bootsector [Fri, 27 Jul 2012 22:59:21 +0000 (19:59 -0300)]
PS2 pad driver tweak

5 years agoPS2 pad routine doesn't disable interrupts anymore. It's probably too
bootsector [Fri, 27 Jul 2012 00:45:56 +0000 (21:45 -0300)]
PS2 pad routine doesn't disable interrupts anymore. It's probably too
long and it was affecting I2C communications.

5 years agoImproved PS2 pad driver
bootsector [Thu, 26 Jul 2012 09:46:51 +0000 (06:46 -0300)]
Improved PS2 pad driver

6 years agoAdded USBRA DFU dongle reservation bits so it's not used for a control
bootsector [Sun, 1 Jul 2012 20:45:29 +0000 (17:45 -0300)]
Added USBRA DFU dongle reservation bits so it's not used for a control
pad.

6 years agoFixed NeoGeo controller support.
bootsector [Sat, 30 Jun 2012 00:50:18 +0000 (21:50 -0300)]
Fixed NeoGeo controller support.

6 years agoSmall bugfix
bootsector [Wed, 27 Jun 2012 10:04:24 +0000 (07:04 -0300)]
Small bugfix

6 years ago:. New PS2 pad driver (smaller)
bootsector [Tue, 26 Jun 2012 20:03:04 +0000 (17:03 -0300)]
:. New PS2 pad driver (smaller)

:. Re-added support to atmega168p, as the hex file got smaller with the
new PS2 pad driver

6 years agoChanged digital pins handling functions from the "Fast" ones to the
bootsector [Sun, 10 Jun 2012 15:10:33 +0000 (12:10 -0300)]
Changed digital pins handling functions from the "Fast" ones to the
ordinary ones, as they could lead to wrong readings inside the pad
detection routine.

6 years agoFixed sega saturn controller extension diagram. Also fixed/improved some
bootsector [Sun, 10 Jun 2012 12:16:28 +0000 (09:16 -0300)]
Fixed sega saturn controller extension diagram. Also fixed/improved some
stuff in the sega saturn pad reading code.

6 years ago:. Rewrite of the detectPad() routine so it takes care of PS2 pads/DB9
bootsector [Sat, 9 Jun 2012 15:14:57 +0000 (12:14 -0300)]
:. Rewrite of the detectPad() routine so it takes care of PS2 pads/DB9
pin 4 usage. Now this should support Sega Saturn pads without losing
support for Genesis pads.

:. Dropped support for Atmega168, as firmware size is now bigger than
16K

6 years agoAdded Sega Saturn pad support (to be tested).
bootsector [Sat, 9 Jun 2012 13:13:33 +0000 (10:13 -0300)]
Added Sega Saturn pad support (to be tested).

DB9 pin 4 can't be used as a detection pin for Saturn pads because it
may confuse PS2 pad detection (PS2 uses DB9 pin 4 as CLK signal).

So, in order to get Sega Saturn pad support, you'll lose
Sega Genesis/Master System/Atari, as Saturn pads uses almost as much
pins from DB9 as Sega Genesis pads.

So the default pad will be either Sega Genesis or Sega Saturn, and this
is defined at compile time by setting the SATURN definition in the
Makefile.

6 years agoSpecified AVRDUDE_PROGRAMMER version in Makefiles (stk500v1) so
bootsector [Mon, 28 May 2012 01:19:37 +0000 (22:19 -0300)]
Specified AVRDUDE_PROGRAMMER version in Makefiles (stk500v1) so
programming works under Linux with latest avrdude revisions.

6 years agoAdded asm version of GC/N64 driver just in case future compiler versions
bootsector [Sun, 27 May 2012 04:47:17 +0000 (01:47 -0300)]
Added asm version of GC/N64 driver just in case future compiler versions
mess with instructions (optimizations, etc...) in a way the time
sensitive routines get off. Whenever that happens, use the asm source
instead of the cpp file by changing the Makefiles accordingly (ASRC).

6 years agoFixed arduino core so it compiles under newest avr-glibc versions
bootsector [Thu, 10 May 2012 12:18:39 +0000 (09:18 -0300)]
Fixed arduino core so it compiles under newest avr-glibc versions
(http://code.google.com/p/arduino/issues/detail?id=604).

6 years agoMinor change.
bootsector [Fri, 27 Apr 2012 14:16:42 +0000 (11:16 -0300)]
Minor change.

6 years agoNow it's possible to know if there's a N64/GC joypad connected or not
bootsector [Fri, 27 Apr 2012 13:39:33 +0000 (10:39 -0300)]
Now it's possible to know if there's a N64/GC joypad connected or not
from the GCPad_init function (there's a timeout variable now).

6 years agoAdded Neo Geo controller support via external adapter (added eagle files
bootsector [Wed, 25 Apr 2012 22:44:24 +0000 (19:44 -0300)]
Added Neo Geo controller support via external adapter (added eagle files
for the adapter as well).

6 years agoFixed a small bug that was preventing WRA to work with
bootsector [Sat, 17 Mar 2012 13:12:38 +0000 (10:12 -0300)]
Fixed a small bug that was preventing WRA to work with
third-party/knock-off Wiimotes! :)

6 years agoAdded user manual in Brazilian Portuguese language.
bootsector [Sun, 11 Mar 2012 15:16:24 +0000 (12:16 -0300)]
Added user manual in Brazilian Portuguese language.

6 years agoUpdated user manual for WRA 2
bootsector [Sat, 10 Mar 2012 12:58:32 +0000 (09:58 -0300)]
Updated user manual for WRA 2

6 years agoMinor changes in the main module.
bootsector [Tue, 14 Feb 2012 23:23:33 +0000 (21:23 -0200)]
Minor changes in the main module.

6 years agoChanged delay function inside sega genesis pad library.
bootsector [Wed, 8 Feb 2012 22:58:27 +0000 (20:58 -0200)]
Changed delay function inside sega genesis pad library.

6 years agoReverted back to Bill Porter's PSX/PS2 library until I get the
bootsector [Wed, 8 Feb 2012 01:33:38 +0000 (23:33 -0200)]
Reverted back to Bill Porter's PSX/PS2 library until I get the
correct timing for an atmega running at 8Mhz internal resonator.

6 years agoImproved PSX/PS2 pad routines.
bootsector [Tue, 7 Feb 2012 21:25:52 +0000 (19:25 -0200)]
Improved PSX/PS2 pad routines.

6 years agoStopped using Bill Porter's PSX/PS2 pad lib.
bootsector [Tue, 7 Feb 2012 11:14:40 +0000 (09:14 -0200)]
Stopped using Bill Porter's PSX/PS2 pad lib.

6 years agoChanged PCB layout a little.
bootsector [Sun, 15 Jan 2012 11:46:44 +0000 (09:46 -0200)]
Changed PCB layout a little.

6 years agoCorrected PCB bottom silk.
bootsector [Sun, 15 Jan 2012 09:45:09 +0000 (07:45 -0200)]
Corrected PCB bottom silk.

6 years agoChanged molex connector type (90o).
bootsector [Sun, 15 Jan 2012 00:22:51 +0000 (22:22 -0200)]
Changed molex connector type (90o).

6 years agoAdded clearance for PCB spacers.
bootsector [Sat, 14 Jan 2012 13:14:13 +0000 (11:14 -0200)]
Added clearance for PCB spacers.

6 years agoAdded Eagle and gerber files for board version 2.1 (acrylic based
bootsector [Sat, 14 Jan 2012 12:11:54 +0000 (10:11 -0200)]
Added Eagle and gerber files for board version 2.1 (acrylic based
"enclosure"). Also added SVG file for acrylic lasercut service.

6 years agoRemoved unnecessary delays from gc_loop and n64_loop functions.
bootsector [Thu, 12 Jan 2012 20:25:27 +0000 (18:25 -0200)]
Removed unnecessary delays from gc_loop and n64_loop functions.

6 years agoRemoved 1s delay at the beginning because it seemed unnecessary.
bootsector [Thu, 12 Jan 2012 19:38:10 +0000 (17:38 -0200)]
Removed 1s delay at the beginning because it seemed unnecessary.
Improved GCPad init function.

6 years agoUpdated user manual and readme.txt for WRA 2.0
bootsector [Wed, 4 Jan 2012 22:25:16 +0000 (20:25 -0200)]
Updated user manual and readme.txt for WRA 2.0

6 years agoN64 controller: If plugged in with L pressed, L and Z buttons will be
bootsector [Fri, 16 Dec 2011 22:42:22 +0000 (20:42 -0200)]
N64 controller: If plugged in with L pressed, L and Z buttons will be
swapped (for Zelda games' sake!)

6 years agoN64 controller support is now fixed and tested: WORKING! :)
bootsector [Fri, 16 Dec 2011 02:15:09 +0000 (00:15 -0200)]
N64 controller support is now fixed and tested: WORKING! :)

6 years agoFixed silly bad copy and paste bug in N64 routine...
bootsector [Thu, 15 Dec 2011 22:36:52 +0000 (20:36 -0200)]
Fixed silly bad copy and paste bug in N64 routine...

6 years agoPS1/PSX digital controllers now works!
bootsector [Wed, 14 Dec 2011 22:17:01 +0000 (20:17 -0200)]
PS1/PSX digital controllers now works!

6 years agoUploaded N64 joystick connection schematics. Updated license inside
bootsector [Sun, 11 Dec 2011 22:57:12 +0000 (20:57 -0200)]
Uploaded N64 joystick connection schematics. Updated license inside
GC/N64 driver files.

6 years agoCorrected N64 button mapping. Still waiting for my N64 controller to
bootsector [Sat, 10 Dec 2011 22:11:38 +0000 (20:11 -0200)]
Corrected N64 button mapping. Still waiting for my N64 controller to
arrive for testings...

6 years agoAdded GC extension connection schematics.
bootsector [Sat, 10 Dec 2011 10:02:19 +0000 (08:02 -0200)]
Added GC extension connection schematics.

6 years agoGamecube controller support added successfully! N64 support is also
bootsector [Fri, 9 Dec 2011 21:42:19 +0000 (19:42 -0200)]
Gamecube controller support added successfully! N64 support is also
pseudo-enabled. Still lacking tests on N64 controller support though...

6 years agoGC/N64 joysticks driver is ready. Support for them is coming
bootsector [Fri, 9 Dec 2011 11:20:24 +0000 (09:20 -0200)]
GC/N64 joysticks driver is ready. Support for them is coming
soon...

6 years ago:. Turned pull-up resistor for NES/SNES joypad readings ON
bootsector [Mon, 21 Nov 2011 23:11:28 +0000 (21:11 -0200)]
:. Turned pull-up resistor for NES/SNES joypad readings ON
:. Genesis 2ms delay only for 6-button joysticks
:. Removed Arduino sketch folder (it can be easily converted from C
sources)

6 years agoChanged HOME button combo to START + SELECT for NES, SNES and PS2 pads.
bootsector [Sun, 20 Nov 2011 22:52:04 +0000 (20:52 -0200)]
Changed HOME button combo to START + SELECT for NES, SNES and PS2 pads.

6 years agoUpdated board files for WRA 2.0.
bootsector [Sun, 23 Oct 2011 22:09:03 +0000 (20:09 -0200)]
Updated board files for WRA 2.0.

6 years agoAdded joysticks extensions schematics for WRA 2.0
bootsector [Sun, 23 Oct 2011 16:58:17 +0000 (14:58 -0200)]
Added joysticks extensions schematics for WRA 2.0

6 years agoWRA 2.0! It will *probably* have an enclosure, but you will lose onboard
bootsector [Fri, 21 Oct 2011 11:05:08 +0000 (09:05 -0200)]
WRA 2.0! It will *probably* have an enclosure, but you will lose onboard
support for NES, SNES and PS2 pads. It will only have a DB9 connector
with native support for Sega Genesis (and compatibles) pads. Other pads
will be supported by an extension cable plugged in the DB9 connector.

6 years agoUpdated licensing information. v1.0
bootsector [Sun, 16 Oct 2011 20:14:53 +0000 (18:14 -0200)]
Updated licensing information.

6 years agoProper fix for Sega Genesis/Megadrive driver.
bootsector [Sat, 15 Oct 2011 02:49:10 +0000 (23:49 -0300)]
Proper fix for Sega Genesis/Megadrive driver.

6 years agoFixed Sega Genesis/Megadrive 3-button pad support.
bootsector [Sat, 15 Oct 2011 00:54:08 +0000 (21:54 -0300)]
Fixed Sega Genesis/Megadrive 3-button pad support.

6 years agoUpdated user manual.
bootsector [Fri, 14 Oct 2011 14:21:22 +0000 (11:21 -0300)]
Updated user manual.

6 years agoUser manual updated.
bootsector [Wed, 12 Oct 2011 10:52:31 +0000 (07:52 -0300)]
User manual updated.

6 years agoFixed WMCrypt class. Now it's based on Dolphin Emu code and it's
bootsector [Sat, 8 Oct 2011 01:03:35 +0000 (22:03 -0300)]
Fixed WMCrypt class. Now it's based on Dolphin Emu code and it's
properly generating wm_ft and wm_sb tables if encryption bytes are
zero.

6 years agoCleaned up Wiimote encryption related code.
bootsector [Thu, 6 Oct 2011 22:19:19 +0000 (19:19 -0300)]
Cleaned up Wiimote encryption related code.

6 years agoAdded a very simple manual for a very simple device.
bootsector [Thu, 6 Oct 2011 10:19:58 +0000 (07:19 -0300)]
Added a very simple manual for a very simple device.

6 years agoUpdated Arduino sketch with latest sources.
bootsector [Thu, 6 Oct 2011 02:06:11 +0000 (23:06 -0300)]
Updated Arduino sketch with latest sources.

6 years agoAdded support to Wiimote reporting modes that query more than 6 bytes
bootsector [Thu, 6 Oct 2011 01:52:56 +0000 (22:52 -0300)]
Added support to Wiimote reporting modes that query more than 6 bytes
from the extension controller. This makes Wii RetroPad adapter
compatible with WiimoteController app from C.C.P. Cre@ions for Android!
:)

6 years agoUpdated Arduino sketch with latest sources.
bootsector [Mon, 3 Oct 2011 00:38:18 +0000 (21:38 -0300)]
Updated Arduino sketch with latest sources.

6 years agoHardware changes:
bootsector [Sat, 1 Oct 2011 15:31:33 +0000 (12:31 -0300)]
Hardware changes:
- All board tracks now have width of 24 mil (0.024");
- NES connector pads larger and in hexagonal format;
- Generic connector changed to "6 pin KK" connector;
- Wiimote connector changed to "5 pin KK" connector;
- Mode labels changed to (1. NES / 2. DB9 / 3. EXT);
- Small changes on tracks;

6 years agoExternalized compile time settings to config.h file. Home button can now
bootsector [Fri, 30 Sep 2011 00:32:32 +0000 (21:32 -0300)]
Externalized compile time settings to config.h file. Home button can now
be triggered by pressing UP + START (Plus) in all joysticks.

6 years agoFixed SNES support.
bootsector [Thu, 29 Sep 2011 22:41:34 +0000 (19:41 -0300)]
Fixed SNES support.

6 years agoJoystick responsiveness seems slightly improved if not using buttons
bootsector [Tue, 27 Sep 2011 00:28:15 +0000 (21:28 -0300)]
Joystick responsiveness seems slightly improved if not using buttons
update callback. Leaving it deactivated by default.

6 years agoSupport to WMExtension's callback for buttons update is now optional at
bootsector [Mon, 26 Sep 2011 22:53:11 +0000 (19:53 -0300)]
Support to WMExtension's callback for buttons update is now optional at
compile time.

6 years agoSmall tweak in the set_button_data function.
bootsector [Mon, 26 Sep 2011 20:34:23 +0000 (17:34 -0300)]
Small tweak in the set_button_data function.

6 years agoLDFLAG -s was preventing it to compile under Linux. Corrected.
bootsector [Sun, 25 Sep 2011 22:23:00 +0000 (19:23 -0300)]
LDFLAG -s was preventing it to compile under Linux. Corrected.

6 years agoLinking optmization.
bootsector [Sun, 25 Sep 2011 17:05:42 +0000 (14:05 -0300)]
Linking optmization.

6 years agoUpdated arduinocore sources with actual arduino-22 sources.
bootsector [Sun, 25 Sep 2011 13:18:25 +0000 (10:18 -0300)]
Updated arduinocore sources with actual arduino-22 sources.

6 years agoUpdated Arduino sketch. Removed old binaries folder.
bootsector [Sun, 25 Sep 2011 12:45:27 +0000 (09:45 -0300)]
Updated Arduino sketch. Removed old binaries folder.