Code Monkey home page Code Monkey logo

swancolorhd's Introduction

swancolorHD

An open-source WonderSwan Color consolizer.

This project is in a somewhat usable stage right now. Additionally, it needs the video core from sameer, to be found here.

About

This project is an open-source consolizer for the WonderSwan Color handheld, based on a Tang Nano 9k FPGA board (which has a GW1NR-LV9QN88P FPGA on it).

PCB

drawing

PCB BOM

Reference Part Link
FPC1 FFC connector with 24 pins, 0.5mm pitch, bottom contacts LCSC
U1 Arduino Nano AliExpress
U2 Tang Nano 9k AliExpress
U3 TPS62221DDCR LCSC
USB1 Micro USB connector LCSC
JOY1 SNES controller connector 90° AliExpress
C1 4.7 uF capacitor (1206) LCSC
C2 10 uF capacitor (1206) LCSC
L2 10 uH inductivity (1206) LCSC
Q1 - Q12 N-channel MOSFET 2N7002 (SOT-23) LCSC

PCB Wiring Diagram

Check the wiring diagram from WSC motherboard to PCB in the assets folder for full zoom. drawing

Connections on the WSC backside:

WSC Motherboard Consolizer PCB
Battery + 1V5
Battery - GND

Display Connector

Use a 24 pin same-side (also known as "type A") flex cable with 0.5 mm pitch to connect the display FFC connector of the WSC motherboard to the PCB FFC connector.

Manual Wiring (without PCB)

The display signals can be easily wired to the FPGA board by using an FFC breakout board and an FFC cable. The required FFC is 24 pins with 0.5 mm pitch.

WSC display pin Tang Nano 9k pin
19 GND
22 86
21 85
23 84
18 83
14 82
15 81
16 80
17 79
10 25
11 26
12 27
13 28
6 29
7 30
8 33
9 34

Controller

The swancolorHD uses a SNES controller. Any regular SNES controller should work.

You can also turn an empty WonderSwan Color into a controller using the swantroller project. This turns the WSC shell into a controller with a SNES plug. Note, that the current version is only to be used with the WSC consolizer, not a regular SNES console. The reason for this is that the swantroller uses a different button layout as a SNES controller. swantroller

SNES Controller Mapping

The controller mapping differs for landscape and portrait mode.

Landscape Mode

By default, the SNES DPAD is mapped to the X buttons of the WonderSwan. The controller's B & Y buttons are mapped to the WonderSwan's B button, A & Y are mapped to A. Start is mapped to Start.

To control the WS Y buttons, use the L or R shoulder buttons. When holding L, the SNES DPAD is mapped to the WS Y buttons. When holding R, A/B/X/Y are mapped to Y2/Y3/Y1/Y4.

For the few games, which require to hold X & Y & A/B buttons at the same time, an alternative input mode is existing. In this alternative input mode, the Y buttons are mapped to the DPAD, the X buttons are mapped to A/B/X/Y. The WS B button is mapped to the SNES L button and the WS A button is mapped to the SNES R button. To enter or exit this alternative input mode, press L + R + START + DPAD DOWN.

SNES Button WS Button (no shoulder button held) WS Button (holding L) WS Button (holding R ) WS Button (alternative input mode)
UP X1 Y1 X1 Y1
DOWN X3 Y3 X3 Y3
LEFT X4 Y4 X4 Y4
RIGHT X2 Y2 X2 Y2
A A A Y2 X2
B B B Y3 X3
X A A Y1 X1
Y B B Y4 X4
L - - - B
R - - - A
START START START START START

Portrait Mode

The SNES DPAD is mapped to the Y buttons of the WonderSwan (rotated accordingly). Y is mapped to X1, X is mappped to X2, A is mapped to X3 and B is mapped to X4. Start is mapped to Start.

Switching from Landscape Mode to Portrait Mode

In order to switch from landscape to portrait mode (or vice versa), just press the "Select" button on the SNES gamepad.

Switching from Landscape Mode to Portrait Mode without Video Rotation

If you want to use the video out with a properly rotated display for portrait mode games (so actually rotate the display itself), you want to have the portrait mode gamepad mapping but without the video being rotated from the consolizer. For this, you can activate (and deactivate) portrait mode controller mapping without video rotation via the button combination: L + R + START + DPAD UP.

Disclaimer

Use the files and/or schematics to build your own board at your own risk. This board works fine for me, but it's a simple hobby project, so there is no liability for errors in the schematics and/or board files. Use at your own risk.

swancolorhd's People

Contributors

zwenergy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.