========= mmc5 infomation ========== date 1998/05/31 by goroh translated May 31, 1998 by Sgt. Bowhack mail goroh_kun@geocities.co.jp 5000,5004 ch1,ch2 Pulse Control bit CCwevvvv CC Duty Cycle (Positive vs. Negative) #0:87.5% #1:75.0% #2:50.0% #3:25.0% w Waveform Hold (e.g. Looping) 0: Off 1: On e Envelope Select 0: Varied 1: Fixed < e=0 > vvvv Playback Rate #0<-fast<--->-slow--> #15 < e=1 > vvvv Output Volume 5002,5006 ch1,ch2 frequency L bit ffffffff 5003,5007 ch1,ch2 frequency H bit tttttfff ttttt sound occurence time Objective is to remove the continuous changing of frequency for square wave setup and do the same to the main part of the square wave of studying the main part of the famicom. (?- Sgt. Bowhack) 5010 ch3 synthetic voice business channel bit -------O O wave output 0:Off 1:On 5011 ch4 synthetic voice business channel 2 bit vvvvvvvv vvvvvvvv wave size 5015 sound output channel bit ------BA A: ch1 output 1:enable 0:disable B: ch2 output 1:enable 0:disable 5100 PRG-page size Setting bit ------SS SS PRG-page size 0: 32k 1:16k 2,3:8k * Reset is misled the first times for about 8k (?- SB) 5101 CHR-page size Setting bit ------SS SS CHR-page size 0:8k 1:4k 2:2k 3:1k 5102 W BBR-RAM Write Protect 1 bit ------AA 5103 W BBR-RAM Write Protect 2 bit ------BB (AA,BB) = (2,1) permitted to write to BBR-RAM only when crowded *Reset write around becomes prohibited when crowded 5104 Grafix Mode Setting $5c00-$5fff decides how it should be used bit ------MM #00:Enable only Split Mode #01:Enable Split Mode & ExGrafix Mode #02:ExRAM Mode #03:ExRAM Mode & Write Protect Consideration MMC5 has 2 graphic mode extensions that allow more than 256 characters on one standard game screen. It uses Split Mode so it can display the specified CHR-page and scroll position seperate from ExGrafix Mode to be able to choose a palette, and the other divides it vertically. 5105 W NameTable Setting bit ddccbbaa aa: Select VRAM at 0x2000-0x23ff bb: Select VRAM at 0x2400-0x27ff cc: Select VRAM at 0x2800-0x2bff dd: Select VRAM at 0x2c00-0x2fff #0:use VRAM 0x000-0x3ff #1:use VRAM 0x400-0x7ff #2:use ExVRAM 0x000-0x3ff #3:use ExNameTable(Fill Mode) Consideration The name table can designate 4 kinds of this resister and be a useful special quality for this because painting and smashing it with a character that there is 1 sheet for the remaining sheets can generally be used. (?-SB) 5106 W Fill Mode Setting 1 bit vvvvvvvv Fill chr-table For whether it paints or smashes it at any non-designated character 5107 W Fill Mode Setting 2 bit ------pp Whether or not it uses any non-designated palettes 5113 RAM-page for $6000-$7FFF bit -----p-- 5114-5117 Program Bank switch < page_size=32k > $5117 [8]-[F] bit pppppp-- < page_size=16k > $5115 [8]-[B] bit ppppppp- $5117 [C]-[F] bit ppppppp- < page_size=8k > $5114 [8][9] bit pppppppp $5115 [A][B] bit pppppppp $5116 [C][D] bit pppppppp $5117* [E][F] bit pppppppp *Reset is around early, Last Page misled 5120-512b Charactor Bank switch < page_size=8k > $5120-$5127 switch to mode A $5128-$512b switch to mode B $5127 [0]-[7] modeA $512b [0]-[7] modeB < page_size=4k > $5120-$5127 switch to mode A $5128-$512b switch to mode B $5123 [0]-[3] modeA $5127 [4]-[7] modeA $512b [0]-[3],[4]-[7] modeB < page_size=2k > $5120-$5127 switch to mode A $5128-$512b switch to mode B $5121 [0]-[1] modeA $5123 [2]-[3] modeA $5125 [4]-[5] modeA $5127 [6]-[7] modeA $5129 [0]-[1],[4]-[5] modeB $512b [2]-[3],[6]-[7] modeB < page_size=1k > $5120-$5127 switch to mode A $5128-$512b switch to mode B $5120 [0] modeA $5121 [1] modeA $5122 [2] modeA $5123 [3] modeA $5124 [4] modeA $5125 [5] modeA $5126 [6] modeA $5127 [7] modeA $5128 [0],[4] modeB $5129 [1],[5] modeB $512a [2],[6] modeB $512b [3],[7] modeB Consideration MMC5 has mode A ,mode B and 2 kinds of CHR-page memory resistors. They can be used for refreshing it. (?-SB) 5130 ??? analyzing it... 5200 W Split Mode Control 1 bit Ec-vvvvv For the E function 0:don't use 1:use c boundary's side is for using Split Mode extension of graphics 0: left side 1: right side vvvvv left boundary is designated with the char. # to count places Sample. 5200 <- #00 (not?) used yet 5200 <- #82 Used for SplitMode GFX extension from left 1-2 character 5200 <- #c2 Used for SplitMode GFX extension from the right side 3 chars. 5200 <- #c0 Used for SplitMode GFX extension on the whole screen 5200 <- #d0 Used for SplitMode GFX extension on the right side of the screen 5200 <- #90 Used for SplitMode GFX extension on the left side of the screen 5201 W SplitMode setup for SplitMode Ext. GFX use 1 $2005 determines the vertical movement; it can also delay ext. gfx's vert. movement if necessary. It's written 2 times in bulk in the same way as it would slip off a grade in $2005 (??-SB) 5202 W SplitMode setup for SplitMode Ext. GFX use 2 bit --pppppp uses vertical division of ext. gfx CHR-page designation index_size=4k(0x1000byte) In case it uses a character 0x4000-0x4fff for the ext. gfx in question $5202 <- 4 5203 W scanline break point For scanline # that it splits and wants to make it designate it in bulk 5204 WR IRQ enable/disable W bit I------- I 1:IRQ Enable 0:IRQ Disable R bit I------- I 1:Scanline Hit 0:Scanline not Hit $5203 is designated as scanline when arrived. 5205 WR mult input/output 5206 WR mult input/output ($5205in)*($5206in) = $5205,$5206out 5c00-5fbf ext. gfx business VRAM shows an attribute of every position character bit PPpppppp PP: use character palette number pppppp: use background CHR-PAGE number index=4k #0-#3F are designations, $0000-$3FFF is CHR-data's range Use for extension gfx SplitMode uses a Name Table for extension gfx use. bit pppppppp pppppppp: use for background char. number designation Used for Extension RAM 5fc0-5fff (not?) used yet SplitMode uses gfx's Attribute Table extension. PPU uses $23c0-$23ff in the same way as the Attribute Table Used for Extension RAM Consideration 5c00-5fff has 3 uses. Split Mode and ExGrafix Mode's VBlank is written so as to become crowded, it writes a 0 and becomes crowded. Every mode tries to go around ExRAM mode including reading but it writes it, is effective in bulk and #5c-#5f is the output at times where it is effective.