diff --git a/.gitignore b/.gitignore
index 086d9820..9711d799 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,6 @@ __pycache__
/sprites-gfx
/glsl-shaders
/token.txt
+.venv
+venv/
+venv.bak/
\ No newline at end of file
diff --git a/README.md b/README.md
index 14c8366f..3eb8f36c 100644
--- a/README.md
+++ b/README.md
@@ -65,17 +65,28 @@ Same Steps 1-4 above
13. Configure with `zelda3.ini` in the main dir
## Installing libraries on Linux/MacOS
+Changes in Python encourages use of virtual environments within projects instead of poluting the global space. The `virtualenv` package is available outside of Python via `brew` on Linux/MacOS (homebrew is available [here](https://brew.sh/)):
+
1. Open a terminal
-2. Install pip if not already installed
-```sh
-python3 -m ensurepip
-```
-3. Clone the repo and `cd` into it
+2. Clone the repo and cd into it:
```sh
git clone https://github.com/snesrev/zelda3
cd zelda3
```
-4. Install requirements using pip
+3. Install `virtualenv` via brew:
+```sh
+brew install virtualenv
+```
+4. Create a new virtual environment for Python in the `venv` directory within the cloned repo:
+```sh
+virtualenv -p python3 venv
+```
+5. Confirm that the virtual python environment is configured:
+```sh
+which pip
+/path/to/zelda2/venv/bin/pip
+```
+6. Install requirements using `pip`:
```sh
python3 -m pip install -r requirements.txt
```
@@ -83,7 +94,7 @@ python3 -m pip install -r requirements.txt
* Ubuntu/Debian `sudo apt install libsdl2-dev`
* Fedora Linux `sudo dnf install SDL2-devel`
* Arch Linux `sudo pacman -S sdl2`
-* macOS: `brew install sdl2` (you can get homebrew [here](https://brew.sh/))
+* macOS: `brew install sdl2`
## Compiling on Linux/MacOS
1. Place your US ROM file named `zelda3.sfc` in `zelda3`
diff --git a/snes/snes.c b/snes/snes.c
index e52620c0..86a5c44a 100644
--- a/snes/snes.c
+++ b/snes/snes.c
@@ -30,7 +30,7 @@ Snes* snes_init(uint8_t *ram) {
snes->cpu = cpu_init(snes, 0);
snes->apu = apu_init();
snes->dma = dma_init(snes);
- snes->ppu = ppu_init(snes);
+ snes->ppu = ppu_init();
snes->cart = cart_init(snes);
snes->input1 = input_init(snes);
snes->input2 = input_init(snes);
diff --git a/src/messaging.h b/src/messaging.h
index 817e22cd..6f31cee1 100644
--- a/src/messaging.h
+++ b/src/messaging.h
@@ -107,7 +107,7 @@ void RenderText_Draw_BorderIncremental();
void RenderText_Draw_CharacterTilemap();
void RenderText_Draw_MessageCharacters();
void RenderText_Draw_Finish();
-void VWF_RenderSingle();
+void VWF_RenderSingle(int a);
void RenderText_Draw_Choose2LowOr3();
void RenderText_Draw_ChooseItem();
void RenderText_FindYItem_Previous();
diff --git a/src/zelda_rtl.c b/src/zelda_rtl.c
index 1c74116b..ea6dec57 100644
--- a/src/zelda_rtl.c
+++ b/src/zelda_rtl.c
@@ -264,7 +264,7 @@ static void ZeldaRunGameLoop() {
void ZeldaInitialize() {
g_zenv.dma = dma_init(NULL);
- g_zenv.ppu = ppu_init(NULL);
+ g_zenv.ppu = ppu_init();
g_zenv.ram = g_ram;
g_zenv.sram = (uint8*)calloc(8192, 1);
g_zenv.vram = g_zenv.ppu->vram;