BizHawk/waterbox
CasualPokePlayer 64ac7253f6 Add transfer pak support to ares, add n64 mouse support to ares, various cleanups all around
Squashed commit of the following:

commit 1f6cdb99a8486b3f89395b2bd3f13f730e21f743
Merge: bcef146d7 ecd428898
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 03:05:12 2022 -0700

    Merge branch 'transfer_pak_ares' of https://github.com/CasualPokePlayer/BizHawk into transfer_pak_ares

commit bcef146d7d62e5ce435ae3fc4d585d71d98bec52
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 03:05:05 2022 -0700

    a

commit ecd4288980f7311eba3bdd0a9d1a3fca02e42e43
Merge: 86a7e3e85 ccb24cc79
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:57:00 2022 -0700

    Merge branch 'transfer_pak_ares' of https://github.com/CasualPokePlayer/BizHawk into transfer_pak_ares

commit 86a7e3e85bc1b3cb979671edcbfca66e69d5212b
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:56:50 2022 -0700

    a

commit ccb24cc79fd922b1e3e3b80d660c7b7696f0cf84
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:51:36 2022 -0700

    a

commit 285fd66f9240dfa502a269adb19cc1f3d11236c5
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 02:02:31 2022 -0700

    misc

commit 9fb76345e4507cbd53ab5e4c2c61a5cb992b7241
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 01:50:46 2022 -0700

    frontend hookup

commit dabee3a4d63c5801e3147dd758e3c187be0ab8bd
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Mon Mar 21 01:26:48 2022 -0700

    actually hook other shit up also delete some shit

commit df632d6ddf6eaeb61ad3ad640851709c2614bfbd
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 21:37:18 2022 -0700

    a

commit 143c4039453290ef1e8a4cf53ddea534efa0cea3
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 21:28:07 2022 -0700

    a

commit fd75dcc5150860171e3d96fd0bcb4749eeb99378
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 21:03:51 2022 -0700

    a

commit ea039643e9a093f63f8dc8c7446e9e70f7f965f0
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:56:46 2022 -0700

    a

commit 8b373d2ba547cd1ab61360e8129f31452014c728
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:33:47 2022 -0700

    a

commit dc18a90bebcae013aca4494c1e0a83603dbdbea6
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:18:34 2022 -0700

    a

commit 3d0eba5f57d95f7cfd74b662f70a40cac5638539
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 19:16:56 2022 -0700

    a

commit d97ea34753c007663ea0e629df8830e6aae98e91
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 18:28:01 2022 -0700

    a

commit 7a1fe0442c7dd6425048207a19b1b18f9dc3e344
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 17:22:10 2022 -0700

    a

commit 421de8ebb8c02736e65f28a88a17cabf297c6e10
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 16:57:47 2022 -0700

    is this right?

commit 9fcaa1905b6e3b6bc73c8e8c15c55cab06ddb7f4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 15:57:32 2022 -0700

    rework audio

commit 602577ded89f2fd7d4514792e4f9f485235ce2f1
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:54:29 2022 -0700

    doh

commit 5521dab709551d9f02bd0cf0d979d8a3860541c6
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:42:50 2022 -0700

    a

commit bc10461eb9d47bea5acc7cc22963b8e7025b9a31
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:41:17 2022 -0700

    a

commit d088719299bc0946962bba9404469fe9628633c6
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:25:07 2022 -0700

    a

commit d425c49bc2ea7925f485379dad33326fa8566754
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:18:33 2022 -0700

    a

commit ea7c69a512ce84977ad92be0c3f97f396dcf13a7
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:13:41 2022 -0700

    a

commit b350580b5c8ce455d6ffa41237c2564e8fa76a58
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 14:05:46 2022 -0700

    a

commit 5983b23e760e5ca8a3c8141075f383275da570b4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 13:57:25 2022 -0700

    a

commit 12de82e8841284cb70ec02765d86e3729661dcb4
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 13:46:58 2022 -0700

    a

commit 992bdf114c24a8a3d37c110629f9a66bfaf21cf8
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 13:05:28 2022 -0700

    a

commit 3637649dde95ff4fb24474ee0d1dde795cbc5fe3
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 12:49:52 2022 -0700

    o

commit 7d7264b92822ce34ba5412f4cf869c6a4e6fb9b9
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 12:41:55 2022 -0700

    testing time

commit bb3a2f89861cdf429091d8253a656e782b68e33b
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 12:14:30 2022 -0700

    bleh

commit df46cc34d6edc312b519c98b6c7be3ac6ab89bd2
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 06:18:28 2022 -0700

    bleh

commit 21c28a81726ab9a9f206a58424e5434cd0bac1a8
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:43:39 2022 -0700

    hack test time

commit 3d9e462addc20d6b6d8ffc41595c4751d6fc2975
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:36:51 2022 -0700

    oh right need to build it

commit a970194f64ac0652f97236debd39e142b01d4dcf
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:32:07 2022 -0700

    guessing not endianess, maybe need more reset state work?

commit 5d4c11dbf2f767e63d505da22d6bbdef76a4e28b
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:23:52 2022 -0700

    is this a endianess issue?

commit c5fcd687f5e2c62b1f0f065a3b9c9ffa30867eeb
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:11:43 2022 -0700

    debug time

commit 437071710ea040a466dd25d7fe691fcdbdb95030
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 05:03:58 2022 -0700

    better emulate reset thingie

commit e02503c3f74aa89784b5cc43d1fe5daa6fedf5d3
Author: CasualPokePlayer <50538166+CasualPokePlayer@users.noreply.github.com>
Date:   Sun Mar 20 04:31:42 2022 -0700

    initial mouse and transfer pak support
2022-03-21 03:08:23 -07:00
..
ares64 Add transfer pak support to ares, add n64 mouse support to ares, various cleanups all around 2022-03-21 03:08:23 -07:00
bsnescore Fix #3173 by only calling bus.map() on initial power, not subsequent calls (#3176) 2022-03-09 04:31:30 +01:00
dobie ps2 - add fenv support and recompile dobie with it 2020-08-06 07:28:24 -04:00
emulibc Handle reentrant calls in waterbox (#3007) 2021-11-23 14:20:12 -05:00
gpgx Genesis GPGX SRAM support for games larger than 8MB (#3139) 2022-02-15 23:25:38 +03:00
libco Implement bsnes version 115 as a new core (#2740) 2021-05-14 20:06:13 -05:00
libcxx Fix executable bits on some wbox scripts 2021-03-20 08:11:48 +10:00
libsnes Add support for more SGB firmware + Use homebrew bootroms instead of bsnes' illegally provided official ones (#2837) 2021-07-14 12:48:02 -05:00
llvm-project@eaae6dfc54 Move llvm to submodule 2020-06-19 20:56:17 -04:00
melon get render threading working in melon 2022-03-16 19:19:36 -07:00
musl@76d5e7a4b0 Pull musl submodule, complete script refactor and update readme 2021-03-20 08:11:48 +10:00
nyma prep for ICycleTiming for Nyma 2022-02-02 21:12:50 -08:00
picodrive 32x - fix crash, fixes #1826 2020-05-21 10:04:12 -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
uzem milestone: vb and ngp compile 2020-05-25 12:49:30 -04:00
vb add options for virtualboy to only show left or right screen (#2842) 2021-09-01 20:41:02 -05:00
waterboxhost Fix waterboxhost for version 1.60.0-nightly 2022-01-29 00:22:54 +01:00
.gitignore Revamp waterbox build environment and runtime. (#2027) 2020-05-20 15:34:24 -04:00
Notes on Debugging.md Update notes on debugging 2021-04-09 20:59:22 -04:00
common.mak Copy to Assets and output when building wbox cores and host 2021-04-28 16:06:41 +10: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 [melonDS] Redo porting, waterbox style now (#2945) 2021-10-24 21:40:23 +03:00
readme.txt Nymashock (#3093) 2022-01-30 08:52:49 -08: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 initialized and updated the needed submodules in the waterbox directory (for example, /waterbox/llvm-project and /waterbox/musl, etc.)

3. Consider whether it is time to update your build environment (i.e. sudo apt-get upgrade). We are not prescribing versions for build environment tools (gcc, etc.) so you may as well upgrade everything to the latest if you're making builds for other people.

4. Build libraries.
	cd musl
	./wbox_configure.sh
	./wbox_build.sh
	cd ../emulibc
	make
	cd ../libco
	make
	cd ../libcxx
	./do-everything.sh
	cd ..

5. If errors happen in the libcxx part, it can be due to musl mismatching your current build environment. This happens when your build environment is updated; musl does not track its build dependencies correctly. do `make clean` on musl (and delete the non-checkedin directories just to be safe) and try again from the musl step.

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

7. 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 melon && 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 nyma && make -f shock.mak install
	cd picodrive && make install
	cd snes9x && make install
	cd uzem && make install
	cd vb && make install