Release DraStic Nintendo DS emulator


I started to finish Etrian Odyssay yesterday.

It plays well but there is one little bug with some writing.

I did attach a savestate where you can see the problem.

It's the green letters in the lower textbox.

It should be "Heilen" but it's barely readable.

Some parts of the letters are too big and some are missing.

It's nothing that affects gameplay or playability.

And it's only some Text boxes.

If you need more save states where you can see the problem I can send you some.

I did use the EU version of the Game (German language).

Etrian Odyssey_0.dss.zip
 

Attachments

  • Etrian Odyssey_0.dss.zip
    1.2 MB · Views: 207
By the way, are you going to release a new version with the option to remove the icon data extraction as you mentioned ?
No, it's basically moot because I did a cache file for it :p (as you quoted in your response..)
 
No, it's basically moot because I did a cache file for it :p (as you quoted in your response..)
Well, if you did, it's still not working as expected because browsing between roms is still sluggish no matter what. Basically I can't use Drastic anymore, just because of this icon extraction function I never needed in the first place.
 
Last edited by a moderator:
No, it's basically moot because I did a cache file for it :p (as you quoted in your response..)
Well, if you did, it's still not working as expected because browsing between roms is still sluggish no matter what. Basically I can't use Drastic anymore, just because of this icon extraction function I never needed in the first place.
Why do you say that like its your god given right to have features added or removed from software you did not write? remember this is not FOSS software.
 
No, it's basically moot because I did a cache file for it :p (as you quoted in your response..)
Well, if you did, it's still not working as expected because browsing between roms is still sluggish no matter what. Basically I can't use Drastic anymore, just because of this icon extraction function I never needed in the first place.
Use unzip roms :p
 
I explained this to ekianjo on IRC, but in case it wasn't clear: there will be a cache file in the next version, which is why I won't be adding an option to remove the icons.

I wouldn't have released it wit this feature if the games took 30 seconds to display for me, it's nothing like that here (although it's slower than without the icon view, it doesn't really hurt usability). ekianjo, you said you were going to test it with another SD card, did you ever do that? Does anyone else have any comments on how fast it is for them?

The next version will be out soon, but if it's unusable for you right now there are a few things you can do instead:

- Unzip your ROMs

- Put the ROMs on /tmp if the ROMs are small enough, of course there's not a lot of margin for this

- Try putting ROMs on the internal storage if you have room, although I have no idea what the speed is like there

- Load the ROMs from command line using pndrun, just give it a parameter with a full/absolute path to the ROM (not a relative path)

- Use an older version, which is always available on the repo
 
Last edited by a moderator:
I started to finish Etrian Odyssay yesterday.

It plays well but there is one little bug with some writing.

I did attach a savestate where you can see the problem.

It's the green letters in the lower textbox.

It should be "Heilen" but it's barely readable.

Some parts of the letters are too big and some are missing.

It's nothing that affects gameplay or playability.

And it's only some Text boxes.

If you need more save states where you can see the problem I can send you some.

I did use the EU version of the Game (German language).
Some games, Atlus games in particular, have this issue where they rely on some very weird rounding errors in the texturing and unless the texturing is done perfectly it won't look right (DeSmuME has ugly text in these games as well). DraStic will often treat these textures as sprites which eschews the issue, but it doesn't happen if they're rotated 90 degrees or under some other circumstances.

The interpolation in DS's 3D rendering is really weird and bad, and would be very difficult to get exactly right. I spent months trying to reverse engineer it exactly, and while I learned some stuff I couldn't get it all the way right for all cases. The sad thing is that if you do some parts of the rendering accurately, taking into account DS's weird rules, but don't do other parts as accurately, it'll actually look really bad. For example, I could have pixel accurate polygon edges but if I do that it causes a ton of obvious distortion in other places. So unless you get the whole thing perfect you have to just kind of do something that makes sense.
 
Last edited by a moderator:
So, is it a lot of work to say implement hacks for games that have known issues like this  that allow users to turn on and off those hacks manually to get by certain part of the game?
 
Last edited by a moderator:
So, is it a lot of work to say implement hacks for games that have known issues like this  that allow users to turn on and off those hacks manually to get by certain part of the game?
You're assuming there's some hack that makes sense to begin with. If there's something like that it's not going to be a user visible option, it'd be applied to the game transparently. Mind you, normally I'd do everything I could to avoid a per-game hack like this.
 
I started to finish Etrian Odyssay yesterday.


It plays well but there is one little bug with some writing.


I did attach a savestate where you can see the problem.


It's the green letters in the lower textbox.


It should be "Heilen" but it's barely readable.


Some parts of the letters are too big and some are missing.


It's nothing that affects gameplay or playability.


And it's only some Text boxes.


If you need more save states where you can see the problem I can send you some.


I did use the EU version of the Game (German language).
Some games, Atlus games in particular, have this issue where they rely on some very weird rounding errors in the texturing and unless the texturing is done perfectly it won't look right (DeSmuME has ugly text in these games as well). DraStic will often treat these textures as sprites which eschews the issue, but it doesn't happen if they're rotated 90 degrees or under some other circumstances.


The interpolation in DS's 3D rendering is really weird and bad, and would be very difficult to get exactly right. I spent months trying to reverse engineer it exactly, and while I learned some stuff I couldn't get it all the way right for all cases. The sad thing is that if you do some parts of the rendering accurately, taking into account DS's weird rules, but don't do other parts as accurately, it'll actually look really bad. For example, I could have pixel accurate polygon edges but if I do that it causes a ton of obvious distortion in other places. So unless you get the whole thing perfect you have to just kind of do something that makes sense.
Ah, ok.

As said, I can play the game with that bug as well.

One Idea I had:

Is it easy possible to make one screen big like you would display in the one screen option and place the second one above it?

For Etrian Odyssey I need both screens, as the Map is vital.

I can go for the 2:1 version (I do that now).

For games like Etrian Odyssey it might be a nice option to be able to have one big screen and one screen in the lower right corner slightly above the main screen.

As there is still some black rim you won't even cover the whole are the small screen would take.

And if it'd be possible to toggle the small scree via a button press I could make it disappear during battle where I want to see the TP bar of the guy in the lower right corner.

Just an idea.
 
Prepare for a crazy idea and an awesome LibreOffice illustration.

DraStic illustration.jpg
[\spoiler]
 
Unfortunately I think it's not possible with how things work on Pandora because fb1 appears on top of fb0. And only fb1 can be scaled. So you could only get the small screen behind the large one instead of in front of it.
 
Unfortunately I think it's not possible with how things work on Pandora because fb1 appears on top of fb0. And only fb1 can be scaled. So you could only get the small screen behind the large one instead of in front of it.
I see.

So I have to play the old 2:1 style then.

Doesn't matter.

TV-split is the way to play anyways :) .

Do you have plans for customizable button shortcuts?

I think I did ask for it before.

A config file in the appdata folder would be enough if you don't want to make a GUI option.

As 1,2,3 9,0, Backspace are easy to reach I'd like to make them for screen swapping.

I always hit the wrong one in the Keyboard.
 
Yeah, I do plan to add button customization. This is the only way I can really have USB gamepad support, which I do want to add as well. Like with a lot of things, the work is less in the actual implementation and more in the menu to let you configure it.

For configurable buttons, should the entire configuration be stored in game-specific config files? Or just the actual DS buttons? Or nothing at all?
 
For configurable buttons, should the entire configuration be stored in game-specific config files? Or just the actual DS buttons? Or nothing at all?
I do prefer everything in a game specific file, not just the DS buttons.

Don't see a reason why I would want to change DS buttons anyways.

Savestats and Screen swapping is most important I think.

Even if there's only a global config file at first it would be fine for me.

Don't see why I would want to change such things per game.

I think PCSX has the best solution here.

The external gamepad settings are stored differently to the Pandora buttons (no reconfiguration needed when unplugging the External Gamepad).
 
Last edited by a moderator:
I do prefer everything in a game specific file, not just the DS buttons.

Don't see a reason why I would want to change DS buttons anyways.

Savestats and Screen swapping is most important I think.

Even if there's only a global config file at first it would be fine for me.

Don't see why I would want to change such things per game.

I think PCSX has the best solution here.

The external gamepad settings are stored differently to the Pandora buttons (no reconfiguration needed when unplugging the External Gamepad).
DraStic uses a global configuration file, and you can make game-specific ones that override it. I was just wondering if I should even get the non-DS gamepad options from the game specific file, because these feel like more global options by nature. I guess I would do it this why if you were configuring inputs for the GUI control, but it'll just be limited to things that take effect while the game is running.

There should be no reason to have separate configuration files for internal and external controls here, the configuration will store something like 0-4 inputs for each action. I can't think of a reason why you wouldn't want to have both the Pandora controls and the external controls set to trigger actions at the same time. Or maybe this is actually what you were saying?

Shenmue said:
Any chance of screen rotation in the next release?
I have to ask notaz how to do this.. again :/ (if you're reading this notaz, if you send me an e-mail I promise I won't have to be reminded again)

This really kind of complicates things because something like 1x:2x mode would no longer work since the screens are now virtual 192x256, and 384x512 won't fit on the screen without clipping. I'm really kind of loathing the idea of adding more and more different screen modes. Maybe it'd be best to just have a custom configuration option. It wouldn't be very GUI driven, it'd be more like you can enter this:

< Joined mode >
X: <pixels>
Y: <pixels>
width: <pixels>
height: <pixels>
rotate: <no, yes>
orientation: <horizontal, vertical>
Code:
< Split mode >
A X: <pixels>
A Y: <pixels>
A width: <pixels>
A height: <pixels>
A rotate: <no, yes>
B X: <pixels>
B Y: <pixels>
B rotate: <no, yes>
Joined mode would mean both screens are scaled but stuck next to each other, either left to right or top to bottom (maybe with an optional gap parameter). Split mode would let you freely position both screens, but screen B would be locked at 256x192. This is also assuming that can actually rotate fb0, I don't remember if this is the case or not.
I know some people would probably prefer a touch based interface that lets you drag things around, but I personally find this a lot nicer to work with. I could however maybe have a graphic that shows what the current setting would look like.

This would at least make it easier to migrate to Pyra, for whatever we have on that (hopefully will have full independent scaling and the option for using shaders and stuff)

Exophase is there any reason that Axe doesn't work? http://pineight.com/ds/

IIRC it displays correctly but doesn't actually output sound...
I wouldn't know, I haven't looked at this or even heard of it until now. The source looks pretty straightforward, I can try to see where it's going wrong.
 
Last edited by a moderator:
Okay, I found/fixed the bug with Axe. The problem was that it was rejecting PSG/noise type samples that have zero-length sample buffer lengths, which shouldn't happen because those don't have sample buffers to begin with.

This also fixes missing sound effects in Fire Emblem, something I totally forgot about. So uh, thanks ;)
 
Back
Top