From e60db5cba6f9cb33eb67b6f56428e20a3cbd8c3a Mon Sep 17 00:00:00 2001 From: ramapcsx2 Date: Sat, 4 Aug 2012 14:58:36 +0000 Subject: [PATCH] Bit of cleanup in our /pcsx2/docs folder git-svn-id: http://pcsx2.googlecode.com/svn/trunk@5353 96395faa-99c1-11dd-bbfe-3dabce05a288 --- pcsx2/Docs/License.txt | 2 +- .../{PCSX2_FAQ_0.9.8.doc => PCSX2_FAQ.doc} | Bin ...CSX2_Readme_0.9.8.doc => PCSX2_Readme.doc} | Bin pcsx2/Docs/PCSX2_timeline_0.9.8.xlsx | Bin 24690 -> 0 bytes pcsx2/Docs/archive/ChangeLog.txt | 2851 ----------------- pcsx2/Docs/archive/PCSX2 FAQ 0.9.7.doc | Bin 36352 -> 0 bytes pcsx2/Docs/archive/PCSX2 readme 0.9.7.doc | Bin 158208 -> 0 bytes pcsx2/Docs/archive/PCSX2 timeline 0.9.7.xlsx | Bin 24690 -> 0 bytes pcsx2/Docs/archive/devblog.txt | 273 -- 9 files changed, 1 insertion(+), 3125 deletions(-) rename pcsx2/Docs/{PCSX2_FAQ_0.9.8.doc => PCSX2_FAQ.doc} (100%) rename pcsx2/Docs/{PCSX2_Readme_0.9.8.doc => PCSX2_Readme.doc} (100%) delete mode 100644 pcsx2/Docs/PCSX2_timeline_0.9.8.xlsx delete mode 100644 pcsx2/Docs/archive/ChangeLog.txt delete mode 100644 pcsx2/Docs/archive/PCSX2 FAQ 0.9.7.doc delete mode 100644 pcsx2/Docs/archive/PCSX2 readme 0.9.7.doc delete mode 100644 pcsx2/Docs/archive/PCSX2 timeline 0.9.7.xlsx delete mode 100644 pcsx2/Docs/archive/devblog.txt diff --git a/pcsx2/Docs/License.txt b/pcsx2/Docs/License.txt index 1bef240cbf..7d276f9d65 100644 --- a/pcsx2/Docs/License.txt +++ b/pcsx2/Docs/License.txt @@ -4,7 +4,7 @@ /* PCSX2 - PS2 Emulator for PCs - * Copyright (C) 2002-2010 PCSX2 Dev Team + * Copyright (C) 2002-2012 PCSX2 Dev Team * * PCSX2 is free software: you can redistribute it and/or modify it under the terms * of the GNU Lesser General Public License as published by the Free Software Found- diff --git a/pcsx2/Docs/PCSX2_FAQ_0.9.8.doc b/pcsx2/Docs/PCSX2_FAQ.doc similarity index 100% rename from pcsx2/Docs/PCSX2_FAQ_0.9.8.doc rename to pcsx2/Docs/PCSX2_FAQ.doc diff --git a/pcsx2/Docs/PCSX2_Readme_0.9.8.doc b/pcsx2/Docs/PCSX2_Readme.doc similarity index 100% rename from pcsx2/Docs/PCSX2_Readme_0.9.8.doc rename to pcsx2/Docs/PCSX2_Readme.doc diff --git a/pcsx2/Docs/PCSX2_timeline_0.9.8.xlsx b/pcsx2/Docs/PCSX2_timeline_0.9.8.xlsx deleted file mode 100644 index ca73a534bf1a3fcfb1ece4abfb3b8b60636b7e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24690 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 o$F?14{_BqFqcl, also fixed a timing issue in vif0 - (linuzappz) - - * 14/06/05:[-] Alot of bugs fixed in VIF. Masking was not correct so was - filling write. VIF0 was incorrect. The VIF0 Fifo was always being set to 0. - [-] dmaSPR1 now handles Transfer Tag option. - (saqib and Refraction) - - * 31/05/05:[-] Fixed UNPACK's with masking - (linuzappz) - - * 29/05/05:[-] Fixed a few small timing issues with VIF1 - [-] Refixed end source chain tag to add 16 to tadr - (linuzappz) - - * 28/05/05:[*] Uncommented GS dma irq code - [-] Fixed some switch cases at iVUmicro.c - [-] Tested/Fixed DIS_S/MAX_S/MIN_S at iFPU.c - (linuzappz) - - * 28/05/05:[*] removed CVT_S regcaching from iFPU.c. That doesn't seem to work properly :~ - [*] Added MAX_S , MIN_S to reg caching iFPU.c . Not tested but should work - (shadow) - - * 28/05/05:[+] Added PNOR and impoved a few more MMI opcodes - [+] Few more opcodes to ix86_sse.c as well - (shadow) - - * 26/05/05:[+] added emulated hardware cd/dvd sector decryption routines - (should make the playstation2 logo display correctly now amoung other things) - [-] fixed cdvdReadKey to get correct args sent to it, also behaves a little differently depending on args - (loser) - - * 26/05/05:[*] fixed a silly bug in iMMI.c pmaxh,pminh opcodes - [*] optimized PCEQB,PCEQH,PCEQW,PCGTB,PCGTH,PCGTW - [*] few more addes to ix86_sse.c . Linuz seemed to discovered new opcodes :P - (shadow) - - * 25/05/05:[+] Few opcodes added in ix86_sse.c .Few of them still needs recheck (shadow- Gabest) - [*] Added the following SSE,SSE2 opcodes to iMMI.c . - paddub,padduh,paddh,pcpyld,pmaxh,pminh,paddsb,paddsh,psubsb,psubsw,paddb,paddw,psubsb,psubsh - psubb,psubb,psubh,psubw - [*] More opcodes in SSE2 . PCPYUD,PSRLW,PSRLH,PSRAH,PSRAW,PSLLH ,PSLLW ,PCEQB,PCEQH,PCEQW,PCGTB,PCGTH,PCGTW - (shadow) - - * 24/05/05:[*] PSXCLK now can be changed at the ini, defaults - to the right value (36864000) if it's 0 anyways - [-] Fixed bug at Interpreter.c for sstates - (linuzappz) - - * 23/05/05:[-] fixed a bug in iMMi.c PADDSD,PSUBSD doesn't exist in ix86 (who added them?) - [*] Added a new prefix in ix86_SSE opcodes, it is now more clear to understand what each opcode do - that also helped to find that linuz had added an SSE2 instruction in iFPU.c bad linuz ;P - [-] PSMAXSW,PSMINSW was writing to a XMM register (the SSE version writes to MMX register) fixed.. - [+] a few more SSE2 instructions needed for iMMI.c added in ix86_sse.c . - Linuz code them properly pls ;) - (shadow) - - * 23/05/05:[+] Added Devc++ 4.9.9.2 project files for compiling mingw32 with IDE :) - [-] Added a few missing defines - [!] still my project file can't make as fast exe as linuz's sse build. can't figure why yet - the problem should me around Makefile.win :~ - (shadow) - - * 21/05/05:[-] More PS1 compat fixes - [!] Seems the GPU->GS is done by the PS1DRV, gotta find out more - (linuzappz) - - * 19/05/05:[+] PS1 games kinda boot now as well ;) - (linuzappz) - - * 16/05/05:[-] Misc GUI fixes - (linuzappz) - - * 15/05/05:[-] More FPU regcaching stuff - [!] Finally changed version to 0.9 :D - (linuzappz) - - v0.8: - * 10/05/05:[-] Added some more code for FPU regcaching, still unused - [!] Code is closed today until release, only bugfixes now - (linuzappz) - - * 08/05/05:[-] More fixes/improvemets to VUrec/iFPU - (linuzappz) - - * 07/05/05:[-] COP2 now is recompiled when VUrec is enabled - (linuzappz) - - * 05/05/05:[-] Fixed a rather small bug in VIF1 unpack - [-] VU random functions are more correct now, thx goes to _Riff_ and saqib - [-] Sio arranged better for sstates - [*] Modified "FireWire" syms to "FW" - (linuzappz) - - * 04/05/05:[-] Timings in VIF1 should be more accurate now - [-] Fixed bug in the elf loading filter - (linuzappz) - - * 02/05/05:[*] recommited the old reccop2.c (shadow) - - * 02/05/05:[-] Fixed bug in REF/REFS dma at VIF1/GS MFIFO - (saqib) - - * 02/05/05:[*] Cpudialog will disable the checkboxes if the requested features not found - (shadow) - - * 01/05/05:[*] Created a new <> folder to clean up some stuff in the existing interface - Folders became better now and included project files only for vcnet2003 so far... - [*] Moved all patchbrowser source to patchbrowser.c and added language support for it - [*] CpuDialog is now At CpuDlg.c . Redone the Dialog a lotta better ;) - [*] The remaining console,thread,patches configure are now part of the main menu - [*] Organize cpudetection code a bit better. Cpudetection is now done in winmain.c - (shadow) - * 01/05/05:[*] Even more VUrec stuff - [+] Added some more Stats.c info per frame - [-] Fixed some MFIFO bugs remaining - (linuzappz) - - * 30/04/05:[*] More work on VUrec, flags are somehow implemented, PSHUFD is now - used to unpack XYZW/IQ stuff and bug fixes as well :) - (linuzappz) - - * 29/04/05:[-] Updated VIF0 code as VIF1 - [-] VIF1 doens't clears str on MFIFO (saqib) - [-] Fixed some MFIFO bugs in both GS/VIF1(saqib) - [*] Cleaned up dma## functions - (linuzappz) - - * 28/04/05:[-] end source chain tag seems not to touch tadr - [-] Vif1 dmaIrq seems ok, need to test it more tough - (linuzappz) - - * 26/04/05:[+] Added BC1 ops at rec - [+] Started some optimizations for UNPACK - [-] Skipping vif mode was still a bit buggy, seems ok now - (linuzappz) - - * 25/04/05:[*] VIF1 dma is kinda more asynchonous now - (linuzappz) - - * 22/04/05:[+] Added some cache code, not used by default, - it's just for testing atm - (linuzappz) - - * 21/04/05:[-] Readded SysPrintf for Cd/DvdReads - [-] Fixed NReady busy stuff, thx to loser - (linuzappz) - - * 19/04/05:[-] More VUrec refixing/work - (linuzappz) - - * 18/04/05:[+] added CDVDreadSubQ, CDVDgetTOC, CDVDctrlTrayOpen, CDVDctrlTrayClose - to the cdvd plugin definitions - [*] changed CDVDgetType to CDVDgetDiskType - [-] fixed NVM (eeprom) access from cdvd stuff - [+] added reading of mecha version from an external file - [-] fixed raw dvd sector readng for dvd9 discs (otp and ptp) - [+] added hw-reg read/write for DecSet register 0x1f40203A - [+] made cdSeek change the current cdvd sector - [*] incremented cdvd plugin version and brought cdvd plugins in cvs up to date - (loser) - [-] __WIN32__ should not be used over PS2Etypes.h, - __MSCW32__ or __MINGW32__ must be used there - (linuzappz) - - * 16/04/05:[-] xyzw stalls was kinda wrong ;P seems ok now - [-] Fixed a bit vurecs - (linuzappz) - - * 16/04/05:[+] Added GSsetCSR - (saqib-linuzappz) - - * 14/04/05:[-] Fixed some small bugs over VUops.c for the regsNum stuff, - thx goes to saqib - [-] Really fixed skipping vif this time :P - [-] Fixed DIV/RSQRT exceptions (saqib-linuzappz) - (linuzappz) - - * 13/04/05:[-] Fixed skipping write mode at Vif - [-] Fixed unpack overflowing - (linuzappz) - [-] updated all visual studio project files to have the correct source/lib/includes - also removed unused dirs and files. now even 'debug config' will build ok :) - (loser) - - * 10/04/05:[-] Fixed stalls for VF regs, xyzw must be handled separatedly - (linuzappz) - - * 04/04/05:[-] Kinda reworked VU MAC flags, also fixed RSQRT neg prob, thx to Riff/saqib - [-] Fixes to VifDma cl/wl stuff - (linuzappz) - - * 03/04/05:[*] Modified a bit how branch works on VUs - (linuzappz) - - * 02/04/05:[-] Some fixes to VU flags/pipelines - (linuzappz) - - * 30/03/05:[*] Cleaned up a bit writes to VIFX regs - [-] Fixed a small bug in vif1 stalls - [-] Commented readclock win32 code at CDVD->c - [-] Fixed two small issues with branches in interp - (linuzappz) - - * 29/03/05:[*] Added some fixes from LDChen to hConsole/WM_PAINT stuff - [*] Modified GetToc stuff in cdvd to support dvds - [*] cdvdTD uses lsn now - (linuzappz) - - * 28/03/05:[+] Added placetopatch == 1, which means patches will be applied every vsync ;) - (linuzappz) - - * 27/03/05:[*] Improved cpu detection for Amd's 64 using BrandID. Most of the models should be - detected correct now (at least my cpu does ;P) (shadow) - - * 24/03/05:[-] Fixed ISUBIU :D - [-] Some fixes to flags, status was fecked, now seems better - [-] Commented the GS dma IRQ again, seems to cause more probs, will - fix it later - (linuzappz) - - * 21/03/05:[-] Fixed VIFX_CODE reg - [+] Added previous normal vu fixes to vurec - [*] Added EFU pipeline to VUmicro, kinda untested - [-] Hopefully fixed GS dma IRQ - (linuzappz) - - * 21/03/05:[-] Fixed cdReadKey function to emulate correctly. Now games should boot using - Execute with non Modded Bios. - (auMatt & Loser) - - * 20/03/05:[-] Started reg caching for VUrec ;D - [*] Rearrenged a bit rec32/64, added a common 'x86' dir - (linuzappz) - - * 18/03/05:[-] VU1micro was being executed instead of VU0, bad linuz bad :P - [-] Fixed VU's JR/JALR/BAL :D - (linuzappz) - - * 17/03/05:[-] Cleanup/speedup/fixup from last fixes :P - [-] VIF0 has no from mode ;) - (linuzappz) - - * 16/03/05:[*] Added some more debug info to CDVD - (auMatt) - - * 15/03/05:[*] Added an evil vuDouble function to convert from vu float format - to ieee 754 format ;) - [-] Reworked MAX/MINI - [+] Added experimental work for VU pipelines - (linuzappz) - - * 14/03/05:[-] Added the pipelines VU1 bug to VU0 - (linuzappz) - - * 12/03/05:[-] Fixed some pipelines bug within VU1 - (linuzappz) - - * 10/03/05:[-] Fixed small bug over VIF1 dma FIFO - (linuzappz) - - * 08/03/05:[-] Fixed vu flushing over vuExecMicro - (linuzappz) - - * 06/03/05:[-] Fixed UNPACK V4_5 with mask - (linuzappz) - - * 04/03/05:[-] Small fixes to VUrec - (linuzappz) - - * 01/03/05:[+] Added new VS2005 sln and .vcproj to build the 32bit version of - pcsx2 in VS2005 Beta1 (You have to use different projects to build) - [*] Changed some of the files to make them compile in VS2005. - (GoldFinger) - - * 23/02/05:[-] Commented hack at VSync - [+] Added interleave mode for SPR - (linuzappz) - - * 20/02/05:[*] Changed IRQ defines to functions - [-] VIF irq by vifcode seems ok now - [+] Added offset/difference with mask UNPACK modes in vif - [-] SPR1 was transfer /4 the size it should have :/ - (linuzappz) - - * 16/02/05:[-] Fixed some VPU-STAT related issues - [+] 'sstates' dir is now created at init - (linuzappz) - - * 15/02/05:[+] Another DNAS by nachbrenner - (linuzappz) - - * 14/02/05:[+] Added offset/difference UNPACK modes in vif - (linuzappz) - - * 14/02/05:[*] 64bit rec back to x86-64 better this way - [*] Updated vsnet2005beta1 project files to compile with x86-64 dir - [*] Added a few pragma warnings disable to a few files to correct some silly vsnet2005beta1 - warnings (blah MS deprecated stdio pffff) (shadow) - - * 10/02/05:[-] Fixed bug in CDVD_findfile - (linuzappz) - - * 09/02/05:[*] GSvsync is now called on the vsync start - (linuzappz) - - * 08/02/05:[*] QWC is set to 0 after a normal transfer in GS/SPR1/VIF1 - and MADR is increased qwc*16 as well - (linuzappz) - - * 07/02/05:[*] Changed a bit the CPU dialog. Now it is better i guess :) . Linuz update the pcsx2.po again pls :D - [*] Added a __VCNET2005__ definition cause vcnet2005beta1 doesn't support inline asm.. - That only effects Cpudetection.c and Gte.c (not much since it has c code instead to use). - Cpudetection must be written on ml64 to be useable on vcnet2005. - [*] Added prelimary vcnet2005beta1 project files. gettext disabled cause we still doesn't have a - 64bit version for it - [*] Small fixes around and wholaaa i produced the first buggy pcsx2_64bit.exe :) (shadow) - - - * 07/02/05:[+] Added another DNAS version thx to Nachbrenner - [-] Fixed SPR0 chain mode - [-] Fixed intc/dmac interrupts that gets cleared right away - [-] Cleaned up langs a bit, only spanish works so far now - [+] Added 1f402007 reg, "BREAK", still not really handled ;P, - thx to matt - (linuzappz) - - * 31/01/05:[-] Disabled recompile functions recBGEZ() and recBLEZ() from iR3000.c . That will make - recompiler not to crash after the players selection screen in Virtua Fighter 4. Thanks - to JayteeMaster for bug tracing it ;) (shadow) - - * 30/01/05:[-] Fixed some more bugs in IPU, some streams had a few problems, now they are ok. - Quality of ipu playback also improved(thanks JayteeMaster for pointing it out) - (asadr aka saqib) - - * 26/01/05;[*] Merged a big part of linuz's amd64 rec to the normal rec (shadow) - - * 25/01/05:[-] Finally fixed IPU. Mpegs and IPU streams run - so do PSS files.Some fixes to MMI and Interpreter (asadr) - - * 23/01/05:[-] Fixed vurec crash on pcs that doesn't support SSE2 - [*] General cleanup on ix86-32 rec. Goldrec removed since no progress has been made - lately (shadow) - - * 20/01/05:[+] Added x86-64 rec, still unclean, but i'll leave for holidays this - saturday, so ^^ - (linuzappz) - - * 19/01/05:[-] Fix for end chain mode at vif, still gotta check it - (linuzappz) - - * 16/01/05:[-] Lots of fixes to VUmicro, thx to Refraction for pointig out - some bugs ^^ - [*] Commited ix86 changes for x64 - (linuzappz) - - * 13/01/05:[-] WriteNVM now takes address in param[1], thx to auMatt - (linuzappz) - - * 06/01/05:[-] Fixed long types at VU.h - [-] Removed memLUT decl - [!] Notice long is 8bytes long in amd64, so we should - stick to the u32/s32 types instead of using long pls :) - (linuzappz) - - * 06/01/05:[-] Fixed SBUS IRQ at iop - [-] dmaGetAddr now uses memLUTR - (linuzappz) - - * 05/01/05:[*] Changed some stuff for amd64, still more to come - [+] Added more memRead/Write funcs for speed - [-] Fixed some iVUmicro bugs - [-] Fixed QFSRV/MTSAH/MTSAB - (linuzappz) - - * 03/01/05:[+] Implemented MFLAG for VU0 - [-] Vsync is now genereted on boths cpus at the same time - (linuzappz) - - * 03/01/05:[-] Commented dma irq stuff, fecks some games, gotta recheck that - (linuzappz) - - * 22/12/04:[-] Fixed bug in branch address in vus - (linuzappz) - - v0.7: - * 18/12/04:[*] Added GSread8/16/GSwrite8/16, GSgifTransfer1 now has two args, - added the addr and pMem points to the VU1 mem - (linuzappz) - - * 16/12/04:[*] Pofis improved his Patchbrowser (shadow) - - * 06/12/04:[-] Fixed Langs support for win32 - (linuzappz) - - * 06/12/04:[*] Added support for 1.90 Bios NVM. - (auMatt) - - * 06/12/04:[+] Added Patch Browser for win32 . Made by Pofis (shadow) - - * 05/12/04:[*] NVM always loads rom %Bios%.NVM - [*] Cd/Dvd Reads are now again displayed on console, - that is very helpfull for testing :) - (linuzappz) - - * 28/11/04:[-] BC2T/F/TL/FL also check for VU1 to be stopped - [-] VU1 memory is masked on micro load/store instructions, - dunno yet about VU0, gotta test ;) - (linuzappz) - - * 26/11/04:[-] VU D/T flags are handled now (kindaof :P). - (linuzappz) - - * 20/11/04:[-] RTC timezone fixed (gigaherz) - - * 19/11/04:[-] Fixed vu branch negative overflows - (linuzappz) - - * 17/11/04:[*] Fixed some stuff in logging so now - -Memcards sysprintf messages Are now MEMCARDS_LOG define and enable with PAD_LOG - -Cdreads Dvdreads are now in CDR_LOG - -Vus Overflow enable from CPU_LOG - That means less logs at runtime and no more complains from nasty betatesters :D (shadow) - - - * 17/11/04:[*] fixed linuz bug in naming the memcards different in 2 different places - Memcards now are Mcd001.ps2 and Mcd002.ps2 in emu and McdDialog (shadow) - - * 16/11/04:[-] Fixed NVM File Load and Creation. Defaults to BIOS name als now. - (auMatt) - - * 15/11/04:[+] Added another DNAS at Misc.c. - (nachbrenner) - - * 14/11/04:[-] VU0/1 reset shouldn't reset the micro memory. - [*] Commented the LT_OpcodePrintTable call on Interpreter.c, - for speed :) - (linuzappz) - - * 12/11/04:[-] Second MCD works fine now. - (linuzappz) - - * 11/11/04:[-] Finally fixed SIF1 bug :D:D - (linuzappz) - - * 10/11/04:[+] Added MingW32 support ;). - (linuzappz) - - * 10/11/04:[-] Fixed NVM loading/reading/writing and also fixed v12 NVM issues. - (auMatt) - - * 09/11/04:[+] Added BiosVersion var. - [*] Sif stuff now gets saved over sstates. - (linuzappz) - - * 09/11/04:[-] Fixed bug in ModelID code in CDVD - (florin-auMatt) - - * 07/11/04:[-] Fixed bug that caused to interrupt twice before - handling the first interrupt. - (linuzappz) - - * 05/11/04:[-] Small fix for broken elfs. - (linuzappz) - - * 04/11/04:[-] CDVD was interrupting dma too much :P. - (linuzappz) - - * 03/11/04:[*] Added FREEZE_SIZE. - (gabest-linuzappz) - - * 03/11/04:[+] Added a couple of DNAS at Misc.c. - (nachbrenner) - - * 02/11/04:[+] Added hack for QFC in GS ;). - (linuzappz) - - * 01/11/04:[+] Implemented VU0 Interlocks over CFC2/CTC2/QMFC2/QMTC2. - (linuzappz) - - * 31/10/04:[-] Fixed v12 bios running. - (auMatt) - - * 30/10/04:[-] Fixed v9-v10 bios running. - (auMatt) - - * 28/10/04:[-] Really fixed SIF SMFLAG/MSFLAG :P:D - (linuzappz) - - * 28/10/04:[-] Fixed MCDS :D - (asadr) - - * 26/10/04:[*] Added rom2/erom support - (auMatt/linuzappz) - - * 23/10/04:[*] Added/Fixed Model Number Reading - (auMatt/Florin) - - * 18/10/04:[-] Fixed SIF SMFLAG/MSFLAG, needs testing tho - (linuzappz) - - * 06/10/04:[*] More BIOS detection added.(auMatt) - - * 04/10/04:[-] Fixed EXL bug - [-] Fixed SIF0/1 when fifo got filled up - (linuzappz) - - * 01/10/04:[-] CdReadConfig/CdWriteConfig now uses NVM ^^ - [!] Bios configurations now gets saved/loaded from NVM (nvm.raw) - (linuzappz) - - * 1/10/04:[+] Started coding the memcard manager. Far from finish but will be better soon :D - [*] Change settings . Default memcard is now a ps2 memcard. (shadow) - - * 30/09/04:[-] Newer bios will now work with pcsx2. Pads fixed, more - compatibility. (asadr) - - * 27/09/04:[-] VU0/1 Reset hopefull fixed - (linuzappz) - - * 16/09/04:[*] NVM now is readed/written from nvm.raw. - [-] ReadILink/GetMecaconVersion are really implemented ^^ - (auMatt-linuzappz) - - * 15/09/04:[*] Rewritten LoadConfig-SaveConfig to use ini instead of registry. - [*] Removed DeleteRegistry button. For obvious reasons :D (shadow) - - * 15/09/04:[-] Pads finally fixed - Fixed PADwin Plugin Required! - Updated stuff at PsxSio2.c and Sio.c (Pad Hack still - there but won't be used) asadr - - * 13/09/04:[+] Added an option for setting the main thread priority, usefull at work :P - (linuzappz) - - * 13/09/04:[*] Fixes to SCMD's (auMatt) - * 02/09/04:[*] Finally commited asadr's IPU changes - [-] Fixed small bug in memory dump for win32 - (linuzappz) - - * 30/08/04:[*] Added Deci2 Call back into the Interpreter.c for printf.(auMatt) - - * 18/08/04:[*] fixed finaly the IOP disasm. Should be correct now... - [+] for stuff for amd64 porting.notice that pcsx2_2003_amd64 project just check for 64bit - portability.Can't produce 64bit exe yet.. (shadow) - - * 15/08/04:[-] fixed the IOP-EE disasm problem.(for ppl with vc != 2003 you must include - DisR3000asm.c and DismAsm.h in your project files) - [!] Still have to finish the correct IOP disasm :D - [+] Added small framework for x86-64. Still nothing that useable :D (shadow) - - * 04/08/04:[-] PadHack now works again :) - [-] Sio2 now supports states again - (linuzappz) - - * 02/08/04:[*] F2 will print the selected state on the console - [*] Added overflow messages for ISW/ILW/ILWR/ISWR - [*] FBRST should reset the vus when VU0 Reset/VU1 Reset - bits are set, but i don't really know have much it's - resetted :P - (linuzappz) - - * 30/07/04:[-] Vif1 MPG lacked a flush - (linuzappz) - - * 28/06/04:[+] Added GSprintf, GSgetDriverInfo and PADgsDriverInfo - [+] Deci2Call 0x10 gets printed ;) - [-] Some fixes to CDVD reading - (linuzappz) - - * 24/06/04:[-] Fixed some bugs over interrupts and - exceptions - (linuzappz) - - * 22/06/04:[-] Couple of bugs fixed over IPU1 dma - [-] psHu32(INTC_STAT) changed to INTC_IRQ - (asadr-linuzappz) - - * 16/06/04:[-] Counters regs are returned in 16 bits - [+] Also added them for hwRead16 - [-] Counter only resets when writing to the mode reg - when the value & 0x3ff differs from the actual mode - [-] Fixed BCR interrupting for CDVD ;) - (linuzappz) - - * 14/06/04:[*] Enabled SSE Vif at i386.asm - [*] Added florin's work over mcds, still needs - a cleanup :) - (linuzappz) - - * 10/06/04:[*] CSRr is OR'd with 0x8 always over VSyncEnd - (linuzappz) - - * 08/06/04:[*] VU pointer gets aligned now - (linuzappz) - - * 07/06/04:[*] vuJALR now uses _Fs_*8 - [*] VSync now interrupt for INTC_STAT & 0x1 - [!] Based of debugging Aura for Laura :) - (linuzappz) - - * 07/06/04:[*] Detection for Chinese Bios. - (auMatt) - - * 04/06/04:[-] Cleaned a bit VIF1transfer, and now when - DIRECT/DIRECTHL cmd is misaligned it skips it - [*] Added USBirqHandler, USB specs v2 now - (linuzappz) - - * 04/06/04:[-] VU1 regs now are mapped to VU0 mem - (linuzappz) - - * 02/06/06:[*] finished most of the iops disasm works :P - [*] increase the firewire reg size . seems there are more regs ;p (shadow) - - * 25/05/04:[-] Fixed big stupid bug in counters ;P - Now they're accurate - (linuzappz) - - * 25/05/04:[*] Included new BIOS detection 'P'. For Free and Public BIOS Images. - (auMatt) - - * 20/05/04:[*] BCR now decrements for each cdvdReadSector, thx to Roor - (linuzappz) - - * 18/05/04:[*] Removed PsxBios2.c/h, and cleaned Irx funcs from ElfHeader.c/h - [+] Added cpuTestHwInts/cpuTestINTCInts/cpuTestDMACInts - [+] More work over mcds - [!] Now cpuBranchTest doesn't checks for irqs - (linuzappz) - - * 17/05/04:[-] Fixed bug psx counters, thx gold - (linuzappz) - - * 15/05/04:[+] Added IOP disasm in the debugger... - [!] Not yet finished and i disasm using R5900disasm atm. I will code it correctly soon (shadow) - - * 12/05/04:[*] More optimizations to the FPU rec - [*] BIAS was commented over Counters.c :/ lol - [-] Disabled EMMS_TRACE, it's buggy, dunno why tho - (linuzappz) - - * 11/05/04:[*] Now Saving/Loading FPU CW only for the ops that really need it - [*] Added some optimizations to jumps over rec - [*] Added LQC2/SQC2 - (linuzappz) - - * 08/05/04:[-] Fixed states loading/saving from the menu - (linuzappz) - - * 03/05/04:[*] Uncommented the sio2 1d100 hack - (linuzappz) - - * 3/05/04:[+] started reorganize the src. Lotta unneccesary stuff removed(like HLE) and lotta - organized. still needs a lot of work to clean but it's a start (shadow) - - * 02/05/04:[+] Added D3/D4 defines at Hw.h - (linuzappz) - - * 1/05/04:[+] Added a Delete Registry Button. It deletes pcsx2,gssoft settings - (shadow) - - * 30/04/04:[-] Small bugfix for cpu speed detection, thx to Rainer Aglas - (linuzappz) - - * 27/04/04:[+] Implemented ReadNVM/WriteNVM, untested though - (linuzappz) - - * 15/04/04:[-] SPUdma timings changed to 80, thx _Riff_ - (linuzappz) - - * 13/04/04:[*] Several changes for IPU - [+] IsBIOS now belongs to Misc.c - (asadr-linuzappz) - - [*] Dev9Null/USBLinuz/FireWire Plugins Configure now shows - Message. - [*] Configure Menu Shows USB and FireWire Options. - (auMatt) - - * 12/04/04:[-] Fixed SPU2async cycle, was getting reseted wrongly, - thx _Riff_ - [+] Added SPU2irqCallback - (linuzappz) - - * 08/04/04:[-] Unhacked sio2 for 1d100 recv1 mode - (linuzappz) - - * 07/04/04:[+] FireWire IRQ is implemented ok now - [-] Forgot dev9Interrupt over R3000A.c - (linuzappz) - - * 05/04/04:[+] Added Firewire plugin protocol. (shadow) - - * 02/04/04:[-] VIF-FIFO transfers seems to work better ;) need testing - [+] Added GSreadFIFO - (linuzappz) - - * 30/03/04:[*] sstates now use CRC as well :) - [*] emuLog.txt now goes at 'logs' dir - (linuzappz) - - * 29/03/04:[*] GSdma now waits qwords transferred cycles - before clearing CHCR and triggering, - OPH and APATH are handled as well now. - (linuzappz) - - * 25/03/04:[*] Some rewritte over Sio.c - (linuzappz) - - * 24/03/04:[-] ostr size is now 1024 in Dis*.c - [!] Finally v0.7 :D - (linuzappz) - - v0.6: - * 21/03/04:[-] About dialog was cropping the testers, thx CK :) - (linuzappz) - - * 19/03/04:[+] Added a PadHack option at the cpu dialog - [-] Couple of fixes for release - (linuzappz) - - * 16/03/04:[-] CRC had a bug, now it's ok, sorry :) - [-] Fixed bug in memInit, thx gold :) - [-] LoadState now loads the tlbs - (linuzappz) - - * 16/03/04:[-] Fixed another silly bug in loadElfFile ;) - (linuzappz) - - * 15/03/04:[+] Added texts on the console Title to make patch makers life easier :P (shadow) - - * 15/03/04:[-] Fixed a free in loadElfFile - (linuzappz) - - * 14/03/04:[*] loadElfFile now reads the whole file first - [-] DMA4/7 interrupt timings are more accurate now - (linuzappz) - - * 12/03/04:[+] Added i386.asm, only used on linux so far, - compiles using nasm, it replaces the inline - assembling for Vif - [-] Fixed bug in UNPACK for skipping write - (linuzappz) - - * 11/03/04:[*] Patches names are now using crc, - instead of ie.: - Ridge Racer V PAL was SCES_500.00.pnach, - now it is 5BBC2F40.pnach - this way games with the same code - will not get confused - [-] Fixed bug in disR5900GetUpperSym - (linuzappz) - - * 10/03/04:[+] Added SQ/LQ over iVUmicro - (linuzappz) - - * 09/03/04:[-] sio2Reset was missing from psxHwReset - [-] Fixed sio pad swaps for 0x1100 mode - (linuzappz) - - * 08/03/04:[*] Modified the DEV9irq stuff - (linuzappz) - - * 05/03/04:[-] DEV9irq now issues a SBUS_IRQ - [*] malloc memory is now aligned to 16bytes - (linuzappz) - - * 02/03/04:[-] Added presaving for MMI ops that needed that - [-] vuJR/vuJALR now masks Fs with ~0x7 - (linuzappz) - - * 02/03/04:[+] stats.txt now dumps the Cpu mode - (linuzappz) - - * 01/03/04:[-] dmaGetAddr now uses memLUT - [+] Finally added USB plugins ;) - (linuzappz) - - * 26/02/04:[-] Fixed VUops that didn't have presaving - (linuzappz) - - * 22/02/04:[+] More ops at DisVUops.h - [-] VifDma.c is cleaner now, also fixed some - stuff for savestates - [-] Added some remaining vars at cpuBranchTest - to cpuRegs for savestates - (linuzappz) - - * 21/02/04:[-] Fixed ITOF0 - (linuzappz) - - * 20/02/04:[-] Fixed savestates ;) - (linuzappz) - - * 19/02/04:[*] VUflags now should handle overflow/userflow ok - (linuzappz) - - * 17/02/04:[*] Improved and fixed sio2 stuff - [-] Fixed _vuMFIR - (linuzappz) - - * 16/02/04:[-] DIV could crash when divisor == 0.0, - as well as ERSADD - (linuzappz) - - * 13/02/04:[-] Fixed FCAND over VU1ops.c - [*] Merged VU1ops/VU0ops/Vops to VUops - [*] Cleaned up VUflags.c - [-] hackedRecv now defaults to 0x1100 - (linuzappz) - - * 09/02/04:[-] VifDma.c MPG now clears the VU0/1 Mem though Cpu->ClearVU0/1 - (linuzappz) - - * 09/02/04:[-] More SCMD functions added. Still require working code for them. :) - (auMatt) - - * 06/02/04:[-] More iVUmicro.c opcodes, fixes, and stuff :) - (linuzappz) - - * 06/02/04:[-] Fixed Bios Detection for HK Bios. - (auMatt) - - * 06/02/04:[-] Fixed CdRom/CDVD Interrupt for 0x41000200 chcr, - now it interrupts after the read ends - (linuzappz) - - * 05/02/04:[+] Added FALSE/TRUE in GRecCommon.h - [+] Added more 16bit ops to x86.c/h - [+] Fixed SQD/SQI and implemented IOR/IAND over iVUmicro - [-] BIAS is now 2 again - [+] Now only MARK is writable at Hw.c, for vif0/1Regs - (linuzappz) - - * 03/02/04:[-] Fixed FALSE to GREC_FALSE in GRecMain.c - [-] Added break to F5 ;) - [-] Commented 'ERL Set' SysPrintf - (linuzappz) - - * 02/02/04:[-] Included stdarg.h in GRecCommon.h - [+] Added some scmds to CDVD->c (auMatt) - [+] cdvd.Status now changes to CDVD_STATUS_SEEK_COMPLETE, - after a CdRead CMD - (linuzappz) - - * 16/01/04:[+] Added LQI/LQD/SQI/SQD over Recompiler - [-] Updated EE BIAS to 8, need to test this - [!] SQI/SQD are diabled still, because they are still buggy - and i don't have more time... vacations :D:D - (linuzappz) - - * 15/01/04:[+] Added code for dma interrupts, for IPU FDEC, still commented - (linuzappz) - - * 14/01/04:[+] Temporary fix for PADS. F5 now change the pad mode on the fly. if your game doesn't work - switch it from there. (shadow) - - * 12/01/04:[*] FIFO is now really 128bit as it should be :) - (linuzappz) - - * 09/01/04:[-] Fixed VU->VI[0] != 0 bug in VU1, VU0, Macromode, JALR, BAL, LQI, LQD, SQI, SQD were setting VU->VI[0]. - Address in VCALLMS was incorrect, was causing crash in VF4. - (asadr) - - * 09/01/04:[*] Start to convert VIF stuff to functions instead of macros, right now I just converted - them duplicating the code for VIF0/1 and it is working but it is not the best yet, - commiting just so others can debug VIF while I finish the work, did some minor fixes - on VIF too. - [*] The only major function needed to be reduced to one is VIF0transfer/VIF1transfer, all - others are ok (I think). - (GoldFinger) - - * 09/01/04:[-] Fixed LQC2 for _Fs_ == 0 - [*] Fixed several SIF bugs (NoComp) - (linuzappz) - - * 06/01/04:[-] Fixed UNPACK modes in VIF.c, the Indeterminate fields are now set to 1 by default. (asadr) - - * 04/01/04:[-] Fixed a bug in LQD and LQI when _Ft_ was 0. - (GoldFinger) - - * 04/01/04:[*] Modified the VIFregister structure, both VIFs(0,1) have the exactly same - structure, just VIF0 does not use some of the registers, so I unified the - structures for easy reading and less bugs. - (GoldFinger) - - * 31/12/03:[-] Added USB API at PS2Edefs.h ;) - [+] More ops at DisVUops.h - [*] UNPACK now flushes the VU micro - (linuzappz) - - * 30/12/03:[-] Fixed savestates in Misc.c and added fixed VIFdma.h - (asadr) - - * 29/12/03:[-] Fixed bug for new vu code in savestates - (linuzappz) - - * 27/12/03:[-] Fixed bug in my last update for R5900.c - (linuzappz) - - * 26/12/03:[*] VUflags are now updated when Rd == 0 as well, changed only - at VU1ops.c - [*] VU1Regs/VU0Regs is now VURegs - [!] I think we should merge VU1ops/VU0ops/Vops - (linuzappz) - - * 24/12/03:[-] Fixed DMA8 for PsxDma.c - [*] LUI is now as it was before asadr's update - [*] readded 'if Log' over debugI at Interpreter.c - (linuzappz) - - * 18/12/03:[*] Restructured VU code and VIF. Fixed stuff in Interpreter - and added CTC2 VU1 Microinstruction caller. - (asadr) - - * 18/12/03:[*] Improvements to TLB code. - (linuzappz) - - * 17/12/03:[-] Fixed iCOP0.h define to __iCOP0__ - [+] Added disR5900GetUpperSym - (linuzappz) - - * 08/12/03:[+] SSE recompile of vus started. Some opcodes works some yet not. - Missing flags that i gonna add soon. Gives some speed boost :) - (shadow) - - * 05/12/03:[-] Fixed bug in GS for CSR stuff - (linuzappz) - - * 03/12/03:[+] Added Interlock for CFC2/CTC2 - [-] Fixed CFC2/CTC2/LQC2/SQC2, they now - check for zero registers - [!] This should fix the 'R0 is not zero' - and the 'VU memory overflow' hopefully ;) - (linuzappz) - - * 03/12/03:[+] You now disable vu0 macromode too when you disable vu recs by the - checkbox iR5900.c - [-] corrected some more bugg0rs of linuzappz sse instructions ix86_sse.c - [!] careful linuzappz's code. Don't ever trust him cause he is a lazy bugg0r - His mind is only for pampita!:) (shadow) - - * 02/12/03:[+] Added UNPCKLPSRtoR and MOVLHPSRtoR, there you go expert :) - (linuzappz) - - * 01/12/03:[-] Fixed savestates - (linuzappz) - - * 30/11/03:[+] a few sse instructions in sse.c + a much cleaner code in reccop2.c (shadow) - - * 28/11/03:[-] Recommited old VUops.h with asadr's EATANxy/EATANxz bugfixes - [!] asadr, the VUops.h you commited was in html format, - and some opcodes you change were only to slow down things, - commit other ones that need fixes. - (linuzappz) - - * 28/11/03:[-] Fixed alot of bugs in VUops.h, hopefully some stuff will now - work as it should (asadr) - - * 27/11/03:[*] fixed some stuff in recCOP2.c (shadow) - - * 25/11/03:[-] Fixed bug in Vif.c, masks hopefully are ok now ;) - (linuzappz) - - * 25/11/03:[-] Fixed Interpreter.c ix86.h include - [-] Added to GRecBasic.h a newline at end of file, linux - complains else ;P - (linuzappz) - - * 24/11/03:[+] Added cpu detection in interpeter.c too so now you can use SSE,MMX code in - interpreter too without the fear that your pc doesn't support it ;P (shadow) - - * 22/11/03:[+] By Nachbrenner request i added a memory patcher in Debugger.Now you can make patches - while pcsx2 is running. It is not yet finished as it can only patch 32bit data but - all the patches so far are 32bit so no problem ;P (shadow) - [!] Update Common.h . We are up to pcsx2 0.6 now! :) - - v0.5: - * 21/11/03:[-] Fixed Vif.c bugs :) - [!] Source code closed for release 0.5, - only bugfixes con be submitted - (linuzappz) - - * 21/11/03:[*] Started optimizing vif.c but I find so many strange stuff (problably bugs), please - linuz, check the comments I added on the vif.c file, and tell me what to do. - (GoldFinger) - - * 20/11/03:[*] Reorganize the cpu dialog a bit and added a new option. Disable vu recompiler - with disable the recompile of vu and will save some games from freeze when - vu memory overflows (quite often) :P . This will be removed when vu problems will - solve :P (shadow) - - * 19/11/03:[-] Fixed bug in savestates - (linuzappz) - - * 18/11/03:[*] Removed the old reg caching code including the sources, so now the only rec - that works is the normal one. - [*] GoldRec is progressing, I did lots of changes to make the progress better, - right now nothing works. - (GoldFinger) - - * 14/11/03:[*] Modified GSfreezeData, now it's plugin dependant - [+] Added SPU2freeze/DEV9freeze - [-] Fixed bug in inifile_read, hi shadow bugg0r :P - [-] Fixed bug in Sio2 - (linuzappz) - - * 14/11/03:[*] change pcsx2 patch system to use *.pnach files.Now you need a patches dir in your - pcsx2. (shadow) - [!] Am i the only one that write a changelog here?? (shadow) - - * 13/11/03:[-] fixed savestate naming in win32 and linux (shadow) - - * 06/11/03:[+] cleaned up a bit rec vu and enabled vu0 micro (shadow) - - * 06/11/03:[-] Workaround in VifDma.h for FiFo transfer ;) - (linuzappz) - - * 04/11/03:[*] Changed the way we handle SPR TTE transfers, also - MFIFO_VIFtransfer transfer always the ptag+2 - [-] Unhacked Sio.c for PADs ;) - [!] Now you gotta use the PADwinKeyb from PADwin at cvs - (linuzappz) - - * 03/11/03:[-] Fixed ba8R16 bug in Memory.c - [*] Enabled VU1 micro recompilation - [*] dmaGetAddr goes though memLUTR now - (linuzappz) - - * 02/11/03:[-] Fixed MSUBA had the same problem as MSUB, iFPU.c - A = A - B * C != A = B * C - A :) - (GoldFinger) - - * 01/11/03:[+] Addded cpu speed detection in cpu detection code - [!] Linuz fix the cpu_detection.c to work with linux pls ;p - [!] Goldfinger was right.Police 24/7 is okay with MSUB now :) (shadow) - - - * 01/11/03:[-] Fixed MSUB (MADD was ok), iFPU.c - Expert, please try in Police 24/7... :) - (GoldFinger) - - * 31/10/03:[-] Fixed PCPYLD, MMI.c - (linuzappz) - - * 30/10/03:[-] disable MADD,MSUB from iFPU. that ops was causing bugs in police 24/7. - Can't figure why, can someone? (shadow) - - * 29/10/03:[-] Commented D/T flags for VUmicro - (linuzappz) - - * 28/10/03:[-] Fixed memory rec issue, blah, shadow was right again :P - (linuzappz) - - * 27/10/03:[-] More fixes to memory stuff, hwregs for 128bit - [-] Fixed vifNum == 0 for UNPACKs - [-] DEV9_R_DEV now goes though DEV9read16 :) - [+] FiFo VIF1 can read data now ;) - [-] Fixed rec mem limit, shadow was right ;P - [!] Try Make Your Dream Home now ;) - (linuzappz) - - * 26/10/03:[-] Fixed Memory stuff, now it works ok :) - (linuzappz) - - * 25/10/03:[*] Some changes to memory cards. It's not what you all expect:P - (Florin) - - * 25/10/03:[*] Improved more the cpudetection routine at the Supporting Instruction sets features - [-] Improved a bit the MMI and fixed some bugs that prevent PII cpus to work (shadow) - - * 23/10/03:[-] Fixed a bug in Memory, untested actually ;), should fix - the loader rec bug - (linuzappz) - - * 24/10/03:[*] Improved the cpudetection routine in goldrec.Now more info appears :) - (shadow) - - * 23/10/03:[*] Improved VIF for transfers in parts - [-] Fixed some bugs in DisVUops.h ;) - [-] Fixed a bug in Memory, VU1.Mem was twice, thx shadow :D - (linuzappz) - - * 21/10/03:[-] Scratchpad memory was set bigger that it really is - [-] Uncommented a few tlb related printfs just in case ;) - (linuzappz) - - * 20/10/03:[*] Rewritten several Memory.c code, it's very untested, so far - i only tested bios, so tell me what's broken now :) - (linuzappz) - - * 18/10/03:[*] Fixed the rec for use with the tlb code, but this is a no go, slow as hell we must - change the whole tlb stuff, please linuz, lets think better before implementing this. - (GoldFinger) - - * 14/10/03:[*] Modified the memRead functions, now they're better for tlbs - misses, but note that they have one more arg, so gold, you'll - have to update the rec - (linuzappz) - - * 12/10/03:[*] Removed the new module in cvs called GoldRec. Now GoldRec is a directory under ix86-32. - (GoldFinger) - - * 10/10/03:[*] Removed the new recompiler from the main project and removed its dependencies, now there - is a new module in cvs called GoldRec, you must check it out. - (GoldFinger) - - * 10/10/03:[*] Improved TLB stuff a lot ;) - (linuzappz) - - * 07/10/03:[-] Fixed bug for recompiler in psx writes from Memory.c - (linuzappz) - - * 06/10/03:[*] VU0/1 now uses the VURegs struct - [+] Added the possibility to load the System.map from ps2linux - [+] Added TLB exceptions - [-] Fixed psxM accesses from Memory.c - (linuzappz) - - * 04/10/03:[*] rewrote the recompiled vu micro startup code and separate it - [-] remove the 3dnow code for reccop2 as it created more problems that it actually solved - [+] qmf2,qmtc2 is now done in SSE too . (shadow) - - * 01/10/03:[+] Handle for the EDI flag at ERET, a guess actually ;) - (linuzappz) - - * 30/09/03:[*] Reg caching works with bios and almost everything as normal rec does, need to - check better what does not work. - [*] Splitted iR5900.c into several .c files for easy navigation and for sanity - purposes as iR5900.c was HUGE. - [-] Fix LOTS of reg caching bugs, the main one was the comparission of 64bits registers. - (GoldFinger) - - * 30/09/03:[*] Added a base interrupt delay for the dma7 (spu2) - [*] More improvements to VifDma.h - (linuzappz) - - * 29/09/03:[-] Reimplemented Interrupt latency over R5900.c - [-] Fixed load/store unsigned addr to signed one over VUops.h - (linuzappz) - - * 28/09/03:[-] Fixed dmaIrq's for Source Chain mode - (linuzappz) - - * 26/09/03:[-] Fix the speed optimization problem that was in softCall function in Bios.c, - added a #pragma to disable optimization just to that function and everything - is working again as it should (linuz, please check if this pragma will interfere - with linux) - [*] The win32 project is back like before, the new Recompiler project was removed and - everything is working. - (GoldFinger) - - * 26/09/03:[+] Added two keys (F11, F12) for Opening/Closing the CDVD tray, - only for linux so far. - (linuzappz) - - * 25/09/03:[*] Sio2 fixes. Now the mcs are 'seen' as PS2 cards but unformated(able:P) - (Florin) - - * 25/09/03:[*] Modified the project structure under win32, I separated the recompiler from - the main project into a static lib, so now I can work with two projects instead - of one and enable optimizations. Now register caching works much better as I - enable speed optimizations in the Recompiler project but had to disable it in - the main project, the real problem is the global optimizations, this way I am - proving that the problem is not on my code... :) - [-] Fix lots of reg caching bugs and commented some of the reg caching instructions - that are buggy. Lots of demos work now, P51, colors, colors15 and maybe some others. - (GoldFinger) - - * 23/09/03:[-] Changed the MessageBox in recFunctions.c to SysMessage - [+] FIFO for VIF0/1 now works :) - (linuzappz) - - * 23/09/03:[*] Splitted the bios files so the code is the .c files and not on the .h files - [-] Fixed several bugs in reg caching and improved the routines - [!] Visual Studio .NET (dont know the others) speed optimizations are - messing with the code so it is recommended to build release mode - without Speed optimizations - (GoldFinger) - - * 23/09/03:[-] Commented the Syms in BiosInit.h, since they are only - for scph10000 - [-] Fixed ret DMA op - [+] Added iVUmicro, for recompiler - (linuzappz) - - * 22/09/03:[*] Added ExecuteVU0/VU1Block in R5900cpu, R5900.c - [+] Destination Chain for SPR0 dma and added Vif masking - [!] Gold, please merge the beta changes i sent you for - the iVUmicro.c/h - (linuzappz) - - * 20/09/03:[*] Now pad2 works in lle mode [tested with bios browser] - [+] New SCMDs and MC commands - [-] Fixes in sio, sio2, cdvd, etc. - [!] Now mcs appear as not inserted, but they are wip:P - SecrCardAuth() works fine;) - (Florin) - - * 19/09/03:[-] Small bugfix in Hw.h, u32 qwc -> u16 qwc; u16 pad; - [+] Small hack in Memory.c for ba000006 - (linuzappz) - - * 17/09/03:[-] Corrected a unpack bug i forgot ;) - [+] Implemented mskpath3 / m3r flags - [-] Fixed rom1.bin lookup for linux - (linuzappz) - - * 16/09/03:[-] Linuz fixed the macro bug hanging Visual Studio - (Gold-linuz) - - * 16/09/03:[-] More bugfixes/additions to Vif/VUs - (linuzappz) - - * 15/09/03:[-] Fixes lots of bugs in Reg Caching, now other demos work. - (GoldFinger) - - * 13/09/03:[-] Some fixes to the subq in cdvd.c (Florin) - - * 13/09/03:[-] Fixed the reg caching bug in tut1. - [*] Changed the DEFINE for reg caching for the config expert put on the CPU - screen, now we have both way to test. Thanks Expert. - (GoldFinger) - - * 13/09/03:[+] Added an option for enable regcaching or not.Now goldfinger should make - support for that!! (shadow) - - * 12/09/03:[-] Fixed the normal rec bug - [+] Added lots of new instructions for reg caching now all tutorials work - (demo 1 is strange), 3stars work also. - (GoldFinger) - - * 12/09/03:[-] Small bugfixes to Vif/VUs - (linuzappz) - - * 10/09/03:[*] More work on ipu (Florin) - - * 10/09/03:[-] New recompiler code wasn't compiling over linux, now it's ok - [-] Fixed VU memory64 writes masks - [+] Added Stats.c/h, it will create a stats.txt with some stats info, - if you define a NOSTATS in Common.h that will not be used - (linuzappz) - - * 09/09/03:[*] Improved the filter of ELF loading in GUI - [*] Register caching started to work, tutorial demo2a is working, others are coming. - [*] Commied ix86.c again with previous fix as linuz removed it. - (GoldFinger) - - * 09/09/03:[-] Fixed __int64 to u64 in Misc.c - [-] Fixed small bug in Vif.h - [-] Fixed bug in GS.c, bios is ok now - [+] Implemented INTC_STAT/MASK and DMAC_STAT for 64bits - [!] I commited the last ix86.c/h, afaik you only - reformatted it gold, please don't reformat my - code - (linuzappz) - - * 09/09/03:[-] Disabled host support for bios as it is buggy. - [*] Added/fixed SCMDs (2,3,1A) in cdvd.c (Florin) - - * 08/09/03:[+] Vif0/1 regs are now mapped to hardware - (linuzappz) - - * 08/09/03:[-] fixed bug in cpu ops debugger. Now all opcodes should appear .(For you goldfinger!) - (shadow) - - * 07/09/03:[+] Completed phase 1/2 of adding host support for bios. (Florin) - - * 06/09/03:[-] Fixed bug in rec when using ezmpeg - * 06/09/03:[*] Re-structuring the whole recompiler to make it easier for - debug and for the sake of understanding - (GoldFinger) - - * 06/09/03:[*] Many things fixed/changed in ipu files (Florin) - - * 05/09/03:[+] Hot keys for savestates in win32 - F1 -> savestate - F2 -> change the slot - F3 -> loadstate - [+] checkbox for enable the patches in cpu dialog - (shadow) - - * 05/09/03:[+] Some more VUmicro debugging - (linuzappz) - - * 05/09/03:[+] Added VDEC & BDEC; now m2v files work but ipu files do not - (Florin) - - * 05/09/03:[-] bug fixed in ifpu.h (shadow) - - * 04/09/03:[+] Added Init of Plugins before Loading of - savestates. - [-] LoadOthers in WinMain.c had a plugin init - missing fixed that. - [!] Fixed GSsoft aswell. And increased vRam size from 4*1024*1024 - to 2*4*1024*1024 as OpenGL doesn't handle wrapping around in - memory. - (asadr) - - * 04/09/03:[+] HSync stuff, and better CSR/IMR handling - [+] Few more FPU insts in ix86.c/h - [!] Please tell me if something is now screwed :) - (linuzappz) - - * 04/09/03:[-] ipu fixes to dmas and vdec (Florin) - - * 02/09/03:[-] fixed the patch system - (goldfinger) - - * 02/09/03:[*] working savestates in win32 :) - (shadow) - - * 01/09/03:[*] Working savestates for linux :) - (linuzappz) - - * 02/09/03:[-] Bug fixes in IPU.c (still hacky when returning BP) - Now ezmpeg gets to VDEC;) (Florin) - - * 01/09/03:[-] Fixed old bug in Sio.c/CdRom.c - (linuzappz) - - * 30/08/03:[+] sceCdReadSubQ <- that is a bad name; it look more like - a gettoc entry (SCMD2) (Florin) - - * 29/08/03:[+] Started the register caching implementation, not ready to test yet - some new x86 opcodes to x86.c and .h iR5900.c is completely changed - a new define for iR5900.c is used to enable reg caching. - (GoldFinger) - - * 29/08/03:[-] Removed 3DNOW code is the FPU since 3DNOW is 64bits, - and FPU is 32bits - [+] Workaround in ElfHeader.c for pukklink, so it will - load ok with Run Cd - [+] Savestates :D - [-] Maybe fixed patches, blah :P - (linuzappz) - - * 27/08/03:[+] CdGetToc + CdReadSubQ - [*] Changed PS2Edefs specs 0.4.3 / CDVD v3 - [*] Changed back the CDVDgetTD function to have a 2nd param: cdvdTD - (Florin) - - * 26/08/03:[-] Fixed patching bug in BiosInit.h that was used only for scph10000 - (Florin) - - * 26/08/03:[*] SPR address in DMAs are now masked with 0x0fffffff - (linuzappz) - - * 25/08/03:[-] Fixed patch stuff - (shadow-linuzappz) - - * 25/08/03:[-] Fixed IDEC bitstream decoding. Now, all *.ipu files - should work fine (Florin) - - * 25/08/03:[-] Fixed VIF Transfers to include MARK reg in VIF0 aswell. - (asadr) - - * 22/08/03:[*] Changed the SSE opcodes to Macro mode (thanks Linuz) and linuz added some more - (GoldFinger) - - * 22/08/03:[-] Changed DEV9 stuff to use DEV9 plugins - (linuzappz) - - * 21/08/03:[+] Added SSE instructions ADDPSRtoR, ADDPSMtoR, SUBPSRtoR, SUBPSMtoR, MULPSRtoR, - MULPSMtoR, MINPSRtoR, MINPSMtoR, MAXPSRtoR, MAXPSMtoR, SQRTPSRtoR, SQRTPSMtoR, - RSQRTPSRtoR, RSQRTPSMtoR, RCPPSRtoR, RCPPSMtoR, CVTPS2PIRtoR, CVTPS2PIMtoR, - CVTPIPS2RtoR, CVTPIPS2MtoR, CMPEQPSRtoR, CMPEQPSMtoR, CMPLTPSRtoR, - CMPLTPSMtoR, CMPLEPSRtoR, CMPLEPSMtoR to ix86.c ( need to compile and check ) :P - (GoldFinger) - - * 21/08/03:[+] Added Patch.c - (shadow-linuzappz) - - * 19/08/03:[+] Fixed bug in PsxHw.h, thanks to psycho_tr - (linuzappz) - - * 15/08/03:[+] More to SMAP - (linuzappz) - - * 14/08/03:[-] Fixed Debugger/RDebugger - [!] There is still one bug left i saw in the RDebugger, - that's the threads are not ended ok, but i'll leave - that to you florin :) - (linuzappz) - - * 12/08/03:[*] Changed the time in CDVD->c and some WIN32 defines to __WIN32__ - (Florin) - - * 08/08/03:[+] Started SMAP/DEV9 stuff - (linuzappz) - - * 06/08/03:[-] Fixed MFIFO for GS dma - (linuzappz) - - v0.41: - * 05/08/03:[-] Uncommented some sif WIP stuff :) - [*] Addeded 0x00100008 PC for cpuExecuteBios as well - [-] Fixed silly bug in CDVD->c for DvdReads - (linuzappz) - - v0.4: - * 29/07/03:[-] Fixed bug in Sif code ;) - (linuzappz) - - * 26/07/03:[-] Fixed the dma memory checking for the scratchpad, - and implemented it over the remaining dmas - (linuzappz) - - * 25/07/03:[-] GSdma now ends when a transfer is outside the memory - [-] Bugfix to Sif1 dma - [-] Some changes in the ICFG write code, and - when D5_CHCR == 0, psxSu32(0x30) = 0x40000; - (linuzappz) - - * 22/07/03:[-] Counters fixes/improvements - [*] Improvements on CdRead/DvdRead - [*] Better Sif1/0 handling - (linuzappz) - - * 22/07/03:[+] New PS2Edefs 0.4.0 :) - (linuzappz) - - * 20/07/03:[-] DvdRead was really 2064 :P - (linuzappz) - - * 19/07/03:[-] Fixed BIG stupid bug in FiFo.c that i left there:P - [!] I'm ashamed:( - [*] Fixed getBits function with back buffer;) - [!] I'm proud of that B-) (Florin) - - * 18/07/03:[-] Fixed includes for Mpeg.c/yuv2rgb.c - [-] Modified DvdRead, uses 2048 blocksize, experimental ;) - [-] CDVDgetTD had to return s32, not u32 - [*] Some reorganization for the rec - (linuzappz) - - * 18/07/03:[-] Fixed some memory allocation bug in IPU.c - [i think there are more, searching...:P] (Florin) - - * 17/07/03:[-] Fixed another Sio bug ;) - [-] Fixed MULT1/MULTU1, s64 was really s32 - [-] Commented out the interrupt delay thingy ;), was causing - troubles with Kengo 2 - [+] Implemented DvdRead - (linuzappz) - - * 17/07/03:[-] Fixed bug in FiFo.c that caused flickering between movies - [*] Fixed color conversion (Florin) - - * 16/07/03:[-] Now we can boot games though bios :) - [-] Fixed 32bits shifts in Interpreter.c - (linuzappz) - - * 16/07/03:[*] Fixed (somehow:P) IDEC so that .ipu files works a bit (Florin) - - * 15/07/03:[*] Changed cdvdLoc stuff to lsn - [-] PsxDma10 now will just return if bcr < 4 - [-] Corrections to IPU1/0 dma transfers, untested but should be fine ;) - [!] Breaks compat with current cdvd plugs - (linuzappz) - - * 15/07/03:[+] CSC + PACK ipu commands Fixes to bitstream decoding (Florin) - - * 14/07/03:[-] Really implemented MFIFO now ;P - [!] mfifo.elf works just fine now, also tekkentag reaches a bit further - (linuzappz) - - * 14/07/03:[+] Some more work on IntraDECoding for IPU (florin) - - * 14/07/03:[-] Some cleaning over Sif.c - [+] MFIFO implemented in both GS/VIF - [-] Fixes to xpadman - (linuzappz) - - * 13/07/03:[*] VUmicro code now can run in "async mode" - [-] Fixed TTE in SPR1 dma - (linuzappz) - - * 10/07/03:[-] Fixed bug in R5900.c when HLE mode was on - [-] fileio ain't crashing anymore when the file is not there - [-] Fixed interrupts on VifDma.h - (linuzappz) - - * 09/07/03:[-] Fixed bug in GS dma transfers when TTE is enabled. - Was passing wrong size of qword now it is GSgifTransfer3(ptag+2, 4) - - * 08/07/03:[*] In Win32 cdvdReadRTC gets correct time. (Florin) - - * 08/07/03:[-] Fixed stupid bug in SPR1 dma, thanks florin :) - (linuzappz) - - * 07/07/03:[-] Fixed bug in Vif UNPACK cmd, tops was *16 ;) - [*] GSgifTransfer/2 => GSgifTransfer1/2/3 (PATH1/2/3) - [*] Updated GS.c with VifDma.h asadr changes, commented the TTE - transfer by now - [*] Updated as well the SPR1 dma - [!] Note that now all vu1 demos work :D - (linuzappz) - - * 06/07/03:[+] Implemented cdvdReadKey - (linuzappz) - - * 05/07/03:[+] VCALLMS/VCALLMSR now are implemented - [*] SPU dma4 now has a delay base of 0x10000 - [-] VifDma.h is now mostly as before asadr rewrote it - last time, since that way had problems with the TTE chcr - flag, now go check the bios Browser ;) - (linuzappz) - - * 04/07/03:[-] IOP won't die now after cpuRegs.cycle overflows :), R5900.c - (linuzappz) - - * 03/07/03:[-] Fixed WriteRTC and bug in Sio.c - (linuzappz) - - * 03/07/03:[+] Some IPU commands (BCLR,FDEC,SETIQ,SETVQ,SETTH) & IPU fifo - (Florin) - - * 02/07/03:[-] Cleaned a bit VifDma.h - [*] Modified the DmaExec macros, now the Dmas take care - to interrupt and to clear the STR bit - (linuzappz) - - * 30/06/03:[*] Usb hack ;), PsxHw.c - (linuzappz) - - * 29/06/03:[*] Modified Iop DMAs for async processing, only for spu/spu2 by now - [-] Vif dma refe/end now sets the tadr to 0, tek4 loops else, but - now is crashing after ;) - [!] sven shows one screen now, and others want to ;) - (linuzappz) - - * 29/06/03:[-] Removed the experimental code i added yesterday from CDVD->c/h - [*] Improved EE/IOP Rcnts - (linuzappz) - - * 28/06/03:[*] More on iop rcnts rewrite - [+] Experimental code in CdRead, now if the lsn sector is - the same than the last one readed it will add nSectors - to it, ie. it readed 2 sectors from 0:2:16; and then - it issues another cdread with the same lsn, it will read - from 0:2:18. - (linuzappz) - - * 27/06/03:[*] Started iop rcnts rewrite, untested and more to come ;) (linuzappz) - - * 27/06/03:[-] Some fixes on iop rcnts - [+] Implemented the SPU2async func - (linuzappz) - - * 26/06/03:[-] Really fixed HLE mode ;). (linuzappz) - - * 26/06/03:[-] Small CDVD->c corrections. (linuzappz) - - * 24/06/03:[*] Fixed elf loader at least not to crash at bad elfs. (Florin) - - * 23/06/03:[*] Added "rom1.bin" as a valid file for rom1 filesystem. (Florin) - - * 23/06/03:[-] Small fix to CDVD->c, maybe fixed a time out problem - with some cdvdman versions. - (linuzappz) - - * 20/06/03:[+] Some mcds work, PsxSio2.c, Sio.c - (linuzappz) - - * 17/06/03:[+] SPU dmas now call the correct funcs, PsxDma.c - (linuzappz) - - * 17/06/03:[-] Fixed Sio2, PADs are working :D, Sio.c, PsxSio2.c - [-] Fixed language in CDVD->c, now's english again :) - (linuzappz) - - * 16/06/03:[-] Better error handling over CDVD->c - [+] ROM1 stuff, Memory.c/h, PsxMem.c, iR3000A.c, iR5900.c - [!] PCSX2 now detects the rom1 in this way: ie. - you use scph10000.bin, then you must have - in the same dir scph10000.bin.rom1 or scph10000.rom1 - (linuzappz) - - * 16/06/03:[-] Rewrote the VIFtransfer and VIFdma again. Better speed and - compatibility this time (asadr). - - * 16/06/03:[*] Reoverwritten CDVD->c/h with my CDVD->c/h, - this is simpler, more direct and faster, - CdRom.c, PsxHw.c, R3000A.c, PsxCounters.c, - Memory.c - [-] Kinda workaround i think in the ICFG reg - (1450), PsxHw.c - [-] Removed VSyncHack at least ;), WinMain.c, - Common.h, ini.c - [!] Games start showing something :D:D - (linuzappz) - - * 15/06/03:[+] More dummy cdvd scmd (Florin) - - * 14/06/03:[-] Fixed SIF0 transfers, PsxDma.c, PsxHw.c/h. - [*] Cleaned up SIF1, R3000A.c, Sif.c - [+] Added a Run CD menuitem, WinMain.c, resource.h - [!] Bios shows something :D:D - (linuzappz) - - * 12/06/03:[-] Fixed bug in release version (unsafe compiler optimizations:P) - (Florin) - - * 11/06/03:[+] More functions on lle cdrom (cdread) (Florin) - - * 10/06/03:[+] Rudely overwritten linuzappz work in CDVD->c/.h - [!] Sorry man, i think i did the best...i created a framework - with names and so on. Also we have to talk about;) (Florin) - - * 10/06/03:[+] Started CDVD->c/h, moved old CDVD->h to CDVDlib.h, - PsxMem.c, PsxCommon.h (linuzappz) - - * 10/06/03:[*] Added new SPU2 dma functions plugin.c - [*] New PS2 plugins specifications 0.3.2 (shadow) - - * 09/06/03:[+] Add SPU2read/SPU2write to PsxMem.c - [-] Few fixes to PsxCounters.c - [+] Added PsxDma7, PsxHw.c, PsxDma.c (linuzappz) - - * 09/06/03:[-] Sif0 chaining fix (Florin) - - * 08/06/03:[+] Started with SIO2... (Florin) - - * 07/06/03:[-] Fixes to SIF0/SIF1 :D - [!] Now OSDSYS loads ok, and so does several modules in iop, - bios now gets stuck in a Deci2Call (reqsend) - (linuzappz) - - * 07/06/03:[-] Fixes0, Fixes1 (Florin;) - - * 06/06/03:[*] Fixed and improved the VIF Dma transfers and rewrote the VIF_Transfer. It's far - more compatible and fast ( all vu1 demos work:D ). (asadr) - - * 06/06/03:[*] Fixed sif1 (...waiting for a better solution;) (Florin) - - * 05/06/03:[-] Sif1 flags fixes (still buggy?) (Florin) - - * 04/06/03:[*] Some adjustments to PsxInterpreter.c (Florin) - - * 03/06/03:[-] Set the PSXCLK to 36.864 Mhz, by now, later PSXCLK should be - a variable, Common.h - [*] Improved iop hw maps, added DMA9/10, PsxDma.c/h, R3000A.c, PsxMem.c - [+] Added RCNT3/4/5 in PsxCounters.c/h, PsxBios.c, PsxHw.c/h - [+] Added a bit more of loggin in PsxInterpreter.c - [-] 0xba000006 now returns 1, for some bioses, Memory.c - [*] Improved dmaSIF1, SIF.c, and cleaned dmaSPR1, SPR.c - [!] Finally my name is on the v0.4 :P - (linuzappz) - - * 03/06/03:[-] Fixed GetPS2ElfName in Misc.c (Florin) - - * 22/05/03:[+] new flags code based in nsx2 flag code. vuflags.c vuflags.h - [*] vuops.h rewrote almost all the vu opcodes with new flags code Upper Instructions - should be okay but might still are some issues with the Lower instructions. - [-] added proper reset in vu1micro.c - [*] added the new vcnet files for compile properly with vuflags - (shadow) - - * 21/05/03:[-] Fully fixed of recSQ in iR5900.c. - [-] Fixed EMMS_TRACING on none 3DNOW machines, EMMS_TRACING now turned on again. - [*] Added CPU autodetection to iR5900.c - [!] #define CPU_3DNOW is not used now. - (Alexey Silinov) - - * 20/05/03:[-] Dummy fix of recSQ in iR5900.c. Recompiler back to work again. - (Alexey Silinov) - - * 10/05/03:[*] Improved fpu.c, just code optimizing in cvt_s, cvt_w, all branches opcodes and - some code organizing. - (GoldFinger) - - * 02/05/03:[+] Added some ioprps to Misc.c (Florin) - - * 02/05/03:[+] Some more work on Padman module 800100Xpadman.c , 800100Xpadman.h (shadow) - - * 30/04/03:[+] Added 2 more syscalls in BiosSysc.h (Florin) - - * 29/04/03:[+] More threads functions. (see threads.txt) - [!] To see threads switching, comment the 3 instructions - at the top of _ThreadHandler function (Bios.c) - (Florin) - - v0.3: - * 01/05/03:[-] Fixed dvd iso issue (roundup of numsectors ...+2047/2048) - in CDVDiso.c (Florin) - - * 30/04/03:[-] Fixed bug in CFC1, Fpu.c - [-] Fixed branches isns on VUops.h, US was instead of SS - [-] Added newline at oef for MMI.c, *mtapman.c - [-] Included in *loadfile.c - [*] Few changes over languages, Misc.c/h, WinMain.c - (linuzappz) - - * 29/04/03:[-] Added a workaround for the interrupt latency in the rec, - R5900.c - (linuzappz) - - * 28/04/03:[-] Fixed a bug in BiosInit.h, instead of 16 dmas there was 15 - [-] Counters 0,1,2 had interruption disabled, Counters.c - (linuzappz) - - * 27/04/03 [-] WinMain.c now only calls GetPS2Elf if on HLE mode - [-] parseCommandLine had a bug when not using HLE, ElfHeader.c - [*] Implemented memRead/Write128, Memory.c/h, iR5900.c - [*] Implemented a better way to count opcodes in iR5900.c - [*] Rewrote AddIntc/DmacHandler, RemoveIntc/DmacHandler, Bios* - (linuzappz) - - * 24/04/03:[*] More threads functions. (see threads.txt) (Florin) - - - * 23/04/03 [-] Undo the "VU0/1 control/integer regs are now the same" update, - VU*, DebugReg.c, (goldfinger-linuzappz) - [+] Implemented latency interrupt thingy ;), R5900.c/h - (linuzappz) - - * 21/04/03 [-] DMAC interrupt wasn't setting the cause in a0, Bios.c - [+] DMACTable is now being used with DefaultDmacHandler, Bios.c/h, - BiosInit.h, HLE.c - [+] Added dummy handles for mtapman901/3, Rpc_services.h, *mtapman* - [*] VIF0 code is now shared with VIF1 code, Vif.c, VifDma.h - (linuzappz) - - * 23/04/03:[*] Fixed RFU061_InitHeap, EndOfHeap, CreateThread, InitThreads - (Florin) - - * 21/04/03:[+] Started threads update (Bios.c/BiosInit.h/BiosSync.h/ - deci2_dbgp.c/ElfHeader.c/.h) (Florin) - [-] Fixed fifos a bit:) (FiFo.c/Hw.h) (Florin) - [*] Fixed VIF1 regs display in Hw.c. I know that those were handeled - but now is more clear (Asad-Florin) - - * 20/04/03:[-] Fixed a bug in WinMain.c. In case of the debuggers with HLE bios, - cpuExecuteBios() was not called, so the tlbs and all stuff - were not inited properly. (Florin) - - * 20/04/03:[-] Fixed a bug in VUmicro.h - [+] VIF1dma now handles 'from Memory' transfers, Vif.c - [-] F11 now un/sets Log, F12 un/sets symbol logging, WinMain.c - (linuzappz) - - * 19/04/03:[-] Fixed a bug in Interpreter.c - [-] VU0/1 control/integer regs are now the same, VU*, DebugReg.c - [*] Cleaned a bit GS.c - (linuzappz) - - * 17/04/03:[-] gsRead32 wasn't calling GSread32, lol :), GS.c - [+] Implemented more syscalls, as dummy for now, Bios.c/h, BiosSysc.h, - HLE.c - [*] Removed the CSR revision/intelace bits over GS.c - [+] Added GSirqCallback to PS2Edefs.h, GS.c, Plugins.c - [+] VIF1 cmd now handles the i bit, still not 100% correct, Vif.c - [-] Fixed several VIF1 bugs, Vif.c - (linuzappz) - - * 16/04/03:[*] biosInit is now called at hle_bootstrap, Bios.c, HLE.c, WinMain.c - [+] Added _TlbInit at biosInit, Bios.c - [*] Deci2Call is now better coded, Bios.c, BiosSysc.h - [-] Fixed some bugs over AddIntcHandler/AddDmacHandler, BiosSysc.h - [+] bios_SetSYSCALL is now implemented, BiosSysc.h - (linuzappz) - - * 17/04/03:[+] Breakpoint support for debugging bios. (Florin) - - * 16/04/03:[-] Readded an update that linuzappz missed in his src, - that was then used by many pcsx2 team members. [it is about my 16/03/2003's] - [+] sceCdReadIOPm in 80000595.c - (Florin) - - * 14/04/03:[*] Memory access bug in deci2 that made pcsx2 to crash. hi linuzappz - [+] MC functions fixes/dummies over 80000400mcserv.c - (Florin) - - * 12/04/03:[*] CP0Count now adds 2 every opcode, instead of 4 - (linuzappz) - - * 12/04/03:[-] Bios VSyncSetFlag is now fixed ok, Bios.c - [*] Started to implement new Bios code, Bios.c/h, BiosInit.h - BiosSysc.h, EEregs.h, HLE.c, R5900.c/h - [!] Please tell me if this update creates some incompatibility, - or something else works now, since the INTC/Exceptions code is - much better now :). - (linuzappz) - - * 08/04/03:[-] DMAC_STAT CIS? bits are now set after a DmaExec, Hw.c - [-] Fixed bug when a plugin returned -1, WinMain.c - [*] Cleaned a bit GSdma, GS.c - [-] Fixed bug in INTC interrupts, Bios.c - (linuzappz) - - * 07/04/03:[+] Added cpu opcodes debugger. Use the CPU ops button in the debugger - and it will create a cpuops.txt with the opcodes that used. - Debugger.c pcsx2.rc, cpuopdebug.c cpuopdebug.h . Now works only in - interpreter. (shadow) - - * 04/04/03:[+] Added LabelGreets/LabelAuthors to Misc.c/h, AboutDlg.c - [*] Languages code over pcsx2 is a bit better, WinMain.c - [+] Added Log to STDOUT over Logging dialog, pcsx2.rc, - Misc.c, resource.h - [+] Now we're emulating the VSync Start and the VSync End, Counters.c - (linuzappz) - - * 26/03/03:[*] Optimized PLZCW in mmi.c (GoldFinger) - [-] fixed MADD1 and MADDU1 in mmi.c (GoldFinger) - [-] PSLLH, PSRLH and PSRAH (sa needed to be the first 4 bits only), - mmi.c (GoldFinger) - [-] PADDSW, the manual seems to be wrong (well it is) so I tryed - to fix it, mmi.c (GoldFinger) - [-] PADDSB, PSUBSB, the comparision was wrong, mmi.c (GoldFinger) - [-] PADDSW, PSUBSW, PADDSH, PSUBSH, PADDSB, PSUBSB, PADDUW, PSUBUW, PADDUH, - PSUBUH, PADDUB, PSUBUB, the sum and sub need a conversion to the higher - value(s16,s32 and s64), mmi.c (GoldFinger) - [-] PMINH, the comparision needs to be signed, mmi.c (GoldFinger) - [-] PHMSBH, was wrong, fixed, mmi.c (GoldFinger) - [-] PEXEH, PREVH, was using _Rs_ when only _Rt_ should be, mmi.c (GoldFinger) - - * 26/03/03:[*] fixed fpu bugs. Hi linuzappz :) . Tmip is correct in interpreter mode finally - fpu.c (shadow) - - * 24/03/03:[+] Fixed Trap instructions, hi shadow :), also cleaned - up a bit the Interpreter.c (linuzappz) - - * 22/03/03:[+] Fixed the 'Load ELF File' issue, added the Memory Dump menu, - WinMain.c (Florin-linuzappz) - [!] I forgot the changelog entry in the last update, - please read it (linuzappz) - [!] I've updated again the pcsx2.po, florin sent one without the - linux port messages since i've never updated u the linux port ;) - - * 20/03/03:[+] Added GSsetWindowInfo, WinMain.c, PS2Edefs.h, Plugins.c - [+] Added MiltuLingual support, using gettext, WinMain.c, Plugins.c, - AboutDlg.c, ConfigDlg.c, pcsx2.rc, Memory.c, iR5900.c, iR3000A.c, - pcsx2.dsp, Sio.c, R5900.c, PsxMem.c, Hw.c, Common.h, ini.c, - resource.h, Win32.h - [-] Fixed IPU.c when IPU_LOG is not defined - [-] Fixed padman/loadfile.c when RPC_LOG is not defined - [*] Removed dummy memory area, Memory.c/h, PsxMem.c/h - (linuzappz) - - * 17/03/03:[*] add some more stuff to DisR5900asm.c . win debugger is better now (shadow) - [-] fix a bug in rec table (visubiu not exist) in macromode .. recCop2.c (shadow) - [!] recheck vu micromode tables. Hmm they seem correct (shadow) - - * 16/03/03:[+] Added "next" (aka "step over") support for deci2 debugging - [+] Added TTYP support (log redirection) (buggy;have to test more) - (Florin) - - * 15/03/03:[*] move loadfile to rpc using florins protocol hi florin;p (shadow) - - * 15/03/03:[*] Fixes to breakpoints in deci2 stuff (Florin) - - * 13/03/03:[+] More deci2 dbgp stuff (BREAK/CONTINUE/RUN) - [!] It is not fully tested. This is EXPERIMENTAL code. - [!] It may contain many bugs and there are also "known issues". - [*] changed names of shadow's padman files and made the according - changes to rpc_services.h & bios.c (Florin) - - * 12/03/03:[*] rewrote padman+xpadman according to florins protocol on RPC folder - [*] removed code from bios.c according to pad handling.. - [+] Add fix that make analog mode to work partially ;) (try turnip) (shadow) - - * 10/03/03:[+] Added more mem mappings to PsxMem.c & Memory.c in order - not to crash the emu when read from a not-covered area (Florin) - - * 10/03/03:[-] fix small bug in winmain that didn't let console to close winmain.c (shadow) - - * 04/03/03:[+] Added remaining UNPAKs and cleaned a bit, Vif.c/h (linuzappz) - - * 03/03/03:[*] replace console writes of IPU with IPU_LOG Ipu.c (Shadow) - - * 01/03/03:[-] Fixed partially FIFO bug; (unlogged change:P) - [!] I haven't fixed it all because is very messed up. - [+] Added a small fix to PsxMem.c in order to allow sifman to stay resident. - (Florin) - - * 28/02/03:[+] Added support for remote debugging with tcp/ip deci2 protocol. - [!] Not finished nor fully tested - [!] There's an issue on Win98 with winsock2 closing [have 2 check that] - [!] New src dir (rdebug\*.*), Win32\RDebugger.c/.h; - [!] also added ws2_32.lib to link libraries - (Florin) - - * 25/02/03:[+] Added 8bit DMAs to Hw.c - [+] More UNPACK cases to Vif.c (linuzappz) - - * 23/02/03:[+] Added BC0s in COP0.c - [!] the BC0s are still fake, but they should be ok ;) (linuzappz) - - * 22/02/03:[*] Now if the Recompiler fails to initialize it'll switch to interpreter (linuzappz) - - v0.2: - * 18/02/03:[-] Small fix in winmain.c in SysInit() causing a crash (shadow) - - * 12/02/03:[+] Added new DMA transfer codes to VIF.c, GS.c - [+] Added the new clipping code to the VU - [*] Fixed most of the VU ops. Better compatibility - [!] The new dma transfer code is 4-5% faster than the last one. :) - - * 12/02/03:[*] Fixed iR5900.c to include iR5900.h, moved some stuff from - ix86.h to iR5900.h - [-] Fixed CPU_LOG flags over iR5900.c/recCOP2.c - [+] Added some SysPrintfs over iR5900.c after x86Init - (linuzappz) - - * 26/01/03:[+] Added some defines in Hw.h (linuzappz) - - * 26/01/03:[-] Fixed include in IPU.c, 'common.h' for 'Common.h', - SJdata.c, 'rpc/...' '...' (linuzappz) - - * 04/02/03:[+] ix86.c: Added CPUID for linux. - SSE is autodetected now (linuzappz) - - * 28/01/03:[+] ix86.c: CPUID added. It will work if u don't change CPU on the FLY. :) - [*] ir5900.c: recompiler changed for CPUID. - [*] recCOP2.c: recompiler changed for CPUID. - (Alexey Silinov) - - * 27/01/03:[+] ir5900.c: recompile of DSRAV,PMINW,PMAXW added. - [!] I'am not sure in this code.Need find demos that use it. - [+] ix86.c: PANDNRtoR,PANDMRtoR added. - (Alexey Silinov) - - * 25/01/03:[-] ir5900.c: Some fpu opcodes for non 3DNOW version fixed with EMMS_TRACE on. - After Linuzappz request:memory opcodes - [-] (LB,LBU,LH,LHU,LW,LWU,.....,SB,SH,SW,...) fixed for version with EMMS_TRACE on. - [-] recCOP2.c: Bugfixed for non 3DNOW version(added another recCOP2SPECIAL1t,recCOP2SPECIAL2t tables). - - [!] Now EMMS_TRACE will work much better. - (Alexey Silinov) - - * 24/01/03:[+] ir5900.c: DSRA,DSRA32 recompilation added. - [*] shifts by _Imm_=0,_Rs_=0 optimized. - [+] PMFHI,PMFLO,PAND,PXOR,PMTHI,PMTLO,POR,PAND now can recompiled to SSE instructions. - [-] JUMPS bugfixed by putting SET_FPUSTATE before it, - because cpuBranchTest use FPU. Pillgen now ok with EMMS_TRACE. - [!] #define CPU_SSE in ix86.h if you have Pentium3/4 or Duron7/AthlonXP. - (Alexey Silinov) - - * 24/01/03: Fixed iR5900.c to compile without 3DNOW (linuzappz) - - * 24/01/03: Moved the emms's in Hw.c, GS.c, Memory.c to iR5900.c (linuzappz) - - * 24/01/03: Rewrote ini.c, same code as Pcsx now :) (linuzappz) - - * 24/01/03: Removed the browse info option over pcsx2.dsp (linuzappz) - - * 24/01/03: Some fixes in Hw.c, missings #ifdef HW_LOG/#endif, - reordered the ipu address and the IPU1 dma was wrong. (linuzappz) - - * 21/01/03: remove the fpu flags reorganize fpu.c a bit. Send code for using it - as reference to all the pcsx2 members. - - * 21/01/03:recCOP2.c - 75% of COP2 ops recompiled used 3DNOW. - only sign MAC flags updated. - Zero,Sticky will be done later. - (Alexey Silinov) - * 19/01/03: - ir5900.c: - Fixed recompiling of RSQRT_S for3DNOW,recPCPYUD(tskin.elf now ok), - recC_LE for x87 FPU(untitled.elf last part now ok). - Optimizing recompile of recADDI,recADDIU,recDADDI,recDADDIU, - recANDI,recORI,recXORI,... (check _Rs_,_Rt_= =0,!=0). - Optimiing recMOVZ,recMOVN only one JMP CC,.. needed. - Added #define EMMS_TRACE to. - Added #define ARITHMETICIMM_RECOMPILE,ARITHMETIC_RECOMPILE,etc. - (Alexey Silinov) - * 18/01/03: ir5900.c:Many recompiler opcodes fixed. - IPU DMA logging update. - (Alexey Silinov) - - * 18/01/03: Fixed fileio_lseek function in 80000001fileio.c. (Florin) - - * 16/01/03: Rewrite fpu and added two version of it. One with flags and - one without. The no flags version is much faster. - fpu.c ,r5900.h,common.h,r5900.c,ini, resources , winmain.c (shadow) - - * 15/01/03: Added memory mapping of IPU_CMD,IPU_CTRL,IPU_TOP,IPU_BP. - Added parsing of IPU commands. - (Alexey Silinov) - * 14/01/03: recMAX_S,recMIN_S,recC_F,recC_EQ,recC_LE,recC_LT-added. - recABS_S,recNEG_S-now don't use FPU. - ix86.c - 3DNOW opcodes added. - #ifdef CPU_3DNOW then FPU recompiled using 3DNOW instruction set. - Now we are ready TODO FPU register cache on CPU_3DNOW. - gs.c add emms before GS read,write. - (Alexey Silinov) - - * 14/01/03: Fixed stupid bug in 80000001fileio.c (Florin) - - * 13/01/03: Fixed some issues in CDVDiso.c & 80000597cdvdfsv.c (Florin) - - * 11/01/03: Fixed fileio [important] functions up to ioprp255 (Florin) - - * 11/01/03 some more MMI opcodes in rec (alexey silinov) - - * 10/01/03 recPADDUB-changed,recPADDUH-added (Alexey Silinov) - - - * 09/01/03 - My copy&paste bugs in recPCPYUD,recPAND,recPXOR fixed. - Now EMMS() instruction writing only before FPU commands if FPU state is MMX.With it size of recompiled code is reduced. - !!Added macros SET_FPUSTATE,SET_MMXSTATE it's must before MMX or FPU instruction. - Fixed many ops.ExtSign32to64() don't used anymore. it's faster and smaller to do CDQ(). - recLUI,recPCPYLD optimized. - Added recompilation of PMAXH,PMINH,PCGTB,PCGTH,PCGTW,PCEQB,PCEQH,PCEQW,PEXTLW,PEXTUW. - ir5900.c,ix86.c, ix86.h - (Alexey Silinov) - - - * 07/01/03: Fixed MADD, MADDA, MSUB, MSUBA opcodes in FPU.c ( asadr ) - - * 07/01/03: added MTSAB,MTSAH in interpreter.c (asadr) - - * 07/01/03: Added Flags in FPU.c, fixed SQRT, DIV, RSQRT opcodes in FPU.c ( asadr ) - - * 07/01/03: add some opcodes in interpreter.c (shadow) - - * 07/01/03: small fix in mult1,multu1 in MMI.c (shadow) - - * 07/01/03: more addes in recompiler iR5900.c (Alexey Silinov) - - * 07/01/03: fixed MULT,MULTU,MULT1,MULTU1 in rec and added DIV1,DIVU1 iR5900.c - (Alexey Silinov) - - * 07/01/03: add several MMI opcodes to recompiler iR5900.c ix86.c ix86.h - (Alexey Silinov) - - * 07/01/03: Fixed libpad version issues; added scePadInit2 support in Bios.c (Florin) - - * 06/01/03: Added sceDvdRead function to 80000595cdvdfsv.c, CDVDiso.h/.c - Moved sifcall_cdvdfsvA from Bios.c to 80000592cdvdfsv.c (Florin) - - * 05/01/03: Fixed libmc version 80000400mcserv.c - Added support for cdrom device in LoadHeap function 80000003sysmem.c (Florin) - - * 05/01/03: Added D and I Flag checking in vuDiv and SQRT opcodes and some more fixes ( asadr ) - - * 05/01/03: Merge all the vu code fixes to the better possible one vuops.h (shadow) - - * 05/01/03: Several vu fixes vuops.h (Alexey Silinov) - - * 04/01/03: Added temporary fix to vuDIV, vuRSQRT, vuERSADD, vuERCPR, ERSQRT ( asadr ) - - * 04/01/03: Added vuERCPRL, vuESUM , vuEATANxz, vuESIN, vuEATAN, vuEEXP, vuRXOR ( asadr ) - - * 04/01/03: Fixed GetPS2ElfName Misc.c - Romanian version pcsx2ro.rc & spell fixes in pcsx2.rc (Florin) - - * 03/01/03: Added callback support in Bios.c - Added function name display support (if you know other places, plz add...) - (Florin) - - * 02/01/03: Fixed sceCdRead (cdvdfsv1.4 and more?) 80000595cdvdfsv.c (Florin) - sceCdSeek, sceCdPause, sceCdStop, sceCdStatus - - * 02/01/03: Added SLTI,SLTIU,SLT,SLTU iR5900.c ( Alexey Silinov) - - * 02/01/03: Added SETS8R ix86.c ix86.h ( Alexey Silinov) - - * 01/01/03: YAH HAPPY NEW YEAR :) - - * 30/12/02: Added Dump memory button in Debug dialog over Debugger.c (Florin) - - * 29/12/02: Start work on Savestates Common.h, Misc.c. Need to include zlib.lib in project (shadow) - - * 29/12/02: Fix small bug In ERET. COP0.c (shadow) - - * 29/12/02: Some more Vu opcodes in the vuops.h (shadow) - - * 29/12/02: Added BC2F,BC2T,BC2TL,BC2FL not sure if i check the right bit althought Vu0.c (shadow) - - * 29/12/02: Added HLE opcode over DisR5900.c (linuzappz) - - * 29/12/02: Fixed some bugs on rec mode, Memory.c, PsxMem.c, - ix86.c/h, iR3000A.c, iR5900.c (linuzappz) - - * 29/12/02: Fixed JALR in Interpreter.c (linuzappz) - - * 28/12/02: Fixed stupid old bug in iR5900.c (linuzappz) - - * 26/12/02: Added compiler detection code (Win32/WinMain.c) (Florin) - - * 20/12/02: Refixed new Threads code, a bit hacky still ;), Bios.c/h, HLE.c (linuzappz) - - * 20/12/02: Refixed Counters.c, GS.c (linuzappz) - - * 20/12/02: Changed some cop0 names over DisR5900.c (linuzappz) - - * 20/12/02: Fixed EXL bit on cpuException, R5900.c (linuzappz) - - * 20/12/02: Fixed ERET, COP0.c, Interpreter.c, R5900.h (linuzappz) - - * 19/12/02: fix bugs in fileio system 80000001fileio.c (florin) - - * 19/12/02: rewrite MMI mmi.c (linuzappz) - - v0.1: - * 17/12/02: Small cleaning for release (linuzappz) - - * 17/12/02: Fixed a comment in CDVD->h (linuzappz) - - v0.046: - * 17/12/02: FIXED THAT BASTARD BUG with interpreter - R5900.c (shadow) - - * 16/12/02: Fixed CDVDFS_read function (CDVDisodrv.c). (Florin) - - * 07/12/02: Added support for SjDATA filesystem (SJdata.c/.h). - Small fixes in 80000003sysmem code. - Moved OpenPlugins call from debugger.c to WinMain.c - Added support for 0B001337cdvd rpc driver. (Florin) - - * 06/12/02: Fixed RPCVER for games that load ioprp.img. - Moved related code Bios.c to Misc.c. (Florin) - - * 05/12/02: Placed a guard in CDVDFS_init/CDVDisodrv.c - Added support for reading from cdvd in Elfheader.c/.h - Implemented RunCD option WinMain.c, GtkGui.c, Misc.c/.h (Florin) - - * 01/12/02: Made fileio_open more compatible with games (up to 2.0F/ioprp255) (Florin) - - * 30/11/02: Add test opcodes TGE,TGEU,TLT,TLTU,TEQ,TNE Intepreter.c (shadow) - - * 30/11/02: Add exceptions defines in R5900.h (shadow) - - * 01/12/02: Removed old VU0 code over VU0.c (linuzappz) - - * 31/11/02: Implemented CheckCdrom/LoadCdrom, still unfinished, Misc.c (linuzappz) - - v0.045: - * 31/11/02: Changed memRead32 for PSMu32 over Interpreter.c (linuzappz) - - * 31/11/02: Fixed CdRead, CDVDiso.c (linuzappz) - -// * 30/11/02: Added irqs for rcnt2/3, started thread HLE code rewrite, -// Bios.c, Counters.c (linuzappz) - - * 28/11/02: Fixed win32 fileio path, and some more small issues (linuzappz) - - * 27/11/02: Added BD0000X0 connection to 1000F0X0 and BC000000 ee memmap, - implemented direct rec clears, and added some more counters stuff, PsxMem.c/h, - Memory.c/h, iR3000A.c, iR5900.c, Counters.c/h, Hw.c, PsxHw.c (linuzappz) - - v0.044: - * 26/11/02: Added RPC handler for 80000595cdvdfsv - Fixes in iso handling system (read function can read more than 16KB) - Fixed issue with deci2call no.3 (junk re-printing) (Florin) - * 20/11/02: Automatic setting of RPCVER - (problems: 1. SDK samples do not load an ioprp; default is "2000";) - 2. starwars game load a ioprp.img; so RPCVER="0000") - Fixed bug in CDVDiso.c/CdRead(); check for null pointer - Fixed issue with the Joliet filesystem (Florin) - * 09/11/02: Added iso parsing & filesystem driver from libcdvd library by Hiryu & Sjeep - Added credits (Hiryu&Sjeep) to Aboutbox & Readme.txt - Changed the order of opening of plugins in Plugins.c/OpenPlugins() - Added (or moved code from bios.c) to handle RPC user & standard code - -works (or should work; needs intensive testing): - 014D704Enaplink, 80000001fileio, - 80000003sysmem, 80000592cdvdfsv, - 80000597cdvdfsv - -dummy (to be implemented; only params display): - 0B0110C5sjpcm, 0badca11amigamod(shadow), - 80000400mcserv,80000596cdvdfsv, - 80000601osdsnd - Added RPC_LOG logging stuff to debug.h, pcsx2.rc & resource.h - Added kputs handling for scePrintf in Deci2Call syscall in bios.c - (Florin) - - v0.043: - * 06/11/02: add some work for amigamod.irx HLE based on Florin - RPC code (shadow) - - * 21/10/02: implement some more opcodes for VU + flags in many opcodes - (shadow) - - * 19/10/02: Added more opcodes to VUops.h (from VU0.c), and started the implementation of flags, - VUflags.h, VU* (shadow-linuzappz) - * 12/10/02: Added fix for several bioses, Hw.c, removed hack for 30002R.bin R5900.c (linuzappz) - - * 06/10/02: Added 0xb2000000 map area as a 0x12000000 mirror, Memory.c (linuzappz) - - * 06/10/02: Added/Fixed some VIF1 unpack cases, Vif.c (linuzappz) - - * 06/10/02: Started Rewrite of SetGsCrt, Bios.c (linuzappz) - - * 05/10/02: Improved gsReads/Writes GS.c (linuzappz) - - * 28/09/02: Added iop HLE code for exceptions in PsxBios.c (linuzappz) - - * 24/09/02: Added ps2 bios check for config dialog in ConfigDlg.c/GtkGui.c (Florin) - - * 23/09/02: Added command line parsing for main's argc, argv in ElfHeader.c (Florin) - - * 14/09/02: Fixed small issue in PsxBios2.c/h, Bios.c (linuzappz) - - * 13/09/02: Fixed bug in Bios.c for sif_call (linuzappz) - - v0.042: - * 25/08/02: Fixed VU SQRT/RSQRT, also added ERSQRT, VUops.h (linuzappz) - - * 24/08/02: Added several stuff for IOP hle (linuzappz) - - * 09/08/02: Added: PADDSW, PSUBSW, PPACW, PADDSH, PSUBSH, PEXTLH, PPACH, PADDSB, PSUBSB, - PPACB, PEXT5, PPAC5, PABSW, PCEQW, PMINW, PADSBH, PABSH, PCEQH, PMINH, - PCEQB, PSUBUW, PADDUH, PSUBUH, PSUBUB, PEXTUB, QFSRV, PSLLVW, PSRLVW, - PINTH, PROT3W, PSRAVW, PEXCW, PEXCH, PINTEH, PMTHI, PMTLO, PEXEW, - PREVH, PEXEH, in MMI.c (GoldFinger) - - * 09/08/02: Changed: PADDUB to conform to defines (GoldFinger) - - v0.041: - * 11/08/02: More to VUops.h (shadow) - - * 10/08/02: Rewrote L/R Stores/Loads (linuzappz) - - * 05/08/02: Add some more opcodes to VUops.h some demos works again(shadow) - - * 04/08/02: Added VUops.h, VU0.c/h, still uncomplete (linuzappz) - - * 04/08/02: Added GSgifTransfer2 for PATH1, VU1micro.c, PS2Edefs.h, Plugins.c (linuzappz) - - * 03/08/02: Added unpack v4-32, Vif.c (linuzappz) - - * 02/08/02: Rewrote partially VUmicrocode, structures and stuff, VU1/0micro.c, VUmicro.h (linuzappz) - - * 02/08/02: Small change on Misc.c (linuzappz) - - * 01/08/02: cpuExecuteBios is now called before the LoadElf, WinMain.c (linuzappz) - - * 01/08/02: Added a couple of HW_LOGS in Hw.c (linuzappz) - - * 01/08/02: Fixed MFC2/CFC2 in DisR3000A.c (linuzappz) - - * 01/08/02: Added small hack on R3000A.c (linuzappz) - - * 01/08/02: Fixed bug in StartThread Bios.c (linuzappz) - - v0.040: - * 31/07/02: Small change in PsxInterpreter.c and PsxHw.c (linuzappz) - - * 31/07/02: Added CDVDgetTN and CDVDgetTD, PS2Edefs.h, Plugins.c, CdRom.c/h (linuzappz) - - * 30/07/02: Fixed Gte.c, now includes PsxCommon.h (linuzappz) - - * 30/07/02: Added GPU_LOG to Debug.h (linuzappz) - - * 30/07/02: IOP now has vsyncs, PsxCounters.c/h (linuzappz) - - * 30/07/02: Added PsxGPU.c/h, moved the GPU_xx stuff from PsxBios.c, PsxDma.c (linuzappz) - - * 24/07/02: Added psxSIF1transfer to R3000A.c,, Sif.c, still not working (linuzappz) - - * 24/07/02: Added a couple of address more to PsxHw.c (linuzappz) - - * 24/07/02: Added zeroEx func to trace writes to stdout, PsxInterpreter.c (linuzappz) - - * 24/07/02: Improved bios_write, PsxBios.c (linuzappz) - - * 24/07/02: PsxMem.c now handles the full 4mb of the bios mem (linuzappz) - - * 24/07/02: Hack for 30002R bios, R5900.c (linuzappz) - - * 24/07/02: Fixed BNEL, BEQL in disR5900.c (linuzappz) - - * 22/07/02: Remove biosCall, now use only biosException, Bios.c/h, Interpreter.c, - R5900.c (linuzappz) - - * 21/07/02: Intialaze of VU1 vu1microc,vumicro.h,R5900.c (shadow) - - * 21/07/02: implement VIF0transfer same way as VIF1transfer vif.c (shadow) - - * 20/07/02: Add debug logs in vu0,vu1 micromode + vu0 execute vu0micro.c, - vu1micro.c,vumicro.h (shadow) - - * 18/07/02: Clean up vu0 macromode vu0.c (shadow) - - * 19/07/02: PsxMem.c now handles 0xbf80xxxx hw addresses (linuzappz) - - * 17/07/02: IOP PRid is 0x1f (not 0x2), R3000A.c (linuzappz) - - * 17/07/02: More to VU1micro.c (shadow) - - * 14/07/02: Added psxMemRLUT/psxMemWLUT instead of only psxMemLUT, PsxMem.c/h (linuzappz) - - * 11/07/02: Added MADD1, MADDU1, PMFHL, PCGTW, PMAXW, PADDH, PSUBH, PCGTH, - PMAXH, PADDB, PCGTB, MMI.c (goldfinger) - - v0.039: - * 08/07/02: Commented the 0xe000 hw dma test, for jasper, Hw.c (linuzappz) - - * 08/07/02: Changed PADreadStatus for PADstartPoll/PADpoll, Plugins.c, PS2Edefs.h, Bios.c, - PsxBios.c, Sio.c (linuzappz) - - * 07/07/02: More to Vif1 dma and added vu1ExecMicro, Vif.c, VU1micro.c/h (linuzappz) - - * 06/07/02: Rewritten/updated iop code, CdRom.c/h, Common.h, Iop*, Psx*, Debug.h, - Decode_XA.c/h, DisR3000A.c, ElfHeader.c, Gte.c/h, Mdec.c/h, R3000A.c, - R5900.c/h, Sio.c/h, iR3000A.c, Bios.c, pcsx2.dsp (linuzappz) - - * 05/07/02: Added CDVDreadTrack/getBuffer and now we're using CDVD plugin, PS2Edefs.h, - Plugins.c, ConfigDlg.c, ini.c pcsx2.rc (linuzappz) - - * 05/07/02: Optimized recANDI and completed the mmi rec tables, iR5900.c,ix86.c/h (linuzappz) - - * 06/07/02: Add VU opcodes tables vu1micro.c,vu0micro.c,vumicro.h (shadow) - - * 03/07/02: Added MADDU, PMTHL, PLZCW, PSLLH, PSRLH, PSRAH, PSLLW, PSRLW, PSRAW in MMI.c(goldfinger) - - * 03/07/02: Small change in MULT1, MULTU1 for speed, MMI.c(goldfinger) - - * 03/07/02: Fixed MADD, PLZCW in MMI.c(goldfinger) - - * 03/07/02: Fixed signed extend in DIVU, SLL, SLLV, Interpreter.c(goldfinger) - - * 03/07/02: Fixed C_F, FPU.c(goldfinger) - - * 04/07/02: Fixed silly bug on Bios.c, also added a workaround on Counters.c (linuzappz) - - * 04/07/02: Refixed CVT_W/S, FPU.c (linuzappz) - - * 03/07/02: Fixed DIV/DIVU and implemented MOVZ/MOVN in iR5900.c (linuzappz) - - v0.038: - * 02/07/02: Small change on CVT_W, FPU.c (linuzappz) - - * 01/07/02: Changed a bit IPU.c/h, added the dmaIPUs on Hw.c and added IPU_LOG, Debug.h, - resource.h, pcsx2.rc, Common.h (linuzappz) - - * 30/06/02: Add the remaining vif regs in the structure vif.h (shadow) - - * 30/06/02: Framework for IPU ipu.c,ipu.h (shadow) - - v0.037: - * 30/06/02: Added a couple of MMI opcodes to iR5900.c, ix86.c/h, also added one more cdvd server, - Bios.c (linuzappz) - - * 29/06/02: Added most of the FPU opcodes on the recompiler, fixed DSRLV/DSLLV, and also added - LQ, SQ, MFHI, MFLO, MTLO, MTHI, iR5900.c, ix86.c/h (linuzappz) - - * 28/06/02: Refixed LDL,LDR,SDL,SDR, Interpreter.c (linuzappz) - - * 27/06/02: Fixed bug in ABS, FPU.c and completed more fpu opcodes on DisR5900.c + fix to vu0 (vu0.c) - (shadow-linuzappz) - - * 27/06/02: Fixed fileio for dummy files, Bios.c (linuzappz) - - * 26/06/02: Changes/(fixes?) to some opcodes in interpreter.c SRA,DSRA,MULT,MULTU - ,SDL,SDR,LDR,LDL.At least cubemastah is correct now!(GoldFinger) - - * 20/06/02: Fixed the new Logging, modified the files on the last entry + WinMain.c (linuzappz) - - * 18/06/02: Realtime Logging Debugger.c,resource.h,pcsx2.rc,ini.c, - Common.h,debug.h (you must enable it!)(need to fixed) (shadow) - - * 18/06/02: Add some work for sjpcm module on Bios.c (shadow) - - v0.36: - * 13/06/02: Fix basic3d on Bios.c (linuzappz) - - * 09/06/02: Fix for call/ret dma in GS.c (shadow) - - * 06/06/02: Started CDVD plugin API on PS2Edefs.h (linuzappz) - - * 06/06/02: Started HLE.c/h, Interpreter.c, Common.h, iR5900.c, InterTables.c/h (linuzappz) - - * 04/06/02: Added some more syscalls on Bios.c (linuzappz) - - * 02/06/02: Fixed some bugs on SPR.c, Sif.c, Vif.c (linuzappz) - - * 02/06/02: More work on DisR5900asm.c (shadow) - - * 02/06/02: More stuff on Vif.c/h and SPR.c (linuzappz) - - * 01/06/02: Started SIFdmas Hw.c, Sif.c/h, Common.h, added SIF_LOG to Debug.h, - also removed the BREAK code since the bios doesn't handles that, Interpreter.c (linuzappz) - - * 01/06/02: Added PLZCW to MMI.c (linuzappz) - - * 01/06/02: RFU060 is now as before, added INTC and DMAC stuff, added INTC regs 0x1000f000 and - 0x1000f010, and DMAC 0x1000e010, Hw.c/h, Bios.c, Counters.c, R5900.c/h (linuzappz) - - * 31/05/02: Thread stuff is better now, added RFU061 and fixed RFU060, Bios.c (linuzappz) - - * 30/05/02: VU0 stuff is almost complete on DisR5900asm.c (shadow) - - * 30/05/02: Set gp on ElfHeader.c (linuzappz) - - * 30/05/02: Renamed _LOG to EMU_LOG, Debug.h, WinMain.c (linuzappz) - - * 28/05/02: Implemented GetCop0/iGetCop0 bios calls, Bios.c (linuzappz) - - * 28/05/02: Added names to GPR/COP0 regs, R5900.h, COP0.c, Bios.c, Interpreter.c, - FPU.c, DisR5900.c, R5900.c, VU0.c, MMI.c, iR5900.c, ElfHeader.c (linuzappz) - - * 28/05/02: Fixed PSUBW, PSUBB, added PADDW, PEXTLB, PEXTUH, MMI.c, PERF - on Interpreter.c, and TLBWR, TLBR to COP0.c (linuzappz) - - * 28/05/02: disasm.c/h is now DisR5900asm.c, Debugger.c, Debug.h, also added symbols - support for it (linuzappz) - - v0.35: - * 27/05/02: INCREASE VERSION ON 0.036! WinMain.c (shadow) - - * 27/05/02: add partialy support for VU0 in Win32 disasm.fix a bug in tables for MMI - disasm.c disasm.h (shadow) - - * 27/05/02: add VU1 register debugger. resource.h, pcsx2.rc,debugger.h, debugreg.c (shadow) - - * 27/05/02: Started real threads stuff on Bios.c (linuzappz) - - * 27/05/02: Rewrote dmaGIF/dmaVIF1, GS.c/h, Vif.c/h, Hw.c/h (linuzappz) - - * 27/05/02: add Macros for VU0Mem + Some new VU0 opcodes VISWR,VILWR, (shadow - [TyRaNiD] ) - - * 27/05/02: add some new Defines (_Id_ _Is_ _It_ _Imm5_) and some new opcodes - VIADD,VISUB,VIOR,VIAND,VIADDDI,VFOI12,VFOI15,VABS (shadow) - - * 26/05/02: Added support for Symbols on DisR5900.c, ElfHeader.c, Debug.h, - also refixed the qwc on SPR.c (linuzappz) - - * 26/05/02: Added some cdvdfsv stuff on Bios.c, also set the gs revision to 3 in - CSR, GS.c (linuzappz) - - * 25/05/02: CTC2/CFC2 to DisR5900.c (linuzappz) - - * 25/05/02: Added BREAK opcode on Interpreter.c (linuzappz) - - * 25/05/02: Now the b0000000 to b2000000 address are handled as a 10000000 mirror, - Hw.c, Memory.c (linuzappz) - - * 25/05/02: Removed some old code on R5900.c, rewrote a bit the ElfHeader.c (linuzappz) - - * 24/05/02: Add gsWrite... on bios_SetGsCrt (tyranid) - - * 24/05/02: MULT1/MULTU1 are now ok MMI.c (linuzappz) - - * 24/05/02: Added 1000f000 addr on hwRead32, Hw.c (linuzappz) - - * 23/05/02: add VU0 opcodes VSUBi,VSUBq,VMULA,VMULAi,VMULAq,VMSUB,VMSUBi, - VMSUBq,VMADDA,VMAX,VMINI,VADDA,VADDAi,VADDAq,VADDAx,VADDAy, - VADDAz,VADDAw,VSUBA,VSUBAi,VSUBAq,VSUBAx,VSUBAy,VSUBAz,VSUBAw, - VMSUBA,VMSUBAx,VMSUBAy,VMSUVAz,VMSUBAw,VMSUBAi,VMSUBAq (shadow) - - * 23/05/02: add VU0-1 status. (vu0.h , vumicro.h) (shadow) - - * 23/05/02: Added VU0/1micro.c/VUmicro.h (shadow) - - * 23/05/02: Fixed bios_isceSifDmaStat (return -1), also started some work on the - zero-exception stuff, Bios.c, IopBios.c, R5900.c (linuzappz) - - * 23/05/02: VRNEXT should be fine now, VU0.c (linuzappz) - - * 23/05/02: Small addition on Bios.c, 0x80000003 cmd on bios_isceSifSetDma (linuzappz) - - * 22/05/02: Added define __VU0_H__ on VU0.h (linuzappz) - - * 22/05/02: Rewritten GSdma/dmaGIF stuff, now only GSgifTransfer exists, added dmaGIF to GS.c, also added - GIF_LOG to Debug.h, Plugins.c/h (linuzappz) - - * 21/05/02: Fixed one bug in WinMain.c, now can rerun a elf ok (linuzappz) - - * 21/05/02: More stuff to Vif.c (linuzappz) - - * 20/05/02: Fixed one bug in biosException (linuzappz) - - * Started SPRdmas, SPR.c/h, Hw.c, Common.h, also added SPR_LOG, Debug.h (linuzappz) - - * 'call' dmaChain mode in dmaVIF1 should be right now (linuzappz) - - * More changes to the GS plugin API, GSdmaGIF/GSdma, PS2Edefs.h, Plugins.c, Hw.c, Vif.c, - also fixed little bug in SPU2init (linuzappz) - - * Small change in GSmakeSnapshot, now pass char *path (linuzappz) - - v0.34: - - * add more opcodes to Disasm DisR5900.c (shadow) - - * correct MTSA in interpreter interpreter.c (_Rs_ and not _Rd_) (shadow) - - * fixed FPU register debugger debugreg.c .Now registers appears float (shadow) - - * Some more stuff on Bios.c/Counters.c, timer1 intc, fixed bug in CreateSema (semaid stuff), - and added iSignalSema (linuzappz) - - * Added some VU0 opcodes to DisR5900.c (linuzappz) - - * Fixed bug in FPU.c, BC1XX branch delay (linuzappz) - - * Started Vif0/1 dmas, Hw.c, Vif.c/h, Common.h, added VIF_LOG to Debug.h (linuzappz) - - * Fixed VSUBx, VMULz, renamed VMONE to VMOVE, VU0.c (linuzappz) - - * Moved COP2 from Interpreter.c to VU0.c, and MMI to MMI.c (linuzappz) - - * fixed VU0 register debugger debugreg.c (Linuzappz-shadow) - - * Added ExecuteBlock and removed ExecuteBios on R5900cpu, R59000.h, Interpreter.c - and iR5900.c, also added psxExecuteBios, R5900.c, WndMain.c (linuzappz) - - * Some fixes to VU0.c, _Rd_ == 0, not _Rd_ != 0 (linuzappz) - - * Added MTHI1/MTLO1, MMI.c (linuzappz) - - * Rewrote Memory.c (linuzappz) - - * Improved iR5900.c branchs, and updated ix86.c/h (linuzappz) - - * Fixed bug in MULTU, (u64) stuff (linuzappz) - - * Interrupt Exception code was wrong, 0 -> 0x400 (linuzappz) - - * Started ChangeLog - diff --git a/pcsx2/Docs/archive/PCSX2 FAQ 0.9.7.doc b/pcsx2/Docs/archive/PCSX2 FAQ 0.9.7.doc deleted file mode 100644 index 53afa0b57d265486377cdf1b1f2103bfe8e68ffe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36352 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 diff --git a/pcsx2/Docs/archive/PCSX2 timeline 0.9.7.xlsx b/pcsx2/Docs/archive/PCSX2 timeline 0.9.7.xlsx deleted file mode 100644 index ca73a534bf1a3fcfb1ece4abfb3b8b60636b7e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24690 zcmeFZWpE`s(k6V&%x+_wnVFfHncB?EcAJ@*nVFfHnYqo>ZZosJzH{e$-`SY?cK`3L zBC6^rN);ico>VHIOdWYC5KvSAH~7OeV@fB=BVuPO>)6-Z0S*2c-$#z|M% z-Okuiht|#73O|1lh&&en{MG*dmH&ez(5O0Lvq6v8i9X5)*@=dh^*ublHdAOGHv=HS z=S#4Htl!;h{QdQ^Baym=)e18>Gs2k1#RQLuYU*NT8I>xuw5wv(n!^~3{Upi7dFZ3_ zBi+*!jC41VeoJ78)%VQX`_}lO9m*F>gsW0LLGh`NV;sD)cOJsd$#l2iTbQijR6wkh z0!UAWY>)kk4sZ%7g<D$VHp93Ime=oFcJgVofF|e%jNJ zpp^WNZY_UW24O^KY+oZ8%zV<}CtwN%{n00d>773yveu5%&zvIM3K{vT^4t-r-Y`-e z*G;=&7Qq*f&4uL%__R_TV6W*4vM2`Y7`=1KuQ-4BJ&uS#!t}1{=LOkr;t4m(^b0`X z>0uvjTFLNuX}3Fde{@i3@D+Vqzjx0;^s^F28QmCg`<MD_%nU3+)Q_@xlCHgU_`f zqZSNnkEDP{3@lGGkjWG7f0sGc;5}^WCz;G1?rd#JXS2+s&Z5j zat#Pg%~40NqQC2_ZEjiVx)mm77_7XO)<;BOwI{w288G9>p~76BITXdwD~#)#%_U%# z8vjZ>a&1^@PH`iec^ttZ()|Pb)!4-GDwk)+01TFC>1ss_F?Vr#G{R{eE zZU65sl?nd>8ZH?wJwdY*c>F>geQy55c9|yDGK1R^TRG*%r2I0w-`B5|o*!e;Y#TGp zNS7F;53&Nuh4{0Wx{K9{SM5IS?H~e`I(gWa@&YlS8*euTw~i}j(ZxsG?u~f zy4)@2uG7%siO`4naVU+z0^V2~i2eP!XKFR$cLzd1G=y2R94JSa+;vgBG;g9Y*H*QqTO`(1W9` z{|)9p;b{sM+ROb5BS~LtC&Cv{zVP&~NQ#V?Q|hNj9J-u-!Z8S@LM8kRNyZcrql<g2x^AD@axq9SA=#dZ>QQ+a#npTlBQM6{4tJ-#%|XE zpj#Sx|GHngqqqR0Z}T}ouR*G$o_441`+yz_HpEkX>7c=xPR&@R=V&kNrr~`B{K!io ziR$_xB91^vw#eQ$w%2E>H&vyYalfIXBu%xRPfMS z7dk$(SrJBQC{c!f-LasZNm)f_U2@k^I4XEyV-tJS>%x%J&`DyC6tR@=SX#zzaQ~*X*&T^|)$Fpdw}IHl5%%Rvn>HD3R75PB*fu8L&tG zgkI0z+^)kBrAr|lEvSr&)ryf!-}R?}uw|-oGx#WidE62Y2K|sTmrY&e1lw@x);Uc zlR`HRPfEp+rR<@$p@909UPeuAsZ42UDeBmkR)U(RzB9DmiNLZ(MZ@5P7N+2?HkQxk zO|6;wn{jNgKxUB@fvyHYkB0Z_R3~{2g9kgKs-zwv4cbi|wcIw9WF1#MG5HTuvSfdw zoI?rueoJrpaHVPgTK*zpRnl?`N(scG8;9&{6g~Cb0-XIf zZKi9*u#WUuyLF+jE>zLMp%B4ZdlyV|wfy=`O$JNIAfE7>+$$QO8}jIlO_QBr->}0s)I^dACA=SnKRes9^(u;L zpXaI-t2_+u2@tB+14DRa^G5f`g;60cT`Z;D@~lG^W}y(J5iZot1m%=$ZhWo_iJoSz z2PLTa$tHx%mSj>g0ftM94!8|oP^!1T?FK)MT?FwoG)$mi`^njj%n=9V&6(3bU77Q4 zg%Wf}598QQ1W-y7)Z7N-F((L>iDny=120iX4k&Tj0UwY+s}`-tVWxT@+E=%E6I zfyW?K#9$>#o?bq(&D4+2VS_qX8hFa>Y$=Yvy149}#8HAvkoESU@op-OI^uIu-AX~H zkh#St%tFLqhye|r7AcbU&95jOJbaFc6S#_VWJUR+K28J-P*fM(y0o(q!m#BK|am@npvAPAQOFMs-9vlX=Tmca=Y*_F-JDftP=w zLXgFF+5Hxtb^gQRr`br+QS(8M@3ei9q4P;F?Q#)zZ?wc?mf)XnhmO>0aXm)6z33tf zL>DD{%{pu>o*N0>(6!+G?8`X|kbD96T=zxS2*oAvivoUd8a*fnR#v1UflE0~y3w(C zMRslvv{-B_kq?DQS6iL2+oEL2d>^;2?OY=o4MVy8&Bx@l1*mefe~60OniqdwUSA-x zL92IX2|CxdWCNt!PH4HbHNmx>%!V!HBjBw9t?)AU9TuR`9oW1_`hRBv7VgUt<_uLG zP+;1yKO-M`TN(K4pJ?DRS8`I`1mS9)^(R7*VRw)f`AX>%pWgCFN<}4X(}cL?ml#}%NIjtrJ;idAc@+p7O=nkBxYvxujhSpNd0zi1 zA`<>K>dBsR}<-tOX zgPxEgq-wS01~KbQ=800hsA)S;lemT>jYmD9YZq4^pQM9WKQbN6{4?<`do6gwKCmUoWh7PJ+Mz02S=N z2!nrEK_@d~Yh${9+!_8_WzRHZY_UZ!x{0pwL_KT`$y~6+oXc11w9FPn>$Dd4-FUXL zOk7M^m}LK8Tf~Tqhx)hT+wc4ON>&XPy`}Rbp_cjhxth4FFkPn;lK=zV6I@U8UOtX= zGIjqv*YBStK#IR<#95?U0T!N*jWNe+3g{U4D2f6|1T8R_aFd+ti5l5ipKiKV@5y{i z2*l5oJ0!J%s8d`!8V`rn$DEkpCZg!fu#3|Jiy_p+gz*IRL}{+qtf;CXPAvwKv#MWMr6~l#t!m8-Z|+ie*|e2F5X1hUcG8#e*9Y`i37| zyTIAFqm%PGx)5w5otG$$Kp&MXtEl_5qJ{MV*B-|f;W zwq`Y+P9P0WN1*NBR<0eVxLdx|-d;f4J@cBjPi`RLm@)`xvz)o_-qT%y((D}yP}_hf zQJRn$g;+Ra7jq<(>~iC_KA4!0DYVE|q;LQh$ zJ7s*&^UC(M9%kr1G9sQ9V~Aw9C%1#`q*8xWJ_E9yp|9w74!!L308SVCcJ*@SS8|Gv zrX)f|yd8;x&^p0!YNv4Go1vM!zq`vERUQ;k7O^q%R4eI%Uh>1tV*$3^BrY-gvV-Az z@s}aH3OgZ%f_Tq9M4+;|YmVYfO$Rfo_Dz`JBgG#*&69Wn9QQD0vUUNK(22@%6Ue6H zj7^Wy0ga?3u7g=IK>!VJxUS?CZzV(Y-PlgQ2OYf zhJ?o7rf`5BI0bsb@^n>#y;7!-@hDJvO84Ah94`o6p9I*3B~*iOW|>{;F2_K`6(S#6 z%l$7MdIay727yYX2E1aB>3)^4`FAkiD5sN!dNY0FOr9<6`pB5Qn@MLVn2oZA@3bC1 z*TZfuE{|`u&j+I$c!$BhgwHPa0Cn)P-*?||-G12I;oEjiS-R2aIPdHeyj&Ux$cmUs z%%sMNCrhmJOJ{J9O6Sn%H(|IK$S-CR6IR4cugB;|iV6?hu3ci6rtlHsem9lc@V9!jxmP$j$cswIGn{HyK zs&A?0P^|Zm0a;;LG)-M)qs&w_ouHZy%b?8+hbCp)kLs`I0z_9cK%f&5+yG@_RQYbh zwnIow3XP6Qh-uggOkeU?-0Z<1>WorIs5WT~IFJ>IyyLh;t>Kv0Oh4C+bxFo=+ryF? z{5JPWr9jE(hD)N;LN*>(WMf~CiqjOJ>ez&ti)ebT2Rx$rlx~FRTn526N!W@5om6Y? zW5JL?nIqPqf^mc{fMY{hxs49{@WM}8xZcOuT&DlykfK+SX6#STI%vy}L?G6MZT^TR zIPqW~X_%`5JWa;5SoyX-7uCkgGs7*(XJsUY&=E1S!D0hEp(p2Ze;z~1U6+0*(072E z`TE9D(st%;z9U^N>~ytZ@({aiOS^D{WV4;pND=(em;!=T#o{K0tGAN$m~JeE4c6z3 z^xP|yHhN{0GpJze#5atSpVkoCrKv*b;|5p{V6gDTuKdlt&eWa3h5p#ax4N-H@7v3n zhx+4KvR)QBqT=$aG0N1CYXQwh^_Qq7_nw#a)Ed*HMu`R0la=d44&tlwkG;-aEfD0v z%50m&wjkiHjGu4Eo&KV6xDLO5-u@JCdtAqQ>LA0@n$%0&4w>Rtdg@WGGf-=~3+`O? z&=IPG1L)@KWsj#&t2bWg(NhQEn_z6S|T)?t<)(NJGKB}R7MWYEyPBhixR(Z8nI z&@lL#IZYeFq?@T0fqruKYaqMkd|gpZ$Ve`koLVM4AQCF_S!d#XH!KF1Ki739+-E$I zc?^_~3JSL1xOWiU#eN=DH5 z!FcCvZKw}e9eKqz+a>IJ^oDSHzRmoRdO`1mQfuVo{ny(AiyIF^RDR^VbD|MNM#fAf z{Wi7t=lM(QAzuWIVG$6lIRjgZaa+#)>yX8Si^AN*19ecgO!8$u^2gNW>kzN$Tsro7 ze7B)S!3S-)k`n#o4ej?e6O@`&ndYCXb&aUR98&qndvwj$-Sp@yrx-7G{G!vWj<;1j zuN#=@??WuE?>r_U`PUod&1(dc`}fwFj2IB)zJ?tW^*NAUJ;S8E4S`j&5lDUeaqiR- zN5!@=0y#ddcyDmBFG(p!wucNmKRw5zI!g6^B)^5O9HIq6)L1r$;l|h7WImkvvG~ub ztQ?=!8eP9PgMyT>9T{pGL)i`J8ln%tau(M`WIx^Fm*tt?%O|eMKKGMTfv92iDq*qH z7ZQPkm;>}F5L9Q>U^emF!{M2OCZ_DKroX z`DPvkUnvKx+FEHTp)<2^{>+g?cB4dYdDw~rJV*l!{EnWQ@Q~RWb zysMCay}mOMOgh#mgDjsR&&|Hfph!9XM3LiT>s*o#(q^SaF zsxF|3%Rh$Bt#|q>(5UoGEUE1Z9}(XrsCENV_t}3KI?)NEN(zpmMwU+M5sHj+Y%?40HhJ04caJ7sPF_# z^eE;K4IZDHA-?EEUNwUfX2mIm&ryWD>?CHiw+WY3EL5H#*ce#;sKKk#4JuJI8V-vp zLRQuYDQN7StV-NZ5}&yU&Ha4=y2G-HbXk2tl2B7Kj&Yy`Ox#9(U4fv3;0L!WgOR%` z^8*^pDbH%&9ipHyyzH!Mc0JvKvKA_oeHby>kpIn9s`~0C;)L_q%e7UQS(r#UudaWg zI&0bzzr7Q(6bym#k!hHSpf=%{MBTay9nH~|R|UngUVaz}5=|ZCXbQ6+wY8F(ET?&q z2qNWeLn9#)ZQMbjD*dowSkPwFAeQuKM_7n$R;Zb|2!A)|*r3ChBs{8^SRJHC>EsMb zgw16Y(qh^6PpMwl14E0ke64OWY0^gg8+IUt2ph?6P^hLm74odFjzr)qBW04HDR_SM znh9oNPj^M-sVFy1Ln%T!v;=W#(&4Kw_)W&B>FH-BG37yxmcbflOIDZbYYU0_w+!*Vb-McHhO+z(tIpo4a z?ynfGjk+oa9ZL={9{v)n7|c&7g6_`+v96PZtw40gCU!wtdq2|d&C3?MQ}to0R{9Mi^RN_q zH(Kt?T}sBOPUhAf;RQhjB>)B3^^o;e?(6IHO#J#ui&1EOIeqD|CzSuU}%cl_%hM6U+yRI-=^BoOy9xjpSJpM3je?jLfl?^5x*HE~4IY0TJG6~tAlme3?WwBk26|@ZA_1P=?JHB;rfYETGnDCEGgIL1vqm?aU0tq8%R5t(s@8oJp#7;h+}oer%6e7 z3~o;RXKLKRFf>Xy*U|*#d=k)*|8feJuD`09F@1~m`e)-9NxU9Mu6WX3(2~lG_Fn+jW!ZC8tcQv;$b^K>=}LKUo4}YU=r3M6 z@Y4Sh@xf;PCt_T2SLkfTB82+wXC9 zYl%aiy@a*n#_LBES~SP5a@5e|)}&DlvGqKlteD$dk-WX)g<^TLDxu;-!HM5Oml_ZS zzR8dG>VPFPS{_S<9lU5OD_R@D6Jo;R27Ola4dYCi#T8A`)q9}PJbqL8(A}t7(d=6+ zvxY*ONkmLbVR06XpFj4c*zb%AS{7#~V6x99JxM6OStopw<0mei&Ep&kL*d)qUjN}A z`5H)V_OxZz!Lj#llV5Eqn-VY!i&CvkakS2lSj(a~scK87+aT)ao&^5;C-(@rR+wwb zoS-Qji|yf%2H)Kp_%%*+KGy*&hOX9gtz4vzdGU(PRcZ{!S_oXkv>f*5f0RER_3dc) z*Bj#h9rzgkE3y_CBVYl-04wqswAE*(Ygrs2Kkimf;b$e~0MNJOE;d|Sl@+(q6=H)! zZD0I+dz@|T8IsXyTZ|p-ErpP$W^KdY>V0-{a|cnu4lAI6!ftg8dVhOk_PPWJvldl6~!r;iB%%r01N(ep352mLkRzX}0h0FN!d z1qlH7>-s12Wo>L^u1{xft#4|~Kx=1X8YV9*1_zDx*Eety;=+nw&*ZO*8}bXWfClvj zbpYTiA}_5h@>Tu({Op)q?U>v=JG*G@_gkb@xCgrZP`B2|K;)xqU7AmTLv5Geu( z8bxb`=i*sSp$bW>0mGmT&#a5ZZHUcd zgu`n@ENo6HYDq3`#iZ;;FKf@F=*+FhuV@o3YZjzv5v1*!q-Gas z8JK6}k@PdZ(mT1Q}alfK% zxPNZDcV@GFbZKZ|XKZ!@w=S6%;HbEJ1)%f@LGra802xS$2?IjGaKyhVu!h$1@{&Tv9 z5Ef826Pil%(pEbDHu5^=Y-!20q9-J}abCQ}{|62Ya=AseQId^btu|-bHH@6J8>SmH zV3#Js7A!ol6mJ(iKAa%8&rC7Bah5Pj8j&iuRU^ECe#6Els|F>!KI@p&4-^>6#>b5p zFFxZK*P;8-b=onT?2&iKEx(fHH(w*qy|4m9dgcT~(@TQCx2)6IN&E%+SR~ifvLdf=~559)*oLLP(?iYD6nA-sy+b01mXL>IA zx5)Uf@6U2ujrs#eWQe~kHCrKd14vh$@qYJYPe?ui%lf@1saz zp@L4s=mhVB_UXiy?Ce5Pfg<$zBtJ_WXF#mTY2ApYZNPelJ}c;oG1p#|^Z?r!sA zcjO{F{=YxbB1}K?OZC2n1PQwlX&zR>Rmf38f{zmW=WzB z^yG0lg+>CW_eAu;SaJhf-rxP&aS53{*zm(M)=n-@U;GC=tEvp zMWQs^j*pLzG-Jx!MkE5~bi%*?tsi)Rf-JeL@F4LggB}OZ$n+q6hc^Cl)^Qv#-U6qm zXSusAxhx}!D}j44COq!CO3_vZI}NI&wRXQ4r3bRc9)Wt~FTGMYeS*c-oLV^jU8Q}~ znP>>Dwg(}udP(xFeR5{Ur-HE zja{$F!!oP#=R;KPk!KE;yQ?hdlq zXDlNPBof*hY43Of&cKV*fSo1WddHFn$~#1Odc!heED57N~3&8v?G z@pQKe{o?WA?%~6czhdg&)Bxk_5 zn#q!n>-#5XM!;kaCh;=!MS$~fjuK6bW@qpO5Gsfe%*KnxpRVj1IWEQyfnwQRODh}i zS0Ao&+b5?N7ajZYqNTjbzVs+<3wgFO;BoE*qp3=;WCUSAmfAyDtE+`)KN>OC25&XX zDqGDSD}yd&vbk9pKi)}I43Q(nj@aWv^^<=+iP$*|Q-i>MBc0OV{>F_yrJDJ&>H0XU z=ym#B;&{pT^XfN}g^nzfZ`M{@#>Blx!3}Vu(u-p6+ZMfEtx&369}}98PT-`!xnd1& z0($SDB0A1=%Ph5>WY@bkADXJw7+>ePU7lC&sv;=f%@UU!Ce@M;#A~&pdnw{p&wB<; z(mp*KC1qVuA33rZ2aWxCoMWWwN;Zob_Np&z0rA|nQ?hIFSS4z)qRP6^Kx+mIGb<}= zBYQA>Z^&@)cz|RXgY@<{Y~n7B4PdoMO=OD8GPGaO-ph z`BO}Y4>g9pXA@ z&LUsq;zq0}(TXBb05%O;kB<_knc@B$VW4sRqG-wcb9k|`8eWwOWmdVo`MK&h6IS!0 zrh3gX6(-;n^17o=X7-@$#eVXtLCU$*q|`|lYN0()C4FOO$?*6>+^O+N=>!RuXh}yI z(s4RZTpU$KOY)`J_52D`h%CY)Ns9$jiNpsirtv=v(o|IqV_@goMx(^V1WU%r+C8+J z43d?U%Zhk)FZ*SQ>J~?x(oi~vl;?Gt(u5t9m(+CVzo*5UY}6@>6pO-=Czy%~1}qF| z?)VQCXj0rL<*9YNm%~w&j0ffC+Z+6EG7LHI%@wVE=CBFo;un8YdmUe6>oDGy#y>%C zqa?9W`zn+*p1h=DNgG!tO;l%wA${+02hmTPrT8X#UOPVTe9xIhvmaTNudOQ;1%BG3 z7o)sYC;yVT9!aZJ)m&V`OQZ8cL1AvqTa`2~_jWv=$?EpbSnX7iBz4{_er-Izsz74T zPMKF74}zvT3#fR>4dW}tW>DXD0JxEHR66_7J8S;T+Zp*f)V92$hm zw8lA+_j<}0Gq!PfQ{$xJ+(cp$7=T6;GWXu6R%!XB&&YldJw;Cy4tBO#qAKNkY8$?rV)4Yfx4$tCMS@8yb z7u=v2Y4dJ|S--4Z)}=@^*Y5ZnsM34G4Z*Xy?O?g4siCUTc+`0Zv(f2(QluDGD2<Qdy#tm1g$-I7QAfpQv{%z2Tc7rPchcC`lt3{ia63 zQaOwMajv`Qit8FsT@*oJKbdhPpu@^R4JjNO-vq-G4mkkiOq z<}%C|XfsUaWF?v!s7}POo8(>rK8D|?P6L7%PPy>L<(Yy`AbN=p<0@XqaJ}WRraG<$ z?sMhN`Ev3?w!R4c4%%KQMJaQSbl{)`jV#X1E~^L1kbf2|sz^QNqC%HgL%v-UEoPNK ztRz#Rjc0ErrZF%lMP!;Jkg~|EkRUd$n2uRwGTDPxS~_a%c6b$H-L&fQ!>2HsmoMpF zApE}aCAF=Rk!o2pV3eejkbZEsf0}Q{Hwt=&J=~=T7NTtdtk!X^nA^HCD5YbSo&BEs zIzF+BXvtn~sr3Wut`+LOO<;9m{rxp#-su9wrH>q?GK@vB;@h9i9~#+Os!27@7rV_F zmI|=6n-e!P!OPNOw<6v>BT?6%D%cDblJog2&GptQG5`QUHdJYHZ7+Dj+ouLiA> z7p-P3NANL%O`*WRCDGaDqkByB8`}KU-*3CKVGnI4GDe}Hy)Wx>gFWn4esSZgg?!|% zfEmXMS=PsX!{B~qh~sv4H}wUoJS{57vzUMiIxpL;w1=lxCieTn{{g|);q8q71b>TF=B2$jfM zwCVN_ke8z!xKlcQ=PED_A=XrJa!`Hs%AK8^popVN#m-Nb{m+U0TyJPFObb86lxE1g z{utqAC%9CDPw&@Tqcd*>P5)Z$92$UrrT3LPS=$T2Rmbe?B9Dmcv<1{lx(7 zd|jAdt-kVn|CNCLZ|XTxK}PP2b?*Agb0XX}?;z+dcJ9D0#EFds|JAT;ozG%_;0F72 z@3u+G?r_`ip8bCIe8U8L1j6AF&LSNS4LcmHiT8@N^&_YHqR*(Vt_eh>aup|hn;v+`hpnH=n@)84d|cef>3c&cWr$CuLWGbio0N0tb@F9H5L zlPjVJOl|j-Mx6x;0DR?<{Uzf6qOo19t%U!kv>9l>en%?n*k;h9dgU~J>bWDh`+@&% z0f}pu_1Yk{PI#b~Neal?S$-n)6cYD&ul6fESC$b1o_yy$&L+OJocQhX!wGD=S@x-Z zzUj{1dK`_rl7Ti4O~?BA)m4f3jS6|$Qptj$JKOQ)b9BzDj7C>6=X+p{Q9;$O0W=LV zrx>u6@tqxb?*fap&Kr6X1vKu%+q}Uyl_=w_C=&Z^GZW>$%h$kakIDGR2IO3oE$$P4 z(-V<+;eiCE@;UiqL?OdEQ3I7L&iaBL9K-XcKljYvo%_*nSv&yy+!r(|Rd9b?G9%~6 z^AI;06*154e4%5&MrLb4kDbEwr~O-;ICtEEc0!LxkaI}aNK6g)Le#E?2~6PJ0>Cq4 zsSsQuej@QN)o)^;Yjug*|8#MW&thv$jf9L6m-E**MOEEnmJ;+Z8j1C?X{ z9@#?Nv`$0k@5KqRa^*gVo(}>vVCyHI_gQ%OpMg4?NueV5wGPmH5xA&-1J&^>7-ejv zUq@{Ml2E>jx7$QITQKFBhYr9)Li-#3p2VV%k;+opB)Z1p z#!Pb&u#SFyTN}6K(78|YgV&mGnpzDMgPldYm)-Ch{&5?U0S4kQevw#4V{#TcsCsil zNaC>LL1SF$RILFmAQF~D_=C;N>#)Lx>hP^$6UIVQnTrxh$5{Bgh@%39H74qPUwh<~ z0XRfO4?-(%fLouDq-L?~$A_|i&O-x6^M*5Jru0ymw+kzdCR^ZRS22Nya2K7} zk*ZfdW@(9?l!fxH(CaozGY%sZh?IA(MF{oE^p1l#o0lKBgHGNY8o@|8!}zZJDZBKO zk$3@O_{g$TqzMpest?!lk)actXaoRyQf^oi89M2TzcNs6cf96&R>*qlnv>Zw@z(tP z26uo7OF0m<(Ap1C+o&Hz0p)|P^6HrOKgS%FmQlGvz9zu^YXbh6xbt5t#lMESGL7`)k@A5F@~F_RfCBbe(duxbHjzKFCHDBs)N?PmYnU95BGJ{V zs)l5h=(i+NGY|0_mAaX2h<2Y(9`2BZLw`$Fb}b-pIr~-|j^&7GDPE(g5@YlR`O845 zM9Rb&3#hCcu-`_xeAn@)$5<Y{fZ2fKAvQC1`KPoAzUJjRw^;^Vr?{!_g3Kv~Gi|UERCw~?kgOG-jCy`!Cqj@i- zzr9mYR7HzQ0(v;PO>7f?xHmPe5AD8)uV6f12pOjX{KI9b+v!4Nd<-WuJ{uFDUj^Yz z3oQm#H~mG6;Ad*LtsgCu|FiZ4_ZlhZeB}x!eg7}*`P-8IZBYLaqiodBvfW@s^~S6H z%!Tq+$D@vDSC3cgklHN7n9UbRKpUV%s1)ANG?K{uJ-Ah~y(?3{G}>UmjsP!$i<^!8 zjDy?l-JoMSOq8dhd7y-%(QF>eO&iawD?3H^$Tl#`Oc{I&YAPaId=#yGl(81W*BMQA z4Xxy&wwH?0OI$;Gy{OHgDl1w*`6G^{x-y@bBa#NXeHfPa#351s4Rms4ZM5$ETAZHY z8^{|lxMk+iPhK8l?>hBD26wf=43@F9ME`hLrds|c$%*kyKL^a|lwqRjV$!nU71yIs zS5>PNq_tCyda2Qw5%qCKLM$x_NxlRyTN;x~`T;(;Bap}YP#PMv!9y0J8) z2;!A^O!NAz^yb(@dl#;r*G&fAgvgz6WznP~J*N%9%-#LS&t&Phic}L=uPXv0Us4o7 zV>dM`U;6Ay`|iHAkQa~FI`KpkVhv=9p^LWZD%8d1Uyxw>zugIL-su~8)MVoKqgk50 zz7Bbe!hjrrb^Gw3l7i^NqlduLprb2i)J;OWh(I09|G9op=5dHQi6@6Cc9$(hEoxEB zK71x1MPE?zhr*F_(X_^JIPY!NArp+gKeiYeQh^@v@+wHJpg}7}P9MOR6 zh<*e57Q!3)WzdKI3|JQpWm#(|Ty0D8kIx$GqUIe5&B&SA{#{28t1WNM()|-+8h@rn zMAP-5MtRe53C%!Lvt6A<^z2_=Wada&1tPlKztI)F5m;iqf^qk(TGge?KwgP$@%86| z*qtnmc;M=-rM|$b=RbLsjgpI1D3+V5tx-AdB`C6|K}Vwz}z z#XC6Dt$`(+d!wtJyuE<;Dtfx_@vB9){|kPnBYeLYI=I*(*bQ@(+MD-nmAFd_D!fJO zma_D(!a=bykHM(WEyVzIpj<#KLQg0#AiFlrS_I9CaqFOmAG(Jg#=(6I8|!BI_MJ5( z<5#)cOL*Q+KMc%X=z2%kLB{=5I%d5(W5_G}uTL6mXhxN~Jcj4kBLw1I79c;muGNTF zth_s#;`V1+6}G;t12VBo*CI-gO8r;mdql`h*d)-wG0bIW|IXIw1Pfu#F6AdzSDIp@T4;`%LM#AGF5d zZ?gGyq|kZ7_HKVz7{OTLPMhoVgUKtyI%^Zi*NH54-3Oo)p-DIvRXBrydzY2tHq9LY zLL%SRY#zg#mhyy`%$?a=Sm@X+NZLH+S6pKHi8>p1c}iiL+yr*mkf`~bRAevxb&hRX zk2-c=_BwV$bra))Z#sQw8JpySH?l$2w2j7pA=c4(msEc;IaPPwFpSFx!%g#f#4#Q0NAIEwa>vP+u_b+sY5I#L` z>p&;eQFsquhs)OLUj=WBwKPhT!XgAS3;mE|0DS=p-rjrdI_;p!gs2KbgOm`K`?33U|Fj_8?wwA z#vNFxdFT`MPAa>+y=&jnc6qA;JH*CndFyr%iS6de@-3^E2wI6Fx}EsKo#FH@Uy^OT zT8X;b5r;cjLUlW>I!usZaoZ_3rXIHOAxFaP)l$>TpDM;F1esQ%;)dp+9$_iz>(F9~ zHfO4CkM2o|Z~5qaAo`~}dzdRX`L|&~BQ?yx$*<>Z3MxCF|K9 z+QRjnEr7>JNKu+lH<`@$uVmqW_gm<&P4>jU{FeAHzvcgDH}a3%hfHM|+l?>J5Mk8^ z(aHAQ$T=O$K0Mbv1V{(_?6i8+iCQ`tR#M`Z51(XniqWcmDgwBO;w6vwmv&XpodJF) zvVi4imt^|IH7lE_U0rTxS080^&`DD?vdCYt*}Zu`e{AMcG4QpsFap!lmKgR~UT$zp zWLD-OU930jk!xyL1(pz9#3K*I#>N*)6 zN`__YBSc5$QNX`Ntn}m&>+>OI3wk)1Bd&_fY zGBnsk3d%dCmozhJhZyb-A~)p1WW0JcBEPJDMAqL#w`$8n6JsO+>(^R1bus;yqloBO{Nso(hXi3)sIion^bjqT(9-wrmJJsR~J96aa zu!F#|=>sNh$(r3f-pwRH5nU~f!GxETg(RpP=0-YwC$}Cjm*OB! zJbVGVF&eUtodxX|p2@-^Qx}>G?5rw|8&{L5ws`W}kx&1|IV0H#G5mHTL&uQuBB8PA zL8YnQkwQF2ex>Lmoq&Ir_43LtuH+-C)ENUpCtd4mr3xpewj>_0wZY3H40DXpd8K&M z9}B0SR`V>d!rMt~%Zq?V9`(z{?avf$J|;d4(Ac~6U@HkCFdG;9E2{J;0zUi4s2<|S zbH*8-$Ss6t770b-BSpCT!}->P0MxjiWG?T`XncMI10)+ z+-x;>CF7WOrd=bT$W!Ux3tQx`V<)0aktKU%S0YRHK^n3|Vi?QV#}>-I z-N{~dvUU^Mml3iIBKs0)$WGap5aP}=>balMb@zLo-}C=(UN19q@jCB0*LA+*^*z@) z=kqNaiX9eI42K6N*zWv^B^vk1<<}YRFs~Aiu6-vqd^X;bz)4>r{Svi_LcE0hi-m;t zl!HPQzwvCHs?~Q!uAmCzUBhLmm%4h3=E zk20MP(H{TqRji-*r0hx0pXzs$RN|fKI&8JLs{)5EA?#ShLi7%-!iKVSMsBtFW)&E& zLYThF@!C0TX5Ef|tJ6CtJL+n<%Qr$%ToHL5$}J1&8V~9I)NC|UcqA;Z`ZCK)joCKU z!9$07(d&{c+N70LM9KNi?Pa~l6@@^-&Ims)q=h`$rdu{>h@QFCx0NzfBUN$1&M}>A z-{1A4d6Xp$bW4|z1yb-Otu;w@*nCnuv=}tXwU#~A+(eM|Bp+F-uX|7GdzGA5TUeN9 zowwBJsYGEtiBJnICx*+B`xk49GW5#&cJA^Gvy#j`o8PYLvS}hGJ%1=183Um9IMNRi+C-qplsTAf%I$;3++6rq~He#$dT zoOnMb9)95(iScfjG`36EkV)yxzR=G24*iPgEl*_5KpirlO-zj@wj*9Z{x8W)=a>iu zp(OJNM4{P4+k}7*JkGP#y#*>I*|?#SgOq9)pB3>*c|MD*oWiU>kb4^B#XJs1M2w{; z!eX|Snq}JVR;oqYT0HM#S*V6zQJGK`)z6z)$GC}b9eH$riu=eri=lqdIioZJL&@;d5m{vZ)dtGba|lM?J4}^NHZB=PI7;shtkaUxgg-}C zw}89Bv}Rj=ssx<=%tN|5tmR`V%R2mD6`eTuI}_S{YafMpgm+L12Dh?G)%N8}M`I32 z)A$AbOFyVepo}=geMKJ=1&orXw)-}FO;6P~?y#T9iViW;sxRw1+Q}%E9Q`KR{XLNS=1Xp_8$F4s6|8ZWm}= z?zxh=Wb%%hO*8m)nJ#nzDxBTlxTz5LwZ|a^{xRVCt$Nbhoi(YikyH)Tw3X6Ye?pmW zl1Iqy{Lv^F1Dl0&zCK5=|E)-Txv_=Cfin5*A(2?#>=eh)}b^xBgxZ=^JD&h{mxd3pC#{)yGV|+>up=_J!*W958N}ArTI*xYPnm9PJl{xCnoRETs9J0OCq&=V_of(>fK2j%Nt8kek zI2`#lw*j+Ln9a$8 zqsd49GNiPEe}S{VBh@_#Z)d$7FobipLwFU33D7q`le}P^Fq>8>sS5dW=G9D?Xw8XuUg6!Y6gVzsRtsF)9KNG~gSY$w5fzG=W zdPq%nO%w5u(trn*u9P$;I))zJcrEF@wl}@v@0QvVlkI=<$mvy+7(MxLvUDijui&-EZ1NHeoCu zd;pdw+hq~y#fH|;OpGP$B}WynWIhw(eBN=_n19o!H~fn-WP2-J$g=-+A)k`+!`p8L zpJ^;tyFdrfJPnz3WVs8o9My3T(38s&_HSh1RRakXjOp@}Yxg(m>ZxbXzKfGkXJp0H z&Dr~2Defn|f3ARzb@XH7>*`Hq7B9O}nFdC;g$J3gG3_pC^jbyT$OiWrN~PpyE)rHd z2_;?E_DM5B_gb20{TLv%jdWDkdO&O@m5m=+A+>o+TPNGs@k)w=Lb=eoT-6jzt8`Z5-9j-ddBvQD!Iv49<%Xwq`pcTrONXVK!w(`^n4# zZa!s^^v0n%wz-K+oI5a#Tr)`1%|e)c7=Cdm$ew_JmKqTR&I~RIw*v)%lxT1t`_H7> zxS~#F3HKLnTw?uqT4QF9P(+&9I3CwmG-C&}TG?ooCvP5-imnSjD_FKw-^D!NBKk%U zJcEV?kUSb_OoWUlSGS;&AD#}~GWal**JpWi0K_5%ldTmm*)*T}%b`{};L>m#){*Z4 z(PTrD*X#OoY2zQ4%|~90hTfqPs9F;;VyxbScd@U^qEn;ef{Ip?glbo?V>JR3Bc+QC z%TZF5U|||9OQIo;7gbRI@2Q#&U;2hT4AME}zU;l-YxOkuwo)pisj+G{u~-Akk)3_U ztFB#{{X%(-D~diZtcA0@IX0MsTvg#dr^WHpwA%48w0$z~+qah4V>PLNUYASXIdX9W z1OJbJiT>XK17Qq|_nGpK6yg#nojZa6zNPiK|&SAz&^}C|4nblZ)kX)Y!8Bqp5a$>Aat4-)doF z2*Iu1Q`GC1D_v`2i#5{LI=HysBfU9LBXpDwpw&+$iRimU$(ykcX;?pl7F|j@r|2W% z<4rOpFY4xk)Rb|5zd#_D+O?)^XcP(6Fn{2-oSV+1&g{1e16z)XgAfR1m^zfevSOF-NX z3nW|>h{}N+d0v269)0ZRa8dJQ<;@_Y%8nBmEMJ zh@Bro_IoAzmQ%jMXaoAR4sv3Tvf8UI<=GHIL*-b>wz7w^0jIQQf<=RvBkhM#>UHP2V6 zmC`I(ZSU=tS&j~;=y-P0jT_RbgNvM5#Dy+3=(;#ri;NOkozvNsHR8Pr>bGbYiad{^ zO6p%?RH*~lLa6yJBMLu9fb|r(T8PcU)uz3$xBSbH{V0Ov^M>Yxrn5T`2o z>Sd7Iv`fmh`f>F<1AIsZ-S<}qRH=56KPR0!? zM%~5ECK8*@-1pKwU^vV5;FOo?)_Eiip`N&bP;Lb@(DWgxPgF&hPdNTAApzlKTzkUr zHJ$&C`QNX*$<337W4JOfuFL0N2yg;9K&eGM ziJ$xj=cMo=&={xyh&LX<4d&sT!0Q15O@ZQ8cvBJF&ID%)l)3@}fI1_1z-OEuAr5e2 zU=`m;2BZK-pz)L^IQxReNzw+ye0XpA+{s4QC@F3P}KS2NJOac;s%`|vIrqr*loQyw^ z0_^I*Q|?_qaa~UIcmN5&G8&#BsQ6nyenc5a0hUAXltSEm?eVwdWN`#&4NQmd)=Szy ztO3c85a9Snas-3|QyDxo2saCS?9$1^251f3@Z+shZ~r?k{n-8kp}%g_@kpE&5-uD3 o$F?14{_BqFqPRId register - easier read from (u16)GetCop0(15) - high byte is 0x2E for EE - low byte is: high nibble major, low nibble minor of revision - FPU revision - revision code from COP1->control register 0 - same description as for cpu PRId - VUs revision - hum, i'm not aware of any revision for them :( - VUs memory - local and micro memory sizes are not detected - GS revision - upper halfword in CSR register - high byte is ID = 0x55 - low bytes is major.minor (per nibbles) - GS mem - is 4M - IPU revision - hum, i'm not aware of any revision for IPU :( - Caches - instruction and data cache sizes are read from - COP0->Config register - easier read from GetCop0(16). - MEM - total RAM available - easier read with Syscall +127 - GetMemorySize() - the values are: 32M for console and test-kits, - 128M for devkits and 64M for PSX - the size is not roughly detected. As devkits have multiple - boot modes (128M or 64M). - from [IOP] - CPU revision - revision code from COP0->PRId register - high byte seems to be 0 - low byte is major.minor (per nibbles) - initial japs have major=1, - most of the consoles have major=2, - 75xxx have a new IOP processor with major=3 - Caches - are known to be 4K-I$; 1K-D$ - 0xFFFE0130 is CACHE_CONFIG register... - MEM - total RAM available - easier to read with QueryMemSize() - the values are: 2M for consoles and test-kits, - 8M for devkits and PSX - again, the size is incorrectly read :) - SPU mem - 2M (any method of detection?) - CDVD mecha - version of CDVD controller - Scmd 0x03 with subcode 0x00 (outsize=4) - the first byte is the MG-encryption code - second is major, third is minor, fourth is [2b completed] - meka - i don't know; not supported on early consoles - Scmd 0x03 with subcode 0x90 (outsize=1+1) - DEV9 revision- type of DEV9 device: 0x2x for PCMCIA, 0x3x for EXPBAY - *(vu16*)BF80146E - USB OHCI rev - Hc_revision of the OHCI controller - *(vu32*)0xBF801600 - ILINK rev/id - I'm not sure of this one, on ps2's that don't have - firewire anymore, the value is 0xFF; on 10000 is random - *(vu32*)0xBF808480 and *(vu32*)0xBF808500 (looks like mirror) - -g. The dumper will sign the dumped content, so John Doe cannot play easily - with the bios data ;) The emu works correctly with good data/food. - -h. I'm thinking of a method to check for modified content (dumps made with a - chipped console). Probably, it will be done in the emu and presented as a - warrning. - - -============================================================================== -============================================================================== -============================================================================== - -[ ID ] 3 -[name] auMatt -[desc] PS2 NVM Data not 100% -[hist] 2006-05-07 initial version - - ³v0-v8 ³ v9- ³ Bits ³ Bytes º -ÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍ͹ -ÍÍÍÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍÍØÍÍÍÍÍÍ͹ -PS1 Disc Spd ³ 0x300 ³ 0x2c0 ³ ³ º -PS1 Texture ³ 0x300 ³ 0x2c0 ³ ³ º -Video Output ³ 0x300 ³ 0x2c0 ³ ³ º -SPDIF ³ 0x310 ³ 0x2c0 ³ 0 ³ º -A/R ³ 0x310 ³ 0x2c0 ³ 1 & 2 ³ º -Language ³ 0x311 ³ 0x2c1 ³ All ³ º -TimeZone ³ 0x312 ³ 0x2c2 ³ ³ º -Summer Time ³ 0x312 ³ 0x2c2 ³ 3 ³ º -Time Format ³ 0x312 ³ 0x2c2 ³ 5 ³ º -DateNotation ³ 0x312 ³ 0x2c2 ³ 6 & 7 ³ º -TimeZone ³ 0x313 ³ 0x2c3 ³ All ³ º -TimeZone ³ 0x315 ³ 0x2c5 ³ All ³ º -Model Number ³ 0x1a0 ³ 0x1b0 ³ ³ 16 º -Console ID ³ 0x1c8 ³ 0x1f0 ³ ³ 8 º -ILink ID ³ 0x1c0 ³ 0x1e0 ³ ³ 8 º -Date Stamp ³ 0x180 ³ ³ ³ 16 º -Date Stamp ³ 0x1e0 ³ ³ ³ 16 º -Date Stamp ³ 0x1f0 ³ ³ ³ 16 º -Rem. Control ³ ³ 0x2c4 ³ 5 ³ º -Checksum ³ 0x31f ³ 0x2cf ³ All ³ º - -Checksum is calculated by the previous 15 bytes added together, then ANDed with 0xFF -Serial Number of Console can be obtained from bytes 7,6 & 5 of the Console ID in dec. - - -============================================================================== -============================================================================== -============================================================================== - -[ ID ] 2 -[name] Florin -[desc] PS2 bios versioning -[hist] 2006-04-30 initial version - -MG zone - the MagicGate decryption zone. You can find the code as one of the bits - in the byte at offset +1C in MagicGate encrypted files -PS1 drv - the letter for PS1VERx files in PStwo rom0 -ROMVER - has the following format VVvvZTYYYYMMDD in 14 bytes - VV, vv are the version of the bios in BCD - Z is zone code, see below - T is type of the console: C - consumer console, D - devkit/test console - YYYYMMDD is date of the bios - - BxDATA-SYSTEM, BxEXEC-SYSTEM, BxEXEC-DVDPLAYER uses Z code in place of 'x' - I: default, Japan; A: Usa, Asia; E: Europe, Oceania, Russia; C: China -VERSTR - the code from that file in rom0 -OSDVER - VVvvZlng is the format of the file for scph5xxxx. in PStwo the last 4 letters - are read from NVM, offset +180 7 chars (ROMVER:1|OSDVER:4|VERSTR:1|DVDID:1) -mecha - version read from CDVD SCmd 0x03:0x00 - -The following table is far from complete... - - ³Japan ³ USA ³AusNz ³ UK ³Europe³Korea ³ HK ³Taiwan³Russia³China ³Mexic º -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -MG zone ³ 0/J ³ 1/U ³ 3/O ³ 2/E ³ 2/E ³ 4/A ³ 4/A ³ 4/A ³ 5/R ³ 6/C ³ 7/M º -PS1 drv ³ J ³ A ³ E ³ E ³ E ³ H ³ H ³ H ³ E ³ C ³ A º -ROMVER ³0 J ³1 A ³2 E ³2 E ³2 E ³1 H ³1 H ³1 H ³2 E ³3 C ³1 A º -VERSTR ³ J ³ A ³ E ³ E ³ E ³ J ³ J ³ J ³ E ³ J ³ A º -OSDVER ³0 Jjpn³1 Aeng³2 Eeng³2 Eeng³2 Eeng³5 Kkor³6 Htch³6 Htch³4 Rrus³3 Csch³ Aspa?º -ÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -v0 scph³10000 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - mecha³0.12.0ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - ver³0100JCÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - date³000117ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - scph³15000 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - mecha³0.18.0ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - ver³0101JCÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - date³000217ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - scph³18000 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - mecha³0.22.0ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - ver³0120JCÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - date³001027ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -v1 scph³30000 ³30001 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -v2 ³30000 ³30001 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -v3 ³30000 ³30001 ³30002 ³30003 ³30004 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -v4 scph³30000 ³30001 ³30002 ³30003 ³30004 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - mecha³ ³ ³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - ver³ ³ ³ ³0120EC³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - date³ ³ ³ ³000902³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - ³35000 ³35001 ³35002 ³35003 ³35004 ³35005 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -v5 ³30000 ³30001 ³30002 ³30003 ³30004 ³30005 ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - scph³30000R³30001R³30002R³30003R³30004R³30005R³30006R³30007RÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - mecha³0.32.0³ ³ ³2.32.0³ ³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - ver³0160JC³ ³ ³0160EC³0160EC³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - date³011004³ ³ ³011004³011004³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -v6 ³ ³ ³ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -v7 scph³37000 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - ³39000 ³39001 ³39002 ³39003 ³39004 ³39005 ³39006 ³39007 ³39008 ÃÄÄÄÄÄÄÅÄÄÄÄÄĶ - mecha³ ³1.36.0³ ³ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄĶ - ver³ ³0160AC³ ³ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄĶ - date³ ³020207³ ³ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄÅÄÄÄÄÄĶ - ÃÄÄÄÄÄÄ´39001NÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄ´39010Nº -ÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -v8 scph³39000 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄ´39006 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ - mecha³0.38.0³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º - ver³0160JC³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º - date³020426³ ³ ³ ³ ³ ³ ³ ³ ³ ³ º -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -v9 scph³50000 ³50001 ³50002 ³50003 ³50004 ³50005N³50006 ³50007 ³50008 ³50009 ÃÄÄÄÄÄĶ - ÃÄÄÄÄÄÄ´50001NÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄ´50010Nº - ³55000 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄ´55005N³55006 ³55007 ÃÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -ÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄĶ -v10 scph³ ³50001 ³50002 ³50003 ³50004 ³ ³50006 ³50007 ³ ³50009 ³50010 º - mecha³ ³ ³ ³ ³ ³ ³4.54.0³4.??.0³ ³6.??.0³ º - ver³ ³ ³ ³ ³0190EC³ ³0190HC³0190HC³ ³0190CC³ º - date³ ³ ³ ³ ³030623³ ³030623³030623³ ³030623³ º -v11 ³ ³ ³ ³ ³50004 ³ ³ ³ ³ ³ ³ ºMexic USA -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍÎÍÍÍÍÍÍÑÍÍÍÍÍÍ» -v12 scph³70000 ÃÄÄÄÄÄÄ´70002 ³70003 ³70004 ³70005 ³70006 ³70007 ³70008 ³70009 ÃÄÄÄÄÄÄ´70011 ³70012 º - mecha³ ÃÄÄÄÄÄÄ´3.62.0³2.62.0³2.??.0³ ³4.64.0³ ³5.??.0³ ÃÄÄÄÄÄÄ´ ³1.60.0º - ver³0200JCÃÄÄÄÄÄÄ´0200EC³0200EC³0200EC³ ³0200HC³ ³0200EC³ ÃÄÄÄÄÄÄ´ ³0200ACº - date³040614ÃÄÄÄÄÄÄ´040614³040614³040614³ ³040614³ ³040614³ ÃÄÄÄÄÄÄ´ ³040614º -v13 scph³ ³70001 ³70002 ³70003 ³70004 ³ ³ ³ ³ ³ ³ ÌÍÍÍÍÍÍÏÍÍÍÍÍͼ -ÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍÍØÍÍÍÍÍ͹ -v14 scph³75000 ³75001 ³75002 ³75003 ³75004 ³75005 ³75006 ³75007 ³75008 ÃÄÄÄÄÄÄ´75010 º - mecha³ ³1.66.0³3.66.0³ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄ´ º - ver³ ³0220AC³0220EC³ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄ´ º - date³ ³050620³050620³ ³ ³ ³ ³ ³ ÃÄÄÄÄÄÄ´ º -ÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄĽ - - -============================================================================== -============================================================================== -============================================================================== - -[ ID ] 1 -[name] Florin -[desc] CVS management rules -[hist] 2006-04-30 initial version - -Please do not commit on CVS temporary files or those made by development tools - (IDEs). Eg: *.suo/aps/opt/plg/ncb/exp -Keep it clean and before commiting a new module see the previous structure and - naming rules. If unsure about how to do any opperation please ASK. please ASK! -There's no rush ;) -Also, I'm considering switching to SVN, as CVS seems to be *abandoned* by - sourceforge.net -Any change to sources has to be commited to the public CVS. The risk of - stealing is faced by any open-source developer - the difference is the - quality! The original will always stand up ;) -Try not to break the source by your patches. Although linux and 64-bit versions - are not maintained atm, your changes should be done with all versions in mind. -Happy coding :)