mirror of
https://github.com/kalymos/PsNee.git
synced 2026-01-11 23:53:07 +00:00
nexgen
This commit is contained in:
parent
18d66421f7
commit
16d7010788
27
README.md
Normal file
27
README.md
Normal file
@ -0,0 +1,27 @@
|
||||
# PSNee V8.5
|
||||
THE modechip supports the largest number of Playstation 1 variants, and the largest number of microcontrollers
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
- Remove Disk Region Protection
|
||||
- Patch BIOS additional region features
|
||||
- A specific library for card support, to solve the fuse setting problem
|
||||
- The mode does not take care of changing PAL <-> NTSC video output
|
||||
|
||||
## Supported Playstation 1
|
||||
All US models, all European models, and the vast majority of Japanese models.
|
||||
|
||||
## Supported platforms
|
||||
- ATmega328(A/P/PA) @16Mhz
|
||||
- ATmega168(A/P/PA) @16Mhz
|
||||
- Atmega32U4 @16Mhz
|
||||
- ATtiny25/45/85 @8Mhz no BIOS patch!
|
||||
- ATtiny48/88 works in progress
|
||||
- LGT8F328 works in progress
|
||||
|
||||
## Installation
|
||||
For all useful information consult the PDF
|
||||
|
||||
## Model tested
|
||||

|
||||
174
changelog
Normal file
174
changelog
Normal file
@ -0,0 +1,174 @@
|
||||
Update:july 2024
|
||||
|
||||
-Reimplementation of support for MUCs ATtiny25/45/85, Atmega32u4
|
||||
-added support for MUC LGF8F328
|
||||
|
||||
-------------------------------------------------------------
|
||||
|
||||
Update: 9 oct 2023
|
||||
|
||||
-Added support by brill & postal2201 of the bios patch for japanese consoles https://github.com/postal2201/PSNee_V8
|
||||
|
||||
--------------------------------------------------------------
|
||||
|
||||
Update: 16 August 2017
|
||||
|
||||
-changed the timing for the PAL PM-41 patch to make it more reliable (I had it failing occasionally).
|
||||
Also I added a warning for people not to use 5V.
|
||||
|
||||
--------------------------------------------------------------
|
||||
|
||||
Update: 16 July 2017
|
||||
|
||||
-The BIOS patch works!
|
||||
For now it only supports Arduino boards (ATmega chips).
|
||||
Also, the Arduino must either be powered on first or have no bootloader present (flashed using SPI) since I expect a signal ~1 second after power on.
|
||||
8Mhz boards are also supported.
|
||||
|
||||
--------------------------------------------------------------
|
||||
|
||||
Update: 10 July 2017
|
||||
|
||||
- finished porting to ATtinyX5 (25,45,85 although the 25 has too little resources. for now.)
|
||||
- store the licensing symbols in flash again, frees a lot of RAM
|
||||
- bit retrieval code lifted from AttyNee (Nice work guys!)
|
||||
- extra RAM allows SoftwareSerial debugging prints on an ATtiny45!
|
||||
- nicer intro readme ;p
|
||||
|
||||
---------------------------------------------------------------
|
||||
|
||||
Update 9 July 2017
|
||||
|
||||
Sure. Consider it work in progress quality ;)
|
||||
Main changes:
|
||||
- figured out ATtiny pin assignments :p
|
||||
- RAM use reduced by only storing the "SCE" part of the license string once. Using a somewhat farfetched method. Maybe someone can make it nicer, without the recursion and over engineering? :p
|
||||
- tried getting debug prints but it doesn't look like it'll happen (on ATtiny45), too little RAM > the chip crashes
|
||||
- SUBQ sampling timing reverted to sample while clock is low, instead of right after it goes high
|
||||
|
||||
-------------------------------------------------------------
|
||||
|
||||
Updat 29 June 2017
|
||||
- final modchip function I / Os: SQCK, SCLK, data, gate_wfck
|
||||
- hysteresis for injections, fixes anti-mod occasionally triggering when using worn drives
|
||||
- optimized injection timing for multi-region, multi BIOS versions (Sony added more protection checks over time)
|
||||
- first attempt to make it more portable to other Arduino variants
|
||||
- auto console detection works reliably, with and without Arduino bootloader present
|
||||
- pin assignments changed for practical / installation reasons (ICSP capability, wire routing)
|
||||
- so many changes, it surely contains all new bugs ;)
|
||||
|
||||
Pin assignments are finalized. We can start producing final installation images / help!
|
||||
As always, I appreciate code reviews and bug fixes. I'm sorry some of it got so messy ;p
|
||||
psxdev
|
||||
|
||||
------------------------------------------------------------
|
||||
|
||||
Update 4 June 2017
|
||||
- unified SCEX injection function / easier to read code
|
||||
- PU-22+ now work without the WFCK wire (but depends on tight timings, tested on 8 and 16Mhz mcu)
|
||||
- interrupts disabled while sampling SUBQ > much better performance capturing all events correctly
|
||||
- now blinks the built-in LED on injections for debugging
|
||||
psxdev
|
||||
|
||||
------------------------------------------------------------
|
||||
|
||||
Update 31st May 2017
|
||||
|
||||
- supports all motherboard versions except PU-41 (PAL) (will get to it!)
|
||||
- WFCK modulated injection method for PU-22 and up, just like the last multimode 3 chips
|
||||
- minimized CD controller interference: PsNee only ever speaks when it has to (also: full stealth)
|
||||
- not relying on BIOS delays: perfect boot disregarding extension cards etc
|
||||
- might not be bug free! I'm just one guy and testing on a dozen consoles takes time ;)
|
||||
psxdev
|
||||
|
||||
-------------------------------------------------------------
|
||||
|
||||
Update 27th of May 2017
|
||||
This version is compatible with 8Mhz and 16Mhz ATmega328 / Arduino boards.
|
||||
It uses polling to grab the SUBQ packets. This works better than relying on interrupts.
|
||||
I even have a few cycles to spare on a 8Mhz chip!
|
||||
psxdev
|
||||
|
||||
--------------------------------------------------------------
|
||||
|
||||
Update 15th of May 2017
|
||||
PSNee now watches the subchannel data and looks at the position information contained within.
|
||||
This allows deterministic SCEX injections. It knows (almost) exactly when to inject the SCEX string.
|
||||
Therefore it is now a stealth modchip :)
|
||||
Required connections: GND, VCC, data, gate, SQCL, SUBQ
|
||||
No more need to watch the PSX reset or lid open signals or any other typical modchip points (like "sync")
|
||||
WIP! Only tested on PU-18 board. Should work fine on PU-7, PU-8, PU-18 and PU-20.
|
||||
Will need adaption for PU-22 to PU-41 (SCPH-750x, 900x and PSOne).
|
||||
Note: Once this is installed in a PSX, mind the Pin13 LED that many Arduino boards have. Do not upload new sketches while the PSX is on!
|
||||
(If the PSX is on while uploading a sketch (making the LED blink), a voltage will be fed back into the SCLK pin on the HC-05 in the PSX.
|
||||
This didn't break my PSX in testing but it does stun the chip and halt CD operation. I'm thinking of a better method to do this but for now I need Arduino pin13..)
|
||||
Very much recommended to install a 3.3V chip!
|
||||
psxdev
|
||||
|
||||
-------------------------------------------------------------
|
||||
|
||||
Update 7th of May 2017
|
||||
Branched and tweaked for use with the Position 0 switch on a PSX laser.
|
||||
(Requires a bit of sticky tape at the point where the switch touches the laser assembly.)
|
||||
This allows deterministic SCEX injections, without relying on timing. Also gets rid of connection wires for LID and RESET.
|
||||
WIP!
|
||||
psxdev
|
||||
|
||||
--------------------------------------------------------------
|
||||
New in this version! V6
|
||||
--------------------------------------------------------------
|
||||
A lot!
|
||||
- The PAL SCPH-102 NTSC BIOS-patch works flawlessly! For speed reasons this is implemented in bare
|
||||
AVR C. It is functionally identical to the OneChip modchip, this modchip firmware was disassembled,
|
||||
documented (available on request, but written in Dutch...) and analyzed with a logic analyzer to
|
||||
make sure PsNee works just as well.
|
||||
- The code now is segmented in functions which make the program a lot more maintable and readable
|
||||
- Timing is perfected, all discs (both backups and originals of PAL and NTSC games) now work in the
|
||||
PAL SCPH-102 test machine
|
||||
- It was found out that the gate signal doesn't havbe to be hooked up to a PAL SCPH-102 Playstation
|
||||
to circumvent the copy protection. This is not tested on other Playstation models so the signal still
|
||||
is available
|
||||
- The /xlat signal is no longer required to time the PAL SCPH-102 NTSC BIOS-patch
|
||||
- Only AVR PORTB is used for compatibility reasons (almost all the AVR chips available have PORTB)
|
||||
|
||||
-------------------------------------------------------------
|
||||
A minor detail: The lid detection is missing its digitalRead() ;p
|
||||
psxdev
|
||||
|
||||
-------------------------------------------------
|
||||
VERSION 2! :D
|
||||
-------------------------------------------------
|
||||
What has changed?
|
||||
- Thanks to TriMesh, the gate-pin is now also used to determine in which model of
|
||||
Playstation PsNee is installed. The modchip algorithm thus can be optimized for
|
||||
optimal performance on specific Playstation revisions. This works by monitoring
|
||||
whether a clock signal is present on this pin - when there is one, the modchip is
|
||||
installed in a PU-22, PU-23 or PSOne Playstation, else it is installed in an older
|
||||
model Playstation. In this version of PsNee, nothing is actually done with this information.
|
||||
- Thanks to -again- TriMesh, NTSC support for PAL SCPH-102 Playstations is added! This uses
|
||||
the same method the OneChip modchip used for achieving this:
|
||||
1. Monitor the XLAT signal from the CD mechanism controller chip. This requires
|
||||
another connection to the Playstation. When this signal is 0, the first CD copy
|
||||
protection is passed! After this, there is another one.
|
||||
2. After this, watch the Address18-pin (pin 31) on the BIOS-chip. When this signal
|
||||
is high, this means the second CD copy protection is about to run.
|
||||
3. Wait a short time.
|
||||
4. Pull the Data2-pin (pin 15) on the BIOS-chip to 0. This effectively blocks the
|
||||
execution of the region check of the inserted disc.
|
||||
5. The Playstation plays the inserted disc and doesn't care whether it's PAL or NTSC!
|
||||
6. Release the 0 of the Data2-pin.
|
||||
To correctly output a PAL video color signal for a PAL TV on a PAL PSOne with an NTSC disc
|
||||
inserted, Pin 3 of IC502 must be grounded with an external switch. The modchip also could do
|
||||
this, although we would need a device with more pins available.
|
||||
- The outputted data signal is now "sliced up" to improve (or less distort) the tracking
|
||||
signal from the CD mechanism: later Playstations use the CD tracking signal for transmitting
|
||||
the SCEx-string to the Playstation instead of using a seperate connection, so when the modchip
|
||||
forces a 0 on the data-pin, the tracking signal also is gone temporarily. By slicing the data-
|
||||
signal up in little pieces at least some of the tracking signal remains and the Playstation can
|
||||
read discs more easily.
|
||||
- The two big for-loops are combined into one with an OR-statement describing the two conditions
|
||||
modchip should be active: when flagFirstCycle = 0 or when flagFirstCycle = 1 and the lid is opened
|
||||
and closed again. This makes code maintenance easier.
|
||||
- The pin-out of the modchip is changed slightly to be able to use an interrupt for the PAL=>NTSC
|
||||
BIOS-patch for PAL SCPH-102. Please use the revised pin-out found below with this code.
|
||||
~TheFrietMan, The Netherlands
|
||||
Loading…
x
Reference in New Issue
Block a user