• 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
Ambassador of Niche Platform Support
**********
Administrators
Posts: 4,488
Threads: 117
Joined: Mar 2011
*waves her magic moderator wand*

Moved to Delfino Plaza!
[Image: RPvlSEt.png]
Windows 10 x64 | Core i9-9900k | NVIDIA GeForce RTX 3090 EVGA FTW3 Ultra| 32GB DDR4-3000 | Asus Xonar Essence STX on Logitech Z-2300 | Logitech G903 Hero
MacBook Pro 14in | M1 Max (32 GPU Cores) | macOS 12 | 64GB LPDDR5 6400
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