Projects More |
Main /
LuaZ80LuaZ80 is a Open Source project (by me) that emulates a Z80 microprocessor in Lua. However, it's not just a simple read-decode-execute loop of normal emulators, but a dynamic translator that changes Z80 machine code into Lua code then executes that Lua code. This is sort of like a JIT compiler that translates Z80 into Lua. It's a work in progress and a proof-of-concept project. More information can be found at it's github page here: http://github.com/robzed/LuaZ80. Z80 chip image adapted from http://commons.wikimedia.org Zilog_Z80.jpg by Gennadiy Shvets. Lua logo Copyright © 1998 Lua.org. Other Emulators As far as I know, it's the first Lua Z80 dynamic translator, and possibly the first Z80 Lua emulator (incomplete as it is...). However, another LuaZ80 emulator is here https://github.com/ignacio/luagleck read-decode-execute emulators The closest thing to a Z80 emulator (in Lua) is the Game Boy processor emulator inside Garryboy which is a Game Boy emulator for Garry's Mod. The Game Boy processor isn't a Z80, but an 8080-derived processor with some Z80 instructions added (CB prefix) as well as unique auto-increment/decrement addressing modes (wikipedia). There are obviously plenty of C/C++ emulators. I've used zxsp (blog) a lot recently. I've also taken a look at an emulator called z81. I've also taken a look at PyZX80, Py-emu, PyZ80 and the Perl Spectrum Emulator. Other dynamic-translation emulators written in dynamic-programming-languages Everyone should visit jslinux and read the FAQ and Technical notes. LuaZ80 doesn't share actual technical ideas or code from jslinux, but the fact such a cool thing was possible, has obviously been an influence. |