📄 whatsnew.txt
字号:
I like programming. I like also emulation.
So I decided to write a Playstation emulator since
1) PsEmuPro is dead and
2) I don't like commercial emus.
FPSE is a good code started by BERO; it's open-source, so you can help me if you want.
------------------------------------------------> 09/011/1999
Today I got FPSE v0.05 from "http://www.geocities.co.jp/Playtown/2004/"
I don't have Cygnus, so I started conversion to DJGPP+RSX.
------------------------------------------------> 17/011/1999
Good news: FPSE runs with interpreter, with some tricks on $1F801070 it runs the BIOS too.
Compiler needs ESI points to REG structure, removed static PCBASE pointer, but it doesn't work yet.
------------------------------------------------> 18/011/1999
Ok, adjusted IDX in compile1().
Now the BIOS runs with compiler, then it hangs at:
0x000044F8: read short sio_status,0000
Ergo: it's the time to do pads & memcards.
------------------------------------------------> 20/011/1999
At "http://www.egroups.com/group/psxdev/" I have found some info on the irq mask.
bit 0: VSync
bit 1: GPU
bit 2: CD-ROM
bit 3: DMA
bit 4: Root counter 0
bit 5: Root counter 1
bit 6: Root counter 2
bit 7: Controllers
bit 8: Serial port
bit 9: SPU
bit A: PIO
Corrected these masks and moved to "opdef.h"
After some fixes, LifeDemo runs again.
------------------------------------------------> 21/011/1999
Now bios can be used for running demos.
If bios is loaded and want to run a PSX-EXE, execution is stopped at $80030000, so bios calls $A0, $B0 and $C0 are compiled.
This startup-code doesn't need hardware update, so simply run with interpreter.
------------------------------------------------> 04/012/1999
Finally after many hours of work with some demos, I have discoveded how irq's work on PSX.
I have written a small text with these informations.
The bios runs fine but it hangs before running the shell.
Started some works on GTE.
------------------------------------------------> 31/12/1999
Today is the last day of this hard year.
HAPPY NEW YEAR!!!!!!!!
------------------------------------------------> 03/01/2000
Today BERO released FPSE 0.06.
I'm adding all changes to my sources (wow, mdec support!).
------------------------------------------------> 04/01/2000
GPU always use DIB section.
Started work on debugger.
Corrected some bugs:
* All memory access are closed to 8 MB (infact 0x000000 and 0x00200000 point to the same location)
* GPU dma are closed to 8 MB (see above);
* Added frame rate limiter to 60Hz (see HW.C for details);
------------------------------------------------> 05/01/2000
Debugger is finished.
Finished SIO emulation.
I have written a text file with all informations about the PSX serial port I have found.
------------------------------------------------> 09/01/2000
Finished gamepad & memory card emulations.
Emulated 32us timing ACK for pads.
------------------------------------------------> 10/01/2000
Changed layout of the code:
* Now you need to include only "fpse.h"
* REG is global, so you don't need to pass it in many functions
* All flags like verbose, in_slot, ecc are grouped in FPSE_Flags variable.
* The only types allowed are INT8, UINT8, INT16, UINT16, INT32, UINT32. All types like BYTE, PIXEL, ecc disappear.
* Functions must return FPSE_OK or FPSE_ERR.
------------------------------------------------> 11/01/2000
Added dualshock callback.
Added screenshot function (press F12).
Added CDNull driver.
Fixed NOR bug in compile.c
------------------------------------------------> sorry, I lost this date....
I sent my sources to the author BERO.
Started work on serial port.
------------------------------------------------> 25/01/2000
Serial port emulation under win32 is done.
Now F11 enable/disable FPS display.
------------------------------------------------> 10/02/2000
Corrected huge bug in DMA, now we have nice compatibility.
Better cdrom support.
Better debugger.
Fixed some DMA bugs.
Fixed some RootCounters bugs.
Fixed some bugs in GPU clipping.
A little fix in GTE.C for RTPS and RTPT opcodes.
Added support for other input devices.
Bios rom appear also at 1FC00000h and 9FC00000h, so they are added in MEM.C.
Bios emulation of pads is commented because the previous change.
Started plugin development for GPU and SPU. No 'LoadLibrary' is required, so the code is portable like the previous versions.
Now screenshots can be saved with F12 in other places (default is 'SNAPS')
------------------------------------------------> 15/02/2000
Post update to BERO.
------------------------------------------------> 16/02/2000
FPSE007bin1 and FPSE007src1 are online.
------------------------------------------------> 04/03/2000
* New aspi driver with a full CD Audio and bus mastering support.
* New plugin (SPUSEAL) based on 0.07 source code and compiled with Visual C++ 5.0.
* New graphic plugin (GPUDX3): it uses DirectX 3.0 and D3D, it runs great even on NT4, but it needs to be fixed in some functions. Surprising, I have noted that Execute Buffers are a little faster than DrawPrimitive.
* I have tested FPSE on WinNT 2000, AND IT WORKS!!!!!!!!!!!
* run under Linux with NULL drivers
------------------------------------------------> 15/03/2000
Fixed a bug in DMA6, now Bouncer 2 and other demos runs great in all configurations.
Little improvement in GPUDx3. Known bugs are missing semi-trasparency, line functions and a bad clipping for D3D functions.
GTE.c has been substituited
Removed Windows.h from FPSE.H and HW.C
if the bios is not present in the current directory, it will be searched in the "BIOS" sub-directory.
CDROM.c: some changes but it won't work yet.
EMU.c: go() function is moved in RUNTIME.c
Gamepads are done in plugin format.
Added mouse driver.
Modified the *_Open() function of plugins and the FPSE SDK is almost done.
Now all the system-dependant code is contained in WIN.C and Win32Def.h
Now memory cards must be in the "MEMCARDS" sub-directory.
FULL Rs232 support.
------------------------------------------------> 17/03/2000
FPSE007bin2 and FPSE007src2 are online.
Now you can use also CPE and COFF files. Unfortunally something is missing for COFF images. I have also tried Bouncer 2 and Z2 preview:
With Bouncer 2 in PSX_EXE and CPE formats it starts but it doesn't work. With the COFF image it runs fine but gamepads are not available (not a bug of gamepad emulation, the code don't initialize them but why?).
With Z2 preview it starts but then it hangs: we must set the correct value to RA before running the exe.
Then I have converted COFF to PSX_EXE with ECO2EXE.exe and all works great. Infact this utility has added something...
Corrected a bug in JALR instruction: on the MIPS manual I have read that this opcode can use any register, not only RA, so I have fixed it, but only in CPU2.c
Corrected a bug in PRIM2.H, see LineG2,3,4 declaration.
Added script file support ("-s" option)
In the command line write
FPSE -sStart.bat
if you want to run "Start.bat"
Script files can contain the following commands:
* LOAD
Syntax: LOAD <filename> <address>
Load <filename> in the system ram at the specified address.
If <address> is not present, <filename> must be an EXE file.
* RUN
Syntax: RUN <filename>
Similar to LOAD command, also it setup PC and SP.
Filename must be an EXE file.
With Script files now you can run more demo than before; the load order is:
1) the BIOS (if not emulated)
2) LIBPS.exe (it is always loaded if present in the current path)
3) Script file
3) Executable written in the command line
With Script files and CPE and COFF formats I could test other demos,
now I have counted 62 demos running.
GPUDx3 is not completed, but it runs FAST. Unfortunally DirectX 3.0 under NT4 doesn't support surfaces larger than the primary surface, so you must run at 1024x768 or higher with this OS, otherwise FPSE will not start. If you have DirectX 5.0 or higher this limitation has been removed even if you use older interface.
When using the new exe, make sure that:
* you have copied RSXNT.DLL and AUDIOW32.DLL in the FPSE root dir. (in previous version)
* you have copied some plugin from plugin dir to the FPSE root dir.
the names are:
GpuRend.dll = for the GPU
SpuRend.dll = for the SPU
Joy0Rend.dll = device connected in port 0.
Joy1Rend.dll = device connected in port 1.
------------------------------------------------> 26/03/2000
I have found some demos in A/R format so I want to add support for them.
------------------------------------------------> 28/03/2000
Added partial PIO watching and A/R support.
------------------------------------------------> 02/04/2000
Script files now can be where you want.
Before they must be in FPSE root dir.
Added overlay surface to GPUDx3 (looks GREAT!).
------------------------------------------------> 11/04/2000
Post a message online.
------------------------------------------------> 16/04/2000
New GPUSoft written: textures are cached for better speed.
Added STP to DrawF & DrawG
Added AGE to DrawSprite.
I fixed directory structure:
-+
}- ActionR // Action replay roms and cheat list
}- BIOS // BIOS images
}- MemCards // Memory card images
}- Plugin // Plugin DLL
}- Snaps // Screenshots
------------------------------------------------> 18/04/2000
Corrected big bug in DMA6: OT must end with $00FFFFFF
Corrected big bug in SPU DMA.
------------------------------------------------> 21/05/2000
Finally I've found the missing and CDROM run!
If sector size is 2352, DMA buffer is divided in 2 section:
12 bytes with header
2340 bytes with data
In this case DMA is done with 2 separate commands.
------------------------------------------------> 25/05/2000
Today I met Mr.Fog.
Welcome in our family!
------------------------------------------------> 26/06/2000
Corrected a bug in MDEC.C. MDEC now runs fine.
Added 24bpp to GpuSoft.
------------------------------------------------> 01/06/2000
Today I'm 25 years old.
Happy birthday, Li Dhay Chen!
------------------------------------------------> 03/06/2000
Fixed huge GPU bug in DrawGT.
------------------------------------------------> 07/06/2000
Finally FPSE configurator and SDK are done.
FPSECfg may need some adds, but functions are OK.
------------------------------------------------> 08/06/2000
Modified FPSECfg:
* Added splash screen at startup.
* Added "About" and "Run" buttons.
* Added command line editbox.
Thanks to Mr.Fog for the suggestions.
------------------------------------------------> 09/06/2000
Finally BIOS autoboot works OK
Other changes to RootCounters
Now recompiler must be rewritten for:
* A FULL overlay support
* Register cache for more speed.
------------------------------------------------> 19/06/2000
* Finally recompiler works fine with overlays
* Many fixes to GTE.C, now Lara looks very nice!
* GPUPSEMU is finished, and it's GREAT!
* Today I got MANTA demo, but it won't work (yet).
------------------------------------------------> 20/06/2000
* Corrected bug in DMA6 now MANTA works fine, but other
GTE bugs are present.
* Changes to RootCounters
* Added Cop2 0x498412: now Kula World runs fine!
------------------------------------------------> 22/06/2000
* Corrected a bug in gamepad emulation, now both Tekken3
demo and commercial versions are fully playable.
Unfortunally it hangs when playing MDEC...
...so you must press START button before MDEC's
------------------------------------------------> 23/06/2000
* Corrected a bug il Memory card emulation. Now they
should run better.
------------------------------------------------> 25/06/2000
* Some adds to the configurator.
------------------------------------------------> 27/06/2000
* WOW! ROOTCOUNTERS FINALLY FULLY EMULATED!!!
Now Crash Bandicoot 3-Warped Demo is fully playable!
Thanks to Joshua Walker for the informations.
------------------------------------------------> 28/06/2000
* Corrected some bugs in MDEC decoding core.
Thanks to Mr. Carlos for the help.
* Medievil Demo and Commercial work fine but they are
not playable because some GTE big bugs.
------------------------------------------------> 29/06/2000
* CDRom support is made in plugin format.
- Modified FPSECFG in the CD-Rom section
- Modified CDROM.C, CD.H, HW.C and Win.C in the emu.
The new plugin name in FPSE root must be CDREND.DLL
* Added the first 3 CD Plugin: CDASPI, CDPsEmu and CDNull.
------------------------------------------------> 1/07/2000
* Modified FPSE for INI setup
* Corrected a bug CallBack irq handling
------------------------------------------------> 2/07/2000
* Corrected some bugs in CDROM.C
* CdlReadN and CdlReadS are now separated.
MDECs should work better.
------------------------------------------------> 3/07/2000
* FPSE 0.08 RELEASED TO OUR BETA-TESTERS!!!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -