bsnes v0.036 - 模擬器

Jacob avatar
By Jacob
at 2008-09-15T11:58

Table of Contents

http://byuu.cinnamonpirate.com/

This release fixes a somewhat serious bug introduced in v035, and also vastly
improves Windows support for non-ANSI filenames.

The bug was triggered when HDMA would occur during DMA. If the DMA were long
enough, subsequent HDMA transfers would be blocked. This caused graphical
glitches in Star Ocean, Super Mario Kart, and possible more games. If you
noticed any regressions from v034 to v035, this was almost certainly the
cause. Once again, we′re operating under the assumption that there are no
known bugs currently, so please let us know here if you find any.

I′ve also rewritten the file handling for the emulator. On Windows,
attempting to load a file with non-ANSI characters (eg Russian, Japanese,
etc) would cause these characters to be removed. This meant that no version
of bsnes thus far could load these files. This problem was exacerbated when I
ported the user interface to Unicode (UTF-16), this caused even config and
locale file loading to crash the emulator.

The root of the problem is that Windows only accepts non-ANSI strings in
UTF-16 format, whereas bsnes′ UI wrapper converts strings to UTF-8
interally. When passing these file names to the standard file functions
(fopen(), std::ifstream, etc), file loading would fail. To fix this, I
replaced all file access functions with a new version that would convert the
UTF-8 filenames back to UTF-16, and use appropriate access functions
(_wfopen(), _wmkdir(), etc.)

... but there is still one limitation to this: ZIP and GZ support use zlib,
and JMA support uses libjma. Neither of these libraries convert UTF-8 strings
to UTF-16 before attempting to open files. Due to licensing issues, as well
as technical issues, I am unable to correct this at this time. What this
means is that loading ZIP, GZ and JMA files; on Windows only; and with
Unicode characters in the file name only; will cause the image load to fail.
Loading uncompressed images (SMC, SFC, etc) will work with or without Unicode
on all platforms.

I tried to be as thorough as possible with this fix: command-line arguments
(via CommandLineToArvW + GetCommandLineW), user path (via SHGetFolderPathW),
real path (via _wfullpath),folder creation (via _wmkdir) and file
access/existence checks (via _wfopen) were updated in all cases. I also
updated file loading for ROMs (SMC, SFC, etc), save RAM (SRM), real-time
clock save (RTC), cheat files (CHT), UPS patches (UPS) and both configuration
files (bsnes.cfg and locale.cfg.) Configuration file loading should work even
if your username contains non-ANSI characters, and it should also detect
config files put in the same folder as the bsnes executable, even if the path
to the executable contains non-ANSI characters.

Still, if you spot any bugs, aside from the ZIP/GZ/JMA loading issue, please
let me know via e-mail at setsunakun0; at hotmail.

Lastly, I′d like to apologize for the poor support for non-ANSI filenames in
the past. Using an English version of Windows didn′t expose the problems to
me. I′ll be more thorough in the future with this.

--

All Comments

SEGA game gear 我想破關阿Q_Q

Audriana avatar
By Audriana
at 2008-09-15T10:52
嗯嗯,知道問題了~ 您少拿一把マジカルセイバー,這把劍的功用是能把背景為魔法陣圖案 的格子點成磚塊,入手方法如下: 在城鎮中先變成老鼠劍士(最矮的那隻),在一開始地方左邊一點會有一個 ㄇ字型的花色磚塊,這磚塊是專供老鼠走的那種,然後打掉磚塊往水裡跳 ※ ...

MAME接關問題

Daniel avatar
By Daniel
at 2008-09-15T09:23
為何有幾款遊戲我接關後無法選人 例如有ABCD四位主角 但 我用A死掉後因該是可以在挑選其他人 可是勒 好像都不行 請問是哪裡設定有問題 謝謝 -- - ...

MAME XML Cheats Collection for MAME …

Emma avatar
By Emma
at 2008-09-15T02:20
可能是MAMEp的問題吧 這個東西的老問題似乎還是存在 就是會讓某些遊戲無法執行 其中以NEO-GEO的遊戲為最 解決方法就是把作弊功能關掉 不過因為有IPS的輔助 所以還是可以享受到作弊的快感 但畢竟還是cheat比較方便功能也比較細膩 - ...

有中華棒球隊的遊戲

Vanessa avatar
By Vanessa
at 2008-09-14T23:55
◎.求檔前請先參閱板規,並請依照格式撰寫(本文可用 Ctrl+y 消去) ______________________________________________________________________________ 遊戲平台: mame GBA 超任 sega ...

SEGA game gear 我想破關阿Q_Q

Tom avatar
By Tom
at 2008-09-14T22:44
最近心血來潮想要回味一下童年玩過的遊戲 在網路上好不容易找到並下載回來之後 發現當年卡關的地方… 現在還是一樣過不了阿qq 難道這輩子都破不了關了嗎~Orz 這是SEGA的掌上型電玩(sega game gear 也有人叫它小sega) 上面的遊戲(Monster World II) http: ...