From 7db771a3e2851c4ad33905f8ca91404204a81ceb Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 11 May 2024 23:06:17 +0000 Subject: [PATCH 1/4] Add PSP/PS1/x64 stuff --- emudev_resources_systems.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/emudev_resources_systems.md b/emudev_resources_systems.md index 912cc84..ff4225e 100644 --- a/emudev_resources_systems.md +++ b/emudev_resources_systems.md @@ -174,7 +174,8 @@ There are no "full" tutorials for other systems, so using references will be a b - See MIPS resources - [Guide to writing a PSX emulator](https://github.com/simias/psx-guide) - [Rendered](https://cdn.discordapp.com/attachments/492036343376117778/492037613721616406/guide.PDF) -- [psx-spx](https://problemkaputt.de/psx-spx.htm) +- [psx-spx (original)](https://problemkaputt.de/psx-spx.htm) +- [psx-spx (modernized and actively maintained)](https://psx-spx.consoledev.net/) - [PSX reverse engineering project](https://github.com/ogamespec/psxdev/tree/master/reverse) - [BIOS info](http://wiki.psxdev.ru/index.php/BIOS) - [Translated](https://translate.google.com/translate?sl=auto&tl=en&u=http://wiki.psxdev.ru/index.php/BIOS) @@ -184,7 +185,6 @@ There are no "full" tutorials for other systems, so using references will be a b - [Other PSX documentation (including a CPU reference manual)](http://hitmen.c02.at/html/psx_docs.html) - [PSX GTE docs/reverse engineering](https://github.com/ogamespec/pops-gte) - [PSX MDEC & CD-ROM info](https://github.com/m35/jpsxdec/blob/readme/jpsxdec/PlayStation1_STR_format.txt) -- [Dithering on the PSX](https://www.youtube.com/watch?v=3XDyQnY5GHI) - [PlayStation emulator development info](https://drhell.web.fc2.com/ps1/index.html) - [Translated](https://translate.google.com/translate?sl=auto&tl=en&u=http%3A%2F%2Fdrhell.web.fc2.com%2Fps1%2Findex.html) - Test ROMs: @@ -192,6 +192,7 @@ There are no "full" tutorials for other systems, so using references will be a b - - - + - - [PSX demos](https://www.pouet.net/prodlist.php?order=thumbup&platform%5B0%5D=Playstation&page=1) - Open-source BIOS: @@ -209,7 +210,7 @@ There are no "full" tutorials for other systems, so using references will be a b ## PlayStation Portable - - +- ## Sega Game Gear - [VDP test ROM](https://www.retrorgb.com/game-gear-vdp-test-software.html) - [Button test ROM](https://github.com/GameGearSamples/ButtonTest) @@ -370,6 +371,8 @@ There are no "full" tutorials for other systems, so using references will be a b - [x86 Intrinsics](https://software.intel.com/sites/landingpage/IntrinsicsGuide) - [Sandpile](https://sandpile.org) - [Opcode and Instruction Reference](http://ref.x86asm.net/coder.html) +- [x86-64 opcode table](http://ref.x86asm.net/coder64.html) +- [OSDev wiki encoding page](https://wiki.osdev.org/X86-64_Instruction_Encoding) - ## MIPS From 80a65f9107bac31ce3712719b567a7e2155292f3 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 11 May 2024 23:10:29 +0000 Subject: [PATCH 2/4] Add more GC/Wii docs --- emudev_resources_systems.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/emudev_resources_systems.md b/emudev_resources_systems.md index ff4225e..6037e65 100644 --- a/emudev_resources_systems.md +++ b/emudev_resources_systems.md @@ -169,6 +169,11 @@ There are no "full" tutorials for other systems, so using references will be a b - See PowerPC resources - YAGCD: (mirror: ) - [GameCube resources GitHub repository](https://github.com/DenSinH/GameCubeResources) +- [GC/Wii games with debug symbols](https://wiki.dolphin-emu.org/index.php?title=Ships_with_Debugging_Symbols) +- [Dolphin hardware tests](https://github.com/dolphin-emu/hwtests) +- [GC/Wii games that use the Zelda DSP microcode](https://wiki.dolphin-emu.org/index.php?title=Category:Zelda_ucode_games) +- [Gekko/Broadway/Espresso Ghidra plugin](https://github.com/aldelaro5/ghidra-gekko-broadway-lang) +- [DSP HLE (Dolphin)](https://blog.lse.epita.fr/2012/12/03/emulating-the-gamecube-audio-processing-in-dolphin.html) ## PlayStation 1 - See MIPS resources From 080363c1fbdca548a19a6cd862e9f40dfe7b37fc Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sun, 12 May 2024 01:57:42 +0300 Subject: [PATCH 3/4] Add more 3DS resources --- emudev_resources_systems.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/emudev_resources_systems.md b/emudev_resources_systems.md index 6037e65..8925e15 100644 --- a/emudev_resources_systems.md +++ b/emudev_resources_systems.md @@ -115,6 +115,12 @@ There are no "full" tutorials for other systems, so using references will be a b - See relevant ARM resources below (the 3DS's ARM11 MPCore implements ARMv6K, not plain ARMv6, so you'll have toat the ARMv7-AR manual too for the few additions; the ARM9 is the same as on the Nintendo DS) - [GBATEK](https://problemkaputt.de/gbatek.htm) - [The 3DBrew wiki](https://www.3dbrew.org/wiki/Main_Page) +- [Libctru demos](https://github.com/devkitPro/3ds-examples) +- [CRO documentation](https://gist.github.com/wwylele/325d53ee6a0f1dff6aa3473377335d93) +- [Audio tests](https://github.com/Panda3DS-emu/3ds-audio) +- [CTRPF cheat code documentation](https://gist.github.com/Nanquitas/d6c920a59c757cf7917c2bffa76de860) +- [Subv's additional findings on the kernel's threading system](https://gist.github.com/Subv/02f29bd9f1e5deb7aceea1e8f019c8f4) (meant to complement the relevant 3DBrew page) +- [Simple hommebrew userland tests](https://github.com/wheremyfoodat/Panda3DS/tree/master/tests) ## Nintendo Entertainment System - See 65xx family resources @@ -390,4 +396,4 @@ There are no "full" tutorials for other systems, so using references will be a b - [Itanium System Abstraction Layer Specification](https://cdn.discordapp.com/attachments/698838582181363752/805813867694653500/itanium-system-abstraction-layer-specification.pdf) ([original](https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/itanium-system-abstraction-layer-specification.pdf)) - [460GX Chipset Developer's Manual](https://cdn.discordapp.com/attachments/698838582181363752/805814367097716766/460gx.pdf) ([original](https://www.manualslib.com/manual/77665/Intel-460gx.html)) - [Intel® E8870IO Server I/O Hub Datasheet](https://cdn.discordapp.com/attachments/698838582181363752/805814970977747015/e8870io-server-io-hub-datasheet.pdf) ([original](https://www.intel.com/content/dam/doc/datasheet/e8870io-server-io-hub-datasheet.pdf)) -- [Intel® E8870 SNC Datasheet](https://cdn.discordapp.com/attachments/698838582181363752/805815757861945344/e8870-snc-datasheet.pdf) ([original](https://pccomponents.com/datasheets/INTEL-251112.PDF)) \ No newline at end of file +- [Intel® E8870 SNC Datasheet](https://cdn.discordapp.com/attachments/698838582181363752/805815757861945344/e8870-snc-datasheet.pdf) ([original](https://pccomponents.com/datasheets/INTEL-251112.PDF)) From edf54b4a60d829fae2bb9a67ed3192b27da03c80 Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 11 May 2024 23:16:14 +0000 Subject: [PATCH 4/4] Add more everything resources --- emudev_resources_systems.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/emudev_resources_systems.md b/emudev_resources_systems.md index 8925e15..57a483f 100644 --- a/emudev_resources_systems.md +++ b/emudev_resources_systems.md @@ -94,6 +94,7 @@ There are no "full" tutorials for other systems, so using references will be a b - - - + - - [mGBA blog](https://mgba.io) (particularly the "development" and "emulation" tags) - Homebrew development: - @@ -110,6 +111,7 @@ There are no "full" tutorials for other systems, so using references will be a b - - [Sample homebrew programs](https://github.com/devkitPro/nds-examples) - [Arisotura's blog](https://melonds.kuribo64.net) +- [Ongoing rasterizer timing research](https://melonds.kuribo64.net/board/thread.php?pid=6560#6560) ## Nintendo 3DS - See relevant ARM resources below (the 3DS's ARM11 MPCore implements ARMv6K, not plain ARMv6, so you'll have toat the ARMv7-AR manual too for the few additions; the ARM9 is the same as on the Nintendo DS) @@ -121,6 +123,8 @@ There are no "full" tutorials for other systems, so using references will be a b - [CTRPF cheat code documentation](https://gist.github.com/Nanquitas/d6c920a59c757cf7917c2bffa76de860) - [Subv's additional findings on the kernel's threading system](https://gist.github.com/Subv/02f29bd9f1e5deb7aceea1e8f019c8f4) (meant to complement the relevant 3DBrew page) - [Simple hommebrew userland tests](https://github.com/wheremyfoodat/Panda3DS/tree/master/tests) +- [DSP1 binary loader for Ghidra](https://github.com/SachinVin/Dsp1LoaderGhidra) (For DSP .cdc firmware files, you can dump them from hardware or Panda3DS) +- [Teak DSP Ghidra SLEIGH plugin](https://github.com/SachinVin/TeakLite-SLEIGH/tree/main) ## Nintendo Entertainment System - See 65xx family resources @@ -171,15 +175,21 @@ There are no "full" tutorials for other systems, so using references will be a b - [Other resources](https://n64.dev) - 64DD: -## Nintendo GameCube +## Nintendo GameCube / Nintendo Wii - See PowerPC resources - YAGCD: (mirror: ) - [GameCube resources GitHub repository](https://github.com/DenSinH/GameCubeResources) +- [Gamecube Apploader RE](https://www.gc-forever.com/wiki/index.php?title=Apploader) - [GC/Wii games with debug symbols](https://wiki.dolphin-emu.org/index.php?title=Ships_with_Debugging_Symbols) - [Dolphin hardware tests](https://github.com/dolphin-emu/hwtests) - [GC/Wii games that use the Zelda DSP microcode](https://wiki.dolphin-emu.org/index.php?title=Category:Zelda_ucode_games) - [Gekko/Broadway/Espresso Ghidra plugin](https://github.com/aldelaro5/ghidra-gekko-broadway-lang) - [DSP HLE (Dolphin)](https://blog.lse.epita.fr/2012/12/03/emulating-the-gamecube-audio-processing-in-dolphin.html) +- [Dolwin docs](https://github.com/ogamespec/dolwin-docs) + +## Nintendo Wii U +- See PowerPC resources +- [WiiUBrew](https://wiiubrew.org/wiki/Main_Page) ## PlayStation 1 - See MIPS resources @@ -192,6 +202,8 @@ There are no "full" tutorials for other systems, so using references will be a b - [Translated](https://translate.google.com/translate?sl=auto&tl=en&u=http://wiki.psxdev.ru/index.php/BIOS) - [The PSX GPU texture pipeline and how to emulate it](https://www.reddit.com/r/EmuDev/comments/fmhtcn) - [PSX EXE header](http://www.emulatronia.com/doctec/consolas/psx/exeheader.txt) (also see "CDROM File Formats" section in psx-spx) +- [Difficult-to-emulate games](https://github.com/stenzek/duckstation/wiki/Difficult-to-Emulate-Games) +- [Dithering on the PS1](https://www.youtube.com/watch?v=3XDyQnY5GHI) - [PSX system software reverse engineering project](https://github.com/ogamespec/psxdev/tree/master/reverse) - [Other PSX documentation (including a CPU reference manual)](http://hitmen.c02.at/html/psx_docs.html) - [PSX GTE docs/reverse engineering](https://github.com/ogamespec/pops-gte) @@ -222,6 +234,8 @@ There are no "full" tutorials for other systems, so using references will be a b ## PlayStation Portable - - +- [Allegrex Ghidra plugin](https://github.com/kotcrab/ghidra-allegrex) + ## Sega Game Gear - [VDP test ROM](https://www.retrorgb.com/game-gear-vdp-test-software.html) - [Button test ROM](https://github.com/GameGearSamples/ButtonTest) @@ -361,6 +375,7 @@ There are no "full" tutorials for other systems, so using references will be a b ## PowerPC - [IBM's PowerPC Architecture Book](https://www.ibm.com/developerworks/systems/library/es-archguide-v2.html) - [VMX128-type opcodes found on the Xbox 360 processor](http://biallas.net/doc/vmx128/vmx128.txt) + ## ARM - [ARM instruction set info for the ARM7TDMI-S](https://vision.gel.ulaval.ca/~jflalonde/cours/1001/h17/docs/arm-instructionset.pdf) (not the full document, which apparently can't be found anymore) - [ARM7TDMI datasheet](https://www.dwedit.org/files/ARM7TDMI.pdf) (contains info about ARM and thumb instruction sets) @@ -373,6 +388,10 @@ There are no "full" tutorials for other systems, so using references will be a b - [ARMv7-A/R Reference Manual](https://documentation-service.arm.com/static/5f1074ce0daa596235e834b5) - [ARM11 MPCore Technical Reference Manual](https://documentation-service.arm.com/static/5e8e1e0388295d1e18d368b2) +## ARM64 +- [ARMv8 and ARMv9 A-Profile Architecture manual](https://developer.arm.com/documentation/ddi0487/latest/) +- [ARM64 cheatsheet](https://github.com/wheremyfoodat/Panda3DS/blob/cdn/docs/arm64_cheat_sheet.pdf) + ## x86 - [8086 family user's manual](https://edge.edx.org/c4x/BITSPilani/EEE231/asset/8086_family_Users_Manual_1_.pdf) - [Intel® 64 and IA-32 manuals](https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html)