https://github.com/hayattgd/emuratch
An emulator of scratch coded with C# and raylib
https://github.com/hayattgd/emuratch
csharp dotnet emulator raylib raylib-cs scratch
Last synced: 12 months ago
JSON representation
An emulator of scratch coded with C# and raylib
- Host: GitHub
- URL: https://github.com/hayattgd/emuratch
- Owner: hayattgd
- License: mit
- Created: 2024-10-28T15:49:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-15T13:28:58.000Z (12 months ago)
- Last Synced: 2025-07-16T06:16:33.516Z (12 months ago)
- Topics: csharp, dotnet, emulator, raylib, raylib-cs, scratch
- Language: C#
- Homepage:
- Size: 319 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# 
[](https://github.com/hayattgd/Emuratch/actions/workflows/build.yml)
[](https://github.com/hayattgd/Emuratch/blob/stable/LICENSE)
Scratch emulator made with C# & [raylib](https://www.raylib.com/)
**Visit [nightly.link](https://nightly.link/hayattgd/Emuratch/workflows/build/dev) for latest builds.**
Emuratch supports Windows, MacOS and Linux.
For using MacOS build, please execute command below to install gtk and libgdiplus.
```
brew install gtk+3
brew install mono-libgdiplus
```
## Controls
| Key | Behaviour |
|-------|---------------------|
| F1 | Load project |
| F2 | Fix window size |
| F3 | Show line |
| F5 | Press flag |
| PAUSE | Pause / resume game |
| - | Frame advance |
## Build
You need .NET SDK to build, and .NET Runtime to execute Emuratch.
First, clone repository from GitHub. ( only run one of them )
```bash
git clone https://github.com/hayattgd/Emuratch.git #HTTPS
git clone git@github.com:hayattgd/Emuratch.git #SSH
gh repo clone hayattgd/Emuratch #GitHub CLI
```
Move into repository directory and run `dotnet build`.
```bash
cd Emuratch
dotnet build
```
Executable file is located in `bin` subdirectory.
If you encounter any problem while building, please [open new issue](https://github.com/hayattgd/Emuratch/issues/new?template=bug_report.md).
## Contributing
Please take a look at [CONTRIBUTING.md](CONTRIBUTING.md).
## Features (To-do list)
### Blocks
- [ ] Motion
- [ ] Looks
- [ ] Sound
- [ ] Events
- [ ] Control
- [ ] Sensing
- [ ] Operators
- [ ] Variables (including List)
- [ ] My Blocks
Please reference [List](https://github.com/hayattgd/Emuratch/wiki/List-of-blocks-implemented) for more details.
### Advanced options
- [x] 60 FPS / Turbo mode (Speedhack)
- [ ] Interpolation
- [ ] High Quality Pen
- [x] Infinite Clones
- [x] Remove Fencing
- [ ] Remove Miscellaneous Limits
- [x] Custom Stage Size
### Emulation
- [ ] Interpreter
- [ ] Cached Interpreter
- [ ] JIT Compiler
### TAS
- [x] Pause / resume
- [x] Frame advance
- [ ] Savestate
- [ ] Record / Replay
### UI
- [ ] Cross-platform GUI (not text UI, but Graphical UI)
- [ ] Project list
- [ ] Advanced options
- [ ] TAS keybind
## LICENSE
This repository is distributed under [MIT License](./LICENSE).
## Used library
| Name | License |
|--------------------------------------------------------------|-------------------------------------------------------------------------------------------------|
| [raylib-cs](https://github.com/ChrisDill/Raylib-cs) | [Zlib license](https://github.com/chrisdill/raylib-cs/blob/master/LICENSE) |
| [Newtonsoft.Json](https://www.newtonsoft.com/json) | [MIT License](https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md) |
| [SVG.NET](https://github.com/svg-net/SVG) | [Microsoft Public License](https://github.com/svg-net/SVG/blob/master/license.txt) |
| [GtkSharp](https://github.com/GtkSharp/GtkSharp) | [GNU LIBRARY GENERAL PUBLIC LICENSE](https://github.com/GtkSharp/GtkSharp/blob/develop/LICENSE) |
(probably [Dependency graph](https://github.com/hayattgd/Emuratch/network/dependencies) has better view)