Old Regen pages

AamirM's Regen forum

Moderator: AamirM

Locked
Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy » Fri Jun 13, 2008 5:56 pm

King Of Chaos wrote:Make sure it's Mac OSX hacked for PCs (OSX86) or else it won't work, as Macs have special hardware needed to run OSX.
Well, it's not really needed as OSX86 shows. Apple just puts it there to try to force people to buy their Macs instead of an inexpensive generic PC.
:D

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Fri Jun 13, 2008 5:56 pm

Hi,

It Kalyway 10.5.2. It was recommended to me.

EDIT:
Hi Chilly Willy! Just wanted to let you know that linux port of Regen with Windows-like GUI and every feature of windows version will be available hopefully in three weeks.

stay safe,

AamirM

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy » Fri Jun 13, 2008 9:27 pm

AamirM wrote: Hi Chilly Willy! Just wanted to let you know that linux port of Regen with Windows-like GUI and every feature of windows version will be available hopefully in three weeks.
Great news! Looking forward to it. I love playing these old SEGA games, but the linux emus tend to lag the Windows ones a bit. Oh well. I mainly use PicoDrive on my PSP.

King Of Chaos
Very interested
Posts: 273
Joined: Fri Feb 29, 2008 8:12 pm
Location: United States

Post by King Of Chaos » Sat Jun 14, 2008 4:37 pm

AamirM wrote:It Kalyway 10.5.2. It was recommended to me.
Excellent choice. 8) Should have a working OSx86 install soon. :D

notaz
Very interested
Posts: 193
Joined: Mon Feb 04, 2008 11:58 pm
Location: Lithuania

Post by notaz » Mon Jun 16, 2008 12:42 pm

Chilly Willy wrote: I mainly use PicoDrive on my PSP.
Nice to hear that :) I've succeeded improving performance ~5-10% for all games, just need to do some more polishing before release.

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy » Mon Jun 16, 2008 3:15 pm

notaz wrote:
Chilly Willy wrote: I mainly use PicoDrive on my PSP.
Nice to hear that :) I've succeeded improving performance ~5-10% for all games, just need to do some more polishing before release.
Even better news! :lol:

I think my favorites on PicoDrive on the PSP are Earthworm Jim: Special Edition (the CD), and Sonic & Knuckles + Sonic 3. Those are really great on the PSP, and rather long fun for those times you're stuck at some relative's house and they'd rather watch something you don't care for.

HardWareMan
Very interested
Posts: 745
Joined: Sat Dec 15, 2007 7:49 am
Location: Kazakhstan, Pavlodar

Post by HardWareMan » Sat Jun 21, 2008 6:28 pm

Regen 0.85 in PAL mode (Europe) sound repeats. It's like broken CD. In NTSC mode all OK.

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Mon Jun 30, 2008 8:33 am

Hi,

Linux port has been uploaded. I don't even have enough time to to write some important stuff about it and respond to other posts :( . Hopefully I will get some free time soon. Comments on port are welcomed.

stay safe,

AamirM

Chilly Willy
Very interested
Posts: 2984
Joined: Fri Aug 17, 2007 9:33 pm

Post by Chilly Willy » Mon Jun 30, 2008 5:50 pm

Linux version works well. :D

I don't notice much difference with vsync. I'll have to try a few more settings to see how it goes.

Nice work!

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Wed Jul 02, 2008 4:18 pm

Hi,

Good to hear that it is working fine. Vsync support is not very good that is why I listed it experimental. I need to find some other way for vsync to work.

@HardWareMan

Tell me the game you are running, your hardware specs and the settings of regen.

stay safe,

AamirM

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Sat Jul 05, 2008 5:38 pm

Hi,

Is the speed of linux port ok? I think its a bit slow. But that may just be SDL.

stay safe,

AamirM

HardWareMan
Very interested
Posts: 745
Joined: Sat Dec 15, 2007 7:49 am
Location: Kazakhstan, Pavlodar

Post by HardWareMan » Tue Jul 08, 2008 2:37 pm

AamirM wrote:@HardWareMan
Tell me the game you are running, your hardware specs and the settings of regen.
The game is does not matter. Sample sound can take here. Before silence NTSC, after - PAL. P3 and P4 versions make same result. My hardware see below.
Image

* * *

Right now I completed the update drivers for soundcard from soundblaster.com and motherboard chipset from intel.com. My videocard are already have latest drivers. This glitch is still present.

AamirM
Very interested
Posts: 472
Joined: Mon Feb 18, 2008 8:23 am
Contact:

Post by AamirM » Tue Jul 08, 2008 7:27 pm

Hi,

You need to reload (not reset) the game after you change the region to europe (PAL). Then it will run fine.

stay safe,

AamirM

Eke
Very interested
Posts: 884
Joined: Wed Feb 28, 2007 2:57 pm
Contact:

Post by Eke » Thu Jul 24, 2008 4:04 pm

Stef wrote:
AamirM wrote:
notaz wrote: I can confirm original Musashi handles all 3 cases correctly (i.e. the way docs say).
Don't know how you got this idea, but I've looked at this too, and it surely doesn't do trace. In fact, I haven't encountered any game which would do that.
Hi,

Yes, no trace. I was going in the wrong direction. Still haven't figured out the correct solution. I have very less time these days.

stay safe,

AamirM
Don't search on 68000 core, problem is timing and specially interrupts timings. I spent *many* time with them on Gens. I adjusted them probably more than hundred time, a single cycle can fix more 1 or 2 games but break 3 others :-/ Today i know my timings are almost completly wrong, i had just luck with all my adjustements and fudges...

I think I figured out this one (Pacman 2's pause bug):

it is indeed a timing issue, more precisely a VINT timing issue:

when you hit START button, the following subroutine ($50158 if you want to look in the disassembled code) will execute, approx. at the middle of line 237.
This routine does the followiing:
1/ request Z80 bus and cancel Z80 reset
2/ fill up ZRAM from $A01000 to $A01FFF
3/ modify Z80 data from $A00000 to $A04AC (Z80 program ?)
4/ reset Z80, release Z80 BUS then cancel Z80 reset (Z80 restarts)
5/ reset $FFC000-$FFC4AA WRAM area (datas used later)
6/ once it is done, set $FFC016-$FFC018 with a particular ROM address (used later in the program)
This routines takes quite a long time (quite a whole frame) and will obviously be interrupted by VINT on line 224 of the next frame.

When this happens, 2 issues could occurs:


(a) if VINT triggers between part 5) and part 6), sound issues happens: indeed, the ROM address stored in $FFC016-$FFC018 is read by VINT for later use. If this address is still 0, bad data wil be read later, this will end up in messing some other flags, and finally shut off sound output (one of the messed flag is polled by the z80 in his sound routine)

(b) if VINT triggers between part 1) and part 4), another problem occurs. Indeed, VINT also want to access Z80 bus to write into ZRAM and so, will request access to the bus. Once it's done, it will (as usual) release the bus ... but when the main routine returns to his execution, all further Z80 RAM writes will failed since the bus has been released by the VINT callback.
This issue is described in one of the Sega Tech Bulletins, where they advised to disabled interrupts before accessing Z80 from the main loop, which this game obviously does not. Strangely, this ends up in a corrupted Z80 RAM but did NOT shut of sound output as above.

Now:

. issue (a) is what happen in all emulators when using common timings.

. if, like AamirM originally did, you increase the number of cycles used by the dbf instruction , the several write loops inside the subroutine will be delayed , VINT will be triggered sooner during the execution and issue (b) will occur. However, as explained, this does not shut off sound output as in issue (a), giving the impression you fixed the problem, which you haven't. Anyway, the dbf instruction timing are correctly handled by the 68000 core so this is not the correct solution.

. modifying the timing occurence of VINT on line 224 by some cycles does not work though, because VINT will still trigger during WRAM initialization (the loop takes approx. 0x4AA / 4 * 22 cycles = 6556 cyles = 13 lines to fully initialize the $FFC000-$FFC4AA area)

.a viable solution would be that the subroutine started a few lines earlier but I didn't find any way to do that. It starts at line 237 whatever you do with instruction timings.



The solution that I found is to add one cycle delay each time the 68000 access the Z80 RAM.

Indeed, I imagined that there could be some kind of bus latency in this case since this is not a "direct" access (z80 bus data is "copied" somehow on 68k data bus through the IO chip)...

I don't know if it is correct from a hardware point of view (please tell me if i'm wrong) but this makes the timings perfecly fit together, Z80 ram is not corrupted and sound output does not stop after pause.


quite a long post for a small problem but this bugged me for some time and found better to write everything down here ;)

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Post by TmEE co.(TM) » Thu Jul 24, 2008 8:22 pm

All emulators play samples a little bit faster than real hardware so there are some Z80 to 68K access limitations... I have no idea if there's any the other way. I imagine there are.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

Locked