
使用MIPS汇编器和C语言开发PS1游戏 | PS1 Programming with MIPS Assembly & C
来自 网络整理·免费领取学习资源
这份资料来自网络整理2026年的付费VIP课,内容以视频为主,对应《使用MIPS汇编器和C语言开发PS1游戏 | PS1 Programming with MIPS Assembly & C》。官网需要单独购买,有集上可以免费领取。
资源介绍:
本课程将带您深入了解PlayStation编程的世界!我们将探索PS1硬件,理解其各子组件,并学习如何使用MIPS汇编器及C编程语言来编写游戏。此外,我们还将学习如何结合使用PS1 SDK库与现代开发工具链,以提高生产力,让我们的游戏主机快速输出多边形
MIPS汇编语言篇
即将迈入32位游戏主机的第五世代,这一时代带来了诸多技术里程碑,比如基于RISC架构的CPU的应用,以及更倾向于使用高级语言而非纯汇编语言编写游戏的趋势。课程初期,我们将从MIPS汇编的基础学起,逐步进阶至利用C编译器配合PS1 SDK进行最终项目的开发
课程目录
- 001. Starting our Journey
- 001. Starting our Journey.srt
- 002. How to Take this Course
- 002. How to Take this Course.srt
- 002. How to Take this Course.vtt
- 003. Placing the PlayStation in History
- 003. Placing the PlayStation in History.srt
- 003. Placing the PlayStation in History.vtt
- 004. PS1 Hardware Overview.srt
- 004. PS1 Hardware Overview.vtt
- 005. The MIPS CPU
- 005. The MIPS CPU.srt
- 005. The MIPS CPU.vtt
- 006. Memory & Endianness
- 006. Memory & Endianness.srt
- 006. Memory & Endianness.vtt
- 007. Memory Map
- 007. Memory Map.srt
- 007. Memory Map.vtt
- 008. CPU Registers & Load Instructions
- 008. CPU Registers & Load Instructions.srt
- 009. Store, Add, & Subtract Instructions
- 009. Store, Add, & Subtract Instructions.srt
- 009. Store, Add, & Subtract Instructions.vtt
- 010. Jump & Branch Instructions
- 010. Jump & Branch Instructions.srt
- 010. Jump & Branch Instructions.vtt
- 011. Exercise Our First MIPS Code
- 011. Exercise Our First MIPS Code.srt
- 011. Exercise Our First MIPS Code.vtt
- 012. Going Over Our First MIPS Code
- 012. Going Over Our First MIPS Code.srt
- 012. Going Over Our First MIPS Code.vtt
- 013. Installing the ARMIPS Assembler
- 013. Installing the ARMIPS Assembler.vtt
- 014. Assembling our MIPS Code
- 014. Assembling our MIPS Code.srt
- 014. Assembling our MIPS Code.vtt
- 015. PSX-EXE File Format.srt
- 015. PSX-EXE File Format.vtt
- 016. Emulator & Step-By-Step Execution
- 016. Emulator & Step-By-Step Execution.srt
- 016. Emulator & Step-By-Step Execution.vtt
- 017. Fixing Off-By-One Error
- 017. Fixing Off-By-One Error.vtt
- 018. Pseudo-Instructions
- 018. Pseudo-Instructions.srt
- 018. Pseudo-Instructions.vtt
- 019. The MIPS Pipeline
- 019. The MIPS Pipeline.vtt
- 020. Some Warm Up Exercises
- 020. Some Warm Up Exercises.srt
- 020. Some Warm Up Exercises.vtt
- 021. Solving our Warm Up Exercises
- 021. Solving our Warm Up Exercises.srt
- 022. Register Shorthand
- 022. Register Shorthand.srt
- 022. Register Shorthand.vtt
- 023. Factorial Exercise
- 023. Factorial Exercise.srt
- 023. Factorial Exercise.vtt
- 024. Solving our Factorial Exercise
- 024. Solving our Factorial Exercise.srt
- 024. Solving our Factorial Exercise.vtt
- 025. Factorial Subroutine
- 025. Factorial Subroutine.srt
- 025. Factorial Subroutine.vtt
- 026. Negative Numbers
- 026. Negative Numbers.srt
- 026. Negative Numbers.vtt
- 027. Sign Extension
- 027. Sign Extension.srt
- 027. Sign Extension.vtt
- 028. Logical Instructions
- 028. Logical Instructions.srt
- 029. Bitshifting Instructions
- 029. Bitshifting Instructions.srt
- 029. Bitshifting Instructions.vtt
- 030. Examples of CISC & RISC Machines
- 030. Examples of CISC & RISC Machines.srt
- 030. Examples of CISC & RISC Machines.vtt
- 031. CISC vs RISC Instructions
- 031. CISC vs RISC Instructions.srt
- 032. The PlayStation Graphics System
- 032. The PlayStation Graphics System.vtt
- 033. Drawing Primitives
- 033. Drawing Primitives.vtt
- 034. GPU Packets
- 034. GPU Packets.srt
- 035. Sending Display Control Packets to GP1
- 035. Sending Display Control Packets to GP1.srt
- 035. Sending Display Control Packets to GP1.vtt
- 036. Sending VRAM Access Packets to GP0
- 036. Sending VRAM Access Packets to GP0.srt
- 036. Sending VRAM Access Packets to GP0.vtt
- 037. Clear Display Area
- 037. Clear Display Area.srt
- 037. Clear Display Area.vtt
- 038. Drawing a Flat-Shaded Triangle
- 038. Drawing a Flat-Shaded Triangle.srt
- 038. Drawing a Flat-Shaded Triangle.vtt
- 039. Drawing a Flat-Shaded Quad
- 039. Drawing a Flat-Shaded Quad.srt
- 039. Drawing a Flat-Shaded Quad.vtt
- 040. Drawing a Gouraud-Shaded Triangle
- 040. Drawing a Gouraud-Shaded Triangle.srt
- 040. Drawing a Gouraud-Shaded Triangle.vtt
- 041. Flat-Shaded Triangle Subroutine
- 041. Flat-Shaded Triangle Subroutine.srt
- 041. Flat-Shaded Triangle Subroutine.vtt
- 042. Coding our Flat Triangle Subroutine
- 042. Coding our Flat Triangle Subroutine.srt
- 042. Coding our Flat Triangle Subroutine.vtt
- 043. Stack & Stack Pointer
- 043. Stack & Stack Pointer.srt
- 043. Stack & Stack Pointer.vtt
- 044. Stack Parameters
- 044. Stack Parameters.srt
- 044. Stack Parameters.vtt
- 045. Stack & Heap Space
- 045. Stack & Heap Space.srt
- 045. Stack & Heap Space.vtt
- 046. Variables.srt
- 047. Variable Alignment
- 047. Variable Alignment.srt
- 047. Variable Alignment.vtt
- 048. Vector Alignment
- 048. Vector Alignment.srt
- 048. Vector Alignment.vtt
- 049. Copying Image Data to VRAM
- 049. Copying Image Data to VRAM.srt
- 049. Copying Image Data to VRAM.vtt
- 050. Using Bitshifting to Multiply & Divide
- 050. Using Bitshifting to Multiply & Divide.vtt
- 051. 24BPP Display Mode
- 051. 24BPP Display Mode.srt
- 051. 24BPP Display Mode.vtt
- 052. Taking Advantage of our Delay Slots
- 052. Taking Advantage of our Delay Slots.srt
- 052. Taking Advantage of our Delay Slots.vtt
- 053. Moving from MIPS Assembly to C
- 053. Moving from MIPS Assembly to C.srt
- 053. Moving from MIPS Assembly to C.vtt
- 054. Installing Tools on Windows 11
- 054. Installing Tools on Windows 11.srt
- 054. Installing Tools on Windows 11.vtt
- 055. Installing Tools on Windows XP
- 055. Installing Tools on Windows XP.srt
- 055. Installing Tools on Windows XP.vtt
- 056. Compiling a Simple Psy-Q Project
- 056. Compiling a Simple Psy-Q Project.vtt
- 057. Double-Buffer Screen.srt
- 057. Double-Buffer Screen.vtt
- 058. Psy-Q Integer Data Types
- 058. Psy-Q Integer Data Types.srt
- 058. Psy-Q Integer Data Types.vtt
- 059. Psy-Q Primitive Types.srt
- 059. Psy-Q Primitive Types.vtt
- 060. Ordering Table & Primitive Buffer
- 060. Ordering Table & Primitive Buffer.srt
- 060. Ordering Table & Primitive Buffer.vtt
- 061. Sorting Primitives into the OT
- 061. Sorting Primitives into the OT.srt
- 061. Sorting Primitives into the OT.vtt
- 062. Sorting a Gouraud Quad into the OT
- 062. Sorting a Gouraud Quad into the OT.srt
- 063. A Review of Pointers
- 063. A Review of Pointers.srt
- 064. The Arrow Operator.srt
- 065. A Review of 3D Projection.srt
- 065. A Review of 3D Projection.vtt
- 066. Vertices & Face Indices
- 066. Vertices & Face Indices.vtt
- 067. The Geometry Transformation Engine
- 067. The Geometry Transformation Engine.srt
- 067. The Geometry Transformation Engine.vtt
- 068. Basic 3D Transformations
- 068. Basic 3D Transformations.srt
- 068. Basic 3D Transformations.vtt
- 069. RotTransPers Function
- 069. RotTransPers Function.srt
- 069. RotTransPers Function.vtt
- 070. Coding a Rotating 3D Cube
- 070. Coding a Rotating 3D Cube.srt
- 070. Coding a Rotating 3D Cube.vtt
- 071. Normal Clip
- 071. Normal Clip.vtt
- 072. Coding Quads as Cube Faces
- 072. Coding Quads as Cube Faces.srt
- 072. Coding Quads as Cube Faces.vtt
- 073. Reviewing Floating-Point Numbers.srt
- 073. Reviewing Floating-Point Numbers.vtt
- 074. Fixed-Point Numbers
- 074. Fixed-Point Numbers.srt
- 074. Fixed-Point Numbers.vtt
- 075. Implementing a Bouncing Cube
- 075. Implementing a Bouncing Cube.srt
- 075. Implementing a Bouncing Cube.vtt
- 076. Different Transform Matrix per Object
- 076. Different Transform Matrix per Object.vtt
- 077. Wait, Can I use Floats
- 077. Wait, Can I use Floats.srt
- 077. Wait, Can I use Floats.vtt
- 078. GTE Register Set
- 078. GTE Register Set.srt
- 078. GTE Register Set.vtt
- 079. Inline GTE Instructions
- 079. Inline GTE Instructions.srt
- 079. Inline GTE Instructions.vtt
- 080. RTPT vs. RTPS
- 080. RTPT vs. RTPS.srt
- 080. RTPT vs. RTPS.vtt
- 081. Reading Joypad State
- 081. Reading Joypad State.srt
- 081. Reading Joypad State.vtt
- 082. Joypad Input with BIOS Functions
- 082. Joypad Input with BIOS Functions.srt
- 082. Joypad Input with BIOS Functions.vtt
- 083. Joypad Header & Implementation
- 083. Joypad Header & Implementation.srt
- 083. Joypad Header & Implementation.vtt
- 084. Header File for OT & Primitive Buffer
- 084. Header File for OT & Primitive Buffer.srt
- 085. Header File for Display Routines
- 085. Header File for Display Routines.srt
- 086. Camera Space
- 086. Camera Space.srt
- 086. Camera Space.vtt
- 087. The Look-At Transformation
- 087. The Look-At Transformation.srt
- 088. The LookAt Function
- 088. The LookAt Function.srt
- 088. The LookAt Function.vtt
- 089. Coding the Look-At Camera Model
- 089. Coding the Look-At Camera Model.srt
- 089. Coding the Look-At Camera Model.vtt
- 090. CD-ROM Basics
- 090. CD-ROM Basics.vtt
- 091. Generating an ISO on Windows XP.srt
- 091. Generating an ISO on Windows XP.vtt
- 092. Generating an ISO on Windows 11
- 092. Generating an ISO on Windows 11.srt
- 092. Generating an ISO on Windows 11.vtt
- 093. A Function to Read Files from the CD
- 093. A Function to Read Files from the CD.srt
- 093. A Function to Read Files from the CD.vtt
- 094. Understanding the MODEL.BIN File
- 094. Understanding the MODEL.BIN File.srt
- 094. Understanding the MODEL.BIN File.vtt
- 095. Dynamically Allocating Buffers
- 095. Dynamically Allocating Buffers.srt
- 095. Dynamically Allocating Buffers.vtt
- 096. Heap Initialization on Windows 11.srt
- 097. Interpreting Bytes as Numbers
- 097. Interpreting Bytes as Numbers.srt
- 097. Interpreting Bytes as Numbers.vtt
- 098. Handling Different Order of Bytes
- 098. Handling Different Order of Bytes.srt
- 098. Handling Different Order of Bytes.vtt
- 099. Reading Vertices & Faces from a File
- 099. Reading Vertices & Faces from a File.srt
- 099. Reading Vertices & Faces from a File.vtt
- 100. UV Coordinates, TPAGE, & CLUT
- 100. UV Coordinates, TPAGE, & CLUT.srt
- 100. UV Coordinates, TPAGE, & CLUT.vtt
- 101. Installing TIM Tool
- 101. Installing TIM Tool.srt
- 101. Installing TIM Tool.vtt
- 102. TIM File Format
- 102. TIM File Format.vtt
- 103. Read TIM File from the CD
- 103. Read TIM File from the CD.srt
- 103. Read TIM File from the CD.vtt
- 104. Textured Cube Faces.srt
- 104. Textured Cube Faces.vtt
- 105. Wobbly Textures
- 105. Wobbly Textures.srt
- 105. Wobbly Textures.vtt
- 106. Polygon Jitter
- 106. Polygon Jitter.srt
- 106. Polygon Jitter.vtt
- 107. Dev Tools CD Samples
- 107. Dev Tools CD Samples.srt
- 107. Dev Tools CD Samples.vtt
- 108. Intro to our Final Project
- 108. Intro to our Final Project.srt
- 109. Importing Project Assets
- 109. Importing Project Assets.srt
- 110. PRM File Layout
- 110. PRM File Layout.srt
- 110. PRM File Layout.vtt
- 111. Reading Object Name from PRM File
- 111. Reading Object Name from PRM File.srt
- 111. Reading Object Name from PRM File.vtt
- 112. Reading Vertices from PRM File
- 112. Reading Vertices from PRM File.vtt
- 113. Handling Different Primitive Types
- 113. Handling Different Primitive Types.srt
- 113. Handling Different Primitive Types.vtt
- 114. Reading Primitives from PRM File
- 114. Reading Primitives from PRM File.srt
- 114. Reading Primitives from PRM File.vtt
- 115. Drawing Flat-Shaded Object Faces
- 115. Drawing Flat-Shaded Object Faces.srt
- 116. Using sizeof with Variable Name
- 116. Using sizeof with Variable Name.srt
- 116. Using sizeof with Variable Name.vtt
- 117. CMP File Layout
- 117. CMP File Layout.srt
- 117. CMP File Layout.vtt
- 118. Reading Number of Textures from File
- 118. Reading Number of Textures from File.srt
- 118. Reading Number of Textures from File.vtt
- 119. Reading TIM Sizes from File
- 119. Reading TIM Sizes from File.srt
- 119. Reading TIM Sizes from File.vtt
- 120. A Function to Extract LZSS Data
- 120. A Function to Extract LZSS Data.srt
- 120. A Function to Extract LZSS Data.vtt
- 121. Texture Structs
- 121. Texture Structs.srt
- 121. Texture Structs.vtt
- 122. Uploading CMP Textures to VRAM
- 122. Uploading CMP Textures to VRAM.srt
- 122. Uploading CMP Textures to VRAM.vtt
- 123. Global Texture Store Array
- 123. Global Texture Store Array.srt
- 123. Global Texture Store Array.vtt
- 124. Rendering Textured Triangles.srt
- 124. Rendering Textured Triangles.vtt
- 125. Visualizing Textured 3D Objects
- 125. Visualizing Textured 3D Objects.srt
- 126. Loading Multiple CMP Files
- 126. Loading Multiple CMP Files.srt
- 126. Loading Multiple CMP Files.vtt
- 127. Exercise Linked List of Objects
- 127. Exercise Linked List of Objects.srt
- 127. Exercise Linked List of Objects.vtt
- 128. Linked List Implementation
- 128. Linked List Implementation.vtt
- 129. Joypad Press & Release
- 129. Joypad Press & Release.srt
- 129. Joypad Press & Release.vtt
- 130. Reading Scene Objects from CD
- 130. Reading Scene Objects from CD.srt
- 130. Reading Scene Objects from CD.vtt
- 131. Camera-Object Distance Check
- 131. Camera-Object Distance Check.srt
- 131. Camera-Object Distance Check.vtt
- 132. Drawing Scene Objects
- 132. Drawing Scene Objects.vtt
- 133. Track Sections & Faces
- 133. Track Sections & Faces.vtt
- 134. Structs for Sessions & Faces
- 134. Structs for Sessions & Faces.srt
- 134. Structs for Sessions & Faces.vtt
- 135. Reading Vertices, Faces, & Sections
- 135. Reading Vertices, Faces, & Sections.srt
- 136. Function to Render Track Sections
- 136. Function to Render Track Sections.srt
- 136. Function to Render Track Sections.vtt
- 137. Shrinking Track Vertices.srt
- 137. Shrinking Track Vertices.vtt
- 138. Exercise Testing Face Flags
- 138. Exercise Testing Face Flags.srt
- 138. Exercise Testing Face Flags.vtt
- 139. Drawing Quad Lines
- 139. Drawing Quad Lines.srt
- 139. Drawing Quad Lines.vtt
- 140. Avoiding the GTE 16-bit Limitation
- 140. Avoiding the GTE 16-bit Limitation.srt
- 140. Avoiding the GTE 16-bit Limitation.vtt
- 141. Clamping Overflow Values.srt
- 141. Clamping Overflow Values.vtt
- 142. Loading Track Texture Tiles
- 142. Loading Track Texture Tiles.srt
- 142. Loading Track Texture Tiles.vtt
- 143. Manually Position Textures in VRAM
- 143. Manually Position Textures in VRAM.vtt
- 144. Loading Track Face UV Coords
- 144. Loading Track Face UV Coords.vtt
- 145. Flip Face Texture
- 145. Flip Face Texture.srt
- 145. Flip Face Texture.vtt
- 146. Tessellation & Polygon Subdivision.srt
- 146. Tessellation & Polygon Subdivision.vtt
- 147. Drawing Quads Recursively
- 147. Drawing Quads Recursively.srt
- 147. Drawing Quads Recursively.vtt
- 148. A Function to Draw Quads Recursively
- 148. A Function to Draw Quads Recursively.srt
- 148. A Function to Draw Quads Recursively.vtt
- 149. Subdividing UV Coordinates
- 149. Subdividing UV Coordinates.srt
- 149. Subdividing UV Coordinates.vtt
- 150. T-junctions
- 150. T-junctions.srt
- 150. T-junctions.vtt
- code
- PS1 Programming with MIPS Assembly & C.txt
包含内容
- · 001. Starting our Journey
- · 001. Starting our Journey.srt
- · 002. How to Take this Course
- · 002. How to Take this Course.srt
- · 002. How to Take this Course.vtt
- · 003. Placing the PlayStation in History
- · 003. Placing the PlayStation in History.srt
- · 003. Placing the PlayStation in History.vtt
贡献者