8bitworkshop/README.md

133 lines
3.6 KiB
Markdown
Raw Normal View History

2021-07-15 21:54:35 +00:00
# 8bitworkshop
2019-08-21 19:44:51 +00:00
2022-02-21 15:33:59 +00:00
![Build Status](https://github.com/sehugg/8bitworkshop/actions/workflows/node.js.yml/badge.svg)
2021-10-11 02:56:41 +00:00
2021-07-15 21:54:35 +00:00
## Use Online
* Latest release: https://8bitworkshop.com/
2022-02-21 16:43:58 +00:00
* Latest Github build: https://sehugg.github.io/8bitworkshop/
2021-07-15 21:54:35 +00:00
## Install Locally
2018-12-20 18:09:32 +00:00
2022-02-25 18:07:02 +00:00
To clone just the main branch:
```sh
2023-02-07 19:41:00 +00:00
git clone -b master --single-branch git@github.com:sehugg/8bitworkshop.git
2022-02-25 18:07:02 +00:00
```
2018-12-20 18:09:32 +00:00
To build the 8bitworkshop IDE:
2018-07-26 15:50:20 +00:00
```sh
git submodule init
git submodule update
npm i
npm run build
```
To use GitHub integration locally, download the Firebase config file, e.g. https://8bitworkshop.com/v[version]/config.js
### Start Local Web Server
2018-07-26 15:50:20 +00:00
2018-12-20 18:09:32 +00:00
Start a web server on http://localhost:8000/ while TypeScript compiles in the background:
```sh
make tsweb
```
2021-07-15 21:54:35 +00:00
### Run Tests
```sh
npm test
```
2022-02-21 16:43:58 +00:00
Note: Github tests may fail due to lack of API key.
2020-07-17 17:06:24 +00:00
2019-08-21 19:44:51 +00:00
## License
2022-02-21 16:43:58 +00:00
Copyright © 2016-2022 [Steven Hugg](https://github.com/sehugg).
2018-12-20 18:09:32 +00:00
This project is [GPL-3.0](https://github.com/sehugg/8bitworkshop/blob/master/LICENSE) licensed.
2018-12-20 18:09:32 +00:00
2019-05-20 15:38:27 +00:00
Dependencies retain their original licenses.
2019-05-23 21:59:02 +00:00
All included code samples (all files under the presets/ directory) are licensed under
[CC0](https://creativecommons.org/publicdomain/zero/1.0/)
unless otherwise licensed.
2020-07-01 23:16:38 +00:00
## Dependencies
2020-07-02 17:33:22 +00:00
The IDE uses custom forks for many of these, found at https://github.com/sehugg?tab=repositories
2020-07-01 23:16:38 +00:00
### Emulators
* https://javatari.org/
* https://jsnes.org/
* https://www.mamedev.org/
* https://github.com/floooh/chips
* https://github.com/DrGoldfire/Z80.js
* http://www.twitchasylum.com/jsvecx/
2020-07-06 23:53:20 +00:00
* https://github.com/curiousdannii/ifvms.js/
* https://6502ts.github.io/typedoc/stellerator-embedded/
* https://github.com/yhzmr442/jspce
2020-07-01 23:16:38 +00:00
### Compilers
* https://cc65.github.io/
2020-07-01 23:16:38 +00:00
* http://sdcc.sourceforge.net/
* http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html
* https://github.com/batari-Basic/batari-Basic
* https://www.veripool.org/wiki/verilator
* http://mcpp.sourceforge.net/
2020-07-06 23:53:20 +00:00
* http://www.ifarchive.org/indexes/if-archiveXinfocomXcompilersXinform6.html
* https://github.com/dmsc/fastbasic
2021-06-01 20:27:43 +00:00
* https://github.com/wiz-lang/wiz
* https://github.com/sylefeb/Silice
2023-11-28 03:30:16 +00:00
* https://github.com/steux/cc7800
2023-12-27 20:24:42 +00:00
* https://bellard.org/tcc/
2020-07-01 23:16:38 +00:00
### Assemblers/Linkers
* https://dasm-assembler.github.io/
* http://atjs.mbnet.fi/mc6809/Assembler/xasm-990104.tar.gz
* http://48k.ca/zmac.html
* https://github.com/apple2accumulator/merlin32
* https://github.com/camsaul/nesasm
2020-07-01 23:16:38 +00:00
### Dev Kits / Libraries
* https://shiru.untergrund.net/code.shtml
* http://www.colecovision.eu/ColecoVision/development/libcv.shtml
* https://github.com/toyoshim/tss
* https://github.com/lronaldo/cpctelera
2020-07-01 23:16:38 +00:00
### Firmware
* http://www.virtualdub.org/altirra.html
* https://github.com/MEGA65/open-roms
* https://sourceforge.net/projects/cbios/
* https://www.pledgebank.com/opense
2021-06-01 20:27:43 +00:00
### Related Projects
* https://github.com/sehugg/8bitworkshop-compilers
* https://github.com/sehugg/8bit-tools
* https://github.com/sehugg/awesome-8bitgamedev
2023-11-05 18:54:24 +00:00
## Tool Server (experimental)
This is an experimental feature that relies on a Docker container to provide compiler tools like [llvm-mos](https://github.com/llvm-mos/llvm-mos-sdk).
Right now, you have to run locally and build your own docker container.
```sh
docker build -t 8bitws-server-debian scripts/docker
docker run -p 3009:3009 8bitws-server-debian
echo '{"REMOTE_URL":"http://localhost:3009/build"}' > remote.json
```
Then add "&tool=llvm-mos" to your URL, like
[this](http://localhost:8000/?platform=c64&file=sprite_collision.c&tool=llvm-mos).
You can also rename your C files to have the suffix "-llvm.c".
Right now only the platforms c64, atari8, nes (NROM), and pce are supported.
Not very many of the current examples work with the new toolchain.