Individual emulators are also renamed to the following: bnes -> nSide-fc bsnes -> nSide-sfc bgb -> nSide-gb bgba -> nSide-gba nSide adds new devices to the Famicom emulator's controller ports. The supported devices are: *Standard controller *Four Score *Zapper (port 2 only) *Power Pad (port 2 only) In addition, it adds the Famicom expansion port for its own devices. The only expansion port devices supported are: *Standard controller (counts as Player 3) *4-Players Adaptor *Beam Gun (Zapper) *Family Trainer (Power Pad) *VS. Panel (VS. arcade games only; if you try to select this for a Famicom or PlayChoice-10 game, it instead selects None, though the menu does not properly recognize that the device change failed) Please be aware that a great majority of Famicom and NES games support the use of Player 3 and Player 4 as substitutes for Player 1 and Player 2, including ones that use the NES Four Score such as A Nightmare on Elm Street. If the expansion slot is not explicitly set to "None", this can result in Player 3's controller controlling both Player 1 and Player 3. The Export Memory functions for the Famicom and Super Famicom emulators now export a limited selection of PPU registers in BML format and expansion chip memory (except for the NEC DSPs). The Game Boy and Game Boy Advance emulators will also dump their RAMs but not registers. (This function was removed in higan v094r06. Preserved in nSide for the benefit of 3rd-party tools that depend on it) nSide uses different directories for storing configuration settings, save states, and shaders so as to not conflict with higan. In Windows, the configuration files are in "%AppData%\nSide-t". You will need the GBA BIOS to play Game Boy Advance games. This is no different from higan. GBA BIOS sha256: fd2547724b505f487e6dcb29ec2ecff3af35a841a77ab2e85fd87350abd36570 In addition, the PlayChoice-10 takes 3 files: BIOS for dual-screen sha256: 12200cee0965b871d2a47ac09ef563214d1b1a8355beda8bd477e21a561682e8 BIOS for single-screen sha256: 64c1a7debf4729941c60e4c722ed61282ebd2f36928a30e55c9631477ce522ac Composite character ROM (3 files 8P + 8M + 8K put together for a 24KB ROM) sha256: a8bf9c58e31dee0a60a2d480bd707c323212fba8963cc35a47423cadd1d7ed26 Composite palette ROM (3 files 6F + 6E + 6D put together—each byte is the corresponding nybble with a leading 0—for a 768-byte ROM) sha256: 9f639da2e0248431b59a9344769a38fad8b64742ce6e0e44534e6918b8977a0a) ...but if you do not wish to emulate the PlayChoice-10, the above 3 files are not necessary. Keep in mind that PlayChoice-10 emulation is still incomplete, so these files will not be very useful right now. Known Bugs: Famicom: *Saving a state while the Zapper or Beam Gun is connected will cause the emulator to hang. If the cursor was captured, it can be hard to rescue. *The VS. Zapper with its own separate protocol is badly supported (timing of light sensor is not well understood). Super Famicom: *Magical Drop (JP) (1.0) does not play voice effects, and it hangs when trying to show the Game Over screen in Endless Mode (とことんモード). Inherited from higan v094. *Super Bonk's demo sequence is mis-timed. Bonk falls short of entering a pipe, which ruins the rest of the demo as he continues reading inputs and gets stuck in the area above the pipe. It is likely that this bug is related to the Magical Drop bug above. Inherited from higan v094. Game Boy: *When loading a Game Boy game in Game Boy Color mode, colors are applied to the wrong areas, making game displays terrible on the eyes. Inherited from higan v094. Game Boy Advance: *The Classic NES Series games will not work. Loading them would cause higan to hang, and so too do they cause nSide to hang. There is still much to know about the Game Boy Advance's inner workings, so it is recommended that you either use mGBA (by endrift) to play these games, or play the original Famicom/NES versions instead. Inherited from higan v095. =========================== Changes from higan: General =========================== Changed "higan" to "nSide" and added a Contributors field for Ryphecha and Cydrak, which were credited in comments in fc.hpp and gba.hpp, on the Configuration Settings Advanced tab and Cocoa About box. Credited blargg and Jonas Quinn as contributors to higan (blargg wrote the DSP code for the compatibility and performance cores, and Jonas Quinn contributed many fixes for the SFC DSPs and the Game Boy). There may still be more that I am missing, so let me know if you or someone else needs to be credited. Moved " Reformatted the "About" text to show contributors to higan and show which program nSide branched from. Renamed "{game}/higan" folder for save states to "{game}/nSide". Renamed the ethos-based UI to "nSide-e", imported tomoko with hiro, and re-branded it as "nSide-t". Notable, nall v094r37 dropped nall::group, which phoenix depends on, so moved nall::group's definition into phoenix/core/core.hpp. Renamed icarus to "cart-pal". ============================ Changes from higan: nSide-fc ============================ Revised emulator name and copyright information. Moved fc/video/*, fc/audio/*, and fc/input/* into fc/system and changed references to point to the new locations. Changed the Serializer version from 2 to 127. This step is necessary because of the addition of the Famicom's expansion port. Why 127 instead of 3? To account for official revisions in the future. The read registers at $4016 and $4017 only have 5 bits each, not 6, so cpu.mdr() is ANDed with 0xe0 instead of 0xc0. Commented out a line in ppu_read for the OAMREAD register that was making Magic Floor's ball sprite behave strangely. The mystery of this behavior is still not solved, however: a shadow ball copies the ball's previous X coördinate upon update, which does not appear in Nestopia or FCEUX. Added emulation of PPU open bus behavior according to the notes blargg wrote when he published his ppu_open_bus demo. ppu.status.mdr will decay to 0x00 if not refreshed after about 600 milliseconds, and reading from the palette will put the 2 highest MDR bits into the read value. Changed PPU timing to account for the dummy tick in front of every scanline. bnes had pixel rendering on ticks 0-255 of every scanline, whereas an actual PPU renders on ticks 1-256. Added direct color support (when rendering is disabled and PPUADDR points to the palette at $3F00-$3FFF, the selected color will render instead of the background color). Added PAL support, which reduces games to 50Hz and swaps the red and green color emphasis bits. Overhauled the device implementation to depend on controller objects like in the Super Famicom emulator. Added the ability to change controllers for the Famicom, which required adding an Interface#connect method that calls Input#connect. Added Four Score support. It is split into 2 devices, so for best results, plug a Four Score into both slots. Added support for the Zapper/Beam Gun. Added support for the Power Pad/Family Trainer. Added support for the 4-Players Adaptor. Light is defined as any Famicom color with a luma of 0x20 or greater and a chroma less than 0x0D, not taking into account emphasis or RGB PPUs. Added new board types: NES-EVENT // Nintendo World Championships 1990 NES-QJ // Super Spike V'Ball / Nintendo World Cup NES-SF1ROM // Bases Loaded II (1.2) HVC-UN1ROM // 戦場の狼 (Senjou no Ookami) (JP) PAL-ZZ // Super Mario Bros. / Tetris / Nintendo World Cup (EU) BANDAI-74*161/02/74 // Oeka Kids (JP) BANDAI-74*161/161/32 // Kamen Rider Club (JP) BANDAI-PT-554 // Family Trainer 3 - Aerobics Studio (JP) IREM-74*161/161/21/138 // ナポレオン戦記 (Napoleon Senki) (JP) IREM-G101 // Image Fight (JP) IREM-H3001 // 大工の源さん2 (Daiku no Gen-san 2) (JP) IREM-HOLYDIVER // Holy Diver (JP) IREM-TAM-S1 // 快傑ヤンチャ丸 (Kaiketsu Yanchamaru 2) (JP) JALECO-JF-05..08 // 忍者じゃじゃ丸くん (Ninja Jajamaru-kun) (JP) JALECO-JF-09 // じゃじゃ丸の大冒険 (Jajamaru no Daibouken) (JP) JALECO-JF-10 // うる生やつら ルムのウエヂングベル (Urusei Yatsura) (JP) JALECO-JF-11 // 妖怪倶楽部 (Youkai Club) (JP) JALECO-JF-14 // バイオ戦士DAN インクリーサーとの闘い (Bio Senshi DAN) (JP) JALECO-JF-16 // 宇宙船コスモキャリア (Uchuusen: Cosmo Carrier) (JP) JALECO-JF-24 // Magic John (JP) JALECO-JF-25 // 忍者じゃじゃ丸 銀河大作戦 (Ninja Jajamaru G.D.) (JP) NAMCOT-129 NAMCOT-163 // 貝獣物語 (Kaijuu Monogatari) (JP) NAMCOT-175 NAMCOT-340 NAMCOT-34xx // SkyKid (JP), The Quest of Ki (JP) SUNSOFT-4 // After Burner (JP) TAITO-TC0190FMC TAITO-TC0350FMR TAITO-TC0690FMC Added aliases for existing board classes: HVC-?????? to NES-?????? // Games released in Japan NES-HROM to NES-NROM // Donkey Kong Jr. (JP) NES-RROM to NES-NROM // Duck Hunt (JP) NES-RROM-128 to NES-NROM // Clu Clu Land (NA) NES-RTROM to NES-NROM // Excitebike (JP) NES-SNWEPROM to NES-SxROM // Final Fantasy II Prototype (NA) NES-SROM to NES-NROM // Mario Bros. (JP) NES-STROM to NES-NROM // Pinball (JP) BANDAI-FCG-1 to BANDAI-FCG // ドラゴンボール 大魔王復活 (JP) // (Dragon Ball: Dai Maou Fukkatsu) BANDAI-FCG-2 to BANDAI-FCG // ドラゴンボール3 悟空伝 (JP) // (Dragon Ball 3: Gokuu Den) BANDAI-JUMP2 to BANDAI-FCG // ファミコンジャンプII 最強の7人 (JP) // (Famicom Jump II: Saikyou no 7 Nin) BANDAI-LZ93D50 to BANDAI-FCG // クレヨンしんちゃん オラとポイポイ (JP) // (Crayon Shin-chan: Ora to Poi Poi) IREM-BNROM to NES-BNROM // 魔鐘 (JP) // (Mashou) IREM-FCG-1 to BANDAI-FCG // 西村京太郎ミステリー ブルートレイン殺人事件 (JP) // (Nishimura Kyoutarou Mystery: Blue Train // Satsujin Jiken) IREM-NROM-128 to NES-NROM // Zippy Race (JP) IREM-NROM-256 to NES-NROM // Spelunker (JP) IREM-UNROM to NES-UNROM // Spelunker II (JP) KONAMI-CNROM to NES-CNROM // Gradius (JP) KONAMI-NROM-128 to NES-NROM // Road Fighter (JP) KONAMI-SLROM to NES-SLROM // The Adventures of Bayou Billy (NA) KONAMI-TLROM to NES-TLROM // Super C (NA) KONAMI-UNROM to NES-UNROM // Life Force (NA) NAMCOT-3301 to NES-NROM // Galaxian (JP) NAMCOT-3302 to NES-NROM // Mappy (JP) NAMCOT-3305 to NES-NROM // The Tower of Druaga (JP) NAMCOT-3311 to NES-NROM // Tag Team Pro-Wrestling (JP) NAMCOT-3312 to NES-NROM // Dig Dug II (JP) TENGEN-800008 Added unlicensed aliases for existing board classes: TENGEN-800003 to NES-NROM // Pac-Man (Unlicensed) (NA) TENGEN-800008 to NES-CNROM // Tetris: The Soviet Mind Game (NA) TENGEN-800042 to SUNSOFT-4 // After Burner (NA) Added unlicensed board types: (note that they are sectioned off separately from the licensed ones for easy removal): CAMERICA-BF909x // Micro Machines CAMERICA-ALGN CAMERICA-ALGQ COLORDREAMS-74*377.cpp // Bible Adventures MLT-ACTION52 // Action 52 AVE-NINA-xx // Impossible Mission II SingleChip // Magic Floor (nocash) Many games published on Camerica boards were made by Codemasters who is notorious for exploiting rarely-used aspects of the NES. This is not a problem with the Camerica board but with Famicom hardware timing. Prevented saving to non-existent SRAM/WRAM for the following board families: SxROM TxROM The board definitions for the following board families now read the board and chip types and choose a board and chip revisions accordingly: NROM HROM has no solder pads to select mirroring and is locked to vertical mirroring. SxROM (MMC1) SEROM, SHROM, and SH1ROM have pin A14 hooked directly between the control deck and the program ROM, which prevents the ROM from being bankswitched. Prevented reading from and writing to non-existent PRG RAM. This bug prevented Bionic Commando from booting. Added tracking of the last CHR bank used, so that the legacy PRG RAM disable bit and 256 KB PRG bank bit will dynamically switch as the PPU renders. Can be used for software IRQs but will catastrophically crash the game if misused. TxROM (MMC3) Added TQROM support, which has both CHR-ROM and CHR-RAM (selected via bit 6 of the bank number). Needed to play High Speed and Pin Bot. Added TxSROM support, which selects mirroring via bit 7 of whichever CHR banks control PPU $0000..$0FFF. Needed to play Armadillo. Added support for TVROM. TR1ROM support already existed, which provides four-screen mirroring, but it did not recognize TVROM as also having it. Needed to play Rad Racer II. Added support for Acclaim's MC-ACC chip, which fires IRQs on PPU A12 falling edges instead of rising edges. Needed to properly display The Incredible Crash Dummies's messages during its intro. ExROM (MMC5) Fixed a bug in CHR mode 0 concerning background access to the PPU. Originally, though an increment of 1 to $512B advanced by 0x2000 bytes, PPU $1000..$1FFF acted as a mirror of $0000..$0FFF, making the latter half of each bank inaccessible. It now accesses the latter half of the bank. Sprite access was not affected by the bug. AxROM PxROM FxROM Added bus conflict emulation to the following board families (assuming that the written value is ANDed with the ROM byte): UxROM Added support for the 74HC08 chip, which is required to play Crazy Climber. Normal UxROM games use the 74HC32 chip. CxROM Added support for CPROM, which restricts PPU $0000-0FFF to the first bank while $1000-1FFF is a 4KB switchable bank. Needed to play Videomation. Added support for CNROM security CHR chip enables. Each game has a specific CHR bank that is read from manifest["cartridge/board/security/pass"], and that bank is the only one that maps in the CHR. Spy vs. Spy uses 0x1. AxROM (AMROM only; AOROM has no quality database coverage) BNROM GNROM/MHROM Made the MMC3 read the PPU's address bus (status.chr_abus) instead of ticking on every CHR ROM/RAM read. Added support for VRC2a, which is similar to VRC2c except that CHR banks are right-shifted by 1. "cartridge/chip/pinout/chr-shift" indicates the shift amount, with 0 used by VRC2b and VRC2c, and 1 used by VRC2a. VRC2a was used in ツインビー3 ポコポコ大魔王 (TwinBee 3: The Aimless Demon King). VRC2b was used in 魂斗羅 (Contra). VRC2c was used in がんばれゴエモン外伝 けいた黄金キセル (Ganbare Goemon Gaiden). The variants VRC4a, VRC4b, VRC4d, VRC4e, and VRC4f (if it exists) were all supported already, but VRC4c had been locked out, making it impossible to run がんばれゴエモン外伝2 天下の財宝 (Ganbare Goemon Gaiden 2). Not anymore. VRC4c's pinout is: "pinout a0=6 a1=7" Added the ability to read the VRC6 pinout from manifest.bml. Before, it would dynamically determine the pinout based on the presence of SRAM. 悪魔城伝説 (Akumajou Densetsu/Castlevania 3) uses "pinout a0=0 a1=1". Esper Dream 2 and 魍魎戦記マダラ (Mouryou Senki Madara) use "pinout a0=1 a1=0". Split chip code for the Bandai chips into a separate file alongside the MMCs and VRCs. Made register placement in the Bandai boards more strict based on board type. "board type=???" determines how to lay out the registers. FCG-1 and FCG-2 use $6000-7FFF, and LZ93D50 and JUMP2 uses $8000-FFFF. Additionally, a second "chip type=???" line determines which type of EEPROM to use (24C01 for 128-byte and 24C02 for 256-byte). Leave the second line out to exclude EEPROM (and use SRAM if it exists). True EEPROM support is still not in, however. クレヨンしんちゃん オラとポイポイ (Crayon Shin-chan: Ora to Poi Poi) is the only game using the LZ93D50 to not have any way of saving data, and ファミコンジャンプII 最強の7人 (Famicom Jump II) is the only game on any variant of this board to use normal SRAM at $6000-7FFF. Added support for the Camerica boards ALGQ, BF9096 and BF9097. Needed to play Fire Hawk and the Quattro multicarts. Added the exportMemory function, which can dump WRAM, CIRAM, CGRAM, OAM, cartridge PRG RAM, and cartridge CHR RAM. Added limited support for the VS. System. Only UniSystem games will work right now (Tennis and Baseball are DualSystem games that would require emulating 2 Famicoms). The Start and Select buttons are disabled in favor of Buttons 1, 2, 3, and 4, which can be configured in the new Famicom Expansion device, the VS. Panel. The VS. Panel also controls the service button and coin slots. It is connected automatically and cannot be disconnected, but a limitation of the UI prevents the interface from acknowledging that a device change was refused. VS. games are stored in a separate "VS. System" folder in the library, just like PlayChoice-10 games. The VS. manifest format selects the PPU revision in "cartridge/vs/ppu/revision" and specifies DIP switch settings in the same format as the Nintendo Super System's DIP switch settings ("cartridge/vs/setting/option/value"). Added support for loading games with the .pc10 extension. Currently, PlayChoice-10 games load the same way as Famicom games but with the RGB palette in the 2C03. It will now load the BIOS from the PlayChoice-10.sys folder and throw a warning if one is not found, but because it is not actually used in any way, you can put any 16384-byte file in there to avoid the warning. Note that RGB PPUs do not support the Color Emulation option or Display Emulation shader. They display the same colors as when both are turned off. Which PPU to use is decided by the presence of the "pc10" node in the cartridge manifest, so if you want to bypass loading the PlayChoice-10 BIOS while still using the RGB PPU, rename a ".pc10" folder to ".fc". Prepared the video renderer for dynamic adjustment of screen width for VS. DualSystem and PlayChoice-10 games. To set the width to 512 pixels for a VS. DualSystem game, add a second "vs" node with a "ppu" child. It is not enough to simply have a 2nd "vs" node, said node needs to have a "ppu" node as a child to activate the double width. This is currently not useful because of lack of true DualSystem support. The height is set to 480 if using the PlayChoice-10's dual screen mode (set in PlayChoice-10.sys/manifest.bml), and, as a basic demonstration of the horrid frame-based renderer, it will display the PlayChoice-10 logo at the top as you play. ====================================================== Changes from higan: processor/r6502 (affects nSide-fc) ====================================================== BRK was improperly clearing the Decimal flag when it should leave it alone. Only the interrupt flag is set now. An NMI can now redirect a BRK if it occurs after BRK's 4th cycle (after pushing the return vector into the stack but before pushing register P). Opcode 0x80 was being treated as NOP abs, when it should be NOP #imm. NOP #imm now advances the program counter properly, fixing Puzznic's columns of corruption bug. Added support for the unofficial opcodes ALR, ANC, AXS, DCP, ISC (ISB), LAX, RLA, RRA, SAX, SLO, SRE, and STP (KIL). ============================= Changes from higan: nSide-sfc ============================= Revised emulator name and copyright information. Credited multiple people who helped out with bsnes in the past. Expanded exportMemory to dump expansion chip-specific memory. Added exportRegisters for exporting some PPU registers to a debug report in BML format. Not all registers are supported yet. ============================ Changes from higan: nSide-gb ============================ Added the exportMemory function, which can dump WRAM, HRAM (internal RAM), VRAM, OAM, and the palette, which is different for the Game Boy and Game Boy Color. ============================= Changes from higan: nSide-gba ============================= Revised emulator name and copyright information. Credited endrift, jchadwick, and Jonas Quinn for various improvements to GBA emulation. Added the exportMemory function, which can dump External WRAM, Internal WRAM, VRAM, and PRAM (Palette RAM). However, dumping External WRAM causes a crash with about 3/4 of the data dumped, so it has been temporarily disabled (External WRAM is 262144 bytes long, the longest of any file dumped by any emulator's exportMemory function). =================================================================== Changes from higan: processor/arm (affects nSide-sfc and nSide-gba) =================================================================== Added Jonas Quinn's rd delayed write code, which fixed multiple errors that armwrestler reported. ======================================== Changes from higan: cart-pal/auto_purify ======================================== Renamed "ananke" to "auto_purify". Renamed "icarus" to "cart-pal". Added support for the following Famicom boards: NES-CPROM HVC-UN1ROM HVC-UNROM+74HC08 NES_TQROM NES-TVROM IREM-G101 IREM-H3001 IREM-74*161/161/21/138 IREM-HOLYDIVER (NES 2.0 only) IREM-TAM-S1 JALECO-JF-16 NAMCOT-34xx Revised the header information for iNES mappers 21, 23, 24, 25, and 26 to correctly detect VRC4 and VRC6 pinouts more often (but in VRC4's case, still not 100% of the time) Revised the header information for iNES mappers 16, 153, and 159 to select which type of EEPROM/SRAM to use for the Bandai FCG series of boards. Began planning support for purification based on bootgod's database. Added preliminary support for NES 2.0. This allows submappers to influence purification of Konami VRC games, distinguish between IREM-HOLYDIVER and JALECO-JF-16 (Cosmo Carrier), among other things. (auto_purify only) Added support for PRG ROMs that are 8192 bytes long, half the minimum size needed for iNES and NES 2.0. If a 16384-byte PRG ROM has 2 halves with the same data, it is truncated to 8192 bytes. (auto_purify only) Corrected the Sufami Turbo database to give SD Gundam Generation - Colony Kakutouki 0x2000 bytes of RAM. It erroneously had 0x800, preventing it from saving properly. |
Download: nSide v009r12.461 x86
Download: nSide v009r12.461 x64
Source: Here
0 Comments
Post a Comment