Sunday, 23 October 2016

JammaCon Controller Button Mappings



NES

Switch on adapter must be set to 'NES'


Jamma

NES Controller

Up

D-Pad Up

Down

D-Pad Down

Left

D-Pad Left

Right

D-Pad Right

Button 1

A

Button 2

B

Start

Start

Coin-Up

Select

Button 1 + Start

Select





SNES

Switch on adapter must be set to 'SNES'


Jamma

SNES Controller

Up

D-Pad Up

Down

D-Pad Down

Left

D-Pad Left

Right

D-Pad Right

Button 1

A

Button 2

B

Button 3

X

Button 4

Y

Button 5

L

Button 6

R

Start

Start

Coin-Up

Select

Button 1 + Start

Select





Saturn

Jamma

Saturn Controller

Up

D-Pad Up

Down

D-Pad Down

Left

D-Pad Left

Right

D-Pad Right

Button 1

A

Button 2

B

Button 3

C

Button 4

X

Button 5

Y

Button 6

Z

Button 7

L

Button 8

R

Start

Start





Megadrive (Genesis)

Jamma

Saturn Controller

Up

D-Pad Up

Down

D-Pad Down

Left

D-Pad Left

Right

D-Pad Right

Button 1

A

Button 2

B

Button 3

C

Button 4

X

Button 5

Y

Button 6

Z

Start

Start





Master System

Jamma

Master System Controller

Up

D-Pad Up

Down

D-Pad Down

Left

D-Pad Left

Right

D-Pad Right

Button 1

I

Button 2

II





PC-Engine

Jamma

PC-Engine Controller

Up

D-Pad Up

Down

D-Pad Down

Left

D-Pad Left

Right

D-Pad Right

Button 1

I

Button 2

II

Button 3

Select

Start

Run





Playstation 1 & 2 

The Playstation adapter works in one of two modes - Analog or Digital. The switch on the adapter sets the operating mode  -  "A" or "D" for either Analog or Digital. 


Most Playstation 1 games require the controller to be in Digtial mode. Whereas most Playstation 2 games will work in either mode but some will required Analog mode to be set. If unsure about any game, start it up with an analog (Dual Shock) controller plugged in and if the LED switches on then it needs Analog mode. 


It is necessary to power cycle the adapter to change modes - i.e unplug both cables from the Playstation console or power cycle the console. Or press the 'Reset' button on the adapter if present. 


By default the Jamma joystick is mapped to the D-Pad of the controller, it can be mapped to the Left Stick of the controller by pressing Jamma Start and Joystick Left. The joystick can also be mapped to the Right analog stick of the controller by pressing Jamma Start and Joystick Right and returned to the default mapping of the D-Pad by pressing Jamma Start and Joystick Up.



Jamma

Playstation Controller

Up

Up (D-Pad, Left Stick, Right Stick)

Down

Down (D-Pad, Left Stick, Right Stick)

Left

Left (D-Pad, Left Stick, Right Stick)

Right

Right (D-Pad, Left Stick, Right Stick)

Button 1

X

Button 2

O

Button 3

[]

Button 4

^

Button 5

L1

Button 6

R1

Button 7

L2

Button 8

R2

Start

Start

Coin-Up

Select

Button 1 + Start

Select

Joystick Left + Start

Map ←↑↓→ to Left Analog Stick

Joystick Right + Start

Map ←↑↓→ to Right Analog Stick

Joystick Up + Start

Map ←↑↓→ to D-Pad






Playstation 3

Joystick mapped to Left Analog stick by default.

Jamma

Playstation 3 Controller

Up

Up (D-Pad, Left Stick, Right Stick)

Down

Down (D-Pad, Left Stick, Right Stick)

Left

Left (D-Pad, Left Stick, Right Stick)

Right

Right (D-Pad, Left Stick, Right Stick)

Button 1

X

Button 2

O

Button 3

[]

Button 4

^

Button 5

L1

Button 6

R1

Button 7

L2

Button 8

R2

Start

Start

Coin-Up

Select

Joystick Left + Start

Map ←↑↓→ to Left Analog Stick

Joystick Right + Start

Map ←↑↓→ to Right Analog Stick

Joystick Up + Start

Map ←↑↓→ to D-Pad

Start + Coin-Up

PS Home

Start + Button 1

L3

Start + Button 2

R3

Start + Button 3

L2

Start + Button 4

R3







XBOX (Original)

Joystick mapped to Left Analog stick by default.

Jamma

XBOX Controller

Up

Up (D-Pad, Left Stick, Right Stick)

Down

Down (D-Pad, Left Stick, Right Stick)

Left

Left (D-Pad, Left Stick, Right Stick)

Right

Right (D-Pad, Left Stick, Right Stick)

Button 1

A

Button 2

B

Button 3

X

Button 4

Y

Button 5

L

Button 6

R

Button 7

White

Button 8

Black

Start

Start

Coin-Up

Select

Joystick Left + Start

Map ←↑↓→ to Left Analog Stick

Joystick Right + Start

Map ←↑↓→ to Right Analog Stick

Joystick Up + Start

Map ←↑↓→ to D-Pad

Start + Button 1

White

Start + Button 2

Black

Start + Button 3

Left Thumb

Start + Button 4

Right Thumb







Nintendo 64

Joystick mapped to D-Pad by default.

Jamma

N64 Controller

Up

Up (D-Pad, Left Stick)

Down

Down (D-Pad, Left Stick)

Left

Left (D-Pad, Left Stick)

Right

Right (D-Pad, Left Stick)

Button 1

A

Button 2

B

Button 3

L

Button 4

R

Button 5

Z

Start

Start

Joystick Left + Start

Map ←↑↓→ to Left Analog Stick

Joystick Up + Start

Map ←↑↓→ to D-Pad

Button 6 + Button 1

C Up

Button 6 + Button 2

C Down

Button 6 + Button 3

C Left

Button 6 + Button 4

C Right





Gamecube

Joystick mapped to D-Pad by default.

Jamma

Gamecube Controller

Up

Up (D-Pad, Left Stick, Right Stick)

Down

Down (D-Pad, Left Stick, Right Stick)

Left

Left (D-Pad, Left Stick, Right Stick)

Right

Right (D-Pad, Left Stick, Right Stick)

Mapping 1


Button 1

A

Button 2

B

Button 3

X

Button 4

Y

Button 5

Z

Button 6

L

Button 7

R

Mapping 2


Button 1

A

Button 2

B

Button 3

L

Button 4

R

Button 5

Z

Button 6

X

Button 7

Y

Mapping 3


Button 1

A

Button 2

B

Button 3

X

Button 4

Y

Button 5

L

Button 6

R

Button 7

Z

Joystick Left + Start

Map ←↑↓→ to Left Analog Stick

Joystick Right + Start

Map ←↑↓→ to C Stick

Joystick Up + Start

Map ←↑↓→ to D-Pad

Button 1 + Start

Select button mapping 1

Button 2 + Start

Select button mapping 2

Button 3 + Start

Select button mapping 3








* Buttons 7 & 8 only available on Version 2.X adapters

Sunday, 21 August 2016

JammaCon Update






Completed the Playstation adapter for the JammaCon a while ago and came across various controller converters for Playstation to Xbox etc so decided to try out a few with the JammaCon setup.
The only problem is finding games suitable to play with a single joystick and on screen text can be difficult to read due to the small size of it - games aren't optimised to run at these low resolutions.

The converters I used were 'Ostent 3 in 1 Converter Adapter Cable' for XBOX, USB & Gamecube and a 'Universal Adapter for XBOX360'
Playstation 2 in action



XBOX

No real problems with this one. Setup is very straightforward and AV quality is very good using a standard XBOX Scart cable.

XBOX with modified dashboard


Metal Slug 4 - XBOX version not arcade


XBOX 360

Needs a XBOX 360 specific Scart cable for this. The buttons worked straightaway but getting the directional controls to work took a few attempts with various combinations of the plugging in it sequence.

XBOX 360 Dashboard


Playstation 3

Using a Playstation 2 AV Scart cable for this, the Display settings must be reset/reconfigured before it will work though.

Playstation 3 - Ducktails








Neogeo MV-1FZ Repair

Picked up a NeoGeo MVS with 'Backup Memory' error on boot. It was a solid fault returning a read/write mismatch on the same address every time -  0x00D00010 0xB255 and this is the first address in the backup memory region.

First step was to replace the rechargeable battery and inspect for and damage caused by battery leakage. In this case no damage was found so the root cause of the backup memory error elsewhere.

Probing around indicated a defective 74HC32 which is part of the decoding logic for the backup memory. 

Decided to use Chipquik to remove the device rather than hot air - Chipquik is a low melting point alloy that says molten for several seconds allowing you to remove smd devices easily.


New battery and holder fitted
The original 74HC32 came off the board easily and no damage to the PCB as the temperature required to remove it was low. 

Original chip removed and pads cleaned
The replacement part was slightly narrower that the original package size but fitted ok. Board booted up perfectly afterwards with no more memory errors.






Sunday, 26 June 2016

Retron Pi

Or things to do with a dead Retron 5..


The Retron 5 is basically a SOC running a emulators that dump the ROM image from the inserted cartridge rather than otherwise acquired ROMs.

And I've a dead one (apparently these are not the most reliable devices), so replacing the SOC with a Raspberry Pi 2 seems like a fair swap as both are Linux based ARM boards running emulators.

I wanted to fully integrate the Pi if possible so that meant getting the controller ports & front panel LEDs working.

First step was to gut the original console, had to remove some of the internal plastic in order to fit the Pi. Once the Pi was in place it was a case of routing the HDMI and USB extension cables to the rear panel and securing in place.

At this point we have a bootable Pi running the RetroPie distribution fitted, but powered from the Pi's micro USB connector.

I made up a board to handle powering on and off the Pi. Its based on an Atmel ATtiny85 microcontroller, its input is the front panel power switch and has outputs to drive the power LED, a relay to switch the Pi power on (or off) and also has an output to drive one of the GPIOs on the Pi to instruct the Pi to shutdown - the Pi is running a daemon monitoring that GPIO and the ATTiny gives it a 10 second countdown before killing the power.


Rear panel of Retron (with accidentally inverted USB port)


So now we can boot and shutdown the Pi from the front panel switch. Next job is getting the controller ports to work. 
For these I used an ATMega8 microcontroller to interface the controller ports and the Pi by having the microcontroller behave as a USB joystick - one for each player.

These particular microcontrollers don't have any USB capability built-in but using the V-USB library its possible to bit bang USB over a pair of IO pins, making it perfect for low speed HID devices like joysticks. The firmware reads the 3 controller ports before building the USB report so all of the controller ports are usable.

The picture below shows how everything is laid out, Pi in the middle, the ATMega8's are the top & bottom near the controller ports and the ATtiny board is tucked away in the upper right. Ribbon cable hooked up to the Pi GPIO is connected to the front panel LEDs.




Fitted the cartridge pcb again, as it adds a bit of weight and rigidity to the console, also has the power switch and LED mounted on it.



Made a tweak to the emulator start up scripts to light a different LED for each emulator running, not crucial but finishes the whole thing off nicely.


SNES emulator


NES Emulator

So that's the basic setup done :)

Wednesday, 18 November 2015

JammaCon

This is a project I started a long time ago and just recently go around to completing the majority of it. It basically is an interface to lets you easily hook up a game console to a Jamma compatible cabinet.

Consists of two pieces:
  1. JammaCon board
  2. Console specific daughter boards
The main JammaCon board which hooks up to the cabinet and the consoles SCART output, this handles the audio/video amplification and getting the controls connected up. The video is processed using a TLS1233n preamp and LM1881 sync stripper, the audio amp is a simple LM384 amplifier.
The controls for both players -  joystick/coin/start and buttons 1-4 are picked up at the Jamma edge, buttons 4-6 can also be hooked up to the terminal blocks if needed. To make life a bit easier I put together a simple CPS1/CPS2 kickharness adapter to avoid having to splice looms.


The second piece are the interchangeable daughter boards,which simulate the controllers for the various consoles. These are built using (where possible) the same logic as the original controllers for maximum compatibility.

Picking which consoles to make daughter boards for was a no-brainer for the 8 bit & 16 bit generations - all of them if possible !! Most of the controllers of that era used simple serialisers or muxes and are easy to simulate, so any console capable of RGB output should be supported.

Of the 32 bit era, the Sega Saturn has native RGB out and a decent selection of games available which would work well in an arcade cabinet. The Amiga CD32 is also a good candidate as it can be RGB modded relatively easily. But will be while before the 3DO or CDi ever gets an adapter made I imagine !!

Later console generations that largely depend on analogue controls are a poor fit when it comes to mapping them to a single 8 way digital joystick. Exception to this would be the Playstation(s) owing to the decent amount of games available that don't require the analogue controls.

So far I've got daughter boards completed for:
  • SNES & NES
  • Megadrive & Master System
  • PC-Engine
  • Sega Saturn
  • Playstation & Playstation 2
Have working prototypes for Amiga CD32.

Also plan on a simple board to fan out the controls to terminal blocks for anyone looking to build 'padhacks' for consoles I'm not developing daughter boards for.


JammaCon without controller adapter fitted


Full selection of boards available so far


Video of the boards in action..