瀏覽代碼

Second remote

Willy-JL 1 年之前
父節點
當前提交
e702df53f9
共有 100 個文件被更改,包括 0 次插入1158 次删除
  1. 0 191
      pokemon_trading/.clang-format
  2. 二進制
      pokemon_trading/.flipcorg/banner.png
  3. 二進制
      pokemon_trading/.flipcorg/gallery/1.png
  4. 二進制
      pokemon_trading/.flipcorg/gallery/2.png
  5. 二進制
      pokemon_trading/.flipcorg/gallery/3.png
  6. 二進制
      pokemon_trading/.flipcorg/gallery/4.png
  7. 二進制
      pokemon_trading/.flipcorg/gallery/5.png
  8. 二進制
      pokemon_trading/.flipcorg/gallery/6.png
  9. 0 13
      pokemon_trading/.github/FUNDING.yml
  10. 0 45
      pokemon_trading/.github/ISSUE_TEMPLATE/01_bug_report.yml
  11. 0 21
      pokemon_trading/.github/ISSUE_TEMPLATE/02_implemented.yml
  12. 0 35
      pokemon_trading/.github/workflows/flipperZeroAction.yml
  13. 0 2
      pokemon_trading/.gitignore
  14. 0 1
      pokemon_trading/.gitsubtree
  15. 0 21
      pokemon_trading/LICENSE
  16. 0 392
      pokemon_trading/README.md
  17. 0 41
      pokemon_trading/README_catalog.md
  18. 0 328
      pokemon_trading/README_es.md
  19. 0 47
      pokemon_trading/TODO.md
  20. 0 21
      pokemon_trading/application.fam
  21. 二進制
      pokemon_trading/assets/Background.png
  22. 二進制
      pokemon_trading/assets/Background_128x11.png
  23. 二進制
      pokemon_trading/assets/Button_18x18.png
  24. 二進制
      pokemon_trading/assets/Connect_me_62x31.png
  25. 二進制
      pokemon_trading/assets/Connected_62x31.png
  26. 二進制
      pokemon_trading/assets/Space_100x18.png
  27. 二進制
      pokemon_trading/assets/Space_65x18.png
  28. 二進制
      pokemon_trading/assets/Space_80x18.png
  29. 二進制
      pokemon_trading/assets/Space_95x18.png
  30. 二進制
      pokemon_trading/assets/abra.png
  31. 二進制
      pokemon_trading/assets/aerodactyl.png
  32. 二進制
      pokemon_trading/assets/alakazam.png
  33. 二進制
      pokemon_trading/assets/arbok.png
  34. 二進制
      pokemon_trading/assets/arcanine.png
  35. 二進制
      pokemon_trading/assets/articuno.png
  36. 二進制
      pokemon_trading/assets/beedrill.png
  37. 二進制
      pokemon_trading/assets/bellsprout.png
  38. 二進制
      pokemon_trading/assets/blastoise.png
  39. 二進制
      pokemon_trading/assets/bulbasaur.png
  40. 二進制
      pokemon_trading/assets/butterfree.png
  41. 二進制
      pokemon_trading/assets/caterpie.png
  42. 二進制
      pokemon_trading/assets/chansey.png
  43. 二進制
      pokemon_trading/assets/charizard.png
  44. 二進制
      pokemon_trading/assets/charmander.png
  45. 二進制
      pokemon_trading/assets/charmeleon.png
  46. 二進制
      pokemon_trading/assets/clefable.png
  47. 二進制
      pokemon_trading/assets/clefairy.png
  48. 二進制
      pokemon_trading/assets/cloyster.png
  49. 二進制
      pokemon_trading/assets/cubone.png
  50. 二進制
      pokemon_trading/assets/dewgong.png
  51. 二進制
      pokemon_trading/assets/diglett.png
  52. 二進制
      pokemon_trading/assets/ditto.png
  53. 二進制
      pokemon_trading/assets/dodrio.png
  54. 二進制
      pokemon_trading/assets/doduo.png
  55. 二進制
      pokemon_trading/assets/dragonair.png
  56. 二進制
      pokemon_trading/assets/dragonite.png
  57. 二進制
      pokemon_trading/assets/dratini.png
  58. 二進制
      pokemon_trading/assets/drowzee.png
  59. 二進制
      pokemon_trading/assets/dugtrio.png
  60. 二進制
      pokemon_trading/assets/eevee.png
  61. 二進制
      pokemon_trading/assets/ekans.png
  62. 二進制
      pokemon_trading/assets/electabuzz.png
  63. 二進制
      pokemon_trading/assets/electrode.png
  64. 二進制
      pokemon_trading/assets/exeggcute.png
  65. 二進制
      pokemon_trading/assets/exeggutor.png
  66. 二進制
      pokemon_trading/assets/farfetchd.png
  67. 二進制
      pokemon_trading/assets/fearow.png
  68. 二進制
      pokemon_trading/assets/flareon.png
  69. 二進制
      pokemon_trading/assets/fossilaerodactyl.png
  70. 二進制
      pokemon_trading/assets/fossilkabutops.png
  71. 二進制
      pokemon_trading/assets/game_boy.png
  72. 二進制
      pokemon_trading/assets/gastly.png
  73. 二進制
      pokemon_trading/assets/gb_step_1.png
  74. 二進制
      pokemon_trading/assets/gb_step_2.png
  75. 二進制
      pokemon_trading/assets/gengar.png
  76. 二進制
      pokemon_trading/assets/geodude.png
  77. 二進制
      pokemon_trading/assets/gloom.png
  78. 二進制
      pokemon_trading/assets/golbat.png
  79. 二進制
      pokemon_trading/assets/goldeen.png
  80. 二進制
      pokemon_trading/assets/golduck.png
  81. 二進制
      pokemon_trading/assets/golem.png
  82. 二進制
      pokemon_trading/assets/graveler.png
  83. 二進制
      pokemon_trading/assets/grimer.png
  84. 二進制
      pokemon_trading/assets/growlithe.png
  85. 二進制
      pokemon_trading/assets/gyarados.png
  86. 二進制
      pokemon_trading/assets/haunter.png
  87. 二進制
      pokemon_trading/assets/hitmonchan.png
  88. 二進制
      pokemon_trading/assets/hitmonlee.png
  89. 二進制
      pokemon_trading/assets/horsea.png
  90. 二進制
      pokemon_trading/assets/hypno.png
  91. 二進制
      pokemon_trading/assets/ivysaur.png
  92. 二進制
      pokemon_trading/assets/jigglypuff.png
  93. 二進制
      pokemon_trading/assets/jolteon.png
  94. 二進制
      pokemon_trading/assets/jynx.png
  95. 二進制
      pokemon_trading/assets/kabuto.png
  96. 二進制
      pokemon_trading/assets/kabutops.png
  97. 二進制
      pokemon_trading/assets/kadabra.png
  98. 二進制
      pokemon_trading/assets/kakuna.png
  99. 二進制
      pokemon_trading/assets/kangaskhan.png
  100. 二進制
      pokemon_trading/assets/kingler.png

+ 0 - 191
pokemon_trading/.clang-format

@@ -1,191 +0,0 @@
----
-Language:        Cpp
-AccessModifierOffset: -4
-AlignAfterOpenBracket: AlwaysBreak
-AlignArrayOfStructures: None
-AlignConsecutiveMacros: None
-AlignConsecutiveAssignments: None
-AlignConsecutiveBitFields: None
-AlignConsecutiveDeclarations: None
-AlignEscapedNewlines: Left
-AlignOperands:   Align
-AlignTrailingComments: false
-AllowAllArgumentsOnNextLine: true
-AllowAllParametersOfDeclarationOnNextLine: false
-AllowShortEnumsOnASingleLine: true
-AllowShortBlocksOnASingleLine: Never
-AllowShortCaseLabelsOnASingleLine: false
-AllowShortFunctionsOnASingleLine: None
-AllowShortLambdasOnASingleLine: All
-AllowShortIfStatementsOnASingleLine: WithoutElse
-AllowShortLoopsOnASingleLine: true
-AlwaysBreakAfterDefinitionReturnType: None
-AlwaysBreakAfterReturnType: None
-AlwaysBreakBeforeMultilineStrings: false
-AlwaysBreakTemplateDeclarations: Yes
-AttributeMacros:
-  - __capability
-BinPackArguments: false
-BinPackParameters: false
-BraceWrapping:
-  AfterCaseLabel:  false
-  AfterClass:      false
-  AfterControlStatement: Never
-  AfterEnum:       false
-  AfterFunction:   false
-  AfterNamespace:  false
-  AfterObjCDeclaration: false
-  AfterStruct:     false
-  AfterUnion:      false
-  AfterExternBlock: false
-  BeforeCatch:     false
-  BeforeElse:      false
-  BeforeLambdaBody: false
-  BeforeWhile:     false
-  IndentBraces:    false
-  SplitEmptyFunction: true
-  SplitEmptyRecord: true
-  SplitEmptyNamespace: true
-BreakBeforeBinaryOperators: None
-BreakBeforeConceptDeclarations: true
-BreakBeforeBraces: Attach
-BreakBeforeInheritanceComma: false
-BreakInheritanceList: BeforeColon
-BreakBeforeTernaryOperators: false
-BreakConstructorInitializersBeforeComma: false
-BreakConstructorInitializers: BeforeComma
-BreakAfterJavaFieldAnnotations: false
-BreakStringLiterals: false
-ColumnLimit:     99
-CommentPragmas:  '^ IWYU pragma:'
-QualifierAlignment: Leave
-CompactNamespaces: false
-ConstructorInitializerIndentWidth: 4
-ContinuationIndentWidth: 4
-Cpp11BracedListStyle: true
-DeriveLineEnding: true
-DerivePointerAlignment: false
-DisableFormat:   false
-EmptyLineAfterAccessModifier: Never
-EmptyLineBeforeAccessModifier: LogicalBlock
-ExperimentalAutoDetectBinPacking: false
-PackConstructorInitializers: BinPack
-BasedOnStyle:    ''
-ConstructorInitializerAllOnOneLineOrOnePerLine: false
-AllowAllConstructorInitializersOnNextLine: true
-FixNamespaceComments: false
-ForEachMacros:
-  - foreach
-  - Q_FOREACH
-  - BOOST_FOREACH
-IfMacros:
-  - KJ_IF_MAYBE
-IncludeBlocks:   Preserve
-IncludeCategories:
-  - Regex:           '.*'
-    Priority:        1
-    SortPriority:    0
-    CaseSensitive:   false
-  - Regex:           '^(<|"(gtest|gmock|isl|json)/)'
-    Priority:        3
-    SortPriority:    0
-    CaseSensitive:   false
-  - Regex:           '.*'
-    Priority:        1
-    SortPriority:    0
-    CaseSensitive:   false
-IncludeIsMainRegex: '(Test)?$'
-IncludeIsMainSourceRegex: ''
-IndentAccessModifiers: false
-IndentCaseLabels: false
-IndentCaseBlocks: false
-IndentGotoLabels: true
-IndentPPDirectives: None
-IndentExternBlock: AfterExternBlock
-IndentRequires:  false
-IndentWidth:     4
-IndentWrappedFunctionNames: true
-InsertTrailingCommas: None
-JavaScriptQuotes: Leave
-JavaScriptWrapImports: true
-KeepEmptyLinesAtTheStartOfBlocks: false
-LambdaBodyIndentation: Signature
-MacroBlockBegin: ''
-MacroBlockEnd:   ''
-MaxEmptyLinesToKeep: 1
-NamespaceIndentation: None
-ObjCBinPackProtocolList: Auto
-ObjCBlockIndentWidth: 4
-ObjCBreakBeforeNestedBlockParam: true
-ObjCSpaceAfterProperty: true
-ObjCSpaceBeforeProtocolList: true
-PenaltyBreakAssignment: 10
-PenaltyBreakBeforeFirstCallParameter: 30
-PenaltyBreakComment: 10
-PenaltyBreakFirstLessLess: 0
-PenaltyBreakOpenParenthesis: 0
-PenaltyBreakString: 10
-PenaltyBreakTemplateDeclaration: 10
-PenaltyExcessCharacter: 100
-PenaltyReturnTypeOnItsOwnLine: 60
-PenaltyIndentedWhitespace: 0
-PointerAlignment: Left
-PPIndentWidth:   -1
-ReferenceAlignment: Pointer
-ReflowComments:  false
-RemoveBracesLLVM: false
-SeparateDefinitionBlocks: Leave
-ShortNamespaceLines: 1
-SortIncludes:    Never
-SortJavaStaticImport: Before
-SortUsingDeclarations: false
-SpaceAfterCStyleCast: false
-SpaceAfterLogicalNot: false
-SpaceAfterTemplateKeyword: true
-SpaceBeforeAssignmentOperators: true
-SpaceBeforeCaseColon: false
-SpaceBeforeCpp11BracedList: false
-SpaceBeforeCtorInitializerColon: true
-SpaceBeforeInheritanceColon: true
-SpaceBeforeParens: Never
-SpaceBeforeParensOptions:
-  AfterControlStatements: false
-  AfterForeachMacros: false
-  AfterFunctionDefinitionName: false
-  AfterFunctionDeclarationName: false
-  AfterIfMacros:   false
-  AfterOverloadedOperator: false
-  BeforeNonEmptyParentheses: false
-SpaceAroundPointerQualifiers: Default
-SpaceBeforeRangeBasedForLoopColon: true
-SpaceInEmptyBlock: false
-SpaceInEmptyParentheses: false
-SpacesBeforeTrailingComments: 1
-SpacesInAngles:  Never
-SpacesInConditionalStatement: false
-SpacesInContainerLiterals: false
-SpacesInCStyleCastParentheses: false
-SpacesInLineCommentPrefix:
-  Minimum:         1
-  Maximum:         -1
-SpacesInParentheses: false
-SpacesInSquareBrackets: false
-SpaceBeforeSquareBrackets: false
-BitFieldColonSpacing: Both
-Standard:        c++03
-StatementAttributeLikeMacros:
-  - Q_EMIT
-StatementMacros:
-  - Q_UNUSED
-  - QT_REQUIRE_VERSION
-TabWidth:        4
-UseCRLF:         false
-UseTab:          Never
-WhitespaceSensitiveMacros:
-  - STRINGIZE
-  - PP_STRINGIZE
-  - BOOST_PP_STRINGIZE
-  - NS_SWIFT_NAME
-  - CF_SWIFT_NAME
-...
-

二進制
pokemon_trading/.flipcorg/banner.png


二進制
pokemon_trading/.flipcorg/gallery/1.png


二進制
pokemon_trading/.flipcorg/gallery/2.png


二進制
pokemon_trading/.flipcorg/gallery/3.png


二進制
pokemon_trading/.flipcorg/gallery/4.png


二進制
pokemon_trading/.flipcorg/gallery/5.png


二進制
pokemon_trading/.flipcorg/gallery/6.png


+ 0 - 13
pokemon_trading/.github/FUNDING.yml

@@ -1,13 +0,0 @@
-# These are supported funding model platforms
-
-github: EstebanFuentealba # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
-patreon: #
-open_collective: # Replace with a single Open Collective username
-ko_fi: # Replace with a single Ko-fi username
-tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
-community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-otechie: # Replace with a single Otechie username
-lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
-custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

+ 0 - 45
pokemon_trading/.github/ISSUE_TEMPLATE/01_bug_report.yml

@@ -1,45 +0,0 @@
-name: Bug report
-description: File a bug reports regarding the app.
-labels: ["bug"]
-body:
-  - type: markdown
-    attributes:
-      value: |
-        Thank you for taking the time to fill out an issue, this template is meant for any issues related to application.
-  - type: textarea
-    id: description
-    attributes:
-      label: Describe the bug.
-      description: "A clear and concise description of what the bug is."
-    validations:
-      required: true
-  - type: textarea
-    id: repro
-    attributes:
-      label: Reproduction
-      description: "How can this bug be reproduced?"
-      placeholder: |
-        1. Switch on...
-        2. Press button '....'
-        3. Wait for the moon phase
-        4. It burns
-    validations:
-      required: true
-  - type: input
-    id: target
-    attributes:
-      label: Target Framework
-      description: Specify the target
-      # Target seems to be largely ignored by outside sources.
-  - type: textarea
-    id: logs
-    attributes:
-      label: Logs
-      description: Attach your debug logs here
-      render: Text
-      # Avoid rendering as Markdown here.
-  - type: textarea
-    id: anything-else
-    attributes:
-      label: Anything else?
-      description: Let us know if you have anything else to share.

+ 0 - 21
pokemon_trading/.github/ISSUE_TEMPLATE/02_implemented.yml

@@ -1,21 +0,0 @@
-name: I implemented it
-description: Share your process.
-labels: ["implemented"]
-body:
-- type: markdown
-  attributes:
-    value: |
-      Thank you for taking the time to fill out. If you have already implemented the application, could you share which Flipper Zero framework you have used? Additionally, could you specify the required type of Game Boy and cartridge? Lastly, it would be great if you could share some images of the process.
-- type: textarea
-  id: desc
-  attributes:
-    label: "Describe the process."
-    description: |
-      Feel free to describe in as much detail as you wish.
-  validations:
-    required: true
-- type: input
-  id: type
-  attributes:
-    label: Game boy
-    description: (Color, Pocket, Advance)

+ 0 - 35
pokemon_trading/.github/workflows/flipperZeroAction.yml

@@ -1,35 +0,0 @@
-name: "FAP: Build and lint"
-on: [push, pull_request]
-jobs:
-  ufbt-build-action:
-    runs-on: ubuntu-latest
-    name: 'ufbt: Build'
-    steps:
-      - name: Checkout
-        uses: actions/checkout@v4
-        with:
-          submodules: recursive  # Ensure submodules are also checked out
-
-      - name: Setup flipper-gblink submodule
-        run: git submodule update --init --recursive
-
-      # Add any additional steps needed for the build process
-      # Replace this with your existing build steps
-
-      - name: Build with ufbt GAME BOY Pokemon Trading
-        uses: flipperdevices/flipperzero-ufbt-action@v0.1.3
-        id: build-app-gb-pokemon-trading
-        with:
-          sdk-channel: release
-          app-dir: ./
-      - name: Upload app artifacts GAME BOY Pokemon Trading
-        uses: actions/upload-artifact@v3
-        with:
-          name: ${{ github.event.repository.name }}-${{ steps.build-app-gb-pokemon-trading.outputs.suffix }}
-          path: ${{ steps.build-app-gb-pokemon-trading.outputs.fap-artifacts }}
-      - name: Release
-        uses: softprops/action-gh-release@v1
-        if: startsWith(github.ref, 'refs/tags/')
-        with:
-          files: |
-            ${{ steps.build-app-gb-pokemon-trading.outputs.fap-artifacts }}

+ 0 - 2
pokemon_trading/.gitignore

@@ -1,2 +0,0 @@
-.DS_Store
-.vscode

+ 0 - 1
pokemon_trading/.gitsubtree

@@ -1 +0,0 @@
-https://github.com/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading main /

+ 0 - 21
pokemon_trading/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2023 Esteban Fuentealba
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.

+ 0 - 392
pokemon_trading/README.md

@@ -1,392 +0,0 @@
-# GAME BOY Pokemon Trading MALVEKE
-
-<p align="center">
-<a target="_blank" href="https://www.reddit.com/r/flipperzero/comments/121ncot/flipper_zero_game_boy_pokemon_trading/">
-  <img align="center" alt="Flipper Zero - Pokemon Trading Game Boy" src="./docs/images/youtube.png" />
-  </a>
-  <br />
-</p>
-
-<div align="center">
-
-**FW Official** | **FW Unleashed** | **FW RogueMaster** | **FW Xtreme**
-:- | :- | :- | :- 
-[![FlipC.org](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/badge?branch=main)](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading?branch=main)|[![FlipC.org](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/badge?branch=main&firmware=unleashed)](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading?branch=main&firmware=unleashed)|[![FlipC.org](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/badge?branch=main&firmware=roguemaster)](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading?branch=main&firmware=roguemaster)|[![FlipC.org](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/badge?branch=main&firmware=xtreme)](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading?branch=main&firmware=xtreme)
-</div>
-
-## Introduction
-
-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 currently trades a Pokemon based on your choice of Pokemon, Level, Stats and 4 Moves.
-
-## Hardware Interface
-The Game Boy is connected to the Flipper Zero's GPIO pins via a GBC style Game Link Cable. The [Flipper GB Link module](https://www.tindie.com/products/kbembedded/game-link-gpio-module-for-flipper-zero-game-boy/) is an easy way to connect a Game Boy via a Game Link Cable to the Flipper Zero.
-
-<p align='center'>
-  <a href="https://www.tindie.com/stores/kbembedded/?ref=offsite_badges&utm_source=sellers_kbembedded&utm_medium=badges&utm_campaign=badge_large">
-<img src="https://i.imgur.com/WQIJK8G.png" alt="Flipper GB Link module" width="680">
-  </a>
-</p>
-<p align='center'>
-<a href="https://www.tindie.com/stores/kbembedded/?ref=offsite_badges&utm_source=sellers_kbembedded&utm_medium=badges&utm_campaign=badge_large"><img src="https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-larges.png" alt="I sell on Tindie" width="200" height="104"></a>
-</p>
-
-Additionally, the [MALVEKE - GAME BOY Tools for Flipper Zero](https://www.tindie.com/products/efuentealba/malveke-game-boy-tools-for-flipper-zero/) is supported by this tool.
-
-<p align='center'>
-<a href="https://www.tindie.com/stores/efuentealba/?ref=offsite_badges&utm_source=sellers_efuentealba&utm_medium=badges&utm_campaign=badge_large">
-<img src="https://i.imgur.com/xdbLXBP.png" alt="MALVEKE" width="680">
-</a>
-</p>
-<p align='center'>
-<a href="https://www.tindie.com/stores/efuentealba/?ref=offsite_badges&utm_source=sellers_efuentealba&utm_medium=badges&utm_campaign=badge_large"><img src="https://d2ss6ovg47m0r5.cloudfront.net/badges/tindie-larges.png" alt="I sell on Tindie" width="200" height="104"></a>
-</p>
-
-Details on the hardware interface, as well as how to create your own adapter board, can be found in the [How Does It Work](#how-does-it-work) section below.
-
-## Installation Directions
-
-This project is intended to be overlaid on top of an existing firmware repo,  in my case the **Release 0.79.1** version.
-
-- Clone the [Flipper Zero firmware repository](https://github.com/flipperdevices/flipperzero-firmware). Refer to [this tutorial](https://github.com/jamisonderek/flipper-zero-tutorials/tree/main/firmware/updating/README.md) for updating the firmware.
-- Copy the "pokemon" folder into the `/applications_user/pokemon` folder in your firmware.
-- Run the command `fbt launch` to run it on your Flipper Zero.
-
-```bash
-./fbt launch APPSRC=pokemon
-```
-
-- NOTE: If you only want to generate the fap file, you must run the following command.
-
-```bash
-./fbt fap_pokemon
-```
-
-And use [**qFlipper**](https://flipperzero.one/update) to copy the generated **pokemon.fap** file to the `SD Card/apps/Game Boy` folder.
-
-<p align='center'>
-<img src="./docs/images/qFlipper.png" width="400" /><br />
-</p>
-
-## Instructions for use.
-
-These instructions assume that you are starting at the Flipper Zero desktop. Otherwise, press the Back button until you are at the desktop.
-
-- If you're using a MALVEKE PCB version, verify the **Pinout** configuration:
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-00.png" width="400" />
-        <br />
-    </p>
-
-    - MALVEKE **2.5** PCB Version: If you're using this version, select the `MALVEKE` configuration.
-        <p align='center'>
-            <br />
-            <img src="./docs/images/flipper-zero-flat-01.png" width="400" />
-            <br />
-        </p>
-
-    - MALVEKE **2.5.1** PCB Version: If you're using this version, select the `ORIGINAL`
-        <p align='center'>
-            <br />
-            <img src="./docs/images/flipper-zero-flat-02.png" width="400" />
-            <br />
-        </p>
-
-- Press the `OK` button on the Flipper to open the main menu.
-- Choose `Applications` from the menu.
-- Choose `GPIO` from the submenu.
-- Choose `Pokemon Trading`
-- The Flipper Zero will show the main menu of the application. The first option is to select the Pokemon to trade.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-1.png" width="400" />
-        <br />
-    </p>
-
-- 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 and return to the main menu
-
-    <p align='center'>
-         <br />
-        <img src="./docs/images/flipper-zero-flat-2.png" width="400" /><br />
-    </p>
-
-- The traded Pokemon's nickname can be set. When a Pokemon is selected, the nickname defaults to the species name in all caps. This mimics a Pokemon without a customized nickname. In order to reset this nickname to its default, clear the text entry field, press `OK` on the `Save` button. This will fill the text box with the default name. Press `Save` again to set this name.
-  - **Note:** The Nidoran♀ and Nidoran♂ names will not properly render. This is because the Flipper currently cannot print unicode characters to screen. Following the above instructions will fill the text entry field with `NIDORAN ` with a space after it. This space is the unrenderable ♀/♂ symbol. Once traded, it will be correctly named.
-  - **Note:** Only alphanumeric characters are supported in the Pokemon's nickname at this time.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-1-1.png" width="400" />
-        <br />
-    </p>
-
-- The Pokemon's level can be adjusted as well by hitting `OK` on the level option. The minimum level is `2` and the maximum is `100`. The level is input via a text box. (Levels below 2 cause an underflow glitch in Gen I games that would cause the level to jump to 100, so if you want this just set the Pokemon's level to 100)
-    
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-3.png" width="400" />
-        <br />
-    </p>
-
-- The `Select Moves` menu is used to pick the set the traded Pokemon's moves. They are pre-populated with the moveset that the Pokemon would know at level 1. Selecting a move slot will bring up an alphabetical index of moves. Additionally, `No Move` and `Default` can be quickly selected. Note that any move after the first `No Move` is ignored. 
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-7.png" width="400" />
-        <br />
-    </p>
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-8.png" width="400" />
-        <br />
-    </p>
-
-- The `Select Types` menu can change the traded Pokemon's types. The type(s) are pre-set to what the selected Pokemon normally is.
-  - Pokemon with a single type will have the same type set for both types.
-  - **Note:** Unlike other menus, changing either type immediately saves it. Pressing `Back` will keep any changes. This will be addressed in a later version. If you need to revert to the default types, a different Pokemon can be selected and the desired Pokemon re-selected.
-  - **Note:** When changing the type(s), the Pokemon's in-game stats will _NOT_ reflect the chosen type(s). Additionally, these may be overwritten back to default in-game if the Pokemon uses a move that affects types (e.g. `Transform`) or the Pokemon evolves.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-8-1.png" width="400" />
-        <br />
-    </p>
-
-- The Pokemon's stats can also be influenced. The current settings are:
-  - `Random IV, Zero EV` Mimics stats of a caught wild Pokemon.
-  - `Random IV, Max EV / Level` IV is randomized, but EV is set to the maximum a trained Pokemon could be for its current level.
-  - `Randon IV, Max EV` IV is randomized, EV is set to the absolute max for a perfectly trained Pokemon.
-  - `Max IV, Zero EV` Mimics stats of a caught wild Pokemon, but with the maximum IV possible.
-  - `Max IV, Max EV / Level` IV is max, EV is set to the maximum a trained Pokemon could be for its current level.
-  - `Max IV, Max EV` Absolutely perfect and overly powerful Pokemon.
- 
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-5.png" width="400" />
-        <br />
-    </p>
-
-- The `OT ID#` and `OT Name` of the Pokemon can also be set. The `OT ID#` must be between `0` and `65535`. Setting the `OT ID#` and `OT Name` to the same as your current trainer's causes the game to believe it was a wild caught Pokemon and not one that was traded. This means high level Pokemon will still obey you without badges, but, will not get the experience boost of a traded Pokemon.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-6.png" width="400" /><br />
-    </p>
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-6-1.png" width="400" /><br />
-    </p>
-
-- Finally, select `Trade PKMN` to start the trade process.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-6-2.png" width="400" /><br />
-    </p>
-
-    <p align='center'>
-        <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-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-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-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-12.png" width="400" /><br />
-    </p>
-
-- Once the trade is complete, both the **Game Boy** and the **Flipper Zero** will return to the `WAITING` state. If the **Game Boy** selects `CANCEL`, the **Flipper Zero** will return to the `READY` state. The <img src="./docs/images/back.png" /> BACK button can be pressed to return to the main menu. The traded Pokemon can be modified, or completely changed, if desired. Once the **Flipper Zero** Re-enters the Trade screen, and the **Game Boy** re-selects the trade table in-game, another trade can be completed. This allows for trading multiple Pokemon without having to reset the **Game Boy** each time.
-
-    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 />
-    </p>
-
-## How does it work?
-
-The method used to communicate 2 Game Boys is based on the SPI protocol, which is a very simple serial communication protocol in which a master device communicates with one or more slave devices. The protocol is bidirectional and synchronous, and uses three basic signals:
-
-- A clock signal (CLK).
-- An output signal (Serial Out or SO).
-- An input signal (Serial In or SI).
-
-In the Game Boy, games store data in an internal shift register that is used to send and receive information. The SPI protocol used by the Game Boy uses the clock signal to indicate when data is being transferred.
-
-The Game Boy link protocol is synchronous and requires the slave device to respond at the same rate as the master device. The master device supplies an 8KHz clock (data transfer rate of 1KB/s). The time window for responding is only **~120μs**. However, the slave device has no restrictions and can respond when it receives data. The clock can vary and there is no lower limit.
-
-<p align='center'>
-<br />
-<img src="./docs/images/gb_spi.png" width="400" /><br />
-</p>
-
-_An example GB SPI transfer. Here, the master sends 0xD9 (217) and the slave sends 0x45 (69)._
-
-<br />
-
-You can learn more about it in the following video. [**Analyzing the Different Versions of the Link Cable**](https://youtu.be/h1KKkCfzOws?t=151).
-
-## Board for Flipper Zero with PortData EXT Link.
-
-For the Flipper Zero board, a [PortData EXT Link](https://s.click.aliexpress.com/e/_Dm3EqlR) and a 2x8  [prototype board](https://s.click.aliexpress.com/e/_DETrjpL) were used.
-
-<p align='center'>
-<br />
-<img src="./docs/images/EXT-Link.png" width="400" /><br />
-</p>
-
-_PortData EXT Link for Game Boy Color, Game Boy Pocket, GBC, GBP, GBL._
-
-<p align='center'>
-<br />
-<img src="./docs/images/pcb.png" width="400" /><br />
-</p>
-<p align='center'>
-<br />
-<img src="./docs/images/flipper-zero-pcb.png" width="400" /><br />
-</p>
-I used 33kΩ resistor on CLK, but it's optional, it can be connected directly.
-
-
-## Connection: Flipper Zero GPIO - Game Boy
-
-The pins should be connected as follows:
-
-<p align='center'>
-<br />
-<img src="./docs/images/wgbl-0.png" width="400" /><br />
-</p>
-
-<picture>
-    <source media="(prefers-color-scheme: dark)" srcset="./docs/images/GPIO-GBPIN_light-v2.png">
-    <source media="(prefers-color-scheme: light)" srcset="./docs/images/GPIO-GBPIN-v2.png">
-    <img
-        alt="Connect Flipper Zero GPIO to Game Boy Pins"
-        src="./docs/images/GPIO-GBPIN-v2.png">
-</picture>
-
-| Cable Game Link (Socket) | Flipper Zero GPIO |
-| ------------------------ | ----------------- |
-| 6 (GND)                  | 8 (GND)           |
-| 5 (CLK)                  | 6 (B2)            |
-| 3 (SI)                   | 7 (C3)            |
-| 2 (SO)                   | 5 (B3)            |
-
-## Connect to Flipper Zero without Socket PortData EXT Link
-
-It's possible to cut a cable directly without using a socket, but it's important to note that the cable is a crossover cable SI-SO.
-
-<p align='center'>
-<br />
-<img src="./docs/images/cut-cable-v3.png" width="400" /><br />
-</p>
-
-*"Cable Game Link" cut and directly connected to the Flipper Zero pins.*
-
-**NOTE**: Don't rely on the cable colors as they may vary depending on the manufacturer. Use a multimeter to measure continuity and identify which cable corresponds to each pin.
-
-
-
-## GUI
-
-To generate the graphical interface, the [**FUI-Editor**](https://ilin.pt/stuff/fui-editor/) tool was used. Additionally, the original sprites from the game Pokemon Yellow, which are found in the [**Disassembly of Pokemon Yellow**](https://github.com/pret/pokeyellow/tree/master/gfx/pokemon/front) repository, were used.
-
-For each image, the color `#aaa` was transformed to `#fff` so that Flipper Zero would render it correctly. To do this, a batch process was used in [Photopea](https://www.photopea.com/), the online image editor.
-
-##  Tested In
-- Game Boy Color (GBC)
-- Game Boy Advance (GBA)
-
-## Contributors
-[![Contributors](https://contrib.rocks/image?repo=EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading)](https://github.com/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/graphs/contributors)
-
-
-## Links
-
-- [Flipper Zero firmware source code](https://github.com/flipperdevices/flipperzero-firmware)
-- Adan Scotney's Pokemon [trade protocol specification](http://www.adanscotney.com/2014/01/spoofing-pokemon-trades-with-stellaris.html) and implementation
-- Derek Jamison - [Youtube Channel](https://www.youtube.com/@MrDerekJamison)
-- Matt Penny - [GBPlay Blog](https://blog.gbplay.io/)
-- [Pokémon data structure (Generation I)](<https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_structure_(Generation_I)>)
-- [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>

+ 0 - 41
pokemon_trading/README_catalog.md

@@ -1,41 +0,0 @@
-# GAME BOY Pokemon Trading MALVEKE
-
-## Introduction
-
-Now supports MALVEKE board!
-
-This is a Pokemon exchange application from Flipper Zero to Game Boy (Generación 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.
-
-If a MALVEKE board is plugged in to GPIO before starting the app, the app will default to using the MALVEKE EXT1 interface.
-
-
-## Connection: Flipper Zero GPIO - Game Boy
-
-The original pinout is as follows:
-
-| Cable Game Link (Socket) | Flipper Zero GPIO |
-| ------------------------ | ----------------- |
-| 6 (GND)                  | 8 (GND)           |
-| 5 (CLK)                  | 6 (B2)            |
-| 3 (SI)                   | 7 (C3)            |
-| 2 (SO)                   | 5 (B3)            |
-
-Using the "Select Pinout" option, the Original, MALVEKE, or any custom pin configuration can be selected.
-
-
-## How does it work?
-
-The method used to communicate 2 Game Boys is based on the SPI protocol, which is a very simple serial communication protocol in which a master device communicates with one or more slave devices. The protocol is bidirectional and synchronous, and uses three basic signals:
-
-- A clock signal (CLK).
-- An output signal (Serial Out or SO).
-- An input signal (Serial In or SI).
-
-In the Game Boy, games store data in an internal shift register that is used to send and receive information. The SPI protocol used by the Game Boy uses the clock signal to indicate when data is being transferred.
-
-The Game Boy link protocol is synchronous and requires the slave device to respond at the same rate as the master device. The master device supplies an 8KHz clock (data transfer rate of 1KB/s). The time window for responding is only **~120μs**. However, the slave device has no restrictions and can respond when it receives data. The clock can vary and there is no lower limit.
-
-
-##  Tested In
-- Game Boy Color (GBC)
-- Game Boy Advance (GBA)

+ 0 - 328
pokemon_trading/README_es.md

@@ -1,328 +0,0 @@
-# GAME BOY Pokemon Trading MALVEKE
-
-<p align="center">
-<a target="_blank" href="https://www.reddit.com/r/flipperzero/comments/121ncot/flipper_zero_game_boy_pokemon_trading/">
-  <img align="center" alt="Flipper Zero - Pokemon Trading Game Boy" src="./docs/images/youtube.png" />
-  <br />
-</p>
-<div align="center">
-
-**FW Official** | **FW Unleashed** | **FW RogueMaster**
-:- | :- | :- 
-[![FlipC.org](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/badge?branch=main)](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading?branch=main)|[![FlipC.org](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/badge?branch=main&firmware=unleashed)](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading?branch=main&firmware=unleashed)|[![FlipC.org](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading/badge?branch=main&firmware=roguemaster)](https://flipc.org/EstebanFuentealba/Flipper-Zero-Game-Boy-Pokemon-Trading?branch=main&firmware=roguemaster)
-</div>
-
-## Introducción
-
-Esta es una aplicación de intercambio de Pokemon's desde de Flipper Zero a Game Boy [(Generación I)](https://bulbapedia.bulbagarden.net/wiki/Generation_I). Flipper Zero emula un Game Boy "Esclavo" conectado a **Cable Game Link** para poder intercambiar cualquier Pokemon de la Primera Generación (Red, Blue, Yellow) a un Game Boy Real.
-
-Es una Prueba de concepto (POC) para utilizar vistas, GPIO y FURI (Flipper Universal Registry Implementation).
-
-## Instrucciones de instalación
-
-Este proyecto está destinado a ser superpuesto encima de un repositorio de firmware existente, en mi caso la versión **Release 0.79.1**.
-
-- Clona el [Repositorio del firmware de Flipper Zero](https://github.com/flipperdevices/flipperzero-firmware). Consulta este [tutorial](https://github.com/jamisonderek/flipper-zero-tutorials/tree/main/firmware/updating/README.md) para actualizar el firmware.
-- Copia la [carpeta "pokemon"](..) en la carpeta `/applications_user/pokemon` del firmware que clonaste.
-- Corre el comando `fbt launch` para correr en tu Flipper Zero.
-
-```bash
-./fbt launch APPSRC=pokemon
-```
-
-- NOTA: Si sólo quieres generar el archivo `fap` debes correr el siguiente comando.
-
-```bash
-./fbt fap_pokemon
-```
-
-y usa [**qFlipper**](https://flipperzero.one/update) para copiar el archivo **pokemon.fap** generado a la carpeta `SD Card/apps/Game Boy`.
-
-<p align='center'>
-<img src="./docs/images/qFlipper.png" width="400" /><br />
-</p>
-
-## Instrucciones de Uso
-
-Estas instrucciones asumen que estás comenzando desde el escritorio de Flipper Zero. De lo contrario, presiona el botón Atrás hasta que estés en el escritorio.
-
-- Presiona el botón `OK` en Flipper para abrir el menú principal.
-- Elige `Applications` en el menú.
-- Selecciona `GPIO` en el submenú.
-- Selecciona `Pokemon Trading`.
-- Flipper Zero mostrará el menú principal de la aplicación. La primera opción es seleccionar el Pokémon a intercambiar.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-1.png" width="400" />
-      <br />
-  </p>
-- Presiona los botones `IZQUIERDA`/`DERECHA` para paginar la selección de Pokémon de a 1.
-- Presiona los botones `ARRIBA`/`ABAJO` para paginar la selección de Pokémon de a 10.
-- Presiona el botón `OK` para seleccionar el Pokémon a intercambiar y volver al menú principal.
-
-  <p align='center'>
-       <br />
-      <img src="./docs/images/flipper-zero-flat-2.png" width="400" /><br />
-  </p>
-- El nombre del Pokémon intercambiado se puede establecer. Cuando se selecciona un Pokémon, el nombre por defecto es el nombre de la especie en mayúsculas. Esto imita a un Pokémon sin un nombre personalizado. Para restablecer este nombre a su valor predeterminado, borra el campo de entrada de texto, presiona `OK` en el botón `Save`. Esto llenará el cuadro de texto con el nombre predeterminado. Presiona `Save` nuevamente para establecer este nombre.
-
-    - **Nota**: Los nombres de Nidoran♀ y Nidoran♂ no se renderizan correctamente. Esto se debe a que Flipper actualmente no puede imprimir caracteres Unicode en la pantalla. Siguiendo las instrucciones anteriores, se llenará el campo de entrada de texto con `NIDORAN ` con un espacio después. Este espacio es el símbolo no renderizable ♀/♂. Una vez intercambiado, se mostrará correctamente.
-
-    - **Nota**: Solo se admiten caracteres alfanuméricos en el nombre del Pokémon en este momento.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-1-1.png" width="400" />
-        <br />
-    </p>
-- También se puede ajustar el nivel del Pokémon presionando `OK` en la opción de nivel. El nivel mínimo es `2` y el máximo es `100`. El nivel se ingresa a través de un cuadro de texto. (Los niveles por debajo de 2 causan una falla de desbordamiento en los juegos de Gen I que haría que el nivel saltara a 100, así que si deseas esto, simplemente establece el nivel del Pokémon en 100).
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-3.png" width="400" />
-      <br />
-  </p>
-- El menú `Select Moves` se utiliza para elegir los movimientos del Pokémon intercambiado. Están predefinidos con el conjunto de movimientos que el Pokémon conocería al nivel 1. Seleccionar una ranura de movimiento mostrará un índice alfabético de movimientos. Además, se pueden seleccionar rápidamente `No Move` y `Default`. Ten en cuenta que cualquier movimiento después del primer `No Move` se ignora.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-7.png" width="400" />
-      <br />
-  </p>
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-8.png" width="400" />
-      <br />
-  </p>
-- El menú `Select Types` puede cambiar los tipos del Pokémon intercambiado. Los tipos están predefinidos según lo que normalmente es el Pokémon seleccionado.
-
-  - Los Pokémon con un solo tipo tendrán el mismo tipo establecido para ambos tipos.
-
-  - **Nota**: A diferencia de otros menús, cambiar cualquiera de los tipos lo guarda inmediatamente. Presionar `Back` mantendrá los cambios. Esto se abordará en una versión posterior. Si necesitas volver a los tipos predeterminados, puedes seleccionar un Pokémon diferente y luego volver a seleccionar el Pokémon deseado.
-
-  - **Nota**: Al cambiar los tipos, las estadísticas del Pokémon en el juego NO reflejarán los tipos elegidos. Además, estos pueden sobrescribirse de nuevo en el juego si el Pokémon usa un movimiento que afecta a los tipos (por ejemplo, `Transform`) o el Pokémon evoluciona.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-8-1.png" width="400" />
-        <br />
-    </p>
-- Las estadísticas del Pokémon también se pueden influir. Las configuraciones actuales son:
-
-  - `Random IV, Zero EV`  Imita las estadísticas de un Pokémon salvaje atrapado.
-  - `Random IV, Max EV / Level` IV es aleatorio, pero EV se establece en el máximo que un Pokémon entrenado podría tener para su nivel actual.
-  - `Randon IV, Max EV` IV es aleatorio, EV se establece en el máximo absoluto para un Pokémon perfectamente entrenado.
-  - `Max IV, Zero EV` Imita las estadísticas de un Pokémon salvaje atrapado, pero con el IV máximo posible.
-  - `Max IV, Max EV / Level` IV es máximo, EV se establece en el máximo que un Pokémon entrenado podría tener para su nivel actual.
-  - `Max IV, Max EV` Máximo Pokémon absolutamente perfectos y poderosos.
-
-    <p align='center'>
-        <br />
-        <img src="./docs/images/flipper-zero-flat-5.png" width="400" />
-        <br />
-    </p>
-
-- También se puede configurar el `OT ID#` y el `OT Name` del Pokémon. El `OT ID#` debe estar entre `0` y `65535`. Establecer el `OT ID#` y el `OT Name` igual que tu entrenador actual hace que el juego crea que fue un Pokémon capturado en estado salvaje y no uno que se intercambió. Esto significa que los Pokémon de alto nivel seguirán obedeciéndote sin medallas, pero no obtendrán el aumento de experiencia de un Pokémon intercambiado.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-6.png" width="400" /><br />
-  </p>
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-6-1.png" width="400" /><br />
-  </p>
-- Finalmente, selecciona Intercambiar PKMN para iniciar el proceso de intercambio.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-6-2.png" width="400" /><br />
-  </p>
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-9.png" width="400" /><br />
-  </p>
-- En tu Game Boy, debes conectar el **Game Link Cable** a la Game Boy y, en el juego, ve al **Pokemon Center** más cercano.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/game_boy_pokemon_center.png" width="400" /><br />
-  </p>
-- Habla con la chica en el mostrador de la derecha. La chica nos dirá que tenemos que guardar el juego antes de jugar, responderemos **YES** presionando el botón **A**.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/game_boy_save.png" width="400" /><br />
-  </p>
-- Flipper Zero mostrará que estamos conectados.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-10.png" width="400" /><br />
-  </p>
-- En la Game Boy, se nos preguntará qué opción queremos, y seleccionamos **TRADE CENTER**.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/game_boy_save_trade.png" width="400" /><br />
-  </p>
-- Ingresarás al Centro de Intercambio donde debes presionar el botón A en la Game Boy en tu lado de la mesa.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/game_boy_trade_room_2.png" width="400" /><br />
-  </p>
-- Flipper Zero permanecerá en una pantalla de espera con el Pokémon que seleccionaste.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-10.png" width="400" /><br />
-  </p>
-- Verás tu Pokémon y el Pokémon que seleccionaste en Flipper Zero, en este caso, `Mew`. Debes seleccionar el Pokémon que deseas intercambiar y presionar **TRADE**.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/game_boy_trade_list_select_trade.png" width="400" /><br />
-  </p>
-- Debes confirmar el intercambio seleccionando **TRADE**.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/game_boy_trade_list_select_trade_confirm.png" width="400" /><br />
-  </p>
-- Flipper Zero permanecerá en una pantalla de espera con el Pokémon que seleccionaste.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-11.png" width="400" /><br />
-  </p>
-- Finalmente, el intercambio de Pokémon comenzará desde **Flipper Zero** hacia la **Game Boy**.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/flipper-zero-flat-12.png" width="400" /><br />
-  </p>
-- Si Flipper Zero se queda atascado al final del intercambio, debes reiniciarlo presionando la combinación de teclas <img src="./docs/images/left.png" /> `IZQUIERDA` + <img src="./docs/images/back.png" /> `ATRÁS`.
-
-  <p align='center'>
-      <br />
-      <img src="./docs/images/reboot.png" width="400" /><br />
-  </p>
-
-## ¿Cómo trabaja?
-
-El método utilizado para comunicar 2 Game Boy se basa en el protocolo SPI, que es un protocolo de comunicación serial muy simple en el que un dispositivo maestro se comunica con uno o más dispositivos esclavos. El protocolo es bidireccional y sincrónico, y utiliza tres señales básicas:
-
-- Una señal de reloj (CLK).
-- Una señal de salida (Serial Out o SO).
-- Una señal de entrada (Serial In o SI).
-
-En el Game Boy, los juegos almacenan los datos en un registro de cambio interno que se utiliza para enviar y recibir información. El protocolo SPI utilizado por el Game Boy utiliza la señal de reloj para indicar cuándo se transfieren los datos.
-
-El protocolo de enlace de Game Boy es síncrono y requiere que el dispositivo esclavo responda al mismo ritmo que el dispositivo maestro. El dispositivo maestro suministra un reloj de 8KHz (velocidad de transferencia de datos de 1KB/s). La ventana de tiempo para responder es de solo **~120μs**. Sin embargo, el dispositivo esclavo no tiene restricciones y puede responder cuando recibe los datos. El reloj puede variar y no hay un límite inferior.
-
-<p align='center'>
-<br />
-<img src="./docs/images/gb_spi.png" width="400" /><br />
-</p>
-
-_Una transferencia de ejemplo de GB SPI. Aquí, el maestro envía 0xD9 (217) y el esclavo envía 0x45 (69)._
-
-<br />
-
-Se puede conocer mas al respecto en el siguiente Video [**Analyzing the Different Versions of the Link Cable**](https://youtu.be/h1KKkCfzOws?t=151).
-
-## Placa para Flipper Zero con Socket PortData EXT Link
-
-Para la placa del Fipper Zero se utilizó un [PortData EXT Link](https://es.aliexpress.com/item/1005004116983895.html) y una [place de prototipo](https://es.aliexpress.com/item/32478242317.html) de 2x8.
-
-<p align='center'>
-<br />
-<img src="./docs/images/EXT-Link.png" width="400" /><br />
-</p>
-
-_PortData EXT Link para Game Boy Color, Game Boy Pocket, GBC, GBP, GBL._
-
-<p align='center'>
-<br />
-<img src="./docs/images/pcb.png" width="400" /><br />
-</p>
-<p align='center'>
-<br />
-<img src="./docs/images/flipper-zero-pcb.png" width="400" /><br />
-</p>
-Usé una resistencia de 33kΩ en CLK, pero es opcional, se puede conectar directamente.
-
-## Conexión: Flipper Zero GPIO - Game Boy
-
-Se deben conectar los Pines de la siguiente manera
-
-<p align='center'>
-<br />
-<img src="./docs/images/wgbl-0.png" width="400" /><br />
-</p>
-
-<picture>
-    <source media="(prefers-color-scheme: dark)" srcset="./docs/images/GPIO-GBPIN_light-v2.png">
-    <source media="(prefers-color-scheme: light)" srcset="./docs/images/GPIO-GBPIN-v2.png">
-    <img
-        alt="Connect Flipper Zero GPIO to Game Boy Pins"
-        src="./docs/images/GPIO-GBPIN-v2.png">
-</picture>
-
-| Cable Game Link (Socket) | Flipper Zero GPIO |
-| ------------------------ | ----------------- |
-| 6 (GND)                  | 8 (GND)           |
-| 5 (CLK)                  | 6 (B2)            |
-| 3 (SI)                   | 7 (C3)            |
-| 2 (SO)                   | 5 (B3)            |
-
-
-## Conectar a Flipper Zero sin Socket PortData EXT Link
-
-Pudes cortar un cable directamente sin usar el socket pero debes tener en cuenta que el es un cable cruzado SI-SO.
-
-<p align='center'>
-<br />
-<img src="./docs/images/cut-cable-v3.png" width="400" /><br />
-</p>
-
-*"Cable Game Link" cortado y conectado directamente a los pines de Flipper Zero.*
-
-
-**NOTA**: No guiarse por los colores porque dependiendo del fabricante estos pueden cambiar, con un multímetro medir continuidad e identificar que cable es de que pin
-
-
-## GUI
-
-Para generar la Interfaz gráfica se utilizó la herramienta [**FUI-Editor**](https://ilin.pt/stuff/fui-editor/).
-Además se utilizaron los sprites originales del juego _Pokemon Yellow_ que se encuentran en el repositorio [**Disassembly of Pokemon Yellow**](https://github.com/pret/pokeyellow/tree/master/gfx/pokemon/front).
-
-De cada imagen se transformó el color `#aaa` a `#fff` para que Flipper Zero la renderizara bien. Para eso se utilizó un **Batch** para [Photopea](https://www.photopea.com/), el editor de imagenes online.
-
-##  Implementado en
-- Game Boy Color (GBC)
-- Game Boy Advance (GBA)
-
-## Contribuidores
-<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><br />
-<a href="https://github.com/kbembedded/Flipper-Zero-Game-Boy-Pokemon-Trading/">kbembedded</a>
-
-## Links
-
-- [Flipper Zero firmware source code](https://github.com/flipperdevices/flipperzero-firmware)
-- Adan Scotney's pokemon [trade protocol specification](http://www.adanscotney.com/2014/01/spoofing-pokemon-trades-with-stellaris.html) and implementation
-- Derek Jamison - [Youtube Channel](https://www.youtube.com/@MrDerekJamison)
-- Matt Penny - [GBPlay Blog](https://blog.gbplay.io/)
-- [Pokémon data structure (Generation I)](<https://bulbapedia.bulbagarden.net/wiki/Pok%C3%A9mon_data_structure_(Generation_I)>)
-- [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 />
-Desde Talcahuano 🇨🇱 con ❤ 
-</p>

+ 0 - 47
pokemon_trading/TODO.md

@@ -1,47 +0,0 @@
-# Flipper Zero Game Boy Pokemon Trading
-`
-- Configure Gen 1 traded pokemon  
-  - Pokemon Nickname  
-    - [x] Change the default traded Pokemon's naming to be no nickname  
-    - [x] Add a view to allow for a custom Pokemon nickname (11 chars, 10 chars max used, fill and terminate with TERM_)  
-    - [ ] Figure out how to implement Nidoran male/female symbol  
-      - Previous commits used unicode escape codes which I had issues compiling for some reason, but the actual unicode chars were fine  
-      - Could make a special case for just those two  
-  - Stats  
-    - [x] Add view to allow the traded Pokemon's level to be chosen between 2 and 100  
-    - [x] Add view to allow the traded Pokemon's hidden stats to be chosen (IV and EV) from some options  
-      - [ ] Are there any better ways to present these options?  
-    - [x] Debug traded Pokemon level issue where after a battle the Pokemon's level drops (doesn't affect all traded Pokemon)  
-    - [x] Optimise the level selection screen to be a number slider input instead of the current slideshow style selector (Implemented as text input that only accepts numbers)  
-  - Moves  
-    - [x] Add view to allow the traded Pokemon's moveset to be chosen (all 4 moves) allowing no move as an option  
-    - [ ] Find a way to get faster scrolling through the move select submenu  
-    - [ ] Implement a way to denote that any moves after the first No Move are also No Move?  
-      - Hide all moves beyond the first No Moves?  
-      - Promote moves? e.g. if move 1 is set, 2 unset, if user sets move 3 then promote it to move 2  
-      - Automatically clear moves beyond the first no move? surprising but that is what the game does  
-  - Types  
-    - [x] Support setting pokemon type(s)  
-    - [ ] Implement a save/revert to default workflow on the select types scene  
-  - Trade  
-    - [x] Investigate Trade screens not always blinking  
-  - UI  
-    - [ ] Find a way to line up submenu items so the main menu looks cleaner  
-      - They currently _mostly_ line up thanks to some manual spacing, but tabs don't appear to be supported to force that alignment  
-      - Alternatively may need to implement our own view to make this pretty  
-- Documentation  
-  - [x] Add images for the level selection screen, stats selection screen, and move selection screens as per the original README  
-- Codebase  
-  - [x] Reimplement Logging calls  
-  - [ ] Clean up the codebase as it is now, there are a lot of optimizations in speed and code complexity that can be made, especially in added code in pokemon_app and maybe some code reduction/reuse in scenes  
-  - [ ] Consider using a single View in main app struct and only allocate a view as needed to reduce memory footprint  
-
-- Future Wants  
-  - [ ] Trading to Gen II games with both Gen I and Gen II Pokemon  
-  - [ ] Enable IR mystery gift usage in Gen II using Flipper  
-  - [ ] Be able to set up multiple Pokemon to be able to trade more than one per trip to trade center  
-  - [x] Be able to trade back and forth for e.g. trading a Pokemon that evolves only when traded  
-  - [x] Would Separating out link cable states result in a cleaner API?  
-  - [ ] Implement some simple logic to be able to "battle" the Flipper?  
-  - [ ] There was a suggestion to be able to trade in a Pokemon to harvest OT name and ID on the flipper and set it to that.  
-  - [ ] Ability to save Pokemon to SD card. Either created on, or traded to, the Flipper app.  

+ 0 - 21
pokemon_trading/application.fam

@@ -1,21 +0,0 @@
-App(
-    appid="pokemon",
-    name="[GB] Pokemon Trading",
-    apptype=FlipperAppType.EXTERNAL,
-    entry_point="pokemon_app",
-    requires=["gui"],
-    stack_size=2 * 1024,
-    fap_version=[1, 6],
-    fap_category="GPIO",
-    fap_icon="pokemon_10px.png",
-    fap_icon_assets="assets",
-    fap_author="Esteban Fuentealba, Kris Bahnsen, Darryn Cull",
-    fap_weburl="https://github.com/EstebanFuentealba",
-    fap_description="Pokemon exchange from Flipper Zero to Game Boy for Generation I (Pokemon Red, Blue, Yellow)",
-    fap_private_libs=[
-        Lib(
-            name="flipper-gblink",
-            sources=["gblink.c"],
-        ),
-    ],
-)

二進制
pokemon_trading/assets/Background.png


二進制
pokemon_trading/assets/Background_128x11.png


二進制
pokemon_trading/assets/Button_18x18.png


二進制
pokemon_trading/assets/Connect_me_62x31.png


二進制
pokemon_trading/assets/Connected_62x31.png


二進制
pokemon_trading/assets/Space_100x18.png


二進制
pokemon_trading/assets/Space_65x18.png


二進制
pokemon_trading/assets/Space_80x18.png


二進制
pokemon_trading/assets/Space_95x18.png


二進制
pokemon_trading/assets/abra.png


二進制
pokemon_trading/assets/aerodactyl.png


二進制
pokemon_trading/assets/alakazam.png


二進制
pokemon_trading/assets/arbok.png


二進制
pokemon_trading/assets/arcanine.png


二進制
pokemon_trading/assets/articuno.png


二進制
pokemon_trading/assets/beedrill.png


二進制
pokemon_trading/assets/bellsprout.png


二進制
pokemon_trading/assets/blastoise.png


二進制
pokemon_trading/assets/bulbasaur.png


二進制
pokemon_trading/assets/butterfree.png


二進制
pokemon_trading/assets/caterpie.png


二進制
pokemon_trading/assets/chansey.png


二進制
pokemon_trading/assets/charizard.png


二進制
pokemon_trading/assets/charmander.png


二進制
pokemon_trading/assets/charmeleon.png


二進制
pokemon_trading/assets/clefable.png


二進制
pokemon_trading/assets/clefairy.png


二進制
pokemon_trading/assets/cloyster.png


二進制
pokemon_trading/assets/cubone.png


二進制
pokemon_trading/assets/dewgong.png


二進制
pokemon_trading/assets/diglett.png


二進制
pokemon_trading/assets/ditto.png


二進制
pokemon_trading/assets/dodrio.png


二進制
pokemon_trading/assets/doduo.png


二進制
pokemon_trading/assets/dragonair.png


二進制
pokemon_trading/assets/dragonite.png


二進制
pokemon_trading/assets/dratini.png


二進制
pokemon_trading/assets/drowzee.png


二進制
pokemon_trading/assets/dugtrio.png


二進制
pokemon_trading/assets/eevee.png


二進制
pokemon_trading/assets/ekans.png


二進制
pokemon_trading/assets/electabuzz.png


二進制
pokemon_trading/assets/electrode.png


二進制
pokemon_trading/assets/exeggcute.png


二進制
pokemon_trading/assets/exeggutor.png


二進制
pokemon_trading/assets/farfetchd.png


二進制
pokemon_trading/assets/fearow.png


二進制
pokemon_trading/assets/flareon.png


二進制
pokemon_trading/assets/fossilaerodactyl.png


二進制
pokemon_trading/assets/fossilkabutops.png


二進制
pokemon_trading/assets/game_boy.png


二進制
pokemon_trading/assets/gastly.png


二進制
pokemon_trading/assets/gb_step_1.png


二進制
pokemon_trading/assets/gb_step_2.png


二進制
pokemon_trading/assets/gengar.png


二進制
pokemon_trading/assets/geodude.png


二進制
pokemon_trading/assets/gloom.png


二進制
pokemon_trading/assets/golbat.png


二進制
pokemon_trading/assets/goldeen.png


二進制
pokemon_trading/assets/golduck.png


二進制
pokemon_trading/assets/golem.png


二進制
pokemon_trading/assets/graveler.png


二進制
pokemon_trading/assets/grimer.png


二進制
pokemon_trading/assets/growlithe.png


二進制
pokemon_trading/assets/gyarados.png


二進制
pokemon_trading/assets/haunter.png


二進制
pokemon_trading/assets/hitmonchan.png


二進制
pokemon_trading/assets/hitmonlee.png


二進制
pokemon_trading/assets/horsea.png


二進制
pokemon_trading/assets/hypno.png


二進制
pokemon_trading/assets/ivysaur.png


二進制
pokemon_trading/assets/jigglypuff.png


二進制
pokemon_trading/assets/jolteon.png


二進制
pokemon_trading/assets/jynx.png


二進制
pokemon_trading/assets/kabuto.png


二進制
pokemon_trading/assets/kabutops.png


二進制
pokemon_trading/assets/kadabra.png


二進制
pokemon_trading/assets/kakuna.png


二進制
pokemon_trading/assets/kangaskhan.png


二進制
pokemon_trading/assets/kingler.png


部分文件因文件數量過多而無法顯示