mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-16 08:11:35 +02:00
bug squashing
# Closed issues CLOSES #17: Incorrect Character Visuals (Only with GBC filter) CLOSES #23: Could you allow the player to change the order of the moves CLOSES #24: Evolution music not playing during evolution CLOSES #26: Standing on door glitch CLOSES #27: Battle Intro text automatically continues CLOSES #29: Visual bug when zoomed out CLOSES #32: Team Rocket recruiter doesn't battle with you unless you speak with him first CLOSES #33: Developer/Debug Console CLOSES #35: Professor Oak's introduction Inaccuracies CLOSES #36: Missing Pokemon Dex entries when picking starter + Rival Pathing issues CLOSES #39: Guy who stops player from skipping brock doesn't bring you to brock's gym + doesn't leave once you've beaten brock CLOSES #40: Bill cutscene is broken CLOSES #41: Ticket guy failing to be a Ticket guy CLOSES #42: S.S. anne odd behavior + Missing sailing away animation CLOSES #43: Dig Attack animation appears to be glitched CLOSES #44: Pokeball flashing doesn't appear to be accurate CLOSES #45: Inaccurate Cut Animation CLOSES #46: Dugtrio i caught in diglett cave has two of the same move CLOSES #47: Rival ignores player in Lavender Tower CLOSES #48: Healing pad in lavender tower does not function CLOSES #49: Incorrect dialogue with parched security guard CLOSES #50: (Game Breaking!) Rocket grunt guarding poster refuses to move CLOSES #51: Badges showing up as items I can deposit in PC CLOSES #52: Visual bug on Celadon Department Store roof (Red Filter) CLOSES #54: Visual issue on route 15 + Fuchsia City CLOSES #56: Running animation missing CLOSES #57: Safari Zone does not display steps while you are inside of it CLOSES #58: (Game Breaking!) Softlock at cycling road gate CLOSES #59: Bike visual issues CLOSES #60: Cycling road not forcing you to get on your bike CLOSES #61: No keycard doors in Silph Co. CLOSES #63: Missing teleporter animation CLOSES #64: Inaccurate spinning CLOSES #65: Reimplement unused Silph Co. Chief and Professor Oak trainer battles
This commit is contained in:
@@ -1253,14 +1253,24 @@ function RomExtractor:extractTrainers()
|
||||
"battle/trainers/" .. picture.imageBase .. ".png")
|
||||
written[picture.imageBase] = true
|
||||
end
|
||||
local parties = self:trainerParties(
|
||||
pointers.bank, partyStarts[index], partyEnds[index])
|
||||
-- ChiefData is empty in the ROM (the Celadon Chief battle is unused/
|
||||
-- cut content); tools/rom_manifest.json carries a hand-authored party
|
||||
-- for the trainers this project reimplements, since no ROM data exists
|
||||
-- to extract for them.
|
||||
if #parties == 0 then
|
||||
local override = self.manifest.trainerPartyOverrides
|
||||
and self.manifest.trainerPartyOverrides[trainerId]
|
||||
if override then parties = { copy(override) } end
|
||||
end
|
||||
out[trainerId] = {
|
||||
id = trainerId, index = index, name = decodedNames[index],
|
||||
source = "ROM:TrainerDataPointers",
|
||||
pic = picture and picture.path or nil,
|
||||
baseMoney = math.floor(Rom.bcd(rawMoney) / 100),
|
||||
aiMods = aiMods[index],
|
||||
parties = self:trainerParties(
|
||||
pointers.bank, partyStarts[index], partyEnds[index]),
|
||||
parties = parties,
|
||||
}
|
||||
self:tick("Trainers", index, #order)
|
||||
end
|
||||
@@ -1426,7 +1436,7 @@ end
|
||||
|
||||
function RomExtractor:extractField()
|
||||
self:beginStage("Interface artwork")
|
||||
local done, total = 0, 48
|
||||
local done, total = 0, 49
|
||||
local function tick()
|
||||
done = done + 1
|
||||
self:tick("Interface artwork", math.min(done, total), total)
|
||||
@@ -1576,6 +1586,34 @@ function RomExtractor:extractField()
|
||||
"fx/" .. spec[4], { transparent = true })
|
||||
tick()
|
||||
end
|
||||
|
||||
-- The cuttable tree's own sprite: InitCutAnimOAM (engine/overworld/cut.asm)
|
||||
-- copies Overworld_GFX tiles $2d-$2e (top half) and $3d-$3e (bottom half)
|
||||
-- into the OAM tiles the Cut animation slides apart, so this comes out of
|
||||
-- the OVERWORLD tileset's own graphics blob rather than a named symbol.
|
||||
do
|
||||
local overworldIndex
|
||||
for i, name in ipairs(self.manifest.constants.tilesetOrder) do
|
||||
if name == "OVERWORLD" then overworldIndex = i break end
|
||||
end
|
||||
assert(overworldIndex, "OVERWORLD tileset not found in tilesetOrder")
|
||||
local tilesetHeaders = self:symbol("Tilesets")
|
||||
local rowAddress = tilesetHeaders.address + (overworldIndex - 1) * 12
|
||||
local gfxBank = self.rom:byte(tilesetHeaders.bank, rowAddress)
|
||||
local gfxPointer = self.rom:word(tilesetHeaders.bank, rowAddress + 3)
|
||||
local cutTree = ImageWriter.blank(16, 16, 1, 1, 1, 0)
|
||||
for _, spec in ipairs({
|
||||
{ 0x2d, 0, 0 }, { 0x2e, 8, 0 }, { 0x3d, 0, 8 }, { 0x3e, 8, 8 },
|
||||
}) do
|
||||
local tileIndex, dx, dy = spec[1], spec[2], spec[3]
|
||||
local tile = ImageWriter.decode2bpp(
|
||||
self.rom:bytes(gfxBank, gfxPointer + tileIndex * 16, 16),
|
||||
8, 8, true)
|
||||
ImageWriter.blit(cutTree, tile, dx, dy)
|
||||
end
|
||||
self:save(cutTree, "fx/cut_tree.png"); tick()
|
||||
end
|
||||
|
||||
self:raw2bpp("BattleTransitionTile", 8, 8,
|
||||
"fx/battle_transition.png"); tick()
|
||||
self:raw2bpp("PokedexTileGraphics", 24, 48,
|
||||
|
||||
Reference in New Issue
Block a user