mirror of https://github.com/bsnes-emu/bsnes.git
![]() Ok, reverted the SPCRAM initialization pattern, which should fix Kamen Rider SD. Verified DMA timing steps, I had them right. Still need to verify HDMA/HDMA init, but they're almost definitely the same anyway. Also, I noticed the spc700.txt doc by anomie on romhacking.net was more recent than mine, and had info on $00f0 - TEST o_O So, went ahead and added emulation for 5 out of 8 of these bits. Notably, the CPU speed control bits and the RAM write enable bit. The other three aren't well understood enough to add support for them just yet. Now, the CPU speed control in the S-SMP means the SMP core is taking a significant speed hit to support this register. ~5% total speed hit, though I can probably get that number down a little with some more optimizations. I know the register is never used by any games, but you know how I am. I added support for it anyway. Note that the WIP doesn't like my inlining combination and is taking a much more significant speed hit with global optimizations turned on, so the WIP is ~13% slower than the last one. > On a side note, kernel streaming method works with event > notification per audio packet you feed into it, and that > notification receives full precision time slices even without > setting the timer resolution manually. At least, when I was using > kernel streaming in my NES emulator, it didn't need vsync to output > almost a smooth 60fps, while WaveOut mode outputs in bursts and > requires vsync to smooth out the frames. If you wouldn't mind turning that into a compatible derived Audio class, I'd love to add this as an option into bsnes :) It'll be drop-in and compile, so you don't have to worry about me not adding the code this time. No problem if you don't have the time / desire / patience to do this. Although, I wouldn't want to do this if it requires 3rd-party libraries / loading a special .sys driver into the kernel space / Windows DDK to compile / something else crazy like that. [No archive available] |
||
---|---|---|
src | ||
cart.db | ||
license.txt | ||
readme.txt |
readme.txt
bsnes Version 0.017 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. Known Bug(s) ------------ Uniracers / Unirally - 2-player mode sprite issues (mid-frame OAM writes not supported) Known Limitations ----------------- S-CPU - Invalid DMA / HDMA transfers (eg WRAM<>WRAM) not fully emulated - DMA / HDMA bus synchronization timing not supported - Multiply / Divide register delays not implemented S-SMP - Cycle breakdown of opcodes is theoretical, but mostly correct S-PPU - Uses scanline-based renderer. This is very inaccurate, but very few 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 S-DSP - Runs at 32khz. Hardware S-DSP likely runs at 1.024mhz to perform multiple reads / writes per sample. Sound is still output at 32khz, of course Hardware Bugs - CPUr1 HDMA crashing bug not emulated - CPU<>APU 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 SPC7110 Coprocessor used only by the following games: - Far East of Eden Zero - Far East of Eden Zero: Shounen Jump no Shou - Momotarou Densetsu Happy - Super Power League 4 DSP-3 Coprocessor used only by SD Gundam GX DSP-4 Coprocessor used only by Top Gear 3000 ST010 / ST011 / ST018 SETA coprocessors used by very few games BS-X (Broadcast Satellite) Add-on unit sold only in Japan that played specially-made games that were downloaded via satellite BS-X Flashcart Flash cartridge used by BS-X, as well as some standalone games by Asciisoft Bandai Sufami Turbo Special cartloader to play some Bandai games Super Gameboy Cartridge passthrough used for playing Gameboy games Unsupported controllers ----------------------- Mouse Super Scope Justifier Multitap (4-port) Multitap (5-port)