Regen for Linux and Windows

Announce new emulators, discuss which games run best under each emulator, and much much more.

Moderator: General Mods

Locked
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Ah, I hate to double post, but looks like Kega and Regen aren't going to be the only accurate emulators for long. Nemesis is close to releasing Exodus, and here's some information about it... Yes, I know the information is over a year old, but still...
What started out as a "what if" over the weekend is rapidly turing into a full blown emulator for the Mega Drive. Keep in mind that this is early stages, and it may end up going nowhere, but I want to hear everyone's gripes about current emulators such as Gens and Kega, and any requests for features you would like to see in a new emulator. In particular, I want to hear what current features you rely on, and what features you have always wanted, but aren't provided in a given emulator. Note that at this stage, I'm talking about the base Mega Drive only, not 32x or MegaCD support.

Here's a list of the features my emulator must support for me to be happy with it:
-Breakpoints on code execution, preferably with support for conditions
-Breakpoints on memory read/write (watchpoints)
-PAR/Game Genie support
-Savestates
-Full debuggers for all processors, including the ability to modify any and all data owned by them while execution is paused.

Here are my goals for the overall design of the emulator:
-Accuracy is paramount. The emulator should accurately emulate all behaviour of the original system which has an impact on the execution of code, as well as any inputs or outputs to the system as a whole. Timings must be respected, to allow accurate emulation of the interactions between elements in the system.
-Structure is extremely important. The sourcecode must be structured in a logical, flexible, and intuitive fashion, which makes the emulator highly flexible, as well as easy to understand and modify. To this end, no assembly code will be used, and the entire emulator will be written in a high-level OO fashion.
-Speed is nice, but not vital. Computers nowadays are fast enough to emulate the Mega Drive in real time without the same degree of optimization that was required when emulators like Gens and Genecyst were first written. At no point will structure or accuracy be compromised in favour of speed.

Key things featured:

M68000:
-All M68000 opcodes
-All M68000 states, including trace emulation
-All M68000 exceptions

VDP:
-All DMA modes
-All layers
-Full support for layer/sprite priority
-Support for horizontal and vertical scrolling

Here's a list of some key things Exodus doesn't support yet:
VDP:
-Shadow/Highlight mode
-Interlace modes
-Mode 1/2/3/4 support

Sound:
-Everything
He's also planning to release the source too, might be interesting to look at once it's out. :)
DancemasterGlenn
Veteran
Posts: 637
Joined: Sat Apr 21, 2007 8:05 pm

Post by DancemasterGlenn »

AamirM wrote:Yes linux version is under progress. I could upload a beta of it if you want. But the sound has problems. BTW, What distro are you using?
Wow, really? You're a machine! If you'd like to upload a beta feel free, but obviously there's no rush. I can give you feedback if you'd like. I'm using ubuntu gutsy.
I bring the trouble.
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Ok, I've been playing with Regen's Cheat function, and I have to say, I'm quite impressed. I can't import PAR codes over (I've tried) but I think where you're heading with the idea is absolutely perfect! I really like the interface once you've imported a .dat file into Regen to use, and how it easily cuts down on multiple line codes. Now, I have ideas to improve this and to incorporate Pro Action Replay into the mix as well.

-Support for Pro Action Replay in the .dat files (it's a major must for me, since I can't just convert PAR to GG, since the majority of the codes don't work that way). I can then manually convert over all cheats from Kega over... Well, I think I'll do that for selected games ahead of time, just in case. :)
-Support for Hex codes converted from Game Genie codes (e.g. 000344:6004 being the Hex converted GG Master Code for Sonic 2).
-Automatically save and load Cheats for games (based upon the naming scheme of the ROMs, like Kega).
-Automatically remember enabled cheats, and enable them upon reload of the ROM.
-Automatically have unselected codes as "Off".
-Editable chat window interface. Meaning the ability to add/delete selected cheats (New Cheat & Delete Cheat buttons), and edit (Edit Cheat). This would allow for a lot of people to import a bunch of their codes in, I know I would, and even post my entire .DAT database of codes. Also the ability to move highlighted cheats up and down on the main list.
-Resizable Cheat window, with the 2 columns resizable as well.
-Cheat window remembers it's position when opening it.
-Add a hotkey for cheats (Alt+G perhaps?).

Ok, this request is random, but can you add a hotkey for the Turbo Mode feature too? Backspace would suffice in that case. :)

Thanks a lot!!! The more I play with this emulator, the more I absolutely LOVE it. :)

Edit: Hahaha, look at this. None of the codes work since they're PAR/Hex codes, but you get the idea...

Image

Doesn't that just look perfect? 8)

Edit 2: Wow, the game (S3&K) with the most codes in my library looks all nice and tidy now. :)

Image
neo_bahamut1985
-Burninated-
Posts: 871
Joined: Mon Sep 10, 2007 11:33 pm
Location: Unspecified

Post by neo_bahamut1985 »

"@ neo_bahamut1985

Added it to my todo list. Thanks."


Hey, thanks for adding that to your to do list, AamirM!
俺はテメエの倒す男だ! 宜しく! お前はもう死んでいる...
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

I have a question. Does this emulator have the 4MB game size limit? I tried to load up the 10MB Ultimate Mortal Kombat Trilogy, and it crashes the emulator. I suspect games over the 4MB aren't supported. =P
Deathlike2
ZSNES Developer
ZSNES Developer
Posts: 6747
Joined: Tue Dec 28, 2004 6:47 am

Post by Deathlike2 »

King Of Chaos wrote:I have a question. Does this emulator have the 4MB game size limit? I tried to load up the 10MB Ultimate Mortal Kombat Trilogy, and it crashes the emulator. I suspect games over the 4MB aren't supported. =P
AFAIK, it was part of one big hack for one emu only.
Continuing [url=http://slickproductions.org/forum/index.php?board=13.0]FF4[/url] Research...
deltaphc
New Member
Posts: 9
Joined: Mon Feb 25, 2008 5:21 am

Post by deltaphc »

Very promising emulator. I like it. :)

I'm surprised no one asked this yet (or perhaps I missed it), but are there any plans for 32X and Sega/Mega CD emulation? Regen would feel a lot more "complete" in my eyes if this happened.

And, is it necessary to have builds optimized for P3/P4/Athlon? Most emulators these days just provide one generic binary per platform/OS.

Also, a bug in 0.41: The title sequence in Insector X runs way too quickly, at least in the P4 build of Regen.
Nightcrawler
Romhacking God
Posts: 922
Joined: Wed Jul 28, 2004 11:27 pm
Contact:

Post by Nightcrawler »

I gave this emulator a try over the weekend. For some reason I got a bunch of skipping and stuttering on both .41 and the previous version posted. It wasn't really playable. I've got a 2.5Ghz AMD X2 and Geforce 7800 GT. No problems with any other emulator. Any ideas?
[url=http://transcorp.romhacking.net]TransCorp[/url] - Home of the Dual Orb 2, Cho Mahou Tairyku Wozz, and Emerald Dragon SFC/SNES translations.
[url=http://www.romhacking.net]ROMhacking.net[/url] - The central hub of the ROM hacking community.
AamirM
Regen Developer
Regen Developer
Posts: 533
Joined: Sun Feb 17, 2008 8:01 am
Contact:

Post by AamirM »

Nightcrawler wrote:I gave this emulator a try over the weekend. For some reason I got a bunch of skipping and stuttering on both .41 and the previous version posted. It wasn't really playable. I've got a 2.5Ghz AMD X2 and Geforce 7800 GT. No problems with any other emulator. Any ideas?
Hi,

Stange. What CPU build did you use? It may be the multithreading code.
deltahpc wrote:Very promising emulator. I like it.

I'm surprised no one asked this yet (or perhaps I missed it), but are there any plans for 32X and Sega/Mega CD emulation? Regen would feel a lot more "complete" in my eyes if this happened.

And, is it necessary to have builds optimized for P3/P4/Athlon? Most emulators these days just provide one generic binary per platform/OS.

Also, a bug in 0.41: The title sequence in Insector X runs way too quickly, at least in the P4 build of Regen.
Thanks for liking it :D .

I do want to add 32X and SegaCD but I don't have those units and they are not available here anymore :( . It is certainly possible to write an emulator without having them but that would decrease accuracy since I won't be able to carry out some of my tests on them.

Well from now on I will only upload Pentium3(also compatible with Athlon) and Pentium 4 builds. I do this because the Pentium 4 build runs much more faster, when running on P4 or up, than the P3 version.

Ah, thanks for reporting it. That also happens with another game. This is because of emulator not supporting DMA timings currently.
King of Chaos wrote:I have a question. Does this emulator have the 4MB game size limit? I tried to load up the 10MB Ultimate Mortal Kombat Trilogy, and it crashes the emulator. I suspect games over the 4MB aren't supported. =P
No it doesn't :wink: . Megadrive could only address 4MB of address space so I think it uses some bank switching. AFAIK, super street fighter is the largest MD game.

Also, thanks for those cheats suggestions. But some of them may not be possible(read right). I'll post in some details later.

stay safe,

AamirM
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Yep, Super Street Fighter 2 is 5MB and does use bank switching, making it the biggest Genesis game out there. :) Thanks very much kind sir. :)
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

King Of Chaos wrote:ImageImage
Maybe the 16x16 could use some bright pixels / more shading? Looks a bit too dark IMHO. :wink:
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Image

How's this?
FirebrandX
Trooper
Posts: 376
Joined: Tue Apr 19, 2005 11:08 pm
Location: DFW area, TX USA
Contact:

Post by FirebrandX »

AamirM wrote:
Can't be the fastest and most accurate I'm afraid.
Well, Kega has done both. As I said above, the emulator could have been a little bit more accurate but that would sacrifice speed very heavily. I am upto a point where I am rewriting some parts in asm in order to compensate for the accuracy gains.
Kega does have some accuracy issues. When you play King's Bounty, the in-game music is messed up compared to the real cart.
creaothceann
Seen it all
Posts: 2302
Joined: Mon Jan 03, 2005 5:04 pm
Location: Germany
Contact:

Post by creaothceann »

King Of Chaos wrote:
ImageImage
Image

Mmmh, still not enough contrast. Here's my try - it uses more color gradients:

Image

Maybe the black vertical lines going down left and right could be removed to show more contrast (they're not nearly as thick in the source image) ...
vSNES | Delphi 10 BPLs
bsnes launcher with recent files list
AamirM
Regen Developer
Regen Developer
Posts: 533
Joined: Sun Feb 17, 2008 8:01 am
Contact:

Post by AamirM »

Hi,

I just added the hex code support to the cheat engine. Now I want to know something since I am not fimiliar with cheats.

Are hex code like FFFE12:0009 and PAR codes same?

stay safe,

AamirM
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

PAR starts with FF, Hex codes start with 00 and an address. Game Genie converts to Hex address, while PAR is RAM addresses. Game Genie and Hex addresses can be considered the same thing, since Kega internally converts all inputted GG codes to hex addresses.

Pro Action Replay on the other hand always starts with FF since it changes the RAM itself.

Examples of this are, take the GG master code to Sonic 1, ATBT-AA32. When it's converted to hex in Kega (or in a tool I have that can convert from GG to hex and back) becomes 000338:6004 which is the hex conversion of the above Game Genie code.

However I don't believe it's possible to convert GG to PAR or hex to PAR (as far as I can tell) since they're completely different things. Although, I'm probably wrong on this.

GG/Hex and PAR codes should work easily for the 32X if you ever add support for it.

Sega CD on the other hand is very, very tricky to use any cheats with. I know you can hack the ISOs of the games (or use hex addresses) for only a select few games. PAR code creation and use is only possible for those games that use the Genesis RAM (Sonic CD for example). However, games that use Word RAM are way, way more tricky, if not impossible.

Game Gear can use Game Genie and Pro Action Replay. Examples of this are... 009-04F-3BE is the Game Genie code for infinite lives in Sonic 2, while 00D2-4009 is the Pro Action Replay code for infinite lives in Sonic 1.

Sega Master System can only use Pro Action Replay. An example of this is 00D2-4609 infinite lives for Sonic 1. PAR for GG and SMS are similar in this case.

Yea, cheating is very confusing for the various systems. :P Might want to ask Steve Snake about this stuff, since he knows way more stuff about it than me. Also, if you do try to support 32X and Sega CD there's a way to determine how accurate it is. Run games against Kega Fusion, since it's nearly fully hardware accurate for both systems. I suppose it's as close as you can get to the real thing. :P
AamirM
Regen Developer
Regen Developer
Posts: 533
Joined: Sun Feb 17, 2008 8:01 am
Contact:

Post by AamirM »

Hi,

Thank you very much for the information. So does this mean that in PAR code like FFFE12:0009 I just have to change contents of FFFE12 to 0009 or there some decoding technique like game genie.

stay safe,

AamirM
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

FFFE12 is the RAM address, 0009 is the offset that can be changed. Change 0009 to 0032 for 50 lives, 0064 for 100 lives, etc.

Gens does PAR incorrectly as it byteswaps the offset to 0900, which in Kega where it does it correctly (0009).
AamirM
Regen Developer
Regen Developer
Posts: 533
Joined: Sun Feb 17, 2008 8:01 am
Contact:

Post by AamirM »

So the user has to enter values 32 or 64 himself?
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Nope, users can go to sites like GSCentral and find existing codes for games. People can edit/create their own codes themselves (like I do), but for the normal user, it's not really needed as codes come complete.

Here, some codes (PAR and GG converted to hex) for Sonic 2...

000344:6004 MASTER CODE (MUST BE ENTERED)
FFFFD0:0001 Enable Stage Select
FFFFD2:0001 Enable Debug Mode
FFFFB1:0007 Have All Chaos Emeralds
FFB02B:0002 Invincibility
FFFE12:0009 Infinite Lives
FFFE24:0007 Unlimited Time
FFFF73:0000 Play As Sonic & Tails
FFFF73:0001 Play As Sonic Only
FFFF73:0002 Play As Tails Only
FFFF73:0003 Play As "Weird" Tails Only
FFFE21:0001 Always Have 1 Rings
FFFE21:0032 Always Have 50 Rings
01217E:6004 Sonic Doesn't Lose Rings When Hit
012192:6004 Tails Doesn't Lose Rings When Hit
01ABEC:604E Super Sonic Doesn't Lose Rings With Time
FFFE19:0001 Sonic Looks Like Super Sonic (Disables Super Sonic)
FFB028:00FA Sonic Never Drowns
FFB068:00FA Tails Never Drowns
FFF64A:FFFF Disable Water On Levels
0041C0:31C4 Start Most Levels With Some Rings
0FCBBC:0000 The Regular Level Music Plays When Super Sonic

These are complete codes. No editing needed. Try them. :)

EDIT: Here, I convered them to Regen's .dat format in PAR/Hex form...

[0]
Name=MASTER CODE (MUST BE ENTERED)
0=Off
1=On,000344:6004

[1]
Name=Level Select
0=Off
1=Enable,FFFFD0:0001
2=Disable,FFFFD0:0000

[2]
Name=Debug Mode
0=Off
1=Enable,FFFFD2:0001
2=Disable,FFFFD2:0000

[3]
Name=Chaos Emerald Modifier
0=Off
1=None,FFFFB1:0000
1=One,FFFFB1:0001
1=Two,FFFFB1:0002
1=Three,FFFFB1:0003
1=Four,FFFFB1:0004
1=Five,FFFFB1:0005
1=Six,FFFFB1:0006
1=Seven,FFFFB1:0007

[4]
Name=Invincibility
0=Off
1=On,FFB02B:0002

[5]
Name=Infinite Lives
0=Off
1=On,FFFE12:0009

[6]
Name=Infinite Time
0=Off
1=On,FFFE24:0000

[7]
Name=Character Modifier
0=Off
1=Sonic And Tails,FFFF73:0000
2=Sonic,FFFF73:0001
3=Tails,FFFF73:0002
4="Weird" Tails,FFFF73:0003

[8]
Name=Rings Modifier
0=Off
1=1 Ring,FFFE21:0001
2=50 Rings,FFFE21:0032
3=100 Rings,FFFE21:0064

[9]
Name=Doesn't Lose Rings When Hit
0=Off
1=Sonic,01217E:6004
2=Tails,012192:6004

[10]
Name=Super Sonic Doesn't Lose Rings With Time
0=Off
1=On,01ABEC:604E

[11]
Name=Sonic Looks Like Super Sonic (Disables Super Sonic)
0=Off
1=On,FFFE19:0001

[12]
Name=The Regular Level Music Plays When Super Sonic
0=Off
1=On,0FCBBC:0000

[13]
Name=Never Drown
0=Off
1=Sonic,FFB028:00FA
2=Tails,FFB068:00FA

[14]
Name=Disable Water On Levels
0=Off
1=On,FFF64A:FFFF

[15]
Name=Start Most Levels With Some Rings
0=Off
1=On,0041C0:31C4
AamirM
Regen Developer
Regen Developer
Posts: 533
Joined: Sun Feb 17, 2008 8:01 am
Contact:

Post by AamirM »

Thank you very much for the info. Shouldn't be hard to add PAR support now.
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

You are very welcome. :) I posted some examples in Regen's .dat format above for you to play with. :)

Edit: Just tried Super Street Fighter II and it does indeed crash the emulator. Not surprising, since the game is too large. I wonder if this could be considered a bug, as Kega does support it regardless of it being 5MB.

Another "issue" I've encountered is that sometimes the left button on my gamepad doesn't respond until after a couple presses. Gens has always had this problem for me, but strangely, I don't have this issue with Kega Fusion.
AamirM
Regen Developer
Regen Developer
Posts: 533
Joined: Sun Feb 17, 2008 8:01 am
Contact:

Post by AamirM »

Hi,

PM me your email. I'll be sending you a beta soon for you to test if it happens on it too.

stay safe,

AamirM
King Of Chaos
Trooper
Posts: 394
Joined: Mon Feb 20, 2006 3:11 am
Location: Space

Post by King Of Chaos »

Done and done. :)
AamirM
Regen Developer
Regen Developer
Posts: 533
Joined: Sun Feb 17, 2008 8:01 am
Contact:

Post by AamirM »

Hi,

Just finished up adding PAR support. Everything cheat in your provided .dat file works except the chaos emerald modifier option.

stay safe,

AamirM
Locked