24

You'll need to manipulate the memory address 0xFF02, and shift the data (MSB first) into 0xFF01, as stated below. If there is no cable - ergo, no gameboy connected - then 0xFF is received, in 0xFF01. From Serial Data Transfer (Link Cable) Communication between two Gameboys happens one byte at a time. One Gameboy acts as the master, uses its internal ...


21

You may also find useful this other schematic, which I find easier to read, though some of the design details differ. It's from the NesDev wiki which is a fount of useful technical information about older Nintendo consoles. All of the chips you mention are low-level interface logic, and probably not important for your emulation. You'll need to do the same ...


15

Does the Commodore CDTV-CR contain a 65C02 for some reason? Yes, but it's a rather plain (NMOS) 6500 core. Or, if it's emulating actual hardware, where is the 65C02? Hiden in a CSG 6500/1 microcontrollers (*1) All Amigas used variations thereof. They are basically a 6503 CPU (*2) plus a 6531 RRIOC(*3) with RAM halved to 64 Byte (*4) joint in a single ...


15

There can not be an EGA emulator for many reasons. Emulating CGA works, because in graphics mode, Hercules has a 64k frame buffer at address B0000h - BFFFFh, and for a single page, only 32k from address B0000h is displayed. The CGA has a 16k frame buffer at B8000h - BBFFFh, which fits inside the frame buffer provided by the Hercules card. Therefore what ...


15

Something approaching what you want could be VICE PDB monitor for the VICE commodore 64 emulator. From https://csdb.dk/forums/?roomid=11&topicid=134927: Currently VICE PDB Monitor uses Vice's mmzap and mmshow between executions or breakpoints to gather execution information and generate a heat map. It's not entirely exact since Vice doesn't trap ...


14

You could upload them to the Internet Archive, which already hosts large quantities of emulators and software (much of which is now available in in-browser emulators). Once you’ve finished uploading your archives, ping Jason Scott for help getting them categorised appropriately. Or even, if you’re planning on uploading lots of software, ping him before you ...


13

There are 386 real-mode emulators for 286s, such as Eko Priono’s EMU386; but they relied on one important feature which 8086s don’t have, the invalid instruction exception. Whenever a 286 attempts to run an invalid instruction, it traps, and a handler can be put in place to emulate the instruction (if it really is a “missing” instruction from a later ...


13

Note, this is a supplement to Greenonline's answer. Instead of emulating the bitwise transfer I would just emulate the bytewise transfer. If some game depends on the transmission time, you need to emulate this period for the reset of bit 7 of SC. When exactly in this period you transfer the bytes doesn't matter. If some game depends on the bitwise ...


12

Yes, there are at least a couple: LinApple - for Linux/Raspberry Pi. This fork of LinApple is current and maintained, and fixes annoying configuration bugs that others hadn't addressed. AppleWin — for Windows. Further to Thorbjørn Ravn Andersen's comment, I can confirm that Applesoft BASIC in JavaScript runs quite happily from a standalone local ...


12

The documentation is correct. Tetris does not use the RST 38 instruction (restart vector $38 is a custom vector, not tied to any Game Boy hardware interrupt), so the emulator I assume you're developing is calling it by mistake. It's a common error, since uninitialized/unmapped memory on the Game Boy contains $FF, which is the RST 38 opcode. Since Tetris ...


11

The 0xDD does not allow an interrupt to happen after it's been fetched, no matter what comes next in the instruction stream. As Wayne Conrad pointed out, otherwise the CPU would have to time travel into the future to find out what instruction is going to get fetched.


11

About the R register on a real Z80: But is the 8th bit actually used? Yes, it's freely available and won't be touched by any instruction except loading R Is its behaviour undocumented or can it only be altered by loading it with a value from the accumulator It's well documented and can be used like assumed. When loaded all 8 bits from A are stored in R - ...


11

The .z80 format comes from the Z80 emulator by Gerton Lunter. He released some documentation about the file formats used in it, and regarding offsets 11 and 12, this is what the manual says: .Z80 FILES: ----------- The old .Z80 snapshot format (for version 1.45 and below) looks like this: Offset Length Description 0 1 A register ...


10

There's a full clone of a revision 0 Apple II motherboard made by one avid retrocomputing enthusiast. He no longer has kits for sale, but the board Gerber files are available. Order some boards from a PCB manufacturer, source the components, and you'll have everything to build your own complete Apple II mainboard.


9

On a C64 PAL model, the VIC chip processes through 312 lines where each lines takes 63 clock cycles to display (including some time for horizontal and vertical blanking for returning the raster beam). So, if a timer counting every clock cycle is once synchronized to the beginning of rasterline 0, then the timer value t tells us the number of the current line ...


9

I wrote an emulator recently that was designed for tinkering and visualizing what the target software's doing. It doesn't quite have the monitoring you're looking for, but its realtime RAM usage scope comes a little close, and adding a heatmap to it would be trivial. If you're curious... https://github.com/luxocrates/viciious Writing more scopes for it's ...


9

An advantage which FPGA emulators generally share with vintage hardware is the ability to use devices that interact with the hardware in ways that are very timing-dependent. For example, if one has a game cartridge for the NES which triggers an interrupt every time the first line of data for a particular sprite is fetched, a console that reads out the ...


8

Have you ever thought of changing the 8088 in your PC to a NEC V20 (uPD70108)? The V20 is basically a 80186/286 EU with an 8088 BU. This offers all the 'new' real mode instructions (*1) you need, while still being pin-compatible with the 8088. And in addition you'll get some 30% sped up as well - quite handy, isn't it? Using a V20 would remove all need to ...


7

The DOS won't work because it's only 8kb long. The KERNAL won't work because it too is only 8kb long. Turns out, dos1541 is really a misnomer because VICE needs both ROMs in the same file, and expects that file to be exactly 16kb long (16384 bytes). If you have both the dos and the kernal, you can concatenate the two to produce the necessary file with a ...


7

There's probably some obscure way to do it in the GUI... But it behaves exactly like you want it to if you just run MAME from the command line with the target machine as an argument. In cmd.exe or a similar shell: c:\Program Files\MAME>mame64.exe pacman pacman.6e WRONG CHECKSUMS: EXPECTED: CRC(c1e6ab10) SHA1(e87e059c5be45753f7e9f33dff851f16d6751181) ...


6

From what I can make out, that emulator has its endless loop performing a simple: read keyboard; emulate whole frame; display frame; repeat. The project actually has multiple main functions, but they're all similar. Latency for keys once they've entered the application should therefore be between one and two frames — 'emulate whole frame' blocks until the ...


6

I am sure some one had that idea before me, As always :) Does anyone know of an implementation of that idea, so I don't have to implement it myself? Nop. Sorry. You may have to go ahead with your debug idea, catching them using Int3. Still, it wouldn't be anywhere near acceptable speed as Int/Ret already eats up 72+44=116 cycles - a table look up (...


6

The MiSTer project is an Open Source effort to create clone consoles/computers on the Terasic DE10-nano FPGA dev kit They have an Apple II+ core available and the MiSTer can be configured to boot directly into it


6

The 128K mode retains the "old" cursor key combinations - in particular, CAPS Shift 6 stands for cursor down, CAPS Shift 7 for cursor up.


6

Well, if your computer had a 6502 and the PPU & PSG (for the sound) chips, then it would be basically a NES, so there would be little left to emulate. Now if your computer only had the 6502, and the rest to emulate, no it wouldn't change, since nowadays emulation cores for 6502 are cycle exact, so it wouldn't be that interesting to have a real 6502 in ...


6

I support DMK in my MSX emulator, and bear in mind that it's a bit of a confused file format. It has a bunch of design deficiencies, and was clearly tightly coupled to the program that originally implemented it. But starting with the perfectly sensible stuff: The first 16 bytes are the header, which you seem to be familiar with — write protection, geometry, ...


6

For Chip-8 code that draws anything, the limiting factor will be the wait-for-vblank that is built into all of the draw operations, which will limit speed to 60 draw-sprite operations per second regardless of anything else that's going on. I don't know how much Chip-8 code wouldn't benefit from being run "as fast as possible" outside of the ...


5

Note: The following method was found through trial-and-error and backtracking the steps the installers require. The emulation is done via PBEmulator, not vs_emulator / DeviceEmulator (Recommended) Get a Windows XP VM. Windows 7 is possibly supported, but no solid evidence so far Download and install eMbedded Visual C++ 4.0 - download @ archive.org ...


4

Paravirtualisation is virtualisation in which the virtualised machine is provided with an API that allows it to make some calls to the hypervisor, for things the hypervisor can inherently do — typically to do things like expose native network or storage drivers directly to the virtualised OS. The virtualised OS will be aware that it is inside a virtual ...


4

In addition to the Internet Archive, there’s also a “New Dumps” thread for ROM dumps on the MAME forums: https://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=80278#Post80278


Only top voted, non community-wiki answers of a minimum length are eligible