BizHawk/waterbox
James Groom a5d166cf71
Partial fix for #2353 (files in dev builds) (#2410)
* Move .so libraries to dll dir, update some build scripts

* Move OpenTK.dll.config with OpenTK.dll

* Keep EmuHawkMono.sh in Windows-built artifacts

* Add Package.sh to match QuickTestBuildAndPackage.bat

used as `Dist/BuildRelease.sh && Dist/Package.sh`

* Update GitLab CI to use Package.sh
2020-09-18 20:08:34 -05:00
..
dobie ps2 - add fenv support and recompile dobie with it 2020-08-06 07:28:24 -04:00
emulibc Waterbox: Stack Marshalling (#2209) 2020-07-07 17:48:12 -04:00
gpgx Use alloc_plain to allocate the md_cart space so it will be writable if needed 2020-08-07 07:17:14 -04:00
libco Experiment to speed up libco and hence libsnes (#2248) 2020-07-22 16:13:19 -04:00
libcxx Waterbox: Add pseudo-thread implementation and experimental DobieStation (PS2) core (#2263) 2020-08-01 07:03:29 -04:00
libsnes milestone: vb and ngp compile 2020-05-25 12:49:30 -04:00
llvm-project@eaae6dfc54 Move llvm to submodule 2020-06-19 20:56:17 -04:00
musl@54ef017c4e ps2 - add fenv support and recompile dobie with it 2020-08-06 07:28:24 -04:00
nyma Fix the faust core so it actually runs again 2020-09-14 07:23:00 -04:00
picodrive 32x - fix crash, fixes #1826 2020-05-21 10:04:12 -04:00
sameboy waterbox sgb sameboy - fix stereo audio 2020-06-06 07:55:21 -04:00
snes9x@172f73b711 snes9x - take advantage of new waterbox change tracking to fix special chip games 2020-06-03 19:25:58 -04:00
thunk minor cleanup of calling convention adapters 2020-07-11 11:09:48 -04:00
uzem milestone: vb and ngp compile 2020-05-25 12:49:30 -04:00
vb milestone: vb and ngp compile 2020-05-25 12:49:30 -04:00
waterboxhost Partial fix for #2353 (files in dev builds) (#2410) 2020-09-18 20:08:34 -05:00
.gitignore Revamp waterbox build environment and runtime. (#2027) 2020-05-20 15:34:24 -04:00
Notes on Debugging.md Waterbox: Stack Marshalling (#2209) 2020-07-07 17:48:12 -04:00
common.mak Rebuild all of waterbox as sysvabi, not msabi 2020-07-03 18:21:48 -04:00
linkscript.T waterbox: fix linker script putting __eh_frame_hdr_start in the wrong place 2020-05-25 21:02:01 -04:00
make-all-cores.sh Rework and fix up invisible allocations and sound/video format init in nyma cores. 2020-09-07 11:08:09 -04:00
readme.txt add waterbox readme notes concerning autocrlf and submodules 2020-08-06 15:56:05 -04:00

readme.txt

This is the native side of the experimental "waterbox" project for bizhawk.
It consists of a modified musl libc, and build scripts to tie it all together.


1. Set up your platform.
	The prescribed possibilities are not exhaustive. Other platforms may work.
	Here are the supported alternatives:

	PREPARE A WIN10 WORKSTATION:
	Using the guidance at (https://docs.microsoft.com/en-us/windows/wsl/wsl2-kernel & https://docs.microsoft.com/en-us/windows/wsl/install-win10):
	1. Install WSL2 
	2. Install Ubuntu 20.04 LTS (https://www.microsoft.com/en-us/p/ubuntu-2004-lts/9n6svws3rx71)
	3. Clone the bizhawk repository. You can use it through /mnt or /home if you really like 
	4. Install build tools: sudo apt-get update && sudo apt-get install gcc g++ make cmake llvm
	4b. (Note for future work: ideally the llvm installed above would not be required)

	PREPARE A WIN10 VM:
	1. Make sure the VM has "yo dawg" virtualization enabled on the guest. For example in VMWare Workstation, "Virtualize Intel VT-X/EPT or AMD-V/RVI"
	2. Follow WIN10 Workstation preparation guide
	3. If you wish to clone bizhawk on your host system (slower but maybe more convenient), you can use a VMWare shared folder and: `sudo mount -t drvfs Z: /mnt/z -o rw,relatime,metadata,uid=1000,gid=1000` (WSL won't auto-mount the shared drive)

	PREPARE A LINUX WORKSTATION:
	1. TODO. This should work, but no one has tested it yet

2. Clone bizhawk sources
	* Make sure git's core.autocrlf is set to false, as the alternatives cause git to modify the line endings in .sh-looking files which WILL break the build process, from the very first step.
	* This is NOT git's default. You will need to change it!! Go ahead and set it false globally permanently, since do you really want git modifying files?
	* Make sure you have updated the needed submodules in the waterbox directory (for example, /waterbox/llvm-project and /waterbox/musl, etc.)

3. Build libraries.
	cd musl
	./configure-for-waterbox
	make
	make install
	cd ../emulibc
	make
	cd ../libco
	make
	cd ../libcxx
	./do-everything.sh
	cd ..

4. Some additional preparation is required before all the cores can be built:
	cd nyma && ./build-and-install-zlib.sh

5. You are now ready to start building cores. Each supports `make` and `make install`, as well as `make debug` and `make install-debug` for local development.  From the root directory, the following should all be valid:
	cd gpgx && make install
	cd libsnes && make install
	cd nyma && make -f faust.mak install
	cd nyma && make -f ngp.mak install
	cd nyma && make -f turbo.mak install
	cd nyma && make -f hyper.mak install
	cd nyma && make -f pcfx.mak install
	cd nyma && make -f ss.mak install
	cd picodrive && make install
	cd sameboy && make install
	cd snes9x && make install
	cd uzem && make install
	cd vb && make install