kindred (emulator)

Discuss emulation of the Nintendo Entertainment System and Famicom.

Moderator: Moderators

Overload
Posts: 47
Joined: Mon May 30, 2011 4:38 pm
Location: Australia
Contact:

Re: kindred (emulator)

Post by Overload »

Quite another large update.

kindred 1.08 Preview Build 1 (Windows, 32-Bit)

http://www.crazysmart.net.au/kindred

[SMS] Added Sega Master System
[SMS] Added Sega and Code Masters Mappers
[SMS] Added CPU, VDP, Gate Array and PSG modules
[DMG] Fixed timer clock on register write
[DMG] Reworked DMG CPU core, 130% performance increase
[SFC] Fixed broken State functions
[SFC] Fixed Game Doctor 3 Mapper
[SFC] Added State information for NEC PD77C25
[SFC] Optimised NEC PD77C25 core
[ALL] Added Double-buffering for smoother refresh rates
[ALL] Added PAL/NTSC select to menu
[ALL] Added Zilog Z80 disassembler
[ALL] Added Motorola 68000 disassembler
[ALL] Added ARM7TDMI disassembler

17 years after the birth of this project I've finally come up with CPU framework that I am happy with :D
The Sega Master System and Nintendo Gameboy CPU cores use the new framework. I will release a new build once I have reworked the 6502, 65816 and SPC700 cores.
Overload
Posts: 47
Joined: Mon May 30, 2011 4:38 pm
Location: Australia
Contact:

Re: kindred (emulator)

Post by Overload »

kindred 1.09 Preview Build 1 (Windows, 32-Bit)

http://www.crazysmart.net.au/kindred

Release information for kindred v1.09 Preview Build 1

[SFC] Added input mapping for NTT Joypad
[SFC] Updated SETA-DSP (UPD96050)
[SFC] Updated SCPU Multiply/Division cycle processing
[SFC] Updated PPU vertical synchronization
[SFC] Rewrote PPU object rendering code
[SFC] Updated State information to be cycle relevant
[SFC] Updated SA1 memory map timing
[SFC] Reworked SPC700 CPU core
[SFC] Reworked SA1 and 65816 CPU cores
[SFC] Updated DMA and H-DMA timing and protocol
[SFC] Added S-RTC (all four clocks supported)
[SFC] Added RTC-4513
[SFC] Added SPC7110 decompression
[SFC] Added BS-X flash cartridge (all commands supported)
[SFC] Fixed BS-X mapping
[SFC] Updated BS ROM detection
[SFC] Added board (SHVC-2J5B) (Sangokushi III)
[SFC] Added board (SHVC-BJ5M) (Sangokushi IV)
[SFC] Added board (SHVC-2A5B) (Sangokushi Senshi)
[ALL] Updated kindred.db

This update fixes a lot of the SNES things that were broken.

The new CPU/SMP cores increase performance roughly 500%.
DMA has been completely rewritten and is almost complete (cpu clocking during dma needs more attention).
For the first time the SA-1 uses an indentical cycle accurate 65816 core to the SCPU.
I have added basic SA-1/SCPU collision detection, although this is not fully researched.
Took the time to fully reverse engineer all the S-RTC commands I could find since this hadn't been done (timing is not emulated).
The S-RTC is rather a slow chip, it takes around 2 seconds to set the time. Also the window to write commands is rather small (the command processor will time out if you take too long to write data).
All BS-X flash commands are implemented (timing is not). Lock bits are implemented but are reset each time the BS-X is loaded.
SPC7110 decompression is based off Neviksti's original code.
xZabuzax
Posts: 20
Joined: Mon Aug 24, 2015 11:15 pm

Re: kindred (emulator)

Post by xZabuzax »

Glad to see another update on this project, I tried this emulator years ago and stopped using it because it lacked features that other snes emulator had. I Recently decided to give this emulator a try again with this new update and while the emulator is not bad it still doesn't feel like a finished product. This emulator does not even have a proper full screen support yet which is a shame because this emulator have more than a decade in development. It would be nice to also be able to customize the hotkeys and have rewind support.

I understand that you're coding this emulator in your free time and you probably don't want this emulator to replace the other powerhouses like Snes9X, Nestopia, puNES, etc... (yet) but the majority of users needs a good reason to use this emulator over the other ones. At this point I can't find any good reason to use this emulator over the ones I mentioned.

My comment sounded rude but it was actually a constructive criticism.
Overload
Posts: 47
Joined: Mon May 30, 2011 4:38 pm
Location: Australia
Contact:

Re: kindred (emulator)

Post by Overload »

xZabuzax wrote:Glad to see another update on this project, I tried this emulator years ago and stopped using it because it lacked features that other snes emulator had. I Recently decided to give this emulator a try again with this new update and while the emulator is not bad it still doesn't feel like a finished product. This emulator does not even have a proper full screen support yet which is a shame because this emulator have more than a decade in development. It would be nice to also be able to customize the hotkeys and have rewind support.

I understand that you're coding this emulator in your free time and you probably don't want this emulator to replace the other powerhouses like Snes9X, Nestopia, puNES, etc... (yet) but the majority of users needs a good reason to use this emulator over the other ones. At this point I can't find any good reason to use this emulator over the ones I mentioned.

My comment sounded rude but it was actually a constructive criticism.
Criticism is welcome, how else am I supposed to know what needs improving.

The focus has always been accuracy of emulation. It is true, unlike other emulators, I spend very little time on the interface.
More time is spent researching the hardware than coding the emulator. Research that has benefited every snes emulator.

I am familiar with snes9x you will find my name in the credits. snes9x was written by many developers each with their own focus of improving the emulator.

The full-screen mode exists so you can use the snes mouse without the window losing focus and to support off-screen firing of the super scope (which no other emulator supports?). It was never meant to be a proper full-screen. How do you support off-screen firing of the super scope when the picture fills the whole screen? shift+left mouse button maybe?

I've never used an emulator with a rewind feature. Rewind would require save states to be stable which the emulator is not able to produce right now, sometimes. How far back would you want to go and in what increments?

I'll look at adding a proper full-screen mode.

Which hotkeys would you like to be able customize?
tepples
Posts: 22708
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: kindred (emulator)

Post by tepples »

Which Super Scope games need offscreen firing? I know games in the tradition of Lethal Enforcers, Area 51, and Time Crisis use firing offscreen to reload the gun. But fire far enough offscreen, and the Super Scope's IR sensor won't pick up the Fire button press.

Offscreen firing is more common with the NES Zapper, and emulators have traditionally bound the right mouse button to fire offscreen. But then menus in Zapper games tend to use offscreen for Select and onscreen for Start. And there doesn't need to be a second button reserved for Cursor because it behaves as if the Cursor button is always held, sending a vertical coordinate whenever pointed at anything bright enough.
xZabuzax
Posts: 20
Joined: Mon Aug 24, 2015 11:15 pm

Re: kindred (emulator)

Post by xZabuzax »

Overload wrote:Criticism is welcome, how else am I supposed to know what needs improving.

The focus has always been accuracy of emulation. It is true, unlike other emulators, I spend very little time on the interface.
More time is spent researching the hardware than coding the emulator. Research that has benefited every snes emulator.

I am familiar with snes9x you will find my name in the credits. snes9x was written by many developers each with their own focus of improving the emulator.

The full-screen mode exists so you can use the snes mouse without the window losing focus and to support off-screen firing of the super scope (which no other emulator supports?). It was never meant to be a proper full-screen. How do you support off-screen firing of the super scope when the picture fills the whole screen? shift+left mouse button maybe?

I've never used an emulator with a rewind feature. Rewind would require save states to be stable which the emulator is not able to produce right now, sometimes. How far back would you want to go and in what increments?

I'll look at adding a proper full-screen mode.

Which hotkeys would you like to be able customize?
Thank you for taking your time to reply and thank you for your hard work in this project, Snes9X and to help with the research of the snes hardware.

I've been using emulators since 1997 and even the very first emulators had a proper full screen support, this is 2017 now and when I see an emulator lacking a proper full screen I kind of roll my eyes. Yes, I'm a bit picky but please understand that these are basic features that early emulators already had, these type of features is what attract most users. Sorry if I sounded rude again, it was not my intention.

Regarding the off-screen firing, this can be resolved with a "Off-Screen Firing" hotkey. Save States is also an important feature that most emulators have.

Regarding the rewind feature, this is an excellent feature that will also attract users, at this point I don't think I will ever use a Snes or Nes emulator lacking that feature. Hell, I was still using the outdated Zsnes because of it. I recently moved to Snes9X because they finally added that feature. Being able to rewind a couple of seconds (10-15 secs) is good enough for me. Other users will probably want it longer though.

Regarding the hotkeys, being able to customize the emulator to your liking also attracts users IMHO, it makes the user feel like the emulator is part of him (yeah, it sounds cliché). This is a feature that I wish every emulator in existence had already, Snes9X is doing this part perfectly. This is another reason why I use Snes9X. Featurewise, Snes9X is the perfect Snes emulator.

Again, thank you for your hard work. I know you're busy, hopefully you can have time to add those features little by little, you don't need to add it all at once, I don't want you to feel pressured or anything. I rarely visit this forum but I took my time to write about this because I see a lot of potential in this emulator.
Overload
Posts: 47
Joined: Mon May 30, 2011 4:38 pm
Location: Australia
Contact:

Re: kindred (emulator)

Post by Overload »

http://www.crazysmart.net.au/kindred

Release information for kindred v1.09 Preview Build 2

[ALL] Rewrote main video renderer
[ALL] Added selectable aspect ratio to video renderer
[ALL] Added various window display sizes
[ALL] Updated readme.html

I'll have a look at custom hotkeys next week, it shouldn't be too difficult.
Overload
Posts: 47
Joined: Mon May 30, 2011 4:38 pm
Location: Australia
Contact:

Re: kindred (emulator)

Post by Overload »

I've just added Pocket Challenge W to the list of systems now emulated by kindred.

I think this is the first? Please correct me if I am wrong.

Since I last posted here I also added IBM PC XT/AT to the list.

kindred also hit another milestone in August, it turned 21.

https://www.crazysmart.net.au/kindred

Image
User avatar
FitzRoy
Posts: 144
Joined: Wed Oct 22, 2008 9:27 pm
Contact:

Re: kindred (emulator)

Post by FitzRoy »

Is there some trick to getting this working? I tried running it, saw the wheel spin for 5 seconds, then nothing. I go to task manager and it's running in the background or something? If I keep trying, it spits out an "Unable to create log file" error message and more instances show up in task manager.

Latest version of Windows 10.

Image
Near
Founder of higan project
Posts: 1553
Joined: Mon Mar 27, 2006 5:23 pm

Re: kindred (emulator)

Post by Near »

Overload wrote: Tue Nov 19, 2019 8:50 pmI've just added Pocket Challenge W to the list of systems now emulated by kindred. I think this is the first? Please correct me if I am wrong.
It's listed in MAME, but they're marked supported=no, so this may well be a first.

Very impressive to emulate a TLCS-90 for that. I had to do the TLCS-900/H for the Neo Geo Pocket and it was hell.
kindred also hit another milestone in August, it turned 21.
Congratulations! If you stop by Tokyo sometime, I'll buy your emulator a drink ;)
Overload
Posts: 47
Joined: Mon May 30, 2011 4:38 pm
Location: Australia
Contact:

Re: kindred (emulator)

Post by Overload »

FitzRoy wrote: Mon Nov 25, 2019 7:20 am Is there some trick to getting this working? I tried running it, saw the wheel spin for 5 seconds, then nothing. I go to task manager and it's running in the background or something? If I keep trying, it spits out an "Unable to create log file" error message and more instances show up in task manager.

Latest version of Windows 10.
I have no idea why that would occur. I'm using the latest version of Windows 10 as well.

Was there anything in the log file?
Overload
Posts: 47
Joined: Mon May 30, 2011 4:38 pm
Location: Australia
Contact:

Re: kindred (emulator)

Post by Overload »

byuu wrote: Tue Nov 26, 2019 8:12 am
Overload wrote: Tue Nov 19, 2019 8:50 pmI've just added Pocket Challenge W to the list of systems now emulated by kindred. I think this is the first? Please correct me if I am wrong.
It's listed in MAME, but they're marked supported=no, so this may well be a first.

Very impressive to emulate a TLCS-90 for that. I had to do the TLCS-900/H for the Neo Geo Pocket and it was hell.
Neo Geo Pocket is on my list too but I should really finish the systems that are half done before I start anything new.
Congratulations! If you stop by Tokyo sometime, I'll buy your emulator a drink ;)
I spent years backpacking around the world, the last time I stepped foot on a plane was at Narita Airport. I wish had the money to travel somewhere, probably shouldn't spent all my money on video games, one day ;)

I must also pay Andreas Naive a visit, he said I can stay at his place if I was ever in Spain :)
Near
Founder of higan project
Posts: 1553
Joined: Mon Mar 27, 2006 5:23 pm

Re: kindred (emulator)

Post by Near »

Neo Geo Pocket is on my list too but I should really finish the systems that are half done before I start anything new.
I'd seriously recommend reconsidering that one, but hey if you want :p

https://byuu.net/datasheets#TMP95C061F

Some highlights:
* there are I/O registers that change interrupt priorities and edge/level sensitivities
* there are something like 28 interrupt sources
* there are four 8-bit timers and two 16-bit timers that can be daisy chained together in any order
* these timers can run in various PWM configurations to eg control servo motors
* there are four analog to digital convertors
* you can remap the entire bus chip selects similar to x86 MTRR
* you can control chip bus-widths (8-bit vs 16-bit) and wait state counts (including one with external wait states)
* there's a quite complicated prefetch behavior that varies based on the above
* there's DRAM refresh configuration settings
* there's a watchdog timer with a dozen settings
* the CPU itself can be configured so that IRQs actually perform DMA transfers instead of actually invoking interrupts
* there are registers that let you control the CPU pin behaviors AND DIRECTIONS, as in:
** you could make the data bus D8-D15 lines connect to your timer output triggers
** you can connect a timer's output to address bus pins
** you can set up an IRQ to trigger when a chip select pin rises
** basically every pin on the chip can be screwed with in horrendous ways

You can skip 95% of that and have a functional emulator (like everyone else did), but that's no fun.
Post Reply