Welcome!

Final Burn Neo => FBN Development => Topic started by: KOF2112 on December 26, 2007, 11:27:38 AM

Title: CPS-III driver preview
Post by: KOF2112 on December 26, 2007, 11:27:38 AM
 :biggrin:

Thanks to  OopsWare

http://www.ojko.com/phpbb/viewtopic.php?f=3&t=3147

just a preview , no sound , gfx no flip and zoom , and some slow ....
more work need to be done ...


Merry Christmas !!!

Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 26, 2007, 01:41:12 PM
:biggrin:

Thanks to  OopsWare

http://www.ojko.com/phpbb/viewtopic.php?f=3&t=3147

just a preview , no sound , gfx no flip and zoom , and some slow ....
more work need to be done ...


Merry Christmas !!!



ThanX for the news KOF2112! ^^

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 26, 2007, 02:19:49 PM
Here are some previews from the Oopsware CPS-3 driver in action! running on FBA finally!!

(http://jezeronline.com/images/cps3_fba_01.jpg) (http://jezeronline.com/images/cps3_fba_02.jpg)
(http://jezeronline.com/images/cps3_fba_03.jpg) (http://jezeronline.com/images/cps3_fba_04.jpg)
(http://jezeronline.com/images/cps3_fba_05.jpg) (http://jezeronline.com/images/cps3_fba_06.jpg)
(http://jezeronline.com/images/cps3_fba_07.jpg) (http://jezeronline.com/images/cps3_fba_08.jpg)
(http://jezeronline.com/images/cps3_fba_09.jpg) (http://jezeronline.com/images/cps3_fba_10.jpg)

I hope this driver keep updating with fixes and the other missing stuff like sound ^^

It's amazing what Oopsware is doing for FBA  :smilie:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: iq_132 on December 26, 2007, 03:39:44 PM
HOLY COW!!






*speechless*

*edit*
Wonderful, just wonderful.  Not only CPS-3, but a SH-2 core. ^^ This should help bring psykyo games to FBA as well. :)
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 26, 2007, 04:51:11 PM
HOLY COW!!






*speechless*

*edit*
Wonderful, just wonderful.  Not only CPS-3, but a SH-2 core. ^^ This should help bring psykyo games to FBA as well. :)


HAHAHA lol, I was having the same reaction here, but I controlled myself and I didn't write the words xD

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 02:44:26 AM
OopsWare's CPS-3 Driver Updated!  :biggrin: :biggrin: :biggrin:

OopsWare has done some excellent progress with the CPS-3 driver and fixed the GFXs (he mention that there are still some errors but they are in MAME too so no big worries about them),  and he added all CPS-3 remaining drivers. CHD ROMs are not working for now.

Quote from: OopsWare

updated !!! fix graphics , a bit of graphic errer still but in mema too.
all drivers in cps3 added , but not emulate it's cd-rom , all chs rom doesn't work .



Original post here:

http://www.ojko.com/phpbb/viewtopic.php?f=3&t=3147&p=19035#p19034

SeeYaa!
 :biggrin:

PS: More preview pics coming ^^,... I'm doing a FB Alpha Enhanced build with this update too so stay tuned!  :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 03:08:22 AM
Some previews for those who want to look at whats new ^^ (like me lol)

(http://jezeronline.com/images/CPS3_fba_122807_01.jpg) (http://jezeronline.com/images/CPS3_fba_122807_02.jpg)
(http://jezeronline.com/images/CPS3_fba_122807_03.jpg) (http://jezeronline.com/images/CPS3_fba_122807_04.jpg)
(http://jezeronline.com/images/CPS3_fba_122807_05.jpg) (http://jezeronline.com/images/CPS3_fba_122807_06.jpg)
(http://jezeronline.com/images/CPS3_fba_122807_07.jpg) (http://jezeronline.com/images/CPS3_fba_122807_08.jpg)
(http://jezeronline.com/images/CPS3_fba_122807_09.jpg) (http://jezeronline.com/images/CPS3_fba_122807_10.jpg)
(http://jezeronline.com/images/CPS3_fba_122807_11.jpg) (http://jezeronline.com/images/CPS3_fba_122807_12.jpg)

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 04:47:07 AM
I just have a curiosity question, ... how can ElSemi CPS3 emulator run Redeartn (NOCD Asia) without the "redearth_nocd.bios" ?

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: JiMMy_PaGe on December 28, 2007, 06:54:22 AM
OMFG now I really have to update my fb evo with all of that stuffs, damn I was so lazy :P
Congratulations Oopsware, you did a wonderfull job \ o /
Title: Re: CPS-III driver preview
Post by: OopsWare on December 28, 2007, 10:49:15 AM
I just have a curiosity question, ... how can ElSemi CPS3 emulator run Redeartn (NOCD Asia) without the "redearth_nocd.bios" ?

SeeYaa!
 :biggrin:

i found this question too , change some code :
Code: [Select]

static int Cps3Reset()
{
// re-map cram_bank
cram_bank = 0;
Sh2MapMemory((unsigned char *)RamCRam, 0x04100000, 0x041fffff, SM_RAM);

#if 0
Sh2Reset( *(unsigned int *)(RomBios + 0), *(unsigned int *)(RomBios + 4) );
#else
// fast boot
Sh2Reset( *(unsigned int *)(RomGame_D + 0), *(unsigned int *)(RomGame_D + 4) );
Sh2SetVBR( 0x06000000);
#endif
 .....
and change a chd bios file to redearth_nocd.bios . we can got it run to it's intro ...

Title: Re: CPS-III driver preview
Post by: JacKc on December 28, 2007, 11:18:20 AM
Many thanks to OopsWare for the progress done on Driver CPS-3...Thanks also to CaptainCPS-X for his wonderfull work and build FBA Enhanced :eek:

Now i have a question concerning Redeartn (NOCD Asia). FBA request for this game the following roms

Quote
name redeartn
   cloneof redearth
   romof redearth
   description "Red Earth (961121, NO CD)"
   year 1996
   manufacturer "Capcom"
   rom ( name redearth_nocd.bios size 524288 crc 00000000 )
   rom ( name 10 size 8388608 crc 68188016 )
   rom ( name 30 size 8388608 crc 074cab4d )
   rom ( name 31 size 8388608 crc 14e2cad4 )
   rom ( name 40 size 8388608 crc 72d98890 )
   rom ( name 41 size 8388608 crc 88ccb33c )
   rom ( name 50 size 8388608 crc 2f5b44bd )

And Mame thoses ones :

Quote
game (
   name redeartn
   description "Red Earth (961121, NO CD)"
   year 1996
   manufacturer "Capcom"
   sourcefile cps3.c
   cloneof redearth
   romof redearth
   rom ( name redearth_nocd.bios size 524288 flags nodump )
   rom ( name 10 size 8388608 crc 68188016 sha1 93aaac08cb5566c33aabc16457085b0a36048019 )
   rom ( name 30 size 8388608 crc 074cab4d sha1 4cb6cc9cce3b1a932b07058a5d723b3effa23fcf )
   rom ( name 31 size 8388608 crc 14e2cad4 sha1 9958a4e315e4476e4791a6219b93495413c7b751 )
   rom ( name 40 size 8388608 crc 72d98890 sha1 f40926c52cb7a71b0ef0027a0ea38bbc7e8b31b0 )
   rom ( name 41 size 8388608 crc 88ccb33c sha1 1e7af35d186d0b4e45b6c27458ddb9cfddd7c9bc )
   rom ( name 50 size 4194304 crc 2f5b44bd sha1 7ffdbed5b6899b7e31414a0828e04543d07435e4 )
)

Is this only a problem of Typo in FBA datfile? Does the rom name 50 for redeartn in Mame is a bad dump?...Just curious to know :biggrin:

In any case, thanks to iq_132, Oopsware, CaptainCPS-X and all others for their work on this Great Emulator called FBA :smilie:
Title: Re: CPS-III driver preview
Post by: OopsWare on December 28, 2007, 12:02:22 PM
to JacKc: that's my fault, already modified .

back to ncd redearth
compare sfiii and sfiiin 's bios file , only two byte differents, at 0x01ffec8 and 0x01ffecf
0x01ffec8 is region code 1->japan 2->usa 3->europe
0x01ffecf  0->chd 1->ncd

so, check redearth's bios it content region code at 0x01ffed8 ,
but unlucky , 0x01ffedf is NOT a cd/ncd flag , where  :confused:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 12:56:10 PM
to JacKc: that's my fault, already modified .

back to ncd redearth
compare sfiii and sfiiin 's bios file , only two byte differents, at 0x01ffec8 and 0x01ffecf
0x01ffec8 is region code 1->japan 2->usa 3->europe
0x01ffecf  0->chd 1->ncd

so, check redearth's bios it content region code at 0x01ffed8 ,
but unlucky , 0x01ffedf is NOT a cd/ncd flag , where  :confused:

I checked MAME cps3.c WIPs information at MAWS and I found this :

Quote

- 8th July 2007: ElSemi - CPS3 Emulator v1.0: This is the final version of the CPS3 emulator. It adds transparency effects (not actual transparency, but well it looks like that :) ), although it's not fully understood yet. Fixed palette transformation for flashes, and fadein/outs, now blacks properly fade to white. Fixed crashes in some zoomin ending sequences in SF3 games. Fixed a 1 pixel offset in the framebuffer that was causing a 1 pixel column problem in the left side of the screen sometimes. Added support for Nebula external video plugins (there is some source code and the interface documents in the plugins folder). Added CHD (MAME's compressed Hard Disks CD Images) support. Just put the .chd files in the CHD folder in the main directory (sorry, no path selection for it). And the bios (or the full roms zip) romsets in the ROMS directory. When loading a CHD romset, the emulator will run the entire startup sequence so it will take a while to boot (early games just have a black screen) while the bios waits for the cd to spin up. You don't need to go through the flashrom rewritting sequence, although you can see how it looks (just for fun, as it doesn't actually write anything) by going to Test menu and selecting "Game Rewrite". Using CHDs doesn't have an actual benefit (except for seeing the exact startup sequence of the game machine) apart from being able to run Warzard in any region because Warzard always checks the cd ingame unless it's set to Asia, so by having the real CD emulation through CHD, you can run it in any region).


http://www.mameworld.net/maws/driverinfo/cps3.c

you only mentioned 1->Japan 2->Usa 3->Europe but not Asia, can you set it to Asia region to see what happens ?

I don't know where the region is handled in the code so that's why I can't test ^^U

btw, as always ThanX for the great work!! ^^

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: iq_132 on December 28, 2007, 01:18:21 PM
I don't know if you have any interest Oopsware, but here's a nice SH2 ASM core
http://gens.consolemul.com/download/SH2src160.zip
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 01:21:14 PM
I attached some pics showing the redeartn ( Japan Bios ) with the code modification posted by OopsWare.

(the game won't pass the title screen for now)

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: KOF2112 on December 28, 2007, 01:29:56 PM
i found this question too , change some code :
Code: [Select]

static int Cps3Reset()
{
// re-map cram_bank
cram_bank = 0;
Sh2MapMemory((unsigned char *)RamCRam, 0x04100000, 0x041fffff, SM_RAM);

#if 0
Sh2Reset( *(unsigned int *)(RomBios + 0), *(unsigned int *)(RomBios + 4) );
#else
// fast boot
Sh2Reset( *(unsigned int *)(RomGame_D + 0), *(unsigned int *)(RomGame_D + 4) );
Sh2SetVBR( 0x06000000);
#endif
 .....
and change a chd bios file to redearth_nocd.bios . we can got it run to it's intro ...



change some code After sfiii2 cannot play
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 01:52:28 PM
Check this out lol  :p

I commented the redeartn bios rom and it passed the title screen but seems that GFXs didn't load (btw, region appeared as Oceania  :confused:)

(http://jezeronline.com/images/lol_5.jpg) (http://jezeronline.com/images/lol_1.jpg)
(http://jezeronline.com/images/lol_2.jpg) (http://jezeronline.com/images/lol_3.jpg)
(http://jezeronline.com/images/lol_4.jpg)

@OopsWare: Check the first page of this topic because there are some recent posts for you ^^ that may help you with your progress  :wink:.

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 04:17:43 PM
Check this out people !!! ThanX to IQ_132 for helping me with my cps3run.cpp & d_cps3.cpp modifications, we were able to do this on FBA

(http://jezeronline.com/images/OMFG00.JPG) (http://jezeronline.com/images/OMFG1.JPG)
(http://jezeronline.com/images/OMFG2.JPG) (http://jezeronline.com/images/OMFG3.JPG)
(http://jezeronline.com/images/OMFG4.JPG) (http://jezeronline.com/images/OMFG5.JPG)
(http://jezeronline.com/images/OMFG6.JPG) (http://jezeronline.com/images/OMFG7.JPG)
(http://jezeronline.com/images/OMFG8.JPG) (http://jezeronline.com/images/OMFG9.JPG)
(http://jezeronline.com/images/OMFG10.JPG)

The modifications only affect 'redeartn' so other CPS-3 games are working fine.

I will post the code very soon, we're trying to find out how to get the correct region 'Asia' to show up

SeeYaa!
 :biggrin:

Title: Re: CPS-III driver preview
Post by: JacKc on December 28, 2007, 04:55:55 PM
Amazing the work done in so little time :eek:...Very impressive :smilie:
Great job Guys...Waiting for your next release impatiently CaptainCPS-X
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 07:48:00 PM
More previews guys!! More stuff working than expected ^^

:biggrin:

(http://jezeronline.com/images/redeartn_euro.jpg) (http://jezeronline.com/images/redeartn_euro_01.jpg)
(http://jezeronline.com/images/redeartn_brazil_01.jpg) (http://jezeronline.com/images/redeartn_brazil_02.jpg)
(http://jezeronline.com/images/redeartn_brazil_03.jpg) (http://jezeronline.com/images/redeartn_asia_01.jpg)
(http://jezeronline.com/images/redeartn_hispanic_01.jpg) (http://jezeronline.com/images/redeartn_hispanic_02.jpg)
(http://jezeronline.com/images/redeartn_usa_01.jpg) (http://jezeronline.com/images/redeartn_usa_02.jpg)
(http://jezeronline.com/images/redeartn_oceania_01.jpg)

(http://jezeronline.com/images/fba_enh_redeartn_ndrv_01.jpg)

I will try other games to see if I can change region like with Red Earth ^^ anyway I will release the code along with the FBA Enhanced R10 in a few minutes  :smilie:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 28, 2007, 09:03:57 PM
Well here you have the modified 'cps3run.cpp' & 'd_cps3.cpp' with Red Earth (NO CD) Working in all regions  :biggrin: (I added all region clone drivers)

The romsets are not new zips or something like that, they use the same roms that 'redeartn' use AND there is a region patching done with different values depending on what romset we're loading. Here you have the code so you can see more clear what Im saying:

Quote

   // 0x06000000 - JAPAN (WARZARD)
   // 0x05000000 - ASIA
   // 0x04000000 - EURO
   // 0x03000000 - USA
   // 0x02000000 - HISPANIC
   // 0x01000000 - BRAZIL
   // 0x00000000 - OCEANIA

   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redeartn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x05000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearen")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x04000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearun")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x03000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearhn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x02000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearbn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x01000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearon")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x00000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearjn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x06000000; }

   be_to_le( RomBios, 0x080000 );
   cps3_decrypt_bios();

   ...




and the problem that KOF2112 was mentioning was fixed with an IF statement, here you can see how + the new code...

Quote

static int Cps3Reset()
{
   // re-map cram_bank
   cram_bank = 0;
   Sh2MapMemory((unsigned char *)RamCRam, 0x04100000, 0x041fffff, SM_RAM);

   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redeartn") || // Asia
      !strcmp(BurnDrvGetTextA(DRV_NAME), "redearen") || // Euro
      !strcmp(BurnDrvGetTextA(DRV_NAME), "redearun") || // USA
      !strcmp(BurnDrvGetTextA(DRV_NAME), "redearhn") || // Hispanic
      !strcmp(BurnDrvGetTextA(DRV_NAME), "redearbn") || // Brazil
      !strcmp(BurnDrvGetTextA(DRV_NAME), "redearon") || // Oceania
      !strcmp(BurnDrvGetTextA(DRV_NAME), "redearjn") )  // Japan (War-Zard)
   {
      // fast boot    
      Sh2Reset( *(unsigned int *)(RomGame_D   + 0), *(unsigned int *)(RomGame_D + 4) );
      Sh2SetVBR(0x06000000);
   } else   {
      Sh2Reset( *(unsigned int *)(RomBios      + 0), *(unsigned int *)(RomBios + 4) );
   }
   
   cps3_flash_init( &main_flash );
   
   cps3_current_eeprom_read = 0;
   
   cps3SndReset();
   
   cps3_reset = 0;
   
   return 0;
}



Replace your old .cpp files with the attached ones and do a clean build (delete your 'obj/' dir)

FB Alpha Enhanced R10 is done with the updated CPS3 driver but I haven't packaged it so it will be out in some minutes ^^

ThanX to IQ_132 for helping me understand how the patching works, we weren't able to do a fast boot for other NOCD games, because of that we couldn't patch other CPS3 to other regions. Maybe OopsWare can do a fast boot for other games so they can be changed of region too ^^ 

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: KOF2112 on December 28, 2007, 09:36:36 PM
 :biggrin:
thank you CaptainCPS-X  updated CPS-III driver
Title: Re: CPS-III driver preview
Post by: OopsWare on December 28, 2007, 09:56:36 PM
Well done !!! CaptainCPS-X ,
follow your link http://www.mameworld.net/maws/romset/redeartn, i found this:

A0810000:001FEDB:00000001:0000000F      Japan
A0810000:001FEDB:00000002:0000000F     Asia
A0810000:001FEDB:00000003:0000000F     Euro
A0810000:001FEDB:00000004:0000000F     USA
A0810000:001FEDB:00000005:0000000F     Hispanic
A0810000:001FEDB:00000006:0000000F     Brazil
A0810000:001FEDB:00000007:0000000F     Oceania
A0810000:001FEDB:00000008:0000000F     Asia (NCD)

so , i think we needn't each bios files, we can write some hack code like you post.
or set them as a DIP switch .

to iq_132:
  thanx for your advice for ASM sh2 core . but my x86 asm realy bad .
but i wanta modify it's opcode analyze function, add a jumptable like MUSASHI 86K core.
in fact , that asm sh2 core is doing so .

Title: Re: CPS-III driver preview
Post by: OopsWare on December 28, 2007, 11:33:39 PM
sfiii2's coderegoin doesn't encrypt, so fast boot mode change to:
Code: [Select]
static int Cps3Reset()
{
// re-map cram_bank
cram_bank = 0;
Sh2MapMemory((unsigned char *)RamCRam, 0x04100000, 0x041fffff, SM_RAM);

#if 0
Sh2Reset( *(unsigned int *)(RomBios + 0), *(unsigned int *)(RomBios + 4) );
#else
// fast boot
if (cps3_isSpecial)
// sfiii2 only
Sh2Reset( *(unsigned int *)(RomGame + 0), *(unsigned int *)(RomGame + 4) );
else
Sh2Reset( *(unsigned int *)(RomGame_D + 0), *(unsigned int *)(RomGame_D + 4) );
Sh2SetVBR(0x06000000);
#endif
......

ok, let us make some test:
add some code after cps3_decrypt_bios(); in cps3Init()

Code: [Select]
......
be_to_le( RomBios, 0x080000 );
cps3_decrypt_bios();

unsigned int a1 = *(unsigned int *)( RomBios + 0x01fed8 );
unsigned int m1 = cps3_mask(0x01fed8, cps3_key1, cps3_key2);
bprintf(0, _T("%08x ^ %08x = %08x\n"), a1 ^ m1, m1, a1 );

.....

we'll got
fda7ee86 ^ ce87ce87 = 33202001   : redearth   : Japan
fda7ee84 ^ ce87ce87 = 33202003   : warzard    : Euro

so :
Asia (NCD) 33202008 ^ ce87ce87 = fda7ee8f
now we copy the bios file warzard_euro.29f400.u2 to redearth_nocd.bios
edit redearth_nocd.bios by a hex edit tools at offset 0x01fedb with value 0x8f

compress the redearth_nocd.bios to redeartn.zip update the crc in d_cps3.cpp

done !!! we got the redearth_nocd.bios ^^


 


Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 29, 2007, 12:10:22 AM
Nicee!!! Gonna try that asap! ^^ ThanX OopsWare! Good Job!!  :wink:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 29, 2007, 03:14:57 AM
I was able to patch 'sfiii2n' using something similar to what I did for 'redeartn' to make the temporary clones and look the results with different values...

(The first picture is without the region patching, using only the code posted by OopsWare, other pictures are when using my region patching)

(http://jezeronline.com/images/sfiii2_asia_ncd_01.jpg)

(http://jezeronline.com/images/sfiii2_asia_ncd_00.jpg) (http://jezeronline.com/images/sfiii2_oceania_ncd_01.jpg)
(http://jezeronline.com/images/sfiii2_euro_ncd_01.jpg) (http://jezeronline.com/images/sfiii2_japan_ncd_01.jpg)
(http://jezeronline.com/images/sfiii2_japan_ncd_02.jpg) (http://jezeronline.com/images/sfiii2_japan_ncd_03.jpg)
(http://jezeronline.com/images/sfiii2_brazil_ncd_01.jpg) (http://jezeronline.com/images/sfiii2_brazil_ncd_02.jpg)
(http://jezeronline.com/images/sfiii2_usa_ncd_01.jpg) (http://jezeronline.com/images/sfiii2_usa_ncd_02.jpg)
(http://jezeronline.com/images/sfiii2_usa_ncd_03.jpg)

I couldn't find a patch value to get 'Hispanic' btw, here is the code for reference of my tests (redeartn code is commented because I removed the temporary clones I was testing, there should be a Dipswitch option later that let the user select what region to set for the game but I dont know to much how that interface works):

Quote

   // REDEARTN *****************************************************************************************************
   //
   // 0x06000000 - JAPAN (WARZARD)
   // 0x05000000 - ASIA
   // 0x04000000 - EURO
   // 0x03000000 - USA
   // 0x02000000 - HISPANIC
   // 0x01000000 - BRAZIL
   // 0x00000000 - OCEANIA
   /*
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redeartn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x05000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearen")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x04000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearun")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x03000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearhn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x02000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearbn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x01000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearon")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x00000000; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearjn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x06000000; }
   */
   //

   // SFIII2N ******************************************************************************************************
   //
   // 0x00000000 - ASIA (NOCD)
   // 0x01000000 - EURO
   // 0x02000000 - NO REGION (WHITE)
   // 0x03000000 - JAPAN
   // 0x04000000 - BRAZIL
   // 0x05000000 - OCEANIA
   // 0x06000000 - USA
   // 0x07000000 - USA
   // 0x08000000 - ASIA

   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii2n")) { *((unsigned int *)(RomBios + 0x1FEC8)) ^= 0x00000000; }

   // **************************************************************************************************************



btw, the reset code in my build is like this now  :smilie: :

Quote

static int Cps3Reset()
{
   // re-map cram_bank
   cram_bank = 0;
   Sh2MapMemory((unsigned char *)RamCRam, 0x04100000, 0x041fffff, SM_RAM);

   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redeartn") || (cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii2n")))
   {
      // fast boot
      if (cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii2n"))
      {
         // sfiii2 only
         Sh2Reset( *(unsigned int *)(RomGame + 0), *(unsigned int *)(RomGame + 4));
         Sh2SetVBR(0x06000000);
      } else {
         // redeartn only
         Sh2Reset( *(unsigned int *)(RomGame_D + 0), *(unsigned int *)(RomGame_D + 4));
         Sh2SetVBR(0x06000000);
      }
   } else {
      Sh2Reset( *(unsigned int *)(RomBios + 0), *(unsigned int *)(RomBios + 4));
   }
   
   cps3_flash_init( &main_flash );   
   cps3_current_eeprom_read = 0;   
   cps3SndReset();   
   cps3_reset = 0;

   return 0;
}



EDIT: And this is my current redeartn driver with the nocd bios (obtained like OopsWare mentioned in his previous post  :wink:)

Quote

// Red Earth (961121, NO CD) ASIA
static struct BurnRomInfo redeartnRomDesc[] = {

   { "redearth_nocd.bios",
                 0x080000, 0xDB09F27C, BRF_ESS | BRF_BIOS },   // SH-2 Bios


   { "10",           0x800000, 0x68188016, BRF_ESS | BRF_PRG },   // SH-2 Code
   
   { "30",           0x800000, 0x074cab4d, BRF_GRA },
   { "31",           0x800000, 0x14e2cad4, BRF_GRA },
   { "40",           0x800000, 0x72d98890, BRF_GRA },
   { "41",           0x800000, 0x88ccb33c, BRF_GRA },
   { "50",           0x400000, 0x2f5b44bd, BRF_GRA },
};

STD_ROM_PICK(redeartn);
STD_ROM_FN(redeartn);



I will let you know if in my particular case I will add sfiii2n clones 'temporary' like I did for 'redeartn', I will get some sleep now and when I get back depending on the WIP that OopsWare have I let you know.

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: KOF2112 on December 29, 2007, 03:33:47 AM
 :biggrin:
Thanks OopsWare Help
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 29, 2007, 03:08:52 PM
I have been doing some work again and added "all" working including 'Hispanic' clones (I like to call them fake clones) with new and updated patching code, I have every CPS3 NOCD game region values to patch them, and their fake clone drivers are being done as I post this.

This is my current wip...

(http://jezeronline.com/images/sfiiin_sfiii2n_all_fake_clones_01.jpg)

I will take a break for some minutes to be with my family and then I come back to finish adding 'all' clone drivers for the other CPS3 games  :smilie:

SeeYaa!
:biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 29, 2007, 03:53:29 PM
Updated the picture I posted before, I missed to add 'Oceania' region, now in the new picture is shown in both 'sfiiin' fake clones and 'sfiii2n' fake clones, so they are complete and working fine  :smilie:.

Please refresh (F5) the page to make sure your are looking at the updated image. Now I'm gonna take a break :p

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: JacKc on December 29, 2007, 03:55:33 PM
Fantastic the work done in so few time...Thanks  :biggrin:

PS : The sound not yet emulated...Any progress in this way?
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 29, 2007, 05:02:59 PM
Fantastic the work done in so few time...Thanks  :biggrin:

PS : The sound not yet emulated...Any progress in this way?

I don't know how to add sound right now, but I hope that OopsWare can add sound in his CPS3 WIP  :smilie:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: JacKc on December 29, 2007, 05:41:58 PM
Sure you can count on OopsWare to solve this problem :biggrin:

The most important is that NOW all the set CPS3 is now fully playable on FBA :wink:
Title: Re: CPS-III driver preview
Post by: KOF2112 on December 30, 2007, 03:19:02 PM
MAME cheat.dat In Found the SFIII3 region

Quote
:sfiii3:A0010000:0001FECB:00000001:FFFFFFFF:Japan
:sfiii3:A0010000:0001FECB:00000002:FFFFFFFF:Asia
:sfiii3:A0010000:0001FECB:00000003:FFFFFFFF:Euro
:sfiii3:A0010000:0001FECB:00000004:FFFFFFFF:Usa
:sfiii3:A0010000:0001FECB:00000005:FFFFFFFF:Hispanic
:sfiii3:A0010000:0001FECB:00000006:FFFFFFFF:Brazil
:sfiii3:A0010000:0001FECB:00000007:FFFFFFFF:Oceania
:sfiii3:A0010000:0001FECB:00000008:FFFFFFFF:Korea

Quote
      !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3aan") ||  // Asia
      !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3en") ||  // Euro
      !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3hn") ||  // Hispanic
      !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3bn") ||  // Brazil
      !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3on") ||  // Oceania


Quote
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3aan")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000003; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3en")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000002; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3hn")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000004; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3bn")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000007; }
   if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3on")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000006; }

Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 30, 2007, 04:37:11 PM
MAME cheat.dat In Found the SFIII3 region



Yeah I already done the region clones for all CPS3 games, but ThanX anyway  :smilie:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on December 30, 2007, 06:35:01 PM
Here is my actual code ...

Code: [Select]

[size=10pt]// ------------------------------------------------------------------------------------------------
// Module modified originally for use in FB Alpha Enhanced / Extras
// [ CaptainCPS-X ]
//
// I have to give ThanX to IQ_132 & OopsWare for their assistance.
//
// http://neosource.1emu.net/
// ------------------------------------------------------------------------------------------------
static int Cps3Reset()
{
// re-map cram_bank
cram_bank = 0;
Sh2MapMemory((unsigned char *)RamCRam, 0x04100000, 0x041fffff, SM_RAM);

if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redeartn") || // Asia
!strcmp(BurnDrvGetTextA(DRV_NAME), "redearen") || // Euro
!strcmp(BurnDrvGetTextA(DRV_NAME), "redearun") || // USA
!strcmp(BurnDrvGetTextA(DRV_NAME), "redearhn") || // Hispanic
!strcmp(BurnDrvGetTextA(DRV_NAME), "redearbn") || // Brazil
!strcmp(BurnDrvGetTextA(DRV_NAME), "redearon") || // Oceania
!strcmp(BurnDrvGetTextA(DRV_NAME), "redearjn") || // Japan (War-Zard)
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiiin")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3en")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3xn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3jn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3bn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3on")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3un")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3hn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3e2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3x2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3j2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3b2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3o2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3u2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3h2n"))
)
{
// fast boot
if (
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiiin")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3en")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3xn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3jn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3bn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3on")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3un")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3hn")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3e2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3x2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3j2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3b2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3o2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3u2n")) ||
(cps3_isSpecial && !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3h2n"))
)
{
// sfiiin & sfiii2n only
Sh2Reset( *(unsigned int *)(RomGame + 0), *(unsigned int *)(RomGame + 4));
Sh2SetVBR(0x06000000);
} else {
// redeartn and fake clones only
Sh2Reset( *(unsigned int *)(RomGame_D + 0), *(unsigned int *)(RomGame_D + 4));
Sh2SetVBR(0x06000000);
}
} else {
Sh2Reset( *(unsigned int *)(RomGame_D + 0), *(unsigned int *)(RomGame_D + 4));
Sh2SetVBR(0x06000000);
}

cps3_flash_init( &main_flash );
cps3_current_eeprom_read = 0;
cps3SndReset();
cps3_reset = 0;

return 0;
}[/size]


Code: [Select]

[size=10pt] // --------------------------------------------------------------------------------------------
// REGION PATCH TESTS WHERE MADE ORIGINALLY FOR USE IN FBA ENHANCED / EXTRAS
// [CaptainCPS-X]
//
// http://neosource.1emu.net/
//
// Please do not remove this comment from the source if you use it.
// --------------------------------------------------------------------------------------------

// --------------------------------------------------------------------------------------------
// [ REDEARTN ] Red Earth (Asia, 961121, NO CD)
//
// 0x06000000 - JAPAN (WAR-ZARD)
// 0x05000000 - ASIA
// 0x04000000 - EURO
// 0x03000000 - USA
// 0x02000000 - HISPANIC
// 0x01000000 - BRAZIL
// 0x00000000 - OCEANIA

if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redeartn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x05000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearen")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x04000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearun")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x03000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearhn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x02000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearbn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x01000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearon")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x00000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "redearjn")) { *((unsigned int *)(RomBios + 0x1FED8)) = 0x06000000; }

// REDEARTN NOTE: REGION PATCHES ARE DIFFERENT FROM THE OTHER CPS3 GAMES
//
// -> redeartn use: (RomBios + 0x1FED8)
// others use: (RomBios + 0x1FECB)
//
// -> redeartn use: =
// others use: ^=  ( excluding NO REGION (WHITE) )

// --------------------------------------------------------------------------------------------
// [ SFIIIN ] Street Fighter III: New Generation (Asia, 970204, NO CD)
// [ SFIII2N ] Street Fighter III 2nd Impact: Giant Attack (Asia, 970930, NO CD)
//
// 0x00000000 - ASIA (NOCD)

// 0x00000001 - EURO
// 0x00000002 - NO REGION (WHITE)
// 0x00000003 - JAPAN
// 0x00000004 - BRAZIL
// 0x00000005 - OCEANIA
// 0x00000006 - USA
// 0x00000007 - HISPANIC

if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiiin") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3en") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3e2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000001; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3xn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3x2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000002; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3jn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3j2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000003; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3bn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3b2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000004; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3on") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3o2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000005; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3un") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3u2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000006; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3hn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3h2n")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000007; }

// --------------------------------------------------------------------------------------------
// [ SFIII3N ] Street Fighter III 3rd Strike: Fight for the Future (Japan, 990512, NO CD)
// [ SFIII3AN ] Street Fighter III 3rd Strike: Fight for the Future (Japan, 990608, NO CD)
//
// 0x00000000 - JAPAN

// 0x00000001 - NO REGION (WHITE)
// 0x00000002 - EURO
// 0x00000003 - ASIA
// 0x00000004 - HISPANIC
// 0x00000005 - USA
// 0x00000006 - OCEANIA
// 0x00000007 - BRAZIL

if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sfiii3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3x3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3x3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000001; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3e3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3e3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000002; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3a3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3a3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000003; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3h3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3h3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000004; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3u3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3u3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000005; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3o3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3o3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000006; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "sf3b3n") || !strcmp(BurnDrvGetTextA(DRV_NAME), "sf3b3an")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000007; }

// --------------------------------------------------------------------------------------------
// [ JOJON ] JoJo's Venture / JoJo no Kimyouna Bouken (Asia, 981202, NO CD)
// [ JOJOALTN ] JoJo's Venture / JoJo no Kimyouna Bouken (Asia, 990108, NO CD)
//
// 0x00000000 - ASIA

// 0x00000001 - EURO
// 0x00000002 - NO REGION (XXXXXX) WHITE
// 0x00000003 - JAPAN
// 0x00000004 - BRAZIL
// 0x00000005 - OCEANIA
// 0x00000006 - USA
// 0x00000007 - HISPANIC

if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojon") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoaltn")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojoen") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoalen")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000001; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojoxn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoalxn")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000002; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojojn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoaljn")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000003; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoalbn")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000004; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojoon") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoalon")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000005; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojoun") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoalun")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000006; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojohn") || !strcmp(BurnDrvGetTextA(DRV_NAME), "jojoalhn")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000007; }

// --------------------------------------------------------------------------------------------
// [ JOJOBAN ] JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Japan, 990913, NO CD)
//
// 0x00000000 - JAPAN

// 0x00000001 - NO REGION (XXXXXX) WHITE
// 0x00000002 - EURO
// 0x00000003 - ASIA
// 0x00000004 - HISPANIC
// 0x00000005 - USA
// 0x00000006 - OCEANIA
// 0x00000007 - BRAZIL

if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojoban")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobaxn")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000001; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobaen")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000002; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobaan")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000003; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobahn")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000004; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobaun")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000005; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobaon")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000006; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobabn")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000007; }

// --------------------------------------------------------------------------------------------
// [ JOJOBANE ] JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Euro, 990913, NO CD)
//
// 0x00000000 - EURO

// 0x00000001 - ASIA
// 0x00000002 - JAPAN
// 0x00000003 - NO REGION (XXXXXX) WHITE
// 0x00000004 - OCEANIA
// 0x00000005 - BRAZIL
// 0x00000006 - HISPANIC
// 0x00000007 - USA

if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobane")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000000; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobna")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000001; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobnj")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000002; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobnx")) { *((unsigned int *)(RomBios + 0x1FECB)) = 0x00000003; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobno")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000004; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobnb")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000005; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobnh")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000006; }
if (!strcmp(BurnDrvGetTextA(DRV_NAME), "jojobnu")) { *((unsigned int *)(RomBios + 0x1FECB)) ^= 0x00000007; }

be_to_le( RomBios, 0x080000 );
cps3_decrypt_bios();[/size]


Code: [Select]

[size=10pt]// ------------------------------------------------------------------------------------------------
// Fake Clone drivers made originally for use in FB Alpha Enhanced / Extras
// [ by CaptainCPS-X ]
//
// These drivers are not official in any way I added them originally to make it posible
// to select from different regions. In the future this can be simplified by adding a
// Dipswitch feature for CPS-3 games.
//
// http://neosource.1emu.net/
//
// Please do not remove this comment if you use this code.
// ------------------------------------------------------------------------------------------------

struct BurnDriver BurnDrvRedearen = {
"redearen", "redeartn", NULL, "1996",
"Red Earth (Europe, 961121, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, redeartnRomInfo, redeartnRomName, cps3InputInfo, NULL,
redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvRedearun = {
"redearun", "redeartn", NULL, "1996",
"Red Earth (USA, 961121, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, redeartnRomInfo, redeartnRomName, cps3InputInfo, NULL,
redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvRedearhn = {
"redearhn", "redeartn", NULL, "1996",
"Red Earth (Hispanic, 961121, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, redeartnRomInfo, redeartnRomName, cps3InputInfo, NULL,
redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvRedearbn = {
"redearbn", "redeartn", NULL, "1996",
"Red Earth (Brazil, 961121, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, redeartnRomInfo, redeartnRomName, cps3InputInfo, NULL,
redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvRedearon = {
"redearon", "redeartn", NULL, "1996",
"Red Earth (Oceania, 961121, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, redeartnRomInfo, redeartnRomName, cps3InputInfo, NULL,
redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvRedearjn = {
"redearjn", "redeartn", NULL, "1996",
"Red Earth / War-Zard (Japan, 961121, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, redeartnRomInfo, redeartnRomName, cps3InputInfo, NULL,
redearthInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// sfiiin FAKE CLONES

struct BurnDriver BurnDrvSf3en = {
"sf3en", "sfiiin", NULL, "1997",
"Street Fighter III: New Generation (Europe, 970204, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiiinRomInfo, sfiiinRomName, cps3InputInfo, NULL,
sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3xn = {
"sf3xn", "sfiiin", NULL, "1997",
"Street Fighter III: New Generation (XXXXXX, 970204, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiiinRomInfo, sfiiinRomName, cps3InputInfo, NULL,
sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3jn = {
"sf3jn", "sfiiin", NULL, "1997",
"Street Fighter III: New Generation (Japan, 970204, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiiinRomInfo, sfiiinRomName, cps3InputInfo, NULL,
sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3bn = {
"sf3bn", "sfiiin", NULL, "1997",
"Street Fighter III: New Generation (Brazil, 970204, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiiinRomInfo, sfiiinRomName, cps3InputInfo, NULL,
sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3on = {
"sf3on", "sfiiin", NULL, "1997",
"Street Fighter III: New Generation (Oceania, 970204, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiiinRomInfo, sfiiinRomName, cps3InputInfo, NULL,
sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3un = {
"sf3un", "sfiiin", NULL, "1997",
"Street Fighter III: New Generation (USA, 970204, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiiinRomInfo, sfiiinRomName, cps3InputInfo, NULL,
sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3hn = {
"sf3hn", "sfiiin", NULL, "1997",
"Street Fighter III: New Generation (Hispanic, 970204, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiiinRomInfo, sfiiinRomName, cps3InputInfo, NULL,
sfiiiInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// sfiii2n  fake clones

struct BurnDriver BurnDrvSf3e2n = {
"sf3e2n", "sfiii2n", NULL, "1997",
"Street Fighter III 2nd Impact: Giant Attack (Europe, 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii2nRomInfo, sfiii2nRomName, cps3InputInfo, NULL,
sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3x2n = {
"sf3x2n", "sfiii2n", NULL, "1997",
"Street Fighter III 2nd Impact: Giant Attack (XXXXXX, 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii2nRomInfo, sfiii2nRomName, cps3InputInfo, NULL,
sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3j2n = {
"sf3j2n", "sfiii2n", NULL, "1997",
"Street Fighter III 2nd Impact: Giant Attack (Japan, 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii2nRomInfo, sfiii2nRomName, cps3InputInfo, NULL,
sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3b2n = {
"sf3b2n", "sfiii2n", NULL, "1997",
"Street Fighter III 2nd Impact: Giant Attack (Brazil, 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii2nRomInfo, sfiii2nRomName, cps3InputInfo, NULL,
sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3o2n = {
"sf3o2n", "sfiii2n", NULL, "1997",
"Street Fighter III 2nd Impact: Giant Attack (Oceania, 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii2nRomInfo, sfiii2nRomName, cps3InputInfo, NULL,
sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3u2n = {
"sf3u2n", "sfiii2n", NULL, "1997",
"Street Fighter III 2nd Impact: Giant Attack (USA, 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii2nRomInfo, sfiii2nRomName, cps3InputInfo, NULL,
sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3h2n = {
"sf3h2n", "sfiii2n", NULL, "1997",
"Street Fighter III 2nd Impact: Giant Attack (Hispanic, 970930, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii2nRomInfo, sfiii2nRomName, cps3InputInfo, NULL,
sfiii2Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// sfiii3n fake clones

struct BurnDriver BurnDrvSf3x3n = {
"sf3x3n", "sfiii3", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (XXXXXX, 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3nRomInfo, sfiii3nRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3e3n = {
"sf3e3n", "sfiii3n", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Europe, 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3nRomInfo, sfiii3nRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3a3n = {
"sf3a3n", "sfiii3n", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Asia, 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3nRomInfo, sfiii3nRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3h3n = {
"sf3h3n", "sfiii3n", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Hispanic, 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3nRomInfo, sfiii3nRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3u3n = {
"sf3u3n", "sfiii3n", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (USA, 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3nRomInfo, sfiii3nRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3o3n = {
"sf3o3n", "sfiii3n", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Oceania, 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3nRomInfo, sfiii3nRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3b3n = {
"sf3b3n", "sfiii3n", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Brazil, 990512, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3nRomInfo, sfiii3nRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// sfiii3an fake clones

struct BurnDriver BurnDrvSf3x3an = {
"sf3x3an", "sfiii3an", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (XXXXXX, 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3anRomInfo, sfiii3anRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3e3an = {
"sf3e3an", "sfiii3an", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Europe, 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3anRomInfo, sfiii3anRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3a3an = {
"sf3a3an", "sfiii3an", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Asia, 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3anRomInfo, sfiii3anRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3h3an = {
"sf3h3an", "sfiii3an", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Hispanic, 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3anRomInfo, sfiii3anRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3u3an = {
"sf3u3an", "sfiii3an", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (USA, 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3anRomInfo, sfiii3anRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3o3an = {
"sf3o3an", "sfiii3an", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Oceania, 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3anRomInfo, sfiii3anRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvSf3b3an = {
"sf3b3an", "sfiii3an", NULL, "1999",
"Street Fighter III 3rd Strike: Fight for the Future (Brazil, 990608, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, sfiii3anRomInfo, sfiii3anRomName, cps3InputInfo, NULL,
sfiii3Init, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// jojon fake clones

struct BurnDriver BurnDrvJojoen = {
"jojoen", "jojon", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Europe, 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojonRomInfo, jojonRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoxn = {
"jojoxn", "jojon", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (XXXXXX, 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojonRomInfo, jojonRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojojn = {
"jojojn", "jojon", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Japan, 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojonRomInfo, jojonRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobn = {
"jojobn", "jojon", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Brazil, 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojonRomInfo, jojonRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoon = {
"jojoon", "jojon", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Oceania, 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojonRomInfo, jojonRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoun = {
"jojoun", "jojon", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (USA, 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojonRomInfo, jojonRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojohn = {
"jojohn", "jojon", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Hispanic, 981202, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojonRomInfo, jojonRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// jojoaltn fake clones

struct BurnDriver BurnDrvJojoalen = {
"jojoalen", "jojoaltn", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Europe, 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojoaltnRomInfo, jojoaltnRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoalxn = {
"jojoalxn", "jojoaltn", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (XXXXXX, 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojoaltnRomInfo, jojoaltnRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoaljn = {
"jojoaljn", "jojoaltn", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Japan, 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojoaltnRomInfo, jojoaltnRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoalbn = {
"jojoalbn", "jojoaltn", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Brazil, 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojoaltnRomInfo, jojoaltnRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoalon = {
"jojoalon", "jojoaltn", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Oceania, 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojoaltnRomInfo, jojoaltnRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoalun = {
"jojoalun", "jojoaltn", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (USA, 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojoaltnRomInfo, jojoaltnRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojoalhn = {
"jojoalhn", "jojoaltn", NULL, "1998",
"JoJo's Venture / JoJo no Kimyouna Bouken (Hipsanic, 990108, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojoaltnRomInfo, jojoaltnRomName, cps3InputInfo, NULL,
jojoInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// jojoban fake clones

struct BurnDriver BurnDrvJojobaxn = {
"jojobaxn", "jojoban", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (XXXXXX, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobanRomInfo, jojobanRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobaen = {
"jojobaen", "jojoban", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Europe, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobanRomInfo, jojobanRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobaan = {
"jojobaan", "jojoban", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Asia, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobanRomInfo, jojobanRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobahn = {
"jojobahn", "jojoban", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Hispanic, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobanRomInfo, jojobanRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobaun = {
"jojobaun", "jojoban", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (USA, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobanRomInfo, jojobanRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobaon = {
"jojobaon", "jojoban", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Oceania, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobanRomInfo, jojobanRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobabn = {
"jojobabn", "jojoban", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Brazil, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobanRomInfo, jojobanRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

// jojobane fake clones

struct BurnDriver BurnDrvJojobna = {
"jojobna", "jojobane", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Asia, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobaneRomInfo, jojobaneRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobnj = {
"jojobnj", "jojobane", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Japan, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobaneRomInfo, jojobaneRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobnx = {
"jojobnx", "jojobane", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (XXXXXX, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobaneRomInfo, jojobaneRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobno = {
"jojobno", "jojobane", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Oceania, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobaneRomInfo, jojobaneRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobnb = {
"jojobnb", "jojobane", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Brazil, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobaneRomInfo, jojobaneRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobnh = {
"jojobnh", "jojobane", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (Hispanic, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobaneRomInfo, jojobaneRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};

struct BurnDriver BurnDrvJojobnu = {
"jojobnu", "jojobane", NULL, "1999",
"JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyouna Bouken: Miraie no Isan (USA, 990913, NO CD)\0", NULL, "Capcom", "CPS-3",
NULL, NULL, NULL, NULL,
BDF_GAME_WORKING | BDF_16BIT_ONLY | BDF_CLONE, 2, HARDWARE_MISC_MISC,
NULL, jojobaneRomInfo, jojobaneRomName, cps3InputInfo, NULL,
jojobaInit, cps3Exit, cps3Frame, NULL, cps3Scan, &cps3_palette_change,
384, 224, 12, 7
};
[/size]


Enjoy the Fake Clones! xDD

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 01, 2008, 01:19:25 PM
I received a recent PM asking me about the Redeartn Asia NOCD SH-2 bios file currently in my build of FBA, and so it seems that some of you may have missed some info in this thread...

As you guys know (if you don't know you will xD) OopsWare found a way to get our own dump of the 'Red Earth (Asia, 961121, NOCD)' SH-2 Bios file so we don't have to use other bios.

He posted it in the second page of this thread but I will Quote what he wrote:


sfiii2's coderegoin doesn't encrypt, so fast boot mode change to:
Code: [Select]
static int Cps3Reset()
{
// re-map cram_bank
cram_bank = 0;
Sh2MapMemory((unsigned char *)RamCRam, 0x04100000, 0x041fffff, SM_RAM);

#if 0
Sh2Reset( *(unsigned int *)(RomBios + 0), *(unsigned int *)(RomBios + 4) );
#else
// fast boot
if (cps3_isSpecial)
// sfiii2 only
Sh2Reset( *(unsigned int *)(RomGame + 0), *(unsigned int *)(RomGame + 4) );
else
Sh2Reset( *(unsigned int *)(RomGame_D + 0), *(unsigned int *)(RomGame_D + 4) );
Sh2SetVBR(0x06000000);
#endif
......

ok, let us make some test:
add some code after cps3_decrypt_bios(); in cps3Init()

Code: [Select]
......
be_to_le( RomBios, 0x080000 );
cps3_decrypt_bios();

unsigned int a1 = *(unsigned int *)( RomBios + 0x01fed8 );
unsigned int m1 = cps3_mask(0x01fed8, cps3_key1, cps3_key2);
bprintf(0, _T("%08x ^ %08x = %08x\n"), a1 ^ m1, m1, a1 );

.....

we'll got
fda7ee86 ^ ce87ce87 = 33202001   : redearth   : Japan
fda7ee84 ^ ce87ce87 = 33202003   : warzard    : Euro

so :
Asia (NCD) 33202008 ^ ce87ce87 = fda7ee8f
now we copy the bios file warzard_euro.29f400.u2 to redearth_nocd.bios
edit redearth_nocd.bios by a hex edit tools at offset 0x01fedb with value 0x8f

compress the redearth_nocd.bios to redeartn.zip update the crc in d_cps3.cpp

done !!! we got the redearth_nocd.bios ^^


This message is here:

http://neo-source.com/index.php?topic=786.msg6424#msg6424

So to make everyone's life easier I did a IPS patch to get it from the Europe SH-2 Bios.

Directions:

1. Unzip the "warzard_euro.29f400.u2" crc32(02E0F336) from "redearth.zip"
2. Rename it to "redearth_nocd.bios".
3. Use the Patcher (ouinja-0.59-nem.zip) + IPS Patch I attached and apply it to "redearth_nocd.bios"
4. You should have now the patched "redearth_nocd.bios" with a crc32 - (DB09F27C)
5. Add "redearth_nocd.bios" to "redeartN.zip" (Note: dont add it to 'redeartH.zip')
6. Enjoy! =) We have the undumped SH-2 Bios file for FBA first! xD lol

SeeYaa!
 :biggrin:

[attachment deleted by admin]
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 01, 2008, 08:24:49 PM
Here you have my actual CPS3 updates to the drivers , changes are the ones mentioned in FB Alpha Enhanced R11 (check the attachements).

I think this are my last modifications to them for now.

btw, I hope OopsWare have good news about his CPS3 driver WIP soon ^^

SeeYaa!
:biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 02, 2008, 02:22:46 AM
My actual and final CPS3 updates to the drivers. (there should be no problem now, only of course the other stuff not emulated like sound and CHDs)

Quote

All reported bugs are fixed now, the update will be included for R12.

- jojobnx (initiate and load fine now)
- sfiiiu (boots fine to the load CD screen)
- sfiii3a (boots fine to the load CD screen)



SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: nganiere on January 02, 2008, 03:08:07 AM
all the cps-3 drivers crash with a guru meditation error when pressing alt-enter to exit full screen......no biggie though......just have to reload the emulator....
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 02, 2008, 03:14:18 AM
all the cps-3 drivers crash with a guru meditation error when pressing alt-enter to exit full screen......no biggie though......just have to reload the emulator....

That's not a bug in my updated drivers, and is not happening in my build so that bug is in your PC. Wait until I release my build and you'll see

SeeYaa!
 :biggrin:

Title: Re: CPS-III driver preview
Post by: OopsWare on January 02, 2008, 03:19:38 AM
spend too many time to write the mksh2.cpp and create opcode jumptable.
but it increase 2 or more frames per second only  :redface:

an other way, change
 Sh2Run(6250000 * 4 / 60 / 4);
to
 Sh2Run(3250000 * 4 / 60 / 4);
it will full speed on a P4 1.5, why ????

why mame run so fast  :idiot:

haha ... i'v forgot the speedup hack in mame .  :biggrin:

see mame's cps3.c
static READ32_HANDLER(cps3_speedup_r)

add this asap ...


Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 02, 2008, 03:23:19 AM
spend too many time to write the mksh2.cpp and create opcode jumptable.
but it increase 2 or more frames per second only  :redface:

an other way, change
 Sh2Run(6250000 * 4 / 60 / 4);
to
 Sh2Run(3250000 * 4 / 60 / 4);
it will full speed on a P4 1.5, why ????

why mame run so fast  :idiot:

haha ... i'v forgot the speedup hack in mame .  :biggrin:

see mame's cps3.c
static READ32_HANDLER(cps3_speedup_r)

add this asap ...


Wohooo!! ThanX OopsWare gonna test before going to sleep! ^^ (lol Im like a zoombie right now xD)

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: nganiere on January 02, 2008, 03:27:29 AM
That's not a bug in my updated drivers, and is not happening in my build so that bug is in your PC. Wait until I release my build and you'll see

SeeYaa!
 :biggrin:



hmmmm, must of been one of the blitter options my computer doesn't like cause it works switching it from double pixels (software)......no more guru meditation error.
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 02, 2008, 03:45:44 AM
Wow!! going good here changing "Sh2Run(6250000 * 4 / 60 / 4);" to "Sh2Run(3250000 * 4 / 60 / 4);"   :eek:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: iq_132 on January 02, 2008, 03:53:41 AM
That's just underclocking the cpu.  Not correct at all. :S  What it means is that the sh2 core isn't running as many cycles per second as it is suppose to.  The reason it doesn't seem to affect gameplay is that the games don't take advantage of the cpu much.

Also, the SH2 core of MAME is very slowww (taking up most of the cpu time).  That's why I suggested using that ASM SH2 core.
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 02, 2008, 04:15:31 AM
That's just underclocking the cpu.  Not correct at all. :S  What it means is that the sh2 core isn't running as many cycles per second as it is suppose to.  The reason it doesn't seem to affect gameplay is that the games don't take advantage of the cpu much.

Also, the SH2 core of MAME is very slowww (taking up most of the cpu time).  That's why I suggested using that ASM SH2 core.

I understand, but without underclocking is going a bit faster than before too, I think that when OopsWare implements the speedup from MAME cps3.c it will get better ^^

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: iq_132 on January 02, 2008, 06:25:49 AM
It certainly does give quite a speedup. ^^

*edit*
please note that I'm talking about adding the speedup from MAME's cps3.c
Title: Re: CPS-III driver preview
Post by: KOF2112 on January 02, 2008, 07:01:20 AM
I edit the Wrong :confused:

Quote
Making normal build...

Generating depend file for src/burner/win32/about.cpp...
Generating depend file for src/burner/win32/resource.rc...
Compiling src/burner/win32/about.cpp...
Compiling resource file resource.rc...
Compiling src/burn/cps3/mksh2.cpp...
src/burn/cps3/mksh2.cpp:1672: error: ISO C++ forbids declaration of `main' with

   no type
src/burn/cps3/mksh2.cpp: In function `void OpCMPSTR(short unsigned int)':
src/burn/cps3/mksh2.cpp:354: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpXTRCT(short unsigned int)':
src/burn/cps3/mksh2.cpp:371: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpDMULU(short unsigned int)':
src/burn/cps3/mksh2.cpp:508: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpSUBC(short unsigned int)':
src/burn/cps3/mksh2.cpp:559: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpSUBV(short unsigned int)':
src/burn/cps3/mksh2.cpp:577: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpDMULS(short unsigned int)':
src/burn/cps3/mksh2.cpp:615: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpADDC(short unsigned int)':
src/burn/cps3/mksh2.cpp:667: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpADDV(short unsigned int)':
src/burn/cps3/mksh2.cpp:686: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpMAC_W(short unsigned int)':
src/burn/cps3/mksh2.cpp:805: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpDT(short unsigned int)':
src/burn/cps3/mksh2.cpp:859: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpTAS(short unsigned int)':
src/burn/cps3/mksh2.cpp:943: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpMOVLL4(short unsigned int)':
src/burn/cps3/mksh2.cpp:1051: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpBRA(short unsigned int)':
src/burn/cps3/mksh2.cpp:1242: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpBSR(short unsigned int)':
src/burn/cps3/mksh2.cpp:1257: warning: unused parameter `short unsigned int n'
src/burn/cps3/mksh2.cpp: In function `void OpTRAPA(short unsigned int)':
src/burn/cps3/mksh2.cpp:1285: warning: unused parameter `short unsigned int n'
mingw32-make[1]: *** [mksh2.o] Error 1
mingw32-make: *** [mingw] Error 2
_
FBA Compilation using MinGW v3.1.0 Done.
(Using Windows Vista Ultimate Environment)
请按任意键继续. . .
Title: Re: CPS-III driver preview
Post by: iq_132 on January 02, 2008, 08:32:05 AM
You don't want to compile mksh2.cpp into fba like that.
Open a command prompt there and type:
gcc mksh2.cpp -o mksh2.exe
now run that mksh2 program.  It will output a big-ass file
you don't need to add mksh2.cpp or the ouputted file to fba's makefile.

next, open sh2.cpp and find this
#define USE_JUMPTABLE      0 << change to a 1
Title: Re: CPS-III driver preview
Post by: KOF2112 on January 02, 2008, 09:20:35 AM
You don't want to compile mksh2.cpp into fba like that.
Open a command prompt there and type:
gcc mksh2.cpp -o mksh2.exe
now run that mksh2 program.  It will output a big-ass file
you don't need to add mksh2.cpp or the ouputted file to fba's makefile.

next, open sh2.cpp and find this
#define USE_JUMPTABLE      0 << change to a 1

 :biggrin:
ok Thanks iq_132  Help
Title: Re: CPS-III driver preview
Post by: OopsWare on January 03, 2008, 01:10:53 AM
some fix:
  1. sh-2 core add jumptable mode , default set to off .
  2. add speed-up hack code
  3. add sound
  4. fix region to a DIP switch
  5. some other small fix

when i add the region DIPs some ROM info been changed, and lazy to fix it,
hope CaptainCPS-X can fix that. since use the fastboot mode, i wan't emulate
the cd-rom . because :

Quote
- 8th July 2007: ElSemi - CPS3 Emulator v1.0: This is the final version of the CPS3 emulator. It adds transparency effects (not actual transparency, but well it looks like that Smiley ), although it's not fully understood yet. Fixed palette transformation for flashes, and fadein/outs, now blacks properly fade to white. Fixed crashes in some zoomin ending sequences in SF3 games. Fixed a 1 pixel offset in the framebuffer that was causing a 1 pixel column problem in the left side of the screen sometimes. Added support for Nebula external video plugins (there is some source code and the interface documents in the plugins folder). Added CHD (MAME's compressed Hard Disks CD Images) support. Just put the .chd files in the CHD folder in the main directory (sorry, no path selection for it). And the bios (or the full roms zip) romsets in the ROMS directory. When loading a CHD romset, the emulator will run the entire startup sequence so it will take a while to boot (early games just have a black screen) while the bios waits for the cd to spin up. You don't need to go through the flashrom rewritting sequence, although you can see how it looks (just for fun, as it doesn't actually write anything) by going to Test menu and selecting "Game Rewrite". Using CHDs doesn't have an actual benefit (except for seeing the exact startup sequence of the game machine) apart from being able to run Warzard in any region because Warzard always checks the cd ingame unless it's set to Asia, so by having the real CD emulation through CHD, you can run it in any region).


Title: Re: CPS-III driver preview
Post by: iq_132 on January 03, 2008, 01:23:37 AM
Amazing work Oopsware.  Just amazing.  Thank you. :)
Title: Re: CPS-III driver preview
Post by: BisonSAS on January 03, 2008, 01:31:29 AM
Fantastic OopsWare! :smilie:

Thanks!  :cool:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 03, 2008, 01:32:25 AM
Excellent job! You're pretty good!  :wink:, gonna try it right now! ^^

I will try to check the regions stuff =)

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: GLiTcH on January 03, 2008, 01:42:29 AM
fantastic work everyone .. i don't know anything about compiling fba ... but faster emulation for cps3 with sound.. i quit
cant wait for the next fba e version cap
Title: Re: CPS-III driver preview
Post by: KOF2112 on January 03, 2008, 02:59:13 AM
 :eek:

Thanks OopsWare
Title: Re: CPS-III driver preview
Post by: nganiere on January 03, 2008, 05:23:18 AM
Here is the driver with them MAME supported dumps......all NO CD's are fully working....the drivers without the nocd crash with a guru meditation error....can someone fix it so it shows the cd loading screen like previously, and can someone add the dips for the regions......any help would be greatly appreciated, thanks in advance....
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 03, 2008, 05:36:02 AM
Here is the driver with them MAME supported dumps......all NO CD's are fully working....the drivers without the nocd crash with a guru meditation error....can someone fix it so it shows the cd loading screen like previously, and can someone add the dips for the regions......any help would be greatly appreciated, thanks in advance....

Well, I help because I like to help when I can, but if you think you can abuse from the generosity of this forums you're wrong, sorry to be like this but please if you want something just wait until is released (and stop spamming), and if is not like you wanted when released then I'm sorry but this are not driver request forums is a emulation community. Any additional fix / feature not released by someone CAN'T be requested like it is a 'duty' or 'mandatory', no one have a gun on his head to write drivers.

This is a warning Nganiere. If you keep this attitude I will have to ban you.

@ General Users:  Sorry to deform this topic with this post (this warning message will be removed in 2 days).
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 03, 2008, 05:43:15 AM

when i add the region DIPs some ROM info been changed, and lazy to fix it,
hope CaptainCPS-X can fix that. since use the fastboot mode, i wan't emulate
the cd-rom . because :


I did fix the DIPs problems for 'Red Earth (NOCD)' [ redeartn ] now you can select regions and play the game fine  :wink: , I will make the needed update to the romset asap, right now I need to sleep ^^U.

SeeYaa!
 :biggrin:

[attachment deleted by admin]
Title: Re: CPS-III driver preview
Post by: JacKc on January 03, 2008, 08:34:12 AM
Amazing :eek:...Thanks to all for this awesome work on driver CPS3 :biggrin:

@ Nganiere : please stop spamming...It's very annoying :p
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 03, 2008, 06:56:47 PM
@ BisonSAS: Hi man, I have some questions regarding the functionality of the DIPswitches, since you have experience working with them, why could some DIPs values not appear ? I made that question because I have the DIPs working for some CPS3 drivers but there are others that are not showing any value in the DIPs window, just blank =(

here is some of my DIPs code (Its not final and some regions must be verified)

Quote

// WORKING ...
static struct BurnDIPInfo jojoDIPList[] = {
   // Defaults
   {0x1a,   0xFF, 0xFF,   0x08, NULL},

   // DIP 1
   {0,      0xFE, 0,   8,      "Region"      },
   {0x1a,   0x01, 0x0f, 0x06,   "BRAZIL"      },
   {0x1a,   0x01, 0x0f, 0x05,   "HISPANIC"      },
   {0x1a,   0x01, 0x0f, 0x04,   "USA"         },
   {0x1a,   0x01, 0x0f, 0x03,   "EURO"         },
   {0x1a,   0x01, 0x0f, 0x02,   "ASIA (NCD)"   },
   {0x1a,   0x01, 0x0f, 0x01,   "JAPAN"         },
   {0x1a,   0x01, 0x0f, 0x00,   "XXXXXX"      },
   {0x1a,   0x01, 0x0f, 0x07,   "OCEANIA"      },   
};

STDDIPINFO(jojo);

//  NOT WORKING ...
static struct BurnDIPInfo jojobaDIPList[] = {
   // Defaults
   {0x1a,   0xFF, 0xFF,   0x08, NULL},

   // DIP 1
   {0,      0xFE, 0,   8,      "Region"      },
   {0x1a,   0x01, 0x0f, 0x06,   "JAPAN"         },
   {0x1a,   0x01, 0x0f, 0x05,   "ASIA"         },
   {0x1a,   0x01, 0x0f, 0x04,   "EURO"         },
   {0x1a,   0x01, 0x0f, 0x03,   "USA"         },
   {0x1a,   0x01, 0x0f, 0x02,   "HISPANIC"      },
   {0x1a,   0x01, 0x0f, 0x01,   "BRAZIL"      },
   {0x1a,   0x01, 0x0f, 0x00,   "OCEANIA"      },
   {0x1a,   0x01, 0x0f, 0x05,   "ASIA (NO CD)"   },   
};

STDDIPINFO(jojoba);

// NOT WORKING ...
static struct BurnDIPInfo jojobaneDIPList[] = {
   // Defaults
   {0x1a,   0xFF, 0xFF,   0x08, NULL},

   // DIP 1
   {0,      0xFE, 0,   8,      "Region"      },
   {0x1a,   0x01, 0x0f, 0x06,   "JAPAN"         },
   {0x1a,   0x01, 0x0f, 0x05,   "ASIA"         },
   {0x1a,   0x01, 0x0f, 0x04,   "EURO"         },
   {0x1a,   0x01, 0x0f, 0x03,   "USA"         },
   {0x1a,   0x01, 0x0f, 0x02,   "HISPANIC"      },
   {0x1a,   0x01, 0x0f, 0x01,   "BRAZIL"      },
   {0x1a,   0x01, 0x0f, 0x00,   "OCEANIA"      },
   {0x1a,   0x01, 0x0f, 0x05,   "ASIA (NO CD)"   },   
};

STDDIPINFO(jojobane);


The first one is working the other two not, they show a blank DIPs in the windows, nothing is shown. If I can make the remaining dips to work the CPS3 driver will be almost complete, there are some issues with gfx in Red Earth (like the second health bar is not shown) and the CD-ROM not supported for now, but everything else is going pretty nice.

btw, I have implemented a little tweak in my build to made it posible to Enable or Disable both 'FastBoot' and 'SpeedHack' for CPS-3  :smilie: I attached some pictures including one that shows all verified romsets.

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: OopsWare on January 03, 2008, 08:26:06 PM
remove dip config ???.ini file in \config\games can solve it .
maybe u set the region value to 7 and not exists in your new DIPList,
the burner can't show. is this a small bug ??
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 03, 2008, 09:45:36 PM
remove dip config ???.ini file in \config\games can solve it .
maybe u set the region value to 7 and not exists in your new DIPList,
the burner can't show. is this a small bug ??

That fixed it ^^ I didnt delete the old configs  :p, btw, I fixed some other issues too and now all games have the DIPs working fine with or without the 'fastboot' / 'speedhack' options ^^

Im doing some cleaning to release the updated files  :smilie:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: nganiere on January 03, 2008, 09:59:18 PM
way to go CaptainCPS-X.....can't wait to try your updated drivers.....
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 04, 2008, 12:41:14 AM
OopsWare here I bring my updated 'cps3run.cpp' & 'd_cps3.cpp' , I organized everything in 'd_cps3.cpp' and added Functions macros / DIPs / Comments & added all CPS3 drivers (there are no more fake clones like I call them  :p)...

In 'cps3run.cpp' there are some modifications including the implementation of bool's for the conditions of 'fastboot' and 'speedhacks' , they are the following:

- bFastBoot;
- bSpeedHack;

and removed the other build-conditioned 'FAST_BOOT' and 'SPEED_HACK'.

Here you have instructions on how to add the 'CPS-III Settings' to the FBA Menu like in my build  :wink: :


In 'src/burn/burn.h' look for this:

Quote
extern bool bBurnUseMMX;

Add this before:

Quote
extern bool bFastBoot, bSpeedHack;

In 'src/burner/win32/scrn.cpp' look for:

Quote
case MENU_SNAPFACT:

Add this before:

Quote
      // CPS-3: SET FAST BOOT
      case MENU_CPS3_FASTBOOT:
      {
         if(!bFastBoot) {
            bFastBoot = true;
         } else {
            bFastBoot = false;
         }
         MessageBox(hScrnWnd, _T("Enabling / Disabling 'FastBoot' requires at least a Reset to be applied."), _T("FB Alpha Enhanced Info"), MB_OK | MB_ICONINFORMATION);
         POST_INITIALISE_MESSAGE;
         break;
      }

      // CPS-3: SET SPEED HACK
      case MENU_CPS3_SPEEDHACK:
      {
         if(!bSpeedHack) {
            bSpeedHack = true;
         } else {
            bSpeedHack = false;
         }
         MessageBox(hScrnWnd, _T("Enabling / Disabling 'SpeedHack' requires the game to be Reloaded to be applied.\nNote: Reseting the game won't apply the feature."), _T("FB Alpha Enhanced Info"), MB_OK | MB_ICONINFORMATION);
         POST_INITIALISE_MESSAGE;
         break;
      }

In 'src/burner/win32/menu.cpp' look for:

Quote
CheckMenuRadioItem(hMenu, MENU_ASPECTNORMAL, MENU_ASPECTWIDE, var, MF_BYCOMMAND);

Add this before:

Quote
   // CPS-III Settings
   CheckMenuItem(hMenu, MENU_CPS3_FASTBOOT, !bFastBoot ? MF_UNCHECKED : MF_CHECKED);
   CheckMenuItem(hMenu, MENU_CPS3_SPEEDHACK, !bSpeedHack ? MF_UNCHECKED : MF_CHECKED);

In 'src/burner/win32/cona.cpp' look for:

Quote
      // Sound
      VAR(nAudSampleRate);

Add this before:

Quote
      // CPS3 Settings
      VAR(bFastBoot);
      VAR(bSpeedHack);

In same  'cona.cpp' look for this:

Quote
   _ftprintf(h, _T("\n// If non-zero, load and save all ram (the state)\n"));
   VAR(bDrvSaveAll);

Add this before:

Quote
   _ftprintf(h, _T("\n// CPS-3 -> Enable FastBoot [0 = disabled, 1 = enabled] \n"));
   VAR(bFastBoot);
   _ftprintf(h, _T("\n// CPS-3 -> Enable SpeedHack [0 = disabled, 1 = enabled]\n"));
   VAR(bSpeedHack);

In 'src/burner/win32/resource.h' add these on top:

Quote
#define MENU_CPS3_FASTBOOT            20205
#define MENU_CPS3_SPEEDHACK            20206

In 'src/burner/win32/app.rc' look for:

Quote
        MENUITEM "Set dipswitches...\tCtrl+F5",            MENU_DIPSW, GRAYED

Add this After:

Quote
   MENUITEM SEPARATOR
   POPUP "CPS-III Settings..."
   BEGIN
      MENUITEM "Enable FastBoot",            MENU_CPS3_FASTBOOT
      MENUITEM "Enable SpeedHacks",            MENU_CPS3_SPEEDHACK
   END

That's All! ^^ , now you can get my updated files from the attachment  :wink:

I hope this help you with your progress, btw this will not affect CHD drivers in any way, when run, they are expecting the CD-ROM normally so if you make the feature you can use my modified files. It doen't matter if you activate the 'fastboot' or 'speedhack' they will work fine without a crash =).

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 04, 2008, 01:56:09 AM
I forgot to say how to add the CPS3 Mask so if you plan to add the CPS3 checkbox to your build you must have
this:

in src/burn/burn.h

Quote
#define HARDWARE_PUBLIC_MASK      (0xFFFF0000)
#define HARDWARE_PREFIX_MISC      (0x00000000)
#define HARDWARE_PREFIX_CAPCOM      (0x01000000)
#define HARDWARE_PREFIX_SEGA      (0x02000000)
#define HARDWARE_PREFIX_KONAMI      (0x03000000)
#define HARDWARE_PREFIX_TOAPLAN      (0x04000000)
#define HARDWARE_PREFIX_SNK         (0x05000000)
#define HARDWARE_PREFIX_CAVE      (0x06000000)
#define HARDWARE_PREFIX_CPS2      (0x07000000)
#define HARDWARE_PREFIX_IGS_PGM      (0x08000000)
#define HARDWARE_PREFIX_CPS3      (0x09000000)

and at the bottom:

Quote
#define HARDWARE_IGS_PGM      (HARDWARE_PREFIX_IGS_PGM)
#define HARDWARE_IGS_USE_ARM_CPU   (0x0001)

#define HARDWARE_CAPCOM_CPS3   (HARDWARE_PREFIX_CPS3)

in src/burner/win32/resource.h you must have this added:

Quote
#define IDC_CHECKCPS3               20198

In src/burner/win32/sel.cpp you must have this:

Quote
#define MASKCPS      (1 << (HARDWARE_PREFIX_CAPCOM   >> 24))
#define MASKCPS2   (1 << (HARDWARE_PREFIX_CPS2      >> 24))
#define MASKCPS3   (1 << (HARDWARE_PREFIX_CPS3      >> 24))
#define MASKNEOGEO   (1 << (HARDWARE_PREFIX_SNK      >> 24))
#define MASKSEGA   (1 << (HARDWARE_PREFIX_SEGA      >> 24))
#define MASKTOAPLAN (1 << (HARDWARE_PREFIX_TOAPLAN   >> 24))
#define MASKCAVE   (1 << (HARDWARE_PREFIX_CAVE      >> 24))
#define MASKMISC   (1 << (HARDWARE_PREFIX_MISC      >> 24))
#define MASKPGM      (1 << (HARDWARE_PREFIX_IGS_PGM   >> 24))
#define MASKALL      (MASKCPS | MASKCPS2 | MASKCPS3 | MASKNEOGEO | MASKSEGA | MASKTOAPLAN | MASKCAVE | MASKPGM | MASKMISC)

In the same file you must have this part too:

Quote
   CheckDlgButton(hSelDlg, IDC_CHECKCPS1, nLoadMenuShowX & MASKCPS ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKCPS2, nLoadMenuShowX & MASKCPS2 ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKCPS3, nLoadMenuShowX & MASKCPS3 ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKNEOGEO, nLoadMenuShowX & MASKNEOGEO ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKSEGA, nLoadMenuShowX & MASKSEGA ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKTOAPLAN, nLoadMenuShowX & MASKTOAPLAN ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKCAVE, nLoadMenuShowX & MASKCAVE ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKMISC, nLoadMenuShowX & MASKMISC ? BST_UNCHECKED : BST_CHECKED);
   CheckDlgButton(hSelDlg, IDC_CHECKPGM, nLoadMenuShowX & MASKPGM ? BST_UNCHECKED : BST_CHECKED);

This too:

Quote
            case IDC_CHECKCPS1:
               nLoadMenuShowX ^= MASKCPS;
               RebuildEverything();
               break;
            case IDC_CHECKCPS2:
               nLoadMenuShowX ^= MASKCPS2;
               RebuildEverything();
               break;
            case IDC_CHECKCPS3:
               nLoadMenuShowX ^= MASKCPS3;
               RebuildEverything();
               break;


Now in src/burner/win32/app.rc search for this:

Quote
IDD_SELNEW DIALOGEX
...

That dialog must be updated with a new Checkbox control + resize the dialog dimensions too, you may want to copy one of the current Checkboxes and rename it to "IDC_CHECKCPS3", for example:

Quote
CONTROL         "CPS3",IDC_CHECKCPS3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,255,90,8,WS_EX_TRANSPARENT

The numbers in red are the coord's of the checkbox control and you must edit them especially for your dialog.

I hope that helps some to get the checkbox.

NOTE!: You can save all this if you dont want a checkbox and replace all "HARDWARE_CAPCOM_CPS3" located in 'd_cps3.cpp' with "HARDWARE_MISC_MISC" and they will be displayed in the Misc gamelist

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: rush1477 on January 04, 2008, 04:37:20 AM
Wow, Cool! CAPtain  :cool:

Thanks for your explanation.
Updated files and 'CPS-III Settings' are so useful stuffs.

Oh, Thank you OopsWare  ;p
Title: Re: CPS-III driver preview
Post by: nganiere on January 04, 2008, 05:57:46 AM
complains about not enough memory for the pcb or about the cd-rom on all the drivers.....I think this needs to be fixed


UPDATE:........you need to add the fastboot code to get this to work posted above I am guessing because I just tested FBA Enhanced by CaptainCPS-X and the drivers didn't work until I enabled it.....just a thought everyone...



*edit 1*
Wanna also report that some of the dips are wrong....NO CD dips are character check version regions......and some of the default dips are wrong....asia default dumps are jap on some of the games....otherwise great job and keep up the good work guys....

*edit 2*
trying to add the CPS-3 checkbox, but the checkboxes are off.......run into one another, filters window needs to be resized....whish I could figure that out...oh well, maybe later


USE THE EDIT BUTTON AND DO NOT DOUBLE POST. -IQ
Title: Re: CPS-III driver preview
Post by: Aquashark on January 04, 2008, 06:44:40 AM
hi! i was lurking this forum until i couldn't resist and registered to thank you, CaptainCPS-X & OopsWare, for your awesome efforts.

i know this is a WIP and i'm not complaining
just wanted to report that sound seems to have low quality (even though samplerate is set to 44100Hz)
and also the Service function acts like P1 Coin
Title: Re: CPS-III driver preview
Post by: OopsWare on January 04, 2008, 10:01:32 AM
small fix :

seems entries in the sprite table can be 0x0fff , but 0x01ff is enough .
it will fix graphics somewhere such as '3rd' or 'two hand' in sf3's intro .

int length = (RamSpr[i+0]&0x01ff0000)>>14; // how many entries in the sprite table

this problem exists in mame too : src\mame\drivers\cps3.c [line 1099]

static VIDEO_UPDATE(cps3)
  ...
  int length = (cps3_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table
  ...

Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 04, 2008, 12:26:11 PM
small fix :

seems entries in the sprite table can be 0x0fff , but 0x01ff is enough .
it will fix graphics somewhere such as '3rd' or 'two hand' in sf3's intro .

int length = (RamSpr[i+0]&0x01ff0000)>>14; // how many entries in the sprite table

this problem exists in mame too : src\mame\drivers\cps3.c [line 1099]

static VIDEO_UPDATE(cps3)
  ...
  int length = (cps3_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table
  ...



Nice stuff OopsWare! gonna try your fix asap  :wink:  :biggrin:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 04, 2008, 12:57:25 PM
Yeah seems to be working fine in SFIII3N ^^, (ThanX for the fix OopsWare!)

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: nganiere on January 05, 2008, 03:34:14 AM
I'm having problems adding the cps-3 check box.....as you can see from the pic, I am having problems with the sel.cpp.....the misc box is not within the lines of the filter box, and the use only Latin Text box is messed up.....can someone please fix it for me and just post the fix code....thanks in advance...

UPDATE: FIXED THE LATIN TEXT BUG, UPLOADED NEW SEL.CPP.......NEED THE MISC BUG FIXED IF ANYONE CAN HELP
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 05, 2008, 05:24:03 AM
I'm having problems adding the cps-3 check box.....as you can see from the pic, I am having problems with the sel.cpp.....the misc box is not within the lines of the filter box, and the use only Latin Text box is messed up.....can someone please fix it for me and just post the fix code....thanks in advance...

UPDATE: FIXED THE LATIN TEXT BUG, UPLOADED NEW SEL.CPP.......NEED THE MISC BUG FIXED IF ANYONE CAN HELP

Man......... I ..... will...... release..... my...... source....code..... pretty ...... soon.....

Help yourself to calm down man, when I post the source it should be pretty easy to add what you want, but for now please be patient. I warned you one time and consider this a second warning Nganiere , you wont even see a 3rd warning about this so stop asking to add the stuff you want all time. This is not a restaurant.
Title: Re: CPS-III driver preview
Post by: nganiere on January 05, 2008, 06:41:23 AM
Man......... I ..... will...... release..... my...... source....code..... pretty ...... soon.....

Help yourself to calm down man, when I post the source it should be pretty easy to add what you want, but for now please be patient. I warned you one time and consider this a second warning Nganiere , you wont even see a 3rd warning about this so stop asking to add the stuff you want all time. This is not a restaurant.


Ok, geez, I don't think my sel.cpp or whatever is wrong with my drivers is going to be the same.......it was added fine except the misc box is out of range of the filters box by a little bit, but it works....I don't mean to be a pain.  Just wanted someone to help me out to fix it.......noticed one person did download it, so maybe someone will give me some assistance......thanks in advance if that is the case.....and sorry about the post if you don't like them....
Title: Re: CPS-III driver preview
Post by: BisonSAS on January 06, 2008, 04:53:52 PM
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 06, 2008, 05:47:01 PM
  • Changed inputs to "Street Fighter Layout"
  • Enable the "Diagnostic" input
  • Added save EEPROM configuration
  • Added Unicode titles:
    jojo -> ジョジョの 奇妙な冒険
    jojoba -> ジョジョの 奇妙な冒険: 未来への遺産
  • Added default game regions DIPs
  • Changed the redeartn BIOS to "warzard_euro.29f400.u2"
  • Now the "redeartn" using the default "Cps3PatchRegion"
  • Chaged the FAST_BOOT to HARDWARE_CAPCOM_CPS3_NO_CD
    Please, add in your burn.h:
    #define HARDWARE_CAPCOM_CPS3_NO_CD   (0x0001)

This is not compatible with my current source of FB Alpha Enhanced R13 right?

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: BisonSAS on January 06, 2008, 08:20:17 PM
This is not compatible with my current source of FB Alpha Enhanced R13 right?
To work in your FB Alpha Enhanced:
Remove this: HARDWARE_CAPCOM_CPS3_NO_CD and re-add:
 bFastBoot and bSpeedHack

 ;p
Title: Re: CPS-III driver preview
Post by: OopsWare on January 07, 2008, 12:59:10 AM
sound fix to reduce the noise
Title: Re: CPS-III driver preview
Post by: OopsWare on January 07, 2008, 01:03:46 AM
add is in  void cps3_drawgfxzoom_0(...); to fix blood bar in redearth.

Quote
....
if ( flipy ) {

      dst += cps3_gfx_width * 7;
      if ( flipx )
         for(int i=0; i<8; i++, dst-= cps3_gfx_width, src += 8 ) {
            if ( src[ 2] & 0xf ) dst[7] = color [ src[ 2] & 0xf ];
            if ( src[ 2] >>  4 ) dst[6] = color [ src[ 2] >>  4 ];
            if ( src[ 0] & 0xf ) dst[5] = color [ src[ 0] & 0xf ];
            if ( src[ 0] >>  4 ) dst[4] = color [ src[ 0] >>  4 ];
            if ( src[ 6] & 0xf ) dst[3] = color [ src[ 6] & 0xf ];
            if ( src[ 6] >>  4 ) dst[2] = color [ src[ 6] >>  4 ];
            if ( src[ 4] & 0xf ) dst[1] = color [ src[ 4] & 0xf ];
            if ( src[ 4] >>  4 ) dst[0] = color [ src[ 4] >>  4 ];
         }
      else
         for(int i=0; i<8; i++, dst-= cps3_gfx_width, src += 8 ) {
            if ( src[ 2] & 0xf ) dst[0] = color [ src[ 2] & 0xf ];
            if ( src[ 2] >>  4 ) dst[1] = color [ src[ 2] >>  4 ];
            if ( src[ 0] & 0xf ) dst[2] = color [ src[ 0] & 0xf ];
            if ( src[ 0] >>  4 ) dst[3] = color [ src[ 0] >>  4 ];
            if ( src[ 6] & 0xf ) dst[4] = color [ src[ 6] & 0xf ];
            if ( src[ 6] >>  4 ) dst[5] = color [ src[ 6] >>  4 ];
            if ( src[ 4] & 0xf ) dst[6] = color [ src[ 4] & 0xf ];
            if ( src[ 4] >>  4 ) dst[7] = color [ src[ 4] >>  4 ];
         }

   } else {
....
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 07, 2008, 01:10:41 AM
ThanX OopsWare! Excellent ^^  :biggrin:

(btw, I noticed you was editing your reply some times  :biggrin:, if you have issues with smilies and the code you post, you can disable smilies in the additional option of the post  ;p)

EDIT: I quoted your last reply and disabled smilies ^^

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 07, 2008, 01:32:32 AM
Well here I bring a picture of the Fix working just fine ^^

btw, the sound is great!!!  :biggrin:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: nganiere on January 07, 2008, 04:30:03 AM
I don't see what is wrong with the graphics, with the bar anyways without the fix......any help would be appreciated as I don't see a problem......
Title: Re: CPS-III driver preview
Post by: iq_132 on January 07, 2008, 04:56:53 AM
Oopsware, I don't know if you know about this or not, but the Sean stage (sfiii)
is broken. :S  It uses a different decoding than other backgrounds.
http://haze.mameworld.info/2007/06/27/cps3-tile-compression-part-3/

Title: Re: CPS-III driver preview
Post by: OopsWare on January 07, 2008, 07:46:10 AM
Oopsware, I don't know if you know about this or not, but the Sean stage (sfiii)
is broken. :S  It uses a different decoding than other backgrounds.
http://haze.mameworld.info/2007/06/27/cps3-tile-compression-part-3/

i know this, but still not found that stage, not test it, to fix it : (need approve)

Quote
static UINT32 ProcessByte8(unsigned char b, unsigned int dst_offset)
{
   unsigned char * destRAM = (unsigned char *) RamCRam;
    int l=0;

    if(lastb==lastb2) {   //rle
       int rle=(b+1)&0xff;

       for(int i=0;i<rle;++i) {
#if BE_GFX
         destRAM[(dst_offset&0x7fffff)] = lastb;
#else
         destRAM[(dst_offset&0x7fffff)^3] = lastb;
#endif
         //cps3_char_ram_dirty[(dst_offset&0x7fffff)/0x100] = 1;
         //cps3_char_ram_is_dirty = 1;

         dst_offset++;
          ++l;
       }
       lastb2=0xffff;
       return l;
    } else {
       lastb2=lastb;
       lastb=b;
#if BE_GFX
      destRAM[(dst_offset&0x7fffff)] = b;
#else
      destRAM[(dst_offset&0x7fffff)^3] = b;
#endif
      //cps3_char_ram_dirty[(dst_offset&0x7fffff)/0x100] = 1;
      //cps3_char_ram_is_dirty = 1;
       return 1;
    }
}
Title: Re: CPS-III driver preview
Post by: iq_132 on January 07, 2008, 08:31:47 AM
i know this, but still not found that stage, not test it, to fix it : (need approve)

Sorry, I hope I didn't sound demanding or anything.  Just trying to help. :S

Anyway, that fixed it. :)
Title: Re: CPS-III driver preview
Post by: OopsWare on January 07, 2008, 08:50:25 AM
Sorry, I hope I didn't sound demanding or anything.  Just trying to help. :S

Anyway, that fixed it. :)
nothing, is me must say thanx iq_132   :p

there still some gfx code need improve
 1. line scroll support in cps3_draw_tilemapsprite_line(); currently is tile scroll ( 16 lines )
    (sfiii's backgroud when super art)
 2. palette when alpha blend,  ( jojo's title in intro , redearth's magic effect ?? )
 3. clearance between tiles when zoom


   
Title: Re: CPS-III driver preview
Post by: DF723 on January 07, 2008, 08:58:41 AM
I posted this image from another thread. Don't know what's up with the "Super Art" background:

(http://img141.imageshack.us/img141/2735/sf3ngsuperartxk3.jpg) (http://imageshack.us)
Title: Re: CPS-III driver preview
Post by: iq_132 on January 07, 2008, 09:02:35 AM
I posted this image from another thread. Don't know what's up with the "Super Art" background:

That's related to the linescroll Oopsware mentioned.
Title: Re: CPS-III driver preview
Post by: DF723 on January 07, 2008, 09:07:49 AM
That's related to the linescroll Oopsware mentioned.

I missed what Oopsware said about this, but I see it now. Thanks  :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 07, 2008, 10:36:49 AM
ThanX for the fix OopsWare!!  Sean stage is going good here too :biggrin:

SeeYaa!
 :biggrin:

Title: Re: CPS-III driver preview
Post by: OopsWare on January 08, 2008, 11:45:54 PM
important fix for line scroll effect of super arts background .

it's my mistake that waste cpu time to render whole tiles.
some code i doesn't observed when i port it .

      //clip.min_x = cliprect->min_x;
      //clip.max_x = cliprect->max_x;
      //clip.min_y = drawline;
      //clip.max_y = drawline;

now it can be full speed without frameskip on a P4 1.x  :biggrin:

Code: [Select]
static void cps3_drawgfxzoom_1(unsigned int code, unsigned int pal, int flipx, int flipy, int x, int y, int drawline)
{
unsigned int * dst = RamScreen;
unsigned char * src = (unsigned char *) RamCRam;
dst += (drawline * 1024 + x);

#if BE_GFX

if ( flipy ) {
src += code * 256 + 16 * (15 - (drawline - y));
if ( flipx ) {
if ( src[ 0] ) dst[15] = src[ 0] | pal;
if ( src[ 1] ) dst[14] = src[ 1] | pal;
if ( src[ 2] ) dst[13] = src[ 2] | pal;
if ( src[ 3] ) dst[12] = src[ 3] | pal;
if ( src[ 4] ) dst[11] = src[ 4] | pal;
if ( src[ 5] ) dst[10] = src[ 5] | pal;
if ( src[ 6] ) dst[ 9] = src[ 6] | pal;
if ( src[ 7] ) dst[ 8] = src[ 7] | pal;
if ( src[ 8] ) dst[ 7] = src[ 8] | pal;
if ( src[ 9] ) dst[ 6] = src[ 9] | pal;
if ( src[10] ) dst[ 5] = src[10] | pal;
if ( src[11] ) dst[ 4] = src[11] | pal;
if ( src[12] ) dst[ 3] = src[12] | pal;
if ( src[13] ) dst[ 2] = src[13] | pal;
if ( src[14] ) dst[ 1] = src[14] | pal;
if ( src[15] ) dst[ 0] = src[15] | pal;
} else {
if ( src[ 0] ) dst[ 0] = src[ 0] | pal;
if ( src[ 1] ) dst[ 1] = src[ 1] | pal;
if ( src[ 2] ) dst[ 2] = src[ 2] | pal;
if ( src[ 3] ) dst[ 3] = src[ 3] | pal;
if ( src[ 4] ) dst[ 4] = src[ 4] | pal;
if ( src[ 5] ) dst[ 5] = src[ 5] | pal;
if ( src[ 6] ) dst[ 6] = src[ 6] | pal;
if ( src[ 7] ) dst[ 7] = src[ 7] | pal;
if ( src[ 8] ) dst[ 8] = src[ 8] | pal;
if ( src[ 9] ) dst[ 9] = src[ 9] | pal;
if ( src[10] ) dst[10] = src[10] | pal;
if ( src[11] ) dst[11] = src[11] | pal;
if ( src[12] ) dst[12] = src[12] | pal;
if ( src[13] ) dst[13] = src[13] | pal;
if ( src[14] ) dst[14] = src[14] | pal;
if ( src[15] ) dst[15] = src[15] | pal;
}
} else {
src += code * 256 + 16 * (drawline - y);
if ( flipx ) {
if ( src[ 0] ) dst[15] = src[ 0] | pal;
if ( src[ 1] ) dst[14] = src[ 1] | pal;
if ( src[ 2] ) dst[13] = src[ 2] | pal;
if ( src[ 3] ) dst[12] = src[ 3] | pal;
if ( src[ 4] ) dst[11] = src[ 4] | pal;
if ( src[ 5] ) dst[10] = src[ 5] | pal;
if ( src[ 6] ) dst[ 9] = src[ 6] | pal;
if ( src[ 7] ) dst[ 8] = src[ 7] | pal;
if ( src[ 8] ) dst[ 7] = src[ 8] | pal;
if ( src[ 9] ) dst[ 6] = src[ 9] | pal;
if ( src[10] ) dst[ 5] = src[10] | pal;
if ( src[11] ) dst[ 4] = src[11] | pal;
if ( src[12] ) dst[ 3] = src[12] | pal;
if ( src[13] ) dst[ 2] = src[13] | pal;
if ( src[14] ) dst[ 1] = src[14] | pal;
if ( src[15] ) dst[ 0] = src[15] | pal;
} else {
if ( src[ 0] ) dst[ 0] = src[ 0] | pal;
if ( src[ 1] ) dst[ 1] = src[ 1] | pal;
if ( src[ 2] ) dst[ 2] = src[ 2] | pal;
if ( src[ 3] ) dst[ 3] = src[ 3] | pal;
if ( src[ 4] ) dst[ 4] = src[ 4] | pal;
if ( src[ 5] ) dst[ 5] = src[ 5] | pal;
if ( src[ 6] ) dst[ 6] = src[ 6] | pal;
if ( src[ 7] ) dst[ 7] = src[ 7] | pal;
if ( src[ 8] ) dst[ 8] = src[ 8] | pal;
if ( src[ 9] ) dst[ 9] = src[ 9] | pal;
if ( src[10] ) dst[10] = src[10] | pal;
if ( src[11] ) dst[11] = src[11] | pal;
if ( src[12] ) dst[12] = src[12] | pal;
if ( src[13] ) dst[13] = src[13] | pal;
if ( src[14] ) dst[14] = src[14] | pal;
if ( src[15] ) dst[15] = src[15] | pal;
}
}

#else

if ( flipy ) {
src += code * 256 + 16 * (15 - (drawline - y));
if ( flipx ) {
if ( src[ 3] ) dst[15] = src[ 3] | pal;
if ( src[ 2] ) dst[14] = src[ 2] | pal;
if ( src[ 1] ) dst[13] = src[ 1] | pal;
if ( src[ 0] ) dst[12] = src[ 0] | pal;
if ( src[ 7] ) dst[11] = src[ 7] | pal;
if ( src[ 6] ) dst[10] = src[ 6] | pal;
if ( src[ 5] ) dst[ 9] = src[ 5] | pal;
if ( src[ 4] ) dst[ 8] = src[ 4] | pal;
if ( src[11] ) dst[ 7] = src[11] | pal;
if ( src[10] ) dst[ 6] = src[10] | pal;
if ( src[ 9] ) dst[ 5] = src[ 9] | pal;
if ( src[ 8] ) dst[ 4] = src[ 8] | pal;
if ( src[15] ) dst[ 3] = src[15] | pal;
if ( src[14] ) dst[ 2] = src[14] | pal;
if ( src[13] ) dst[ 1] = src[13] | pal;
if ( src[12] ) dst[ 0] = src[12] | pal;
} else {
if ( src[ 3] ) dst[ 0] = src[ 3] | pal;
if ( src[ 2] ) dst[ 1] = src[ 2] | pal;
if ( src[ 1] ) dst[ 2] = src[ 1] | pal;
if ( src[ 0] ) dst[ 3] = src[ 0] | pal;
if ( src[ 7] ) dst[ 4] = src[ 7] | pal;
if ( src[ 6] ) dst[ 5] = src[ 6] | pal;
if ( src[ 5] ) dst[ 6] = src[ 5] | pal;
if ( src[ 4] ) dst[ 7] = src[ 4] | pal;
if ( src[11] ) dst[ 8] = src[11] | pal;
if ( src[10] ) dst[ 9] = src[10] | pal;
if ( src[ 9] ) dst[10] = src[ 9] | pal;
if ( src[ 8] ) dst[11] = src[ 8] | pal;
if ( src[15] ) dst[12] = src[15] | pal;
if ( src[14] ) dst[13] = src[14] | pal;
if ( src[13] ) dst[14] = src[13] | pal;
if ( src[12] ) dst[15] = src[12] | pal;
}
} else {
src += code * 256 + 16 * (drawline - y);
if ( flipx ) {
if ( src[ 3] ) dst[15] = src[ 3] | pal;
if ( src[ 2] ) dst[14] = src[ 2] | pal;
if ( src[ 1] ) dst[13] = src[ 1] | pal;
if ( src[ 0] ) dst[12] = src[ 0] | pal;
if ( src[ 7] ) dst[11] = src[ 7] | pal;
if ( src[ 6] ) dst[10] = src[ 6] | pal;
if ( src[ 5] ) dst[ 9] = src[ 5] | pal;
if ( src[ 4] ) dst[ 8] = src[ 4] | pal;
if ( src[11] ) dst[ 7] = src[11] | pal;
if ( src[10] ) dst[ 6] = src[10] | pal;
if ( src[ 9] ) dst[ 5] = src[ 9] | pal;
if ( src[ 8] ) dst[ 4] = src[ 8] | pal;
if ( src[15] ) dst[ 3] = src[15] | pal;
if ( src[14] ) dst[ 2] = src[14] | pal;
if ( src[13] ) dst[ 1] = src[13] | pal;
if ( src[12] ) dst[ 0] = src[12] | pal;
} else {
if ( src[ 3] ) dst[ 0] = src[ 3] | pal;
if ( src[ 2] ) dst[ 1] = src[ 2] | pal;
if ( src[ 1] ) dst[ 2] = src[ 1] | pal;
if ( src[ 0] ) dst[ 3] = src[ 0] | pal;
if ( src[ 7] ) dst[ 4] = src[ 7] | pal;
if ( src[ 6] ) dst[ 5] = src[ 6] | pal;
if ( src[ 5] ) dst[ 6] = src[ 5] | pal;
if ( src[ 4] ) dst[ 7] = src[ 4] | pal;
if ( src[11] ) dst[ 8] = src[11] | pal;
if ( src[10] ) dst[ 9] = src[10] | pal;
if ( src[ 9] ) dst[10] = src[ 9] | pal;
if ( src[ 8] ) dst[11] = src[ 8] | pal;
if ( src[15] ) dst[12] = src[15] | pal;
if ( src[14] ) dst[13] = src[14] | pal;
if ( src[13] ) dst[14] = src[13] | pal;
if ( src[12] ) dst[15] = src[12] | pal;
}
}

#endif
}


static void cps3_draw_tilemapsprite_line(int drawline, unsigned int * regs )
{
.....
cps3_drawgfxzoom_1(tileno,colour,xflip,yflip,(x*16)-scrollx%16,drawline-tilesubline, drawline);
....
}


Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 09, 2008, 12:15:34 AM
ThanX OopsWare!! Im going to test it asap, ThanX like always for your great work on the CPS3 driver for FBA  :biggrin:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 09, 2008, 12:45:39 AM
Working good around here  :cool: (check the attachment)

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: DF723 on January 09, 2008, 02:46:35 PM
Let me post one more image from R13:

(http://img228.imageshack.us/img228/8946/sf3ngworldmapwh4.th.jpg) (http://img228.imageshack.us/my.php?image=sf3ngworldmapwh4.jpg)


Notice the image of South American (and Africa) have the same linescrolling problem as the Super Art background, same goes for the wooden boardwalk in Ryu/Ken's stage. Oopsware, I'm going to post this in case you missed this; if you managed to fixed it already, then good  :biggrin:
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 09, 2008, 03:04:04 PM
Let me post one more image from R13:

(http://img228.imageshack.us/img228/8946/sf3ngworldmapwh4.th.jpg) (http://img228.imageshack.us/my.php?image=sf3ngworldmapwh4.jpg)


Notice the image of South American (and Africa) have the same linescrolling problem as the Super Art background, same goes for the wooden boardwalk in Ryu/Ken's stage. Oopsware, I'm going to post this in case you missed this; if you managed to fixed it already, then good  :biggrin:

The release of R14 is almost finished it will include an extensive list of updates including some new updates that OopsWare sent me via MSN, so stay tuned  :wink:

(Check the Attachment)

SeeYaa!
 :biggrin:

[attachment deleted by admin]
Title: Re: CPS-III driver preview
Post by: StriderSkorpion on January 09, 2008, 08:10:16 PM
Good work on the CPS-3 driver guys. If I had know, I could've helped you out with creating the Red Earth (NOCD) BIOS as I was able to create the newer CPS-3 BIOS files for MAME. It seems Capcom was lazy as all the CPS-3 BIOS files for a game are the same except for the region and/or NOCD byte. On a side note, I wonder if Red Earth/Warzard has a NOCD byte (other than the Asia NOCD region).
Title: Re: CPS-III driver preview
Post by: DF723 on January 12, 2008, 05:14:19 PM
This image is snapped from Build R14:

(http://img530.imageshack.us/img530/3913/sf33rdsryusuperart2ea0.jpg)

Noticed the black line at the lower part of the screen and a very small portion of Alex's stage can still be seen. Is this normal? 
Title: Re: CPS-III driver preview
Post by: OopsWare on January 13, 2008, 10:50:10 AM
here can fix the last line at bottom of screen in DrvDraw();
Quote
   {
      // Clear Screen Buffer
      //memset(RamScreen, 0, 512 * 448 * sizeof(int));
      unsigned int * pscr = RamScreen;
      int clrsz = (cps3_gfx_max_x + 1) * sizeof(int);
      for(int yy = 0; yy<=cps3_gfx_max_y; yy++, pscr += 512*2)
         memset(pscr, 0, clrsz);
   }

but don't know whether it can fix all .
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 13, 2008, 12:02:49 PM
here can fix the last line at bottom of screen in DrvDraw();
but don't know whether it can fix all .

Gonna test it asap  ;p, ThanX OopsWare! ^^

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: OopsWare on January 14, 2008, 12:25:56 AM
small fix , make the linear zoom more precise ...
effect to the intro of jojo sfiii3 redearth, and avatar select stage of redearth

Code: [Select]
if (!flipx) xpos2+=((xsizedraw2+1)/2);
else xpos2-=((xsizedraw2+1)/2);

ypos2+=((ysizedraw2+1)/2);

#if 0
if (!flipx) xpos2-= (xsize2+1)*((16*xinc)>>16);
else  xpos2+= (xsize2)*((16*xinc)>>16);

if (flipy) ypos2-= ysize2*((16*yinc)>>16);
#else
if (!flipx) xpos2-= (((xsize2+1)*16*xinc)>>16);
else  xpos2+= (((xsize2)*16*xinc)>>16);

if (flipy) ypos2-= ((ysize2*16*yinc)>>16);
#endif
{
count = 0;
for (xx=0;xx<xsize2+1;xx++) {
int current_xpos;

#if 0
if (!flipx) current_xpos = (xpos+xpos2+xx*((16*xinc)>>16)  );
else current_xpos = (xpos+xpos2-xx*((16*xinc)>>16));
#else
if (!flipx) current_xpos = (xpos+xpos2+((xx*16*xinc)>>16)  );
else current_xpos = (xpos+xpos2-((xx*16*xinc)>>16));
#endif
//current_xpos +=  rand()&0x3ff;
current_xpos += gscrollx;
current_xpos += 1;
current_xpos &=0x3ff;
if (current_xpos&0x200) current_xpos-=0x400;

for (yy=0;yy<ysize2+1;yy++) {
int current_ypos;
int actualpal;
#if 0
if (flipy) current_ypos = (ypos+ypos2+yy*((16*yinc)>>16));
else current_ypos = (ypos+ypos2-yy*((16*yinc)>>16));
#else
if (flipy) current_ypos = (ypos+ypos2+((yy*16*yinc)>>16));
else current_ypos = (ypos+ypos2-((yy*16*yinc)>>16));
#endif
current_ypos += gscrolly;
current_ypos = 0x3ff-current_ypos;
current_ypos -= 17;
current_ypos &=0x3ff;
Title: Re: CPS-III driver preview
Post by: iq_132 on January 14, 2008, 12:54:28 AM
Excellent :)  It's really nice to see you putting so much work into this driver Oopsware.  You're really making
a good effort to make FBA the best cps3 emulator.
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 14, 2008, 01:19:33 AM
ThanX OopsWare! Im adding the fix right now ^^, gonna test it asap!

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: gine on January 20, 2008, 09:29:10 AM
As for two JoJo games (jojo, jojoba) ,There seems still some alingnment problems in some scenes

1 pixel off (just see black gap in the right side)


http://i31.tinypic.com/1zxta11.jpg


btw, i hope you could submit your CPS3 improvements to MAME as well...

thanks millions


Title: Re: CPS-III driver preview
Post by: KingHanco on January 21, 2008, 04:40:41 AM
Now this is cool to see. Anyone got MAME Team to see this yet?
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 21, 2008, 01:15:51 PM
Now this is cool to see. Anyone got MAME Team to see this yet?

I think MAME team don't like FBA, so probably they haven't seen this. And sincerely I like that FBA has some exclusives about stuff being emulated correctly, since sometimes i see around the net ppl saying that FBA doesn't emulate the systems well.

MAME got a bigger dev team so they should know how to fix a lot of things, if they haven't fixed some CPS3 stuff is because they think MAME is correctly emulating the system and doesn't need much attention right now...probably they start working on the missing stuff like the correct CDROM emulation and other things in some months, when they find CPS3 interesting again  :rolleyes:.

Oh, btw, guys this thread is about the CPS3 driver by OopsWare for FB Alpha emulator, not MAME CPS3 driver development.

SeeYaa!
 :biggrin:

Title: Re: CPS-III driver preview
Post by: 0746 on January 21, 2008, 03:57:24 PM
does http://oopsware.googlepages.com/cps3.zip have Oopsware's latest cps3 work? or am i better off stealing from FBAE?
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 21, 2008, 04:14:10 PM
does http://oopsware.googlepages.com/cps3.zip have Oopsware's latest cps3 work? or am i better off stealing from FBAE?

lol, you're not stealing if you use something from FBA Enhanced, but if you use something and say 'you' did it, well that is stealing, ..i suppose you know what's steaing or not  :wink:.

btw, I think that file doesn't have the latest code he posted here, in my upcoming build of FBA Enhanced all that is added + my updates too, so soon everyone will be able to enjoy from all that when I finish working on it (right now im adding NeoGeo CD and some other things to release R16).

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: 0746 on January 21, 2008, 04:44:43 PM
You have no idea how pro thieves like myself steal stuff and get away with it. We announce were gonna do something after we are done :P
Title: Re: CPS-III driver preview
Post by: KingHanco on January 21, 2008, 06:29:16 PM
CaptainCPS-X that would be Haze not into FBA.

I think R. Belmont saw the snapshots.

"Also, it remains to be seen if these FBA fixes are actual fixes or just bad hacks."
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 21, 2008, 06:48:47 PM
CaptainCPS-X that would be Haze not into FBA.

I think R. Belmont saw the snapshots.

"Also, it remains to be seen if these FBA fixes are actual fixes or just bad hacks."



Are you quoting R.Belmont? or are you quoting yourself?

anyway, OopsWare is not hacking anything xD lol, that's called "emulating" Linear Zoom  :rolleyes:

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: 0746 on January 21, 2008, 06:53:00 PM
btw, is there anything on the driver that should make the game run different at different machines or if it was started at different times?

For example, if I load sfiii3n on fbae and fast forward to the first play demo, sometimes its ibuki vs dudley and sometimes its ibuki vs sean
I mean a little bit of randomness is good for gameplay but online, any bit of randomness will lead to desynchronization.
Title: Re: CPS-III driver preview
Post by: CaptainCPS on January 21, 2008, 07:08:50 PM
@ KingHanco:

To be more specific I'm gonna quote what OopsWare originally wrote:

Quote

small fix , make the linear zoom more precise ...
effect to the intro of jojo sfiii3 redearth, and avatar select stage of redearth



OopsWare himself told me via MSN that he want to make CPS3 "better emulated" in FBA than it currently is in MAME, so that should be enough to make clear FBA is not a "HACK" or whatever you want to call it.

btw, do you know how much MAME make use of "Hacks" to make games work?, if you didn't know why are you talking about FBA hacking games, FBA is a emulator / MAME is a emulator...no big deal. If you prefer MAME for X or Y reason, that's your choice and because of that you will have to wait until a MAME devs work on the Linear Zoom fixes (with MAME dev I refer to anybody that is "developing" an Official / Unofficial MAME build, etc...)

And if we gonna talk about hacking, when you have time, check out the comments included in any emulator source code you want, i bet you that most of the emulators (if not all) out there "have to" hack something (BIOS / ROMs / IRQs / Watchdogs / CPUs / Memory Reads & Writes ) to "emulate" X or Y system / hardware.

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: DF723 on January 24, 2008, 10:47:40 AM
There's a bug in 3rdS Ken Vs. Makoto neutral throw bug : If Ken defeats Makoto with his neutral throw (i.e. knee bash), the game will reset (or crash for that matters).

On R15, it crashes. On FBA Shuffle, the bug seems non-existent. 
Title: FBA SOUND BUG
Post by: richardri on January 25, 2008, 03:19:10 AM
when I play sfiii3n , the sound channel is reversed , is it a bug ?
Title: Re: CPS-III driver preview
Post by: 0746 on February 01, 2008, 12:23:32 AM
Had a question to Oopsware about cps3RomWriteLong
I see that its writing to RomGame and RomGame_D
Is there any cps3 games in particular that needs it?
Title: Re: CPS-III driver preview
Post by: OopsWare on February 01, 2008, 07:52:35 AM
most memory region in cps3 is EEPROM , when normal bootup , bios will check this and load data
from CD-ROM into them. but NCD game in fastboot mode , no data will write to EEPROM.
Title: street fighter III 3rd impact: very loud volume level
Post by: kmuland on February 03, 2008, 12:59:55 PM
This is a bug report for the fantastic  Final burn Alpha ;-) (I love the CPS3 support)

The volume level in Street Fighter III 3rd impact is very high,,, so there are noticeable sound artifacts (clips/cracks into the speaker) when you finish the combat and other sound effects into the game.

Volume level in SFIII 1st and SFIII 2nd its OK, but in SFIII3rd, the  volume level needs to be lowered down for avoid clipping.
Title: Re: CPS-III driver preview
Post by: iq_132 on April 07, 2008, 02:52:25 PM
Sometimes I really make myself happy. ^^

I've added some hack-tackular chd support to fba. ^^
Title: Re: CPS-III driver preview
Post by: Lemonzest on April 07, 2008, 03:17:55 PM
CHD images working in FBA? you got the SCSI interface working, does that mean for chd versions we have to wait while it writes nvram?

sorry for all the questions, good work :D
Title: Re: CPS-III driver preview
Post by: iq_132 on April 07, 2008, 07:46:13 PM
I definitely didn't add the SCSI interface lol.  I just hacked in some calls to MAME's chdman, wrote a bare-bones iso reading routine, and started a scsi simulation (just to make warzard work... it's not quite there yet, but it's a start).

As for the wait, no.  Since i'm not properly emulating the scsi, you will only have to wait for the chd to decompress (which takes maybe 10-25 seconds).
Title: Re: CPS-III driver preview
Post by: iq_132 on September 24, 2008, 12:50:56 PM
Added support for layer disabling.

Note that you do have to advance a frame or so for it to take effect.
Title: Re: CPS-III driver preview
Post by: CaptainCPS on September 24, 2008, 02:00:27 PM
Added support for layer disabling.

Note that you do have to advance a frame or so for it to take effect.

Nice IQ! ^^ I remember you were working on something like that some time back...

btw, try "VidPaint(2);" instead of frame advance to redraw the screen, I don't know how you wrote the code but this should go after disabling the layers, for example:

Quote
ToggleCPS3Layers();
...
VidPaint(2); // redraw after  enabling / disabling any CPS-III layer

the code is not driver specific or something like that, so it should redraw the screen no matter what game is emulated, what I don't remember is if it redraws GDI only or the emulated frame as well, anyway let me know man  ;p

EDIT: LOL, I didn't notice you posted the cps_run.cpp (attachments font should be a little bigger for high resolutions xD)

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: iq_132 on September 24, 2008, 02:50:15 PM
I used FBA's built-in layer disabling code -- search for nBurnLayer.
It seems that when you check/uncheck something it runs a frame of emulation, which would make unchecking a layer and then checking it actually show the unchecked (disabled) frame if you do not advance the frame. The next frame would show it with the layer enabled again.

I'm thinking that the shot factory should use BurnDrvRedraw() instead of BurnDrvFrame() (if that is, indeed, what it uses...).
Title: Re: CPS-III driver preview
Post by: CaptainCPS on September 24, 2008, 03:30:48 PM
I used FBA's built-in layer disabling code -- search for nBurnLayer.
It seems that when you check/uncheck something it runs a frame of emulation, which would make unchecking a layer and then checking it actually show the unchecked (disabled) frame if you do not advance the frame. The next frame would show it with the layer enabled again.

I'm thinking that the shot factory should use BurnDrvRedraw() instead of BurnDrvFrame() (if that is, indeed, what it uses...).

Ohhh! I see I thought you added a menu item for disabling CPS3 layers or a specific function, but you implemented it so it would adjust to the Shot factory core. For a long time I have been thinking that the shot factory should work a little bit different, so it can be of more use ^^, or I should say, more user-friendly  :smilie:.

When I find some free time I will try using your code with a old modification I did to my FBA Enhanced that allowed to enable / disable layers from the Video menu (including some shortcut keys too), that way I can determine what could be the proper way to redraw the screen, since the module doesn't have to do anything with the Shot factory ^^.

SeeYaa!
 :biggrin:
Title: Re: CPS-III driver preview
Post by: Pasky on November 27, 2009, 01:27:49 PM
I'm sorry to revive an old thread, but I sent you a PM IQ regarding this issue since, to this day, the official build still has no support for a CPS3 shot factory.  Thanks.
Title: Re: CPS-III driver preview
Post by: iq_132 on November 27, 2009, 06:50:23 PM
Wow. I'm a massive idiot. I posted the wrong file and just noticed today. lol
I'll go back and see what I can do.
Title: Re: CPS-III driver preview
Post by: Pasky on November 28, 2009, 06:18:15 AM
Haha, I was going crazy trying to figure out why it didn't work.  I overlooked that source file and noticed no calls or anything related to the shop factory and was trying to figure it out.

Hope you post the real deal soon :).  Thanks.
Title: Re: CPS-III driver preview
Post by: iq_132 on November 30, 2009, 05:20:13 AM
Haha, I was going crazy trying to figure out why it didn't work.  I overlooked that source file and noticed no calls or anything related to the shop factory and was trying to figure it out.

Hope you post the real deal soon :).  Thanks.

Ok, lol. I completely re-wrote the changes.  You can find the stuff I changed by looking for "layer disable" if you're terribly interested, otherwise you should just be able to paste this over your standard 0.2.97.07 cps3run.cpp.