Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай PS1 Programming with MIPS Assembly & C, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 1. 00:12:19
    Starting our Journey
  • Урок 2. 00:02:59
    How to Take this Course
  • Урок 3. 00:10:50
    Placing the PlayStation in History
  • Урок 4. 00:14:10
    PS1 Hardware Overview
  • Урок 5. 00:09:54
    The MIPS CPU
  • Урок 6. 00:07:41
    Memory & Endianness
  • Урок 7. 00:12:13
    Memory Map
  • Урок 8. 00:15:53
    CPU Registers & Load Instructions
  • Урок 9. 00:07:11
    Store, Add, & Subtract Instructions
  • Урок 10. 00:07:03
    Jump & Branch Instructions
  • Урок 11. 00:02:47
    Exercise: Our First MIPS Code
  • Урок 12. 00:05:11
    Going Over Our First MIPS Code
  • Урок 13. 00:06:38
    Installing the ARMIPS Assembler
  • Урок 14. 00:04:09
    Assembling our MIPS Code
  • Урок 15. 00:04:43
    PSX-EXE File Format
  • Урок 16. 00:08:03
    Emulator & Step-By-Step Execution
  • Урок 17. 00:03:05
    Fixing Off-By-One Error
  • Урок 18. 00:07:53
    Pseudo-Instructions
  • Урок 19. 00:11:00
    The MIPS Pipeline
  • Урок 20. 00:06:57
    Some Warm Up Exercises
  • Урок 21. 00:15:08
    Solving our Warm Up Exercises
  • Урок 22. 00:04:57
    Register Shorthand
  • Урок 23. 00:05:40
    Factorial Exercise
  • Урок 24. 00:08:57
    Solving our Factorial Exercise
  • Урок 25. 00:10:54
    Factorial Subroutine
  • Урок 26. 00:11:45
    Negative Numbers
  • Урок 27. 00:06:24
    Sign Extension
  • Урок 28. 00:06:07
    Logical Instructions
  • Урок 29. 00:09:30
    Bitshifting Instructions
  • Урок 30. 00:06:46
    Examples of CISC & RISC Machines
  • Урок 31. 00:15:46
    CISC vs RISC Instructions
  • Урок 32. 00:16:42
    The PlayStation Graphics System
  • Урок 33. 00:05:10
    Drawing Primitives
  • Урок 34. 00:11:30
    GPU Packets
  • Урок 35. 00:19:03
    Sending Display Control Packets to GP1
  • Урок 36. 00:07:01
    Sending VRAM Access Packets to GP0
  • Урок 37. 00:06:35
    Clear Display Area
  • Урок 38. 00:04:35
    Drawing a Flat-Shaded Triangle
  • Урок 39. 00:02:39
    Drawing a Flat-Shaded Quad
  • Урок 40. 00:01:54
    Drawing a Gouraud-Shaded Triangle
  • Урок 41. 00:13:08
    Flat-Shaded Triangle Subroutine
  • Урок 42. 00:04:36
    Coding our Flat Triangle Subroutine
  • Урок 43. 00:11:17
    Stack & Stack Pointer
  • Урок 44. 00:07:24
    Stack Parameters
  • Урок 45. 00:05:16
    Stack & Heap Space
  • Урок 46. 00:07:38
    Variables
  • Урок 47. 00:06:20
    Variable Alignment
  • Урок 48. 00:13:32
    Vector Alignment
  • Урок 49. 00:24:40
    Copying Image Data to VRAM
  • Урок 50. 00:06:57
    Using Bitshifting to Multiply & Divide
  • Урок 51. 00:14:38
    24BPP Display Mode
  • Урок 52. 00:06:33
    Taking Advantage of our Delay Slots
  • Урок 53. 00:05:37
    Moving from MIPS Assembly to C
  • Урок 54. 00:14:17
    Installing Tools on Windows 11
  • Урок 55. 00:19:31
    Installing Tools on Windows XP
  • Урок 56. 00:12:38
    Compiling a Simple Psy-Q Project
  • Урок 57. 00:28:44
    Double-Buffer Screen
  • Урок 58. 00:04:10
    Psy-Q Integer Data Types
  • Урок 59. 00:07:30
    Psy-Q Primitive Types
  • Урок 60. 00:17:27
    Ordering Table & Primitive Buffer
  • Урок 61. 00:15:13
    Sorting Primitives into the OT
  • Урок 62. 00:05:47
    Sorting a Gouraud Quad into the OT
  • Урок 63. 00:12:14
    A Review of Pointers
  • Урок 64. 00:11:38
    The Arrow Operator
  • Урок 65. 00:15:39
    A Review of 3D Projection
  • Урок 66. 00:12:24
    Vertices & Face Indices
  • Урок 67. 00:07:11
    The Geometry Transformation Engine
  • Урок 68. 00:10:05
    Basic 3D Transformations
  • Урок 69. 00:15:21
    RotTransPers Function
  • Урок 70. 00:14:27
    Coding a Rotating 3D Cube
  • Урок 71. 00:06:33
    Normal Clip
  • Урок 72. 00:03:12
    Coding Quads as Cube Faces
  • Урок 73. 00:15:10
    Reviewing Floating-Point Numbers
  • Урок 74. 00:15:28
    Fixed-Point Numbers
  • Урок 75. 00:10:52
    Implementing a Bouncing Cube
  • Урок 76. 00:16:11
    Different Transform Matrix per Object
  • Урок 77. 00:02:50
    Wait, Can I use Floats?
  • Урок 78. 00:10:25
    GTE Register Set
  • Урок 79. 00:15:19
    Inline GTE Instructions
  • Урок 80. 00:08:36
    RTPT vs. RTPS
  • Урок 81. 00:17:36
    Reading Joypad State
  • Урок 82. 00:17:05
    Joypad Input with BIOS Functions
  • Урок 83. 00:22:16
    Joypad Header & Implementation
  • Урок 84. 00:25:41
    Header File for OT & Primitive Buffer
  • Урок 85. 00:06:04
    Header File for Display Routines
  • Урок 86. 00:10:51
    Camera Space
  • Урок 87. 00:15:23
    The Look-At Transformation
  • Урок 88. 00:16:21
    The LookAt Function
  • Урок 89. 00:20:58
    Coding the Look-At Camera Model
  • Урок 90. 00:21:32
    CD-ROM Basics
  • Урок 91. 00:14:35
    Generating an ISO on Windows XP
  • Урок 92. 00:09:19
    Generating an ISO on Windows 11
  • Урок 93. 00:21:07
    A Function to Read Files from the CD
  • Урок 94. 00:07:07
    Understanding the MODEL.BIN File
  • Урок 95. 00:08:23
    Dynamically Allocating Buffers
  • Урок 96. 00:07:06
    Heap Initialization on Windows 11
  • Урок 97. 00:15:03
    Interpreting Bytes as Numbers
  • Урок 98. 00:09:40
    Handling Different Order of Bytes
  • Урок 99. 00:13:20
    Reading Vertices & Faces from a File
  • Урок 100. 00:17:28
    UV Coordinates, TPAGE, & CLUT
  • Урок 101. 00:03:18
    Installing TIM Tool
  • Урок 102. 00:10:39
    TIM File Format
  • Урок 103. 00:19:42
    Read TIM File from the CD
  • Урок 104. 00:17:44
    Textured Cube Faces
  • Урок 105. 00:12:24
    Wobbly Textures
  • Урок 106. 00:02:54
    Polygon Jitter
  • Урок 107. 00:08:33
    Dev Tools CD Samples
  • Урок 108. 00:09:04
    Intro to our Final Project
  • Урок 109. 00:03:54
    Importing Project Assets
  • Урок 110. 00:13:38
    PRM File Layout
  • Урок 111. 00:14:35
    Reading Object Name from PRM File
  • Урок 112. 00:10:27
    Reading Vertices from PRM File
  • Урок 113. 00:22:50
    Handling Different Primitive Types
  • Урок 114. 00:13:23
    Reading Primitives from PRM File
  • Урок 115. 00:24:45
    Drawing Flat-Shaded Object Faces
  • Урок 116. 00:03:00
    Using sizeof with Variable Name
  • Урок 117. 00:11:01
    CMP File Layout
  • Урок 118. 00:06:51
    Reading Number of Textures from File
  • Урок 119. 00:12:32
    Reading TIM Sizes from File
  • Урок 120. 00:10:47
    A Function to Extract LZSS Data
  • Урок 121. 00:15:12
    Texture Structs
  • Урок 122. 00:18:59
    Uploading CMP Textures to VRAM
  • Урок 123. 00:13:51
    Global Texture Store Array
  • Урок 124. 00:06:44
    Rendering Textured Triangles
  • Урок 125. 00:06:56
    Visualizing Textured 3D Objects
  • Урок 126. 00:11:40
    Loading Multiple CMP Files
  • Урок 127. 00:08:48
    Exercise: Linked List of Objects
  • Урок 128. 00:14:36
    Linked List Implementation
  • Урок 129. 00:02:33
    Joypad Press & Release
  • Урок 130. 00:20:30
    Reading Scene Objects from CD
  • Урок 131. 00:11:15
    Camera-Object Distance Check
  • Урок 132. 00:08:10
    Drawing Scene Objects
  • Урок 133. 00:14:31
    Track Sections & Faces
  • Урок 134. 00:07:48
    Structs for Sessions & Faces
  • Урок 135. 00:20:46
    Reading Vertices, Faces, & Sections
  • Урок 136. 00:22:59
    Function to Render Track Sections
  • Урок 137. 00:15:24
    Shrinking Track Vertices
  • Урок 138. 00:06:46
    Exercise: Testing Face Flags
  • Урок 139. 00:05:39
    Drawing Quad Lines
  • Урок 140. 00:11:47
    Avoiding the GTE 16-bit Limitation
  • Урок 141. 00:18:20
    Clamping Overflow Values
  • Урок 142. 00:24:24
    Loading Track Texture Tiles
  • Урок 143. 00:15:08
    Manually Position Textures in VRAM
  • Урок 144. 00:10:12
    Loading Track Face UV Coords
  • Урок 145. 00:05:10
    Flip Face Texture
  • Урок 146. 00:13:14
    Tessellation & Polygon Subdivision
  • Урок 147. 00:12:35
    Drawing Quads Recursively
  • Урок 148. 00:15:29
    A Function to Draw Quads Recursively
  • Урок 149. 00:09:33
    Subdividing UV Coordinates
  • Урок 150. 00:13:03
    T-junctions
  • Урок 151. 00:08:02
    Ship Struct
  • Урок 152. 00:03:58
    Adding the Ship Header File
  • Урок 153. 00:08:04
    Movement in Game Physics
  • Урок 154. 00:19:02
    Changing the Thrust Magnitude
  • Урок 155. 00:16:08
    Applying the Thrust Force
  • Урок 156. 00:09:47
    Yaw, Pitch, & Roll
  • Урок 157. 00:15:59
    Populating our Rotation Matrix
  • Урок 158. 00:14:27
    Coding the Object's Orientation
  • Урок 159. 00:06:15
    Drawing XYZ Axis
  • Урок 160. 00:10:32
    Accelerating in the Nose's Direction
  • Урок 161. 00:07:53
    Placing Camera Behind the Ship
  • Урок 162. 00:19:20
    Yaw Velocity
  • Урок 163. 00:05:45
    Maximum Yaw Velocity
  • Урок 164. 00:11:01
    Roll Left & Right
  • Урок 165. 00:09:33
    Rethinking Section Rendering
  • Урок 166. 00:11:58
    Initializing Ship's Nearest Section
  • Урок 167. 00:07:44
    Update Ship's Nearest Section
  • Урок 168. 00:10:52
    Rendering Track Ahead
  • Урок 169. 00:03:24
    Clamping Track Vertices to 16 bits
  • Урок 170. 00:10:00
    Loading Track Session Normals
  • Урок 171. 00:07:17
    Drawing Section Normals
  • Урок 172. 00:10:02
    Loading the Section Base Vertex
  • Урок 173. 00:10:20
    Projected Ship Height
  • Урок 174. 00:09:46
    Coding the Projected Ship Height
  • Урок 175. 00:08:20
    Track Attraction & Repulsion Forces
  • Урок 176. 00:04:01
    Preventing Negative Height Values
  • Урок 177. 00:15:37
    Audio & SPU
  • Урок 178. 00:09:42
    Converting WAV to VAG
  • Урок 179. 00:20:53
    Playing a VAG Sound Effect
  • Урок 180. 00:05:01
    Pitch & Sampling Frequency
  • Урок 181. 00:01:36
    Exercise: Countdown Audio
  • Урок 182. 00:04:54
    Countdown Sound Effects
  • Урок 183. 00:09:32
    Background Music
  • Урок 184. 00:06:23
    Recording an Audio Track
  • Урок 185. 00:13:50
    Adding Audio Track to ISO
  • Урок 186. 00:10:20
    Play Audio Track Implementation
  • Урок 187. 00:04:30
    Play Background Audio Track
  • Урок 188. 00:02:33
    Adding Scene Objects & Audio
  • Урок 189. 00:09:58
    Conclusion & Next Steps