about summary refs log tree commit diff
path: root/main.c
diff options
context:
space:
mode:
authorManuel Palenzuela <manuelpalenzuelamerino@gmail.com>2021-07-19 23:43:08 +0100
committerManuel Palenzuela <manuelpalenzuelamerino@gmail.com>2021-07-19 23:43:08 +0100
commitfd3aac5d52d468be2e971fcaf00882d9ef6a89fd (patch)
tree4847a7302105b5f2e0d2bf703507936e7da55d1c /main.c
parentDebug: Added draw debug prints (diff)
downloadCHIP8-Emulator-fd3aac5d52d468be2e971fcaf00882d9ef6a89fd.tar.gz
CHIP8-Emulator-fd3aac5d52d468be2e971fcaf00882d9ef6a89fd.tar.bz2
CHIP8-Emulator-fd3aac5d52d468be2e971fcaf00882d9ef6a89fd.zip
Feature: Added draw instruction implementation
Diffstat (limited to 'main.c')
-rw-r--r--main.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/main.c b/main.c
index 3e4773d..79ec96c 100644
--- a/main.c
+++ b/main.c
@@ -28,13 +28,6 @@ int main(int argc, char** argv)
     printf("Hello brother!\n");
 
     uint32_t pixels[32 * 64];
-    for(int w = 0; w < 64; ++w)
-        for(int h = 0; h < 32; ++h)
-        {
-            uint8_t pixel = emulator.display[w][h];
-            pixels[64 * h + w] = (0x00FFFFFF * pixel) | 0xFF000000;
-        }
-
     SDL_Event event;
     while(emulator.is_on == 1)
     {
@@ -48,6 +41,16 @@ int main(int argc, char** argv)
 
         if(emulator.draw_flag == 1)
         {
+            //update pixel buffer with the emulator's display pixels
+            for(int w = 0; w < 64; ++w)
+            {
+                for(int h = 0; h < 32; ++h)
+                {
+                    uint8_t pixel = emulator.display[w][h];
+                    pixels[64 * h + w] = (0x00FFFFFF * pixel) | 0xFF000000;
+                }
+            }
+
             SDL_UpdateTexture(texture, NULL, pixels, sizeof(uint32_t) * 64);
             SDL_RenderClear(renderer);
             SDL_RenderCopy(renderer, texture, NULL, NULL);