Picotron Memory Layout
Overview
Picotron has 16MB of addressable RAM (0x000000..0xffffff), that can be manipulated using standard memory functions ( poke, memset etc).
Most of the values at the following special addresses can be manipulated using API functions (e.g.pal() writes values to the colour tables), but they can also be manipulated directly in memory for greater control.
Layout
0x000000 ~ 0x003fff Legacy PICO-8 range
0x004000 ~ 0x0047ff Primary P8SCII Font (2k)
0x005000 ~ 0x0053ff ARGB display palettes (1k)
0x005400 ~ 0x005477 Per-scanline rgb display palette selection (120 bytes)
0x005480 ~ 0x0054bf Indexed display palette (64 bytes)
0x0054c0 ~ 0x00553f Misc draw state (128 bytes)
0x005580 ~ 0x0055ff Raw controller state (128 bytes)
0x005600 ~ 0x005dff Secondary P8SCII font (2k)
0X005e00 ~ 0x005eff Reserved: P8 persistent state (256 bytes)
0x005f00 ~ 0x005f7f P8 draw State (some used by Picotron)
0x005f80 ~ 0x007fff Reserved: legacy P8 gpio, video memory
0x008000 ~ 0x00bfff Colour tables (16k)
0x00c000 ~ 0x00ffff Reserved (16k)
0x010000 ~ 0x02ffff Display / Draw Target (128k)
0x030000 ~ 0x07ffff Default audio data range
0x100000 ~ 0x1fffff Default map
0x200000 ~ 0xefffff Unreserved
0xf00000 ~ 0xffffff Wavetable data
Other Memory locations
Audio state
0x5538. app sfx_vol // 0x80 means 1.0
0x5539. app music_vol// 0x80 means 1.0
0x553a. sfx vol // chan->mix_vol for next play
0x553b. unused
0x553c. sfx base_addr// for next play. 0x3 means 0x30000
0x553d. music base_addr // for next play. can also set with music()
0x553e. unused(2)
memory