viewing paste Unknown #5370 | Lua

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
-- List of variables about player's information
 
-- 0x09             = Current Selected sub-level
-- 0x0A             = Current selected level (main)
 
-- 0x6005           = Player Setting, 00: English, 01: Japanese
-- 0x60E0 to 0x60EA = Players name stored in 11 characters
-- 0x60F0 to 0x60FA = Japanese dakutens,  in 11 characters
-- 0x6100 to 0x61FF = Time Attack records, 5 byte format per level
-- 0x6200 to 0x62FF = Challenges Completed, 00: Not done, 01: Done
-----------------------------------------------------------------
-- start coding here, lets get player's stats first.
 
local function wait1()
 
 
        -- memory.writebyte(0x6006, 0x01)
 
        while (memory.readbyte(0x6006) == 0x00) do
                -- wait1()
                FCEU.frameadvance()
        end
 
 
        Player_Name = {}
        JP_Dakuten = {}
        Level_Time = {}
 
        Name_Lang = memory.readbyte(0x6005)
 
        for a = 1, 11 do
                Player_Name[a] = memory.readbyte(0x60DF + a)
                JP_Dakuten[a]  = memory.readbyte(0x60EF + a)
        end
 
        -- Calculate current selected level here
        a = AND (rom.readbyte(0x43CF1 + memory.readbyte(0x0A)), 0x0F)
 
        if (memory.readbyte(0x09) == 0x00) then
                a = rom.readbyte(0x42280 + a)
        end
        a = a*5 -- Location was found
 
        -- Read current selected level's Time Attack score here, 5 byte
        -- format for each level. Minute, seconds, milliseconds
 
        for b = 1, 5 do
                Level_Time[b] = memory.readbyte(0x60FF + a + b)
        end
 
        ---------------------------------------------------------------
        -- Send player stats to online leaderboard
        -- no idea how to do online stuff yet, this is placeholder
 
        ---------------------------------------------------------------
        -- Receiving back data from internet, only download 1 page at a time, 10 slots, and let's use Temporary RAM 7B00-7EFF
 
        OffsetAdd = 0x00
 
        for a = 1, 1024 do -- Clear RAM for use
                memory.writebyte(0x7AFF + a, 0x00)
        end
 
        for b = 1, 10 do
                Slot1_Name = {0x53, 0x72, 0x6B, 0x71, 0xFE, 0x65, 0x72, 0x65, 0xFE, 0xFE, 0xFE}
                Slot1_Daku = {0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE}
                Slot1_Time = {0x05, 0x04, 0x05, 0x07, 0x03}
                Slot1_Sett = 0x00
 
                -- Lang Setting - JP/EN, 1 byte    7B1B
                -- Player's Name is 11 bytes long, 7B00 to 7B0A
                -- Dakutens 11 bytes,              7B10 to 7B1A
                -- Level Time is 5 bytes           7B0B to 7B0F
 
                for a = 1, 11 do
                        memory.writebyte(0x7AFF + a + OffsetAdd, Slot1_Name[a])
                        memory.writebyte(0x7B0F + a + OffsetAdd, Slot1_Daku[a])
                end
                       
                for a = 1, 5 do
                        memory.writebyte(0x7B0A + a + OffsetAdd, Slot1_Time[a])
                end
                       
                memory.writebyte(0x7B1B + OffsetAdd, Slot1_Sett)
 
                OffsetAdd = OffsetAdd + 0x20 -- add +20, Ex: Slot 1: 7B00~, Slot2: 7B20, etc.
        end
        ---------------------------------------------------------------
        -- Print debugging messages for testing
 
        print ("Level: ", memory.readbyte(0x0A), "+ Area: ", memory.readbyte(0x09))
        print ("Time: ", Level_Time)
 
        if Name_Lang == 0 then
                print ("Setting: English") else
                print ("Setting: Japanese")
        end
 
        print ("Name: ", Player_Name) -- The lua automatically shows decimal numbers
        print ("Dakuten: ", JP_Dakuten) -- English names are always filled with FE (254), otherwise show them for japanese names
 
        emu.frameadvance()
        memory.writebyte(0x6006, 0x00)
end
 
while (true) do
        wait1();
        FCEU.frameadvance();
end
Viewed 262 times, submitted by unknown.