1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-06-26 03:57:13 -07:00

implement m64p ROM reading and such

This commit is contained in:
Connor Olding 2015-12-03 02:06:18 -08:00
parent 9cd5ea9007
commit b2817c9b5c
2 changed files with 16 additions and 7 deletions

View File

@ -27,23 +27,24 @@ if bizstring then
else else
local unimplemented = function() error('unimplemented', 2) end local unimplemented = function() error('unimplemented', 2) end
local ram = 0x80000000 local ram = 0x80000000
local rom = 0x90000000 -- might be wrong for upper 32MB of 64MB roms?
R1 = function(addr) return m64p.memory:read(addr+ram, 'u8') end R1 = function(addr) return m64p.memory:read(addr+ram, 'u8') end
R2 = function(addr) return m64p.memory:read(addr+ram, 'u16') end R2 = function(addr) return m64p.memory:read(addr+ram, 'u16') end
R3 = unimplemented R3 = unimplemented
R4 = function(addr) return m64p.memory:read(addr+ram, 'u32') end R4 = function(addr) return m64p.memory:read(addr+ram, 'u32') end
RF = function(addr) return m64p.memory.read(addr+ram, 'float') end RF = function(addr) return m64p.memory:read(addr+ram, 'float') end
W1 = function(addr, value) m64p.memory:write(addr+ram, 'u8', value) end W1 = function(addr, value) m64p.memory:write(addr+ram, 'u8', value) end
W2 = function(addr, value) m64p.memory:write(addr+ram, 'u16', value) end W2 = function(addr, value) m64p.memory:write(addr+ram, 'u16', value) end
W3 = unimplemented W3 = unimplemented
W4 = function(addr, value) m64p.memory:write(addr+ram, 'u32', value) end W4 = function(addr, value) m64p.memory:write(addr+ram, 'u32', value) end
WF = function(addr, value) m64p.memory.write(addr+ram, 'float', value) end WF = function(addr, value) m64p.memory:write(addr+ram, 'float', value) end
X1 = unimplemented X1 = function(addr) return m64p.memory:read(addr+rom, 'u8') end
X2 = unimplemented X2 = function(addr) return m64p.memory:read(addr+rom, 'u16') end
X3 = unimplemented X3 = unimplemented
X4 = unimplemented X4 = function(addr) return m64p.memory:read(addr+rom, 'u32') end
XF = unimplemented XF = function(addr) return m64p.memory:read(addr+rom, 'float') end
end end
local H1 = function(self, value) local H1 = function(self, value)
@ -129,6 +130,10 @@ end
function hex(i) function hex(i)
-- convenience function for use in console -- convenience function for use in console
if i == nil then
print('nil')
return
end
if i > 0xFFFFFFFF then if i > 0xFFFFFFFF then
print('warning: truncated') print('warning: truncated')
end end

View File

@ -84,7 +84,11 @@ else
-- great spin attack -- great spin attack
-- this one's a bit odd; it goes off an event flag -- this one's a bit odd; it goes off an event flag
local addr = a.week_event_reg.addr + 23 local addr = a.week_event_reg.addr + 23
if bit then
W1(addr, bit.bor(R1(addr), 0x02)) W1(addr, bit.bor(R1(addr), 0x02))
else
W1(addr, R1(addr) | 0x02)
end
end end
set(a.magic_level, 2) set(a.magic_level, 2)