Page 13 of 37

Posted: Thu Apr 10, 2008 6:12 pm
by King Of Chaos
Yep, I can confirm this happens on Vista too.

Posted: Thu Apr 10, 2008 6:12 pm
by AamirM
Hi,

I'll look into this problem. Although I also have Vista but I rarely use it (too slow). The hard thing is that all my dev tools are installed on XP and I cannot immediatly make modifications and test the results.

stay safe,

AamirM

Posted: Thu Apr 10, 2008 6:40 pm
by Sik
AamirM wrote:
Sik wrote:EDIT: I've just made a program that crashes on Regen. It works on Fusion... and nothing else D: It used to work in Regen before through, so no idea what's up. Trust me, I don't do anything strange :/
http://srb2town.sepwich.com/junk/nfight.bin
Somebody confirm if this works on the real hardware anyways.
This program is exploiting a bug in the new Musashi version. Thanks for it. Now I will be able to find this bug easily :) (I hope) . It will work until version 0.5 after which the musashi core was updated. The newer one has been giving some problems and I am thinking of putting the old one back in.
Can I know what do I do that my games always require so much accuracy? x_X

Also, found another game that doesn't work in Regen: Ya-Se Chuan Shuo (Ch). It works in Gens but it doesn't in Fusion. Regen manages to get a bit further than Fusion, then it shuts down.

EDIT: also, what bug is it exactly? OK, I guess I shouldn't bother about it if it works in the real hardware, but anyways.

Posted: Thu Apr 10, 2008 9:40 pm
by Eke
Ya-se-Chuan use extra cart hardware, it will lock at some point (during intro or later) if the values returned from $400000-$400006 (even addresses only) are incorrect (emus generally return 0x00 or 0xff)

I once guessed the expected values by disassembling and reversing the Z80 code (those addresses are acceeded through Z bank) and put my analysis on Gens forum but it seems dead by now

with the correct values, you also have good DAC samples

EDIT: I am also interested in the musashi bug, could you developp ? ;-)

Posted: Thu Apr 10, 2008 10:03 pm
by Captain Boomerang
AamirM wrote:Hi,

I'll look into this problem. Although I also have Vista but I rarely use it (too slow). The hard thing is that all my dev tools are installed on XP and I cannot immediatly make modifications and test the results.

stay safe,

AamirM
Hi,

Thank you very much!
AamirM wrote:
King Of Chaos wrote:I was told the difference between Kega and Regen's PAR abilities right now is that Regen is doing word writes all the time. If the value to write is smaller than 0x100, it is a byte write, if it's larger, it's a word write. That's why some of them don't work (and why some do). =P

What actually bugs me most in general is the fact there's no documentation on how either the Game Genie or AR/PAR/PAR2 works technically.
Regen does not actually do any writes. It just detects a certain address and returns the data. And they are detected for both word and byte writes.
That's a modifed read actually. You have to do word and byte writes for it to be correct and working for the pro action replay. Looking at the pro action replay codes he reports as non-working I can see they should be byte writes and NOT word writes. Regen is trying to do pro action replay word writes for all codes when it shouldn't. Some codes need to be byte writes, like the ones that King Of Chaos has to modify to work correctly in Regen. Remember, If the value to write is < 0x100, then it's a byte write not a word write like it's doing now. Trust me it matters and it needs to function this way to be correct and accurate.

To be perfectly clear, Regen is doing word writes for all pro action replay codes, when the non-working codes need to be byte writes. It absolutely has to be this way or those pro action replay codes won't ever work in Regen without modification. I'm sure that if you can hunt this down Regen will do pro action replay like Kega and the real hardware. I suppose if you need more information about this one of the other knowledgable users here will explain it better than I can. Somebody else test this out and see if my results are valid, thanks a lot!

-Adam

Posted: Thu Apr 10, 2008 10:35 pm
by King Of Chaos
Eke wrote:Ya-se-Chuan use extra cart hardware, it will lock at some point (during intro or later) if the values returned from $400000-$400006 (even addresses only) are incorrect (emus generally return 0x00 or 0xff)

I once guessed the expected values by disassembling and reversing the Z80 code (those addresses are acceeded through Z bank) and put my analysis on Gens forum but it seems dead by now

with the correct values, you also have good DAC samples

EDIT: I am also interested in the musashi bug, could you developp ? ;-)
The Sega Emulation Forums? It's alive again. =P

I'll add the game to the non working list, with a note saying it requires extra cart hardware.

Posted: Fri Apr 11, 2008 12:09 am
by TulioAdriano
AamirM wrote:Hi,

Yes, I forgot to mention the game :oops: . Sonic 3D selection screen (where you select Game Start, Options etc..). It is very intesive on the VDP.

EDIT: SuperHQ turned on and no Stretch.

EDIT2: I get ~376 fps and my specs are Pentium M 1.7 GHz, 512 MB, onboard Intel 915 GM GFX card.

stay safe,

AamirM

Result: ~950 FPS on focus. ~915 out of focus. Fullscreen results are ~750 FPS
Other games are around 1070 FPS (The position of the message puts the end of the value out of the screen)

Note: It took a while to get this to go above 60 FPS because VSync was enabled. Disabling VSync then all went crazy fast.

Processor: Intel Core2 Quad Extreme 3.0 GHz (QX9650)
RAM: 4GB DDR3 (1333 MHz)
Video Card: GeForce 8600 GTS 512 MB DDR3
OS: Windows XP Professional x64

Feel free to request more tests! :)

Soon I'll put it to test on the ULTIMATE GAME EVER: Pier Solar ;)

Seeya.
Tulio

Posted: Fri Apr 11, 2008 12:45 am
by DarkSerge
Nice emulator, I like it...Keep up the good work...

Anyways I had a few idea's that you might want to consider adding to the emulator. They are:

-a cheat finder to find new cheats...a cheat finder similar to snes9x's would be nice..

-more debugging options for the debugger...like breakpoint on read/write/execute and trace CPU addresses to a window or a text file. This could be useful for homebrew makers and/or game genie hackers...

and thats all the idea's for now...

Posted: Fri Apr 11, 2008 6:31 am
by AamirM
Hi,
Eke wrote:Ya-se-Chuan use extra cart hardware, it will lock at some point (during intro or later) if the values returned from $400000-$400006 (even addresses only) are incorrect (emus generally return 0x00 or 0xff)

I once guessed the expected values by disassembling and reversing the Z80 code (those addresses are acceeded through Z bank) and put my analysis on Gens forum but it seems dead by now
Thanks for the info. Just saw that Gens returns 0 on unmapped reads (in Z80) while Regen will return 0xFF that could be it. I'll check that out.
Eke wrote:EDIT: I am also interested in the musashi bug, could you developp ?
I was quick to think. It is not a bug in musashi but some other thing (maybe some compiler optimization or a fault of my own). This is the most high priority thing on my list right now. See Surging Aura too. It will get stuck but opening-closing the debugger (F5 then ESC) will make the game advance normally :? .
DarkSerge wrote:-a cheat finder to find new cheats...a cheat finder similar to snes9x's would be nice..

-more debugging options for the debugger...like breakpoint on read/write/execute and trace CPU addresses to a window or a text file. This could be useful for homebrew makers and/or game genie hackers...
You'll be glad to know that I am working on these things already. They will soon be available.

@ Captain Boomerang

Thanks. I actually tried what you said some time ago but that too didn't work. Maybe I was doing something wrong. I'll try again.

@ People with Core2 or similar processors

I can put a special build for these processors if you want. It contains some OpenMP directives to do parallization. I want to see if that build performs any faster than the P4 version.

stay safe,

AamirM

Posted: Fri Apr 11, 2008 7:37 am
by AamirM
Hi,
Sik wrote:Can I know what do I do that my games always require so much accuracy? x_X
Well, I don't like to deliver bad news but your program will not run on a real Genesis. That is because your program is generating an address exception. If I turn it off the address exception emulation then it will run just fine. So there is just another example that Regen is more accurate than Kega :D . I also found out the problems with Surging Aura too. It won't run because of a timing issue (need to execute 489 cycles instead of 488, I don't think this will have any impact on anything but I'll check that some other time just in case).

stay safe,

AamirM

Posted: Fri Apr 11, 2008 2:32 pm
by TulioAdriano
AamirM wrote:Hi,
@ People with Core2 or similar processors

I can put a special build for these processors if you want. It contains some OpenMP directives to do parallization. I want to see if that build performs any faster than the P4 version.

stay safe,

AamirM
That's nice, I'd like to try that. Also if possible, you can try compile a 64 bit code, should run even faster on 64 bit OS such as the one I am using.

My processor has 4 cores, so feel free to explore these parallel processing features as much as you want.

If possible, please move the FPS message to the left a bit. I can't see the full number on the screen.

Btw... I did some preliminary test with PIER SOLAR on your emulator.

The SRAM initialization routine failed. On Gens and Fusion it works. On the real machine it fails also, so I hint it it is accurate...

Seeya.
Tulio

Posted: Fri Apr 11, 2008 3:01 pm
by King Of Chaos
Eke, here's your post on the SeF about Ya-Se Chuan Shuo. :)

Posted: Fri Apr 11, 2008 5:01 pm
by AamirM
Hi,
TulioAdriano wrote:That's nice, I'd like to try that. Also if possible, you can try compile a 64 bit code, should run even faster on 64 bit OS such as the one I am using.
My processor has 4 cores, so feel free to explore these parallel processing features as much as you want.
Once my exams are finished, I'll upload it.
TulioAdriano wrote:If possible, please move the FPS message to the left a bit. I can't see the full number on the screen.
I'll fix that.
TulioAdriano wrote:Btw... I did some preliminary test with PIER SOLAR on your emulator.

The SRAM initialization routine failed. On Gens and Fusion it works. On the real machine it fails also, so I hint it it is accurate...
Well, there goes another example of Regen being more accurate :) .

stay safe,

AamirM

Posted: Fri Apr 11, 2008 5:03 pm
by Sik
AamirM wrote:Well, I don't like to deliver bad news but your program will not run on a real Genesis. That is because your program is generating an address exception. If I turn it off the address exception emulation then it will run just fine. So there is just another example that Regen is more accurate than Kega :D . I also found out the problems with Surging Aura too. It won't run because of a timing issue (need to execute 489 cycles instead of 488, I don't think this will have any impact on anything but I'll check that some other time just in case).
Good, now, tell me WHERE is it trying to access...

http://srb2town.sepwich.com/junk/wtf.png
WTF... When did I write that code?

EDIT: er, warning, if it does address exception when jumping, it's OK, that part of the code isn't working as it should :P Anyways somebody tell me how did that code I posted above appear... >_>

Posted: Fri Apr 11, 2008 5:06 pm
by TmEE co.(TM)
Hey AamirM,

FM sound is nice, but PCM/DAC sucks... you can use my sound demos and Fusion to compare. Only Fusion here has correct PCM/DAC emulation.