From 2083f4c327f878c9980309bd9846af96316de62b Mon Sep 17 00:00:00 2001 From: Raimon Zamora Date: Fri, 27 Jan 2017 20:04:26 +0100 Subject: [PATCH] Debug in progress... --- vdp.cpp | 8 ++++++-- vm.cpp | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/vdp.cpp b/vdp.cpp index 54cd1be..4dc13bf 100644 --- a/vdp.cpp +++ b/vdp.cpp @@ -58,14 +58,16 @@ void vdp_init() { sdlRenderer = SDL_CreateRenderer(sdlWindow, -1, SDL_RENDERER_PRESENTVSYNC); //SDL_SetRenderDrawBlendMode(sdlRenderer, SDL_BLENDMODE_BLEND); SDL_RenderSetLogicalSize(sdlRenderer, 152, 120); + SDL_SetRenderDrawColor(sdlRenderer, palette[border][3], palette[border][2], palette[border][1], palette[border][0]); + for (int i = 0; i < 16 * 12; i++) screen_map[i] = i; //jtexture texture = (jtexture)malloc(sizeof(jtexture_t)); //FILE* f = fopen("font.png", "rb"); //if (!f) { error = 2; return; } //int c; //int size = 128; //Uint8* buffer = stbi_load_from_file(f, &size, &size, &c, 4); - sdlTexture = SDL_CreateTexture(sdlRenderer, SDL_PIXELFORMAT_ABGR8888, SDL_TEXTUREACCESS_STATIC, 128, 128); + sdlTexture = SDL_CreateTexture(sdlRenderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_STATIC, 128, 128); //SDL_UpdateTexture(sdlTexture, NULL, buffer, 128 * sizeof(Uint32)); //SDL_SetTextureBlendMode(sdlTexture, SDL_BLENDMODE_BLEND); //stbi_image_free(buffer); @@ -108,6 +110,7 @@ static void flip() { sb += 3584; } SDL_UpdateTexture(sdlTexture, NULL, screen_buffer, 128 * sizeof(Uint32)); + SDL_RenderClear(sdlRenderer); SDL_RenderCopy(sdlRenderer, sdlTexture, &src, &dst); SDL_RenderPresent(sdlRenderer); } @@ -155,7 +158,8 @@ void vdp_cmd_out(const unsigned char& value) { color = data_stack[0]; break; case VDP_CMD_BORDER: - border = data_stack[0]; + border = data_stack[0] & 0xF; + SDL_SetRenderDrawColor(sdlRenderer, palette[border][3], palette[border][2], palette[border][1], palette[border][0]); break; } data_stack_pos = 0; diff --git a/vm.cpp b/vm.cpp index 0c8b369..d3bbee3 100644 --- a/vm.cpp +++ b/vm.cpp @@ -93,7 +93,7 @@ t_in_port in_ports[256]; unsigned char mem[65536]; const unsigned char* vm_program = mem; -int vm_pc = 0; +int vm_pc = 2; int vm_cycles = 0; t_stack vm_datastack; t_stack vm_callstack; @@ -122,7 +122,7 @@ static void load_program(const char* filename) { } void vm_init(const char* filename) { - vm_pc = rX = rY = rZ = 0; + vm_pc = 2; rX = rY = rZ = 0; vm_datastack.data = &mem[0x8800]; vm_callstack.data = &mem[0x8900]; vm_datastack.top = vm_callstack.top = 0;