mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-11-04 04:34:07 +01:00 
			
		
		
		
	added a module for interfacing to hardware LCD
This commit is contained in:
		
							parent
							
								
									c1dfa75845
								
							
						
					
					
						commit
						9c2355ba4f
					
				
							
								
								
									
										65
									
								
								src/core/src/hw/hw_lcd.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								src/core/src/hw/hw_lcd.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,65 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright (C) 2013 Citrus Emulator
 | 
			
		||||
 *
 | 
			
		||||
 * @file    hw_lcd.cpp
 | 
			
		||||
 * @author  bunnei
 | 
			
		||||
 * @date    2014-04-05
 | 
			
		||||
 * @brief   Hardware LCD interface
 | 
			
		||||
 *
 | 
			
		||||
 * @section LICENSE
 | 
			
		||||
 * This program is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU General Public License as
 | 
			
		||||
 * published by the Free Software Foundation; either version 2 of
 | 
			
		||||
 * the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but
 | 
			
		||||
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
			
		||||
 * General Public License for more details at
 | 
			
		||||
 * http://www.gnu.org/copyleft/gpl.html
 | 
			
		||||
 *
 | 
			
		||||
 * Official project repository can be found at:
 | 
			
		||||
 * http://code.google.com/p/gekko-gc-emu/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "log.h"
 | 
			
		||||
#include "core.h"
 | 
			
		||||
#include "hw_lcd.h"
 | 
			
		||||
 | 
			
		||||
namespace LCD {
 | 
			
		||||
 | 
			
		||||
static const u32 kFrameTicks = 268123480 / 30; // 268MHz / 30 frames per second
 | 
			
		||||
 | 
			
		||||
u64 g_last_ticks = 0; ///< Last CPU ticks
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
inline void Read(T &var, const u32 addr) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
inline void Write(u32 addr, const T data) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Update hardware
 | 
			
		||||
void Update() {
 | 
			
		||||
    u64 current_ticks = Core::g_app_core->ticks();
 | 
			
		||||
 | 
			
		||||
    if ((current_ticks - g_last_ticks) >= kFrameTicks) {
 | 
			
		||||
        g_last_ticks = current_ticks;
 | 
			
		||||
        NOTICE_LOG(LCD, "Update frame");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Initialize hardware
 | 
			
		||||
void Init() {
 | 
			
		||||
    g_last_ticks = Core::g_app_core->ticks();
 | 
			
		||||
 | 
			
		||||
    NOTICE_LOG(LCD, "LCD initialized OK");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Shutdown hardware
 | 
			
		||||
void Shutdown() {
 | 
			
		||||
    NOTICE_LOG(LCD, "LCD shutdown OK");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace
 | 
			
		||||
							
								
								
									
										64
									
								
								src/core/src/hw/hw_lcd.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								src/core/src/hw/hw_lcd.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright (C) 2013 Citrus Emulator
 | 
			
		||||
 *
 | 
			
		||||
 * @file    hw_lcd.h
 | 
			
		||||
 * @author  bunnei
 | 
			
		||||
 * @date    2014-04-05
 | 
			
		||||
 * @brief   Hardware LCD interface
 | 
			
		||||
 *
 | 
			
		||||
 * @section LICENSE
 | 
			
		||||
 * This program is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU General Public License as
 | 
			
		||||
 * published by the Free Software Foundation; either version 2 of
 | 
			
		||||
 * the License, or (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful, but
 | 
			
		||||
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 | 
			
		||||
 * General Public License for more details at
 | 
			
		||||
 * http://www.gnu.org/copyleft/gpl.html
 | 
			
		||||
 *
 | 
			
		||||
 * Official project repository can be found at:
 | 
			
		||||
 * http://code.google.com/p/gekko-gc-emu/
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#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 <typename T>
 | 
			
		||||
inline void Read(T &var, const u32 addr);
 | 
			
		||||
 | 
			
		||||
template <typename T>
 | 
			
		||||
inline void Write(u32 addr, const T data);
 | 
			
		||||
 | 
			
		||||
/// Update hardware
 | 
			
		||||
void Update();
 | 
			
		||||
 | 
			
		||||
/// Initialize hardware
 | 
			
		||||
void Init();
 | 
			
		||||
 | 
			
		||||
/// Shutdown hardware
 | 
			
		||||
void Shutdown();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
} // namespace
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user