Skip to content

Commit 76c9aa2

Browse files
committed
Resolve Galakong highscore sync issue, reported by Justin De Lucia
1 parent d0f5ebf commit 76c9aa2

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

dkwolf/plugins/galakong/init.lua

+14-7
Original file line numberDiff line numberDiff line change
@@ -744,16 +744,23 @@ function galakong.startplugin()
744744
mem:write_u8(0x6a33, 256 - missile_y)
745745
last_bonus = _frame
746746

747-
--7 digits for the calculation purposes incase we tick over the million
747+
--7 digits for the calculation purposes incase we tick over the million
748748
score = _format("%07d", tonumber(get_score_segment(0x60b4)..get_score_segment(0x60b3)..get_score_segment(0x60b2)) + bonus)
749-
--update 6 digit score in ram
750749
score = _sub(score, 2, 7)
751-
set_score_segment(0x60b4, _sub(score, 1,2))
750+
set_score_segment(0x60b4, _sub(score, 1,2)) --update score in ram
752751
set_score_segment(0x60b3, _sub(score, 3,4))
753-
set_score_segment(0x60b2, _sub(score, 5,6))
754-
755-
-- update score on screen
756-
write_ram_message(0x7781, score)
752+
set_score_segment(0x60b2, _sub(score, 5,6))
753+
write_ram_message(0x7781, score) --update score on screen
754+
755+
-- update high score when necessary
756+
high_score = _format("%06d", tonumber(get_score_segment(0x60ba)..get_score_segment(0x60b9)..get_score_segment(0x60b8)))
757+
if tonumber(score) >= tonumber(high_score) then
758+
-- update high score on screen
759+
set_score_segment(0x60ba, _sub(score, 1,2)) --update score in ram
760+
set_score_segment(0x60b9, _sub(score, 3,4))
761+
set_score_segment(0x60b8, _sub(score, 5,6))
762+
write_ram_message(0x7641, score) --update score on screen
763+
end
757764
end
758765
end
759766
end

interface/ckong.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ emu.register_frame(function()
2222

2323
if loaded == nil then
2424
math.randomseed(os.time())
25-
autostart_delay = screen:frame_number() + math.random(1, 30)
25+
autostart_delay = screen:frame_number() + math.random(5, 30)
2626

2727
-- Wait for ROM to start
2828
emu["loaded"] = 1

interface/dkong.lua

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ emu.register_frame(function()
2626

2727
if loaded == nil then
2828
math.randomseed(os.time())
29-
autostart_delay = screen:frame_number() + math.random(1, 30)
29+
autostart_delay = screen:frame_number() + math.random(5, 30)
3030

3131
-- Wait for ROM to start
3232
if emu.romname() == "dkongx" and mem:read_u8(0xc600a) ~= 1 then

0 commit comments

Comments
 (0)