• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Offtopic › Delfino Plaza v
« Previous 1 ... 9 10 11 12 13 ... 64 Next »

Introduction to Dynamic Recompilation in Emulation
View New Posts | View Today's Posts

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Introduction to Dynamic Recompilation in Emulation
03-12-2016, 12:54 AM
#1
marco9999
Unregistered
 
(Sorry about posting here - I am not allowed to post in Delfino Plaza! Could I get someone to move this? Thanks!)

Hi everyone!

Over 4 weeks late last year I set out to learn and discover how to create a dynamic recompiling emulator, after having completed building a basic interpretive emulator for the Chip8 system. Over this time I have learnt that making a dynamic recompiler is not an easy task - it is much more complicated than your basic interpreter emulator.

As such, I want to share what I have learnt by the way of a guiding document in conjunction with full source code of a dynarec core Chip8 emulator. The document and source code will attempt to teach you about the core ideas behind a dynarec core, such as about the translator, emitter and caches. It also dives into some problems you may encounter for the Chip8 system, such as dealing with jumps (and provides solutions).

This document is targeted at people new to dynamic recompilation in emulation. Even if you are not familiar with the Chip8 system, I still encourage you to read this if you are interested in making a dynarec emulator and are familiar with the interpretive process. If you have not made any emulator and are intersted in this, I suggest starting with making an interpreter for the Chip8 system as it is really easy to learn about.

If you have any questions or (constructive!) criticism, please send an email to me (preferred, listed in the document) or post a message on the forum. I will try to answer where I can.

Document: https://github.com/marco9999/Dynarec_Guide
Emulator: https://github.com/marco9999/Super8_jitcore/tree/edu (Edu branch is simplified over the master branch, recommended for people learning. The guide also follows this branch.)

Good luck!
Marco.
Reply
03-12-2016, 01:28 AM
#2
MayImilae Offline
Chronically Distracted
**********
Administrators
Posts: 4,616
Threads: 120
Joined: Mar 2011
*waves her magic moderator wand*

Moved to Delfino Plaza!
[Image: RPvlSEt.png]
AMD Threadripper Pro 5975WX PBO+200 | Asrock WRX80 Creator | NVIDIA GeForce RTX 4090 FE | 64GB DDR4-3600 Octo-Channel | Windows 11 22H2 | (details)
MacBook Pro 14in | M1 Max (32 GPU Cores) | 64GB LPDDR5 6400 | macOS 12
Find
Reply
« Next Oldest | Next Newest »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode