001. Starting our Journey
002. How to Take this Course
003. Placing the PlayStation in History
004. PS1 Hardware Oeriew
005. The MIPS CPU
006. Memory & Endianness
007. Memory Map
008. CPU Registers & Load Instructions
009. Store, Add, & Subtract Instructions
010. Jump & Branch Instructions
011. Exercise Our First MIPS Code
012. Going Oer Our First MIPS Code
013. Installing the ARMIPS Assembler
014. Assembling our MIPS Code
015. PSX-EXE File Format
016. Emulator & Step-By-Step Execution
017. Fixing Off-By-One Error
018. Pseudo-Instructions
019. The MIPS Pipeline
020. Some Warm Up Exercises
021. Soling our Warm Up Exercises
022. Register Shorthand
023. Factorial Exercise
024. Soling our Factorial Exercise
025. Factorial Subroutine
026. Negatie Numbers
027. Sign Extension
028. Logical Instructions
029. Bitshifting Instructions
030. Examples of CISC & RISC Machines
031. CISC s RISC Instructions
032. The PlayStation Graphics System
033. Drawing Primities
034. GPU Packets
035. Sending Display Control Packets to GP1
036. Sending VRAM Access Packets to GP0
037. Clear Display Area
038. Drawing a Flat-Shaded Triangle
039. Drawing a Flat-Shaded Quad
040. Drawing a Gouraud-Shaded Triangle
041. Flat-Shaded Triangle Subroutine
042. Coding our Flat Triangle Subroutine
043. Stack & Stack Pointer
044. Stack Parameters
045. Stack & Heap Space
046. Variables
047. Variable Alignment
048. Vector Alignment
049. Copying Image Data to VRAM
050. Using Bitshifting to Multiply & Diide
051. 24BPP Display Mode
052. Taking Adantage of our Delay Slots
053. Moing from MIPS Assembly to C
054. Installing Tools on Windows 11
055. Installing Tools on Windows XP
056. Compiling a Simple Psy-Q Project
057. Double-Buffer Screen
058. Psy-Q Integer Data Types
059. Psy-Q Primitie Types
060. Ordering Table & Primitie Buffer
061. Sorting Primities into the OT
062. Sorting a Gouraud Quad into the OT
063. A Reiew of Pointers
064. The Arrow Operator
065. A Reiew of 3D Projection
066. Vertices & Face Indices
067. The Geometry Transformation Engine
068. Basic 3D Transformations
069. RotTransPers Function
070. Coding a Rotating 3D Cube
071. Normal Clip
072. Coding Quads as Cube Faces
073. Reiewing Floating-Point Numbers
074. Fixed-Point Numbers
075. Implementing a Bouncing Cube
076. Different Transform Matrix per Object
077. Wait, Can I use Floats
078. GTE Register Set
079. Inline GTE Instructions
080. RTPT s. RTPS
081. Reading Joypad State
082. Joypad Input with BIOS Functions
083. Joypad Header & Implementation
084. Header File for OT & Primitie Buffer
085. Header File for Display Routines
086. Camera Space
087. The Look-At Transformation
088. The LookAt Function
089. Coding the Look-At Camera Model
090. CD-ROM Basics
091. Generating an ISO on Windows XP
092. Generating an ISO on Windows 11
093. A Function to Read Files from the CD
094. Understanding the MODEL.BIN File
095. Dynamically Allocating Buffers
096. Heap Initialization on Windows 11
097. Interpreting Bytes as Numbers
098. Handling Different Order of Bytes
099. Reading Vertices & Faces from a File
100. UV Coordinates, TPAGE, & CLUT
101. Installing TIM Tool
102. TIM File Format
103. Read TIM File from the CD
104. Textured Cube Faces
105. Wobbly Textures
106. Polygon Jitter
107. De Tools CD Samples
108. Intro to our Final Project
109. Importing Project Assets
110. PRM File Layout
111. Reading Object Name from PRM File
112. Reading Vertices from PRM File
113. Handling Different Primitie Types
114. Reading Primities from PRM File
115. Drawing Flat-Shaded Object Faces
116. Using sizeof with Variable Name
117. CMP File Layout
118. Reading Number of Textures from File
119. Reading TIM Sizes from File
120. A Function to Extract LZSS Data
121. Texture Structs
122. Uploading CMP Textures to VRAM
123. Global Texture Store Array
124. Rendering Textured Triangles
125. Visualizing Textured 3D Objects
126. Loading Multiple CMP Files
127. Exercise Linked List of Objects
128. Linked List Implementation
129. Joypad Press & Release
130. Reading Scene Objects from CD
131. Camera-Object Distance Check
132. Drawing Scene Objects
133. Track Sections & Faces
134. Structs for Sessions & Faces
135. Reading Vertices, Faces, & Sections
136. Function to Render Track Sections
137. Shrinking Track Vertices
138. Exercise Testing Face Flags
139. Drawing Quad Lines
140. Aoiding the GTE 16-bit Limitation
141. Clamping Oerflow Values
142. Loading Track Texture Tiles
143. Manually Position Textures in VRAM
144. Loading Track Face UV Coords
145. Flip Face Texture
146. Tessellation & Polygon Subdiision
147. Drawing Quads Recursiely
148. A Function to Draw Quads Recursiely
149. Subdiiding UV Coordinates
150. T-junctions