Skip to content

Commit

Permalink
more times signs; LaTeX blocking
Browse files Browse the repository at this point in the history
Times sign is Ctrl+Shift+U D 7 Space in most apps on my PC other
than Markdown editor ReText (grumble grumble).  GTK vs. Qt issue?

Also escape multiple dollar signs on a line when they are sigils
for hexadecimal literals instead of a LaTeX formula delimiter.

Cite SnesLab for "Kankichi" sound driver name.
  • Loading branch information
pinobatch committed Jun 22, 2023
1 parent fd92a2c commit b995816
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 12 deletions.
4 changes: 3 additions & 1 deletion src/LCDC.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Bit | Name | Usage notes
5 | Window enable | 0=Off, 1=On
4 | BG and Window tile data area | 0=8800-97FF, 1=8000-8FFF
3 | BG tile map area | 0=9800-9BFF, 1=9C00-9FFF
2 | OBJ size | 0=8x8, 1=8x16
2 | OBJ size | 0=8×8, 1=8×16
1 | OBJ enable | 0=Off, 1=On
0 | BG and Window enable/priority | 0=Off, 1=On

Expand Down Expand Up @@ -79,6 +79,8 @@ if the bit is clear (0), the BG uses tilemap $9800, otherwise tilemap $9C00.
This bit controls the size of all objects (1 tile or 2 stacked vertically).

Be cautious when changing object size mid-frame.
Changing from 8×8 to 8×16 pixels mid-frame within 8 scanlines of the bottom of an object
causes the object's second tile to be visible for the rest of those 8 lines.
If the size is changed during mode 2 or 3,
remnants of objects in range could "leak" into the other tile and
cause artifacts.
Expand Down
18 changes: 9 additions & 9 deletions src/OAM.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,21 @@ Y = Object's vertical position on the screen + 16. So for example:
X = Object's horizontal position on the screen + 8. This works similarly
to the examples above, except that the width of an object is always 8. An
off-screen value (X=0 or X\>=168) hides the object, but the object still
affects the priority ordering, thus other objects with lower priority may be
left out due to the limit of ten objects per scanline.
contributes to the limit of ten objects per scanline.
This can cause objects later in OAM not to be drawn on that line.
A better way to hide an object is to set its Y-coordinate off-screen.

## Byte 2 — Tile Index

In 8x8 mode (LCDC bit 2 = 0), this byte specifies the object's only tile index ($00-$FF).
This unsigned value selects a tile from the memory area at $8000-$8FFF.
In 8×8 mode (LCDC bit 2 = 0), this byte specifies the object's only tile index (\$00-\$FF).
This unsigned value selects a tile from the memory area at \$8000-\$8FFF.
In CGB Mode this could be either in
VRAM bank 0 or 1, depending on bit 3 of the following byte.
In 8×16 mode (LCDC bit 2 = 1), the memory area at $8000-$8FFF is still interpreted
as a series of 8x8 tiles, where every 2 tiles form an object. In this mode, this byte
In 8×16 mode (LCDC bit 2 = 1), the memory area at \$8000-\$8FFF is still interpreted
as a series of 8×8 tiles, where every 2 tiles form an object. In this mode, this byte
specifies the index of the first (top) tile of the object. This is enforced by the
hardware: the least significant bit of the tile index is ignored; that is, the top 8x8
tile is "NN & $FE", and the bottom 8x8 tile is "NN | $01".
hardware: the least significant bit of the tile index is ignored; that is, the top 8×8
tile is "NN & \$FE", and the bottom 8×8 tile is "NN | \$01".

## Byte 3 — Attributes/Flags

Expand Down Expand Up @@ -91,7 +91,7 @@ limit, possibly causing another object later in OAM not
to be drawn. To keep off-screen objects from affecting on-screen ones, make
sure to set their Y coordinate to Y = 0 or Y  160
(144 + 16).
(Y&nbsp;&nbsp;8 also works if [object size](<#LCDC.2 — OBJ size>) is set to 8x8.)
(Y&nbsp;&nbsp;8 also works if [object size](<#LCDC.2 — OBJ size>) is set to 8×8.)

### Drawing priority

Expand Down
7 changes: 5 additions & 2 deletions src/SGB_Functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,11 @@ the same display screen.
Alongside normal Game Boy sound, a number of digital sound effects is
pre-defined in the SNES BIOS, these effects may be accessed quite
easily. Programmers whom are familiar with SNES sounds may also access
the SNES sound chip, or use the SNES "Kankichi" sequencer engine
the SNES sound chip, or use the SNES "[Kankichi]" sequencer engine
directly in order to produce other sound effects or music.

[Kankichi]: https://sneslab.net/wiki/N-SPC_Engine

## Taking Control of the SNES CPU

Finally, it is possible to write program code or data into SNES memory,
Expand All @@ -89,7 +91,8 @@ Game Boy CPU, video controller, timers, and sound frequencies will be all
operated approx 2.4% faster than handheld systems. Basically, this
should be no problem, and the game will just run a little bit faster.
However sensitive musicians may notice that sound frequencies are a bit
too high, programs that support SGB functions may avoid this effect by
too high, particularly in programs that use GB sound alongside Kankichi.
Programs that support SGB functions may avoid this effect by
reducing frequencies of Game Boy sounds when having detected SGB
hardware. Also, "PAL version" SNES models which use a
50Hz display refresh rate (rather than 60Hz) result in
Expand Down

0 comments on commit b995816

Please sign in to comment.