mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 16:39:01 -06:00 
			
		
		
		
	Merge pull request #2634 from wwylele/battery
shared_page: stub battery state
This commit is contained in:
		@@ -6,6 +6,7 @@
 | 
				
			|||||||
#include <cstring>
 | 
					#include <cstring>
 | 
				
			||||||
#include <ctime>
 | 
					#include <ctime>
 | 
				
			||||||
#include "core/core_timing.h"
 | 
					#include "core/core_timing.h"
 | 
				
			||||||
 | 
					#include "core/hle/service/ptm/ptm.h"
 | 
				
			||||||
#include "core/hle/shared_page.h"
 | 
					#include "core/hle/shared_page.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
					////////////////////////////////////////////////////////////////////////////////////////////////////
 | 
				
			||||||
@@ -73,6 +74,12 @@ void Init() {
 | 
				
			|||||||
    // Some games wait until this value becomes 0x1, before asking running_hw
 | 
					    // Some games wait until this value becomes 0x1, before asking running_hw
 | 
				
			||||||
    shared_page.unknown_value = 0x1;
 | 
					    shared_page.unknown_value = 0x1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Set to a completely full battery
 | 
				
			||||||
 | 
					    shared_page.battery_state.charge_level.Assign(
 | 
				
			||||||
 | 
					        static_cast<u8>(Service::PTM::ChargeLevels::CompletelyFull));
 | 
				
			||||||
 | 
					    shared_page.battery_state.is_adapter_connected.Assign(1);
 | 
				
			||||||
 | 
					    shared_page.battery_state.is_charging.Assign(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    update_time_event =
 | 
					    update_time_event =
 | 
				
			||||||
        CoreTiming::RegisterEvent("SharedPage::UpdateTimeCallback", UpdateTimeCallback);
 | 
					        CoreTiming::RegisterEvent("SharedPage::UpdateTimeCallback", UpdateTimeCallback);
 | 
				
			||||||
    CoreTiming::ScheduleEvent(0, update_time_event);
 | 
					    CoreTiming::ScheduleEvent(0, update_time_event);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,7 @@
 | 
				
			|||||||
 * write access, according to 3dbrew; this is not emulated)
 | 
					 * write access, according to 3dbrew; this is not emulated)
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "common/bit_field.h"
 | 
				
			||||||
#include "common/common_funcs.h"
 | 
					#include "common/common_funcs.h"
 | 
				
			||||||
#include "common/common_types.h"
 | 
					#include "common/common_types.h"
 | 
				
			||||||
#include "common/swap.h"
 | 
					#include "common/swap.h"
 | 
				
			||||||
@@ -29,6 +30,13 @@ struct DateTime {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
static_assert(sizeof(DateTime) == 0x20, "Datetime size is wrong");
 | 
					static_assert(sizeof(DateTime) == 0x20, "Datetime size is wrong");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					union BatteryState {
 | 
				
			||||||
 | 
					    u8 raw;
 | 
				
			||||||
 | 
					    BitField<0, 1, u8> is_adapter_connected;
 | 
				
			||||||
 | 
					    BitField<1, 1, u8> is_charging;
 | 
				
			||||||
 | 
					    BitField<2, 3, u8> charge_level;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct SharedPageDef {
 | 
					struct SharedPageDef {
 | 
				
			||||||
    // Most of these names are taken from the 3dbrew page linked above.
 | 
					    // Most of these names are taken from the 3dbrew page linked above.
 | 
				
			||||||
    u32_le date_time_counter; // 0
 | 
					    u32_le date_time_counter; // 0
 | 
				
			||||||
@@ -44,7 +52,7 @@ struct SharedPageDef {
 | 
				
			|||||||
    INSERT_PADDING_BYTES(0x80 - 0x68);   // 68
 | 
					    INSERT_PADDING_BYTES(0x80 - 0x68);   // 68
 | 
				
			||||||
    float_le sliderstate_3d;             // 80
 | 
					    float_le sliderstate_3d;             // 80
 | 
				
			||||||
    u8 ledstate_3d;                      // 84
 | 
					    u8 ledstate_3d;                      // 84
 | 
				
			||||||
    INSERT_PADDING_BYTES(1);             // 85
 | 
					    BatteryState battery_state;          // 85
 | 
				
			||||||
    u8 unknown_value;                    // 86
 | 
					    u8 unknown_value;                    // 86
 | 
				
			||||||
    INSERT_PADDING_BYTES(0xA0 - 0x87);   // 87
 | 
					    INSERT_PADDING_BYTES(0xA0 - 0x87);   // 87
 | 
				
			||||||
    u64_le menu_title_id;                // A0
 | 
					    u64_le menu_title_id;                // A0
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user