84

How does the Sonic & Knuckles cart detect another cartridge? It checks the serial numbers of games; they can be found in the ROM's header. It probably detects all preceding Sonic the Hedgehog games since they all result in specific effects when locked-on. Are the game ROMs merged in some way when connected? It seems both games are simply mapped onto ...


37

We used to have to write our own video playback system, so each game did it differently. I worked on Microcosm for the SegaCD and if I recall we used a 16 colour palette for the video playback and had to create our own compression and decompression tools to keep the overall data bandwidth below 150KiB/sec. Later games used tricks like changing the palette ...


37

It varies machine to machine; at the simplest end is the Neo Geo — its 68000 and Z80 have completely independent buses. You write one program for the 68000 and one for the Z80 and a single pipe of communication joins the two: post a byte to the Z80 and it'll trigger an NMI; the Z80 can read the command byte from a certain port and write a response to another,...


26

... the Motorola 68000, was a 32-bit processor. As already written in Raffzahn's answer, Motorola itself said that it is a 16-bit processor. And as far as I know, the reason is not the external 16-bit bus but the inner architecture of the 68000: The 68000 only had a 16-bit ALU, which means that it could only perform 16-bit operations. The CPU executed 32-...


23

The [pre-AGA] Amiga: uses a planar frame buffer, stored in memory that is shared with the CPU (and which therefore reduces the CPU's speed); provides dual-playfield hardware scrolling, but the total bit fetch total per output byte doesn't stretch beyond six, so you end up with e.g. a 7 colour foreground and an eight colour background; provides 8 hardware ...


17

Playback of compressed digital video is handled entirely in software on the Sega CD which is why FMV games on it play with the video taking less than the full screen and at relatively low frames per second. It doesn't contain any dedicated decoding hardware. It does contain a faster processor (12.5MHz 16-bit Motorola 68000, 5MHz faster than the base Sega) ...


13

The Super NES (SNES) has a much different hardware architecture than the Sega Genesis, and is built around the custom Ricoh 5A22 ASIC. As opposed to the discrete, stock, Motorola 68000 CPU employed in the Sega Genesis/MegaDrive, the SNES ASIC contains multiple components that internally operate at different clock speeds. The ASIC has the 65C816 CPU core, ...


12

Short answer: No. At least not for display purposes. The pixels shown are artefacts when the VDP is operation in modes with more than 224 lines (NTSC). These lines were usually not displayed on real TV boxes. Nonetheless, the VDP did generate the lines from whatever tiles it did find at the proper locations. Depending on the game they where uninitialized, ...


10

There are two basic techniques: shared memory and dedicated communication ports. Shared memory simply allows both processors to access the same memory bus. There are some issues, as the bus has to be shared and one CPU has to get priority so code must be designed to take unpredictable extra delays into account. The Megadrive is a good example of that, with ...


10

the Motorola 68000, was a 32-bit processor. I'd say 16 Bit - likewise Motorola did (*1). The bitness of a processor is and always will be up for discussion, as various features may not operate at the same size. An 8088 can be (an has been) called an 8-bit CPU as well as 16-bit. Similar the 68000 with its 32-bit registers but 16-bit bus. Beside data bus and ...


9

It's usually the width of the system data bus that determines the "bitted-ness" used to describe the system. While the Motorola 68k CPU used as a component in the Sega system certainly has some internal 32-bit capabilities, most notably the width of the register page, and is designed for upward compatibility with full 32-bit CPUs (like the 68020), the ...


9

Depending on the platform we're talking about, you've got a few choices. As the best platform for editing images at the time was the Amiga with its 4096 color palette in HAM mode on OCS/ECS (Original ChipSet/Enhanced ChipSet), and even better modes if you had an AGA (Advanced Graphics Architecture) machine, I'll talk about this computer. The best choice on ...


8

There was a relationship between Sony and Nintendo starting in 1988 and into the early 1990s as someone in Sony was looking to get into the video game business after seeing how successful the Famicom was. Agreements were made with Nintendo to produce a CD-ROM technology add-on and work was started. Prototypes were demonstrated in the early 90s which were ...


8

Have you tried cleaning the pin connector inside the Mega Drive? It's fairly simple to remove the shell and access the pin connectors. (don't forget to remove the LED wires for model 1) I got a second hand genesis and used toothpicks to clean up the immense dust buildup in my console. Early Mega Drives did not have BIOS - they boot directly from the ...


7

To answer the first half of your questions: The right-side 60-pin expansion slot is bespoke, and found on Mega Drive / Genesis 1 and 2 only. It is not present on the Genesis 3 or Nomad. It exposes the address and data buses and a lot of other signals. In that respect it's very similar to the 86-pin expansion slot on the left side of an Amiga 500 (and the 56-...


6

RAM and ROM are reachable by the CPU for execution, so most consoles can execute code from RAM. The consoles using cartridges usually don't have a lot of RAM, so I think it's VERY rare if someone uses the small RAM used for data to store code just to perform self-modifying code. On computers on the other hand it happened all the time, just because it's ...


6

I know about one Atari 8bit game called Robbo. There are source codes published where in file R1.ASM you can see: LDA LMVT,X STA JMP1+1 LDA LMVT+4,X STA JMP1+2 JMP1 JMP * LMVT DTA L(UP_) DTA L(DW_) DTA L(LT_) DTA L(RT_) DTA H(UP_) DTA H(DW_) DTA H(LT_) DTA H(RT_) LDA gets address from table indexed ...


6

The Megadrive comes from an arcade machine lineage, it's cut-down Sega arcade machine hardware. The Amiga comes from a computer lineage, it's an evolution of the Atari 800, same designer, and many of the same features, just expanded. Particularly, the Amiga, like most computers, deals with pixels. Better for things like line drawing, proportional text, and ...


6

The color RAM in the Genesis video chip is single ported such that at any given time the color RAM data bus either contains the data being read out of it for display purposes, or the data being written into the RAM by the CPU or by DMA. Outside of the active display area the overscan color can be defined by software. The video chip shows this color for each ...


5

It's an issue of integration. On the early Genesis systems the custom chips and CPU were physically separate from each other so it was easy to isolate the various clock signals and replace the CPU with a part rated for faster operation. The SNES has a more tightly integrated design where an ASIC contains both the CPU and other components, making it harder ...


5

DGEN emulator has a starscream 68k core with a builtin dissasembler and debugger . ` might be the key to break into it once rom is running. It's also easy to recompile with SDL as the gfx/audio interface so you brew your own debug focused emulator, slap on a Python interface or similar and you got yourself a stew!


5

In the video you linked (at 01:12), I notice that this device has the standard yellow and white connectors for composite video and audio. Many cheap portable LCD TVs support this kind of input, and are often battery powered, too.


5

I rarely had occasion to use self-modifying code. Doing that had a lot of overhead both in ROM space and RAM space, and I rarelysaw an occasion where it would be worth it. I did do it on the IBM PC, where I had bunches of block moves to do that were not contiguous, and doing so eliminated looping overhead during a critical time, at the expense of some RAM. ...


5

I'll assume you only want to modify small parts of the game, rather than the entire game. (If you wanted to modify the entire game, you'd just make a new cartridge holding the entire image.) Your objective: replace some but not all of the words* of the game with a new set, leaving the majority of the game unchanged. (* as in addressable data units, not ...


4

Let's assume your assumption "MegaDrive games are generally 'better' than Amiga games" was true - Which is a statement hard to prove and very probaby only backed by opinion: Games Console vs. Home Computer - Marketing goals The main (rather: only) selling point for consoles is the quality of games available for the platform. There is absolutely no other ...


4

TL;DR: For all of this it might be helpful and take a step back from bits and bytes and take a step back to look at the whole process of Game development. Doing so will show that quality is much more dependant on the budget available than the hardware to be used. Budget can buy time to create quality and pay for creativity. The market for Mega Drive games ...


2

Developers did occasionally use the overscan color as a profiling/debugging tool. By setting the overscan to a different color at the start of each major section of the game loop code, it was possible to see what proportion of a frame period was taken by different sections of game logic. You could also see how much time margin you had at different points in ...


2

(This is slightly off-topic, but related.) The 65816 CPU has a pair of block move instructions, MVN and MVP, which allow you to copy up to 64KiB from one 24-bit address to another. The instructions work like this: ldx #{16-bit source address} ldy #{16-bit destination address} lda #{16-bit count - 1} mvn src_bank, dest_bank (The "bank" is the high 8 bits ...


2

Look at phase/dephase directives (also known as rorg/rend) - e.g. in the vasm manual. The whole code should like: org real_entry_point entry_point: ... align 2 rorg RAM_BEGIN cool_routine ... (will be assembled for "org RAM_BEGIN", but stored immediately after previous code) rend


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