Homebrew DSx86 (DSi Entry)

  • Thread starter Thread starter Pate
  • Start date Start date
  • Views Views 45,424
  • Replies Replies 141
  • Likes Likes 7
DSx86 emulates a 286. Windows 98 requires at least a 386.

DS2x86 might be able to run Windows 95 one day but you'll need a Supercard DSTWO for that and it will still be very slow.
 
RexNebular said:
DSx86 emulates a 286. Windows 98 requires at least a 386.

DS2x86 might be able to run Windows 95 one day but you'll need a Supercard DSTWO for that and it will still be very slow.

What about Some Linux distro?
This is a PC BIOS for Nintendo DS right?

The only thing is that the DS is not powerful enough?
 
sightlight said:
What about Some Linux distro?

There are some versions of ulinux ported to ds, similiar to linux ported to the original ipod lineup.

http://www.ds-xtra.com/DSLinux

Porting what is needed to get it to boot linux properly on a DS takes effort as it is porting the whole OS. Having an x86 emulator that is complete enough to not just run a console, but actual launch windows is quite impressive indeed. It might even be complete enough at this point that it might launch a small linux build for 8086 or even 286 that runs in the emulator instead of running dos. If so it should run about the same speed depending on its feature set. I do think that the emulator is hard wired to boot dos though, so that would need to be changed.

What most likey would be instead of booting dos it would boot a port of this:
http://en.wikipedia.org/wiki/Embeddable_Linux_Kernel_Subset
QUOTE said:
"The Embeddable Linux Kernel Subset (ELKS) is a Unix-like operating system kernel that can run on Intel 8086-compatible microprocessors. ELKS, formerly known as Linux-8086, is a small subset of Linux and can run on machines with limited processor and memory resources, including machines with 16-bit microprocessors that are not supported by Linux."

There is also Minux which has about 600 unix programs and runs on a 8086 & 286
QUOTE said:
http://www.minix3.org/previous-versions/Intel-2.0.2/
Tiny (for 8086 and 286 machines with small memories and/or 360K
diskette drives)
...
Running under DOS in 8086/286 mode
Running under Windows in a DOS box in 8086 mode (experimental)
dosminix.txt - README (also present in ZIP file)
i86/DOSMINIX.ZIP - Bootstrap and 40M "disk"

Also I found this:
QUOTE
Q5.1. Can I start ELKS from DOS, like LOADLIN.EXE does for Linux ?
Steffen Gabel has written a package which can do this called BootELKS, and would very much like to hear from anyone who uses it, or has problems

So you might want to get a copy of BootELKS and see if you can launch ELKS from dos, or try launching the minux that can run in dos boxes.
 
Gamer4life said:
will this ever be ported or will u ever add support for the iSmart MM
It would be possible but then it would be up to Patrick if he wanted to do it or not ( he would just need convert the DS2x86 version as it is the same CPU although slower).

sightlight said:
What about Some Linux distro?
This is a PC BIOS for Nintendo DS right?

No it is not a PC BIOS it is a PC Emulator.

As for Linux then there already is a Linux for the DS it is called DSLinux however you need a memory expansion to run it properly.

QUOTE(sightlight @ Apr 15 2011, 06:47 PM)
The only thing is that the DS is not powerful enough?
The fact that the DS is not powerful enough is everything.
 
Gamer4life said:
will this ever be ported or will u ever add support for the iSmart MM

Well, I don't have access to the iSmart, nor any SDK for it, so even if it would be technically possible to port, I don't think it will happen.

sightlight said:
What about Some Linux distro?
This is a PC BIOS for Nintendo DS right?

DSx86 does emulate some (not all) parts of a PC BIOS, but that is mostly just so that I can get the 4DOS shell running. DSx86 also internally emulates most of the DOS functions, just like DOSBox does.

It would be an interesting side project to make DSx86 have a more low-level emulation, so that it could run whatever OS can run on an x86 platform, but that is something for the future.

Btw, I would like to see someone porting a Linux kernel for the DSTwo SDK, and I think it is curious that nobody has done that already. It shouldn't be all that difficult, and if I didn't have my DSx86 and DS2x86 projects I would attempt to do just that.

Also, feel free to try running Minix or ELKS under DSx86! It would be interesting to see what happens... I've even heard of someone running some 8-bit (was it Atari?) DOS emulator in DSx86, which is a rather amusing notion.. How about running that emulator in DSx86 running in a NDS emulator on a virtual Windows box running on a Linux machine! New world record of a number of emulation layers!
smile.gif


QUOTE(Tombstoner @ Apr 17 2011, 03:25 PM)
This looks like an excellent homebrew app! Keep up the good work!

Thanks!

Pate
 
Version 0.32 released!

This version only has one minor fix, the direct file reading to EGA VRAM has been implemented. This allows Rockford to run, and fixes the graphics corruption problems in Heimdall when talking to other characters.

Pate
 
pate,
are you officially entering this project in the ds or dsi category?

we are looking at it that anything in the dsi category has to benefit from the dsi-mode, an example would be to use the faster cpu/ram and offer something not possible in ds mode.

-another world
 
@Another World: Since there are fewer entries in the DSi category, I thought I would have a better chance of getting into the top three in that category. DSx86 can take advantage of the extra RAM and CPU speed in DSi mode, for example Windows 3.00a can use up to 8MB of XMS memory in DSi mode, but only about 512KB in DS Lite mode. The emulation also runs twice as fast.

I didn't want to make any DSi-exclusive features in it, so if those are needed then perhaps DSx86 should be moved into the plain DS category? If it is OK that it only has faster speed and more RAM available on DSi, then I would like to keep it in DSi category.

Edit: Just read your sticky about the thread name changes. This is a bit difficult decision, as DSx86 is first and foremost a DS homebrew, however the DSi mode does bring some significant improvements (many games, like Wing Commander II, that are only marginally playable in DS mode work much better in DSi mode). If it would be possible to enter DSx86 into both categories, that would of course be the best option for me. I quite understand if you feel this is not OK, though.

Pate
 
i figured you might say something like that. =) i discussed this issue with the staff and we are going to require you to pick one category or the other. we thought about it like this, if you enter it in both categories there is a great risk that votes get spread across both categories and you end up winning nothing at all. there is also the risk that you win a minor prize in the ds category but a major prize in the dsi category, but if there are more votes for the ds we would award you the ds category (looking at it as a tie breaker -- which one got more votes). it would also make the decision process much more difficult for us, as we will be trying to weigh your project in two categories.

let me know your thoughts,
-another world
 
I have been testing DSx86 in DSi mode for a few hours now (on CycloDS iEvolution), and I seem to be getting quite a few hangs and crashes that don't happen when running it in DS mode. It would be useful to know if this happens for anyone else before I make the decission about which category to choose. Obviously, if the crashes happen for others as well when running in DSi mode, it would mean that DSx86 is not fully compatible with DSi mode, and thus I will choose the plain DS category.

I made sure I use the latest 1.5.0 of libNDS, and I tested on both 2.2 and 2.3 firmware for iEvolution.

Any feedback is appreciated!

Edit: Hmm.. After some more testing (letting Supaplex run the demo in a loop) it seems that DSx86 hangs also in the normal DS mode. I tested on both CycloDS iEvolution and SuperCard DSTwo. What is rather worrying is that none of the old versions built with libNDS 1.3.2 hang, but all recent version built with the new 1.5.0 version of libNDS seem to hang after playing the demo for a while. I will need to look into this further to make sure it really is something in the new libNDS (I would suspect the FIFO features) that causes this problem.

I hope I can get this problem solved before the Homebrew Bounty closes!

Pate
 
Ok, I managed to build DSx86 against a hacked libNDS 1.5.0 version that does not cause intermittent hangs in audio-intensive games but still runs in DSi mode on CycloDS iEvolution.

Looking at the other entries, it seems like the correct place for emulators is the DSi category, so I will officially enter DSx86 into the DSi category. Emulators inherently like to use as much CPU power and RAM as is available, so it is rather natural that all emulators are in that category.

I'll release the fixed version next weekend, sorry for not fixing the hanging problem (that has been there since DSx86 0.24) sooner, but I have been focusing on DS2x86 and had not even noticed this issue until yesterday. I might actually still implement some DSi-specific features into the next version of DSx86, just to make it more suitable for the DSi category.

Next weekend is still well within the Homebrew Bounty deadline, isn't it? :-)

Pate
 
DSx86 version 0.33 released!

This version has the following fixes and improvements:
- Fixed a serious hanging issue introduced in version 0.24, caused by an incompatibility between my ARM7 code and libNDS version 1.5.0.
- Improved the speed and quality of EGA Smooth screen scaling code.
- DSi mode only: Implemented Smooth scaling for VGA 640x480 mode.
- Added a new configuration option "EMSSize" for choosing EMS/XMS RAM allocation.

Sorry that the past few versions have had this serious hanging issue, this version should now fix it. Also, this is the first version of DSx86 that has something DSi-specific: The 640x480 smooth scaling to 256x192 takes so much CPU power that plain DS Lite can not run this at 30fps, so this screen mode is only available when running in DSi mode. It is still recommended that you use 15fps screen refresh rate in this mode.

I planned to let this be the final version for the bounty, but it seems I would still have a week to fix any bugs you find. Thus, please report the bugs as soon as you find them!
smile.gif


http://dsx86.patrickaalto.com

Pate
 
Thanks for keeping at it. Sad to say this version breaks sudokuhax compatability: libfat failure, fails to locate .ini and .com, no shell system halted. I realise the main point in adding DSi mode was for supporting iEvo as per the contest, but once it's all over if you have spare time to devote to it, a version that works with sudoku again would be much appreciated. In the meantime good luck!
 
Since 0.33 Eye of the Beholder II locks up when switching to smooth scaling (DS Lite/M3 Real). On 0.31 it just got a little slow, I've jumped 0.32 because I've been away for some weeks.

BTW: Would DSX86 run on a 3DS in DSi mode?
 
Ok, thanks for the info Sir_Voe. I had to disable SD slot support from libNDS 1.5.0, to get enough free RAM to allow the DSx86 AdLib emulation to run without hanging. I assume sudokuhax needs the SD slot support? I'll see if I can find some way to free up more space from somewhere else to add the SD slot support back in, but as you said, the main goal for the DSi mode is for the iEvolution cart.

Edit: Roman_42, what resolution does the game use?

Pate
 

Site & Scene News

Popular threads in this forum