It's seems the reason of the crash because the resource is already in use...
If you launch the engine multiple times it works. That's bad.
I'll do more testing.
It's interesting that this bug didn't happen in older versions of GO-lang
This is like Phyton all over again (Python 3 transition flashbacks)
Mugen is 20 years old and until now have no the basic and primary features and resources for a commercial game like Street fighter alpha 3 that did everything with an obsolete engine in 1997.
We are 20 years just putting chars into a system with no intelligence and with tied hands and very limitations.
When shugendo appeared I thought it was the way to evolve, but nothing happened.
And now with ikemen everything is very crude, you haven't almost any reference to follow or certain that somewhat will really work.
I don't lost my hope, but to me ikemen is a open sea, where you're navigating at drift.
Sorry if it looks rude, but it's not my intention.
Ikemen GO is still in a alpha state so we have no documentation.
But most of the stuff works the same as Mugen.
What problems do you have with the system? Feedback would be welcome.
Also don't give up, if I didn't on K4rthos sending the lua files (I'm still waiting) you shouldn't, we are here to help in any problem you have.
About Shugendo and his roadmap:
Shugendo did plan to make a lot of incompatible changes.
I don't think that Shugendo way of removing CNS support is the way to go.
Not every Mugen creator is a programmer.
Compared to Electbyte or Shugendo I don't think that CNS is a bad system but it could be improved.
http://web.archive.org/web/20141230125257/http://elecbyte.com/blog/recursive-redirection
http://web.archive.org/web/20141230125258/http://elecbyte.com/blog/roadmap-mugen
My objetive with Ikemen GO is not make a comercial competitive engine but something that the Mugen community could use and expand without the need depend on Electbyte.
EDIT:
If anyone care here is the windows crash error log.
Spoiler, click to toggle visibilty
API server listening at: 127.0.0.1:19732
time="2019-04-24T20:09:29-05:00" level=info msg="launching process with args: [C:\\Users\\HP_Pavilion\\Source\\Repos\\ikemen_go\\src\\debug]" layer=debugger
time="2019-04-24T20:09:29-05:00" level=debug msg=continuing layer=debugger
Exception 0xc0000005 0x0 0xc000e12000 0x59697627
PC=0x59697627
signal arrived during external code execution
github.com/go-gl/gl/v2.1/gl._Cfunc_glowTexImage2D(0x7ff85eb7df80, 0xde1, 0x14000001909, 0x3e, 0x140100001909, 0xc000e0d800)
_cgo_gotypes.go:40585 +0x4c
github.com/go-gl/gl/v2.1/gl.TexImage2D.func1(0xde1, 0x14000001909, 0x3e, 0x140100001909, 0xc000e0d800)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/go-gl/gl/v2.1/gl/package.go:26077 +0x116
github.com/go-gl/gl/v2.1/gl.TexImage2D(0xde1, 0x14000001909, 0x3e, 0x140100001909, 0xc000e0d800)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/go-gl/gl/v2.1/gl/package.go:26077 +0x72
main.(*Sprite).SetPxl.func1()
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/image.go:536 +0x12a
main.(*System).runMainThreadTask(0x927c80)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/system.go:321 +0x79
main.(*System).await(0x927c80, 0x3c, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/system.go:331 +0x66
main.(*System).update(0x927c80, 0x7e4c1700)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/system.go:371 +0x139
main.systemScriptInit.func45(0xc000062320, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/script.go:646 +0x5a
github.com/yuin/gopher-lua.callGFunction(0xc000062320, 0x0, 0xb0d500)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/vm.go:136 +0x71
github.com/yuin/gopher-lua.init.3.func26(0xc000062320, 0xc07c040201, 0xc0001e20a0, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/vm.go:717 +0x566
github.com/yuin/gopher-lua.mainLoop(0xc000062320, 0xc0001e20a0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/vm.go:31 +0x177
github.com/yuin/gopher-lua.(*LState).callR(0xc000062320, 0x1, 0x1, 0xa)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/state.go:876 +0x280
github.com/yuin/gopher-lua.(*LState).Call(0xc000062320, 0x1, 0x1)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/state.go:1613 +0x4f
github.com/yuin/gopher-lua.loRequire(0xc000062320, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/baselib.go:559 +0x9cb
github.com/yuin/gopher-lua.callGFunction(0xc000062320, 0x0, 0xb0d500)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/vm.go:136 +0x71
github.com/yuin/gopher-lua.init.3.func26(0xc000062320, 0xc07c1c0402, 0xc0001e2000, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/vm.go:717 +0x566
github.com/yuin/gopher-lua.mainLoop(0xc000062320, 0xc0001e2000)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/vm.go:31 +0x177
github.com/yuin/gopher-lua.(*LState).callR(0xc000062320, 0x0, 0xffffffffffffffff, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/state.go:876 +0x280
github.com/yuin/gopher-lua.(*LState).Call(0xc000062320, 0x0, 0xffffffffffffffff)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/state.go:1613 +0x4f
github.com/yuin/gopher-lua.(*LState).PCall(0xc000062320, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/state.go:1676 +0x187
github.com/yuin/gopher-lua.(*LState).DoFile(0xc000062320, 0xc000068c10, 0xf, 0x0, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/yuin/gopher-lua/auxlib.go:394 +0x125
main.main()
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/main.go:235 +0x2712
goroutine 19 [sleep]:
time.Sleep(0x989680)
C:/Dev/Go/src/runtime/time.go:105 +0x12f
main.(*System).soundWrite(0x927c80)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/system.go:400 +0x66c
created by main.(*System).audioOpen
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/system.go:384 +0x1fe
goroutine 20 [sleep]:
time.Sleep(0xbebc20)
C:/Dev/Go/src/runtime/time.go:105 +0x12f
github.com/hajimehoshi/oto.(*driverWriter).Write(0xc00005ebe0, 0xc0001ec058, 0xa8, 0x7fa8, 0x0, 0x0, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/hajimehoshi/oto/context.go:152 +0x288
io.copyBuffer(0xb05460, 0xc00005ebe0, 0xb054a0, 0xc0000643c0, 0xc0001ec000, 0x8000, 0x8000, 0x1e200, 0x0, 0x0)
C:/Dev/Go/src/io/io.go:404 +0x452
io.Copy(0xb05460, 0xc00005ebe0, 0xb054a0, 0xc0000643c0, 0x0, 0x0, 0x0)
C:/Dev/Go/src/io/io.go:364 +0x9e
github.com/hajimehoshi/oto.NewContext.func1(0xc00005ec00)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/hajimehoshi/oto/context.go:85 +0x9d
created by github.com/hajimehoshi/oto.NewContext
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/hajimehoshi/oto/context.go:84 +0x32c
goroutine 21 [select]:
io.(*pipe).Write(0xc0000b4140, 0xc0001b00a8, 0x4440, 0x4440, 0xa8, 0x0, 0x0)
C:/Dev/Go/src/io/pipe.go:87 +0x261
io.(*PipeWriter).Write(0xc000094180, 0xc0001b0000, 0x44e8, 0x44e8, 0x0, 0x0, 0x0)
C:/Dev/Go/src/io/pipe.go:153 +0x89
github.com/hajimehoshi/oto.(*Player).Write(0xc00005ec20, 0xc0001b0000, 0x44e8, 0x44e8, 0x0, 0x0, 0x0)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/hajimehoshi/oto/player.go:60 +0x8a
github.com/faiface/beep/speaker.update()
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/faiface/beep/speaker/speaker.go:117 +0x26a
github.com/faiface/beep/speaker.Init.func1()
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/faiface/beep/speaker/speaker.go:56 +0x59
created by github.com/faiface/beep/speaker.Init
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/go/src/github.com/faiface/beep/speaker/speaker.go:52 +0x313
goroutine 22 [syscall, locked to thread]:
syscall.Syscall6(0x7ff866fa2680, 0x5, 0x1cc, 0xc000294000, 0x1000, 0xc0001c9bac, 0x0, 0x0, 0x0, 0x0, ...)
C:/Dev/Go/src/runtime/syscall_windows.go:197 +0xbd
syscall.ReadFile(0x1cc, 0xc000294000, 0x1000, 0x1000, 0xc0001c9bac, 0x0, 0x0, 0x0)
C:/Dev/Go/src/syscall/zsyscall_windows.go:313 +0x13b
syscall.Read(0x1cc, 0xc000294000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
C:/Dev/Go/src/syscall/syscall_windows.go:296 +0x8c
internal/poll.(*FD).Read(0xc000096c80, 0xc000294000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
C:/Dev/Go/src/internal/poll/fd_windows.go:494 +0x385
os.(*File).read(0xc000094080, 0xc000294000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
C:/Dev/Go/src/os/file_windows.go:207 +0x88
os.(*File).Read(0xc000094080, 0xc000294000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
C:/Dev/Go/src/os/file.go:108 +0xf0
bufio.(*Scanner).Scan(0xc000290000, 0xc000094000)
C:/Dev/Go/src/bufio/scan.go:213 +0xb31
main.(*System).init.func1(0x927c80)
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/system.go:288 +0x6c
created by main.(*System).init
C:/Users/HP_Pavilion/Source/Repos/ikemen_go/src/system.go:286 +0x633
rax 0xb2e3ba4
rbx 0xb2e3ba4
rcx 0x580
rdi 0xb2e83a4
rsi 0xc000e12000
rbp 0xc000e0d800
rsp 0x188fbf8
r8 0x4d80
r9 0x8
r10 0xc000e0d800
r11 0x6864080
r12 0x1909
r13 0x0
r14 0x140
r15 0x1401
rip 0x59697627
rflags 0x10207
cs 0x33
fs 0x53
gs 0x2b
time="2019-04-24T20:09:32-05:00" level=debug msg=halting layer=debugger
Process exiting with code: 0
The crash seems openGL related more specifically at line 536 image.go
Called by runMainThreadTask() in system.go
When using the function refresh() inside a lua file...
I'm not have much knowledge about openGL, but I'll try my best.
EDIT 2:
I think that the problem is that something points to a invalid location. Man I seriously don't know about openGL.
Hey Neat Unsou could you give a hand with this?