5 ms·
One day when I was really bored in modded Minecraft, I thought it would be a neat idea to see how far I could get writing a Gameboy emulator in ComputerCraft. T
by zeta0134 10y ago
One day when I was really bored in modded Minecraft, I thought it would be a neat idea to see how far I could get writing a Gameboy emulator in ComputerCraft. That idea fell apart shortly after I had a somewhat working z80 chip and realized that the graphics display wasn't possible, but I kept working on the emulator over the course of a year, and this is the result.
It's not the fastest thing in the world, but my own machine manages to play many games full speed, and it supports almost the full feature set of the platform. I'm sure there are bugs, but I'm pretty happy with it overall. Critique and especially bug reports are quite welcome! My own growing Gameboy library is still quite small and I won't test games I don't own for legal reasons.
- voltagex_ 10y agoOff topic: are gameboy games getting expensive where you are?
- zeta0134 10y agoI usually pick them up on Amazon. I'm going for popular "good" games at the moment, and these tend to run anywhere from $5 - $30 depending on the condition. Most bargain bin games (movie tie-ins, less popular carts) can be had for less than $5, and then there's Shantae, which I can't find for less than $400 because the thing is so darn rare.
- Sunset 10y agohow "pure" is this. Can this be integrated somehow as a world of warcraft extension, interface modules there are written in lua as well.
- Jack5500 10y agoI seems to depend on the Löve Framework for actually drawing the emulation
- cromo 10y agoThis release does, yes. The actual emulation of the system is straight Lua and does not require Löve at all. You could run the emulator completely headless (as I was pestering zeta to do during development for testing), but there's not yet a headless driver. This also means that you just have to provide the hooks for drawing/sound/input/file IO to give it a different front end. Löve is what was used because it's what we're familiar with.
- cromo 10y agoThe first bullet point under the Supported Features section in the readme states that it works on any Lua that provides a bit manipulation library. I know LuaJIT comes with one, and Lua 5.3 comes with bitwise operators, so those could be wrapped up into a compatible module.
- zeta0134 10y agoI don't see why not! The release itself uses Love2D just because that's easy to run on most machines, but the gameboy module (in the /gameboy folder) has no non-Lua dependencies or code. Its "bit" library or equivalent should be available in most environments. Essentially you could use import the /gameboy module, write your own shell as a WoW extension, toss the graphics onscreen somewhere, and optionally deal with audio by setting the appropriate callback.
- mikeevans 10y agoIn the Readme you mentioned that you rip the games yourself - what hardware do you use for that?
- cromo 10y agoIt's mentioned in the build section in the Readme - the Joey Generation 3.
- voltagex_ 10y agoI can also recommend the GBCart shield - https://www.tindie.com/products/insidegadgets/gameboy-cart-shield/ https://www.tindie.com/products/insidegadgets/gameboy-cart-s.... I've got the newer reader listed on the site but haven't had a chance to test it yet. If you need a hand dumping games, let me know.
- morgosmaci 10y agoIt is nice to see how far this has come. I watched most of the early development on Twitch.
- FilterSweep 10y agoI didn't know you could watch development on Twitch, only gaming and the like. Do you have any Twitch accounts you'd recommend for this? Thanks....
- bjohnso5 10y agoHandmade Hero - a complete game, from scratch, in C [0] Jon Blow - new programming language (Jai) and game implementation therein [1] [0] https://www.twitch.tv/handmade_hero https://www.twitch.tv/handmade_hero [1] https://www.twitch.tv/naysayer88 https://www.twitch.tv/naysayer88