flat assembler
Message board for the users of flat assembler.
Index
> High Level Languages > Idlewild-Lang (2D game programming language) Goto page Previous 1, 2 |
Author |
|
ProphetOfDoom 07 Oct 2017, 18:27
Wow thanks for your little install tutorial vivik. Only just noticed it. You're a real hacker. Let's just hope you can get it working now.
|
|||
07 Oct 2017, 18:27 |
|
ProphetOfDoom 07 Oct 2017, 18:44
It just occurred to me that you'll probably encounter a similar problem at the link stage and the solution is similarly to put golink.exe in the Idlewild-Lang folder.
|
|||
07 Oct 2017, 18:44 |
|
vivik 07 Oct 2017, 19:21
Okay, now I'm getting this:
idlewild-lang.exe: fd:4: hGetContents: invalid argument (invalid byte sequence) Looks like it actually generated "a.exe". Asks for a lot of dlls, I'll figure it out tomorrow. |
|||
07 Oct 2017, 19:21 |
|
ProphetOfDoom 07 Oct 2017, 19:48
Hi,
Thanks for persevering. I can't reproduce the error here but some Googling suggests it's to do with encoding. I'm wondering, if you used "git clone" to checkout the game demo, maybe it converted all the newlines in the source file to Windows format? I think git can be configured to do that automatically and I don't recall ever writing any code to deal with Windows line endings. The program just assumes Unix. It's just a thought. If you've got an a.exe then I think all you need to do is copy the .dlls from this zip file into an appropriate place: https://github.com/clockworkdevstudio/Idlewild-Lang/releases/tag/v0.0.3-Windows (Either the folder containing donjuan.bb or system32) |
|||
07 Oct 2017, 19:48 |
|
vivik 07 Oct 2017, 21:24
donjuan.bb has 0a line ending, donjuan.asm has 0d0a line ending.
|
|||
07 Oct 2017, 21:24 |
|
vivik 08 Oct 2017, 06:39
Got a.exe running. Here is the list of dependencies, in no particular order:
Code: libkoshka.core.dll libkoshka.mm.dll glew32.dll libbz2-1.dll libfreetype-6.dll libglib-2.0-0.dll libgraphite2.dll libharfbuzz-0.dll libiconv-2.dll libintl-8.dll libjpeg-8.dll liblzma-5.dll libmad-0.dll libpcre-1.dll libpng16-16.dll libSDL2_mixer-2-0-0.dll libtiff-5.dll libwebp-7.dll SDL2.dll SDL2_image.dll SDL2_ttf.dll zlib1.dll libwinpthread-1.dll libstdc++-6.dll libgcc_s_seh-1.dll And here is x64dbg log (ollydbg wannabe for 64 bit programs): Code: Process Started: 0000000000400000 C:\Users\User\Downloads\DonJuan\a.exe Breakpoint at 0000000000401000 (entry breakpoint) set! DLL Loaded: 00000000777F0000 C:\Windows\System32\ntdll.dll DLL Loaded: 00000000776D0000 C:\Windows\System32\kernel32.dll DLL Loaded: 0000000000160000 C:\Windows\System32\KernelBase.dll DLL Loaded: 000000006C540000 C:\Users\User\Downloads\DonJuan\libkoshka.core.dll DLL Loaded: 0000000000420000 C:\Windows\System32\msvcrt.dll DLL Loaded: 00000000775D0000 C:\Windows\System32\user32.dll DLL Loaded: 00000000004C0000 C:\Windows\System32\gdi32.dll DLL Loaded: 0000000000020000 C:\Windows\System32\lpk.dll DLL Loaded: 0000000000530000 C:\Windows\System32\usp10.dll DLL Loaded: 00000000685C0000 C:\Users\User\Downloads\DonJuan\libglib-2.0-0.dll DLL Loaded: 0000000000600000 C:\Windows\System32\advapi32.dll DLL Loaded: 00000000001D0000 C:\Windows\System32\sechost.dll DLL Loaded: 00000000006E0000 C:\Windows\System32\rpcrt4.dll DLL Loaded: 0000000000810000 C:\Windows\System32\ole32.dll DLL Loaded: 0000000064940000 D:\Haskell\8.2.1\mingw\bin\libwinpthread-1.dll DLL Loaded: 0000000000A20000 C:\Windows\System32\shell32.dll DLL Loaded: 00000000017B0000 C:\Windows\System32\shlwapi.dll DLL Loaded: 00000000003A0000 C:\Windows\System32\ws2_32.dll DLL Loaded: 00000000001F0000 C:\Windows\System32\nsi.dll DLL Loaded: 0000000061CC0000 C:\Users\User\Downloads\DonJuan\libintl-8.dll DLL Loaded: 0000000066000000 C:\Users\User\Downloads\DonJuan\libiconv-2.dll DLL Loaded: 0000000069140000 C:\Users\User\Downloads\DonJuan\libpcre-1.dll DLL Loaded: 000000006A040000 C:\Users\User\Downloads\DonJuan\libkoshka.mm.dll DLL Loaded: 000000006FC40000 D:\Haskell\8.2.1\mingw\bin\libstdc++-6.dll DLL Loaded: 0000000061440000 D:\Haskell\8.2.1\mingw\bin\libgcc_s_seh-1.dll DLL Loaded: 000000006ED80000 C:\Users\User\Downloads\DonJuan\glew32.dll DLL Loaded: 0000000001830000 C:\Windows\System32\opengl32.dll DLL Loaded: 0000000000200000 C:\Windows\System32\glu32.dll DLL Loaded: 0000000001950000 C:\Windows\System32\ddraw.dll DLL Loaded: 00000000003F0000 C:\Windows\System32\dciman32.dll DLL Loaded: 0000000001A50000 C:\Windows\System32\setupapi.dll DLL Loaded: 0000000001C30000 C:\Windows\System32\cfgmgr32.dll DLL Loaded: 0000000001C70000 C:\Windows\System32\oleaut32.dll DLL Loaded: 0000000001D50000 C:\Windows\System32\devobj.dll DLL Loaded: 0000000001D70000 C:\Windows\System32\dwmapi.dll DLL Loaded: 000000006C740000 C:\Users\User\Downloads\DonJuan\SDL2.dll DLL Loaded: 0000000001D90000 C:\Windows\System32\imm32.dll DLL Loaded: 0000000001DC0000 C:\Windows\System32\msctf.dll DLL Loaded: 0000000001ED0000 C:\Windows\System32\version.dll DLL Loaded: 0000000001EE0000 C:\Windows\System32\winmm.dll DLL Loaded: 000000006A880000 C:\Users\User\Downloads\DonJuan\SDL2_image.dll DLL Loaded: 000000006B800000 C:\Users\User\Downloads\DonJuan\libjpeg-8.dll DLL Loaded: 0000000068B40000 C:\Users\User\Downloads\DonJuan\libpng16-16.dll DLL Loaded: 0000000062E80000 C:\Users\User\Downloads\DonJuan\zlib1.dll DLL Loaded: 0000000068EC0000 C:\Users\User\Downloads\DonJuan\libtiff-5.dll DLL Loaded: 0000000063CC0000 C:\Users\User\Downloads\DonJuan\liblzma-5.dll DLL Loaded: 0000000061940000 C:\Users\User\Downloads\DonJuan\libwebp-7.dll DLL Loaded: 000000006FB00000 C:\Users\User\Downloads\DonJuan\libSDL2_mixer-2-0-0.dll DLL Loaded: 000000006E1C0000 C:\Users\User\Downloads\DonJuan\libmad-0.dll DLL Loaded: 0000000071000000 C:\Users\User\Downloads\DonJuan\SDL2_ttf.dll DLL Loaded: 00000000693C0000 C:\Users\User\Downloads\DonJuan\libfreetype-6.dll DLL Loaded: 00000000626C0000 C:\Users\User\Downloads\DonJuan\libbz2-1.dll DLL Loaded: 0000000061600000 C:\Users\User\Downloads\DonJuan\libharfbuzz-0.dll DLL Loaded: 0000000070540000 C:\Users\User\Downloads\DonJuan\libgraphite2.dll System breakpoint reached! (this is the entry point, finally) strange that it loads ddraw, this is for 2d graphics, without 3d "acceleration" don't know most of these dlls, probably drivers or something omitted all "TLS Callbacks" from the log Those 3: Code: libwinpthread-1.dll libstdc++-6.dll libgcc_s_seh-1.dll are by mingw (mingw-w64 actually) itself. For some reason every exe made with mingw requires those. It's possible to drop those by generating "freestanding" exe, but making your own language is simplier. I'm not sure why those annoy me so much, probably because I don't know why I need those. Last edited by vivik on 08 Oct 2017, 06:49; edited 1 time in total |
|||
08 Oct 2017, 06:39 |
|
vivik 08 Oct 2017, 06:44
Okay, now questions about the language itself. What do % and # mean in those?
Code: Type Entity Field id% Field health% Field x#,y# Field sector.Sector Field angle# Field time% Field anim_time% Field frame% Field updated% Field unique_id% End Type Code: Global AXIS_REMAINDER_X = GRAPHICS_WIDTH Mod Int(32 * SCALE#) |
|||
08 Oct 2017, 06:44 |
|
ProphetOfDoom 08 Oct 2017, 13:39
vivik wrote: Okay, now questions about the language itself. What do % and # mean in those? Hi vivik, Thanks so much for your efforts. It seems I have published a lame duck of a language since not many people are going to have stuff like the POSIX threads library lying around on their system. I will update the binary packages soon with the real dependencies. The type tags are simple: % means a 64 bit integer and can be omitted as it is the default. # means a 64 bit float, and $ means a string. A type tag with a dot followed by an identifier is a pointer to an object created with the New operator. Thanks again! |
|||
08 Oct 2017, 13:39 |
|
vivik 09 Oct 2017, 08:52
I read the wikipedia article about Blitz BASIC, looks like it passed lot of iterations, and it's authors even released new language (Monkey). What do you think about those, about this evolution? I'm also curious how adding OOP to that language looked like, I'm still not sure if I should support it. How Blitz BASIC looked like before and after OOP, before and after multi-threading?
There also seems to be an ide for Blitz BASIC (Protean IDE), and a lot of related tools seem to be opensourced at around 2014-2015 (BlitzPlus Blitz3D BlitzMax). What do you think about those? I'm not familiar with those at all, how them and Idlewild correlate? What's the difference? |
|||
09 Oct 2017, 08:52 |
|
ProphetOfDoom 09 Oct 2017, 16:55
Hi vivik,
My language has most in common with the original Blitz BASIC 2D for Windows that was released in 2000. I just uploaded the original Blitz BASIC help files to my github page as they don't seem to be available on the Web any more; here's the link: https://github.com/clockworkdevstudio/Idlewild-Lang/releases/tag/BBDocs I'll answer your other questions in a bit... I'm finding it hard to think just now as I'm taking some strong painkillers for an ankle injury LOL. |
|||
09 Oct 2017, 16:55 |
|
ProphetOfDoom 09 Oct 2017, 20:50
Hi,
I think an OOP language needs a team behind it, well something like C++ anyway. It's just not practical otherwise. Maybe one person could create something a bit like Objective C if they worked full-time for a few years. Writing a compiler is a marathon. I haven't "bought" (hate that word when applied to software) any of Blitz Research's newer products so I can't really say if they're any good. But I don't like C++ (too complicated, too easy to introduce errors) so I don't think I would like BlitzMax or Monkey either. I'm just doing my own thing, coding for fun and hopefully I'll end up with a useful product and get head-hunted by Apple or someone. I realise there's little if any money in compilers these days as the most fully-featured ones (GCC, CLang) are "open-source" so they've undercut all the proprietary BASICs. I'm probably going to write my own IDE - Protean IDE looks like abandonware that's tied to old versions of Windows. |
|||
09 Oct 2017, 20:50 |
|
revolution 09 Oct 2017, 20:54
ProphetOfDoom wrote: I realise there's little if any money in compilers these days as the most fully-featured ones (GCC, CLang) are "open-source" so they've undercut all the proprietary BASICs. |
|||
09 Oct 2017, 20:54 |
|
ProphetOfDoom 09 Oct 2017, 21:35
"Telemetry" even sounds like a crime. Compare "larceny", "buggery" etc.. Lool
|
|||
09 Oct 2017, 21:35 |
|
revolution 10 Oct 2017, 05:16
ProphetOfDoom wrote: "Telemetry" even sounds like a crime. |
|||
10 Oct 2017, 05:16 |
|
vivik 10 Oct 2017, 07:53
>giving the compiler away for free and selling all the collected data
examples? I know that unity does that, every game made with it. Steam actually shares this info, it's somewhat useful. |
|||
10 Oct 2017, 07:53 |
|
ProphetOfDoom 10 Oct 2017, 12:58
It seems like I spoke too soon when I said there's no money in compilers. If there's a lot of legacy code around, developers can still cash in. Look at this list of organisations using "PowerBasic" (and it's Windows only!!!"):
https://www.powerbasic.com/who.php |
|||
10 Oct 2017, 12:58 |
|
vivik 16 Oct 2017, 12:18
By the way, I'm dumb and it's possible to get rid of those dll by linking them in statically. It will also remove some unused code too, I think. It's not ideal though, compilers can exclude functions that are never called, but they can't really determine if some code is ever executed or not. There may be license issues too.
|
|||
16 Oct 2017, 12:18 |
|
vivik 07 Nov 2017, 12:38
Wish it could generate 32bit asm. It's probably outdated by now though. I probably care about old (if 10 years is old) computers more than I should.
|
|||
07 Nov 2017, 12:38 |
|
Goto page Previous 1, 2 < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.