DSx86 v0.15 Beta - 模擬器

Dinah avatar
By Dinah
at 2010-06-21T15:38

Table of Contents

DSx86 v0.15 Beta is released. DSx86 is a PC emulator for Nintendo DS. It's
purpose is to allow you to run old DOS games on your Nintendo DS game console.

DSx86 v0.15 Beta Changelog:

This version has the following major changes:

No more need for the LOADFIX command! See the previous blog post for more
info about how I changed the code to enable this, if you are interested.
EGA horizontal smooth scrolling fixed. The horizontal scrolling was very
jittery in games like Supaplex, Heimdall and Crystal Caves, for example.
Again more info in my previous blog post.
The BIOS window scrolling functions (up/down) are now implemented for each
supported graphics mode and for both directions.
Removed the check for running zeroed data, as this prevented the Great Escape
game from starting. Now you won't get an Unsupported Opcode error in this
situation, the game will probably just hang.
Fixed a bug in MOV SP,SReg opcode. For example a game called Berlin 1948 used
SP as a loop index with SS as the initial value, and the buggy opcode caused
SP to get zeroed, which in turn caused the game to fill the entire screen
when it only wanted to write a few pixels.
Various game-specific fixes, as mentioned in my previous blog post.
All the missing opcodes (that weren't caused by the game executing data) in
the debug logs I have received have been implemented. So quite a few games
should now progress further than before.

Since the last blog post I have also debugged a couple of new games. I spent
many hours (including the whole of yesterday) debugging the memory allocation
problem in Abandoned Places, but still could not figure out why it skips
allocating a 64KB block of memory (that it does allocate in DOSBox) and then
crashes when it clears this block that it never allocated in the first place!
It is quite difficult to trace something that does not happen, so I still
need to think up new ways to approach this problem.

Another game that I only started debugging today is Gods. It seemed to hang
at the beginning with a black screen, and it didn't even respond to the user
breakpoint request. Luckily this was not a problem when running it in iDeaS,
and with it I was able to find out that my VGA Display Status Register
emulation was still not correct. The bit that returns whether the display is
in Horizontal Blank should also return the Vertical Blank time. When I added
that, I got Gods to progress up to the start menu, but the graphics were
completely garbled. After some debugging I noticed that it goes to 640x350
EGA mode, but then directly writes new values to the CRTC registers so that
the display size is actually 320x200! My screen blitting functions are based
on the graphics mode byte, so the game used the graphics memory like it was
320x200 pixels while my blitting routines used it like a 640x350 layout. Btw,
the game does not look correct on DOSBox either (at least on my rather old
version), but as DOSBox uses the real CRTC registers it is not as broken as
it was in DSx86.

I added a quick hack to the CRTC register setting so that if the mode is
640x350 but the new CRTC register value tells the horizontal size to be 320,
I change the graphics mode to 320x200. This allowed the game to display a
properly-sized screen, but there are still some severe problems with
scrolling and paging, so the game is not playable yet. I believe I need to
change my blitting method completely to read the current CRTC register values
instead of the graphics mode, to properly handle situations where the game
accesses the CRTC registers directly.

Anyways, this version is yet another fix version without any major new
features. My summer vacation starts within a week (Yippee!), so after next
week I'll start working on the bigger issues, like improving the AdLib
emulation, implementing the missing SB DSP commands, adding better screen
scaling methods, improving the mouse emulation etc etc. I am very much
looking forward to being able to really focus on adding the missing features
to DSx86.

Thanks for your interest in DSx86, and please send me debug logs and update
the Compatibility Wiki as you test games on this new version! Here below are
pictures of the Great Escape and Berlin 1948, which should now run in DSx86.


--

All Comments

OpenBOR v3.0 Build 2831

Puput avatar
By Puput
at 2010-06-21T15:37
http://lavalit.com/index.php?action=svn OpenBOR v3.0 Build 2831 is released. OpenBOR is an open source implementation of the game engine Beats of Rage. Pl ...

ValDanX r74(3210)

Annie avatar
By Annie
at 2010-06-21T10:39
http://sourceforge.net/projects/valdanx/ r74 1.New interface for ValDanX EE. 2.Fixed small bug last revision. r73 Fix bugs last revision. r72 1.New interf ...

三國志大戰V3.0

Oscar avatar
By Oscar
at 2010-06-21T01:06
恩恩我好像錯過了什麼不過算了XD 本來還想戰一下matsuji但老子升官心情好所以看他可憐科科科 介紹一下Lindbergh這玩意好了 這塊是由SEGA在05年第3季時發表的 與其說它是基板不如說它是一台電腦 但大家都知道遊戲專用的平台不需要跑一些垃圾OS或BBC 所以它能比家用PC更能優化於遊戲 ...

三國志大戰V3.0

Valerie avatar
By Valerie
at 2010-06-21T00:32
※ 引述《MAGICXX (逢甲阿法)》之銘言: : 因為剛剛在西洽看到三國志大戰的影片 : http://zoome.jp/hideoj7w/diary/49/ : 又想到之前玩NDS版的三國志大戰 天 : 畫面根本不能比嘛.... : 大型機台的三國志大戰 畫面有夠精緻 : 人被炸飛的時候 感覺好像都看的 ...

FFT簡易版

Xanthe avatar
By Xanthe
at 2010-06-21T00:00
首先感謝大大分享的版本 尤其是JB一折真是超開心 不過造成了我第一章還沒過了女魔法師Lv.9已經全滿了(含算術)= = and#34; 廢話不多,相信許多人玩過這款經典 小弟也是玩到爛,卻仍不滿足 於是找到許多patch 這邊分享給大家~ 以下path都是從天幻網找到轉貼的請記得低調阿 1 ...