Skip to content

Commit

Permalink
Merge pull request #69 from spicyjpeg/mkdocs-fix-2
Browse files Browse the repository at this point in the history
Fixes for broken links, warnings and formatting
  • Loading branch information
spicyjpeg authored May 17, 2024
2 parents 5d25b38 + 7f6f1b9 commit 61ee97d
Show file tree
Hide file tree
Showing 19 changed files with 583 additions and 775 deletions.
15 changes: 15 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"blanks-around-fences": false,
"blanks-around-headings": false,
"blanks-around-lists": false,
"emphasis-style": false,
"fenced-code-language": false,
"heading-increment": false,
"line-length": false,
"list-marker-space": false,
"no-hard-tabs": true,
"no-inline-html": false,
"no-multiple-blanks": false,
"no-multiple-space-atx": false,
"no-trailing-punctuation": false
}
310 changes: 23 additions & 287 deletions docs/aboutcredits.md

Large diffs are not rendered by default.

129 changes: 62 additions & 67 deletions docs/cdromfileformats.md

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions docs/cheatdevices.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ DB25 connector can be directly connected to a PC parallel port.<br/>
#### FLASH Chips (for both Xplorer and Datel)
[Cheat Devices - FLASH/EEPROMs](cheatdevices.md#cheat-devices-flasheeproms)<br/>

http://gamehacking.org/faqs/hackv500c.html - cheat code formats<br/>
http://doc.kodewerx.org/hacking\_psx.html - cheat code formats<br/>
http://xianaix.net/museum.htm - around 64 bios versions<br/>
http://www.murraymoffatt.com/playstation-xplorer.html - xplorer bioses<br/>
<http://gamehacking.org/faqs/hackv500c.html> - cheat code formats<br/>
<http://doc.kodewerx.org/hacking_psx.html> - cheat code formats<br/>
<http://xianaix.net/museum.htm> - around 64 bios versions<br/>
<http://www.murraymoffatt.com/playstation-xplorer.html> - xplorer bioses<br/>

#### Separating between Gameshark and Xplorer Codes
```
Expand Down Expand Up @@ -129,9 +129,9 @@ Command Handler at Pre-Boot time can also upload EXE code, but doesn't have
Kernel installed).<br/>
Original Datel commands for Menu/Game mode are unknown. The Caetla commands are
documented in japanese, and there are also two english translations:<br/>
http://www.psxdev.net/forum/viewtopic.php?f=49&t=370 - good (though
<http://www.psxdev.net/forum/viewtopic.php?f=49&t=370> - good (though
incomplete)<br/>
http://www.psxdev.net/forum/viewtopic.php?f=53&t=462#p6849 - very bad
<http://www.psxdev.net/forum/viewtopic.php?f=53&t=462#p6849> - very bad
(beware)<br/>


Expand Down
37 changes: 35 additions & 2 deletions docs/controllersandmemorycards.md
Original file line number Diff line number Diff line change
Expand Up @@ -350,7 +350,8 @@ The TAP byte should be usually zero, unless one wants to activate Multitap
The two MOT bytes are meant to control the rumble motors (for normal non-rumble
controllers, that bytes should be 00h), however, the MOT bytes have no effect
unless rumble is enabled via config commands, for details, see<br/>
[Controllers - Rumble Configuration](controllersandmemorycards.md#controllers-rumble-configuration)<br/>
[Controllers - Configuration Commands](controllersandmemorycards.md#controllers-configuration-commands)<br/>
[Controllers - Vibration/Rumble Control](controllersandmemorycards.md#controllers-vibrationrumble-control)<br/>

#### Controller ID (Halfword Number 0)
```
Expand Down Expand Up @@ -624,7 +625,7 @@ Cable:<br/>
Some keyboard adaptors are also including a mouse adaptor feature (either by
simulating normal Sony Mouse controller data, or via more uncommon ways like
using the PSX expansion port).<br/>
[Controllers - Keyboards](controllersandmemorycards.md#controllers---keyboards)<br/>
[Controllers - Keyboards](controllersandmemorycards.md#controllers-keyboards)<br/>

#### RS232 Mice
Below is some info on RS232 serial mice. That info isn't directly PSX related
Expand Down Expand Up @@ -1703,6 +1704,38 @@ on it. Stay Away!<br/>



## Controllers - Pop'n Controllers
Controllers used for Konami's Pop'n Music series. At least a few different
versions of the controller (Pop'n Controller, Pop'n Controller 2, larger
arcade-size version, possibly others and in different color variations) have
been released for the PS1 and PS2. Unknown if the controllers released in the
PS2 era have any additional commands not present in the original Pop'n
Controller, but they are supposedly fully compatible with PS1 Pop'n Music games.

Pop'n Controllers report as digital controllers (ID byte 41h), but the left,
right, and down d-pad controls are not connected to any physical buttons and are
always reported as pressed (in the first transferred button byte, bits 5-7 are
always 0). Pop'n Music games check these bits to determine if a Pop'n Controller
is connected and will change the in-game controls accordingly if so.



## Controllers - Densha de Go! / Jet de Go! Controllers
Controllers used for Taito's Densha de Go! and Jet de Go! series. Unknown what
method is being used by Densha de Go! and Jet de Go! games for detecting these
controllers.

- The workings of Densha de Go! PSX controllers have been extensively researched
in the [ddgo-controller-docs](https://github.com/MarcRiera/ddgo-controller-docs)
repo.
- The Jet de Go! PSX controller comes in gray and black color. It seems to work
the same as an analog controller and supports vibration. The steering wheel is
mapped to the left stick (wheel rotation as horizontal, wheel raise/lower as
vertical axis). The thrust throttle seems mapped to the right stick Y-axis
full range (so half throttle matches vertically centered right stick).



## Controllers - Fishing Controllers
The fishing rods are (next to lightguns) some of the more openly martial
playstation controllers - using the credo that "as long as you aren't using
Expand Down
6 changes: 3 additions & 3 deletions docs/cpuspecifications.md
Original file line number Diff line number Diff line change
Expand Up @@ -666,10 +666,10 @@ using the BIOS).<br/>
Of course, the above exeption handling won't work in branch delays (where BD
gets set to indicate that EPC was modified) (best workaround is not to use GTE
commands in branch delays).<br/>
Several games are known to rely on this, notably including the Crash Bandicoot trilogy,
Several games are known to rely on this, notably including the Crash Bandicoot trilogy,
Jinx and Spyro the Dragon, all of which will render broken geometry
if running on an emulator which doesn't emulate this,
or if the installed interrupt service routine doesn't account for it.
if running on an emulator which doesn't emulate this,
or if the installed interrupt service routine doesn't account for it.

#### cop0cmd=10h - RFE opcode - Prepare Return from Exception
The RFE opcode moves some bits in cop0r12 (SR): bit2-3 are copied to bit0-1,
Expand Down
4 changes: 4 additions & 0 deletions docs/css/extra.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@
font-family: Menlo, Monaco, Consolas, "Courier New", monospace !important;
}
}

.md-typeset table {
white-space: nowrap;
}
11 changes: 7 additions & 4 deletions docs/dmachannels.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,10 +213,13 @@ cycles). This is making DMA much faster than CPU memory accesses (CPU DRAM
access takes 1 opcode cycle plus 6 waitstates, ie. 7 cycles in total)<br/>

#### CPU Operation during DMA
CPU is running during DMA within very strict rules. It can be kept running when accessing only cache, scratchpad, COP0 and GTE.<br/>
It can also make use of the 4 entry Write queue for both RAM and I/O registers, see:<br/>
[Write queue](memorymap.md#Write-queue)<br/>
Any read access from RAM or I/O registers or filling more than 4 entries into the write queue will stall the CPU until the DMA is finished.<br/>
CPU is running during DMA within very strict rules. It can be kept running when
accessing only cache, scratchpad, COP0 and GTE.<br/>
It can also make use of the 4 entry Write queue for both RAM and I/O registers,
see:<br/>
[Write queue](memorymap.md#write-queue)<br/>
Any read access from RAM or I/O registers or filling more than 4 entries into
the write queue will stall the CPU until the DMA is finished.<br/>
Additionally, the CPU operation resumes during periods when DMA gets interrupted
(ie. after SyncMode 1 blocks, after SyncMode 2 list entries) (or in SyncMode 0
with Chopping enabled).<br/>
Expand Down
2 changes: 1 addition & 1 deletion docs/expansionportpio.md
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ Unknown if the Interrupt signal is connected to the PSX... there seems to be no
spare IRQ for it, though it \<might\> share an IRQ with whatever other
hardware...?<br/>
The BIOS seems to use only one of the two channels; for the std\_io functions:<br/>
[BIOS TTY Console (std_io)](kernelbios.md#bios-tty-console-stdio)<br/>
[BIOS TTY Console (std_io)](kernelbios.md#bios-tty-console-std_io)<br/>
Aside from the external DUART, the PSX additionally contains an internal UART,<br/>
[Serial Interfaces (SIO)](serialinterfacessio.md)<br/>
The DTL-H2000 devboard uses a non-serial "ATCONS" channel for TTY stuff,<br/>
Expand Down
2 changes: 1 addition & 1 deletion docs/graphicsprocessingunitgpu.md
Original file line number Diff line number Diff line change
Expand Up @@ -1420,7 +1420,7 @@ blending and a channel's intensity ends up being < 0, it's clamped to 0.<br/>
Modulation is a colour effect that can be applied to textured primitives.
For each pixel of the primitive it combines every colour channel of the fetched
texel with the corresponding channel of the interpolated vertex colour according
to this formula (Assuming all channels are 8-bit).<br/>
to this formula (Assuming all channels are 8-bit).<br/>
```glsl
finalChannel.rgb = (texel.rgb * vertexColour.rgb) / vec3(128.0)
```
Expand Down
3 changes: 3 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@

# Home

## **IMPORTANT UPDATE**

On the 20th of August 2022, Martin surprisingly released a new version of this documentation. While this fork will try to incorporate the changes, one important footnote that got added is the following:
Expand Down
12 changes: 6 additions & 6 deletions docs/kernelbios.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
[BIOS Internal Boot Functions](kernelbios.md#bios-internal-boot-functions)<br/>
[BIOS More Internal Functions](kernelbios.md#bios-more-internal-functions)<br/>
[BIOS PC File Server](kernelbios.md#bios-pc-file-server)<br/>
[BIOS TTY Console (std_io)](kernelbios.md#bios-tty-console-stdio)<br/>
[BIOS TTY Console (std_io)](kernelbios.md#bios-tty-console-std_io)<br/>
[BIOS Character Sets](kernelbios.md#bios-character-sets)<br/>
[BIOS Control Blocks](kernelbios.md#bios-control-blocks)<br/>
[BIOS Versions](kernelbios.md#bios-versions)<br/>
Expand Down Expand Up @@ -838,7 +838,7 @@ being reserved for loading executables).<br/>

#### Note
For more info about EXE files and their headers, see<br/>
[CDROM File Formats](cdromdrive.md#cdrom-file-formats)<br/>
[CDROM File Formats](cdromfileformats.md)<br/>



Expand Down Expand Up @@ -2142,14 +2142,14 @@ That type of buffer can be used with "_ioabort", "longjmp", and also
"HookEntryInt(addr)".<br/>
The "setjmp" function returns 0 when called directly. However, it may return again -
to the same return address, and the same stack pointer - with another return value (which should be usually
non-zero, to indicate that the state has been restored (eg. _ioabort passes 1 as
non-zero, to indicate that the state has been restored (eg. \_ioabort passes 1 as
return value).<br/>
Also noteworthy from what a compliant setjmp implementation should be doing
is the absence of saving the state of cop0 and cop2, thus making this slightly
unsuitable for a typical coroutine system implementation.<br/>

#### A(14h) - longjmp(buf, param)
Restores the R16-R23,GP,SP,FP,RA registers from a previously recorded
Restores the R16-R23,GP,SP,FP,RA registers from a previously recorded
jmp_buf buffer, and "returns" to that new RA address (rather than to the caller of the
longjmp function). The "param" value is passed as "return value" to the
code at RA, ie. usually to the caller of the original setjmp call. Noteworthy difference
Expand All @@ -2160,8 +2160,8 @@ call and a rollback. See setjmp for further details.<br/>

#### A(53h) - set\_ioabort\_handler(src) ;PS2 only ;PSX: SystemError
Normally the _ioabort handler is changed only internally during booting, with
this new function, games can install their own _ioabort handler. src is pointer
to a 30h-byte "savestate" structure, which will be copied to the actual _ioabort
this new function, games can install their own \_ioabort handler. src is pointer
to a 30h-byte "savestate" structure, which will be copied to the actual \_ioabort
structure.<br/>

#### A(06h) or B(38h) - exit(exitcode)
Expand Down
Loading

0 comments on commit 61ee97d

Please sign in to comment.