Homebrew jEnesisDS 0.7 question

Unchi-san

Unchi on a stick! yay~
Member
Joined
Jan 3, 2008
Messages
526
Trophies
0
Website
Visit site
XP
49
Country
United States
i know there is vertical scaling that can be toggled on/off in jEnesisDS 0.7... but is there a horizontal scaling? I noticed every game I've played so far it is too horizontally stretched out and some parts get cut off on the side of the screen.

if theres a way to fix this can someone help? if not, thats fine.

Thanks
 

dawn.wan

Well-Known Member
Member
Joined
Apr 6, 2008
Messages
370
Trophies
0
Age
37
Location
Toronto, ON
XP
74
Country
Canada
sorry to break it to you dude, there no way right now.. ppl have been brining it up since day 1. the dude who made jenisis knows about and says theres nothing he can really do about it (at the moment)... kinda sucks but better than nothing...
 

Unchi-san

Unchi on a stick! yay~
Member
Joined
Jan 3, 2008
Messages
526
Trophies
0
Website
Visit site
XP
49
Country
United States
dawn.wan said:
sorry to break it to you dude, there no way right now.. ppl have been brining it up since day 1. the dude who made jenisis knows about and says theres nothing he can really do about it (at the moment)... kinda sucks but better than nothing...

damn sucks. thanks for the help. lets hope it gets fixed! im really happy that sound was added though somewhat recently. That made this emulator even more awesome!
 

dawn.wan

Well-Known Member
Member
Joined
Apr 6, 2008
Messages
370
Trophies
0
Age
37
Location
Toronto, ON
XP
74
Country
Canada
i know.. sounds emulation on DS is new.. i just got into DS emulation myself couple weeks ago and was surprised when i found out..

my only peeve with jenisis is that i cant modify controls.. and when moving the screen with the L and R triggers it just feels funny.. pressing R trigger makes it go..left? hunh?
 

kitetsu

Well-Known Member
Newcomer
Joined
Feb 3, 2008
Messages
75
Trophies
0
Location
ausfailia
XP
69
Country
Personally I'd just use Picodrive if i want to have some serious Gunstar Heroes gameplay on my dinner table. :S

Of course, that also means i may not be able to play Phantasy Star 4 or some other text-heavy game.
 

granville

GBAtemp Goat
Member
Joined
Aug 24, 2007
Messages
5,070
Trophies
0
Age
32
Location
Orlando, Florida
XP
2,293
Country
United States
PicodriveDS has no sound and runs at about 1/3 speed of a real genesis. JenesisDS may not support full scaling, but it has MANY other features that are not in PicodriveDS. And Lordus is actively updating JenesisDS at full force. PicodriveDS hasn't been updated in a long while (more than a year) and seems to have been discontinued.

If you like, 0.4's release of JenesisDS came with a packed in version of the software version. It doesn't have sound and is about the same speed as PicodriveDS, but it DOES have full scaling.

I'd take other features over full scaling any day. Had Lordus been dedicated to scaling as a first priority, JenesisDS would not have gotten as far as it is now. Here's what we get in trade of full scaling:

-Almost full speed on most games
-Fairly good sound support that is a top priority for improvement by Lordus
-great compatibility with only a few games not working (compatibility is another top priority)

I as well as most people of the DS emulation scene believe that full speed, sound support, and full compatibility are much more important than perfect scaling. I prefer it completely off and adjust the screen as needed. Scaling a screen down looks awful. When we get all the bugs worked out, THEN we can see about scaling.
 

DanTheManMS

aka Ricochet Otter
Member
Joined
Jun 2, 2007
Messages
4,355
Trophies
0
Age
31
Location
Georgia
XP
479
Country
United States
From my understanding, it's not at all possible to scale horizontally with the method jEnesisDS uses. It uses the DS's 2D hardware to greatly speed up graphical rendering, but this 2D hardware is somewhat limited. The DS draws to the screen one horizontal row at a time, so vertical scaling can easily be accomplished by simply telling it to skip a row here and there. You cannot however tell it to skip certain pixels in the same row while keeping others, so horizontal scaling is not a possibility.

The SW Renderer version of v0.4a does not use the DS's 2D hardware, and as such it offers horizontal scaling but is much slower as a result.
 

Unchi-san

Unchi on a stick! yay~
Member
Joined
Jan 3, 2008
Messages
526
Trophies
0
Website
Visit site
XP
49
Country
United States
DanTheManMS said:
From my understanding, it's not at all possible to scale horizontally with the method jEnesisDS uses. It uses the DS's 2D hardware to greatly speed up graphical rendering, but this 2D hardware is somewhat limited. The DS draws to the screen one horizontal row at a time, so vertical scaling can easily be accomplished by simply telling it to skip a row here and there. You cannot however tell it to skip certain pixels in the same row while keeping others, so horizontal scaling is not a possibility.

The SW Renderer version of v0.4a does not use the DS's 2D hardware, and as such it offers horizontal scaling but is much slower as a result.

aah ic. well i guess we will have to live with it!

Thanks DanTheManMS!
 

psycoblaster

Divine
Member
Joined
Jan 26, 2008
Messages
2,131
Trophies
0
Age
31
Location
Seoul.. (in Korea)
Website
Visit site
XP
211
Country
I think this is Dantheman said but Jenesis 0.4 (i think) has horizontal scaling, but the maker took it out in higher versions because it caused so much lag.
Read the Readme included in the zip file included in Jenesis because he explains it all.
 

DanTheManMS

aka Ricochet Otter
Member
Joined
Jun 2, 2007
Messages
4,355
Trophies
0
Age
31
Location
Georgia
XP
479
Country
United States
It's v0.4a that has two binaries: a HW (hardware) renderer build and a SW (software) renderer build. The HW build is fast and acts just like the modern builds. The SW build is slow and has horizontal scaling, as I already stated.

Think of it this way. The SW build acts much like an emulator for your PC acts. It reads input, determines exactly what the screen should look like at the end of the frame, then paints the image to the screen pixel by pixel. This is very accurate graphically and allows for effects to be added (scaling, special colorizations, filters, whatever). The HW build takes advantage of the DS's native 2D hardware to draw to the screen, which is much faster. Here, the emulator basically blindly passes the graphics instructions to the 2D hardware without knowing what the screen should look like beforehand. Because so little CPU time is spent actually drawing to the screen, frameskip would make no sense because all the CPU time is taken up by other functions that must be run every frame.

If you're curious, every SNES emulator for the GBA and DS also operates under a "hardware renderer" mode, which is necessary to get even decent speeds. This is why there are so many graphical glitches and layer priority issues. Lordus has done a great job at minimizing these graphical issues with jEnesisDS.
 

Lordus_

Member
Newcomer
Joined
Jan 29, 2008
Messages
10
Trophies
0
Website
Visit site
XP
8
Country
Gambia, The
Unchi-san said:
damn sucks. thanks for the help. lets hope it gets fixed! im really happy that sound was added though somewhat recently. That made this emulator even more awesome!


It doesn't really have to be fixed, as it's not broken. It's just not there..



dawn.wan said:
..and when moving the screen with the L and R triggers it just feels funny.. pressing R trigger makes it go..left? hunh?


Actually, i did that on purpose, as some people complained about it being the other way around, when you move the screen in pause mode. It just depends on your point of view, anyway... If you think of moving the game screen, or your view window. Personally i prefer the opposite of what the L+R triggers do now
wink.gif



granville said:
I'd take other features over full scaling any day. Had Lordus been dedicated to scaling as a first priority, JenesisDS would not have gotten as far as it is now. Here's what we get in trade of full scaling:

-Almost full speed on most games
-Fairly good sound support that is a top priority for improvement by Lordus
-great compatibility with only a few games not working (compatibility is another top priority)

I as well as most people of the DS emulation scene believe that full speed, sound support, and full compatibility are much more important than perfect scaling. I prefer it completely off and adjust the screen as needed. Scaling a screen down looks awful. When we get all the bugs worked out, THEN we can see about scaling.


I my tests, games average about 90fps, so most games run at about 150% full speed. Many can games run far over 100fps and there are just some I'd say, which have slowdowns in certain areas, and less, which are just not full speed. In the last days i improved the sound for a lot of games (but had to lower the volume a bit) and also improved speed by about 50%, so that many of the games that had slowdowns run constantly full speed now. There are no more slowdowns in Castlevania, Out Run, Gunstar Heroes, Sonic water effect levels and many others.

Actually, compatibility is not so much a top priority at the moment, as i want to get all games that work to run at full speed. I try to fix games though, if i read that someone would really like to play a certain game. It doesn't have such a high priority, because for most games that don't work, i know why, as i already made a PC Genesis emulator that plays every official game except one, and i spent a LOT of time debugging games on that already.


QUOTE(DanTheManMS @ May 16 2008, 10:20 AM)
Think of it this way. The SW build acts much like an emulator for your PC acts. It reads input, determines exactly what the screen should look like at the end of the frame, then paints the image to the screen pixel by pixel. This is very accurate graphically and allows for effects to be added (scaling, special colorizations, filters, whatever). The HW build takes advantage of the DS's native 2D hardware to draw to the screen, which is much faster. Here, the emulator basically blindly passes the graphics instructions to the 2D hardware without knowing what the screen should look like beforehand. Because so little CPU time is spent actually drawing to the screen, frameskip would make no sense because all the CPU time is taken up by other functions that must be run every frame.

If you're curious, every SNES emulator for the GBA and DS also operates under a "hardware renderer" mode, which is necessary to get even decent speeds. This is why there are so many graphical glitches and layer priority issues. Lordus has done a great job at minimizing these graphical issues with jEnesisDS.


I wouldn't say "blindly passes", but basically it's like you say. There still are a lot of conversions going on, and the hardware renderer has to keep track of and manage 2048 possible tiles the Genesis can use, while the DS can "just" use 1024 per BG. That's also one of the last things left, that causes heavy glitches, if a game constantly updates more than 1024 tile indices (Comix Zone title screen for example). It's slowing down there (with Force Update on), because the emulator constantly has to recreate everything, as the tiles overflow.
The point that makes it so much faster is, that it just has to take care of the rendering, when the actual game would do it, too, and not all the time, pixel by pixel, as a software renderer. Usually games just update very little parts of a BG, like some columns or rows, when the screen is scrolled. As a comparison, a software renderer takes about 3-4x the CPU time as emulating the main CPU of the Genesis does.

And about scaling, i say it again: horizontal scaling is not just something that can easily be done. The Genesis has effectively 4 BG layers (through its per tile priority), the DS has 4 BG layers, too. Just 2 of them can be scaled in hardware. Software scaling is out of the question anyway. It's very slow, and i also don't have the pixels available in a bitmap, but tile format. Vertical scaling can be faked by changing the vertical scroll of each DS background by a certain offset every few lines in a horizontal blanking interrupt. As DanTheManMS said, a similar thing is impossible to do horizontally.
So in effect, as long as an emulator manages to get everything drawn on 2 layers, plus sprites or 3D, it can scale the image in hardware. If you need all layers, you can't do it in an effective way, except changing the way everything works, and making it slower.
 

granville

GBAtemp Goat
Member
Joined
Aug 24, 2007
Messages
5,070
Trophies
0
Age
32
Location
Orlando, Florida
XP
2,293
Country
United States
As you are maybe about to behold, I have little experience in programming, so this may sound stupid. However, here's my question:

Is it possible to create an emulator that has a hybrid of hardware and software renders? If that's possible, it could fix both speed AND any graphical glitches. Also, you said that JenesisDS used the 2d part of the DS' hardware. How could using the 3d functions help? And yes I know that would be EXTREMELY complicated to code and get running correctly.
 

Lordus_

Member
Newcomer
Joined
Jan 29, 2008
Messages
10
Trophies
0
Website
Visit site
XP
8
Country
Gambia, The
granville said:
As you are maybe about to behold, I have little experience in programming, so this may sound stupid. However, here's my question:

Is it possible to create an emulator that has a hybrid of hardware and software renders? If that's possible, it could fix both speed AND any graphical glitches. Also, you said that JenesisDS used the 2d part of the DS' hardware. How could using the 3d functions help? And yes I know that would be EXTREMELY complicated to code and get running correctly.


It doesn't sound stupid, but is actually a good idea. I was thinking about that a while ago, and it may be a possibility. It would still be slower than pure HW rendering of course, but if a game doesn't use priorities, it could be quite effective. I am reluctant to talk about it though, and rather still say scaling is not possible, because the next thing you read is, that i am working on scaling, which i am not. Of course i would want jEnesisDS to have scaling, mostly so i won't be bugged about it anymore.. But again, there is no easy way to do it, and might ruin the full speed factor.

Using 3D on the other hand might not really be hard to do, but it can't really help in any way. It would have about the same problems that software rendering to a framebuffer has. 3D is effective, if you have a lot of objects (sprites) to render, like on the Neo Geo, that has just 1 fixed BG layer, that cannot be scrolled, and everything else is purely sprites., but not really for tiled backgrounds. Of course it can be used, but there is no real gain.
 

Unchi-san

Unchi on a stick! yay~
Member
Joined
Jan 3, 2008
Messages
526
Trophies
0
Website
Visit site
XP
49
Country
United States
Lordus: the ROMs run at 90 fps? Whenever I play, it says 60 in teh bottom left. Does that mean 60fps or is there a way to speed it up? Sorry I am a noob...

I appreciate all the work you placed into this though!
 

Rayder

Mostly lurking lately....
Former Staff
Joined
Jan 14, 2007
Messages
6,607
Trophies
0
Location
USA
XP
588
Country
United States
dawn.wan said:
sorry to break it to you dude, there no way right now.. ppl have been brining it up since day 1. the dude who made jenisis knows about and says theres nothing he can really do about it (at the moment)... kinda sucks but better than nothing...

Funny how NeoDS has no issues with scaling......and that's a more powerful system to emulate.
 

Lordus_

Member
Newcomer
Joined
Jan 29, 2008
Messages
10
Trophies
0
Website
Visit site
XP
8
Country
Gambia, The
Rayder said:
dawn.wan said:
sorry to break it to you dude, there no way right now.. ppl have been brining it up since day 1. the dude who made jenisis knows about and says theres nothing he can really do about it (at the moment)... kinda sucks but better than nothing...

Funny how NeoDS has no issues with scaling......and that's a more powerful system to emulate.


Glad that you read my post...

1. The power of a system has absolutely nothing to do with how easy it is to do scaling or not. You could emulate a system with a 100MHz CPU, that renders through a framebuffer, and have it running at 5fps, but still scaling would be easy.

2. The NeoGeo's graphics are almost only made up of sprites, that you can render relatively effective with the 3D hardware, which makes scaling easily possible.

3. The NeoGeo is not necessarily a more powerful system to emulate. The CPU setup is similar, but the NeoGeo's main CPU is clocked higher. The graphics are a lot simpler though (it doesn't matter that they look better, which is achieved through more colors, tons of sprites and tons of memory). On the NeoGeo you can easily get away without emulating line based effects, like per scanline scrolling, as not many games use raster effects. On the Genesis, even Sonic would be messed up, if you wouldn't. And emulating those kind of effects takes some processing time. Games like Comix Zone are just so slow because they make heavy use of those effects. Then, there is FM emulation, which is very heavy, and is currently not done in NeoDS. This allows it to run the Z80 emulation on the ARM7, while jEnesisDS emulates both CPUs on the ARM9. And emulating a ~8MHz 68000 and a ~4MHz Z80 should be about the same as emulating a 12MHz 68000. Still as i already said, many games are capable of running at 150% speed or more at the moment (Unchi-san: you can see that, if you turn V-Sync off in the options).
 

granville

GBAtemp Goat
Member
Joined
Aug 24, 2007
Messages
5,070
Trophies
0
Age
32
Location
Orlando, Florida
XP
2,293
Country
United States
Hey Lordus! I dodn't know you were here. As I stated on the Pocket Heaven boards, I prefer scaling off and so it's not an issue not having it for me. If a part of the screen is not viewable, I just use the touch screen/d-pad trick to position it better. It may be more unwieldy than scaling, but it's better than having squished looking graphics.

I'm of the opinion that full smooth speed, better sound, and improved compatibility is MUCH more important than perfect scaling. Thanks for responding to my question about a software/hardware hybrid render and using 3d hardware. I suppose the 3D hardware would be an interesting feature if you ever got the urge for....say....brace yourself.....32X, SegaCD, or Virtua Racing. Yes, I'm joking. I know full well how impossible this would be. But maybe you'll find ways to use the DS' features in many different ways.

BTW Lordus, you're good at explaining technical things in a way that we non-programmers understand. It's nice to know how things work and it's cool how understanding you are to our questions and such. Thanks for your work!
 

Site & Scene News

General chit-chat
Help Users
    slaphappygamer @ slaphappygamer: Cool. Themes work much better on mobile!