Skip to content

Commit 06d6e42

Browse files
committed
Don't wait for both ROMs to be loaded in the multiplayer mode.
With this change, ROMs in both emulators can be loaded independently. Emulation is not blocked until both ROMs are loaded.
1 parent 2029baa commit 06d6e42

File tree

8 files changed

+340
-330
lines changed

8 files changed

+340
-330
lines changed

controller/src/main/java/eu/rekawek/coffeegb/controller/Controller.kt

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package eu.rekawek.coffeegb.controller
22

3+
import eu.rekawek.coffeegb.controller.properties.EmulatorProperties
4+
import eu.rekawek.coffeegb.controller.properties.SystemProperties
35
import eu.rekawek.coffeegb.core.Gameboy
46
import eu.rekawek.coffeegb.core.GameboyType
57
import eu.rekawek.coffeegb.core.events.Event
68
import eu.rekawek.coffeegb.core.memory.cart.Rom
7-
import eu.rekawek.coffeegb.controller.properties.EmulatorProperties
8-
import eu.rekawek.coffeegb.controller.properties.SystemProperties
99
import java.io.File
1010

1111
interface Controller : AutoCloseable {
@@ -34,19 +34,12 @@ interface Controller : AutoCloseable {
3434

3535
class UpdatedSystemMappingEvent : Event
3636

37-
data class WaitingForPeerEvent(
38-
val romFile: ByteArray,
39-
val batteryFile: ByteArray?,
40-
val gameboyType: GameboyType,
41-
val bootstrapMode: Gameboy.BootstrapMode
42-
) : Event
43-
4437
data class GameboyTypeEvent(val gameboyType: GameboyType) : Event
4538

4639
companion object {
4740
fun createGameboyConfig(
4841
properties: EmulatorProperties,
49-
rom: Rom
42+
rom: Rom,
5043
): Gameboy.GameboyConfiguration {
5144
val config = Gameboy.GameboyConfiguration(rom)
5245
val gameboyType = getGameboyType(properties.system, rom)
@@ -66,8 +59,10 @@ interface Controller : AutoCloseable {
6659
}
6760

6861
fun getGameboyType(properties: SystemProperties, rom: Rom): GameboyType {
69-
if (rom.gameboyColorFlag == Rom.GameboyColorFlag.CGB ||
70-
rom.gameboyColorFlag == Rom.GameboyColorFlag.UNIVERSAL) {
62+
if (
63+
rom.gameboyColorFlag == Rom.GameboyColorFlag.CGB ||
64+
rom.gameboyColorFlag == Rom.GameboyColorFlag.UNIVERSAL
65+
) {
7166
if (properties.cgbGamesType == GameboyType.SGB && !rom.isSuperGameboyFlag) {
7267
return GameboyType.CGB
7368
}

controller/src/main/java/eu/rekawek/coffeegb/controller/TimingTicker.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
package eu.rekawek.coffeegb.controller
22

3+
import com.google.common.annotations.VisibleForTesting
34
import eu.rekawek.coffeegb.core.Gameboy
45

56
class TimingTicker : Runnable {
67
private var lastSleep = System.nanoTime()
78
private var ticks: Long = 0
9+
@VisibleForTesting
10+
var disabled = false
811

912
override fun run() {
13+
if (disabled) {
14+
return
15+
}
1016
if (++ticks < Gameboy.TICKS_PER_FRAME) {
1117
return
1218
}

0 commit comments

Comments
 (0)