This is the repo for the Pokémon mini documentation hosted here.
- Try to use Markdown syntax where possible, only falling back to HTML if necessary.
- Rely on editors for wrapping lines. Hard wraps are only allowed if the thought is complete; don't hard wrap mid-line, because then people who edit that line will have to re-hard wrap it, changing all the lines in the git diff, anyway.
- For complicated situations, you can use Jinja2 templating to generate pages.
- This is largely in order to improve readability for complex things or overuse of HTML.
- Likely we should centralize Jinja2 macros and design them to parse a more featureful Markdown-like syntax, then explain how to use them here.
- Stuff I'm not sure about from "Unknown PM Stuff" page (with grammar fixes):
- The precise timing of a video frame. <- Hmm, how precise?
The number of cycles each value of PRC_CNT takesCheck to see which IRQs are masked by the interrupt flagsDetermine the approximate amount of time sprite draw, map draw, and frame copy take (maybe min \ max \ avg)Determine when the PRC stages fire (relative to PRC_CNT)
- Which/if timers sleep while the system is suspended
- See HALT/SLEEP section of official docs
Check undocumented Minx instruction behaviorDone- This needs to be double-checked on the console with better/confirmed use of the scientific method. Not just the tester tool, but ROMs specifically written to test everything
- Some info like "crashes" was turned into ??? here, because we don't know the actual operation (it crashes because of some important reason!)
- Check all terminology, make sure it matches up with EPSON docs.
Glossary page, move Open-Bus.md there.Tho the glossary page is on-going- Remaining to do: PM_Audio
- From PM_PRC:
- Test frame copy disabling rendering or not
- "It is not uncommon for commercial games to disable the render done IRQ, and simply probe the strobe manually. Shock tetris uses this to double the number of on screen sprites."
- Cycle timing, not sure where to put it, and want a test ROM for it
- New layout with sub-directories, see below.
I moved tech specs to a single page instead, this hasn't been reflected here yet.
- Hardware
- CPU: S1C88*
- on this page:
- Tech specs:
- part number
- internal ROM
- RAM size
- what's connected/enabled
- docs links
- Features
- Tech specs:
- Instruction set
- ...indiviudal instructions...
- Memory map
- BIOS
- Interrupts
- Oscillators & Timers
- I/O ports & protocols ?
- LCD Controller / PRC
- Statuses (SLEEP/HALT)
- on this page:
- LCD: S1D15605* (display driver)
- on this page:
- Tech specs
- dimensions
- refresh rate(s)
- RAM size
- docs links
- Tech specs
- Commands and how to use them
- on this page:
- EEPROM: 24xx64 alike
- on this page:
- Tech specs
- speed
- lifespan
- size
- Tech specs
- Protocol ?
- Official layout ? (maybe should be higher?)
- on this page:
- IR Transceiver: ???
- on this page:
- Tech specs
- Wiring diagram
- on this page:
- Speaker: ??? piezo
- on this page:
- Tech specs
- Wiring diagram
- on this page:
- Cartridges & port
- on this page:
- Link to screwdriver
- Pinout
- Cartridge dimensions
- include lock slot dimensions
- Cartridge ROM tech specs
- on this page:
- Shell
- on this page:
- Link to screwdriver
- Shell dimensions
- include strap hole dimensions and positioning
- Button dimensions
- include offsets for markings
- or straight up STL files...
- on this page:
- Flash cards
- per card
- on the page:
- Tech specs
- size
- read/write speeds
- port pinout
- Tech specs
- How to write to it from software
- interacting with other features ? (eg on-board RAM)
- on the page:
- per card
- CPU: S1C88*
- Tools
- EPSON toolchain
- Compiler suite
- other usable tools
- Flashers and their supported cards
- Historical
- PMAS
- old C suite
- others...
- EPSON toolchain
- Development
- How to set up the recommended dev environment
- Windows 10+
- EPSON tooling
- PokeMini
- Flasher (optional)
- Graphics editing/conversion tools
- Audio editing/conversion tools
- Code editor
- VS Code
- Notepad++
- others...
- Linux
- ...
- Mac ?
- install a Windows VM? lol
- Windows 10+
- EPSON C compiler
- Complete beginner's C syntax and concepts
- EPSON-specific decorators and pragmas
- pm.h
- bios.h (TODO)
- Tutorials
- Hello World walkthru
- Overworld RPG engine (basic)
- General purpose timers
- Producing sound
- Reading and writing saves
- Making a two-player game
- Writing to PokeCard512 and DITTO
- Existing libraries
- per library
- on the page:
- Overview
- repo link
- API reference
- List of open-source projects which use it
- on the page:
- per library
- EPSON assembler
- Concepts, syntax, and command overview (just links for ops details)
- startup.asm
- Tutorials
- Hello World walkthru
- Exporting subroutines for use in C
- PokeMini
- Basics
- on this page:
- where to get
- overview of what it comes with
- how to run it, associate .min files, etc
- on this page:
- Bundled tools
- per tool
- on the page:
- what it's for
- how to use
- is it obsolete or not?
- differences from other versions (PMAS, Programmer's Notepad)
- on the page:
- per tool
- Debugging
- on this page:
- features
- description of each view
- Basic concepts of debugging
- Tutorials
- Find the main loop
- Understanding the RAM locations (and using BPs)
- Using the debug output system
- on this page:
- .minc format ?
- Basics
- How to set up the recommended dev environment