<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=z2JjzUdMKngmXSiqkuLhQgFzC9waL">game_frog</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=z2JjzUdMKngmXSiqkuLhQgFzC9waL">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2JjzUdMKngmXSiqkuLhQgFzC9waL&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2JjzUdMKngmXSiqkuLhQgFzC9waL&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2JjzUdMKngmXSiqkuLhQgFzC9waL&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2JjzUdMKngmXSiqkuLhQgFzC9waL&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        

    <div class="list-group">
    <div class="list-group-item">
    <div style="font-size:1.3rem;">game_frog</div>
    <div class="repo-item">Retro game library for GB styled games.</div>
    <div>rad:z2JjzUdMKngmXSiqkuLhQgFzC9waL</div>
    </div>
    <div class="list-group-item">
    <div>Visibility</div>
    <div class="repo-item">public</div>
    </div>
    <div class="list-group-item">
    <div>Delegates</div><div class="repo-item">did:key:z6MkeWbwqzz3FXNeuYSfCLKyM2fjPcHLnssp5RPXduBxQei7</div>
    </div>
    <div class="list-group-item">
    <div>Default branch</div>
    <div><span class="repo-item">main &#8594 7faa402aa98c22bd22d50ba34419890b1e981377</span> (Fri Aug  9 08:01:17 2024)</div>
    </div>
    <div class="list-group-item">
    <div>Threshold</div>
    <div class="repo-item">1</div>
    </div>
    </div>
    
        <div class="list-group mt-3">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-book"></i> README.md</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;">&lt;!--
SPDX-FileCopyrightText: 2024 vivi developers &lt;vivi-ui@tuta.io&gt;
SPDX-License-Identifier: MIT
--&gt;

# GameFrog

GameFrog is a retro game library 🕹️ for GB styled games written in Rust 🦀,
TypeScript or JavaScript. Inspired by [pico8](https://www.lexaloffle.com/pico-8.php).

## Specifications

- `Display`: 160x144px 4 colors
- `Sprites`: 256 8x8 sprites
- `Map`: 128x64 tiles
- `Framerate`: ~60fps

## Features

- Develop games with Rust 🦀, TypeScript or JavaScript
- built-in sprite editor
- built-in map editor
- 3 different colors palettes (gray, green, red)
- Desktop and web support

## Planned features

- audio editor
- no_std support
- mobile support

## Differences to pico8

- Rust, TypeScript or JavaScript instead of Lua
- No built-in code editor (maybe in the future)
- No built-in terminal (maybe in the future)
- No built-in catalogue (maybe in the future)
- Code changes need to be recompiled (hot reloading maybe in the future)

## Controls

- Buttons
  - `A`: (A on keyboard)
  - `B`: (S on keyboard)
  - `Select`: (Space on keyboard)
  - `Start`: (Enter on keyboard)
  - `Mouse`: (Mouse left or right)
  - `Left`: (Left arrow key on keyboard)
  - `Right`: (Right arrow key on keyboard)
  - `Up`: (Up arrow key on keyboard)
  - `Down`: (Down arrow key on keyboard)
- Keys
  - `Escape`: switch between game and editor on debug build
  - `CTRL-P`: switch color palette
  - `CTRL-S`: saves sprite-map and tile-map on debug build
  - `CTRL-R`: restart game

## Examples

- [adventure](./examples/adventure/): minimal adventure example with sprites and
  map (rust 🦀 | wip).
- [confetti](./examples/confetti/): shows how to implement practical system
  (rust 🦀). Ported from [runty8](https://github.com/jjant/runty8).
- [adventure_deno](./examples/adventure_deno/): minimal adventure example with
  sprites and map (TypeScript | wip)
- [confetti_deno](./examples/confetti_deno/): shows how to implement practical
  system. Ported from [runty8](https://github.com/jjant/runty8). (TypeScript |
  wip)

## Crates

- [game_frog](./game_frog/): api library part, use this crate to implement you game.
- [game_frog_core](./game_frog_core/): base components for input, drawing and api.
- [game_frog_emu](./game_frog_emu/): GB emulator frontend for
  [rgy](https://github.com/YushiOMOTE/rgy).
- [game_frog_runtime](./game_frog_runtime/): runtime environment of game_frog.
- [game_frog_deno](./game_frog_deno/): api library part for TypeScript/JavaScript based on
  deno and wasm.

## Implementation details

- games and emulator are drawn to a virtual display
- for draw operations `embedded-graphics` is used
- the editor is also a `game_frog::Game`
- [MVC pattern](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)
  on runtime

## Notable dependencies

- [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics):
  Embedded graphics library for small hardware displays.

## Donation

`GameFrog` will always be free and you don&#x27;t have to pay for it. But if you like the project and you want support its development with a donation feel free to use Librepay.

&lt;a href=&quot;https://liberapay.com/vivi-ui/donate&quot;&gt;&lt;img alt=&quot;Donate using Liberapay&quot; src=&quot;https://liberapay.com/assets/widgets/donate.svg&quot;&gt;&lt;/a&gt;

## License

The source code of game_frog available under the terms of MIT license. (See
[LICENSE-MIT](./LICENSES/MIT.txt) for details.)
</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

