Skip to content

Commit

Permalink
Merge pull request #105 from ogamespec/3-gekko-jitc
Browse files Browse the repository at this point in the history
TLB support enabled
  • Loading branch information
ogamespec authored May 5, 2020
2 parents d1b0b3b + 848d38e commit 0a970dd
Show file tree
Hide file tree
Showing 57 changed files with 682 additions and 314 deletions.
14 changes: 1 addition & 13 deletions Data/DefaultSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -72,18 +72,6 @@
"Memcard_SyncSave": false,
"MemcardA_Connected": false,
"MemcardB_Connected": false
},

"testing":
{
"SomeUTF8String": "Я могу есть стекло, оно мне не вредит",
"Japan": "私はガラスを食べることができます、それは私に害を与えません",
"Arabic": "يمكنني أكل الزجاج ، لا يؤذيني ",
"English": "I can eat glass, it doesn't hurts me",
"Boolean": true,
"Float": 3.1415,
"SomeArray": [ 1, 2, 3],
"EmptyArray": [],
"EmptyObject": {}
}

}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
20 changes: 20 additions & 0 deletions Data/GekkoCoreJdi.json → Data/Json/GekkoCoreJdi.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,26 @@

"bc": {
"help": "Clear Gekko breakpoints",
},

"CacheLog": {
"help": "Set cache operations log mode",
"args": 1,
"usage": [
"Syntax: CacheLog <0|1|2>",
"0: None (disabled)",
"1: Show commands (cache control instructions activity)",
"2: Show all operations (load/store, cast-in/cast-out, etc.)"
]
},

"CacheDebugDisable": {
"help": "Disable cache emulation despite Gekko register settings",
"args": 1,
"usage": [
"Syntax: CacheDebugDisable <0|1>"
]
}

}
}
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions Data/Json/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Json

In this folder are auxiliary Json, mainly those related to the service and debugging interface (Jdi).
35 changes: 35 additions & 0 deletions Docs/EMU/ReleaseNotes0130.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Dolwin 0.130 Release Notes

The release with unlucky number 13 was split into two releases: 0.130 and 0.131. These superstitious programmers..

What's new:
- MMU support
- Support cache emulation
- Dynamic recompiler (JITC)
- Improved emulation of graphics FIFO
- Many other minor improvements

All these things were added experimentally and at the moment the cache and recompiler are temporarily disabled. If you are a developer, you can rebuild Dolwin with the cache and recompiler turned on.

The cache is enabled with the command `CacheDebugDisable 0`.

The recompiler is turned on in SRC\\Core\\Gekko.cpp, line 20 (but the interpreter must be disabled).

Between 0.130 and 0.131, I will try to fix all incomprehensible bugs with cache and recompiler so that they are included in the next release.

## Requirements

- Dolwin makes heavy use of multicore multithreading. Therefore, it is desirable that your processor contains 4 or more cores.
- The memory requirements are not so strict, a few gigabytes should be enough
- Emulation requires DSP IROM / DROM dumps
- A BIOS image dump is not required, but if you want to experiment with it, you can also add it in the settings. The BIOS is launched through the menu File -> Run Bootrom. Then you need to wait a bit and open the drive cover (File -> Swap Disk -> Open Cover). After that, IPL Menu will start :p

## What happens

Overall, the GameCube emulation has made significant progress. Games such as Ikaruga, 18 Wheeler, Super Monkey Ball, and for example Ed, Edd and Eddy are launched.

However, not all of them reach Ingame, contain graphic bugs and suffer from lags.

Most games still do not start due to insufficiently accurate emulation of the DSP or GPU.

The next release (0.131) is aimed precisely at eliminating all the shortcomings of DSP emulation, so that at last you can launch such top games as Legend of Zelda.
35 changes: 35 additions & 0 deletions Docs/EMU/ReleaseNotes0130Rus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Заметки к релизу Dolwin 0.130

Релиз с несчастливым номером 13 был разбит на два релиза: 0.130 и 0.131. Ох уж эти суеверные программисты.

Что нового:
- Поддержка MMU
- Поддержка эмуляции кэша
- Динамический рекомпилятор
- Улучшенная эмуляция графического FIFO
- Много других мелких улучшений

Все эти вещи добавлены экспериментально и в настоящий момент кэш и рекомпилятор временно отключены. Если вы разработчик, то можете пересобрать Dolwin с включенным кэшем и рекомпилятором.

Кэш включается командой `CacheDebugDisable 0`.

Рекомпилятор включается в SRC\\Core\\Gekko.cpp, line 20 (но при этом нужно отключить интерпретатор).

В промежутке между 0.130 и 0.131 я постараюсь исправить все непонятные баги с кэшем и рекомпилятором, чтобы они были включены в следующем релизе.

## Требования

- Dolwin интенсивно использует многоядерную многопоточность. Поэтому желательно чтобы ваш процессор содержал 4 или более ядер.
- Требования к памяти не такие жесткие, нескольких гигабайт должно хватить
- Для эмуляции требуются дампы DSP IROM/DROM
- Дамп образа BIOS не требуется, но если вы хотите с ним поэкспериментировать, то его можно тоже добавить в настройках. Запускается BIOS через меню File -> Run Bootrom. Затем нужно немного подождать и открыть крышку привода (File -> Swap Disk -> Open Cover). После этого запустится IPL Menu :p

## Что получается

В целом эмуляция GameCube значительно продвинулась вперед. Запускаются такие игры как Ikaruga, 18 Wheeler, Super Monkey Ball и например Ed, Edd and Eddy.

Однако не все они доходят до Ingame, содержат графические баги и страдают тормозами.

Большая часть игр по прежнему не запускается из-за недостаточно точной эмуляции DSP или графического процессора.

Следующий релиз (0.131) нацелен как раз на устранение всех недочетов эмуляции DSP, чтобы наконец можно было запустить такие топовые игры как Legend of Zelda.
18 changes: 9 additions & 9 deletions Docs/RE/dsp_ucodes/JAudio_NTSC10_IPL.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ All interrupt handlers except #0 are stubs.
0016 8C 00 clr15
0017 8B 00 m0
0018 00 9E FF FF lri ac0.m, #0xFFFF
001A 1D 1E mrr r08, ac0.m
001B 1D 3E mrr r09, ac0.m
001C 1D 5E mrr r0a, ac0.m
001D 1D 7E mrr r0b, ac0.m
001A 1D 1E mrr lm0, ac0.m
001B 1D 3E mrr lm1, ac0.m
001C 1D 5E mrr lm2, ac0.m
001D 1D 7E mrr lm3, ac0.m
001E 00 92 00 FF lri bank, #0x00FF
0020 81 00 clr ac0
0021 00 9F 10 00 lri ac1.m, #0x1000
Expand Down Expand Up @@ -77,7 +77,7 @@ Start() // 0010
clr15();
m0();

r8 = r9 = r10 = r11 = 0xFFFF;
lm0 = lm1 = lm2 = lm3 = 0xFFFF;
bank = 0xFF; // BankReg at 0xFF00 (IFX)

// Clear DRAM (8 KBytes)
Expand Down Expand Up @@ -547,7 +547,7 @@ Wait until Dsp Dma completed.
01B9 1C 1F mrr ar0, ac1.m
01BA 02 9F 01 9F j $0x019F
01BC 8A 00 m2
01BD 00 88 00 07 lri r08, #0x0007
01BD 00 88 00 07 lri lm0, #0x0007
01BF 11 50 01 CC bloopi #0x50, $0x01CC
01C1 1C 61 mrr ar3, ar1
01C2 84 C3 clrp ldax ax0, @ar0
Expand All @@ -561,13 +561,13 @@ Wait until Dsp Dma completed.
01CA F2 00 madd ax0.l, ax0.h
01CB FE 00 movpz ac0
01CC 1B 3E srri @ar1, ac0.m
01CD 00 88 FF FF lri r08, #0xFFFF
01CD 00 88 FF FF lri lm0, #0xFFFF
01CF 8B 00 m0
01D0 02 DF ret



01D1 00 88 00 03 lri r08, #0x0003
01D1 00 88 00 03 lri lm0, #0x0003
01D3 00 85 00 00 lri ix1, #0x0000
01D5 00 87 00 00 lri ix3, #0x0000
01D7 1F C2 mrr ac0.m, ar2
Expand Down Expand Up @@ -606,7 +606,7 @@ Wait until Dsp Dma completed.
01F9 19 7F lrri ac1.m, @ar3
01FA 8E 00 clr40
01FB 8B 00 m0
01FC 00 88 FF FF lri r08, #0xFFFF
01FC 00 88 FF FF lri lm0, #0xFFFF
01FE 1B 5B srri @ar2, ax1.h
01FF 1B 59 srri @ar2, ax0.h
0200 1B 5F srri @ar2, ac1.m
Expand Down
6 changes: 3 additions & 3 deletions Docs/RE/dsp_ucodes/dspirom_disa.md
Original file line number Diff line number Diff line change
Expand Up @@ -1786,7 +1786,7 @@ Called from IPL, CardUnlock
86B4 00 82 04 0E lri ar2, #0x040E
86B6 00 85 04 10 lri ix1, #0x0410
86B8 00 87 FF FE lri ix3, #0xFFFE
86BA 00 88 04 0E lri r08, #0x040E
86BA 00 88 04 0E lri lm0, #0x040E
86BC 00 DF 04 03 lr ac1.m, $0x0403
86BE 79 00 decm ac1
86BF 15 7F lsr ac1, #0x3F
Expand All @@ -1805,7 +1805,7 @@ Called from IPL, CardUnlock
86CF 1C 65 mrr ar3, ix1
86D0 02 9D 86 D4 jok $0x86D4
86D2 02 BF 86 E5 call $0x86E5
86D4 00 88 FF FF lri r08, #0xFFFF
86D4 00 88 FF FF lri lm0, #0xFFFF
86D6 16 C9 00 01 si $(DSCR), #0x0001
86D8 00 DE 04 06 lr ac0.m, $0x0406
86DA 2E CE srs $(DSMAH), ac0.m
Expand Down Expand Up @@ -1854,7 +1854,7 @@ Called from IPL, CardUnlock
8705 04 28 addis ac0.m, 40
8706 6C 1E mov ac0, ac1 mv ax1.h, ac0.m
8707 14 08 lsl ac0, #0x08
8708 1C 68 mrr ar3, r08
8708 1C 68 mrr ar3, lm0
8709 34 86 andr ac0.m, ax0.h sln ac0.m, ax0.l
870A 37 86 andr ac1.m, ax1.h sln ac0.m, ax0.l
870B 4C 52 add ac0, ac1 l ax1.l, @ar2
Expand Down
Loading

0 comments on commit 0a970dd

Please sign in to comment.