Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,7 @@ Emscripten/Release/favicon.ico
*.lib
/Emscripten/EmbeddedFiles/YapeSDL.html
Emscripten/Release/YapeSDL.html


# Executable
yapesdl
144 changes: 144 additions & 0 deletions Documentation/Build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@

# Compile

If your system supports both **[SDL]** and **[GCC]**, <br>
**Yape** should be able to compile and run.

*Even porting to `Android` is possible*

<br>
<br>

[![Button Source]][Source]   
[![Button Releases]][Releases]

<br>
<br>

## Flags

Define `AUDIO_CALLBACK` to use the **Old Audio API**.

  *Pre `2.0.4` versions of `SDL2` need this*

Define `ZIP_SUPPORT` for **Preliminary ZIP File** support.

  *Only needed for `Compressed D64` files*

<br>
<br>

## Linux

You will require the **[SDL]** package.

```sh
sudo apt install libsdl2-dev
```

The `makefile` is written for <br>
**GCC** but can easily be adjusted.

**Extract** the project files and <br>
***move*** into the it's root folder.

Compile **Yape** with:

```sh
make
```

**or**

Utilize the `Code::Blocks` project <br>
file to setup and compile **Yape**.

If the compilation finished without <br>
errors you can start **Yape** with:

```sh
./yapesdl
```

Check out what **[Arguments]** you can pass.

<br>
<br>

## Mac OS X

1. Download the **[SDL]** library.

2. Copy the **SDL2** framework file to `/Library/Frameworks/`

4. Use the provided `XCode` workspace.

<br>
<br>

## Windows

Both `32 / 64 bit` builds are possible.

##### SDL

Install either the `Mingw` or <br>
`Visual Studio` version of <br>
the **[SDL]** library.

##### SDL 2.0.4

If you use version `2.0.4` of the Windows **SDL** <br>
library, please consider upgrading to `2.0.5+` <br>
to avoid crashes caused by the **DX9** driver.

##### Microsoft Visual Studio

*It is recommended to use the `MVS 14` solution file.* <br>
*The `2015` / `2017` community versions of Visual* <br>
*Studio are free and have an excellent debugger.*

<br>
<br>

## Emscripten

- **[Install][Emscripten Installation]** **Emscripten**.

- For **Visual Studio**, install the **[Toolchain Extension]**

- Under **Windows** it's best to use the solution config provided.

*Compiling* ***Emscripten*** *manually* <br>
*requires a lot of manual workarounds.*

- You **won't** need to download any **SDL2** headers as they <br>
are automatically installed during the initial compilation.

***Reference:*** [`1`][Emscripten A] [`2`][Emscripten B]

- **Non-VS** solutions require the prebuilt **[SDL2][Emscripten Prebuilt]** files.

<br>



<!----------------------------------------------------------------------------->

[Emscripten Installation]: https://emscripten.org/docs/getting_started/downloads.html
[Emscripten Prebuilt]: https://buildbot.libsdl.org/sdl-builds/sdl-emscripten/?C=M;O=D
[Toolchain Extension]: https://github.com/nokotan/VSExtForEmscripten
[Emscripten A]: https://github.com/kripken/emscripten
[Emscripten B]: https://github.com/emscripten-ports/SDL2
[Releases]: https://github.com/calmopyrin/yapesdl/releases
[SDL]: http://libsdl.org
[GCC]: https://gcc.gnu.org/

[Arguments]: Usage.md
[Source]: ../Source


<!---------------------------------[ Buttons ]--------------------------------->

[Button Releases]: https://img.shields.io/badge/Releases-ED1965?style=for-the-badge&logoColor=white&logo=GitLFS
[Button Source]: https://img.shields.io/badge/Source_Code-2088FF?style=for-the-badge&logoColor=white&logo=BookStack
File renamed without changes.
129 changes: 129 additions & 0 deletions Documentation/Usage.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@

# Usage

<br>
<br>

## Command Line Arguments

You can specify optional settings to start **Yape** with.

<br>

##### Load File

Start **Yape** with a specific file being loaded.

```sh
yapesdl <Format> <FilePath>
```

**Formats:** `PRG` `P00` `T64` `TAP` `D64` `ZIP`

```sh
yapesdl PRG ~/Desktop/Game.PRG
```

<br>

##### C64 Mode

Start **Yape** with `C64` emulation.

```sh
yapesdl -c64
```

<br>
<br>

## Shortcuts

| Keys | Function |
|:----:|:---------|
| <kbd>F12</kbd> / <kbd>Escape</kbd> | **Exit** the emulator
| <kbd>F11</kbd> | Soft **Reset**
| <kbd>Left Control</kbd> + <kbd>F11</kbd> | Forced **Reset** \| Memory remains intact |
| <kbd>Shift</kbd> + <kbd>F11</kbd> | Hard **Reset** \| Clears Memory \| Reloads ROMs \| Rewinds Tape
| <kbd>F5</kbd> | Presses `Play` on tape
| <kbd>F6</kbd> | Presses `Stop` on tape
| <kbd>F7</kbd> | Save `BMP` screenshot
| <kbd>F8</kbd> | Toggles the **User Interface**.<br><table><tr align = 'center' ><td rowspan = '3' ><b>User Interface<br>Options</b></td><td><kbd>Escape</kbd></td><td> Exit</tr><tr align = 'center' ><td><kbd>Arrow</kbd></td><td>Move</td></tr><tr align = 'center' ><td><kbd>Enter</kbd></td><td>Select</td></tr></table>
| <kbd>F9</kbd> | Quick **Debugger**
| <kbd>F10</kbd> | Save **Settings** ➞ Home Directory
| <kbd>Left Alt</kbd> + <kbd>1 - 3</kbd> | **Window** Size
| <kbd>Left Alt</kbd> + <kbd>L</kbd> | **Emulator** Selection <ul><li><code>Commodore Plus / 4</code> \| `Cycle Based`</li><li><code>Commodore Plus / 4</code> \| `Line Based`</li><li><code>Commodore 64</code> \| `Cycle Based`</li></ul>
| <kbd>Left Alt</kbd> + <kbd>I</kbd> | Switch Emulated **Joystick** Port
| <kbd>Left Alt</kbd> + <kbd>M</kbd> | Enter **External Console** Based Monitor / Disassembler
| <kbd>Left Alt</kbd> + <kbd>P</kbd> | Toggle **CRT** Emulation
| <kbd>Left Alt</kbd> + <kbd>R</kbd> | Force **Reset** Machine
| <kbd>Left Alt</kbd> + <kbd>S</kbd> | Toggle **FPS**
| <kbd>Left Alt</kbd> + <kbd>W</kbd> | Toggle `Unlimited` ⬌ `50Hz`
| <kbd>Left Alt</kbd> + <kbd>Enter</kbd> | Toggle **Fullscreen**
| <kbd>Left Alt</kbd> + <kbd>F5</kbd> | **Save** Emulator State
| <kbd>Left Alt</kbd> + <kbd>F6</kbd> | **Load** Emulator State
| <kbd>Left Alt</kbd> + <kbd>F8</kbd> | **Save** Memory of `$2B/$2C` & `$2D/$2E`
| <kbd>Left Alt</kbd> + <kbd>Keypad +</kbd> | Collate **Replay** frequencies

<br>
<br>

## Files

Internal disk `Load` / `Save` operations are supported and will <br>
use the file system directory, usually `/home/<User>/yape`.

`PRG` files, you wish to load, should also go there.

It is also possible to ***browse the file tree*** from within the **User Interface**.

<br>
<br>

## ROMs

Full **ROM** banking is supported on the `Plus / 4`, <br>
for this use the `Attach / Detach ROM` menu.

<br>

##### Supported Default ROMs

<table>
<tr>
<th align = 'center' ><code>BASIC</code></th>
<td><b>ROM</b> with the <b>BASIC</b> interpreter</td></tr>
<tr>
<th align = 'center' ><code>KERNEL</code></th>
<td><b>ROM</b> with the <b>System Kernel</b></td></tr>
<tr>
<th align = 'center' ><code>3PLUS1LOW</code></th>
<td><b>Low</b> bank <b>ROM</b> of the <code>Plus / 4</code> software</td></tr>
<tr>
<th align = 'center' ><code>3PLUS1HIGH</code></th>
<td><b>High</b> bank <b>ROM</b> of the <code>Plus / 4</code> software</td></tr>
</table>

<br>

##### C64 Mode

In this mode, a handful of cartridges can be <br>
loaded using the `Attach / Detach ROM` option.

<br>
<br>

## Keyboard Mapping

Some keys need to be mapped differently <br>
in the emulator and are dependent on <br>
the **SDL**, as such *your mileage may vary*.

| Commodore | Emulator |
|:---------:|:--------:|
| <kbd>£</kbd> | <kbd>End</kbd>
| <kbd>Clr / Home</kbd> | <kbd>Home</kbd>
| <kbd>Restore</kbd> | <kbd>Print Screen</kbd>

<br>
File renamed without changes.
Loading