All public logs

From SNESdev Wiki
Jump to navigationJump to search

Combined display of all available logs of SNESdev Wiki. You can narrow down the view by selecting a log type, the username (case-sensitive), or the affected page (also case-sensitive).

Logs
  • 17:56, 25 April 2024 NovaSquirrel talk contribs created page Audio drivers (Start off this page with the drivers I know about)
  • 20:07, 5 October 2022 NovaSquirrel talk contribs uploaded File:Snes exhirom map.png (Map of Super NES address space in mode $25 ("ExHiROM") Edit by lidnariq of the HiROM map originally made by Damian Yerrick https://forums.nesdev.org/viewtopic.php?p=283508&sid=b7787101ceda9ec7e25a4485d45ebc77#p283508)
  • 20:07, 5 October 2022 NovaSquirrel talk contribs created page File:Snes exhirom map.png (Map of Super NES address space in mode $25 ("ExHiROM") Edit by lidnariq of the HiROM map originally made by Damian Yerrick https://forums.nesdev.org/viewtopic.php?p=283508&sid=b7787101ceda9ec7e25a4485d45ebc77#p283508)
  • 03:34, 2 June 2022 NovaSquirrel talk contribs created page Register sizes in ca65 (Created page with "When the 65c816's registers switch between being 8-bit and 16-bit, that affects how the processor expects instructions with immediate operands to be stored. For example, when the 65c816 encounters opcode <code>A9</code> (which is <code>LDA #value</code>) the current size of the accumulator determines if it will try to read one or two bytes after the opcode. This creates a problem for assemblers - they have to know whether to encode <code>LDA #1</code> as <code>A9 01</cod...")
  • 20:40, 28 May 2022 NovaSquirrel talk contribs created page DMA examples (Created page with "This page provides examples on how to use DMA registers to do fast copies on the SNES. These examples use the following defines to make the code clearer: <pre> ; Registers Also known as... DMAMODE = $4300 ; DMAPn DMAPPUREG = $4301 ; BBADn DMAADDR = $4302 ; A1TnL DMAADDRHI = $4303 ; A1TnH DMAADDRBANK = $4304 ; A1Bn DMALEN = $4305 ; DASnL DMALENHI = $4306 ; DASnH ; Configuration for $43n0 ; OR these together to get the desired e...")
  • 19:06, 22 May 2022 NovaSquirrel talk contribs created page Controller reading (Created page with "The SNES has a feature that can automatically read the game controllers, so the 65c816 does not need to spend any time doing that. The controllers can also be read manually, the same way the NES does it. The automatic reading feature will only read 16 bits from the controller, so peripherals like the Mouse need to be read either completely manually or with a combination of automatic and manual reading. == Automatic controller reading == Automatic controller reading...")
  • 17:14, 22 May 2022 NovaSquirrel talk contribs created page Booting the SPC700 (Created page with "When the SNES powers on, the SPC700 starts running a small program which does some initialization and then waits to communicate with the 65c816. At this point the 65c816 can instruct the SPC700 to load a new program into its RAM and start running it. This page explains how to do this. Communication with the SPC700 involves four registers - $2140, $2141, $2142 and $2143. These four bytes correspond to $f4, $f5, $f6 and $f7 on the SPC700-side, respectively. When one s...")
  • 05:54, 21 May 2022 NovaSquirrel talk contribs created page Talk:Errata (Created page with "The stuff on this page definitely needs to be double-checked, and ideally tested on a SNES where applicable. These issues don't seem to be documented very well online, and I've had to rely on forum posts and bits of documentation here and there about problems. - ~~~~")
  • 05:22, 21 May 2022 NovaSquirrel talk contribs created page Errata (Created page with "This page describes quirks in the SNES hardware that programmers need to be aware of. They could be mistakes in the hardware's implementation, or just unintuitive behavior. == Video == * Offset-per-tile never affects the first (leftmost) tile. * The SNES programming manual describes a situation where the Time Over flag is erroneously set when the first hardware sprite is 16x16, 32x32, or 64x64, has a horizontal position of 0-255, and other hardware sprites have nega...")
  • 01:52, 21 May 2022 NovaSquirrel talk contribs created page Division (Created page with "The 65c816 does not include a division instruction. However, the SNES includes division hardware for games to use, and games can access it with registers. It's capable of dividing a 16-bit number by an 8-bit number, and it produces a 16-bit result and a 16-bit remainder. All inputs and outputs are unsigned. == Division registers == WRDIVH WRDIVL $4205 $4204 7 bit 0 7 bit 0 ---- ---- ---- ---- HHHH HHHH LLLL LLLL |||| |||| |||| |||| +++...")
  • 19:59, 20 May 2022 NovaSquirrel talk contribs created page Multiplication (Created page with "The 65c816 does not have a multiplication instruction, but the SNES includes multiplication hardware that can be accessed with registers. These are faster than implementing general-purpose multiplication in software. There are two available multipliers: * 5A22 multiplier ** 8-bit number × 8-bit number = 16-bit result ** Uses unsigned numbers: $ff (255) × $ff (255) = $fe01 (65025) ** There is a delay between writing the parameters and correct results being av...")
  • 22:30, 19 May 2022 NovaSquirrel talk contribs created page Scrolling a large map (Created page with "A lot of games have their action take place in an area that's too big to fit on the screen at once. To support this, SNES tilemaps can be bigger than the screen, and a programmer can use scrolling to choose which section of it should be displayed. However, the biggest available sizes are still too small for most games' needs. To get around this limitation, a game can simulate an infinitely large tilemap. This involves determining the scrolling direction and continua...")
  • 21:18, 19 May 2022 NovaSquirrel talk contribs uploaded File:NTS scrolling seam.gif (Animation explaining how to perform scrolling across a horizontal playfield longer than 512 pixels. It uses the first four screens of a level in Nova the Squirrel.)
  • 21:18, 19 May 2022 NovaSquirrel talk contribs created page File:NTS scrolling seam.gif (Animation explaining how to perform scrolling across a horizontal playfield longer than 512 pixels. It uses the first four screens of a level in Nova the Squirrel.)
  • 20:30, 10 May 2022 NovaSquirrel talk contribs created page Using X as a pointer (Created page with "Because the 65c816's index registers can be 16-bit, they can hold a 16-bit address. For programs that already use 16-bit index registers for other reasons (such as accessing level data), this can sometimes create an optimization opportunity, allowing for the use of faster addressing modes and smaller code. {| class="wikitable" |+ Addressing mode comparison |- ! Instruction !! Bytes !! Cycles |- | <code>LDA directpage,x</code> || 2 || * 4 * + 1 (16-bit A) * + 1 (low by...")
  • 05:35, 9 May 2022 NovaSquirrel talk contribs created page Offset-per-tile (Created page with "Offset-per-tile is a feature of background modes 2, 4, and 6. It allows overriding a layer's horizontal and vertical scroll position on a tile-by-tile basis. This the effect behind the dizzy effect in Yoshi's Island, and it allows Tetris Attack to have two different playfields with different vertical positions. This feature can be used to simulate a rotating background for small rotation angles, as seen in Star Fox. == Details on how the feature works == In offset-per...")
  • 04:18, 9 May 2022 NovaSquirrel talk contribs created page DMA registers (Created page with "The SNES's DMA (Direct Memory Access) unit allows a game to copy graphics, palettes, OAM and more at a much higher speed than the CPU can accomplish alone. This allows a game to make better use of the limited amount of time it has in vblank to change graphical memory. The SNES has two address buses - consisting of the A bus (which contains cartridge ROM, cartridge RAM, and the SNES's RAM) and the B bus (anything in the $2100-$21ff range, including PPU registers...")
  • 20:48, 8 May 2022 NovaSquirrel talk contribs created page Memory map (Created page with "== Overall == File:Snes overall map.png The SNES natively provides access to RAM and I/O at specific locations. The cartridge is free to provide whatever it wants in the remaining space, and there are specific address ranges that are conventionally used to add access to additional hardware such as extra RAM or a coprocessor. Different address ranges are accessed at different speeds, and the speed of the ROM at banks $80-$FF may be changed with register $420D. The f...")
  • 20:12, 8 May 2022 NovaSquirrel talk contribs uploaded File:Snes hirom map.png
  • 20:12, 8 May 2022 NovaSquirrel talk contribs created page File:Snes hirom map.png
  • 20:11, 8 May 2022 NovaSquirrel talk contribs uploaded File:Snes lorom map.png
  • 20:11, 8 May 2022 NovaSquirrel talk contribs created page File:Snes lorom map.png
  • 20:11, 8 May 2022 NovaSquirrel talk contribs uploaded File:Snes overall map.png
  • 20:11, 8 May 2022 NovaSquirrel talk contribs created page File:Snes overall map.png
  • 19:06, 8 May 2022 NovaSquirrel talk contribs created page ROM header (Start off this page - fill in details later)
  • 17:51, 8 May 2022 NovaSquirrel talk contribs created page Mouse (Adapted from NESDev wiki)
  • 17:35, 8 May 2022 NovaSquirrel talk contribs created page SNES PPU for NES developers (Created page with "The SNES PPU and NES PPU use every similar concepts for displaying graphics. This article will summarize some important differences and similarities, and lay out some basics before you learn about things more in-depth. == VRAM == Video RAM is 64KB and contained within the console. Additional video memory cannot be added via cartridge. VRAM contains the tilemaps used for backgrounds as well as the graphics data for background tiles and sprite tiles. You can deci...")
  • 17:28, 8 May 2022 NovaSquirrel talk contribs created page 65c816 for 6502 developers (Created page with "This guide is meant to introduce the 65c816 to someone who is already familiar with the 6502. Most 6502 code will work on it without changes but there are additional features that you can take advantage of to write even faster and smaller code. This page is intended to highlight those features. ==16-bit registers!== The biggest, most obvious change from the 6502 is that it can do 16-bit operations. To enable this, the accumulator and index registers can change between b...")