The MASM Forum
General => The Colosseum => Topic started by: hutch-- on March 16, 2022, 10:16:07 PM
-
This video is from a Chinese site.
https://www.youtube.com/watch?v=ICd96uYZknc (https://www.youtube.com/watch?v=ICd96uYZknc)
How dare those wicked Russians feed people in Ukraine, aren't they supposed to be massacring civilians ?
-
The wars of the 21st century are also won on TV. Language matters too. Why are Russian millionaires called oligarchs (at least here), which carries a pejorative connotation, and Americans philanthropists?
-
If you google for "Hallada muerta en una maleta la modelo rusa Gretta Vedler que llamó "psicópata" a Putin", that means "Russian model Gretta Vedler who called Putin 'psychopath' found dead in suitcase", hundreds of newspaper headlines appear with this phrase. Anyone who reads it will think that it has been a settling of accounts by Putin, but no, inside the news it is clarified that she disappeared a year ago and that it was her boyfriend who killed her because of an argument over money.
This is an example of the garbage that MSM expels.
https://www.farodevigo.es/mundo/2022/03/15/hallada-muerta-maleta-modelo-rusa-63866739.html
-
Here from RT DE about Fake-News.
There is a video at the bottom of the page. (All in German)
https://rtde.site/europa/133893-fake-fabrik-fur-ganz-europa/
If you have problems to access RT, try one of the following:
- Alternative Domains (https://rtde.site/inland/133280-in-eigener-sache-rt-de/)
- Firefox:
Go to "Settings"->"General"->"Connection Settings" and choose "DNS via HTTPS", choose Cloudflare (Default). - Opera:
Opera Browser has a built-in VPN. Choose "Asia" as location. - Router:
Change the DNS-Server in your Router to "1.1.1.1" (Cloudflare) - Pi-hole plus Unbound (https://www.kuketz-blog.de/pi-hole-unbound-hyperlocal-keine-werbung-groesstmoegliche-unabhaengigkeit/)
-
Good thing to know, that there is a parallel reality.
Sadly RT is closed, so a my favorite humour channel is closed.
If you can't trust people living Ukraine, this parallel truth is just for you.
If words of couple lunatics are most important things to you right now, it is just a your choice.
Hopefully you get paid for that.
-
Good thing to know, that there is a parallel reality.
In your parallel reality, of course, the nice Nazis from the Azov Brigade don't exist. Even the Svoboda Party are just cute Nazis from next door.
How lucky you are to have your own reality, you chatterbox.
-
Good thing to know, that there is a parallel reality.
In your parallel reality, of course, the nice Nazis from the Azov Brigade don't exist. Even the Svoboda Party are just cute Nazis from next door.
How lucky you are to have your own reality, you chatterbox.
So you say my friends are liers ?
And also friends from russian and belarus are liers.
You made a your opinion quite clear, so everyone in this site knows that.
So good riddance :biggrin:
-
So you say my friends are liers ?
And also friends from russian and belarus are liers.
I didn't say this, you just interpreted it that way. I would never presume to judge your friends because I don't know them.
But I know you by now. With many of your posts, a word from Rabbi Joshua, who later became known as Jesus, comes to
mind: Blessed are the poor in spirit. Matthew 5, 3
-
So you say my friends are liers ?
And also friends from russian and belarus are liers.
Well, don't you know that humans are masters in self-deception?
And yes, humans also do lie regularly. It's a feature, not a bug! Actually, from an evolutionary point of view, the human brain has grown to improve the capabilities in cheating, pretending and, yes, lying. You might even say that this is the natural usage of the brain, while "telling the truth" is an abuse.
-
Sorry to bother you, Hutch, but i have a question regarding
the capabilities of masm32. I am new to programming and wanted to ask you if it's possible to create a video game just using the masm32 ide and assembly code. Please feel free to email me if you prefer to answer by email. Also, thank you for the years of hard work that you put into creating masm32. I'm very grateful to you for that.
Regards
Dean Weiss
-
Hi Dean,
Yes it is possible but you have to know how to write code of that type and with assembler its a long and steep learning curve. Assembler is not a beginner's first language, I would recommend a basic dialect or Microsoft C/C++ and it will still be a lot of work.
-
@Asm45prog
I agree with hutch, you may be interested in some flavor of Basic like https://www.cerberus-x.com/community/index.php or there's an excellent tutorial in QB64 for game programming http://qb64sourcecode.com/
-
Jack,
do you have experience with QB64?
-
no, it really is not my cup of tea
-
If there's somebody interested maybe I'll try to make an small tuto on a basic video game with masm32 as time permits
-
Jack,
no, it really is not my cup of tea
I understand that. From what I could see, they compile via a C compiler. An inline assembler doesn't seem to exist either.
-
you may be interested in some flavor of Basic like https://www.cerberus-x.com/community/index.php
Looks like an ugly caricature of C++
Strict
Import brl.filestream
Class KeyValuePair
Public
Field _isValid:Bool
Field _key:String
Field _value:String
End Class
Class IniHandler
Private
Field _sections:StringMap<StringMap<String>>
Field _modified:StringMap<StringMap<String>>
Field _iniString:String
Public
Method New()
_sections = New StringMap<StringMap<String>>()
_modified = New StringMap<StringMap<String>>()
End Method
Method open:Void(path:String)
Local file:FileStream = FileStream.Open("cerberus://data/" + path, "r")
If file
_iniString = file.ReadString()
file.Close()
Else
Print "File '" + path + "' not found!"
EndIf
refresh()
file.Close()
End Method
Method doesSectionExist:Bool(sectionName:String)
Return _sections.Contains(sectionName)
End Method
Method doesKeyExist:Bool(sectionName:String, key:String)
Local section:StringMap<String>
' check if the section exists
If _sections.Contains(sectionName)
section = _sections.Get(sectionName)
Return section.Contains(key)
Else
Return False
EndIf
End Method
Method readValue:String(sectionName:String, key:String, defaultValue:String)
If Not _sections.Contains(sectionName)
Return defaultValue
EndIf
Local section:StringMap<String>
section = _sections.Get(sectionName)
If Not section.Contains(key)
Return defaultValue
EndIf
Return section.Get(key)
End Method
Method readValue:Int(sectionName:String, key:String, defaultValue:Int)
Local str:String = readValue(sectionName, key, String(defaultValue))
str = splitComment(str)
Return Int(str)
End Method
Method readValue:Float(sectionName:String, key:String, defaultValue:Float)
Local str:String = readValue(sectionName, key, String(defaultValue))
str = splitComment(str)
Return Float(str)
End Method
Method readValue:Bool(sectionName:String, key:String, defaultValue:Bool)
Local defaultStr:String = "False"
If defaultValue Then defaultStr = "True"
Local str:String = readValue(sectionName, key, defaultStr)
str = splitComment(str)
If str.ToLower() = "true"
Return True
Else
Return False
EndIf
End Method
Method readArray:Int[](sectionName:String, key:String, defaultValue:Int[])
Local defaultStr:String
For Local i:Int = 0 Until defaultValue.Length
defaultStr += String(defaultValue[i])
If i < defaultValue.Length - 1
defaultStr += ","
EndIf
Next
Local str:String = readValue(sectionName, key, defaultStr)
str = splitComment(str)
Local val:String[] = str.Split(",")
' convert to int
Local valFinal:Int[] = New Int[val.Length]
For Local i:Int = 0 Until val.Length
valFinal[i] = Int(val[i])
Next
Return valFinal
End Method
Method readArray:Float[](sectionName:String, key:String, defaultValue:Float[])
Local defaultStr:String
For Local i:Int = 0 Until defaultValue.Length
defaultStr += String(defaultValue[i])
If i < defaultValue.Length - 1
defaultStr += ","
EndIf
Next
Local str:String = readValue(sectionName, key, defaultStr)
str = splitComment(str)
Local val:String[] = str.Split(",")
' convert to float
Local valFinal:Float[] = New Float[val.Length]
For Local i:Int = 0 Until val.Length
valFinal[i] = Float(val[i])
Next
Return valFinal
End Method
Method readArray:Bool[](sectionName:String, key:String, defaultValue:Bool[])
Local defaultStr:String
For Local i:Int = 0 Until defaultValue.Length
If defaultValue[i]
defaultStr += "True"
Else
defaultStr += "False"
EndIf
If i < defaultValue.Length - 1
defaultStr += ","
EndIf
Next
Local str:String = readValue(sectionName, key, defaultStr)
str = splitComment(str)
Local val:String[] = str.Split(",")
' convert to bool
Local valFinal:Bool[] = New Bool[val.Length]
For Local i:Int = 0 Until val.Length
If val[i].ToLower() = "true"
valFinal[i] = True
Else
valFinal[i] = False
EndIf
Next
Return valFinal
End Method
Private
Method refresh:Void()
' clear local cache
_sections.Clear()
_modified.Clear()
Local currentSection:StringMap<String> = Null
Local sectionName:String
Local lines:String[] = _iniString.Trim().Split("~n")
For Local str:String = EachIn lines
' remove possible "carriage return"
If str.EndsWith("~r")
str = str[..str.Length-1]
EndIf
' check for section names
sectionName = parseSectionName(str)
If sectionName.Length > 0
' only the first occurrence of a section is loaded
If _sections.Contains(sectionName)
currentSection = Null
Else
currentSection = New StringMap<String>()
_sections.Add(sectionName, currentSection)
EndIf
ElseIf currentSection <> Null
' check for key+value pair
Local keyValuePair:KeyValuePair = parseKeyValuePair(str)
If keyValuePair._isValid
' only the first occurrence of a key is loaded
If Not currentSection.Contains(keyValuePair._key)
currentSection.Add(keyValuePair._key, keyValuePair._value)
EndIf
EndIf
EndIf
Next
End Method
-
@Gunther
QB64 translates basic code to C/C++ and the C++ compiler and tools does the rest, and you are right- there's no inline asm support
@jj
I have not even tried cerberus-x, it's main focus seems to be game programming for which I simply lack interest and talent
-
to elaborate just a bit more, I have seen the talent for programming and teaching of TerryRitchie hence my recommendation to his game tutorial
-
If I have it right, most high end gaming is C++ based and backed up by GPU libraries that access the capacity of modern video cards. The C++ is fast enough for ordinary code operations and the GPU libraries add the pace for video display. Something I find funny is with 3 of my computers, they have Radeon RX 580 8 gig video cards which work fine for what I do and they never get hot enough to turn the fans on.
-
@Asm45prog
I agree with hutch, you may be interested in some flavor of Basic like https://www.cerberus-x.com/community/index.php or there's an excellent tutorial in QB64 for game programming http://qb64sourcecode.com/
That's a nice tuto, I was making some basic stuff with some sprites within it in my spare time, just a small and basic piece. You have to unzip both files in the same folder to execute it.
100% masm32 source code with GDI, no external dll, etc.
-
:biggrin:
Works fine here, a yellow bird flying across a black client area. :thumbsup:
-
Works fine here, a yellow bird flying across a black client area. :thumbsup:
The same here. The BMP file is larger than the EXE by a factor of 40.
-
For no wasting unnecesary space, I will put all versions in the first post
-
"error fin del bmp"
Works fine when the bmp is available.
-
For no wasting unnecesary space, I will put all versions in the first post
-
I got it going by downloading the original zip. Will try these.
-
Nice ! :thumbsup:
"Three Little Birds" (Bob Marley) :biggrin:
-
Serveral birds flying around, in the same direction and the same layer, a flock of birds.
http://masm32.com/board/index.php?topic=9934.msg109516#msg109516
Next objective: several birds flying in two directions (left to right and viceversa) and three layers, with the same two bmp files.
-
:thumbsup:
All 4 demos work fine here. :biggrin:
-
Hi
All binaries work fine (Win10 Home, 21H2) :thumbsup:
Biterider
-
Thank you for testing :thumbsup:
-
This step: birds flying from letf to right and vice versa, with the same sprites bmp. Hence it must be read in reverse order.
Next step: birds flying in three layers, what means that it would be necessary to zoom in the birds and maybe decrease the colors. (No external libs, just masm+gdi)
http://masm32.com/board/index.php?topic=9934.msg109516#msg109516
:eusa_boohoo: https://www.youtube.com/watch?v=WP1M7B5ZE98
-
This step: birds flying from letf to right and vice versa, with the same sprites bmp. Hence it must be read in reverse order.
Cool birds which are birding all the time ...
:eusa_boohoo: https://www.youtube.com/watch?v=WP1M7B5ZE98
And to come down I found this old one ...
https://kruderdorfmeister.com/the-kd-sessions
Excited to see the "Next Episode" ...
-
:greensml: :thumbsup:
-
Here's an old c code-made-by-hand for stretching bitmap data that I made some years ago, that I have just translated to masm, needed to developing three layers for birds in the game.
This code is a "Doom face stretching" in 6 kb.
:eusa_boohoo: https://www.youtube.com/watch?v=XLJFU_cYQ0Q