Fix all linking errors, now figure out segfault on vkCreateInstance (Window.cpp:45)

This commit is contained in:
Simone Coco
2022-08-03 18:25:59 +02:00
committed by CocoSimone
parent a54f2cbfb7
commit 17f7ab06a4
9 changed files with 38 additions and 9 deletions

View File

@@ -4,4 +4,4 @@
[![CodeFactor](https://www.codefactor.io/repository/github/cocosimone/natsukashii/badge/master)](https://www.codefactor.io/repository/github/cocosimone/natsukashii/overview/master)
[![build](https://github.com/CocoSimone/natsukashii/actions/workflows/build.yml/badge.svg)](https://github.com/CocoSimone/natsukashii/actions/workflows/build.yml)
Multi-system emulator in its infancy
Multi-system emulator in its infancy

View File

@@ -1,10 +1,12 @@
cmake_minimum_required(VERSION 3.20)
project(parallel-rdp)
file(GLOB_RECURSE parallel-rdp-cpp parallel-rdp-standalone/parallel-rdp/*.cpp)
file(GLOB_RECURSE parallel-rdp-cpp parallel-rdp/*.cpp)
add_library(parallel-rdp
${parallel-rdp-cpp}
ParallelRDPWrapper.cpp
ParallelRDPWrapper.hpp
vulkan/buffer.cpp
vulkan/buffer_pool.cpp
vulkan/command_buffer.cpp
@@ -53,7 +55,9 @@ target_include_directories(parallel-rdp PUBLIC
vulkan
vulkan-headers/include
util
../src/core/n64
../../src/cores/
.
..
)
if(WIN32)

View File

@@ -4,8 +4,6 @@ project(n64)
add_subdirectory(core)
add_library(n64
ParallelRDPWrapper.hpp
ParallelRDPWrapper.cpp
Core.cpp
Core.hpp
memory_regions.hpp)

View File

@@ -1,6 +1,6 @@
#include <Core.hpp>
#include <SDL2/SDL_events.h>
#include <ParallelRDPWrapper.hpp>
#include "parallel-rdp-standalone/ParallelRDPWrapper.hpp"
namespace n64 {
Core::Core(const std::string& rom) {

View File

@@ -85,6 +85,14 @@ template u8 Mem::Read<u8, false>(Registers& regs, u32 vaddr, s64 pc);
template u16 Mem::Read<u16, false>(Registers& regs, u32 vaddr, s64 pc);
template u32 Mem::Read<u32, false>(Registers& regs, u32 vaddr, s64 pc);
template u64 Mem::Read<u64, false>(Registers& regs, u32 vaddr, s64 pc);
template s8 Mem::Read<s8>(Registers& regs, u32 vaddr, s64 pc);
template s16 Mem::Read<s16>(Registers& regs, u32 vaddr, s64 pc);
template s32 Mem::Read<s32>(Registers& regs, u32 vaddr, s64 pc);
template s64 Mem::Read<s64>(Registers& regs, u32 vaddr, s64 pc);
template s8 Mem::Read<s8, false>(Registers& regs, u32 vaddr, s64 pc);
template s16 Mem::Read<s16, false>(Registers& regs, u32 vaddr, s64 pc);
template s32 Mem::Read<s32, false>(Registers& regs, u32 vaddr, s64 pc);
template s64 Mem::Read<s64, false>(Registers& regs, u32 vaddr, s64 pc);
template <class T, bool tlb>
void Mem::Write(Registers& regs, u32 vaddr, T val, s64 pc) {
@@ -119,4 +127,12 @@ template void Mem::Write<u8, false>(Registers& regs, u32 vaddr, u8 val, s64 pc);
template void Mem::Write<u16, false>(Registers& regs, u32 vaddr, u16 val, s64 pc);
template void Mem::Write<u32, false>(Registers& regs, u32 vaddr, u32 val, s64 pc);
template void Mem::Write<u64, false>(Registers& regs, u32 vaddr, u64 val, s64 pc);
template void Mem::Write<s8>(Registers& regs, u32 vaddr, s8 val, s64 pc);
template void Mem::Write<s16>(Registers& regs, u32 vaddr, s16 val, s64 pc);
template void Mem::Write<s32>(Registers& regs, u32 vaddr, s32 val, s64 pc);
template void Mem::Write<s64>(Registers& regs, u32 vaddr, s64 val, s64 pc);
template void Mem::Write<s8, false>(Registers& regs, u32 vaddr, s8 val, s64 pc);
template void Mem::Write<s16, false>(Registers& regs, u32 vaddr, s16 val, s64 pc);
template void Mem::Write<s32, false>(Registers& regs, u32 vaddr, s32 val, s64 pc);
template void Mem::Write<s64, false>(Registers& regs, u32 vaddr, s64 val, s64 pc);
}

View File

@@ -56,6 +56,11 @@ T Cop0::GetReg(u8 addr) {
}
}
template u32 Cop0::GetReg<u32>(u8 addr);
template u64 Cop0::GetReg<u64>(u8 addr);
template s32 Cop0::GetReg<s32>(u8 addr);
template s64 Cop0::GetReg<s64>(u8 addr);
template<class T>
void Cop0::SetReg(u8 addr, T value) {
switch(addr) {
@@ -102,6 +107,11 @@ void Cop0::SetReg(u8 addr, T value) {
}
}
template void Cop0::SetReg<u32>(u8 addr, u32 value);
template void Cop0::SetReg<u64>(u8 addr, u64 value);
template void Cop0::SetReg<s32>(u8 addr, s32 value);
template void Cop0::SetReg<s64>(u8 addr, s64 value);
#define vpn(addr, PageMask) (((((addr) & 0xFFFFFFFFFF) | (((addr) >> 22) & 0x30000000000)) & ~((PageMask) | 0x1FFF)))
TLBEntry* TLBTryMatch(Registers& regs, u32 vaddr, int* match) {

View File

@@ -376,9 +376,10 @@ void Window::Update(std::unique_ptr<BaseCore>& core) {
}
}
if(ImGui::MenuItem("Game Boy")) {
ImGui::BeginPopup("##unimplemented_Core");
ImGui::TextColored({1.0, 0.0, 0.0, 0.7}, "Unimplemented core 'Game Boy'!");
ImGui::EndPopup();
if(ImGui::BeginPopup("##unimplemented_Core")) {
ImGui::TextColored({1.0, 0.0, 0.0, 0.7}, "Unimplemented core 'Game Boy'!");
ImGui::EndPopup();
}
}
ImGui::EndMenu();
}