mirror of https://github.com/bsnes-emu/bsnes.git
![]() Okay, new WIP. This time there's a Windows binary. I improved input.hpp a lot, and now InputManager will scan the joypads as well. DirectInput is fixed, so the Windows port works again. Now that the InputCaptureWindow stuff is cleaned up, I made it only capture joypad assignment keypresses when that window has focus. I'm also planning to make a "fast assign all keys" button or something, like I used to have. Not sure how I want to do that just yet. I also tested triggering UI events through the joypad, it works great :) Now I just need to add entries to Input Configuration window for each UI action. Hmm, should I list the UI entries above or below the SNES joypad entries? (eg ui.fullscreen, joypad1.up, ... or ... joypad2.start, ui.fullscreen?) The rest of my time tonight I spent working on my cross assembler, xkas. Added sublabels to it, and some more parsing improvements. It's getting messy already, though. Trying to write complex grammar parsers in C++ usually does. But it has to be pure C++. No yacc, flex, etc. So, I'll have to go back through and find redundant code to factor out. Why would you care about xkas? Well, the sooner I get that done, the sooner I can help out the Mother 3 translation project a bit more. GBA cross assemblers suck for ROM hacking. > You have a big disclaimer about how it's perfectly legal to use "_0" > as an identifier inside a namespace... and then never actually do > it. I was using it for joypad button IDs, but I just decided to go with button_0n. I removed the comment in the latest WIP. Also added a way to index joypad IDs at runtime, and packed the enums into a linear list. > Apps that process input according to 'the characters printed on the > key' are my pet hate because I the Dvorak layout, so Z and X or WASD > are not nearly as convenient as you might otherwise expect. Would require supporting every keyboard in existence, and needing some sort of lower-level stuff to translate keycodes to raw keyboard IDs. The only issue you'll have to reassign your keys one time on first startup :( I envy you though for managing to switch to dvorak. I tried for a really long time, I could never get above ~40wpm, whereas I get ~110wpm with qwerty now. I think programming is the worst part, all of my brackets moved? Well, that or the fact that all apps use Ctrl+C/X/V/Z. That hack to make Ctrl+ use qwerty on dvorak doesn't solve the underlying issue, either. > If there is any other areas in the bsnes ppu rendering code that you > want me to verify in a similar fashion, please tell me, so that I > can try and code something to prove if it is right. Hahah, there sure are :) I think the biggest one is that I've yet to test setting BG3 tilesize to 16x16 when using Mode2/4/6's offset-per-tile mode. Does it affect indexing? I don't think that it does. May want to also toggle BG1/2 tilesize, just for fun, but I'm almost certain I have that right already. Don't worry about it if you're busy. It's obviously not a big deal since no game in the world uses the effect (that, or I already emulate it correctly), and I'll no doubt get around to it if I ever rewrite the PPU emulation. Either way, many thanks for helping me with this :D [No archive available] |
||
---|---|---|
src | ||
license.txt | ||
readme.txt |
readme.txt
bsnes Version 0.027 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. -------------- Shortcut Keys: -------------- Esc - Toggle menubar visibility F11 - Toggle fullscreen mode ------------------ Known Limitations: ------------------ S-CPU - Invalid DMA / HDMA transfers not fully emulated - 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 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 ST-011 SETA DSP used only by Quick-move Shogi Match with Nidan Rank-holder Morita ST-018 SETA RISC CPU used only 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)