This release adds SPC7110 emulation, without the need for graphics packs!!, and a rewritten S-RTC (real-time clock) emulator.
SPC7110 support means that Far East of Eden Zero, FEoEZ: Shounen Jump Edition, Momotarou Dentetsu Happy and Super Power League 4 are now all fully playable. I will warn you, the emulation is very slow in this version -- while most areas of each game will run at the same speed as other games, there are a few peak moments where speed will drop by up to ~50%. The reason for the slow-down is that I am currently uncertain how to determine the amount of data to decompress in advance, so I default to the maximum amount possible. The reason I am releasing now anyway, is because I beleive in the "release early, release often" paradigm. It will likely take me a few weeks to finish researching this chip, and I didn't want to keep the work I had private during that time. But rest assured, bsnes v034 should feature much faster SPC7110 emulation.
neviksti, Andreas Naive and jolly_codger worked non-stop on the SPC7110 decompression algorithm for the past two weeks. caitsith2 provided valuable data to the effort. I only wish that I could've been of some use, but alas, I had no role in this. In the end, it was neviksti who managed to crack all three(!!) compression modes of this chip, which turned out to be a customized 8-bit QM-coder with a prediction model. You can read more about this here. I would also like to thank Dark Force and John Weidman (aka The Dumper) for their research notes on the SPC7110 register interface.
For those who don't understand the hoopla about figuring out this compression algorithm when we already had graphics pack simulation, I should note that we have since found a few errors in these packs. Not to mention, you no longer need ~4-16MB packs for each game you wish to run. They work like any other game now. Better still, the chip can now be used to compress new graphics, eg for any future translation efforts on these titles.
The real-time clocks in both Far East of Eden Zero and Dai Kaijuu Monogatari 2 will now save a ".rtc" file in your save folder, which contains the clock as set by the video game, as well as a timestamp from your computer when the time was last updated. It uses the difference between the saved timestamp and current time to update the time. This allows you to specify any time you like, whereas previously bsnes would just use your computer's current time, ignoring the time you set in-game. It also allows the "round clock by 30 seconds" option in both games to work. I avoided this before because this method makes supporting daylight savings time and such impractical, although I should note that the original hardware did not support DST, either. This method was required to pass the SPC7110 tests, and is overall much more faithful to how the original chips worked.
Once again, I'd really like to personally thank neviksti for his tireless efforts. Eliminating graphics packs from SNES emulation was one of my primary reasons for getting involved in the SNES emulation scene. That neviksti managed to crack this algorithm means a lot to me. Thank you so much, neviksti. This release is dedicated to you, now go get some sleep ;)
bsnes Version: 0.033 Author: byuu ======== General: ======== bsnes is a Super Nintendo / Super Famicom emulator that began on October 14th, 2004. The latest version can be downloaded from: http://byuu.org/ Please see license.txt for important licensing information. ============== Configuration: ============== bsnes has two configuration files: bsnes.cfg, for program settings; and locale.cfg, for localization. For each file, bsnes will start by looking inside the same folder where the bsnes executable is located. If said file is not found, it will then check your user profile folder. On Windows, this is located at "%APPDATA%/.bsnes". On all other operating systems, this is located at "~/.bsnes". If said file is still not found, it will automatically be created in your user profile folder. If you wish to use bsnes in single-user mode, be sure that both files exist inside the same folder as the bsnes executable. If they do not, you can simply create new blank files and bsnes will use them in the future. If you wish to use bsnes in multi-user mode, simply delete these two files from the bsnes executable directory if they exist. If you wish to have multiple configuration profiles for the same user, you will need to make copies of the bsnes executable, and use each one in single-user mode. ================== Known Limitations: ================== S-CPU - Multiply / divide register delays not implemented S-PPU - Uses scanline-based renderer. This is very inaccurate, but few (if any) games rely on mid-scanline writes to function correctly - Does not support FirstSprite+Y priority - OAM / CGRAM accesses during active display not supported correctly - RTO flags are not calculated on frames that are skipped when frameskipping is enabled. This provides a major speedup, however it will cause in issues in games that test these flags, eg the SNES Test Program Electronics Test. Turning frameskipping off will allow RTO flag calculation on every frame Hardware Bugs - S-CPU.r1 HDMA crashing bug not emulated - S-CPU<>S-SMP communication bus conflicts not emulated ===================== Unsupported Hardware: ===================== SA-1 Coprocessor used in many popular games, including: - Dragon Ball Z Hyper Dimension - Kirby Super Star - Kirby's Dreamland 3 - Marvelous - SD Gundam G-NEXT - Super Mario RPG Super FX Coprocessor used in many popular games, including: - Doom - Star Fox - Star Fox 2 (unreleased beta) - Super Mario World 2: Yoshi's Island ST-011 SETA DSP used by Quick-move Shogi Match with Nidan Rank-holder Morita ST-018 SETA RISC CPU used by Quick-move Shogi Match with Nidan Rank-holder Morita 2 Super Gameboy Cartridge passthrough used for playing Gameboy games ======================== Unsupported Controllers: ======================== Mouse Super Scope Justifier Multitap (4-port and 5-port)
bsnes (TM) Reference License Copyright (C) 2004 - 2008 byuu All rights reserved 1. Definitions The terms "reproduce", "reproduction", "distribute" and "distribution" have the same meaning here as under U.S. copyright law. "The software" means this software package as a whole, including, but not limited to, this license, binaries, source code, documentation, and data. "You" means the licensee of the software. "The licensor" means the copyright holder of the software, byuu. 2. Grant of Rights Subject to the terms of this license, the licensor grants you a non-transferable, non-exclusive, worldwide, royalty-free copyright license to reproduce the software for non-commercial use only, provided the software remains unmodified, and there is no charge for the software itself, its' use, nor for the medium upon which the software is distributed. The reproduction of modified or derivative works of the software is strictly prohibited, except when transmitted solely to the licensor. 3. Limitations This license does not grant you any rights to use the licensor's name, logo or trademarks. The software is provided "as is", and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the licensor be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of the software, even if advised of the possibility of such damage. In the event that this license is determined to be invalid or unenforceable, the Grant of Rights will become null and void, and no rights shall be granted to the licensee, within the scope of U.S. copyright law. 4. Exemptions The software includes the work of other copyright holders, which is licensed under different agreements, and exempt from this license. Below is a complete list of all such software, and their respective copyright holders and licenses. Further, respective source code files are labeled with their correct licensing information in the header. The lack of such a header indicates said file falls under the bsnes license. HQ2x filter, author: MaxST, license: LGPL JMA decompressor, author: NSRT Team, license: GPL (*) NTSC filter, author: blargg, license: LGPL zlib decompressor, license: zlib license (*) bsnes has received an exemption from the copyright holder to use this work. The software also includes works which have been released to the public domain, which are not bound to any licensing agreements. Below is a complete list of all such software. libco, author: byuu libui, author: byuu OBC-1 emu, author: byuu S-DD1 decompressor, author: Andreas Naive SPC7110 decompressor, author: neviksti S-RTC emu, author: byuu Any software listed above as exemptions may be relicensed individually from bsnes under their respective terms. However, no bsnes licensed portions can be combined with such a derivative work. The software also includes the work of other copyright holders, which is licensed under the terms of the bsnes license, with permission to do so from the respective authors. Below is a complete list of all such software. Cx4 emu, authors: anomie, Overload, zsKnight, Nach DSP-1 emu, authors: Overload, John Weidman, Neviksti, Andreas Naive DSP-2 emu, author: Overload DSP-3 emu, authors: John Weidman, Kris Bleakley, Lancer, z80 gaiden DSP-4 emu, authors: Dreamer Nom, John Weidman, Kris Bleakley, Nach, z80 gaiden S-DSP emu, author: blargg ST-010 emu, authors: John Weidman, Matthew Kendora, Overload, Feather
© 2008 byuu - archive.is/ZCfJc