Emulators
BGB 1.3 released
Note: This is an old post and many new versions of BGB have been released since. However, the download link below will bring you to the download section on BGB’s website where you can always find the latest version of BGB.
After a couple of months of development, BGB 1.3 was released. The two main features of this release are improved accuracy and graphics acceleration on Windows Vista and above. BGB 1.3 closely matches the real VRAM access timing behavior with sub-instruction precision. Beware (the author of BGB) now believes that BGB emulates the LCD timing of real hardware perfectly or nearly perfectly. (Here’s a list of specific things that are emulated accurately) 1.3 also supports Direct3D and OpenGL graphics output, which enables accelerated graphics output on Windows Vista and 7.
There’s also a metric shit ton of small improvements and bug fixes in various areas of the emulator and debugger. (As opposed to a long shit ton, a short shit ton, a shit ton shortweight, a shit ton longweight, or a deadweight shit ton of fixes.)
Selected improvements:
- Memory access breakpoints were broken.
- A bug where the currently focused panel in the debugger would lose focus when you used the arrow keys, was fixed.
- The currently active panel is now highlighted with a gray bar on the left side.
- Register flag checkboxes in the debugger register panel can be switched to change the current state of that flag.
- GBC boot ROM support.
- RTC (real time clock) saving is now compatible with VisualBoyAdvance.
(And more…)
Yet another Gameboy emulator written in Javascript
When people want to write an emulator, Gameboy is usually the platform of choice, since it’s relatively simple, relatively common and relatively well documented. With the advent of faster Javascript interpreters and Canvas, it now seems like Gameboy emulators made in Javascript is an emerging trend.
The latest addition, tentatively called “GameBoy Online“, made by Grant Galitz, adds GBC support and primitive, pretty crappy, sound support, something the first two don’t do. It also has a fancy GUI. It seems to be slightly slower than the other two, however. Perhaps I ought to benchmark the three existing Javascript Gameboy emulators and see how they compare.
To try it, you need a ROM image. You can either enter it as base64 (Use a tool like this one to convert the file) or upload one in the user interface.
Gameboy emulators in Javascript!
It’s often stated that JavaScript is a special-purpose language, designed for use by web sites to enable dynamic interaction. However, JavaScript is a full object-oriented programming language, and is used in arenas besides the Web: the Widgets available for recent versions of Windows and Apple’s Mac OS are implemented in JavaScript, as is the GUI for the Mozilla application suite.
With the recent introduction of the <canvas> tag to HTML, the question arises as to whether a JavaScript program is capable of emulating a system, much like desktop applications are available to emulate the Commodore 64, GameBoy Advance and other gaming consoles. The simplest way of checking whether this is viable is, of course, to write such an emulator in JavaScript.
This article sets out to implement the basis for a GameBoy emulation, by laying the groundwork for emulating each part of the physical machine. The starting point is the CPU.
This project by Imran Nazar aims to emulate a full Gameboy in Javascript using Canvas, while documenting the process.
The source code is available at his github repository, but for your convenience, there’s also an instance here that you can try out. Try replacing “ttt.gb” with “opus5.gb” for a different demo.
However, the idea isn’t new. The similarly named JSGB by Pedro Ladaria, which existed a year ago. The emulator can be tried out at that URL above. I have yet to extensively compare the two in terms of speed and functionality.
And unless my memory fails me, both of them were preceded by a much more primitive GB emulator/debugger written in Javascript which didn’t emulate graphics and only allowed you to single-step the code, that existed several years ago. Does anyone know what I’m talking about and what happened to it, if it even existed?
TI-boy SE – A Game Boy emulator for TI calculators
About 7 years ago people discussed whether the then new Game Boy Advance could emulate SNES games. The general reponse was that the GBA would be able to emulate SNES when hell froze over. So came SNES Advance by Loopy and Flubba, and hell froze over. Sure it was slow and didn’t have sound, but it was proof of concept that it could be done.People said the same thing about Game Boy emulation on the TI-8x series of calculators. Yet, calc84/calc84maniac recently released the first public beta version of his TI-boy SE emulator. And it even has sound.
The emulator works on some TI-8x calculators (TI-83+SE, TI-84+, and TI-84+SE) and has support for a small number of games, for example Tetris, Zelda – Link’s Awakening and Kirby. Even if it’s slow, and sometimes glitchy it’s an amazing feat. I would definitely dub this the coolest TI calculator project of this year. (Or perhaps ever…)
The emulator works by using the similarity between the Z80 and the Game Boy CPU (which is a reduced and slightly modified Z80) in a clever way. I’ll write more about the details in a future post.
Links:
Download from ticalc.org
Download from gbdev.gg8.se (Mirror, v0.0.2 alpha)
Discussion on the Omnimaga forums
Youtube video (With sound)
Youtube video (Grayscale)