jEnesisDS 0.7 question

Discussion in 'NDS - Emulation and Homebrew' started by Unchi-san, May 15, 2008.

May 15, 2008

jEnesisDS 0.7 question by Unchi-san at 6:38 AM (4,776 Views / 0 Likes) 17 replies

  1. Unchi-san
    OP

    Member Unchi-san Unchi on a stick! yay~

    Joined:
    Jan 3, 2008
    Messages:
    526
    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
     
  2. dawn.wan

    Member dawn.wan GBAtemp Fan

    Joined:
    Apr 6, 2008
    Messages:
    370
    Location:
    Toronto, ON
    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...
     
  3. Unchi-san
    OP

    Member Unchi-san Unchi on a stick! yay~

    Joined:
    Jan 3, 2008
    Messages:
    526
    Country:
    United States
    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!
     
  4. dawn.wan

    Member dawn.wan GBAtemp Fan

    Joined:
    Apr 6, 2008
    Messages:
    370
    Location:
    Toronto, ON
    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?
     
  5. kitetsu

    Newcomer kitetsu Advanced Member

    Joined:
    Feb 3, 2008
    Messages:
    75
    Location:
    ausfailia
    Country:
    Australia
    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.
     
  6. granville

    Member granville GBAtemp Goat

    Joined:
    Aug 24, 2007
    Messages:
    4,977
    Location:
    Naples, Florida
    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.
     
  7. DanTheManMS

    Member DanTheManMS aka Ricochet Otter

    Joined:
    Jun 2, 2007
    Messages:
    4,325
    Location:
    Georgia
    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.
     
  8. Unchi-san
    OP

    Member Unchi-san Unchi on a stick! yay~

    Joined:
    Jan 3, 2008
    Messages:
    526
    Country:
    United States
    aah ic. well i guess we will have to live with it!

    Thanks DanTheManMS!
     
  9. psycoblaster

    Member psycoblaster Divine

    Joined:
    Jan 26, 2008
    Messages:
    2,132
    Location:
    Seoul.. (in Korea)
    Country:
    Korea, South
    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.
     
  10. DanTheManMS

    Member DanTheManMS aka Ricochet Otter

    Joined:
    Jun 2, 2007
    Messages:
    4,325
    Location:
    Georgia
    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.
     
  11. Lordus_

    Newcomer Lordus_ Member

    Joined:
    Jan 29, 2008
    Messages:
    10
    Country:
    Germany

    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.
     
  12. granville

    Member granville GBAtemp Goat

    Joined:
    Aug 24, 2007
    Messages:
    4,977
    Location:
    Naples, Florida
    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.
     
  13. Lordus_

    Newcomer Lordus_ Member

    Joined:
    Jan 29, 2008
    Messages:
    10
    Country:
    Germany

    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.
     
  14. podunk1269

    Member podunk1269 GBAtemp Fan

    Joined:
    Aug 26, 2007
    Messages:
    406
    Location:
    West ByGod , USA
    Country:
    United States
    I had to go back to the pervious version, the current one wont load roms [​IMG]
     
  15. Unchi-san
    OP

    Member Unchi-san Unchi on a stick! yay~

    Joined:
    Jan 3, 2008
    Messages:
    526
    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!
     
  16. Rayder

    Former Staff Rayder Mostly lurking lately....

    Joined:
    Jan 14, 2007
    Messages:
    6,613
    Location:
    USA
    Country:
    United States
    Funny how NeoDS has no issues with scaling......and that's a more powerful system to emulate.
     
  17. Lordus_

    Newcomer Lordus_ Member

    Joined:
    Jan 29, 2008
    Messages:
    10
    Country:
    Germany

    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).
     
  18. granville

    Member granville GBAtemp Goat

    Joined:
    Aug 24, 2007
    Messages:
    4,977
    Location:
    Naples, Florida
    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!
     

Share This Page