Welcome!
Final Burn Neo => FBN Development => Topic started by: Romhack on February 04, 2015, 06:44:59 PM
-
Current:
Qt port
- Sound backends:
PulseAudio Simple (for Linux)
QAudioOutput (not working on newer Qt versions)
- Video backends:
OpenGL 3.3 only
No rotations and flips yet.
- Inputs:
Keyboard inputs from Qt event system (not so good)
Joystick support (SDL)
- Dipswitch dialog: done
- Map game inputs dialog: partially done (no mapping support at moment)
- Game select dialog: done
Killer Instinct (I & II):
- MIPS3 CPU core (R4600 little endian)
Partially done
Needs better TBL emulation
No x86 dynamic recompiler (only x86_64)
- DCS:
ADSP21xx ported from mame0.135
Sound working (too buggy at moment)
Needs better syncronization between MIPS and ADSP - IDE HDD emulation: done
Working on raw images only (no CHDs :().
Planned:
Midway Wolf Unit (UMK3 first :D):
- TMS34010 CPU core:
Already started
Very minimal at (https://bitbucket.org/zxmarcos/tms34010emu)
Some notes:
Bit addressable CPU (very strange)
Opcode encoding are hard to decode, well, at least to interpret from hardware manual.
Some 2d raster operations - DCS: from KI driver?
--------
I've been working on a MIPS III cpu core to emulate Killer Instinct (I really want to see it running on FBA :smilie: ). I have tried to port cpu from MAME, but have had no success, so I wrote this standalone application to debug my cpu and when it's done I'll port to FBA.
By now it can boot ki-l15d.u98, but doesn't pass disk test, because my ATA IDE driver is very simple at moment. There is still much work to get to the title screen.
http://i.imgur.com/MKBZMDI.png
-
Killer!! Looking forward to this one :)
-
Holy whoa. Nice work man! If there's anything I can do to help, let me know.
-
Killer Instinct on FBA. Wow hopefully you'll have it running someday.
-
Thanks guys.
Now with my ATA/IDE driver working (and some runtime patchs on debugger for DCS stuff), it passed disk test, now:
(http://i.imgur.com/CjjijQn.png)
-
Very impressive man! Keep the good work :biggrin:
-
Well done Romhack !!! :smilie:
-
This is awesome \o/ but very slow :S
For in-game I'll need to implement COP1 (FPU). Inputs are working.
(http://i.imgur.com/fj9ECkl.png)
(http://i.imgur.com/k5pnQg5.png)
(http://i.imgur.com/QcUZn3p.png)
(http://i.imgur.com/Ihm9s5L.png)
(http://i.imgur.com/cmWphD1.png)
(http://i.imgur.com/Xl2Tccq.png)
-
@Romhack nice work ive enjoyed reading your progress in this thread
-
Rombase how are you dealing with the chd? Have you implemented support for it or are you using an uncompressed raw image?
Also, have you added support for dcs yet? Is this ported from the stand-alone killer instinct emulator or MAME?
-
I am using uncompressed raw image because the game writes to it. AFAIK mame uses diff for this.
No DCS yet. Actually I don't know how to emulate sound chips and DCS seems to be very complex piece of hardware.
-
KI II is running :)
(http://i.imgur.com/PcL8fP7.png)(http://i.imgur.com/Q6Alld3.png)
(http://i.imgur.com/LFACZwr.png)(http://i.imgur.com/WXGgFVc.png)
(http://i.imgur.com/5HODAfS.png)(http://i.imgur.com/l9CCCUh.png)
(http://i.imgur.com/0nYNWYn.png)
-
Nice!
-
That's very cool.
-
Great! A master piece game! Hope to see soon on FBA!
Thanks 4 your work, Romhack! ;p
-
KI is basically 100% CPU (it draws to a framebuffer, all rendering is done b y the emulated CPU) so without a recompiler you'll struggle to get a good speed.
-
I'll try to implement a recompiler, but for FBA this is a challenge, we don't have UML.
I could write an x86/64 recompiler, but this isn't portable :S
---
After some TLB fixes, and FPU emulated:
(http://i.imgur.com/aRMi2Aw.png)(http://i.imgur.com/biWM9sJ.png)
(http://i.imgur.com/nULB8Qt.png)(http://i.imgur.com/S8JWjmJ.png)
(http://i.imgur.com/alQereE.png)(http://i.imgur.com/QLMoz6P.png)
(http://i.imgur.com/cVmKkM0.png)(http://i.imgur.com/OEwNAe3.png)
(http://i.imgur.com/8EFZ0Tm.png)(http://i.imgur.com/nIgrXuJ.png)
KI2 has some bugs in background.
(http://i.imgur.com/v75tnAh.png)(http://i.imgur.com/P16hQGw.png)
KI2 runs faster than KI even with better graphics :O
-
@Romhack Lovely Work!!!!
-
Romhack, your work on FB Alpha is really increasing the magnificence of this great emulator. Congrats. But let me be one these annoying users that are always asking the most hated questions of the emulator scene (hope not get to many "Smites", lol). Since you are working on more recent games (not focus on M68K e Z80) and (perhaps) dealing with some OpenGL instructions, what would the difficult to support games such Sega Model 2 and 3 on FBA, implementing the source code of Model 2 emulator" and "Supermodel", for example? http://www.supermodel3.com/About.html
Regards,
Sturm
-
Romhack, your work on FB Alpha is really increasing the magnificence of this great emulator. Congrats. But let me be one these annoying users that are always asking the most hated questions of the emulator scene (hope not get to many "Smites", lol). Since you are working on more recent games (not focus on M68K e Z80) and (perhaps) dealing with some OpenGL instructions, what would the difficult to support games such Sega Model 2 and 3 on FBA, implementing the source code of Model 2 emulator" and "Supermodel", for example? http://www.supermodel3.com/About.html
Regards,
Sturm
This is just beyond my skills :(
----
I am writing an x86_64 (SysV ABI) recompiler . It's fun to write, but extremely hard to debug! It has two modes (defined at compile time), first is full recompiler (translate every opcode into x64 code) and second is full fallback where the generated code just calls the interpreted code. I am using std::unordered_map for recompiled block lookups, but with profiling this doesn't seems to be a good use for it.
-
Test videos:
Killer Instinct I - Interpreter and Dynamic Recompiler
https://www.youtube.com/watch?v=xnJ-iSro-oE
Killer Instinct II - Interpreter and Dynamic Recompiler
https://www.youtube.com/watch?v=aMsesi_TtyE
-
That's awesome, Romhack. But please, just let me know. I am not a developer, so forgive me for my silly questions. The x86_64 recompiler that you are writing, will it be useful just for the KI games (what is awesome for itself) or it may be useful for some other games to be ported in the future?
-
It will be useful for anything that uses MIPS emulator, mainly for those with high clocks, KI has an MIPS R4600 running at 100MHz. IIRC, the highest clock on FBA is 25MHz (CPS-3 with SH2)
-
First image on FBA \o/
(http://i.imgur.com/thhSewZ.png)
-
hmm might be time to dust off the 360 again. Nice work :)
-
It works. :biggrin:
(http://i.imgur.com/ezJa4pt.png)
(http://i.imgur.com/vkZQfS1.png)
-
Congrats! Great job :D
best regards,
- dink
-
"One small step for a developer, one giant leap for FBA." Congrats! :)
-
I think the KI series is the most requested for FBA, and I thought it couldn't be done!
-
I think the KI series is the most requested for FBA, and I thought it couldn't be done!
Well, I think the MK series is the most requested for FBA, but TMS34010 is a very very very (VERY) complex piece of hardware.
----
KI running on FB Alpha, using dynamic recompiler.
https://www.youtube.com/watch?v=alC_RBiDP94
I hope someday we'll have real 3D hardware emulated on FBA, Killer Instinct uses software rasterizer on a dumb framebuffer :P.
But for now, we need DCS,
I already ported ADSP2100 from MAME (PinMAME) to FBA with adsp21xx_intf, but I don't know if it works...
-
But talking about the simplest tasks, what are the games that use the MIPS emulator, with high clocks, that can be easily take advantage of the great work done by Romhack?
-
Just watched the video - thats friggin' awesome :D Just need sound now :D
-
But talking about the simplest tasks, what are the games that use the MIPS emulator, with high clocks, that can be easily take advantage of the great work done by Romhack?
Super Real Mahjong Part 5 and Super Eagle Shot Golf might be good FBA targets, both are very close to the type of hardware FBA emulates, but with a MIPS thrown in the mix.
I don't know if FBA does the other ST-0016 (Z80 with integrated gfx + sound) things, but really that's all they are, an ST0016 combined with a MIPS, and some extra video bits.
-
Pretty nice.
I'm the maintainer of the new libretro port of fba (https://github.com/libretro/libretro-fba), i suppose your dynarec won't support arm devices ? Did you wrote this dynarec from scratch or did you work from an existing one (like mupen64's) ?
-
Pretty nice.
I'm the maintainer of the new libretro port of fba (https://github.com/libretro/libretro-fba), i suppose your dynarec won't support arm devices ? Did you wrote this dynarec from scratch or did you work from an existing one (like mupen64's) ?
Yes, it won't support arm devices, it's x64 only. In the future maybe I'll write an ARM recompiler (I don't have a testbed for it), but first I need to do this for x86. I wrote this dynarec from scratch, It only does basic optimization like basic block linking (if destiny is already recompiled) and eliminating useless opcodes...
----
I ported ADSP21xx from MAME 0135 (last C version), DCS rom is running but no sound for now...
-
DCS is now working, actually emitting 3 tones as error message for wrong checksum of u11-l1 :)
Sample rate is hardcoded yet, KI uses 31250Hz.
-
Sound working :)
https://www.youtube.com/watch?v=WH6D1zDIow4
-
Nice job!! games are better with sound :wink:
-
Nice job!! games are better with sound :wink:
Thanks.
Well, it's time for KI II
(http://i.imgur.com/1yq41aM.png)
-
Awesome job, Romhack! :)
-
Very cool indeed!
-
I am working on a new UI theme with Qt stylesheet:
(http://i.imgur.com/0zDyS1Y.png)
-
Awesome, Romhack! :cool:
What do you think about a filter by "Year"? Sounds interesting?
-
Awesome, Romhack! :cool:
What do you think about a filter by "Year"? Sounds interesting?
Filters doesn't work on Qt port yet :S anyway, great suggestion.
---
There's nothing better than writing new CPU core, you know. :p
(http://i.imgur.com/qobyEbP.png)
I can't wait to see some image on screen, but that seems to be far far away yet.
-
TMS34010... I can smell blood in the air... Mortal Kombat blood! :biggrin:
-
TMS34020 is what Battle Toads uses, and FBA needs Battle Toads :) Hopefully a possibility? :D
best regards,
- dink
-
TMS34020 is what Battle Toads uses, and FBA needs Battle Toads :) Hopefully a possibility? :D
best regards,
- dink
Of course. TMS34020 has more opcodes (40+), MAME only implements 5 and Battletoads runs very well.
There's a lot of great games with TMS34010:
TMS34010 (http://www.mamedb.com/list.php?fuzzy_name=&category=&start_year=&end_year=&manufacturer=&cpu=TMS34010&control=&buttons=&players=&status=&emulation_status=&color_status=&sound+status=&graphic_status=)
TMS34020 (http://www.mamedb.com/list.php?fuzzy_name=&category=&start_year=&end_year=&manufacturer=&cpu=TMS34020&control=&buttons=&players=&status=&emulation_status=&color_status=&sound+status=&graphic_status=)
-
First of all, hiyas everyone!! :biggrin: I hope everyone is doing alright. I have been watching the progress of FBA through my email (Assembla notifications), even when I was not able to come and participate here as I used to. I am happy that FB Alpha project has continued growing and evolving.
Nice to meet you Romhack and dink, I been following your updates and man! they are awesome :D you guys are great! keep up your great work!
Congrats to everyone (JacKc, iq_132, Barry, dink, Romhack, and company!) on everything that has been implemented to FBA through all this time.
Take care guys!
SeeYa!
:biggrin:
-
Hi CaptainCPS, nice to finally meet you :) FBA is the greatest! :)
best regards,
- dink
-
Thanks and nice to meet you too, CaptainCPS :biggrin:
----
Well, I think it's time to write some TM34010's video routines, MK3 already writes to these registers (also into DMA registers, MidwayPic, etc...) ;p
https://bitbucket.org/zxmarcos/tms34010emu/src
-
Nice to see you again Cap! I would love to see you active again, even just a little bit. :)
I always start to miss people like Jimmy_Page (http://http://neo-source.com/index.php?action=profile;u=12), Ferchogtx (http://http://neo-source.com/index.php?action=profile;u=13), and kenshiro (http://http://neo-source.com/index.php?action=profile;u=469) when I see someone who hasn't been active in a long time.
-
Welcome back Cap!
Like iq said, i will be happy to see you acive again :smilie:
-
Romhack, I finally got Killer Instinct running on my PC :) (13 frames/sec on my p4!)
Theres a few problems, though...
in dcs2k.cpp, in Dcs2kRender() it overflows the soundbuffer (causing a crash):
for (int i = 0; i < nSegmentLenght; i++) {
INT16 sample = pSoundBuffer->sample();
pSoundBuf[i * 2 + 0] = sample;
pSoundBuf[i * 2 + 1] = sample;
}
the * 2 should not be there, I think?
also, I get a division by zero crash on line 99:
T sample() {
int sum = 0;
for (int x = 0; x < t2h_count; x++)
sum += next();
return sum / t2h_count;
}
I changed it to:
return (t2h_count) ? sum / t2h_count : 0;
and removed the * 2 from indexing pSoundBuf[]. Now it runs fine, but theres no sound at all. Ideas? :)
best regards,
- dink
-
Romhack, I finally got Killer Instinct running on my PC :) (13 frames/sec on my p4!)
Theres a few problems, though...
in dcs2k.cpp, in Dcs2kRender() it overflows the soundbuffer (causing a crash):
for (int i = 0; i < nSegmentLenght; i++) {
INT16 sample = pSoundBuffer->sample();
pSoundBuf[i * 2 + 0] = sample;
pSoundBuf[i * 2 + 1] = sample;
}
the * 2 should not be there, I think?
*2 is for stereo pBurnSoundOut (linux default configuration is 22kHz stereo). I don't know if FBA uses stereo sound on windows.
also, I get a division by zero crash on line 99:
T sample() {
int sum = 0;
for (int x = 0; x < t2h_count; x++)
sum += next();
return sum / t2h_count;
}
I changed it to:
return (t2h_count) ? sum / t2h_count : 0;
and removed the * 2 from indexing pSoundBuf[]. Now it runs fine, but theres no sound at all. Ideas? :)
best regards,
- dink
The problem is native sample rate of FBA. FBA SampleRate needs to be lower than 31250Hz (KI e KI2 samplerate), look at this code:
void set_host_rate(int freq) {
host_rate = freq;
factor = static_cast<double>(host_rate) / static_cast<double>(target_rate);
unused = target_rate * factor;
t2h_count = target_rate / unused;
}
I used a naive approach to downsample from 31250Hz to 22000Hz, It calculates the factor between fba samplerate (host_rate) and driver samplerate (target_rate), then I calculate how many samples it needs to "ignore". t2h_count is just how many samples to skip on driver original sound to match FBA sound output frequency. However, if host_rate < target_rate, then factor is <0, unused is an integer so it's truncated to 0.
T sample() {
int sum = 0;
for (int x = 0; x < t2h_count; x++)
sum += next();
return sum / t2h_count;
}
It just calculates arithmetic mean of skipped samples, each FBA samples needs t2h_count driver samples :smilie:.
-
Romhack,
I have the KI stuff building in MinGW (GCC4.9) and MSVC 2013 (x86 only).
I'm nearly there with the x64 DRC, but they both MinGW and MSVC are falling over at the same points;
mips3_x64_ew.h (lines 27 and 42, called via the macros)
F_ADR(mips3::translate)
and;
mips3_x64.cpp (line 458)
mov(rax, (size_t) (void*)f);
MSVC is complaining with the following;
Compiling src/cpu/mips3/x64/mips3_x64.cpp...
mips3_x64.cpp
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(59) : error C2440: 'type cast' : cann
ot convert from 'uint32_t (__cdecl mips::mips3::* )(mips::addr_t,mips::addr_t *)
' to 'void *'
There is no context in which this conversion is possible
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(59) : error C2661: 'Xbyak::CodeGenera
tor::mov' : no overloaded function takes 1 arguments
and;
Compiling src/cpu/mips3/x64/mips3_x64.cpp...
mips3_x64.cpp
src/cpu/mips3/x64/mips3_x64.cpp(458) : error C2440: 'type cast' : cannot convert
from 'void (__cdecl mips::mips3::* )(uint32_t)' to 'void *'
There is no context in which this conversion is possible
src/cpu/mips3/x64/mips3_x64.cpp(458) : error C2661: 'Xbyak::CodeGenerator::mov'
: no overloaded function takes 1 arguments
If I remove the offending code, both GCC and MSVC compile and link fine (but crash on starting the driver).
Any ideas on how to do this in a more compliant, compiler friendly way?
Looks like there are some endian issues to resolve, but I can look at these when we are building ok!
-
Romhack,
I have the KI stuff building in MinGW (GCC4.9) and MSVC 2013 (x86 only).
I'm nearly there with the x64 DRC, but they both MinGW and MSVC are falling over at the same points;
mips3_x64_ew.h (lines 27 and 42, called via the macros)
F_ADR(mips3::translate)
and;
mips3_x64.cpp (line 458)
mov(rax, (size_t) (void*)f);
MSVC is complaining with the following;
and;
If I remove the offending code, both GCC and MSVC compile and link fine (but crash on starting the driver).
Any ideas on how to do this in a more compliant, compiler friendly way?
Looks like there are some endian issues to resolve, but I can look at these when we are building ok!
Can you create a trampoline function that is void ?
-
Can you create a trampoline function that is void ?
I did not know but we can't take address of a member function on C++ standard :eek: https://isocpp.org/wiki/faq/pointers-to-members#cant-cvt-memfnptr-to-voidptr (https://isocpp.org/wiki/faq/pointers-to-members#cant-cvt-memfnptr-to-voidptr).
I'm thinking of turning this code:
class cpu {
int reg;
void inc(uint32_t opcode) {
reg++;
}
}
into:
class cpu {
int reg;
static inline void add(cpu *p, uint32_t opcode) {
p->reg++;
}
}
Dolphin uses this style.
With MSVC, there's another issue: the ABI, current calling ABI (used on mips3_x64::fallback and mips3_x64_rw.h) is SysV AMD64: http://en.wikipedia.org/wiki/X86_calling_conventions (http://en.wikipedia.org/wiki/X86_calling_conventions).
-
I have x64 building with GCC now - but it crashes at driver start. GDB gives;
Program received signal SIGSEGV, Segmentation fault.
0x000000000101a92c in mips::mips3::tlb_translate(unsigned long long) ()
(gdb) bt
#0 0x000000000101a92c in mips::mips3::tlb_translate(unsigned long long) ()
#1 0x0000000007b09ec0 in ?? ()
#2 0x000000000022e768 in ?? ()
#3 0x8b4d07a85610bf41 in ?? ()
#4 0x0000000001078481 in std::__detail::_Map_base<unsigned long long, std::pair<unsigned long long const, void*>, std::allocator<std::pair<unsigned long long const, void*> >, std::__detail::_Select1st, std::equal_to<unsigned long long>, std::hash<unsigned long long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[](unsigned long long const&) ()
#5 0x000000000022e7d0 in ?? ()
#6 0x0000000000eb2e09 in mips::mips3::translate(unsigned long long, unsigned long long*) ()
#7 0x000000000ec218c4 in ?? ()
#8 0x00000000000018c4 in ?? ()
#9 0x0000000007a85250 in ?? ()
#10 0x0000000007a84990 in ?? ()
#11 0x0000000007a84ab0 in ?? ()
#12 0x0000000000eb09cc in mips::mips3::SW(unsigned int) ()
#13 0x000000000ec218c4 in ?? ()
#14 0x00000000000018c4 in ?? ()
#15 0x000000000022e7f0 in ?? ()
#16 0x0000000000000004 in ?? ()
#17 0xffffffffbfc003cc in ?? ()
#18 0x00000000000018c4 in ?? ()
#19 0x000000000022e810 in ?? ()
#20 0x000000000ec2192e in ?? ()
#21 0x000000000ec218c4 in ?? ()
#22 0x000000000ec218c4 in ?? ()
#23 0x0000000000000000 in ?? ()
(gdb)
Any ideas?
-
Just ABI problems. Replace prolog, epilog and fallback functions on mips3_x64.cpp to:
mips3_x64::fallback()
void mips3_x64::fallback(uint32_t opcode, void (mips3::*f)(uint32_t))
{
#ifdef _WIN32
// WIN64 ABI - MICROSOFT
mov(rcx, (size_t) m_core);
mov(edx, opcode);
#else
// SysV AMD64 ABI - GNU
mov(rdi, (size_t) m_core);
mov(esi, opcode);
#endif
mov(rax, (size_t) (void*)f);
call(rax);
}
mips3_x64::prolog()
void mips3_x64::prolog()
{
// R15 = cycle counter
// RBX = cpu_state base
push(rbp);
push(rbx);
#ifdef _WIN32
push(rsi);
push(rdi);
#endif
push(r15);
mov(rbp, rsp);
sub(rsp, 16);
mov(rbx, ADR(m_core->m_state));
mov(r15, ADR(m_icounter));
mov(r15, ptr[r15]);
check_icounter();
}
mips3_x64::epilog(bool do_ret)
void mips3_x64::epilog(bool do_ret)
{
add(rsp, 16);
mov(rax, ADR(m_icounter));
mov(ptr[rax], r15);
pop(r15);
#if _WIN32
pop(rdi);
pop(rsi);
#endif
pop(rbx);
pop(rbp);
if (do_ret)
ret();
}
Now it's running. I need to rewrite functions in mips3_x64_rw.h (even on linux they are disabled).
-
Thanks Romhack - MinGW64 is now running without crashing.
If we could just fix the compile errors for MSVC x64 we'd be sorted for building.
-
Please try this on MSVC:
void mips3_x64::fallback(uint32_t opcode, void (mips3::*f)(uint32_t))
{
...
mov(rax, (size_t) ((void*&)f));
call(rax);
}
And change F_ADR to:
#define F_ADR(f) ((size_t)((void*&)&f))
-
Please try this on MSVC:
void mips3_x64::fallback(uint32_t opcode, void (mips3::*f)(uint32_t))
{
...
mov(rax, (size_t) ((void*&)f));
call(rax);
}
And change F_ADR to:
#define F_ADR(f) ((size_t)((void*&)&f))
No dice.
Compiling src/cpu/mips3/x64/mips3_x64.cpp...
mips3_x64.cpp
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(59) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(59) : error C2661: 'Xbyak::CodeGenera
tor::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(62) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(69) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(69) : error C2661: 'Xbyak::CodeGenera
tor::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(72) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(79) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(79) : error C2661: 'Xbyak::CodeGenera
tor::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(82) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(89) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(89) : error C2661: 'Xbyak::CodeGenera
tor::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(92) : error C2102: '&' requires l-val
ue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(113) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(113) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(130) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(153) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(153) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(170) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(194) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(194) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(211) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(247) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(247) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(264) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(285) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(285) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(287) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(298) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(298) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(300) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(310) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(310) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(312) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(339) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(339) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(341) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(353) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(353) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(355) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(366) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(366) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(368) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(380) : error C2102: '&' requires l-va
lue
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(380) : error C2661: 'Xbyak::CodeGener
ator::mov' : no overloaded function takes 1 arguments
d:\fbasrc\src\cpu\mips3\x64\mips3_x64_rw.h(382) : error C2102: '&' requires l-va
lue
mingw32-make[1]: *** [mips3_x64.o] Error 2
mingw32-make: *** [vc] Error 2
-
Okay, try this:
template<class C, class R, typename...Args>
inline size_t get_method_addr(R (C::*f)(Args...)) {
return reinterpret_cast<size_t>((void* &)f);
}
#define F_ADR(x) get_method_addr(&x)
----
EDIT:
I compiled drc with msvc, but MinGW binary is a lot faster than MSVC one :eek:
I need to do some profiling.
-
Suggestion: proper fail / error message for missing hdd/kinst*.img in d_kinst
best regards,
- dink
-
Okay, try this:
template<class C, class R, typename...Args>
inline size_t get_method_addr(R (C::*f)(Args...)) {
return reinterpret_cast<size_t>((void* &)f);
}
#define F_ADR(x) get_method_addr(&x)
----
EDIT:
I compiled drc with msvc, but MinGW binary is a lot faster than MSVC one :eek:
I need to do some profiling.
Nice work. I commited a fix for MSVC 2013.
Looks like the first Killer Instinct bombs out pretty early on in MSVC x64 as well as being slow.
-
If FBA is compiled in DEBUG mode, some snes game appears and possible to play it, (but no sound)
I look the source code, and have one called d_kinst.cpp here, i try to execute fba.exe kinst, ki, and others but not work, why?
-
I am working again on TMS34010 emulator, I rewrote everything from scratch because it was completely broken by design (using 64bit memory reads when all access to memory needs to be 16bit), no opcode table for decoder, etc... I can't wait to see some image on screen, but it is very very far at this point.
-
Hi Romhack, its good to hear from you again -
Best of luck on your TMS34010 emu! :smilie:
best regards,
- dink
-
Thanks dink :D
After a rudimentary implementation of opcode PIXBLT B,XY...
(http://i.imgur.com/SqsbRh8.png)
(http://i.imgur.com/Q7q2dBI.png)
-
Looks good so far! :D
-
@Romhack it's getting there good work man
-
Some progress with Rampage, I'll try to implement inputs do pass this screen.
(http://i.imgur.com/z08amZp.png)
-
very nice :) I can't wait to see the title screen!
-
Without doubt the TMS34010 core implementation will be a great addition to FBA! I hope it will be used to emulate all related Midway/Williams hardwares (as well as "Wolf unit" also "T unit", "Y unit" and "Z unit")... :wink:
-
Without doubt the TMS34010 core implementation will be a great addition to FBA! I hope it will be used to emulate all related Midway/Williams hardwares (as well as "Wolf unit" also "T unit", "Y unit" and "Z unit")... :wink:
hey, slow down buddy.
-
hey, slow down buddy.
Obviously a long-term wish! :p
-
After Ctrl+C, Ctrl+V from mame's DMA-blitter (video/midtunit.c).
-
Nice progress to get something on screen BTW that looks like Raiden..???
-
This looks much better. I just need to figure out how to fix colors '-'
-
looking good :)
-
Nice... everything is beginning to "take shape" ! :smilie:
-
Colors are 16bit indexed :biggrin:
-
awesome! :)
-
Fantastico!!!
-
Trying T-Unit
All games freeze before title screen :(
-
Maybe its dip/input related - Something stuck that shouldn't be?
-
Maybe its dip/input related - Something stuck that shouldn't be?
MK3 is disabling interrupts (maybe it's a bad timing problem), forcing IRQs manually works when game stuck.
-
Nice job buddy!! pure genius :)
Maybe we can hack the game to dispense dollar bills? ;)
best regards,
- dink
-
Wonderful, you're making progress one after the other! :smilie:
-
@Romhack all i can say is Magnifico!!! :D
-
Is this in assembly or c?
-
It's C++. Code is here: https://bitbucket.org/zxmarcos/tmsemu/
-
It's C++. Code is here: https://bitbucket.org/zxmarcos/tmsemu/
Oh good! I was hoping it would be portable. Thanks. :)
-
It will be easily ported to FBA when it's ready :smilie:.
I like to write standalone emulators first because I can have a full featured debugger to find bugs :D Debugging new core on FBA is really hard.
-
I fixed the IRQ problem, it was a
bugtypo in a opcode that change processor status.
(http://i.imgur.com/bfYLsHx.png)(http://i.imgur.com/sSnBXMV.png)
(http://i.imgur.com/NnOFAzg.png)(http://i.imgur.com/41SFhf7.png)
(http://i.imgur.com/QHyulxD.png)
T-Unit
(http://i.imgur.com/OyP0bNz.png)
(http://i.imgur.com/dMz5mS5.png)
The game isn't clearing the screen before drawing... probably my implementation of FILL XY.
The game also refuses to accept coins, but on test menu it works fine :S
-
The game is now playable! the problem with coins was wrong cmos read handler.
(http://i.imgur.com/Q1SNNeH.png)(http://i.imgur.com/oYfTg4A.png)
(http://i.imgur.com/JAiIhFF.png)(http://i.imgur.com/krJcEDS.png)
(http://i.imgur.com/3VNTO3m.png)
-
Niiice! How about Battle Toads?
-
Niiice! How about Battle Toads?
I definitely should give it a try, but atm I'm focusing on W/T-Unit because they are simpler.
btoads has a more complex video hardware.
-
I definitely should give it a try, but atm I'm focusing on W/T-Unit because they are simpler.
btoads has a more complex video hardware.
The Midway Y Unit Driver has some nice games more classics at any rate certainly worth considering
-
Sheesh! Let the poor man finish what he's working on first! Excellent work Romhack. :)
-
Niiice! How about Battle Toads?
Battle Toads should use a TMS34020 as main CPU... this microprocessor should have an enhanced instruction set compared to the TMS34010 (though I could be wrong).
-
Battle Toads should use a TMS34020 as main CPU... this microprocessor should have an enhanced instruction set compared to the TMS34010 (though I could be wrong).
True, it has more 40 opcodes, however MAME implements only 5 of them. not a big deal. Opcodes implemented: https://docs.google.com/spreadsheets/d/1htNoyDN9m4psQpyl7AtJJxAdcPlzQDZ4aek6GaZ3LqQ/edit?usp=sharing
I think the hardest problem with this processor family is the graphics operations, there are 10 operations, but they are very customizable like raster operations, etc.
-
I think the hardest problem with this processor family is the graphics operations, there are 10 operations, but they are very customizable like raster operations, etc.
They should be the first processors which include graphics oriented instructions, a kind of "pioneers-ancestors" for the current GPUs...
I'm looking forward to see the TMS340x0 processors emulated by FBA, but, obviously, there is no hurry... you're doing an excellent work, thanks a lot! :)
-
Well... :biggrin:
(http://i.imgur.com/PBDhV8i.png)
-
Well... :biggrin:
(http://i.imgur.com/PBDhV8i.png)
In a Mortal Kombat like voice all i can say is Flawless Victory ;)
-
Great job Rom Hack
-
Now, release the new FBA and let the Mortal Kombat begin!
-
Well... :biggrin:
(http://i.imgur.com/PBDhV8i.png)
Wow that's what i can say ... simply awesome !
Looking forward for the first 2 episodes too, having all 3 episodes of Mortal Kombat running under FBA will be a real dream come true :-)
-
Calm down :smilie:. The driver is in pre-alpha state yet.
-
After implementation of VRAM bulk initialization (VRAM -> ShiftRegister):
(http://i.imgur.com/Es7SXDg.png)
(http://i.imgur.com/tgHLHYE.png)
(http://i.imgur.com/xIkHFJq.png)
(http://i.imgur.com/vV0qEA6.png)
(http://i.imgur.com/s4tZNdB.png)
I don't know why BG isn't being rendered, the video routines is ported direct from MAME without any modifications....
There is some obscure bug on cpu core that I can't find, collisions in game only works on throws movements.
-
I found the nasty bug!!! And now...
(http://i.imgur.com/myNzH9s.png)
MK2 no damage (another bug :p)
(http://i.imgur.com/BX6Bqvf.png)
(http://i.imgur.com/iaaceeV.png)
(http://i.imgur.com/7qA8Ui8.png)
(http://i.imgur.com/E24f8lT.png)
(http://i.imgur.com/IsjiZUD.png)
NBA HT a little bit more correct...
(http://i.imgur.com/HQ1o2XB.png)
Rampage is working well.
(http://i.imgur.com/xaKQK3p.png)
(http://i.imgur.com/fRpTQme.png)
(http://i.imgur.com/sCeEuRd.png)
(http://i.imgur.com/mu94KDs.png)
(http://i.imgur.com/bfudRM8.png)
-
Niiiicee!!!!
-
Wonderful... you have achieved so much in such a short time! :)
-
Outstanding ! :cool:
-
I will make some tests with DCS that already exists in FBA (for Killer Instinct), the mais problem is that I don't know how FBA sound cores does downsampling. ATM resampling code is very buggy and only works when DCS sample rate > FBA sample rate.
-
UMK3 running on FBA, there's strange glitch on FBA driver with VRAM Bulk Initialization.
https://www.youtube.com/watch?v=6qXnxHzfSl8
-
With dink's help:
https://www.youtube.com/watch?v=7pGiYipZzUU
-
Top class job guys!!!
-
Wow great progress with this. Excuse my ignorance but does the work you have done on the TMS34010 CPU core driver mean 'Trog' is a possibility in future?
I am assuming there is still a chunk of work involved but is the plan to add other TMS34010 games?
Yes, Midway Z/W/Y are very similar, only sound hardware are very different.
ATM I am focusing on W-Unit because the TMS34010 CPU core still has bugs and they are hard to find. While I don't fix them, I can't move to another midway unit.
I also need to rewrite DCS code to W-Unit, and IMHO sound emulation is much harder than CPU emulation :p
-
Hi Romhack,
are there news about your TMS34010 core emulation? :)
-
I'm stuck on a silly bug :S
MAME:
(http://i.imgur.com/KVtQNm5.png)
FBA:
(http://i.imgur.com/r7NayZT.png)
:redface:
-
I'm stuck on a silly bug :S
I hope you will be able to fix the bug soon! :)
-
good stuff romhack you are a guy from brazil who upload videos?
-
good stuff romhack you are a guy from brazil who upload videos?
Sim.
-
Awesome Romhack :cool:
Excellent work :smilie:
-
I just wanted to say Romhack you are the MAN!!! Thank you so much for FINALLY, AFTER ALL THESE YEARS.......porting the Wolf Unit Driver to FBA, consequently the MK games. You have made a lot of us MK fans very happy.
How is progress going on the driver at this point? Since it's been almost two months since your last post I figured I'd just ask out of curiosity. Have you been able to squash the last remaining bugs in the MK games?
-
How is progress going on the driver at this point? Since it's been almost two months since your last post I figured I'd just ask out of curiosity. Have you been able to squash the last remaining bugs in the MK games?
Obviously I can't say for sure, but you need to consider that, in addition to the TMS34010 CPU core, there is also the ADSP2105 core (the microprocessor for the audio sub-system), so, probably, there's still much work to be done... we need to be patient and to thank Romhack for the work he's doing! :)
PS: apart from the MK games, there are many other interesting titles related to the TMS34010 CPU, like the little known Art & Magic's games (Cheese Chase, Stone Ball and Ultimate Tennis).
-
I dont know why, there is alot of expectation about the official Ultimate Mortal Kombat 3 for Sega to be officialy released on fightcade. Arcade is 10 times better. Imagine if they release the arcade games :biggrin:
-
Thanks for the reply guys. GO ROMHACK!!! :biggrin:
-
Hi Romhack.
Possible put/port your Taito Type X Monitor inside of Final Burn Alpha?.
Test it please ^^...2D games looks better in FBA.
Thanks :)
-
I saw this at MKsecrets.net. Don't know if it is real or not. And If it is related to that project, prototype project or noone.
(http://i.imgur.com/9EazcIp.png)
-
As far as I know, the FB Alpha "Midway Wolf Unit" emulation is still in the preliminary stage... in any case Romhack should be able to give a better answer! :)
-
The game works fine in the debug version of fba except for sounds/music in the debug version. If you'd like to try it, compile the debug version.
-
Any progress in Midway Wolf Unity and Killer Instinct :S ?.
-
Any progress in Midway Wolf Unity and Killer Instinct :S ?.
I did a full review (opcode by opcode) of TMS34010 and did not find anything wrong :S DCS refuses to work on WUnit. :redface:
So, I'm now working on KI again. KI driver needs a proper CHD reader.
-
I did a full review (opcode by opcode) of TMS34010 and did not find anything wrong :S DCS refuses to work on WUnit. :redface:
So, I'm now working on KI again. KI driver needs a proper CHD reader.
Ok :( Good Luck/Work in CHD reader :)
-
Possible put PlayStation/Nintendo 64 (MESS/UME/MAME Emulator) in FBA :S ?
I think its an insult to even ask such a thing...
-
I think its an insult to even ask such a thing...
Ok deleted T_T
Sorry :redface: without intention.
-
I did a full review (opcode by opcode) of TMS34010 and did not find anything wrong :S DCS refuses to work on WUnit. :redface:
So, no sound for Midway Wolf Unit games... when and if you have time, you could try with Midway T Unit and Y Unit games, they should have a different audio sub-system ("more conventional")... in any case, thanks a lot for your work! :)
-
I think its an insult to even ask such a thing...
By the way, i had a discussion with someone about how you choose the systems you add, and i was unable to answer properly because i didn't find any information on the website, so could you confirm :
- FBA is 2D only (and "false 3D" in games like Killer Instinct) ?
- You add consoles only if you have cpu/spu/gpu already emulated for an arcade system ?
On a side note, N64 is a mess to emulate, i think the best emulator for that right now is libretro-parallel (http://www.libretro.com/index.php/nintendo-64-vulkan-low-level-emulator-parallel-pre-alpha-release/), it is far from perfect and need vulkan to run.
-
By the way, i had a discussion with someone about how you choose the systems you add, and i was unable to answer properly because i didn't find any information on the website, so could you confirm :
- FBA is 2D only (and "false 3D" in games like Killer Instinct) ?
- You add consoles only if you have cpu/spu/gpu already emulated for an arcade system ?
Yea, those are the 2 main points, of course. Then there's personal favorites and/or stuff the driver writer always wanted to add, which naturally get a little more effort thrown at them. I probably wont add anymore consoles/computers, but super cassette vision is on the maybe list.
best regards,
- dink
-
Yea, those are the 2 main points, of course. Then there's personal favorites and/or stuff the driver writer always wanted to add, which naturally get a little more effort thrown at them. I probably wont add anymore consoles/computers, but super cassette vision is on the maybe list.
best regards,
- dink
I'm not very familiar with Super Cassette Vision, but looking at some game screenshots, it seems to be an interesting second generation system. :)
-
I'm not very familiar with Super Cassette Vision, but looking at some game screenshots, it seems to be an interesting second generation system. :)
Yes, the Epoch Super Cassette Vision was a third (not second) generation console, almost unknown in Europe... it has a little software library, about 30 games, with some interesting japanese titles! A "funny" info: the main CPU, a NEC PD7801G, was also used in some old electronic cash registers ('80s), like the SHARP ER-2540 ! :P
-
With some hardcoded values for sample generation interval (IRQ) and a proper resampler, killers instinct now sounds much better, not perfect yet.
https://www.youtube.com/watch?v=LB91jB5KocY
-
With some hardcoded values for sample generation interval (IRQ) and a proper resampler, killers instinct now sounds much better, not perfect yet.
https://www.youtube.com/watch?v=LB91jB5KocY
nice!!!
:D
-
With some hardcoded values for sample generation interval (IRQ) and a proper resampler, killers instinct now sounds much better, not perfect yet.
https://www.youtube.com/watch?v=LB91jB5KocY
Nice work! Finally Killer Instint is closer to be "fully emulated" by FBA! :)
-
Hi Romhack,
have you news about Wolf Unit audio driver and/or Killer Instint driver?
-
Hi guys, any progress on the Wolf Unit driver, particularly the sound in the MK games?
-
The last Romhack's post said:
I did a full review (opcode by opcode) of TMS34010 and did not find anything wrong :S DCS refuses to work on WUnit. :redface:
So, I'm now working on KI again. KI driver needs a proper CHD reader.
The DCS (Digital Compression System) was a sound sub-system of various Midway/Williams arcade boards (including Wolf Unit)... I hope I'm wrong, but probably there's no progress...
-
"Treble Winner vs. dink: Romhack's midway spiffing championship"
The other day Barry made some nice changes to Midway - he fixed the screen offsets and changed video over to pTransDraw instead of direct buffer, to work with all palette depths, etc.
I thought: wouldn't it be really nice to complete the emulation by adding sound?
after a couple days and many hours of derping around, Wolf Unit games have sound! - yay -!
best regards,
- dink
-
That's a great news ! It would be awesome for portability if the c++11 requirement got removed too :). Btw, you might be interested in this code if you need something to read CHD : https://github.com/libretro/fbalpha/tree/master/src/burner/libretro/libretro-common/formats/libchdr.
-
I think the deal was that if I got sound working in wunit that me and iq_132 would have a de c++ification codenight coming up...
I'm not too interested in chd support though. feel free :)
best regards,
- dink
-
I'm not too interested in chd support though.
The drivers don't require the chd hdd dumps from the MAME romsets ? What's the "kinst.img" file for killer instinct then ? I assumed it was the chd hdd dump.
-
It's the uncompressed hdd dump - to make it I used chdman.exe from MAME 0.155*. I think the commandline was something like:
chdman extracthd -i kinst.chd -o kinst.img
The image file goes into "[directory where fba*.exe resides]\hdd"
Treble Winner changed this to "d:\downloads\kinst.img" the other day on github, I think by accident. Feel free to change this location in burn/drv/midway/d_kinst.cpp
Then the kinst.zip romset goes into your usual romsets location.
* because I did this many many moons ago.
best regards,
- dink
-
Thanks for the explanation !
Well, chd support is something i'll try to add to fba then, since looking at this chd stuff is in my TODO list for Kronos anyway.
-
Rampage World Tour soundtest in FBAlpha VIDEO
https://www.youtube.com/watch?v=a2VtpY7Fzdg
thanks to:
Romhack for everything
Barry for spiffing up the drivers
Code will be on github tonight (Detroit time), there is a bit of clean-up to do!
best regards,
- dink
-
Rampage World Tour soundtest in FBAlpha VIDEO
https://www.youtube.com/watch?v=a2VtpY7Fzdg
thanks to:
Romhack for everything
Barry for spiffing up the drivers
Code will be on github tonight (Detroit time), there is a bit of clean-up to do!
best regards,
- dink
Nice work! Thanks you guys for this.
It just needs a better resampler, in this video https://www.youtube.com/watch?v=LB91jB5KocY (https://www.youtube.com/watch?v=LB91jB5KocY) IIRC it used higan cubic resampler: https://gist.github.com/zxmarcos/5bd9c32bb290a71a18dfffeef79bfbb5 (https://gist.github.com/zxmarcos/5bd9c32bb290a71a18dfffeef79bfbb5)
I don't know if FBA has any driver that sound chip can be configured to output at any samplerate like DCS2k.
Does FBA have a resampler like MAME (streams)?
-
Huhuuuw, it is great news.
I hope we will see Cave "cv1k.cpp" core too someday :P
After you release the GitHub code, I think Retroarch will update the FBA core soon. So what romset we will use to play UMK3. Will it synch with Mame 0.204 romset ?
Thanks...
-
Romhack, yes, I can add cubic easily. But right now due to time and cpu constraints, I'm going to use copy and update style resampling. Adding cubic resampling and on-the-fly rate changes to FBA soundcore is kinda tricky if you've never done it before, but after doing it dozens of times its simple for me. (although I couldn't say this a few years back..)
best regards,
- dink
-
Hursit, IIRC it won't be available in retroarch until we remove the c++11 dependencies, and this might take a while (a few days to a week or so).
Huhuuuw, it is great news.
I hope we will see Cave "cv1k.cpp" core too someday :P
After you release the GitHub code, I think Retroarch will update the FBA core soon. So what romset we will use to play UMK3. Will it synch with Mame 0.204 romset ?
Thanks...
-
This project is taking a lot longer than I had planned, but after many, many, many trials/errors and rewrites everything is solid :)
Sorry to those whom I've said "code will be on git tonight" on several occasions - I had really underestimated the complexities involved with this one. :p
best regards,
- dink
-
Hi guys, just an update:
latest code is on git - dcs sound is perfect in wolf unit games :)
Here's a new video of Rampage WT (some slight gfx issues were fixed as well)
https://www.youtube.com/watch?v=2Ca9JTBAfbc
Mortal Kombat 3 and Ultimate Mortal Kombat 3 work perfectly as well! With perfect framerate on my ancient P4 machine :biggrin:
UMK3 test-video:
https://www.youtube.com/watch?v=BOs4rtgya5w
Still have a few very small issues to iron out regarding the finishing stage of the driver, but the main problems (no sound, running too slow, etc etc) are gone!
best regards,
- dink
-
WoW Nice work on those stuff guys :D
-
Excellent work... thanks a lot! :)
-
Wow great stuff guys, as for now that means we are close to have also support for MIDWAY T UNIT hardware ?
Me hope to play Mortal Kombat 1 and 2 one day ... :cool:
-
Hi guys, just an update:
latest code is on git - dcs sound is perfect in wolf unit games :)
Here's a new video of Rampage WT (some slight gfx issues were fixed as well)
https://www.youtube.com/watch?v=2Ca9JTBAfbc
Mortal Kombat 3 and Ultimate Mortal Kombat 3 work perfectly as well! With perfect framerate on my ancient P4 machine :biggrin:
UMK3 test-video:
https://www.youtube.com/watch?v=BOs4rtgya5w
Still have a few very small issues to iron out regarding the finishing stage of the driver, but the main problems (no sound, running too slow, etc etc) are gone!
best regards,
- dink
That's awesome, thanks for all the work that everyone has done onthe wolf and t unit for FBA.
-
@Romhack btw, do you know if there are similarities between the mips r4600 and the r4300i used in N64 ? I saw one of the N64 devkit using the r4600 cpu so i would expect this is the case ? If so, there might be some interesting resources to write alternative r4600 interpreters at https://github.com/libretro/parallel-n64/tree/master/mupen64plus-core/src/r4300 (i think this emulator is providing several interpreters, including dynarecs for various arch and a cross-platform cached interpreter)
-
Mupen is GPL2 licensed.
FBA uses code based on old MAME code so has the same non-commercial clause as old MAME (the choice to use that code meant accepting the license it was under)
Due to various reasons (including the non-commercial clause) FBA is not GPL2 compatible, and really can't be without a massive purge of old cores + drivers and rewriting them from scratch or going through the same process as MAME, tracking down every single contributor for every single line of code in order to gain permission to relicense it.
GPL2 code cannot be used in FBA for that reason. Just allowing your code to be influenced by the GPL code (if it ends up looking very similar for example) is a problem.
Just because RA / LR do their best to actually hide the licenses from people doesn't mean they can be ignored. Mixing incompatible licenses just creates a product nobody, not even the authors are allowed to distribute.
Sorry to be negative here, but proper software licensing is important to keep your product legal and legitimate.
-
Mupen is GPL2 licensed.
FBA uses code based on old MAME code so has the same non-commercial clause as old MAME (the choice to use that code meant accepting the license it was under)
Due to various reasons (including the non-commercial clause) FBA is not GPL2 compatible, and really can't be without a massive purge of old cores + drivers and rewriting them from scratch or going through the same process as MAME, tracking down every single contributor for every single line of code in order to gain permission to relicense it.
GPL2 code cannot be used in FBA for that reason. Just allowing your code to be influenced by the GPL code (if it ends up looking very similar for example) is a problem.
Just because RA / LR do their best to actually hide the licenses from people doesn't mean they can be ignored. Mixing incompatible licenses just creates a product nobody, not even the authors are allowed to distribute.
Sorry to be negative here, but proper software licensing is important to keep your product legal and legitimate.
The original Final Burn license also prohibited commercial use - so completely no go, unless writing everything from scratch!
-
Sorry to be negative here, but proper software licensing is important to keep your product legal and legitimate.
No problem, it's kinda sad we can't use this code to help, but thanks for the explanation :).
-
Beside licensing issues...
I want to create something like UML (Universal Machine Language from MAME) because crafting a dynamic recompiler for each arch is really hard (to debug, to write, to test). Midway's stuff runs at very high speed compared to other drivers in FBA.
People want cave1k on FBA, but without DRC, it's just waste of time.
-
I want to create something like UML (Universal Machine Language from MAME) because crafting a dynamic recompiler for each arch is really hard (to debug, to write, to test). Midway's stuff runs at very high speed compared to other drivers in FBA.
People want cave1k on FBA, but without DRC, it's just waste of time.
Yeah, having something like that for mips3 and sh3/4 would be great !
-
Beside licensing issues...
I want to create something like UML (Universal Machine Language from MAME) because crafting a dynamic recompiler for each arch is really hard (to debug, to write, to test). Midway's stuff runs at very high speed compared to other drivers in FBA.
People want cave1k on FBA, but without DRC, it's just waste of time.
I wouldn't take too many hints from the way the UML is done in MAME tho, there was a general consensus a while back that it's a pretty poor example of how to do a recompiler, and that's why the C backend for it is slower than a standard interpreter core while at the same time being far less accurate than an interpreter. Not sure of the specifics myself tho.
-
Btw, there was a non UML mips3 dynarec for x86_32 in mame 0.78 : https://github.com/libretro/mame2003-plus-libretro/tree/master/src/cpu/mips . I guess porting this one would be ok since it is under mame license.
-
Btw, there was a non UML mips3 dynarec for x86_32 in mame 0.78 : https://github.com/libretro/mame2003-plus-libretro/tree/master/src/cpu/mips . I guess porting this one would be ok since it is under mame license.
Some MAME dev's have a real bee in their bonnet when it comes to this core, so i fully expect the answer to the above being no
but hey we could be surprised :)
-
Some MAME dev's have a real bee in their bonnet when it comes to this core, so i fully expect the answer to the above being no
but hey we could be surprised :)
Besides a few fixes you applied, i think most of it is actually their original code under MAME license ? Actually it might be a backport from MAME 0.139 ?
-
Hi,
I've compiled the latest commit from github (7bc737d14fd6504136b953ec9af2e84e5dbd7f9d), using:
- nasm 2.14
- tdm64-gcc-5.1.0-2
- ActivePerl-5.26.1.2601
- gnu utils from fba site
- X64 build
- make mingw510
And I've converted my kinst and kinst2 chd to img format using the mame chdman utility, I've checked the crc32 of both files and is correct.
Now my question, I don't know where to put the img files, I've tried the roms folder, the support/hdd folder, the fba root folder, fba root/hdd folder, and nothing. When I try to load the game a message telling me that the rom file is correct, but no HDD data was found is displayed (I've configured the paths manually too). Am I doing something wrong?
Thanks.
-
You're probably missing the set folder. eg, support/hdd/kinst/kinst.img.
-
You're probably missing the set folder. eg, support/hdd/kinst/kinst.img.
:redface: :redface: :redface: Thanks! now it works! :biggrin:
-
can you tell me which version of chdman and command line to use? because i use chdman 204 but crc came up not matching the FBA needed img. thank you
-
can you tell me which version of chdman and command line to use? because i use chdman 204 but crc came up not matching the FBA needed img. thank you
'
I've used the chdman from mame 0.155:
chdman.exe extracthd -i kinst.chd -o kinst.img
-
I used chdman 0.204 with kinst.chd from a mame 0.204 romset, and got the right crc.
-
thank cliobrando
some how i did not do it right the first time and i did not make a folder for each .img file in the support hdd folder.
they both working now.
i use .204 chd and .204 chdman.