Skip to content

Commit c3098aa

Browse files
committed
convert to f-string formatting
1 parent 311562a commit c3098aa

File tree

10 files changed

+53
-60
lines changed

10 files changed

+53
-60
lines changed

pyboy/core/cartridge/base_mbc.py

Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,11 @@ def setitem(self, address, value):
112112
def overrideitem(self, rom_bank, address, value):
113113
if 0x0000 <= address < 0x4000:
114114
logger.debug(
115-
"Performing overwrite on address: %s:%s. New value: %s Old value: %s" %
116-
(hex(rom_bank), hex(address), hex(value), self.rombanks[rom_bank][address])
115+
f"Performing overwrite on address: {rom_bank:02x}:{address:04x}. New value: {value:02x} Old value: {self.rombanks[rom_bank][address]:02x}"
117116
)
118117
self.rombanks[rom_bank][address] = value
119118
else:
120-
logger.error("Invalid override address: %s" % hex(address))
119+
logger.error(f"Invalid override address: {address:04x}")
121120

122121
def getitem(self, address):
123122
if 0x0000 <= address < 0x4000:
@@ -126,7 +125,7 @@ def getitem(self, address):
126125
return self.rombanks[self.rombank_selected % len(self.rombanks)][address - 0x4000]
127126
elif 0xA000 <= address < 0xC000:
128127
if not self.rambank_initialized:
129-
logger.error("RAM banks not initialized: %s" % hex(address))
128+
logger.error(f"RAM banks not initialized: {address:04x}")
130129

131130
if not self.rambank_enabled:
132131
return 0xFF
@@ -136,22 +135,22 @@ def getitem(self, address):
136135
else:
137136
return self.rambanks[self.rambank_selected % self.external_ram_count][address - 0xA000]
138137
else:
139-
logger.error("Reading address invalid: %s" % address)
138+
logger.error(f"Reading address invalid: {address:04x}")
140139

141140
def __repr__(self):
142141
return "\n".join([
143142
"Cartridge:",
144-
"Filename: %s" % self.filename,
145-
"Game name: %s" % self.gamename,
146-
"GB Color: %s" % str(self.ROMBanks[0][0x143] == 0x80),
147-
"Cartridge type: %s" % hex(self.cartType),
148-
"Number of ROM banks: %s" % self.external_rom_count,
149-
"Active ROM bank: %s" % self.rombank_selected,
150-
# "Memory bank type: %s" % self.ROMBankController,
151-
"Number of RAM banks: %s" % len(self.rambanks),
152-
"Active RAM bank: %s" % self.rambank_selected,
153-
"Battery: %s" % self.battery,
154-
"RTC: %s" % self.rtc
143+
f"Filename: {self.filename}",
144+
f"Game name: {self.gamename}",
145+
f"GB Color: {self.ROMBanks[0][0x143] == 0x80}",
146+
f"Cartridge type: {self.cartType:02x}",
147+
f"Number of ROM banks: {self.external_rom_count}",
148+
f"Active ROM bank: {self.rombank_selected}",
149+
# f"Memory bank type: {self.ROMBankController}",
150+
f"Number of RAM banks: {len(self.rambanks)}",
151+
f"Active RAM bank: {self.rambank_selected}",
152+
f"Battery: {self.battery}",
153+
f"RTC: {self.rtc}"
155154
])
156155

157156

@@ -161,16 +160,14 @@ def setitem(self, address, value):
161160
if value == 0:
162161
value = 1
163162
self.rombank_selected = (value & 0b1)
164-
logger.debug("Switching bank 0x%0.4x, 0x%0.2x" % (address, value))
163+
logger.debug(f"Switching bank 0x{address:04x}, 0x{value:02x}")
165164
elif 0xA000 <= address < 0xC000:
166165
if self.rambanks is None:
167166
from . import EXTERNAL_RAM_TABLE
168167
logger.warning(
169-
"Game tries to set value 0x%0.2x at RAM address 0x%0.4x, but "
170-
"RAM banks are not initialized. Initializing %d RAM banks as "
171-
"precaution" % (value, address, EXTERNAL_RAM_TABLE[0x02])
168+
f"Game tries to set value 0x{value:02x} at RAM address 0x{address:04x}, but RAM banks are not initialized. Initializing {EXTERNAL_RAM_TABLE[0x02]} RAM banks as precaution"
172169
)
173170
self.init_rambanks(EXTERNAL_RAM_TABLE[0x02])
174171
self.rambanks[self.rambank_selected][address - 0xA000] = value
175172
else:
176-
logger.warning("Unexpected write to 0x%0.4x, value: 0x%0.2x" % (address, value))
173+
logger.warning("Unexpected write to 0x{address:04x}, value: 0x{value:02x}")

pyboy/core/cartridge/cartridge.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,11 @@ def load_cartridge(filename):
3232
carttype = rombanks[0][0x0147]
3333
cartinfo = CARTRIDGE_TABLE.get(carttype, None)
3434
if cartinfo is None:
35-
raise Exception("Catridge type invalid: %s" % carttype)
35+
raise Exception(f"Catridge type invalid: {carttype}")
3636

37-
cartdata = (
38-
carttype, cartinfo[0].__name__, ", ".join([x for x, y in zip(["SRAM", "Battery", "RTC"], cartinfo[1:]) if y])
39-
)
40-
logger.info("Cartridge type: 0x%0.2x - %s, %s" % cartdata)
41-
logger.info("Cartridge size: %d ROM banks of 16KB, %s RAM banks of 8KB" % (len(rombanks), external_ram_count))
37+
cartdata = (", ".join([x for x, y in zip(["SRAM", "Battery", "RTC"], cartinfo[1:]) if y]))
38+
logger.info(f"Cartridge type: 0x{carttype:02x} - {cartinfo[0].__name__}, {cartdata}")
39+
logger.info(f"Cartridge size: {len(rombanks)} ROM banks of 16KB, {external_ram_count} RAM banks of 8KB")
4240
cartmeta = CARTRIDGE_TABLE[carttype]
4341

4442
return cartmeta[0](filename, rombanks, external_ram_count, carttype, *cartmeta[1:])

pyboy/core/cartridge/mbc1.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@ def setitem(self, address, value):
3333
elif 0xA000 <= address < 0xC000:
3434
if self.rambanks is None:
3535
logger.warning(
36-
"Game tries to set value 0x%0.2x at RAM address 0x%0.4x, but RAM "
37-
"banks are not initialized. Initializing %d RAM banks as "
38-
"precaution" % (value, address, self.external_ram_count)
36+
f"Game tries to set value 0x{value:02x} at RAM address 0x{address:04x}, but RAM "
37+
f"banks are not initialized. Initializing {self.external_ram_count} RAM banks as "
38+
"precaution"
3939
)
4040
self.init_rambanks(self.external_ram_count)
4141

4242
if self.rambank_enabled:
4343
self.rambank_selected = self.bank_select_register2 if self.memorymodel == 1 else 0
4444
self.rambanks[self.rambank_selected % self.external_ram_count][address - 0xA000] = value
4545
else:
46-
logger.error("Invalid writing address: %s" % hex(address))
46+
logger.error(f"Invalid writing address: {address:04x}")
4747

4848
def getitem(self, address):
4949
if 0x0000 <= address < 0x4000:
@@ -58,7 +58,7 @@ def getitem(self, address):
5858
return self.rombanks[self.rombank_selected % len(self.rombanks)][address - 0x4000]
5959
elif 0xA000 <= address < 0xC000:
6060
if not self.rambank_initialized:
61-
logger.error("RAM banks not initialized: %s" % hex(address))
61+
logger.error(f"RAM banks not initialized: {address:04x}")
6262

6363
if not self.rambank_enabled:
6464
return 0xFF
@@ -69,7 +69,7 @@ def getitem(self, address):
6969
self.rambank_selected = 0
7070
return self.rambanks[self.rambank_selected % self.external_ram_count][address - 0xA000]
7171
else:
72-
logger.error("Reading address invalid: %s" % address)
72+
logger.error(f"Reading address invalid: {address:04x}")
7373

7474
def save_state(self, f):
7575
# Cython doesn't like super()

pyboy/core/cartridge/mbc2.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,15 @@ def setitem(self, address, value):
2323
elif 0xA000 <= address < 0xC000:
2424
if self.rambanks is None:
2525
logger.warning(
26-
"Game tries to set value 0x%0.2x at RAM address 0x%0.4x, but RAM "
27-
"banks are not initialized. Initializing %d RAM banks as "
28-
"precaution" % (value, address, self.external_ram_count)
26+
f"Game tries to set value 0x{value:02x} at RAM address 0x{address:04x}, but RAM "
27+
f"banks are not initialized. Initializing {self.external_ram_count} RAM banks as precaution"
2928
)
3029
self.init_rambanks(self.external_ram_count)
3130
if self.rambank_enabled:
3231
# MBC2 includes built-in RAM of 512 x 4 bits (Only the 4 LSBs are used)
3332
self.rambanks[0][address % 512] = value | 0b11110000
3433
else:
35-
logger.error("Unexpected write to 0x%0.4x, value: 0x%0.2x" % (address, value))
34+
logger.error(f"Unexpected write to 0x{address:04x}, value: 0x{value:02x}")
3635

3736
def getitem(self, address):
3837
if 0x0000 <= address < 0x4000:
@@ -41,12 +40,12 @@ def getitem(self, address):
4140
return self.rombanks[self.rombank_selected % len(self.rombanks)][address - 0x4000]
4241
elif 0xA000 <= address < 0xC000:
4342
if not self.rambank_initialized:
44-
logger.error("RAM banks not initialized: %s" % hex(address))
43+
logger.error(f"RAM banks not initialized: {address:04x}")
4544

4645
if not self.rambank_enabled:
4746
return 0xFF
4847

4948
else:
5049
return self.rambanks[0][address % 512] | 0b11110000
5150
else:
52-
logger.error("Reading address invalid: %s" % address)
51+
logger.error(f"Reading address invalid: {address:04x}")

pyboy/core/cartridge/mbc3.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def setitem(self, address, value):
2222
# lower 4 bits enables RAM, and any other value
2323
# disables RAM."
2424
self.rambank_enabled = False
25-
logger.warning("Unexpected command for MBC3: Address: 0x%0.4x, Value: 0x%0.2x" % (address, value))
25+
logger.warning(f"Unexpected command for MBC3: Address: 0x{address:04x}, Value: 0x{value:02x}")
2626
elif 0x2000 <= address < 0x4000:
2727
value &= 0b01111111
2828
if value == 0:
@@ -36,14 +36,14 @@ def setitem(self, address, value):
3636
else:
3737
# NOTE: Pokemon Red/Blue will do this, but it can safely be ignored:
3838
# https://github.com/pret/pokered/issues/155
39-
logger.warning("RTC not present. Game tried to issue RTC command: 0x%0.4x, 0x%0.2x" % (address, value))
39+
logger.warning(f"RTC not present. Game tried to issue RTC command: 0x{address:04x}, 0x{value:02x}")
4040
elif 0xA000 <= address < 0xC000:
4141
if self.rambank_enabled:
4242
if self.rambank_selected <= 0x03:
4343
self.rambanks[self.rambank_selected][address - 0xA000] = value
4444
elif 0x08 <= self.rambank_selected <= 0x0C:
4545
self.rtc.setregister(self.rambank_selected, value)
4646
else:
47-
logger.error("Invalid RAM bank selected: 0x%0.2x" % self.rambank_selected)
47+
logger.error(f"Invalid RAM bank selected: 0x{self.rambank_selected:02x}")
4848
else:
49-
logger.error("Invalid writing address: 0x%0.4x" % address)
49+
logger.error("Invalid writing address: 0x{address:04x}")

pyboy/core/cartridge/mbc5.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,11 @@ def setitem(self, address, value):
2626
elif 0xA000 <= address < 0xC000:
2727
if self.rambanks is None:
2828
logger.warning(
29-
"Game tries to set value 0x%0.2x at RAM address 0x%0.4x, but RAM "
30-
"banks are not initialized. Initializing %d RAM banks as "
31-
"precaution" % (value, address, self.external_ram_count)
29+
f"Game tries to set value 0x{value:02x} at RAM address 0x{address:04x}, but RAM "
30+
f"banks are not initialized. Initializing {self.external_ram_count} RAM banks as precaution"
3231
)
3332
self.init_rambanks(self.external_ram_count)
3433
if self.rambank_enabled:
3534
self.rambanks[self.rambank_selected % self.external_ram_count][address - 0xA000] = value
3635
else:
37-
logger.error("Unexpected write to 0x%0.4x, value: 0x%0.2x" % (address, value))
36+
logger.error(f"Unexpected write to 0x{address:04x}, value: 0x{value:02x}")

pyboy/core/cartridge/rtc.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,11 @@ def writecommand(self, value):
7272
self.latch_rtc()
7373
self.latch_enabled = True
7474
else:
75-
logger.warning("Invalid RTC command: %0.2x" % value)
75+
logger.warning(f"Invalid RTC command: {value:02x}")
7676

7777
def getregister(self, register):
7878
if not self.latch_enabled:
79-
logger.info("RTC: Get register, but nothing is latched! 0x%0.2x" % register)
79+
logger.info(f"RTC: Get register, but nothing is latched! 0x{register:02x}")
8080

8181
if register == 0x08:
8282
return self.sec_latch
@@ -92,11 +92,11 @@ def getregister(self, register):
9292
day_carry = self.day_carry << 7
9393
return day_high + halt + day_carry
9494
else:
95-
logger.warning("Invalid RTC register: %0.4x" % (register))
95+
logger.warning(f"Invalid RTC register: {register:04x}")
9696

9797
def setregister(self, register, value):
9898
if not self.latch_enabled:
99-
logger.info("RTC: Set register, but nothing is latched! 0x%0.4x, 0x%0.2x" % (register, value))
99+
logger.info(f"RTC: Set register, but nothing is latched! 0x{register:04x}, 0x{value:02x}")
100100

101101
t = time.time() - self.timezero
102102
if register == 0x08:
@@ -122,4 +122,4 @@ def setregister(self, register, value):
122122
self.timezero -= int(t / 3600 / 24) - (day_high << 8)
123123
self.day_carry = day_carry
124124
else:
125-
logger.warning("Invalid RTC register: %0.4x %0.2x" % (register, value))
125+
logger.warning(f"Invalid RTC register: 0x{register:04x}, 0x{value:02x}")

pyboy/core/mb.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -352,10 +352,10 @@ def getitem(self, i):
352352
elif i == 0xFFFF: # Interrupt Enable Register
353353
return self.cpu.interrupts_enabled_register
354354
else:
355-
raise IndexError("Memory access violation. Tried to read: %s" % hex(i))
355+
raise IndexError(f"Memory access violation. Tried to read: {i:04x}")
356356

357357
def setitem(self, i, value):
358-
assert 0 <= value < 0x100, "Memory write error! Can't write %s to %s" % (hex(value), hex(i))
358+
assert 0 <= value < 0x100, f"Memory write error! Can't write {value:02x} to {i:04x}"
359359

360360
if 0x0000 <= i < 0x4000: # 16kB ROM bank #0
361361
# Doesn't change the data. This is for MBC commands
@@ -484,7 +484,7 @@ def setitem(self, i, value):
484484
elif i == 0xFFFF: # Interrupt Enable Register
485485
self.cpu.interrupts_enabled_register = value
486486
else:
487-
raise Exception("Memory access violation. Tried to write: %s" % hex(i))
487+
raise Exception(f"Memory access violation. Tried to write: {i:04x}")
488488

489489
def transfer_DMA(self, src):
490490
# http://problemkaputt.de/pandocs.htm#lcdoamdmatransfers

pyboy/plugins/base_plugin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ def __init__(self, pyboy, mb, pyboy_argv, *args, **kwargs):
6969

7070
scale = pyboy_argv.get("scale")
7171
self.scale = scale
72-
logger.info("%s initialization" % self.__class__.__name__)
72+
logger.info(f"{self.__class__.__name__} initialization")
7373

7474
self._scaledresolution = (scale * COLS, scale * ROWS)
75-
logger.info("Scale: x%s %s" % (self.scale, self._scaledresolution))
75+
logger.info(f"Scale: x{self.scale} {self._scaledresolution}")
7676

7777
self.enable_title = True
7878
if not cythonmode:

pyboy/pyboy.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ def _handle_events(self, events):
158158
elif event == WindowEvent.RELEASE_SPEED_UP:
159159
# Switch between unlimited and 1x real-time emulation speed
160160
self.target_emulationspeed = int(bool(self.target_emulationspeed) ^ True)
161-
logger.info("Speed limit: %s" % self.target_emulationspeed)
161+
logger.info(f"Speed limit: {self.target_emulationspeed}")
162162
elif event == WindowEvent.STATE_SAVE:
163163
with open(self.gamerom_file + ".state", "wb") as f:
164164
self.mb.save_state(IntIOWrapper(f))
@@ -214,9 +214,9 @@ def _post_tick(self):
214214

215215
def _update_window_title(self):
216216
avg_emu = self.avg_pre + self.avg_tick + self.avg_post
217-
self.window_title = "CPU/frame: %0.2f%%" % ((self.avg_pre + self.avg_tick) / SPF * 100)
217+
self.window_title = f"CPU/frame: {(self.avg_pre + self.avg_tick) / SPF * 100:0.2f}%"
218218
tolerance = 0.001 # 1ms. Avoid infinity and division by zero
219-
self.window_title += " Emulation: x%s" % (round(SPF / avg_emu) if avg_emu > tolerance else "INF")
219+
self.window_title += f" Emulation: x{round(SPF / avg_emu) if avg_emu > tolerance else 'INF'}"
220220
if self.paused:
221221
self.window_title += "[PAUSED]"
222222
self.window_title += self.plugin_manager.window_title()

0 commit comments

Comments
 (0)