Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TQM1 = $ef
- TQM2 = $f7
- TQM3 = $f8
- TQM_Pulse1Offset = 0
- ; bit field and volume work like 2a03, duty adds 12.5% each entry
- TQM_SQ1ENV = $4020
- ; sweep works like 2a03
- TQM_SQ1SWP = $4021
- ; pitch and stop timer work like 2a03
- TQM_SQ1LO = $4022
- TQM_SQ1HI = $4023
- TQM_Pulse2Offset = 4
- TQM_SQ2ENV = $4024
- TQM_SQ2SWP = $4025
- TQM_SQ2LO = $4026
- TQM_SQ2HI = $4027
- TQM_WavOffset = 8
- ; linear stop works like 2a03
- TQM_WAVLIN = $4028
- ; read/write, access to entire CPU
- TQM_WAVDMA = $4029
- TQM_WAVLO = $402a
- ; $x8-$xf turns on WAV, high nybble is added to target WAV address
- TQM_WAVHIID = $402b
- TQM_NoiseOffset = 12
- ; works like 2a03
- TQM_NOISEENV = $402c
- ; LFSR Reset
- TQM_NOISERES = $402d
- ; works like 2a03, 5-bit pitch instead of 4-bit
- TQM_NOISELO = $402e
- TQM_NOISEHI = $402f ; no actual pitch, just sound length
- TQM_DMCOffset = 16
- ; works like 2a03
- ; able to stream DPCM with IRQ, loop
- TQM_DMCPITCH = $4030
- ; Direct ROM Access, briefly swaps to desired bank each write
- TQM_DMCDROMA = $4031
- TQM_DMCSTART = $4032
- TQM_DMCLEN = $4033
- ; also uses Direct ROM Access for legacy DMC
- TQM_LEGDROMA = $4034
- ; works like 2a03
- TQM_MIXER = $4035
- ; hi bytes of DMC DROMA
- TQM_LEGHI = $4036
- TQM_DMCLO = $4037
- ; Palette can be loaded in from $6000-$7fff
- TQM_PALDMA = $4038
- ; nametable assigned to $4800-$4fff
- ; set to 4-screen mirroring if $80/$c0
- TQM_NTDMA = $4039
- TQM_NT0 = 0*1 ; $4800-$4bff
- TQM_NT1 = 1*1 ; $4b00-$4fff/$4800-$4bff
- TQM_NT2 = 2*1 ; $4800-$4bff/$4b00-$4fff
- TQM_NT3 = 3*1 ; $4b00-$4fff
- TQM_PAIR1 = 0*64
- TQM_PAIR2 = 1*64
- TQM_2SCREEN = 0*128
- TQM_4SCREEN = 1*128
- ; swap RAM $5000-$5fff (256K - TQM1, 512K - TQM2, 1M - TQM3)
- TQM_MRAMBANK = $403a
- ; swap RAM $7000-$7fff
- TQM_WRAMBANK = $403b
- ; metadata used for crack protection
- ; WRAM:
- ; Write: -------p
- ; p - location of desired RAM
- ; Read: xxxx--b-
- ; b - Battery backup
- ; x - Shift count from 64
- TQM_RAMSIZE = $403c
- ; two 12-bit denotations demonstrate ROM size
- TQM_ROMHI = $403d
- TQM_PRGLO = $403e
- TQM_CHRLO = $403f
- ; each PRG register is spread across 8 bytes. In mode 3, the upper three bits
- ; of a bank are determined by an index offset to base. This essentially adds
- ; three bits to the register without having to poke two bytes
- TQM_PRG1 = $4040 ; $8000-$9fff/$bfff/$ffff
- TQM_PRG2 = $4048 ; $a000-$bfff
- TQM_PRG3 = $4050 ; $c000-$dfff
- TQM_PRGMODE = $4058
- ; DPCM mode enabled
- TQM_P32K = 0*1 ; 32K indexed $8000-$ffff switchable (0-1)
- TQM_P16K = 1*1 ; 16K indexed $8000-$bfff switchable (0-3)
- ; modes 2 & 3 turn off DPCM DROMA
- TQM_P8KA = 2*1 ; 8K absolute $8000-$dfff switchable across 2M
- TQM_P8KI = 3*1 ; 8K indexed $8000-$dfff switchable across 4M (TQM1)/8M (TQM2)/16M (TQM3)
- ; max CHR ROM size: 4M
- TQM_CHR1 = $4080 ; $0000-$07ff
- TQM_CHR2 = $4088 ; $0800-$0fff
- TQM_CHR3 = $4090 ; $1000-$17ff
- TQM_CHR4 = $4098 ; $1800-$1fff
- TQM_CHR5 = $40a0 ; $?000-$?7ff ; second sprite table for 8x16 mode
- TQM_CHR6 = $40a8 ; $?800-$?fff
- ; vsplit, runs for 8 entries (16 bytes)
- TQM_CLMNOFFS = $40b0 ; tile offset, plane
- TQM_COLMASK = $1f
- TQM_PLN0 = 0*64
- TQM_PLN1 = 1*64
- TQM_PLN2 = 2*64
- TQM_PLN3 = 3*64
- TQM_CLMNCRDT = $40b1
- TQM_PPUINDEX = $40c0 ; $4200-$43ff
- ; mathematical registers
- TQM_MTHINDEX = $40c1 ; $4400-$47ff
- TQM_MTHOP = $40c2
- TQM_ADD = 0
- TQM_SUB = 1
- TQM_MULTI = 2
- TQM_DIV = 3 ; $40c7 acts as remainder
- TQM_SHIFTL = 4
- TQM_SHIFTR = 5
- TQM_EXP = 6
- TQM_SQRRT = 7
- TQM_RTBYTE = $40c3 ; determines hexidecimal point start during square root
- ; when using $4400-$47ff combined with the math index and operators, you get a
- ; 32-bit number that is only floating point when performing square roots
- TQM_MTHANS24 = $40c4 ; READ
- TQM_MTHANS16 = $40c5 ; READ
- TQM_MTHANS8 = $40c6 ; READ
- TQM_MTHANS0 = $40c7 ; READ
- TQM_OPCINDEX = $40c8 ; vsplit index
- ; fill RAM with specified value
- ; initialization begins on write with bit 7 on
- TQM_INIT = $40d0
- TQM_ZPINIT = 0
- TQM_INTINIT = 1
- TQM_MRAMINIT = 2
- TQM_WRAMINIT = 3
- TQM_PPUPINIT = 4
- TQM_MATHINIT = 5
- TQM_NT1INIT = 6
- TQM_NT2INIT = 7
- TQM_STOP = 0*128
- TQM_START = 1*128
- TQM_INITVAL = $40d4
- TQM_WRAMPRSV = $40d8 ; preserve WRAM if non-zero
- ; read-only register to be used for crack protection
- TQM_MAPPERNO = $40e0
- TQM_SCXPRSV = $40f0 ; preserve x scroll value
- TQM_SCYPRSV = $40f8 ; preserve y scroll value
- ; for connectivity
- TQM_HOST = $4100
- TQM_GUEST = $4110
- TQM_CTRL = 0 ; %000xxxxx
- TQM_JOYOFFS = 1 ; %0000xxxx
- TQM_LAT = 2
- TQM_LONG = 4
- TQM_JOYPTR = 6
- TQM_MOBILENO = 8
- TQM_JOYINDEX = $4100 ; halts CPU for the mapper to fetch inputs on other NES's
- TQM_PPUPTRS = $4200 ; PPU pointers
- TQM_MATHVARS = $4400 ; maths variables
- TQM_NTABLE1 = $4800 ; nametable 1
- TQM_NTABLE2 = $4c00 ; nametable 2
- TQM_MRAM = $5000 ; mapper RAM
- TQM_PALETTE = $6000 ; virtual palette
- TQM_WRAMHOME = $6000 ; home work RAM
- TQM_WRAMVLTL = $7000 ; volatile work RAM
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement