• We have added an "AG" Registration date/Username profile option. If you add this upon signup we'll be able to verify faster thanks. (If already joined you can edit under profile settings.)

    If you had an account on OG1 you will need to re-register as this is a new start for all.

PS1 [HOMEBREW] NXFLASH - XPLORER/AR/GS FLASH TOOL

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
This is something I have been working on/off the last month or two.. NXFLASH.

screenshot_mainmenu.png



NXFLASH is built on the source of XFLASH which was written by Tim Schuerewegen some time ago. It allows you to flash/backup cheat cartridges such as the Xplorer/Xplorder/AR/GS etc.

Shadow from PSXDEV.net managed to get in touch with him and he found the source code for it.

I wanted to add extra features and serial compatibility to it and support more flash parts so I decided to give it a new name - it basically means 'next xflash'. I believe it needed a new name as the original author may no longer want to be associated with it and to save confusion about client side tool compatibility.

In order to run NXFLASH you will need a way to execute it on a console. I will not cover that here as plenty of guides are out there for mastering bootable PlayStation discs and booting them. Alternatively, you could execute it using your usual code upload method (catflap/psxexe/psxserial etc.).
NXFLASH also has a Python3 based client for uploading/downloading data. It has been tested on Python 3.7 on both Linux and Windows 10.

Features :-
  • Dump cart EEPROM via Serial
  • Dump PSX BIOS via Serial
  • Clear Buffer
  • Flash cart EEPROM via Serial
  • increased screen width to 640px (from 512).
  • Increased size of Flash From CD Browser - 16 roms displayed and wider interface.
  • Xplorer comms support with xkiller (unchanged from XFLASH)
Its currently working really well, every cart I have flashed with in testing has worked 100%. I have a test version that I have out to a beta tester and will wait to hear back before releasing it.. probably a few days.

To accompany nxflash, there is a tool called nxflash.py (original huh?). Its written in Python 3.x and needs pyserial. The tool allows upload of ROM, and download of ROM and BIOS. It also has support for PSXSERIAL/Unirom v6 if you need to send the EXE to PSX that way.

In essence, that means you can flash your console easily without using a CD other than PSXSERIAL.

nxflash.py examples :-
  • Upload ROM - 'python nxflash.py -ur /dev/ttyUSB0 caetla038.bin'
  • Download ROM - 'python nxflash.py -dr /dev/ttyUSB0 ar_backup.bin'
  • Download BIOS -'python nxflash.py -db /dev/ttyUSB0 scph1002.bin'
  • Upload EXE to PSXSERIAL - 'python nxflash.py -run /dev/ttyUSB0 greentro.exe'
Its very simple tool, with hardly any exception handling and will overwrite files without prompt, so be careful!

Full documentation https://github.com/danhans42/nxflash

Would like to hear from people who have unsupported flash types so can see about adding support for them.

If you would like to test the beta version drop me a PM. Will hopefully have it released by the weekend, just want to make sure its working for others before release.
 

logi26

Refugee
Joined
May 30, 2019
Messages
18
Reaction score
26
AG User Name
Logi26
AG Join Date
Jun 18, 2013
Very interesting, is this going to be open source?
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
Eventually yes, just not at the moment. I am very early on with this and want to get all the code commented and tidied up, so its easy to learn from and further improved. It will eventually end up on GitHub.

The source for xflash is already available from http://www.psxdev.net/forum/viewtopic.php?t=1530

Thanks
 

HI_RICKY

Refugee
Joined
Mar 21, 2019
Messages
99
Reaction score
103
AG User Name
HI_Ricky
AG Join Date
Jun 7, 2007
any win program for real time access psx memory and edit like old Datel one?
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
any win program for real time access psx memory and edit like old Datel one?
Not as far as I know, sorry and its not something I can support

You can use the original xplorer ROM with xlink/xlinkwin.. but I am not sure how well they work with Windows XP and beyond as it was nearly 15 years ago when I last used it under Windows 98 SE.
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
Latest version is now on github..


nxflash.py - pythion based client is also included - I recommend reading the info on the github repo.

Current Issues

Currently does not support the dual banked Xplorer FX ( 2x SST29EE020 PLCC32 ), if you have one of these carts please do not flash it as you may not be able to recover.

Also, the support for xkiller/LPT connection is still there but unsupported. It should work fine but I do not have a PC set up currently with WIndows that I can test this on.

If you find any little quirks (display not centred etc), please drop me a DM or raise an issue on github and I will sort it.

Next Version

As well as fixing any issues in the current version I will be looking to add the following features to the next release.

  • EXE loading via SIO (psxserial compatible) - implemented and working, need to pretty up the screens with some nice colour bars as seems to be fashionable for this kind of tool
  • Xplorer ROM Version - Courtesty of RomProd v2.0 from Sicklebrick over on psxdev - I have been testing loading the EXE to a flash ROM on Xplorer cartridges.
  • Adding support for more Flash ROMS.
Ongoing

  • I am still learning about C and the PSX, and one bit I really need to get my head around is using graphics better. So ideally I want to create a prettier menu system, along with some custom fonts. That will be ongoing as a side project and once I get where I need to be I will move it into xflash.
  • Also, with me wanting to add a serial EXE loader to NXFLASH, I thought I would be quite useful to have memory card support. This can support both memory card file management, as well as configuration. More on this later.

Anyway, hope you find it useful.

Enjoy.

PS. If anyone in the UK/EU has a Xplorer FX dual 256k version they wouldn't mind parting with for R&D, please drop me a DM. Id be happy to swap it for a single 29C040 (512kb).
 
Last edited:

megavolt85

DreamShell Developer
Refugee
Joined
Jun 17, 2019
Messages
18
Reaction score
20
AG User Name
megavolt85
AG Join Date
01.09.2015
Currently does not support the dual banked Xplorer FX ( 2x SST29EE020 PLCC32 )
Where is the problem?
what does not arrange a method from XFLASH
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
No idea. Need to investigate it as the routines are exactly the same and remain untouched.

Until I have the correct version of the dual bank FX I won't support it, hopefully will have one soon
 

megavolt85

DreamShell Developer
Refugee
Joined
Jun 17, 2019
Messages
18
Reaction score
20
AG User Name
megavolt85
AG Join Date
01.09.2015
Code:
int EepromDetect3rdGenFX()
{
    char txt[50];
    u_char found,xid1,xid2;
    char *src1 = (char*)0x1F000000;
    char *src2 = (char*)0x1F040000;
    int diff = FALSE, ret = FALSE;
    unsigned long i;
 
    for (i=0;(i<0x20000) && (!diff);i++)
    {
        if (src1[i] != src2[i])
        {
            diff = TRUE;
        }
    }
    
    if (diff)
    {
        WaitScreen("First 3rd gen Xplorer check OK");
        src2[0x5555] = 0xAA;
        src2[0x2AAA] = 0x55;
        src2[0x5555] = 0x90;
        
        DelayMs(100);
        
        xid1 = src2[0];
        xid2 = src2[1];
        
        src2[0x5555] = 0xAA;
        src2[0x2AAA] = 0x55;
        src2[0x5555] = 0xF0;
        
        DelayMs(100);
        
        sprintf(txt,"EEPROM %02X %02X",xid1,xid2);
        WaitScreen(txt);
        
        if ( ((xid1==SST_ID) && (xid2==SST_29xE020)) ||
            ( (xid1==SST_ID) && (xid2==SST_29EE020)))
        {
            ret = TRUE;
        }
        
        if (ret == TRUE)
        {
            WaitScreen("Second 3rd gen Xplorer check OK");
        }
    }
    
    return ret;
}
this function return 1 if is dual banked Xplorer FX
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
Thanks Megavolt. Will have a look at that function and compare with what I have. Initially looks a little different.

Thanks again
 

megavolt85

DreamShell Developer
Refugee
Joined
Jun 17, 2019
Messages
18
Reaction score
20
AG User Name
megavolt85
AG Join Date
01.09.2015
Initially looks a little different.
oh yes, i'm change XFLASH source
 

szczuru

New member
Joined
Jul 8, 2019
Messages
1
Reaction score
0
AG User Name
szczuru
AG Join Date
May 13, 2010
Hi, i'm looking for ROM for PSX MP3 Player (PSXAmp), 'cause by mistake i've flashed "standard" AR/Caetla rom there and lost MP3 functionality...
More info:
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
Hi, i'm looking for ROM for PSX MP3 Player (PSXAmp), 'cause by mistake i've flashed "standard" AR/Caetla rom there and lost MP3 functionality...
More info:
Speak to Squaresoft74 or krhacken, they may have a dump of it between them.
 

danhans42

Love PSX :-D
Refugee
Joined
May 31, 2019
Messages
28
Reaction score
28
AG User Name
danhans115
AG Join Date
15th September, 2007
Hi All,

Bit of an update. I don't know if this feature will remain or not but have managed to shoehorn PSX-EXE loading from SIO into xflash. I had to move the internal data buffer for loading ROMS to a higher memory location to get it working, and it currently only seems to work with EXE's at around 1mb.

Not only that, but rather than being stuck at 115200bps, I have got it working at 345,600bps... so its really fast! I also wanted to bake it into a ROM so it could instaboot, which is now working thanks to sickebricks romprod.

See the video below :-


More info here - https://psx0.wordpress.com/2019/07/14/bit-of-an-update/

The direction I will now take is that I will make nxflash standalone and release the current sources, and continue to improve it. Then the bloated version of nxflash can be a seperate version. Next feature I want to add is some form of memory card management so we can load EXE's from memory card (probably will use Shendo's mclaunch), as well as memory card reading/writing/dumping.
 
Last edited:
Top