From 63e46abdb8764bc97e91bae862c8d461e61b1965 Mon Sep 17 00:00:00 2001 From: bunnei Date: Tue, 8 Apr 2014 19:25:03 -0400 Subject: got rid of 'src' folders in each sub-project --- src/core/hw/hw.cpp | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ src/core/hw/hw.h | 26 ++++++++++++++++++++++++++ src/core/hw/hw_lcd.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++++ src/core/hw/hw_lcd.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 164 insertions(+) create mode 100644 src/core/hw/hw.cpp create mode 100644 src/core/hw/hw.h create mode 100644 src/core/hw/hw_lcd.cpp create mode 100644 src/core/hw/hw_lcd.h (limited to 'src/core/hw') diff --git a/src/core/hw/hw.cpp b/src/core/hw/hw.cpp new file mode 100644 index 000000000..57be4d6a8 --- /dev/null +++ b/src/core/hw/hw.cpp @@ -0,0 +1,49 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. + +#include "log.h" +#include "hw/hw.h" +#include "hw/hw_lcd.h" + +namespace HW { + +template +inline void Read(T &var, const u32 addr) { + NOTICE_LOG(HW, "Hardware read from address %08X", addr); +} + +template +inline void Write(u32 addr, const T data) { + NOTICE_LOG(HW, "Hardware write to address %08X", addr); +} + +// Explicitly instantiate template functions because we aren't defining this in the header: + +template void Read(u64 &var, const u32 addr); +template void Read(u32 &var, const u32 addr); +template void Read(u16 &var, const u32 addr); +template void Read(u8 &var, const u32 addr); + +template void Write(u32 addr, const u64 data); +template void Write(u32 addr, const u32 data); +template void Write(u32 addr, const u16 data); +template void Write(u32 addr, const u8 data); + +/// Update hardware +void Update() { + LCD::Update(); +} + +/// Initialize hardware +void Init() { + LCD::Init(); + NOTICE_LOG(HW, "Hardware initialized OK"); +} + +/// Shutdown hardware +void Shutdown() { + NOTICE_LOG(HW, "Hardware shutdown OK"); +} + +} \ No newline at end of file diff --git a/src/core/hw/hw.h b/src/core/hw/hw.h new file mode 100644 index 000000000..5b0cc8c87 --- /dev/null +++ b/src/core/hw/hw.h @@ -0,0 +1,26 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. + +#pragma once + +#include "common_types.h" + +namespace HW { + +template +inline void Read(T &var, const u32 addr); + +template +inline void Write(u32 addr, const T data); + +/// Update hardware +void Update(); + +/// Initialize hardware +void Init(); + +/// Shutdown hardware +void Shutdown(); + +} // namespace diff --git a/src/core/hw/hw_lcd.cpp b/src/core/hw/hw_lcd.cpp new file mode 100644 index 000000000..ad346c794 --- /dev/null +++ b/src/core/hw/hw_lcd.cpp @@ -0,0 +1,45 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. + +#include "log.h" +#include "core.h" +#include "hw_lcd.h" +#include "video_core.h" + +namespace LCD { + +static const u32 kFrameTicks = 268123480 / 60; ///< 268MHz / 60 frames per second + +u64 g_last_ticks = 0; ///< Last CPU ticks + +template +inline void Read(T &var, const u32 addr) { +} + +template +inline void Write(u32 addr, const T data) { +} + +/// Update hardware +void Update() { + u64 current_ticks = Core::g_app_core->GetTicks(); + + if ((current_ticks - g_last_ticks) >= kFrameTicks) { + g_last_ticks = current_ticks; + VideoCore::g_renderer->SwapBuffers(); + } +} + +/// Initialize hardware +void Init() { + g_last_ticks = Core::g_app_core->GetTicks(); + NOTICE_LOG(LCD, "LCD initialized OK"); +} + +/// Shutdown hardware +void Shutdown() { + NOTICE_LOG(LCD, "LCD shutdown OK"); +} + +} // namespace diff --git a/src/core/hw/hw_lcd.h b/src/core/hw/hw_lcd.h new file mode 100644 index 000000000..30e347ccb --- /dev/null +++ b/src/core/hw/hw_lcd.h @@ -0,0 +1,44 @@ +// Copyright 2014 Citra Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. + +#pragma once + +#include "common_types.h" + +namespace LCD { + +enum { + TOP_ASPECT_X = 0x5, + TOP_ASPECT_Y = 0x3, + + TOP_HEIGHT = 240, + TOP_WIDTH = 400, + BOTTOM_WIDTH = 320, + + FRAMEBUFFER_SEL = 0x20184E59, + TOP_LEFT_FRAME1 = 0x20184E60, + TOP_LEFT_FRAME2 = 0x201CB370, + TOP_RIGHT_FRAME1 = 0x20282160, + TOP_RIGHT_FRAME2 = 0x202C8670, + SUB_FRAME1 = 0x202118E0, + SUB_FRAME2 = 0x20249CF0, +}; + +template +inline void Read(T &var, const u32 addr); + +template +inline void Write(u32 addr, const T data); + +/// Update hardware +void Update(); + +/// Initialize hardware +void Init(); + +/// Shutdown hardware +void Shutdown(); + + +} // namespace -- cgit v1.2.3