1
0
mirror of https://github.com/kalymos/PsNee.git synced 2026-03-04 02:34:47 +00:00

BIOS patch obtimisation

This commit is contained in:
kalymos
2025-12-29 21:07:19 +01:00
parent b86f4c8ab6
commit d1cee29d08
3 changed files with 39 additions and 40 deletions

View File

@@ -184,7 +184,7 @@ static inline void optimizePeripherals(void) {
#endif
// Handling the BIOS patch
#if defined(SCPH_102) || defined(SCPH_102_legacy) || defined(SCPH_100) || defined(SCPH_7500_9000) || defined(SCPH_7000) || defined(SCPH_5500) || defined(SCPH_3500_5000) || defined(SCPH_3000) || defined(SCPH_1000)
#if defined(SCPH_102) || defined(SCPH_100) || defined(SCPH_7500_9000) || defined(SCPH_7000) || defined(SCPH_5500) || defined(SCPH_5000) || defined(SCPH_3500) || defined(SCPH_3000) || defined(SCPH_1000)
// Clear the timer interrupt flag
//#define TIMER_TIFR_CLEAR TIFR0 |= (1 << OCF0A) // Clear the Timer0 Compare Match A interrupt flag
@@ -224,16 +224,18 @@ static inline void optimizePeripherals(void) {
#define PIN_AY_INTERRUPT_FALLING (EICRA = (EICRA & ~(1 << ISC10)) | (1 << ISC11)) // Configure INT1 for falling edge trigger
#define PIN_AY_INTERRUPT_VECTOR INT1_vect // Interrupt vector for INT1 (external interrupt)
#endif
// Handle switch input for BIOS patch
#if defined(SCPH_7000)
#define PIN_SWITCH_INPUT DDRD &= ~(1 << DDD5) // Configure PIND5 as input for switch
#define PIN_SWITCH_SET PORTD |= (1 << PD5) // Set PIND5 high (enable pull-up)
#define PIN_SWITCH_READ (PIND & (1 << PIND5)) // Read the state of PIND5 (switch input)
#endif
// Handle switch input for BIOS patch
#ifdef PATCH_SWITCH
#define PIN_SWITCH_INPUT DDRD &= ~(1 << DDD5) // Configure PIND5 as input for switch
#define PIN_SWITCH_SET PORTD |= (1 << PD5) // Set PIND5 high (enable pull-up)
#define PIN_SWITCH_READ (PIND & (1 << PIND5)) // Read the state of PIND5 (switch input)
#endif
#endif
// #if defined(PSNEE_DEBUG_SERIAL_MONITOR)
// #define DEBUG_PRINT(x) Serial.print(x)
// #define DEBUG_PRINTHEX(x) Serial.print(x, HEX)

View File

@@ -1,4 +1,4 @@
// PSNee-8.7.1
// PSNee-8.7
/*------------------------------------------------------------------------------------------------
MCU selection
@@ -6,7 +6,7 @@
// MCU // Arduino
//------------------------------------------------------------------------------------------------
//#define ATmega328_168 // Nano, Pro Mini, Uno
#define ATmega328_168 // Nano, Pro Mini, Uno
//#define ATmega32U4_16U4 // Micro, Pro Micro
//#define ATtiny85_45_25 // ATtiny
@@ -48,8 +48,9 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
//#define SCPH_7500_9000 // DX - D0 | AX - A7 | | 4.0j - CRC EC541CD0
//#define SCPH_7000 // DX - D0 | AX - A7 | | 4.0j - CRC EC541CD0 Enables hardware support for disabling BIOS patching.
//#define SCPH_5500 // DX - D0 | AX - A5 | | 3.0j - CRC FF3EEB8C
//#define SCPH_3500_5000 // DX - D0 | AX - A5 | AX - A4 | 2.2j - CRC 24FC7E17, 2.1j - CRC BC190209
//#define SCPH_3000 // DX - D5 | AX - A7, AY - A8 | AX - A6, AY - A7 | 1.1j - CRC 3539DEF6
//#define SCPH_5000 // DX - D0 | AX - A5 | AX - A4 | 2.2j - CRC 24FC7E17
#define SCPH_3500 // DX - D0 | AX - A5 | AX - A4 | 2.1j - CRC BC190209
//non-functional//#define SCPH_3000 // DX - D5 | AX - A7, AY - A8 | AX - A6, AY - A7 | 1.1j - CRC 3539DEF6
//#define SCPH_1000 // DX - D5 | AX - A7, AY - A8 | AX - A6, AY - A7 | 1.0j - CRC 3B601FC8
/*------------------------------------------------------------------------------------------------
@@ -423,7 +424,7 @@ void Init() {
#ifdef BIOS_PATCH
uint8_t Flag_Switch = 0;
GLOBAL_INTERRUPT_ENABLE;
#if defined(PATCH_SWITCH)
#ifdef SCPH_7000
PIN_SWITCH_INPUT;
PIN_SWITCH_SET;
if (PIN_SWITCH_READ == 0){

View File

@@ -48,32 +48,41 @@
#define PATCHING 0.2
#endif
#ifdef SCPH_7000
#define BIOS_PATCH
#ifdef SCPH_7000 //ok V8.7
//#define PATCH_SWITCH
#define BIOS_PATCH
#define INTERRUPT_RISING
#define CHECKPOINT 74.5 // 75.3
#define CHECKPOINT 75.2 // 75.3
#define TRIGGER 16
#define HOLD 2.85
#define PATCHING 0.1
#define HOLD 2.8
#define PATCHING 0.2
#endif
#ifdef SCPH_5500
#ifdef SCPH_5500 //ok V8.7
#define BIOS_PATCH
#define INTERRUPT_FALLING
#define CHECKPOINT 76.13
#define CHECKPOINT 76.07 //75.99 - 76.14
#define TRIGGER 21
#define HOLD 2.8
#define PATCHING 0.15
#define PATCHING 0.2
#endif
#ifdef SCPH_3500_5000
#ifdef SCPH_5000 // ok V8.7
#define BIOS_PATCH
#define INTERRUPT_FALLING
#define CHECKPOINT 75.26
#define CHECKPOINT 75.2 //75.12 - 75.27
#define TRIGGER 21
#define HOLD 2.85
#define PATCHING 0.1
#define PATCHING 0.2
#endif
#ifdef SCPH_3500 //ok V8.7
#define BIOS_PATCH
#define INTERRUPT_FALLING
#define CHECKPOINT 75.2 //
#define TRIGGER 21
#define HOLD 2.8
#define PATCHING 0.2
#endif
#ifdef SCPH_3000
@@ -92,12 +101,12 @@
#ifdef SCPH_1000
#define BIOS_PATCH
#define INTERRUPT_RISING_HIGH_PATCH
#define CHECKPOINT 83
#define TRIGGER 92
#define HOLD 2.7
#define PATCHING 0.1
#define HIGH_PATCH
#define INTERRUPT_RISING_HIGH_PATCH
#define CHECKPOINT2 27.28
#define TRIGGER2 71
#define HOLD2 2.88
@@ -108,21 +117,8 @@
Region Settings Section
------------------------------------------------------------------------------------------------*/
// #if defined(SCPH_xxx1) // NTSC U/C | America.
// #define REGION_SETTING 1
// #endif
// #if defined(SCPH_102) || defined(SCPH_xxx2) // PAL | Europ.
// #define REGION_SETTING 2
// #endif
// #if defined(SCPH_100) || defined(SCPH_7500_9000) || defined(SCPH_7000) || \
// defined(SCPH_5500) || defined(SCPH_3500_5000) || defined(SCPH_3000) || \
// defined(SCPH_1000) || defined(SCPH_xxx3) || defined(SCPH_5903) // NTSC J | Asia.
// #define REGION_SETTING 0
// #endif
#if defined(SCPH_100) || defined(SCPH_7500_9000) || defined(SCPH_7000) || \
defined(SCPH_5500) || defined(SCPH_3500_5000) || defined(SCPH_3000) || \
defined(SCPH_5500) || defined(SCPH_5000) ||defined(SCPH_3500) || defined(SCPH_3000) || \
defined(SCPH_1000) || defined(SCPH_xxx3) || defined(SCPH_5903)
#define INJECT_SCEx 0 // NTSC-J
#endif
@@ -202,13 +198,13 @@ void Debug_Inject(){ // Confirmation of region code injection
#if !defined(SCPH_xxx3) && \
!defined(SCPH_102) && !defined(SCPH_101) && !defined(SCPH_100) && !defined(SCPH_7500_9000) && \
!defined(SCPH_7000) && !defined(SCPH_5500) && !defined(SCPH_3500_5000) && !defined(SCPH_3000) && \
!defined(SCPH_7000) && !defined(SCPH_5500) && !defined(SCPH_5000) && !defined(SCPH_3500) && !defined(SCPH_3000) && \
!defined(SCPH_1000) && !defined(SCPH_5903) &&\
!defined(SCPH_xxx1) && !defined(SCPH_xxx2) && !defined(SCPH_xxxx)
#error "Console not selected! Please uncoment #define with SCPH model number."
#elif !defined(SCPH_xxx3) ^ \
defined(SCPH_102) ^ defined(SCPH_101) ^ defined(SCPH_100) ^ defined(SCPH_7500_9000) ^ \
defined(SCPH_7000) ^ defined(SCPH_5500) ^ defined(SCPH_3500_5000) ^ defined(SCPH_3000) ^ \
defined(SCPH_7000) ^ defined(SCPH_5500) ^ defined(SCPH_5000) ^ defined(SCPH_3500) ^ defined(SCPH_3000) ^ \
defined(SCPH_1000) ^ defined(SCPH_xxxx) ^ defined(SCPH_5903) ^ \
defined(SCPH_xxx1) ^ defined(SCPH_xxx2)
#error "May be selected only one console! Please check #define with SCPH model number."