Log In  


Hey everyone.
What year do you think Pico-8 would've been released if it was a real console that physically existed?
Late 80's? 90's? Before or after NES? Let's talk about this.
P.S. Another topic, would Pico-8 be a hand-held or a home console? Personally, I think
it'd be a cube-shaped home console, square-sided just like its display. Similar to GameCube but more "cuber" (with equal dimentions) and quite small in size. Regarding the colors, i think dark grey body with a red outline would look stylish. Like on the picture, but a different color.



2

There is no easy way you compare pico-8 to real consoles, but start with the specifications.

Display 128x128 16 colours
Cart Size 32k
Sound 4 channel chip blerps
Code P8 Lua
CPU 4M vm insts/sec
Sprites 256 8x8 sprites
Map 128x32 tiles

Display: Retro systems like the Nintendo NES / SNES, Sega SMS / Genesis, NEC PC Engine all had resolutions above 256x240. Pico-8's resolution is about one quarter the size. Color is more controllable with Pico-8, where you have access to all 16 colors (32 with hidden colors, not all simultaneously on the same half of the screen though), which can be written to each individual screen pixel. The NES and even later 16-bit systems had access to more colors (52 NES, 512 Genesis), but were limited to drawing the background/sprites with a smaller palette sets of onscreen colors (NES 25, Genesis 61).

Cart size: Pico-8 cart sizes have a limit of 32kB, which closely matches the NES cart sizes of 40kB (32kB machine code+8k of character ROM), without additional memory mappers. The largest NES cart was Kirby's Adventure at 768Kb, but it used additional RAM/ROM in the cartridge. This isn't a fair comparison though, because Pico-8 uses modern compression techniques to shrink the cart data before loading the data into pico-8's working RAM. RAM isn't listed in the specifications above, but Pico-8 essentially has 35kB 0x8000 - 0xFFFF plus another 4kB section not used for screen memory, fonts, sprites, etc.) of work ram to track the variables, games states, sprites, music, etc. The closest parallel with a retro console would be the Sega Genesis, which has 64kB of a work RAM.

Sound: Sound is another difficult to compare feature. The NES had 5 sound channels, meaning it could play up to 5 different (2 pulse, 1 Triangle, 1 Noise, 1 Pulse Code Modulation channel) sounds/notes simultaneously. The Commodore 64 on the other hand only had 3, but those 3 channels are more flexible, being able to generate sawtooth, triangle, rectangle, or white noise pulses. I'm no audio expert, but the Pico-8 is probably somewhere between the C64's SID chip and the Turbo Graphics-16's HuC6280.

Code: Pico-8 uses a variant of the Lua programming language. This is much easier to write code in than 6502 / 68000 assembly code. The closest thing to coding on a retro system would be Basic. But basic would be extremely slow when compared to machine language running on the retro computers.

CPU: Pico-8 is limited to 4 million virtual machine instructions per second (4Mhz). This is similar to the SNES (3.58Mhz SRAM - 1.79 Mhz SlowROM) and Genesis 7.68Mhz CPU speed, but doesn't take into account that the Lua virtual instructions likely take 1-cycle regardless of how costly and expensive they would be on real hardware. On real hardware, an ADD instruction might take 1-cycle, and a divide might take ten to a hundred times as many cycles. CPU speed doesn't tell the whole story, Pico-8 has a 16-bit (32-bit?) fixed point arithmetic logic unit (ALU), 16-bits for the integer portion, 16-bits for the decimal. The 16-bit machines at the time could only do 16-bit math (or 8-bit with the SNES), so they would require multiple clock cycles to compute the integer and fractional portion of variables. Pico-8 also has access to much more complex math functions that on real hardware would require memory/lookup-tables to compute over many clock-cycles. The closest comparison might be the PSX-1 (32-bit CPU 33Mhz).

Sprites: Pico-8 is much more flexible with respect to drawing sprites to the screen. While the NES / SNES have hard limits of 8 / 32 sprites per horizontal scan line before the sprites start flickering and disappearing, Pico-8 has no such limitation. There are also maximum sprites limits on retro consoles on the screen itself. Pico-8 allows any of the 16 colors on the sprite, which is similar to the SNES color palette that limits each 8x8 sprite to 16 colors. The number of sprites is more similar to the NES, which limits the number of sprites to 256 (Pico-8 shares the last 128 sprites with the map data), but those sprites are only 4 colors.

Map: The Pico-8 map memory is used to draw the background tiles of the sceeen that the character sprites move over. This is enough tiles to draw 16 128x128 pixel screens. Each tile in the background is a single byte (256) reference to the sprite table. This is like the NES, which has 2 screens worth of memory reserved for the background (but remember the NES bas approximately 4x the screen resolution). These 2 screens help with smooth scrolling either horizontally or vertically. So Pico-8 has 2x the background map memory as the NES.

If a real Pico-8 console wad released, multiple variables would have to be considered. The games have a graphical look better in some respects of 8-bit systems, but not quite the color and resolution of 16-bit era (SNES, Genesis, Atari ST) games. Similarly, the audio capabilities would fall somewhere between that era. But, becuase Lua is capable of pulling off mathematical calculations and graphical feats that would require the later 32-bit CPUs, the consoles games might be able to compete with the other consoles during the transition to the 32-bit consoles (PSX, Saturn, Sega 32x). The biggest issue would be cost though. The Sega Genesis launched for $190 in 1988-1989, a CPU capable of doing what Pico-8 does virtually on real hardware would be exponentially more expensive.



[Please log in to post a comment]