git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

docs/pages/02_links_and_tools.md

      1 @page docs_links_and_tools Links, Tools and Debugging
      2 
      3 
      4 This is a brief list of useful tools and information. It is not meant to be complete or exhaustive, for a larger list see the @ref awesome_gb "Awesome Game Boy Development" list.
      5 
      6 @anchor links_sdcc_docs
      7 # SDCC Compiler Suite User Manual
      8   - GBDK-2020 uses the SDCC compiler and related tools. The SDCC manual goes into much more detail about available features and how to use them.  
      9   http://sdcc.sourceforge.net/doc/sdccman.pdf  
     10   http://sdcc.sourceforge.net
     11 
     12   - The SDCC assembler and linker (sdas / asxxxx and aslink) manual.  
     13   https://sourceforge.net/p/sdcc/code/HEAD/tree/trunk/sdcc/sdas/doc/asmlnk.txt
     14 
     15 
     16 @anchor links_help_and_community
     17 # Getting Help
     18   - GBDK Discord community:  
     19   https://github.com/gbdk-2020/gbdk-2020/#discord-servers
     20 
     21   - Game Boy discussion forum:  
     22   https://gbdev.gg8.se/forums/
     23 
     24 
     25 @anchor links_gameboy_docs
     26 # Game Boy Documentation
     27   - @anchor Pandocs
     28     __Pandocs__  
     29     Extensive and up-to-date technical documentation about the Game Boy and related hardware.  
     30     https://gbdev.io/pandocs/
     31 
     32   - @anchor awesome_gb
     33     __Awesome Game Boy Development list__  
     34     A list of Game Boy/Color development resources, tools, docs, related projects and homebrew.  
     35     https://gbdev.io/resources.html
     36 
     37 
     38 @anchor links_sms_gg_docs
     39 # Sega Master System / Game Gear Documentation
     40   - @anchor smspower
     41     __SMS Power!__  
     42     Community site with technical documentation, reviews and other content related to the Sega 8-bit systems.  
     43     https://www.smspower.org/
     44 
     45 
     46 @anchor links_megaduck_docs
     47 # Mega Duck / Cougar Boy Documentation
     48   - @anchor megaduckdev
     49     __MegaDuck.dev__  
     50     A collection of technical information and resources for the Mega Duck / Cougar Boy console.  
     51     https://megaduck.dev/
     52 
     53 
     54 @anchor links_gbdk_tutorials
     55 # Tutorials
     56   - @anchor tutorials_larolds
     57     __Larold's Jubilant Junkyard  Tutorials__      
     58     Several walk throughs about the fundamentals of developing for the Game Boy with GBDK-2020. There are simple examples with source code.  
     59     https://laroldsjubilantjunkyard.com/tutorials/
     60 
     61   - @anchor tutorials_gamingmonsters
     62     __Gaming Monsters Tutorials__  
     63     Several video tutorials and code for making games with GBDK/GBDK-2020.  
     64     https://www.youtube.com/playlist?list=PLeEj4c2zF7PaFv5MPYhNAkBGrkx4iPGJo  
     65     https://github.com/gingemonster/GamingMonstersGameBoySampleCode
     66 
     67   - @anchor tutorials_typorter
     68     __Pocket Leage Tutorial__  
     69     https://blog.ty-porter.dev/development/2021/04/04/writing-a-gameboy-game-in-2021-pt-0.html
     70 
     71 
     72 @anchor link_examples
     73 # Example code
     74   - @anchor examples_gbdk_playground
     75     __Simplified GBDK examples__  
     76     https://github.com/mrombout/gbdk_playground/commits/master
     77 
     78 
     79 @anchor links_graphic
     80 # Graphics Tools
     81   - @anchor gbtd_gbmb
     82     @anchor gbmb
     83     @anchor gbtd     
     84     @anchor toxa_gbtd_gbmb
     85     __Game Boy Tile Designer and Map Builder (GBTD / GBMB)__  
     86     Sprite / Tile editor and Map Builder that can export to C that works with GBDK.  
     87     This is an updated version with const export fixed and other improvements.  
     88     https://github.com/gbdk-2020/GBTD_GBMB
     89  
     90       - A GIMP plugin to read/write GBR/GBM files and do map conversion:  
     91         https://github.com/bbbbbr/gimp-tilemap-gb
     92       - Command line version of the above tool that doesn't require GIMP (png2gbtiles):  
     93         https://github.com/bbbbbr/gimp-tilemap-gb/tree/master/console
     94 
     95   - @anchor Tilemap_Studio
     96     __Tilemap Studio__  
     97     A tilemap editor for Game Boy, GBC, GBA, or SNES projects.  
     98     https://github.com/Rangi42/tilemap-studio/
     99 
    100 
    101 @anchor tools_music
    102 # Music And Sound Effects for the Game Boy
    103   - @anchor hUGEdriver
    104     __hUGEtracker__ and __hUGEdriver__  
    105     A tracker and music driver that work with GBDK and RGBDS.
    106     It is smaller, more efficient and more versatile than gbt_player.  
    107     https://github.com/SuperDisk/hUGEDriver  
    108     https://github.com/SuperDisk/hUGETracker
    109 
    110   - @anchor CBT-FX
    111     __CBT-FX__  
    112     A sound effects driver which can play effects created in FX Hammer.
    113     https://github.com/datguywitha3ds/CBT-FX
    114 
    115   - @anchor VGM2GBSFX
    116     __VGM2GBSFX__  
    117     A sound effects converter and driver for DMG VGM files, FX Hammer and PCM WAV files.
    118     https://github.com/untoxa/VGM2GBSFX
    119 
    120   - @anchor gbt-player
    121     __GBT Player__  
    122     A .mod converter and music driver that works with GBDK and RGBDS.  
    123     https://github.com/AntonioND/gbt-player  
    124     Docs from GBStudio that should mostly apply: https://www.gbstudio.dev/docs/music/
    125 
    126 # Music And Sound Effects for the SMS/Game Gear 
    127   - @anchor Banjo
    128     __Banjo__  
    129     A sound driver for Sega Master System and Game Gear which can import from Furnace tracker.   
    130     - https://github.com/joffb/banjo
    131     An example of using it with GBDK can be found in the CrossZGB engine.
    132     - https://github.com/gbdk-2020/CrossZGB/commit/8ecd46639f3af420cfe139fc155740e8aa14d7c5
    133 
    134 
    135 
    136 @anchor tools_emulators
    137 # Emulators
    138   - @anchor emulicious
    139     __Emulicious__  
    140     An accurate emulator with extensive tools including source level debugging.
    141     https://emulicious.net/
    142 
    143   - @anchor bgb
    144     __BGB__  
    145     Accurate emulator, has useful debugging tools.  
    146     http://bgb.bircd.org/
    147   - @anchor superjuniorsameduck
    148     __Super Junior SameDuck__
    149     The only MegaDuck emulator with support for the Mega Duck Laptop models (Quique and Junior Super Computer)
    150     https://github.com/bbbbbr/SuperJuniorSameDuck  
    151 
    152 @anchor code_editors_hinting
    153 Intellisense in VSCode may have trouble identifying some GBDK types or functions, and therefore flag them as warnings or unidentified.
    154 
    155 GBDK platform constants can be declared so that header files are parsed more completely in VSCode. The following `c_cpp_properties.json` example may be adapted for your own project.
    156 
    157         {
    158             "configurations": [
    159                 {
    160                     "name": "gameboy",
    161                     "includePath": [
    162                         "${workspaceFolder}/src/**",
    163                         "${workspaceFolder}/res/**",
    164                         "${workspaceFolder}/include/**",
    165                         "${workspaceFolder}/../../../gbdk/include/**"
    166                     ],
    167                     "defines": ["__PORT_sm83", "__TARGET_gb"],
    168                     "compilerPath": "",
    169                     "cStandard": "c11",
    170                     "intelliSenseMode": "${default}",
    171                     "compilerArgs": [],
    172                     "browse": {
    173                         "limitSymbolsToIncludedHeaders": true
    174                     }
    175                 }
    176             ],
    177             "version": 4
    178         }
    179 
    180 
    181 @anchor tools_debug
    182 # Debugging tools
    183   - @anchor Emulicious_debug
    184     __Emulicious debug adapter__  
    185     Provides source-level debugging in VS Code and Sublime Text that works with GBDK2020.  
    186     https://marketplace.visualstudio.com/items?itemName=emulicious.emulicious-debugger
    187     - If compiler optimization is making the program source hard to step through in the debugger then adding this flag to @ref lcc can help. Note that using this flag will likely reduce code performance and increase code size while enabled, so it is best to only use it temporarily.
    188         - `-Wf--max-allocs-per-node0`
    189 
    190   - @anchor romusage
    191     __romusage__  
    192     Calculate used and free space in banks (ROM/RAM) and warn about errors such as bank overflows.  
    193     See @ref romusage-settings
    194 
    195   - @anchor bgb_symbol_conversion
    196     __noi file to sym conversion for bgb__  
    197     Debug information in .noi files can be converted to a symbol format that @ref bgb "BGB" recognizes using:
    198     - @ref lcc : `-Wm-yS` (with `--debug`, or `-Wl-j` to create the .noi)
    199     - directly with @ref makebin : `-yS` (with `-j` passed to the linker)
    200 
    201   - @anchor src2sym
    202     __src2sym.pl__  
    203     Add line-by-line C source code to the main symbol file in a BGB compatible format. This allows for C source-like debugging in BGB in a limited way.
    204     https://gbdev.gg8.se/forums/viewtopic.php?id=710
    205 
    206 
    207 @anchor links_optimizing
    208 # Optimizing Assembly
    209   - @anchor optimizing_assembly
    210     __Optimizing Assembly Code__  
    211     Pret has a useful guide to optimizing assembly for
    212     the Game Boy for times when asm using in a project
    213     in addition to C.
    214     https://github.com/pret/pokecrystal/wiki/Optimizing-assembly-code
    215 
    216 
    217 @anchor tools_build_ci_cd
    218 # Continuous Integration and Deployment
    219   - @anchor GBDK_GitHub_Action_Builder
    220     __GBDK GitHub Action Builder__  
    221     A Github Action which provides basic CI/CD for building projects based on GBDK (not for building GBDK itself).  
    222     https://github.com/wujood/gbdk-2020-github-builder
    223     

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.