skmp / reicast-emulator

Reicast was a multiplatform Sega Dreamcast emulator
https://reicast.emudev.org
Other
1.1k stars 346 forks source link

JIT/Core restructuring, refactoring and improvements masterlist #1141

Open skmp opened 6 years ago

skmp commented 6 years ago

Large parts of the JIT code are archaic and extremely hard to understand. We also need support for more platforms

Here are various proposals on how to improve things. Many of these already have separate tickets,

Small-ish tasks

Medium-ish tasks

Large-ish tasks

Huge tasks

(I'll add more things to the list as I come up with more ideas. Got anything more to propose?)

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/57569265-jit-core-restructuring-refactoring-and-improvements-masterlist?utm_campaign=plugin&utm_content=tracker%2F500311&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F500311&utm_medium=issues&utm_source=github).
rcaridade145 commented 6 years ago

For tests maybe we can reuse the extensive tests lxdream has. Would something like play-codegen be usable/desirable https://github.com/jpd002/Play--CodeGen ?

AbandonedCart commented 6 years ago

The short answer is that it would be more trouble than it's worth to use it.

The long answer involves citing how the project is bottlenecked by piping every change through a single individual, the most assertive of the contributors being extremely inexperienced, and much of the code being overly specialized for the project. It would probably be easier to build from scratch.

rcaridade145 commented 6 years ago

@LoungeKatt all valid points :)

rcaridade145 commented 6 years ago

@skmp In terms of tests for sh4 and arm http://www.lxdream.org/hg/lxdream/file/765e514f99a6/test . Afaik it isn't possible to run binaries/elf on reicast or is it?

baka0815 commented 6 years ago

Investigate why videos are choppy is done in #1165, right?

Also Refactor the codebase to not use globals. Probably best done module-by-module (#1140) should probably be done before the savestates are started.

rcaridade145 commented 6 years ago

From my background with agile methods i would suggest, focusing first on those that bring immediate value to the costumer (end user), perhaps that can increase the visibility of the work being done and bring more chances of bounties. This said, i'd consider:

before all the others

luserx0 commented 6 years ago

@skmp @baka0815 @dmiller423 Seems like a great list of things to do

skmp commented 4 years ago

@rcaridade145 (two years later lol) I've run some of the lxdream tests - some fail some pass. We could def. make use of that as a start. SMC and WinCE on interpreter work now.