Skip to content

Commit

Permalink
Merge pull request #17 from R4g3D/main
Browse files Browse the repository at this point in the history
Extended Functionality
  • Loading branch information
EstebanFuentealba authored Sep 11, 2023
2 parents 6744eb6 + d7bcf88 commit 50b4da1
Show file tree
Hide file tree
Showing 36 changed files with 1,954 additions and 493 deletions.
115 changes: 95 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

## Introduction

This is a Pokemon exchange application from Flipper Zero to Game Boy [(Generación I)](https://bulbapedia.bulbagarden.net/wiki/Generation_I). Flipper Zero emulates a "Slave" Game Boy connected to a Game Link Cable to be able to exchange any Pokemon from the First Generation (Red, Blue, Yellow) to a real Game Boy.
This is a Pokemon exchange application from Flipper Zero to Game Boy [(Generaction I)](https://bulbapedia.bulbagarden.net/wiki/Generation_I). Flipper Zero emulates a "Slave" Game Boy connected to a Game Link Cable to be able to exchange any Pokemon from the First Generation (Red, Blue, Yellow) to a real Game Boy.

It is a Proof of Concept (POC) for using views, GPIO, and FURI (Flipper Universal Registry Implementation).
It currently trades a Pokemon based on your choice of Pokemon, Level, Stats and 4 Moves.

## Installation Directions

Expand Down Expand Up @@ -49,7 +49,7 @@ And use [**qFlipper**](https://flipperzero.one/update) to copy the generated **p
These instructions assume that you are starting at the Flipper Zero desktop. Otherwise, press the Back button until you are at the desktop.

- Press the `OK` button on the Flipper to open the main menu.
- Choose `Aplicaciones` from the menu.
- Choose `Applications` from the menu.
- Choose `Game Boy` from the submenu.
- Choose `Pokemon Trading`
- The Flipper Zero should show the selection of Pokemon that you want to trade, and by default, it appears as bulbasaur.
Expand All @@ -63,69 +63,145 @@ These instructions assume that you are starting at the Flipper Zero desktop. Oth
- Press the `LEFT`/`RIGHT` buttons to paginate the selection of Pokemon by 1.
- Press the `UP`/`DOWN` buttons to paginate the selection of Pokemon by 10.
- Press the `OK` button to select the Pokemon to trade.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-2.png" width="400" /><br />
</p>

- The Flipper Zero should show the selection of the Pokemon's level that you want to trade, and by default, it appears as level 1.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-3.png" width="400" />
<br />
</p>

- Press the `LEFT`/`RIGHT` buttons to paginate the selection of the Pokemon's level by 1.
- Press the `UP`/`DOWN` buttons to paginate the selection of the Pokemon's level by 10.
- Press the `OK` button to select the Pokemon's level to trade.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-4.png" width="400" />
<br />
</p>

- The Flipper Zero should show the selection for the Pokemon's moves that you want to trade, this will happen 4 times with default bing no move.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-5.png" width="400" />
<br />
</p>

- Press the `LEFT`/`RIGHT` buttons to paginate the selection of the Pokemon's current move selection by 1.
- Press the `UP`/`DOWN` buttons to paginate the selection of the Pokemon's current move selection by 10.
- Press the `OK` button to select the Pokemon's current move selection to trade.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-6.png" width="400" />
<br />
</p>

- The Flipper Zero should show the selection for the Pokemon's stats that you want to trade, and by default, it appears as random IV and zero EV.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-7.png" width="400" />
<br />
</p>

- Press the `RIGHT`/`UP` buttons to paginate the selection of the Pokemon's stats selection by 1 positively.
- Press the `LEFT`/`DOWN` buttons to paginate the selection of the Pokemon's stats selection by 1 negatively.
- Press the `OK` button to select the Pokemon's current move selection to trade.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-8.png" width="400" />
<br />
</p>

- The Flipper Zero will display the view to connect the Game Boy.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-3.png" width="400" /><br />
<img src="./docs/images/flipper-zero-flat-9.png" width="400" /><br />
</p>

- On your Game Boy, you should connect the **Game Link Cable** to the Game Boy and in the game, go to the nearest **Pokemon Center**.

<p align='center'>
<br />
<img src="./docs/images/game_boy_pokemon_center.png" width="400" /><br />
</p>

- Talk to the girl at the counter on the right. The girl will tell us that we have to save the game before playing, we will answer **YES** by pressing the **A** button.

.
<p align='center'>
<br />
<img src="./docs/images/game_boy_save.png" width="400" /><br />
</p>

- The Flipper Zero will show that we are connected.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-4.png" width="400" /><br />
<img src="./docs/images/flipper-zero-flat-10.png" width="400" /><br />
</p>

- On the Game Boy, we will be asked which option we want, and we select **TRADE CENTER**.

<p align='center'>
<br />
<img src="./docs/images/game_boy_save_trade.png" width="400" /><br />
</p>

- You will enter the Trade Center where you must press the A button on the Game Boy on your side of the table.

<p align='center'>
<br />
<img src="./docs/images/game_boy_trade_room_2.png" width="400" /><br />
</p>

- Flipper Zero will remain on a waiting screen with the Pokemon you selected.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-5.png" width="400" /><br />
<img src="./docs/images/flipper-zero-flat-10.png" width="400" /><br />
</p>

- You will see your Pokemon and the Pokemon you selected on the Flipper Zero, in this case, `Mew`. You must select the Pokemon you want to trade and press **TRADE**.

<p align='center'>
<br />
<img src="./docs/images/game_boy_trade_list_select_trade.png" width="400" /><br />
</p>

- You must confirm the selected trade by selecting **TRADE**.

<p align='center'>
<br />
<img src="./docs/images/game_boy_trade_list_select_trade_confirm.png" width="400" /><br />
</p>

- Flipper Zero will remain on a waiting screen with the Pokemon you selected.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-6.png" width="400" /><br />
<img src="./docs/images/flipper-zero-flat-11.png" width="400" /><br />
</p>

- Finally, the Pokemon exchange will start from **Flipper Zero** to the **Game Boy**.

<p align='center'>
<br />
<img src="./docs/images/flipper-zero-flat-7.png" width="400" /><br />
<img src="./docs/images/flipper-zero-flat-12.png" width="400" /><br />
</p>

If the Flipper Zero gets stuck at the end of the exchange, you must reboot it by pressing the <img src="./docs/images/left.png" /> LEFT + <img src="./docs/images/back.png" /> BACK key combination.

<p align='center'>
<br />
<img src="./docs/images/reboot.png" width="400" /><br />
Expand Down Expand Up @@ -226,13 +302,18 @@ For each image, the color `#aaa` was transformed to `#fff` so that Flipper Zero
- Game Boy Advance (GBA)

## Implemented by
<a href="https://github.com/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/issues?q=is%3Aissue+label%3AImplemented+is%3Aclosed+is%3Aopen+" target="_blank"><img src="./docs/images/implemented.svg" /></a>
<a href="https://github.com/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/">EstebanFuentealba</a><br />
<a href="https://github.com/R4g3D/Flipper-Zero-Game-Boy-Pokemon-Trading/">R4g3D</a>

## TODO
- [ ] Refactor the code
- [x] The OK button stops working when exiting the app, so it needs to be restarted 🤔
- [ ] Set each Pokemon's characteristics, attacks, and default levels
- [ ] Improve animations
- [x] Change the default traded Pokemon's naming to be no nickname
- [x] Add view to allow the traded Pokemon's level to be chosen between 3 and 100
- [x] Add view to allow the traded Pokemon's hidden stats to be chosen (IV and EV) from some options
- [x] Add view to allow the traded Pokemon's moveset to be chosen (all 4 moves) allowing no move as an option
- [ ] Debug traded Pokemon level issue where after a battle the Pokemon's level drops (doesn't affect all traded Pokemon)
- [x] Add images for the level selection screen, stats selection screen, and move selection screens as per the original README
- [ ] Optimise the level selection screen to be a number slider input instead of the current slideshow style selector
- [ ] Add a view to allow for a custom Pokemon nickname (11 chars, 10 chars max used, fill and terminate with TERM_)

## Links

Expand All @@ -244,9 +325,3 @@ For each image, the color `#aaa` was transformed to `#fff` so that Flipper Zero
- [Disassembly of Pokemon Yellow](https://github.com/pret/pokeyellow)
- [Arduino-Spoofing-Gameboy-Pokemon-Trades](https://github.com/EstebanFuentealba/Arduino-Spoofing-Gameboy-Pokemon-Trades)
- [🎮 Gameboy link cable breakout PCB](https://github.com/Palmr/gb-link-cable)

<p align='center'>
<br />
<br />
From Talcahuano 🇨🇱 with ❤
</p>
38 changes: 0 additions & 38 deletions README_catalog.md

This file was deleted.

Loading

0 comments on commit 50b4da1

Please sign in to comment.